diff --git a/dist/index.es.js b/dist/index.es.js index 73f89d1..4b1bf65 100644 --- a/dist/index.es.js +++ b/dist/index.es.js @@ -1399,7 +1399,8 @@ var SafeImage = function (_React$Component) { src: this.state.url, onError: this.onError, className: this.props.className, - onLoad: this.onLoad + onLoad: this.onLoad, + loading: 'lazy' }) ); } @@ -1439,16 +1440,17 @@ var Grid = function (_Component) { return _this; } + // componentDidUpdate(prevProps){ + // if(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){ + // if(window && this.props.s3.path){ + // if(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) + // this.search(); + // else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]) + // } + // } + // } + createClass(Grid, [{ - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - if (this.props.defaultSearch && prevProps.defaultSearch != this.props.defaultSearch) { - if (window && this.props.s3.path) { - if (!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) this.search();else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]); - } - } - } - }, { key: "updateGlobalDataLocally", value: function updateGlobalDataLocally(images) { this.setState({ @@ -1483,6 +1485,9 @@ var Grid = function (_Component) { value: function search(query) { var _this2 = this; + // Temporary -- + if (!query || !query.trim()) return; + // -- query = query || '__getDefaultImgs__'; this.setState({ loading: true, imageSelectedIndex: null }); axios$1.post(this.props.server + "/search/" + query + "?disableCache=" + this.state.disableCache, { @@ -1620,7 +1625,7 @@ var Grid = function (_Component) { this.state.loading ? React.createElement("div", { className: homeStyles.galleryLoading }) : React.createElement( "span", null, - "No files. Try searching for something." + "Try searching for something." ) ) ), @@ -1875,18 +1880,6 @@ var Gallery = function (_Component) { } createClass(Gallery, [{ - key: "spriteNote", - value: function spriteNote() { - var SPRITE_PATH = "sprites/images"; - if (this.props.config.s3.path == SPRITE_PATH) { - return React.createElement( - "span", - { className: homeStyles.note }, - "Note: Image slug you select would be reflected only after save." - ); - } - } - }, { key: "render", value: function render() { var _this2 = this; @@ -1965,7 +1958,6 @@ var Gallery = function (_Component) { ) ) ), - this.spriteNote(), React.createElement(Grid, _extends({ containerStyles: { display: this.state.tab === 'grid' ? '' : 'none' } }, this.props.config, { diff --git a/dist/index.es.js.map b/dist/index.es.js.map index 1385703..33f6153 100644 --- a/dist/index.es.js.map +++ b/dist/index.es.js.map @@ -1 +1 @@ -{"version":3,"file":"index.es.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/is-buffer/index.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/defaultIcon.png","../src/components/SafeImage.js","../src/Grid/grid.js","../src/helpers/util.js","../src/Uploader/uploader.js","../src/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","export default \"data:image/png;base64,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\"","import React from 'react';\nimport defaultIcon from './defaultIcon.png';\nimport PropTypes from 'prop-types';\n\nexport default class SafeImage extends React.Component {\n\tstatic propTypes = {\n\t\tsrc: PropTypes.string,\n\t\talt: PropTypes.string,\n\t\tclassName: PropTypes.string,\n\t\tshowDimensions: PropTypes.bool\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\turl: props.src || defaultIcon,\n\t\t\tdimensions: '',\n\t\t\terrored: false\n\t\t}\n\t}\n\n\tonError = () => {\n\t\tthis.setState({\n\t\t\turl: defaultIcon,\n\t\t\terrored: true\n\t\t});\n\t}\n\n\tonLoad = (e) => {\n\t\tthis.setState({ dimensions: `${e.target.clientWidth} x ${e.target.clientHeight}` })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.showDimensions && !this.state.errored && {this.state.dimensions}}\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./grid.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport SafeImage from \"../components/SafeImage\"\n\nexport default class Grid extends Component {\n\tstatic propTypes = {\n\t\tcdn: PropTypes.string,\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tdisableCache: true,\n\t\t\timageSelectedIndex: null,\n\t\t\tloading: false\n\t\t};\n\t\tthis.searchInputEle = React.createRef();\n\t\tthis.search = this.search.bind(this);\n\t\tthis.inputChange = this.inputChange.bind(this)\n\t}\n\n\tcomponentDidUpdate(prevProps){\n\t\tif(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){\n\t\t\tif(window && this.props.s3.path){\n\t\t\t\tif(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path])\n\t\t\t\t\tthis.search();\n\t\t\t\telse this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path])\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateGlobalDataLocally(images){\n\t\tthis.setState({\n\t\t\tisGrid: true,\n\t\t\tdisableCache: false,\n\t\t\tloading: false\n\t\t});\n\n\t\tthis.props.setImages(images)\n\n\t\tif(!window.react_S3_Gallery)\n\t\t\twindow.react_S3_Gallery = {}\n\t\twindow.react_S3_Gallery[this.props.s3.path] = images\n\t}\n\n\tinputChange(e){\n\t\tif (e && e.key !== \"Enter\") return;\n\t\tlet query = (event && event.target.value);\n\t\tthis.search(query)\n\t}\n\n\treset(){\n\t\tthis.setState({\n\t\t\timageSelectedIndex: null\n\t\t})\n\t\tthis.updateGlobalDataLocally([]);\n\t\tthis.searchInputEle.current.value = '';\n\t}\n\n\tsearch(query) {\n\t\tquery = query || '__getDefaultImgs__'\n\t\tthis.setState({loading: true, imageSelectedIndex: null})\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${this.props.server}/search/${query}?disableCache=${\n\t\t\t\t\tthis.state.disableCache\n\t\t\t\t}`,\n\t\t\t\t{\n\t\t\t\t\ts3Bucket: this.props.s3.bucket,\n\t\t\t\t\ts3Path: this.props.s3.path\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then(response => {\n\t\t\t\tlet images = response.data.map(image => {\n\t\t\t\t\timage.url = `${this.props.cdn}/${image.slug}`;\n\t\t\t\t\treturn image;\n\t\t\t\t});\n\t\t\t\tthis.updateGlobalDataLocally(images)\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\timages: [],\n\t\t\t\t\tisGrid: true,\n\t\t\t\t\tloading: false\n\t\t\t\t});\n\t\t\t})\n\t}\n\n\topenPreview = (url) => () => {\n\t\twindow.open(url, '_blank')\n\t}\n\n\tselectionBar(){\n\t\tif(this.state.imageSelectedIndex == null) return null\n\t\tlet imageSlug = this.props.images[this.state.imageSelectedIndex].slug\n\t\tlet url = this.props.images[this.state.imageSelectedIndex].url\n\t\treturn(\n\t\t\t
\n\t\t\t\t{imageSlug}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
\n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
\n\t\t\t\t{this.props.showDimensions &&

Dimensions mentioned as width x height in pixels.

}\n\t\t\t\t
\n\t\t\t\t\t{!this.state.loading && this.props.images && this.props.images.length ? (\n\t\t\t\t\t\tthis.props.images.map((image,i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t this.setState({imageSelectedIndex: i})}\n\t\t\t\t\t\t\t\t>\n\n\t\t\t\t\t\t\t\t\t{this.state.imageSelectedIndex == i &&
}\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
{image.slug}
\n\t\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\t{this.state.loading?
:No files. Try searching for something.}\n\t\t\t\t\t\t
\n\t\t\t\t\t)}\n\t\t\t\t
\n\t\t\t\t{this.selectionBar()}\n\t\t\t\n\t\t);\n\t}\n}\n","let STANDARD_ASPECT_RATIOS = [\n [1, '1:1'],\n [4 / 3, '4:3'],\n [5 / 4, '5:4'],\n [3 / 2, '3:2'],\n [16 / 10, '16:10'],\n [16 / 9, '16:9'],\n [21 / 9, '21:9'],\n [32 / 9, '32:9'],\n]\nlet RATIOS = STANDARD_ASPECT_RATIOS.map(function (tpl) { return tpl[0] }).sort()\nlet LOOKUP = Object()\nfor (let i = 0; i < STANDARD_ASPECT_RATIOS.length; i++) {\n LOOKUP[STANDARD_ASPECT_RATIOS[i][0]] = STANDARD_ASPECT_RATIOS[i][1]\n}\n\n/*\nFind the closest value in a sorted array\n*/\nfunction findClosest(arrSorted, value) {\n let closest = arrSorted[0]\n let closestDiff = Math.abs(arrSorted[0] - value)\n for (let i = 1; i < arrSorted.length; i++) {\n let diff = Math.abs(arrSorted[i] - value)\n if (diff < closestDiff) {\n closestDiff = diff\n closest = arrSorted[i]\n } else {\n return closest\n }\n }\n return arrSorted[arrSorted.length - 1]\n}\n\n/*\nEstimate the aspect ratio based on width x height\n*/\nexport function estimateAspectRatio(width, height, errorAllowed, aspectRatio) {\n let ratio = width / height; \n if (ratio in LOOKUP) {\n return LOOKUP[ratio] === aspectRatio\n }\n\n // Look by approximation\n let closest = findClosest(RATIOS, ratio)\n if (Math.abs(closest - ratio) <= errorAllowed / 100) {\n return LOOKUP[closest] === aspectRatio\n }\n\n return false\n}\n\n/*\nEstimate the approximate width x height with error buffer\n*/\nexport function approximateDimensions(dimensions, requiredDimensions, errorAllowed) {\n\treturn new Promise((resolve) => {\n\t\tlet approxMinWidth = errorAllowed / 100 * requiredDimensions.width - requiredDimensions.width \n\t\tlet approxMinHeight = errorAllowed / 100 * requiredDimensions.height - requiredDimensions.height\n\t\tlet approxMaxWidth = errorAllowed / 100 * requiredDimensions.width + requiredDimensions.width \n\t\tlet approxMaxHeight = errorAllowed / 100 * requiredDimensions.height + requiredDimensions.height\n\t\tresolve({ widthError: dimensions.width < approxMaxWidth && dimensions.width > approxMinWidth , heightError: dimensions.height < approxMaxHeight && dimensions.height > approxMinHeight })\n\t})\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./uploader.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport { validate } from \"./../helpers/validators\"\nimport SafeImage from \"../components/SafeImage\";\n\nexport default class Uploader extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tform: {},\n\t\t\terrors: null,\n\t\t\ttitleValid: true\n\t\t};\n\t}\n\n\tstatic propTypes = {\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\trestrictions: PropTypes.object,\n\t\taccept: PropTypes.string\n\t}\n\n\tfileChangeListener = e => {\n\t\tlet files = e.target.files\n\t\tif(files && files[0]) {\n\t\t\tthis.setFile(files[0])\n\t\t}\n\t};\n\n\tsetFile = file => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: this.getFilePreviewUrl(file),\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile\n\t\t\t},\n\t\t\terrors: null\n\t\t})\n\t}\n\n\tgetFilePreviewUrl = file => {\n\t\treturn file.type && file.type.startsWith('image/') ? URL.createObjectURL(file) : null\n\t}\n\n\ttitleChangeListener = e => {\n\t\tif(!/[^\\w\\d-]/.test(e.target.value)) {\n\t\t\tthis.setState({\n\t\t\t\tform: {\n\t\t\t\t\t...this.state.form,\n\t\t\t\t\ttitle: e.target.value\n\t\t\t\t},\n\t\t\t\ttitleValid: true\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({ titleValid: false })\n\t\t}\n\t}\n\n\tclearImage = () => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: null,\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile: null\n\t\t\t}\n\t\t});\n\t}\n\n\tupload = e => {\n\t\tthis.setState({ loading: true });\n\t\te.preventDefault();\n\t\tlet formData = new FormData();\n\t\tformData.append(\"title\", this.state.form.title);\n\t\tformData.append(\"file\", this.state.form.file);\n\t\tformData.append(\"s3Bucket\", this.props.s3.bucket);\n\t\tformData.append(\"s3Path\", this.props.s3.path);\n\t\tformData.append(\"accept\", this.props.accept);\n\t\taxios({\n\t\t\tmethod: \"post\",\n\t\t\turl: `${this.props.server}/upload`,\n\t\t\tdata: formData,\n\t\t\tconfig: { headers: { \"Content-Type\": \"multipart/form-data\" } }\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tthis.props.select(response.data.slug)\n\t\t\t\tthis.setState({ form: {} })\n\t\t\t})\n\t\t\t.catch(function(error) {\n\t\t\t\talert(`Sorry couldn't upload the file. Try again`)\n\t\t\t}).finally(() => {\n\t\t\t\tthis.setState({ loading: false })\n\t\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
\n\t\t\t\t
\n\t\t\t\t\t{this.state.form.file &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\tclear[x]\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t
\n\t\t\t\t\t}\n\t\t\t\t\t{!this.state.form.file &&\n\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDrop a file here or choose one by clicking here\n\t\t\t\t\t\t\n\t\t\t\t\t
}\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.state.loading\n\t\t\t\t\t\t\t? \"Uploading...\"\n\t\t\t\t\t\t\t: \"UPLOAD\"}\n\t\t\t\t\t\n\t\t\t\t\t{this.state.errors && Array.isArray(this.state.errors) &&\n\t\t\t\t\t\t
{this.state.errors.map((e , i) =>\n\t\t\t\t\t\t\t

{e}

\n\t\t\t\t\t\t)}
}\n\t\t\t\t\n\t\t\t
\n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./styles.css\";\n\nimport Grid from \"./Grid/grid\";\nimport Uploader from \"./Uploader/uploader\";\n\nexport default class Gallery extends Component {\n\tstatic propTypes = {\n\t\tconfig: PropTypes.object,\n\t\tisActive: PropTypes.bool,\n\t\tuploaded: PropTypes.func,\n\t\tuploaderConfig: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tstatic defaultProps = {\n\t\tconfig: {},\n\t\tisActive: false,\n\t\tuploaderConfig: {\n\t\t\taccept: '.png, .jpg, .jpeg'\n\t\t},\n\t\tshowDimensions: false\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\timages: [],\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...props.config.style,\n\t\t\t\twidth: this.props.config.style.width || 30,\n\t\t\t\talign: `flex-${props.config.style.align || \"right\"}`\n\t\t\t},\n\t\t};\n\t}\n\n\tselectFinal = slug => {\n\t\tlet data;\n\t\tif (slug) {\n\t\t\tdata = {\n\t\t\t\timageUrl: `${this.props.config.cdn}/${slug}`,\n\t\t\t\timageSlug: slug.substr(0, slug.lastIndexOf(\".\")) || slug,\n\t\t\t\tfilename: slug\n\t\t\t};\n\t\t}\n\t\tthis.setState({\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...this.state.style,\n\t\t\t\twidth: 0,\n\t\t\t},\n\t\t});\n\t\tsetTimeout(() => this.props.onClose(data), 200);\n\t};\n\n\tspriteNote() {\n\t\tconst SPRITE_PATH = \"sprites/images\";\n\t\tif (this.props.config.s3.path == SPRITE_PATH) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\tNote: Image slug you select would be reflected only after\n\t\t\t\t\tsave.\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n\n\tsetImages = (images) => {\n\t\tthis.setState({ images })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
\n\t\t\t\t\t
\n\t\t\t\t\t\tGallery\n\t\t\t\t\t
\n\n\t\t\t\t\t
    \n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'grid'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'grid'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSearch\n\t\t\t\t\t\t\t
\n\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'upload'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'upload'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tUpload New\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t this.selectFinal()}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{this.spriteNote()}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n"],"names":["cookies","require$$0","require$$1","defaults","InterceptorManager","Cancel","Axios","require$$2","require$$3","SafeImage","props","onError","setState","defaultIcon","onLoad","e","dimensions","target","clientWidth","clientHeight","state","src","showDimensions","errored","position","right","top","fontSize","background","padding","borderRadius","alt","url","className","React","Component","propTypes","PropTypes","string","bool","Grid","openPreview","open","searchInputEle","createRef","search","bind","inputChange","prevProps","defaultSearch","window","s3","path","react_S3_Gallery","updateGlobalDataLocally","images","setImages","key","query","event","value","current","loading","imageSelectedIndex","post","server","disableCache","bucket","then","response","data","map","cdn","image","slug","catch","error","imageSlug","styles","selectionBar","selectionBarButtons","homeStyles","galleryButton","previewButton","selectionButton","select","containerStyles","searchWrapper","searchIcon","galleryInput","searchBar","reset","searchButton","backgroundColor","marginLeft","opacity","grid","length","i","borderColor","gridImageWrapper","test","gridImageDarkWrapper","gridOverlay","gridImage","gridFooter","info","galleryLoading","object","func","STANDARD_ASPECT_RATIOS","RATIOS","tpl","sort","LOOKUP","Object","Uploader","fileChangeListener","files","setFile","getFilePreviewUrl","file","form","type","startsWith","URL","createObjectURL","titleChangeListener","titleValid","clearImage","upload","preventDefault","formData","FormData","append","title","accept","headers","finally","uploader","imagePreview","previewImage","imagePreviewSrc","fileUploader","fileUploaderInput","titleLabel","submit","errors","Array","isArray","errorMessage","Gallery","selectFinal","config","substr","lastIndexOf","style","onClose","width","align","SPRITE_PATH","note","modal","isActive","isModalActive","header","navList","navItem","tab","navItemActive","closeBtn","spriteNote","display","uploadRestrictions","uploaderConfig","defaultProps"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.es.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/is-buffer/index.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/defaultIcon.png","../src/components/SafeImage.js","../src/Grid/grid.js","../src/helpers/util.js","../src/Uploader/uploader.js","../src/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","export default \"data:image/png;base64,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\"","import React from 'react';\nimport defaultIcon from './defaultIcon.png';\nimport PropTypes from 'prop-types';\n\nexport default class SafeImage extends React.Component {\n\tstatic propTypes = {\n\t\tsrc: PropTypes.string,\n\t\talt: PropTypes.string,\n\t\tclassName: PropTypes.string,\n\t\tshowDimensions: PropTypes.bool\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\turl: props.src || defaultIcon,\n\t\t\tdimensions: '',\n\t\t\terrored: false\n\t\t}\n\t}\n\n\tonError = () => {\n\t\tthis.setState({\n\t\t\turl: defaultIcon,\n\t\t\terrored: true\n\t\t});\n\t}\n\n\tonLoad = (e) => {\n\t\tthis.setState({ dimensions: `${e.target.clientWidth} x ${e.target.clientHeight}` })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.showDimensions && !this.state.errored && {this.state.dimensions}}\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./grid.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport SafeImage from \"../components/SafeImage\"\n\nexport default class Grid extends Component {\n\tstatic propTypes = {\n\t\tcdn: PropTypes.string,\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tdisableCache: true,\n\t\t\timageSelectedIndex: null,\n\t\t\tloading: false\n\t\t};\n\t\tthis.searchInputEle = React.createRef();\n\t\tthis.search = this.search.bind(this);\n\t\tthis.inputChange = this.inputChange.bind(this)\n\t}\n\n\t// componentDidUpdate(prevProps){\n\t// \tif(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){\n\t// \t\tif(window && this.props.s3.path){\n\t// \t\t\tif(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path])\n\t// \t\t\t\tthis.search();\n\t// \t\t\telse this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path])\n\t// \t\t}\n\t// \t}\n\t// }\n\n\tupdateGlobalDataLocally(images){\n\t\tthis.setState({\n\t\t\tisGrid: true,\n\t\t\tdisableCache: false,\n\t\t\tloading: false\n\t\t});\n\n\t\tthis.props.setImages(images)\n\n\t\tif(!window.react_S3_Gallery)\n\t\t\twindow.react_S3_Gallery = {}\n\t\twindow.react_S3_Gallery[this.props.s3.path] = images\n\t}\n\n\tinputChange(e){\n\t\tif (e && e.key !== \"Enter\") return;\n\t\tlet query = (event && event.target.value);\n\t\tthis.search(query)\n\t}\n\n\treset(){\n\t\tthis.setState({\n\t\t\timageSelectedIndex: null\n\t\t})\n\t\tthis.updateGlobalDataLocally([]);\n\t\tthis.searchInputEle.current.value = '';\n\t}\n\n\tsearch(query) {\n\t\t// Temporary --\n\t\tif(!query || !query.trim()) return;\n\t\t// --\n\t\tquery = query || '__getDefaultImgs__'\n\t\tthis.setState({loading: true, imageSelectedIndex: null})\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${this.props.server}/search/${query}?disableCache=${\n\t\t\t\t\tthis.state.disableCache\n\t\t\t\t}`,\n\t\t\t\t{\n\t\t\t\t\ts3Bucket: this.props.s3.bucket,\n\t\t\t\t\ts3Path: this.props.s3.path\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then(response => {\n\t\t\t\tlet images = response.data.map(image => {\n\t\t\t\t\timage.url = `${this.props.cdn}/${image.slug}`;\n\t\t\t\t\treturn image;\n\t\t\t\t});\n\t\t\t\tthis.updateGlobalDataLocally(images)\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\timages: [],\n\t\t\t\t\tisGrid: true,\n\t\t\t\t\tloading: false\n\t\t\t\t});\n\t\t\t})\n\t}\n\n\topenPreview = (url) => () => {\n\t\twindow.open(url, '_blank')\n\t}\n\n\tselectionBar(){\n\t\tif(this.state.imageSelectedIndex == null) return null\n\t\tlet imageSlug = this.props.images[this.state.imageSelectedIndex].slug\n\t\tlet url = this.props.images[this.state.imageSelectedIndex].url\n\t\treturn(\n\t\t\t
    \n\t\t\t\t{imageSlug}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{this.props.showDimensions &&

    Dimensions mentioned as width x height in pixels.

    }\n\t\t\t\t
    \n\t\t\t\t\t{!this.state.loading && this.props.images && this.props.images.length ? (\n\t\t\t\t\t\tthis.props.images.map((image,i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t this.setState({imageSelectedIndex: i})}\n\t\t\t\t\t\t\t\t>\n\n\t\t\t\t\t\t\t\t\t{this.state.imageSelectedIndex == i &&
    }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    {image.slug}
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.loading?
    :Try searching for something.}\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t{this.selectionBar()}\n\t\t\t\n\t\t);\n\t}\n}\n","let STANDARD_ASPECT_RATIOS = [\n [1, '1:1'],\n [4 / 3, '4:3'],\n [5 / 4, '5:4'],\n [3 / 2, '3:2'],\n [16 / 10, '16:10'],\n [16 / 9, '16:9'],\n [21 / 9, '21:9'],\n [32 / 9, '32:9'],\n]\nlet RATIOS = STANDARD_ASPECT_RATIOS.map(function (tpl) { return tpl[0] }).sort()\nlet LOOKUP = Object()\nfor (let i = 0; i < STANDARD_ASPECT_RATIOS.length; i++) {\n LOOKUP[STANDARD_ASPECT_RATIOS[i][0]] = STANDARD_ASPECT_RATIOS[i][1]\n}\n\n/*\nFind the closest value in a sorted array\n*/\nfunction findClosest(arrSorted, value) {\n let closest = arrSorted[0]\n let closestDiff = Math.abs(arrSorted[0] - value)\n for (let i = 1; i < arrSorted.length; i++) {\n let diff = Math.abs(arrSorted[i] - value)\n if (diff < closestDiff) {\n closestDiff = diff\n closest = arrSorted[i]\n } else {\n return closest\n }\n }\n return arrSorted[arrSorted.length - 1]\n}\n\n/*\nEstimate the aspect ratio based on width x height\n*/\nexport function estimateAspectRatio(width, height, errorAllowed, aspectRatio) {\n let ratio = width / height; \n if (ratio in LOOKUP) {\n return LOOKUP[ratio] === aspectRatio\n }\n\n // Look by approximation\n let closest = findClosest(RATIOS, ratio)\n if (Math.abs(closest - ratio) <= errorAllowed / 100) {\n return LOOKUP[closest] === aspectRatio\n }\n\n return false\n}\n\n/*\nEstimate the approximate width x height with error buffer\n*/\nexport function approximateDimensions(dimensions, requiredDimensions, errorAllowed) {\n\treturn new Promise((resolve) => {\n\t\tlet approxMinWidth = errorAllowed / 100 * requiredDimensions.width - requiredDimensions.width \n\t\tlet approxMinHeight = errorAllowed / 100 * requiredDimensions.height - requiredDimensions.height\n\t\tlet approxMaxWidth = errorAllowed / 100 * requiredDimensions.width + requiredDimensions.width \n\t\tlet approxMaxHeight = errorAllowed / 100 * requiredDimensions.height + requiredDimensions.height\n\t\tresolve({ widthError: dimensions.width < approxMaxWidth && dimensions.width > approxMinWidth , heightError: dimensions.height < approxMaxHeight && dimensions.height > approxMinHeight })\n\t})\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./uploader.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport { validate } from \"./../helpers/validators\"\nimport SafeImage from \"../components/SafeImage\";\n\nexport default class Uploader extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tform: {},\n\t\t\terrors: null,\n\t\t\ttitleValid: true\n\t\t};\n\t}\n\n\tstatic propTypes = {\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\trestrictions: PropTypes.object,\n\t\taccept: PropTypes.string\n\t}\n\n\tfileChangeListener = e => {\n\t\tlet files = e.target.files\n\t\tif(files && files[0]) {\n\t\t\tthis.setFile(files[0])\n\t\t}\n\t};\n\n\tsetFile = file => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: this.getFilePreviewUrl(file),\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile\n\t\t\t},\n\t\t\terrors: null\n\t\t})\n\t}\n\n\tgetFilePreviewUrl = file => {\n\t\treturn file.type && file.type.startsWith('image/') ? URL.createObjectURL(file) : null\n\t}\n\n\ttitleChangeListener = e => {\n\t\tif(!/[^\\w\\d-]/.test(e.target.value)) {\n\t\t\tthis.setState({\n\t\t\t\tform: {\n\t\t\t\t\t...this.state.form,\n\t\t\t\t\ttitle: e.target.value\n\t\t\t\t},\n\t\t\t\ttitleValid: true\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({ titleValid: false })\n\t\t}\n\t}\n\n\tclearImage = () => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: null,\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile: null\n\t\t\t}\n\t\t});\n\t}\n\n\tupload = e => {\n\t\tthis.setState({ loading: true });\n\t\te.preventDefault();\n\t\tlet formData = new FormData();\n\t\tformData.append(\"title\", this.state.form.title);\n\t\tformData.append(\"file\", this.state.form.file);\n\t\tformData.append(\"s3Bucket\", this.props.s3.bucket);\n\t\tformData.append(\"s3Path\", this.props.s3.path);\n\t\tformData.append(\"accept\", this.props.accept);\n\t\taxios({\n\t\t\tmethod: \"post\",\n\t\t\turl: `${this.props.server}/upload`,\n\t\t\tdata: formData,\n\t\t\tconfig: { headers: { \"Content-Type\": \"multipart/form-data\" } }\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tthis.props.select(response.data.slug)\n\t\t\t\tthis.setState({ form: {} })\n\t\t\t})\n\t\t\t.catch(function(error) {\n\t\t\t\talert(`Sorry couldn't upload the file. Try again`)\n\t\t\t}).finally(() => {\n\t\t\t\tthis.setState({ loading: false })\n\t\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tclear[x]\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t\t{!this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDrop a file here or choose one by clicking here\n\t\t\t\t\t\t\n\t\t\t\t\t
    }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.state.loading\n\t\t\t\t\t\t\t? \"Uploading...\"\n\t\t\t\t\t\t\t: \"UPLOAD\"}\n\t\t\t\t\t\n\t\t\t\t\t{this.state.errors && Array.isArray(this.state.errors) &&\n\t\t\t\t\t\t
    {this.state.errors.map((e , i) =>\n\t\t\t\t\t\t\t

    {e}

    \n\t\t\t\t\t\t)}
    }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./styles.css\";\n\nimport Grid from \"./Grid/grid\";\nimport Uploader from \"./Uploader/uploader\";\n\nexport default class Gallery extends Component {\n\tstatic propTypes = {\n\t\tconfig: PropTypes.object,\n\t\tisActive: PropTypes.bool,\n\t\tuploaded: PropTypes.func,\n\t\tuploaderConfig: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tstatic defaultProps = {\n\t\tconfig: {},\n\t\tisActive: false,\n\t\tuploaderConfig: {\n\t\t\taccept: '.png, .jpg, .jpeg'\n\t\t},\n\t\tshowDimensions: false\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\timages: [],\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...props.config.style,\n\t\t\t\twidth: this.props.config.style.width || 30,\n\t\t\t\talign: `flex-${props.config.style.align || \"right\"}`\n\t\t\t},\n\t\t};\n\t}\n\n\tselectFinal = slug => {\n\t\tlet data;\n\t\tif (slug) {\n\t\t\tdata = {\n\t\t\t\timageUrl: `${this.props.config.cdn}/${slug}`,\n\t\t\t\timageSlug: slug.substr(0, slug.lastIndexOf(\".\")) || slug,\n\t\t\t\tfilename: slug\n\t\t\t};\n\t\t}\n\t\tthis.setState({\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...this.state.style,\n\t\t\t\twidth: 0,\n\t\t\t},\n\t\t});\n\t\tsetTimeout(() => this.props.onClose(data), 200);\n\t};\n\n\tsetImages = (images) => {\n\t\tthis.setState({ images })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tGallery\n\t\t\t\t\t
    \n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'grid'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'grid'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSearch\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'upload'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'upload'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tUpload New\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t this.selectFinal()}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n"],"names":["cookies","require$$0","require$$1","defaults","InterceptorManager","Cancel","Axios","require$$2","require$$3","SafeImage","props","onError","setState","defaultIcon","onLoad","e","dimensions","target","clientWidth","clientHeight","state","src","showDimensions","errored","position","right","top","fontSize","background","padding","borderRadius","alt","url","className","React","Component","propTypes","PropTypes","string","bool","Grid","openPreview","open","searchInputEle","createRef","search","bind","inputChange","images","setImages","window","react_S3_Gallery","s3","path","key","query","event","value","updateGlobalDataLocally","current","trim","loading","imageSelectedIndex","post","server","disableCache","bucket","then","response","data","map","cdn","image","slug","catch","error","imageSlug","styles","selectionBar","selectionBarButtons","homeStyles","galleryButton","previewButton","selectionButton","select","containerStyles","searchWrapper","searchIcon","galleryInput","searchBar","reset","searchButton","backgroundColor","marginLeft","opacity","grid","length","i","borderColor","gridImageWrapper","test","gridImageDarkWrapper","gridOverlay","gridImage","gridFooter","info","galleryLoading","object","func","STANDARD_ASPECT_RATIOS","RATIOS","tpl","sort","LOOKUP","Object","Uploader","fileChangeListener","files","setFile","getFilePreviewUrl","file","form","type","startsWith","URL","createObjectURL","titleChangeListener","titleValid","clearImage","upload","preventDefault","formData","FormData","append","title","accept","headers","finally","uploader","imagePreview","previewImage","imagePreviewSrc","fileUploader","fileUploaderInput","titleLabel","submit","errors","Array","isArray","errorMessage","Gallery","selectFinal","config","substr","lastIndexOf","style","onClose","width","align","modal","isActive","isModalActive","header","navList","navItem","tab","navItemActive","closeBtn","display","uploadRestrictions","uploaderConfig","defaultProps"],"mappings":"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"} \ No newline at end of file diff --git a/dist/index.js b/dist/index.js index d62f019..ab61b97 100644 --- a/dist/index.js +++ b/dist/index.js @@ -1404,7 +1404,8 @@ var SafeImage = function (_React$Component) { src: this.state.url, onError: this.onError, className: this.props.className, - onLoad: this.onLoad + onLoad: this.onLoad, + loading: 'lazy' }) ); } @@ -1444,16 +1445,17 @@ var Grid = function (_Component) { return _this; } + // componentDidUpdate(prevProps){ + // if(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){ + // if(window && this.props.s3.path){ + // if(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) + // this.search(); + // else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]) + // } + // } + // } + createClass(Grid, [{ - key: "componentDidUpdate", - value: function componentDidUpdate(prevProps) { - if (this.props.defaultSearch && prevProps.defaultSearch != this.props.defaultSearch) { - if (window && this.props.s3.path) { - if (!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) this.search();else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]); - } - } - } - }, { key: "updateGlobalDataLocally", value: function updateGlobalDataLocally(images) { this.setState({ @@ -1488,6 +1490,9 @@ var Grid = function (_Component) { value: function search(query) { var _this2 = this; + // Temporary -- + if (!query || !query.trim()) return; + // -- query = query || '__getDefaultImgs__'; this.setState({ loading: true, imageSelectedIndex: null }); axios$1.post(this.props.server + "/search/" + query + "?disableCache=" + this.state.disableCache, { @@ -1625,7 +1630,7 @@ var Grid = function (_Component) { this.state.loading ? React__default.createElement("div", { className: homeStyles.galleryLoading }) : React__default.createElement( "span", null, - "No files. Try searching for something." + "Try searching for something." ) ) ), @@ -1880,18 +1885,6 @@ var Gallery = function (_Component) { } createClass(Gallery, [{ - key: "spriteNote", - value: function spriteNote() { - var SPRITE_PATH = "sprites/images"; - if (this.props.config.s3.path == SPRITE_PATH) { - return React__default.createElement( - "span", - { className: homeStyles.note }, - "Note: Image slug you select would be reflected only after save." - ); - } - } - }, { key: "render", value: function render() { var _this2 = this; @@ -1970,7 +1963,6 @@ var Gallery = function (_Component) { ) ) ), - this.spriteNote(), React__default.createElement(Grid, _extends({ containerStyles: { display: this.state.tab === 'grid' ? '' : 'none' } }, this.props.config, { diff --git a/dist/index.js.map b/dist/index.js.map index 18c639c..2c0aa44 100644 --- a/dist/index.js.map +++ b/dist/index.js.map @@ -1 +1 @@ -{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/is-buffer/index.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/defaultIcon.png","../src/components/SafeImage.js","../src/Grid/grid.js","../src/helpers/util.js","../src/Uploader/uploader.js","../src/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","export default \"data:image/png;base64,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\"","import React from 'react';\nimport defaultIcon from './defaultIcon.png';\nimport PropTypes from 'prop-types';\n\nexport default class SafeImage extends React.Component {\n\tstatic propTypes = {\n\t\tsrc: PropTypes.string,\n\t\talt: PropTypes.string,\n\t\tclassName: PropTypes.string,\n\t\tshowDimensions: PropTypes.bool\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\turl: props.src || defaultIcon,\n\t\t\tdimensions: '',\n\t\t\terrored: false\n\t\t}\n\t}\n\n\tonError = () => {\n\t\tthis.setState({\n\t\t\turl: defaultIcon,\n\t\t\terrored: true\n\t\t});\n\t}\n\n\tonLoad = (e) => {\n\t\tthis.setState({ dimensions: `${e.target.clientWidth} x ${e.target.clientHeight}` })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.showDimensions && !this.state.errored && {this.state.dimensions}}\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./grid.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport SafeImage from \"../components/SafeImage\"\n\nexport default class Grid extends Component {\n\tstatic propTypes = {\n\t\tcdn: PropTypes.string,\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tdisableCache: true,\n\t\t\timageSelectedIndex: null,\n\t\t\tloading: false\n\t\t};\n\t\tthis.searchInputEle = React.createRef();\n\t\tthis.search = this.search.bind(this);\n\t\tthis.inputChange = this.inputChange.bind(this)\n\t}\n\n\tcomponentDidUpdate(prevProps){\n\t\tif(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){\n\t\t\tif(window && this.props.s3.path){\n\t\t\t\tif(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path])\n\t\t\t\t\tthis.search();\n\t\t\t\telse this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path])\n\t\t\t}\n\t\t}\n\t}\n\n\tupdateGlobalDataLocally(images){\n\t\tthis.setState({\n\t\t\tisGrid: true,\n\t\t\tdisableCache: false,\n\t\t\tloading: false\n\t\t});\n\n\t\tthis.props.setImages(images)\n\n\t\tif(!window.react_S3_Gallery)\n\t\t\twindow.react_S3_Gallery = {}\n\t\twindow.react_S3_Gallery[this.props.s3.path] = images\n\t}\n\n\tinputChange(e){\n\t\tif (e && e.key !== \"Enter\") return;\n\t\tlet query = (event && event.target.value);\n\t\tthis.search(query)\n\t}\n\n\treset(){\n\t\tthis.setState({\n\t\t\timageSelectedIndex: null\n\t\t})\n\t\tthis.updateGlobalDataLocally([]);\n\t\tthis.searchInputEle.current.value = '';\n\t}\n\n\tsearch(query) {\n\t\tquery = query || '__getDefaultImgs__'\n\t\tthis.setState({loading: true, imageSelectedIndex: null})\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${this.props.server}/search/${query}?disableCache=${\n\t\t\t\t\tthis.state.disableCache\n\t\t\t\t}`,\n\t\t\t\t{\n\t\t\t\t\ts3Bucket: this.props.s3.bucket,\n\t\t\t\t\ts3Path: this.props.s3.path\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then(response => {\n\t\t\t\tlet images = response.data.map(image => {\n\t\t\t\t\timage.url = `${this.props.cdn}/${image.slug}`;\n\t\t\t\t\treturn image;\n\t\t\t\t});\n\t\t\t\tthis.updateGlobalDataLocally(images)\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\timages: [],\n\t\t\t\t\tisGrid: true,\n\t\t\t\t\tloading: false\n\t\t\t\t});\n\t\t\t})\n\t}\n\n\topenPreview = (url) => () => {\n\t\twindow.open(url, '_blank')\n\t}\n\n\tselectionBar(){\n\t\tif(this.state.imageSelectedIndex == null) return null\n\t\tlet imageSlug = this.props.images[this.state.imageSelectedIndex].slug\n\t\tlet url = this.props.images[this.state.imageSelectedIndex].url\n\t\treturn(\n\t\t\t
    \n\t\t\t\t{imageSlug}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{this.props.showDimensions &&

    Dimensions mentioned as width x height in pixels.

    }\n\t\t\t\t
    \n\t\t\t\t\t{!this.state.loading && this.props.images && this.props.images.length ? (\n\t\t\t\t\t\tthis.props.images.map((image,i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t this.setState({imageSelectedIndex: i})}\n\t\t\t\t\t\t\t\t>\n\n\t\t\t\t\t\t\t\t\t{this.state.imageSelectedIndex == i &&
    }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    {image.slug}
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.loading?
    :No files. Try searching for something.}\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t{this.selectionBar()}\n\t\t\t\n\t\t);\n\t}\n}\n","let STANDARD_ASPECT_RATIOS = [\n [1, '1:1'],\n [4 / 3, '4:3'],\n [5 / 4, '5:4'],\n [3 / 2, '3:2'],\n [16 / 10, '16:10'],\n [16 / 9, '16:9'],\n [21 / 9, '21:9'],\n [32 / 9, '32:9'],\n]\nlet RATIOS = STANDARD_ASPECT_RATIOS.map(function (tpl) { return tpl[0] }).sort()\nlet LOOKUP = Object()\nfor (let i = 0; i < STANDARD_ASPECT_RATIOS.length; i++) {\n LOOKUP[STANDARD_ASPECT_RATIOS[i][0]] = STANDARD_ASPECT_RATIOS[i][1]\n}\n\n/*\nFind the closest value in a sorted array\n*/\nfunction findClosest(arrSorted, value) {\n let closest = arrSorted[0]\n let closestDiff = Math.abs(arrSorted[0] - value)\n for (let i = 1; i < arrSorted.length; i++) {\n let diff = Math.abs(arrSorted[i] - value)\n if (diff < closestDiff) {\n closestDiff = diff\n closest = arrSorted[i]\n } else {\n return closest\n }\n }\n return arrSorted[arrSorted.length - 1]\n}\n\n/*\nEstimate the aspect ratio based on width x height\n*/\nexport function estimateAspectRatio(width, height, errorAllowed, aspectRatio) {\n let ratio = width / height; \n if (ratio in LOOKUP) {\n return LOOKUP[ratio] === aspectRatio\n }\n\n // Look by approximation\n let closest = findClosest(RATIOS, ratio)\n if (Math.abs(closest - ratio) <= errorAllowed / 100) {\n return LOOKUP[closest] === aspectRatio\n }\n\n return false\n}\n\n/*\nEstimate the approximate width x height with error buffer\n*/\nexport function approximateDimensions(dimensions, requiredDimensions, errorAllowed) {\n\treturn new Promise((resolve) => {\n\t\tlet approxMinWidth = errorAllowed / 100 * requiredDimensions.width - requiredDimensions.width \n\t\tlet approxMinHeight = errorAllowed / 100 * requiredDimensions.height - requiredDimensions.height\n\t\tlet approxMaxWidth = errorAllowed / 100 * requiredDimensions.width + requiredDimensions.width \n\t\tlet approxMaxHeight = errorAllowed / 100 * requiredDimensions.height + requiredDimensions.height\n\t\tresolve({ widthError: dimensions.width < approxMaxWidth && dimensions.width > approxMinWidth , heightError: dimensions.height < approxMaxHeight && dimensions.height > approxMinHeight })\n\t})\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./uploader.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport { validate } from \"./../helpers/validators\"\nimport SafeImage from \"../components/SafeImage\";\n\nexport default class Uploader extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tform: {},\n\t\t\terrors: null,\n\t\t\ttitleValid: true\n\t\t};\n\t}\n\n\tstatic propTypes = {\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\trestrictions: PropTypes.object,\n\t\taccept: PropTypes.string\n\t}\n\n\tfileChangeListener = e => {\n\t\tlet files = e.target.files\n\t\tif(files && files[0]) {\n\t\t\tthis.setFile(files[0])\n\t\t}\n\t};\n\n\tsetFile = file => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: this.getFilePreviewUrl(file),\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile\n\t\t\t},\n\t\t\terrors: null\n\t\t})\n\t}\n\n\tgetFilePreviewUrl = file => {\n\t\treturn file.type && file.type.startsWith('image/') ? URL.createObjectURL(file) : null\n\t}\n\n\ttitleChangeListener = e => {\n\t\tif(!/[^\\w\\d-]/.test(e.target.value)) {\n\t\t\tthis.setState({\n\t\t\t\tform: {\n\t\t\t\t\t...this.state.form,\n\t\t\t\t\ttitle: e.target.value\n\t\t\t\t},\n\t\t\t\ttitleValid: true\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({ titleValid: false })\n\t\t}\n\t}\n\n\tclearImage = () => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: null,\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile: null\n\t\t\t}\n\t\t});\n\t}\n\n\tupload = e => {\n\t\tthis.setState({ loading: true });\n\t\te.preventDefault();\n\t\tlet formData = new FormData();\n\t\tformData.append(\"title\", this.state.form.title);\n\t\tformData.append(\"file\", this.state.form.file);\n\t\tformData.append(\"s3Bucket\", this.props.s3.bucket);\n\t\tformData.append(\"s3Path\", this.props.s3.path);\n\t\tformData.append(\"accept\", this.props.accept);\n\t\taxios({\n\t\t\tmethod: \"post\",\n\t\t\turl: `${this.props.server}/upload`,\n\t\t\tdata: formData,\n\t\t\tconfig: { headers: { \"Content-Type\": \"multipart/form-data\" } }\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tthis.props.select(response.data.slug)\n\t\t\t\tthis.setState({ form: {} })\n\t\t\t})\n\t\t\t.catch(function(error) {\n\t\t\t\talert(`Sorry couldn't upload the file. Try again`)\n\t\t\t}).finally(() => {\n\t\t\t\tthis.setState({ loading: false })\n\t\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tclear[x]\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t\t{!this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDrop a file here or choose one by clicking here\n\t\t\t\t\t\t\n\t\t\t\t\t
    }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.state.loading\n\t\t\t\t\t\t\t? \"Uploading...\"\n\t\t\t\t\t\t\t: \"UPLOAD\"}\n\t\t\t\t\t\n\t\t\t\t\t{this.state.errors && Array.isArray(this.state.errors) &&\n\t\t\t\t\t\t
    {this.state.errors.map((e , i) =>\n\t\t\t\t\t\t\t

    {e}

    \n\t\t\t\t\t\t)}
    }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./styles.css\";\n\nimport Grid from \"./Grid/grid\";\nimport Uploader from \"./Uploader/uploader\";\n\nexport default class Gallery extends Component {\n\tstatic propTypes = {\n\t\tconfig: PropTypes.object,\n\t\tisActive: PropTypes.bool,\n\t\tuploaded: PropTypes.func,\n\t\tuploaderConfig: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tstatic defaultProps = {\n\t\tconfig: {},\n\t\tisActive: false,\n\t\tuploaderConfig: {\n\t\t\taccept: '.png, .jpg, .jpeg'\n\t\t},\n\t\tshowDimensions: false\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\timages: [],\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...props.config.style,\n\t\t\t\twidth: this.props.config.style.width || 30,\n\t\t\t\talign: `flex-${props.config.style.align || \"right\"}`\n\t\t\t},\n\t\t};\n\t}\n\n\tselectFinal = slug => {\n\t\tlet data;\n\t\tif (slug) {\n\t\t\tdata = {\n\t\t\t\timageUrl: `${this.props.config.cdn}/${slug}`,\n\t\t\t\timageSlug: slug.substr(0, slug.lastIndexOf(\".\")) || slug,\n\t\t\t\tfilename: slug\n\t\t\t};\n\t\t}\n\t\tthis.setState({\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...this.state.style,\n\t\t\t\twidth: 0,\n\t\t\t},\n\t\t});\n\t\tsetTimeout(() => this.props.onClose(data), 200);\n\t};\n\n\tspriteNote() {\n\t\tconst SPRITE_PATH = \"sprites/images\";\n\t\tif (this.props.config.s3.path == SPRITE_PATH) {\n\t\t\treturn (\n\t\t\t\t\n\t\t\t\t\tNote: Image slug you select would be reflected only after\n\t\t\t\t\tsave.\n\t\t\t\t\n\t\t\t);\n\t\t}\n\t}\n\n\tsetImages = (images) => {\n\t\tthis.setState({ images })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tGallery\n\t\t\t\t\t
    \n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'grid'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'grid'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSearch\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'upload'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'upload'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tUpload New\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t this.selectFinal()}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t{this.spriteNote()}\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n"],"names":["cookies","require$$0","require$$1","defaults","InterceptorManager","Cancel","Axios","require$$2","require$$3","SafeImage","props","onError","setState","defaultIcon","onLoad","e","dimensions","target","clientWidth","clientHeight","state","src","React","showDimensions","errored","position","right","top","fontSize","background","padding","borderRadius","alt","url","className","Component","propTypes","PropTypes","string","bool","Grid","openPreview","open","searchInputEle","createRef","search","bind","inputChange","prevProps","defaultSearch","window","s3","path","react_S3_Gallery","updateGlobalDataLocally","images","setImages","key","query","event","value","current","loading","imageSelectedIndex","post","server","disableCache","bucket","then","response","data","map","cdn","image","slug","catch","error","imageSlug","styles","selectionBar","selectionBarButtons","homeStyles","galleryButton","previewButton","selectionButton","select","containerStyles","searchWrapper","searchIcon","galleryInput","searchBar","reset","searchButton","backgroundColor","marginLeft","opacity","grid","length","i","borderColor","gridImageWrapper","test","gridImageDarkWrapper","gridOverlay","gridImage","gridFooter","info","galleryLoading","object","func","STANDARD_ASPECT_RATIOS","RATIOS","tpl","sort","LOOKUP","Object","Uploader","fileChangeListener","files","setFile","getFilePreviewUrl","file","form","type","startsWith","URL","createObjectURL","titleChangeListener","titleValid","clearImage","upload","preventDefault","formData","FormData","append","title","accept","headers","finally","uploader","imagePreview","previewImage","imagePreviewSrc","fileUploader","fileUploaderInput","titleLabel","submit","errors","Array","isArray","errorMessage","Gallery","selectFinal","config","substr","lastIndexOf","style","onClose","width","align","SPRITE_PATH","note","modal","isActive","isModalActive","header","navList","navItem","tab","navItemActive","closeBtn","spriteNote","display","uploadRestrictions","uploaderConfig","defaultProps"],"mappings":"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"} \ No newline at end of file +{"version":3,"file":"index.js","sources":["../node_modules/style-inject/dist/style-inject.es.js","../node_modules/axios/lib/helpers/bind.js","../node_modules/is-buffer/index.js","../node_modules/axios/lib/utils.js","../node_modules/axios/lib/helpers/normalizeHeaderName.js","../node_modules/axios/lib/core/enhanceError.js","../node_modules/axios/lib/core/createError.js","../node_modules/axios/lib/core/settle.js","../node_modules/axios/lib/helpers/buildURL.js","../node_modules/axios/lib/helpers/parseHeaders.js","../node_modules/axios/lib/helpers/isURLSameOrigin.js","../node_modules/axios/lib/helpers/cookies.js","../node_modules/axios/lib/adapters/xhr.js","../node_modules/axios/lib/defaults.js","../node_modules/axios/lib/core/InterceptorManager.js","../node_modules/axios/lib/core/transformData.js","../node_modules/axios/lib/cancel/isCancel.js","../node_modules/axios/lib/helpers/isAbsoluteURL.js","../node_modules/axios/lib/helpers/combineURLs.js","../node_modules/axios/lib/core/dispatchRequest.js","../node_modules/axios/lib/core/Axios.js","../node_modules/axios/lib/cancel/Cancel.js","../node_modules/axios/lib/cancel/CancelToken.js","../node_modules/axios/lib/helpers/spread.js","../node_modules/axios/lib/axios.js","../node_modules/axios/index.js","../src/components/defaultIcon.png","../src/components/SafeImage.js","../src/Grid/grid.js","../src/helpers/util.js","../src/Uploader/uploader.js","../src/index.js"],"sourcesContent":["function styleInject(css, ref) {\n if ( ref === void 0 ) ref = {};\n var insertAt = ref.insertAt;\n\n if (!css || typeof document === 'undefined') { return; }\n\n var head = document.head || document.getElementsByTagName('head')[0];\n var style = document.createElement('style');\n style.type = 'text/css';\n\n if (insertAt === 'top') {\n if (head.firstChild) {\n head.insertBefore(style, head.firstChild);\n } else {\n head.appendChild(style);\n }\n } else {\n head.appendChild(style);\n }\n\n if (style.styleSheet) {\n style.styleSheet.cssText = css;\n } else {\n style.appendChild(document.createTextNode(css));\n }\n}\n\nexport default styleInject;\n","'use strict';\n\nmodule.exports = function bind(fn, thisArg) {\n return function wrap() {\n var args = new Array(arguments.length);\n for (var i = 0; i < args.length; i++) {\n args[i] = arguments[i];\n }\n return fn.apply(thisArg, args);\n };\n};\n","/*!\n * Determine if an object is a Buffer\n *\n * @author Feross Aboukhadijeh \n * @license MIT\n */\n\nmodule.exports = function isBuffer (obj) {\n return obj != null && obj.constructor != null &&\n typeof obj.constructor.isBuffer === 'function' && obj.constructor.isBuffer(obj)\n}\n","'use strict';\n\nvar bind = require('./helpers/bind');\nvar isBuffer = require('is-buffer');\n\n/*global toString:true*/\n\n// utils is a library of generic helper functions non-specific to axios\n\nvar toString = Object.prototype.toString;\n\n/**\n * Determine if a value is an Array\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Array, otherwise false\n */\nfunction isArray(val) {\n return toString.call(val) === '[object Array]';\n}\n\n/**\n * Determine if a value is an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an ArrayBuffer, otherwise false\n */\nfunction isArrayBuffer(val) {\n return toString.call(val) === '[object ArrayBuffer]';\n}\n\n/**\n * Determine if a value is a FormData\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an FormData, otherwise false\n */\nfunction isFormData(val) {\n return (typeof FormData !== 'undefined') && (val instanceof FormData);\n}\n\n/**\n * Determine if a value is a view on an ArrayBuffer\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a view on an ArrayBuffer, otherwise false\n */\nfunction isArrayBufferView(val) {\n var result;\n if ((typeof ArrayBuffer !== 'undefined') && (ArrayBuffer.isView)) {\n result = ArrayBuffer.isView(val);\n } else {\n result = (val) && (val.buffer) && (val.buffer instanceof ArrayBuffer);\n }\n return result;\n}\n\n/**\n * Determine if a value is a String\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a String, otherwise false\n */\nfunction isString(val) {\n return typeof val === 'string';\n}\n\n/**\n * Determine if a value is a Number\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Number, otherwise false\n */\nfunction isNumber(val) {\n return typeof val === 'number';\n}\n\n/**\n * Determine if a value is undefined\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if the value is undefined, otherwise false\n */\nfunction isUndefined(val) {\n return typeof val === 'undefined';\n}\n\n/**\n * Determine if a value is an Object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is an Object, otherwise false\n */\nfunction isObject(val) {\n return val !== null && typeof val === 'object';\n}\n\n/**\n * Determine if a value is a Date\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Date, otherwise false\n */\nfunction isDate(val) {\n return toString.call(val) === '[object Date]';\n}\n\n/**\n * Determine if a value is a File\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a File, otherwise false\n */\nfunction isFile(val) {\n return toString.call(val) === '[object File]';\n}\n\n/**\n * Determine if a value is a Blob\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Blob, otherwise false\n */\nfunction isBlob(val) {\n return toString.call(val) === '[object Blob]';\n}\n\n/**\n * Determine if a value is a Function\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Function, otherwise false\n */\nfunction isFunction(val) {\n return toString.call(val) === '[object Function]';\n}\n\n/**\n * Determine if a value is a Stream\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a Stream, otherwise false\n */\nfunction isStream(val) {\n return isObject(val) && isFunction(val.pipe);\n}\n\n/**\n * Determine if a value is a URLSearchParams object\n *\n * @param {Object} val The value to test\n * @returns {boolean} True if value is a URLSearchParams object, otherwise false\n */\nfunction isURLSearchParams(val) {\n return typeof URLSearchParams !== 'undefined' && val instanceof URLSearchParams;\n}\n\n/**\n * Trim excess whitespace off the beginning and end of a string\n *\n * @param {String} str The String to trim\n * @returns {String} The String freed of excess whitespace\n */\nfunction trim(str) {\n return str.replace(/^\\s*/, '').replace(/\\s*$/, '');\n}\n\n/**\n * Determine if we're running in a standard browser environment\n *\n * This allows axios to run in a web worker, and react-native.\n * Both environments support XMLHttpRequest, but not fully standard globals.\n *\n * web workers:\n * typeof window -> undefined\n * typeof document -> undefined\n *\n * react-native:\n * navigator.product -> 'ReactNative'\n */\nfunction isStandardBrowserEnv() {\n if (typeof navigator !== 'undefined' && navigator.product === 'ReactNative') {\n return false;\n }\n return (\n typeof window !== 'undefined' &&\n typeof document !== 'undefined'\n );\n}\n\n/**\n * Iterate over an Array or an Object invoking a function for each item.\n *\n * If `obj` is an Array callback will be called passing\n * the value, index, and complete array for each item.\n *\n * If 'obj' is an Object callback will be called passing\n * the value, key, and complete object for each property.\n *\n * @param {Object|Array} obj The object to iterate\n * @param {Function} fn The callback to invoke for each item\n */\nfunction forEach(obj, fn) {\n // Don't bother if no value provided\n if (obj === null || typeof obj === 'undefined') {\n return;\n }\n\n // Force an array if not already something iterable\n if (typeof obj !== 'object') {\n /*eslint no-param-reassign:0*/\n obj = [obj];\n }\n\n if (isArray(obj)) {\n // Iterate over array values\n for (var i = 0, l = obj.length; i < l; i++) {\n fn.call(null, obj[i], i, obj);\n }\n } else {\n // Iterate over object keys\n for (var key in obj) {\n if (Object.prototype.hasOwnProperty.call(obj, key)) {\n fn.call(null, obj[key], key, obj);\n }\n }\n }\n}\n\n/**\n * Accepts varargs expecting each argument to be an object, then\n * immutably merges the properties of each object and returns result.\n *\n * When multiple objects contain the same key the later object in\n * the arguments list will take precedence.\n *\n * Example:\n *\n * ```js\n * var result = merge({foo: 123}, {foo: 456});\n * console.log(result.foo); // outputs 456\n * ```\n *\n * @param {Object} obj1 Object to merge\n * @returns {Object} Result of all merge properties\n */\nfunction merge(/* obj1, obj2, obj3, ... */) {\n var result = {};\n function assignValue(val, key) {\n if (typeof result[key] === 'object' && typeof val === 'object') {\n result[key] = merge(result[key], val);\n } else {\n result[key] = val;\n }\n }\n\n for (var i = 0, l = arguments.length; i < l; i++) {\n forEach(arguments[i], assignValue);\n }\n return result;\n}\n\n/**\n * Extends object a by mutably adding to it the properties of object b.\n *\n * @param {Object} a The object to be extended\n * @param {Object} b The object to copy properties from\n * @param {Object} thisArg The object to bind function to\n * @return {Object} The resulting value of object a\n */\nfunction extend(a, b, thisArg) {\n forEach(b, function assignValue(val, key) {\n if (thisArg && typeof val === 'function') {\n a[key] = bind(val, thisArg);\n } else {\n a[key] = val;\n }\n });\n return a;\n}\n\nmodule.exports = {\n isArray: isArray,\n isArrayBuffer: isArrayBuffer,\n isBuffer: isBuffer,\n isFormData: isFormData,\n isArrayBufferView: isArrayBufferView,\n isString: isString,\n isNumber: isNumber,\n isObject: isObject,\n isUndefined: isUndefined,\n isDate: isDate,\n isFile: isFile,\n isBlob: isBlob,\n isFunction: isFunction,\n isStream: isStream,\n isURLSearchParams: isURLSearchParams,\n isStandardBrowserEnv: isStandardBrowserEnv,\n forEach: forEach,\n merge: merge,\n extend: extend,\n trim: trim\n};\n","'use strict';\n\nvar utils = require('../utils');\n\nmodule.exports = function normalizeHeaderName(headers, normalizedName) {\n utils.forEach(headers, function processHeader(value, name) {\n if (name !== normalizedName && name.toUpperCase() === normalizedName.toUpperCase()) {\n headers[normalizedName] = value;\n delete headers[name];\n }\n });\n};\n","'use strict';\n\n/**\n * Update an Error with the specified config, error code, and response.\n *\n * @param {Error} error The error to update.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The error.\n */\nmodule.exports = function enhanceError(error, config, code, request, response) {\n error.config = config;\n if (code) {\n error.code = code;\n }\n error.request = request;\n error.response = response;\n return error;\n};\n","'use strict';\n\nvar enhanceError = require('./enhanceError');\n\n/**\n * Create an Error with the specified message, config, error code, request and response.\n *\n * @param {string} message The error message.\n * @param {Object} config The config.\n * @param {string} [code] The error code (for example, 'ECONNABORTED').\n * @param {Object} [request] The request.\n * @param {Object} [response] The response.\n * @returns {Error} The created error.\n */\nmodule.exports = function createError(message, config, code, request, response) {\n var error = new Error(message);\n return enhanceError(error, config, code, request, response);\n};\n","'use strict';\n\nvar createError = require('./createError');\n\n/**\n * Resolve or reject a Promise based on response status.\n *\n * @param {Function} resolve A function that resolves the promise.\n * @param {Function} reject A function that rejects the promise.\n * @param {object} response The response.\n */\nmodule.exports = function settle(resolve, reject, response) {\n var validateStatus = response.config.validateStatus;\n // Note: status is not exposed by XDomainRequest\n if (!response.status || !validateStatus || validateStatus(response.status)) {\n resolve(response);\n } else {\n reject(createError(\n 'Request failed with status code ' + response.status,\n response.config,\n null,\n response.request,\n response\n ));\n }\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction encode(val) {\n return encodeURIComponent(val).\n replace(/%40/gi, '@').\n replace(/%3A/gi, ':').\n replace(/%24/g, '$').\n replace(/%2C/gi, ',').\n replace(/%20/g, '+').\n replace(/%5B/gi, '[').\n replace(/%5D/gi, ']');\n}\n\n/**\n * Build a URL by appending params to the end\n *\n * @param {string} url The base of the url (e.g., http://www.google.com)\n * @param {object} [params] The params to be appended\n * @returns {string} The formatted url\n */\nmodule.exports = function buildURL(url, params, paramsSerializer) {\n /*eslint no-param-reassign:0*/\n if (!params) {\n return url;\n }\n\n var serializedParams;\n if (paramsSerializer) {\n serializedParams = paramsSerializer(params);\n } else if (utils.isURLSearchParams(params)) {\n serializedParams = params.toString();\n } else {\n var parts = [];\n\n utils.forEach(params, function serialize(val, key) {\n if (val === null || typeof val === 'undefined') {\n return;\n }\n\n if (utils.isArray(val)) {\n key = key + '[]';\n } else {\n val = [val];\n }\n\n utils.forEach(val, function parseValue(v) {\n if (utils.isDate(v)) {\n v = v.toISOString();\n } else if (utils.isObject(v)) {\n v = JSON.stringify(v);\n }\n parts.push(encode(key) + '=' + encode(v));\n });\n });\n\n serializedParams = parts.join('&');\n }\n\n if (serializedParams) {\n url += (url.indexOf('?') === -1 ? '?' : '&') + serializedParams;\n }\n\n return url;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\n// Headers whose duplicates are ignored by node\n// c.f. https://nodejs.org/api/http.html#http_message_headers\nvar ignoreDuplicateOf = [\n 'age', 'authorization', 'content-length', 'content-type', 'etag',\n 'expires', 'from', 'host', 'if-modified-since', 'if-unmodified-since',\n 'last-modified', 'location', 'max-forwards', 'proxy-authorization',\n 'referer', 'retry-after', 'user-agent'\n];\n\n/**\n * Parse headers into an object\n *\n * ```\n * Date: Wed, 27 Aug 2014 08:58:49 GMT\n * Content-Type: application/json\n * Connection: keep-alive\n * Transfer-Encoding: chunked\n * ```\n *\n * @param {String} headers Headers needing to be parsed\n * @returns {Object} Headers parsed into an object\n */\nmodule.exports = function parseHeaders(headers) {\n var parsed = {};\n var key;\n var val;\n var i;\n\n if (!headers) { return parsed; }\n\n utils.forEach(headers.split('\\n'), function parser(line) {\n i = line.indexOf(':');\n key = utils.trim(line.substr(0, i)).toLowerCase();\n val = utils.trim(line.substr(i + 1));\n\n if (key) {\n if (parsed[key] && ignoreDuplicateOf.indexOf(key) >= 0) {\n return;\n }\n if (key === 'set-cookie') {\n parsed[key] = (parsed[key] ? parsed[key] : []).concat([val]);\n } else {\n parsed[key] = parsed[key] ? parsed[key] + ', ' + val : val;\n }\n }\n });\n\n return parsed;\n};\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs have full support of the APIs needed to test\n // whether the request URL is of the same origin as current location.\n (function standardBrowserEnv() {\n var msie = /(msie|trident)/i.test(navigator.userAgent);\n var urlParsingNode = document.createElement('a');\n var originURL;\n\n /**\n * Parse a URL to discover it's components\n *\n * @param {String} url The URL to be parsed\n * @returns {Object}\n */\n function resolveURL(url) {\n var href = url;\n\n if (msie) {\n // IE needs attribute set twice to normalize properties\n urlParsingNode.setAttribute('href', href);\n href = urlParsingNode.href;\n }\n\n urlParsingNode.setAttribute('href', href);\n\n // urlParsingNode provides the UrlUtils interface - http://url.spec.whatwg.org/#urlutils\n return {\n href: urlParsingNode.href,\n protocol: urlParsingNode.protocol ? urlParsingNode.protocol.replace(/:$/, '') : '',\n host: urlParsingNode.host,\n search: urlParsingNode.search ? urlParsingNode.search.replace(/^\\?/, '') : '',\n hash: urlParsingNode.hash ? urlParsingNode.hash.replace(/^#/, '') : '',\n hostname: urlParsingNode.hostname,\n port: urlParsingNode.port,\n pathname: (urlParsingNode.pathname.charAt(0) === '/') ?\n urlParsingNode.pathname :\n '/' + urlParsingNode.pathname\n };\n }\n\n originURL = resolveURL(window.location.href);\n\n /**\n * Determine if a URL shares the same origin as the current location\n *\n * @param {String} requestURL The URL to test\n * @returns {boolean} True if URL shares the same origin, otherwise false\n */\n return function isURLSameOrigin(requestURL) {\n var parsed = (utils.isString(requestURL)) ? resolveURL(requestURL) : requestURL;\n return (parsed.protocol === originURL.protocol &&\n parsed.host === originURL.host);\n };\n })() :\n\n // Non standard browser envs (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return function isURLSameOrigin() {\n return true;\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\n\nmodule.exports = (\n utils.isStandardBrowserEnv() ?\n\n // Standard browser envs support document.cookie\n (function standardBrowserEnv() {\n return {\n write: function write(name, value, expires, path, domain, secure) {\n var cookie = [];\n cookie.push(name + '=' + encodeURIComponent(value));\n\n if (utils.isNumber(expires)) {\n cookie.push('expires=' + new Date(expires).toGMTString());\n }\n\n if (utils.isString(path)) {\n cookie.push('path=' + path);\n }\n\n if (utils.isString(domain)) {\n cookie.push('domain=' + domain);\n }\n\n if (secure === true) {\n cookie.push('secure');\n }\n\n document.cookie = cookie.join('; ');\n },\n\n read: function read(name) {\n var match = document.cookie.match(new RegExp('(^|;\\\\s*)(' + name + ')=([^;]*)'));\n return (match ? decodeURIComponent(match[3]) : null);\n },\n\n remove: function remove(name) {\n this.write(name, '', Date.now() - 86400000);\n }\n };\n })() :\n\n // Non standard browser env (web workers, react-native) lack needed support.\n (function nonStandardBrowserEnv() {\n return {\n write: function write() {},\n read: function read() { return null; },\n remove: function remove() {}\n };\n })()\n);\n","'use strict';\n\nvar utils = require('./../utils');\nvar settle = require('./../core/settle');\nvar buildURL = require('./../helpers/buildURL');\nvar parseHeaders = require('./../helpers/parseHeaders');\nvar isURLSameOrigin = require('./../helpers/isURLSameOrigin');\nvar createError = require('../core/createError');\n\nmodule.exports = function xhrAdapter(config) {\n return new Promise(function dispatchXhrRequest(resolve, reject) {\n var requestData = config.data;\n var requestHeaders = config.headers;\n\n if (utils.isFormData(requestData)) {\n delete requestHeaders['Content-Type']; // Let the browser set it\n }\n\n var request = new XMLHttpRequest();\n\n // HTTP basic authentication\n if (config.auth) {\n var username = config.auth.username || '';\n var password = config.auth.password || '';\n requestHeaders.Authorization = 'Basic ' + btoa(username + ':' + password);\n }\n\n request.open(config.method.toUpperCase(), buildURL(config.url, config.params, config.paramsSerializer), true);\n\n // Set the request timeout in MS\n request.timeout = config.timeout;\n\n // Listen for ready state\n request.onreadystatechange = function handleLoad() {\n if (!request || request.readyState !== 4) {\n return;\n }\n\n // The request errored out and we didn't get a response, this will be\n // handled by onerror instead\n // With one exception: request that using file: protocol, most browsers\n // will return status as 0 even though it's a successful request\n if (request.status === 0 && !(request.responseURL && request.responseURL.indexOf('file:') === 0)) {\n return;\n }\n\n // Prepare the response\n var responseHeaders = 'getAllResponseHeaders' in request ? parseHeaders(request.getAllResponseHeaders()) : null;\n var responseData = !config.responseType || config.responseType === 'text' ? request.responseText : request.response;\n var response = {\n data: responseData,\n status: request.status,\n statusText: request.statusText,\n headers: responseHeaders,\n config: config,\n request: request\n };\n\n settle(resolve, reject, response);\n\n // Clean up request\n request = null;\n };\n\n // Handle low level network errors\n request.onerror = function handleError() {\n // Real errors are hidden from us by the browser\n // onerror should only fire if it's a network error\n reject(createError('Network Error', config, null, request));\n\n // Clean up request\n request = null;\n };\n\n // Handle timeout\n request.ontimeout = function handleTimeout() {\n reject(createError('timeout of ' + config.timeout + 'ms exceeded', config, 'ECONNABORTED',\n request));\n\n // Clean up request\n request = null;\n };\n\n // Add xsrf header\n // This is only done if running in a standard browser environment.\n // Specifically not if we're in a web worker, or react-native.\n if (utils.isStandardBrowserEnv()) {\n var cookies = require('./../helpers/cookies');\n\n // Add xsrf header\n var xsrfValue = (config.withCredentials || isURLSameOrigin(config.url)) && config.xsrfCookieName ?\n cookies.read(config.xsrfCookieName) :\n undefined;\n\n if (xsrfValue) {\n requestHeaders[config.xsrfHeaderName] = xsrfValue;\n }\n }\n\n // Add headers to the request\n if ('setRequestHeader' in request) {\n utils.forEach(requestHeaders, function setRequestHeader(val, key) {\n if (typeof requestData === 'undefined' && key.toLowerCase() === 'content-type') {\n // Remove Content-Type if data is undefined\n delete requestHeaders[key];\n } else {\n // Otherwise add header to the request\n request.setRequestHeader(key, val);\n }\n });\n }\n\n // Add withCredentials to request if needed\n if (config.withCredentials) {\n request.withCredentials = true;\n }\n\n // Add responseType to request if needed\n if (config.responseType) {\n try {\n request.responseType = config.responseType;\n } catch (e) {\n // Expected DOMException thrown by browsers not compatible XMLHttpRequest Level 2.\n // But, this can be suppressed for 'json' type as it can be parsed by default 'transformResponse' function.\n if (config.responseType !== 'json') {\n throw e;\n }\n }\n }\n\n // Handle progress if needed\n if (typeof config.onDownloadProgress === 'function') {\n request.addEventListener('progress', config.onDownloadProgress);\n }\n\n // Not all browsers support upload events\n if (typeof config.onUploadProgress === 'function' && request.upload) {\n request.upload.addEventListener('progress', config.onUploadProgress);\n }\n\n if (config.cancelToken) {\n // Handle cancellation\n config.cancelToken.promise.then(function onCanceled(cancel) {\n if (!request) {\n return;\n }\n\n request.abort();\n reject(cancel);\n // Clean up request\n request = null;\n });\n }\n\n if (requestData === undefined) {\n requestData = null;\n }\n\n // Send the request\n request.send(requestData);\n });\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar normalizeHeaderName = require('./helpers/normalizeHeaderName');\n\nvar DEFAULT_CONTENT_TYPE = {\n 'Content-Type': 'application/x-www-form-urlencoded'\n};\n\nfunction setContentTypeIfUnset(headers, value) {\n if (!utils.isUndefined(headers) && utils.isUndefined(headers['Content-Type'])) {\n headers['Content-Type'] = value;\n }\n}\n\nfunction getDefaultAdapter() {\n var adapter;\n if (typeof XMLHttpRequest !== 'undefined') {\n // For browsers use XHR adapter\n adapter = require('./adapters/xhr');\n } else if (typeof process !== 'undefined') {\n // For node use HTTP adapter\n adapter = require('./adapters/http');\n }\n return adapter;\n}\n\nvar defaults = {\n adapter: getDefaultAdapter(),\n\n transformRequest: [function transformRequest(data, headers) {\n normalizeHeaderName(headers, 'Content-Type');\n if (utils.isFormData(data) ||\n utils.isArrayBuffer(data) ||\n utils.isBuffer(data) ||\n utils.isStream(data) ||\n utils.isFile(data) ||\n utils.isBlob(data)\n ) {\n return data;\n }\n if (utils.isArrayBufferView(data)) {\n return data.buffer;\n }\n if (utils.isURLSearchParams(data)) {\n setContentTypeIfUnset(headers, 'application/x-www-form-urlencoded;charset=utf-8');\n return data.toString();\n }\n if (utils.isObject(data)) {\n setContentTypeIfUnset(headers, 'application/json;charset=utf-8');\n return JSON.stringify(data);\n }\n return data;\n }],\n\n transformResponse: [function transformResponse(data) {\n /*eslint no-param-reassign:0*/\n if (typeof data === 'string') {\n try {\n data = JSON.parse(data);\n } catch (e) { /* Ignore */ }\n }\n return data;\n }],\n\n /**\n * A timeout in milliseconds to abort a request. If set to 0 (default) a\n * timeout is not created.\n */\n timeout: 0,\n\n xsrfCookieName: 'XSRF-TOKEN',\n xsrfHeaderName: 'X-XSRF-TOKEN',\n\n maxContentLength: -1,\n\n validateStatus: function validateStatus(status) {\n return status >= 200 && status < 300;\n }\n};\n\ndefaults.headers = {\n common: {\n 'Accept': 'application/json, text/plain, */*'\n }\n};\n\nutils.forEach(['delete', 'get', 'head'], function forEachMethodNoData(method) {\n defaults.headers[method] = {};\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n defaults.headers[method] = utils.merge(DEFAULT_CONTENT_TYPE);\n});\n\nmodule.exports = defaults;\n","'use strict';\n\nvar utils = require('./../utils');\n\nfunction InterceptorManager() {\n this.handlers = [];\n}\n\n/**\n * Add a new interceptor to the stack\n *\n * @param {Function} fulfilled The function to handle `then` for a `Promise`\n * @param {Function} rejected The function to handle `reject` for a `Promise`\n *\n * @return {Number} An ID used to remove interceptor later\n */\nInterceptorManager.prototype.use = function use(fulfilled, rejected) {\n this.handlers.push({\n fulfilled: fulfilled,\n rejected: rejected\n });\n return this.handlers.length - 1;\n};\n\n/**\n * Remove an interceptor from the stack\n *\n * @param {Number} id The ID that was returned by `use`\n */\nInterceptorManager.prototype.eject = function eject(id) {\n if (this.handlers[id]) {\n this.handlers[id] = null;\n }\n};\n\n/**\n * Iterate over all the registered interceptors\n *\n * This method is particularly useful for skipping over any\n * interceptors that may have become `null` calling `eject`.\n *\n * @param {Function} fn The function to call for each interceptor\n */\nInterceptorManager.prototype.forEach = function forEach(fn) {\n utils.forEach(this.handlers, function forEachHandler(h) {\n if (h !== null) {\n fn(h);\n }\n });\n};\n\nmodule.exports = InterceptorManager;\n","'use strict';\n\nvar utils = require('./../utils');\n\n/**\n * Transform the data for a request or a response\n *\n * @param {Object|String} data The data to be transformed\n * @param {Array} headers The headers for the request or response\n * @param {Array|Function} fns A single function or Array of functions\n * @returns {*} The resulting transformed data\n */\nmodule.exports = function transformData(data, headers, fns) {\n /*eslint no-param-reassign:0*/\n utils.forEach(fns, function transform(fn) {\n data = fn(data, headers);\n });\n\n return data;\n};\n","'use strict';\n\nmodule.exports = function isCancel(value) {\n return !!(value && value.__CANCEL__);\n};\n","'use strict';\n\n/**\n * Determines whether the specified URL is absolute\n *\n * @param {string} url The URL to test\n * @returns {boolean} True if the specified URL is absolute, otherwise false\n */\nmodule.exports = function isAbsoluteURL(url) {\n // A URL is considered absolute if it begins with \"://\" or \"//\" (protocol-relative URL).\n // RFC 3986 defines scheme name as a sequence of characters beginning with a letter and followed\n // by any combination of letters, digits, plus, period, or hyphen.\n return /^([a-z][a-z\\d\\+\\-\\.]*:)?\\/\\//i.test(url);\n};\n","'use strict';\n\n/**\n * Creates a new URL by combining the specified URLs\n *\n * @param {string} baseURL The base URL\n * @param {string} relativeURL The relative URL\n * @returns {string} The combined URL\n */\nmodule.exports = function combineURLs(baseURL, relativeURL) {\n return relativeURL\n ? baseURL.replace(/\\/+$/, '') + '/' + relativeURL.replace(/^\\/+/, '')\n : baseURL;\n};\n","'use strict';\n\nvar utils = require('./../utils');\nvar transformData = require('./transformData');\nvar isCancel = require('../cancel/isCancel');\nvar defaults = require('../defaults');\nvar isAbsoluteURL = require('./../helpers/isAbsoluteURL');\nvar combineURLs = require('./../helpers/combineURLs');\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nfunction throwIfCancellationRequested(config) {\n if (config.cancelToken) {\n config.cancelToken.throwIfRequested();\n }\n}\n\n/**\n * Dispatch a request to the server using the configured adapter.\n *\n * @param {object} config The config that is to be used for the request\n * @returns {Promise} The Promise to be fulfilled\n */\nmodule.exports = function dispatchRequest(config) {\n throwIfCancellationRequested(config);\n\n // Support baseURL config\n if (config.baseURL && !isAbsoluteURL(config.url)) {\n config.url = combineURLs(config.baseURL, config.url);\n }\n\n // Ensure headers exist\n config.headers = config.headers || {};\n\n // Transform request data\n config.data = transformData(\n config.data,\n config.headers,\n config.transformRequest\n );\n\n // Flatten headers\n config.headers = utils.merge(\n config.headers.common || {},\n config.headers[config.method] || {},\n config.headers || {}\n );\n\n utils.forEach(\n ['delete', 'get', 'head', 'post', 'put', 'patch', 'common'],\n function cleanHeaderConfig(method) {\n delete config.headers[method];\n }\n );\n\n var adapter = config.adapter || defaults.adapter;\n\n return adapter(config).then(function onAdapterResolution(response) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n response.data = transformData(\n response.data,\n response.headers,\n config.transformResponse\n );\n\n return response;\n }, function onAdapterRejection(reason) {\n if (!isCancel(reason)) {\n throwIfCancellationRequested(config);\n\n // Transform response data\n if (reason && reason.response) {\n reason.response.data = transformData(\n reason.response.data,\n reason.response.headers,\n config.transformResponse\n );\n }\n }\n\n return Promise.reject(reason);\n });\n};\n","'use strict';\n\nvar defaults = require('./../defaults');\nvar utils = require('./../utils');\nvar InterceptorManager = require('./InterceptorManager');\nvar dispatchRequest = require('./dispatchRequest');\n\n/**\n * Create a new instance of Axios\n *\n * @param {Object} instanceConfig The default config for the instance\n */\nfunction Axios(instanceConfig) {\n this.defaults = instanceConfig;\n this.interceptors = {\n request: new InterceptorManager(),\n response: new InterceptorManager()\n };\n}\n\n/**\n * Dispatch a request\n *\n * @param {Object} config The config specific for this request (merged with this.defaults)\n */\nAxios.prototype.request = function request(config) {\n /*eslint no-param-reassign:0*/\n // Allow for axios('example/url'[, config]) a la fetch API\n if (typeof config === 'string') {\n config = utils.merge({\n url: arguments[0]\n }, arguments[1]);\n }\n\n config = utils.merge(defaults, {method: 'get'}, this.defaults, config);\n config.method = config.method.toLowerCase();\n\n // Hook up interceptors middleware\n var chain = [dispatchRequest, undefined];\n var promise = Promise.resolve(config);\n\n this.interceptors.request.forEach(function unshiftRequestInterceptors(interceptor) {\n chain.unshift(interceptor.fulfilled, interceptor.rejected);\n });\n\n this.interceptors.response.forEach(function pushResponseInterceptors(interceptor) {\n chain.push(interceptor.fulfilled, interceptor.rejected);\n });\n\n while (chain.length) {\n promise = promise.then(chain.shift(), chain.shift());\n }\n\n return promise;\n};\n\n// Provide aliases for supported request methods\nutils.forEach(['delete', 'get', 'head', 'options'], function forEachMethodNoData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url\n }));\n };\n});\n\nutils.forEach(['post', 'put', 'patch'], function forEachMethodWithData(method) {\n /*eslint func-names:0*/\n Axios.prototype[method] = function(url, data, config) {\n return this.request(utils.merge(config || {}, {\n method: method,\n url: url,\n data: data\n }));\n };\n});\n\nmodule.exports = Axios;\n","'use strict';\n\n/**\n * A `Cancel` is an object that is thrown when an operation is canceled.\n *\n * @class\n * @param {string=} message The message.\n */\nfunction Cancel(message) {\n this.message = message;\n}\n\nCancel.prototype.toString = function toString() {\n return 'Cancel' + (this.message ? ': ' + this.message : '');\n};\n\nCancel.prototype.__CANCEL__ = true;\n\nmodule.exports = Cancel;\n","'use strict';\n\nvar Cancel = require('./Cancel');\n\n/**\n * A `CancelToken` is an object that can be used to request cancellation of an operation.\n *\n * @class\n * @param {Function} executor The executor function.\n */\nfunction CancelToken(executor) {\n if (typeof executor !== 'function') {\n throw new TypeError('executor must be a function.');\n }\n\n var resolvePromise;\n this.promise = new Promise(function promiseExecutor(resolve) {\n resolvePromise = resolve;\n });\n\n var token = this;\n executor(function cancel(message) {\n if (token.reason) {\n // Cancellation has already been requested\n return;\n }\n\n token.reason = new Cancel(message);\n resolvePromise(token.reason);\n });\n}\n\n/**\n * Throws a `Cancel` if cancellation has been requested.\n */\nCancelToken.prototype.throwIfRequested = function throwIfRequested() {\n if (this.reason) {\n throw this.reason;\n }\n};\n\n/**\n * Returns an object that contains a new `CancelToken` and a function that, when called,\n * cancels the `CancelToken`.\n */\nCancelToken.source = function source() {\n var cancel;\n var token = new CancelToken(function executor(c) {\n cancel = c;\n });\n return {\n token: token,\n cancel: cancel\n };\n};\n\nmodule.exports = CancelToken;\n","'use strict';\n\n/**\n * Syntactic sugar for invoking a function and expanding an array for arguments.\n *\n * Common use case would be to use `Function.prototype.apply`.\n *\n * ```js\n * function f(x, y, z) {}\n * var args = [1, 2, 3];\n * f.apply(null, args);\n * ```\n *\n * With `spread` this example can be re-written.\n *\n * ```js\n * spread(function(x, y, z) {})([1, 2, 3]);\n * ```\n *\n * @param {Function} callback\n * @returns {Function}\n */\nmodule.exports = function spread(callback) {\n return function wrap(arr) {\n return callback.apply(null, arr);\n };\n};\n","'use strict';\n\nvar utils = require('./utils');\nvar bind = require('./helpers/bind');\nvar Axios = require('./core/Axios');\nvar defaults = require('./defaults');\n\n/**\n * Create an instance of Axios\n *\n * @param {Object} defaultConfig The default config for the instance\n * @return {Axios} A new instance of Axios\n */\nfunction createInstance(defaultConfig) {\n var context = new Axios(defaultConfig);\n var instance = bind(Axios.prototype.request, context);\n\n // Copy axios.prototype to instance\n utils.extend(instance, Axios.prototype, context);\n\n // Copy context to instance\n utils.extend(instance, context);\n\n return instance;\n}\n\n// Create the default instance to be exported\nvar axios = createInstance(defaults);\n\n// Expose Axios class to allow class inheritance\naxios.Axios = Axios;\n\n// Factory for creating new instances\naxios.create = function create(instanceConfig) {\n return createInstance(utils.merge(defaults, instanceConfig));\n};\n\n// Expose Cancel & CancelToken\naxios.Cancel = require('./cancel/Cancel');\naxios.CancelToken = require('./cancel/CancelToken');\naxios.isCancel = require('./cancel/isCancel');\n\n// Expose all/spread\naxios.all = function all(promises) {\n return Promise.all(promises);\n};\naxios.spread = require('./helpers/spread');\n\nmodule.exports = axios;\n\n// Allow use of default import syntax in TypeScript\nmodule.exports.default = axios;\n","module.exports = require('./lib/axios');","export default \"data:image/png;base64,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\"","import React from 'react';\nimport defaultIcon from './defaultIcon.png';\nimport PropTypes from 'prop-types';\n\nexport default class SafeImage extends React.Component {\n\tstatic propTypes = {\n\t\tsrc: PropTypes.string,\n\t\talt: PropTypes.string,\n\t\tclassName: PropTypes.string,\n\t\tshowDimensions: PropTypes.bool\n\t}\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\turl: props.src || defaultIcon,\n\t\t\tdimensions: '',\n\t\t\terrored: false\n\t\t}\n\t}\n\n\tonError = () => {\n\t\tthis.setState({\n\t\t\turl: defaultIcon,\n\t\t\terrored: true\n\t\t});\n\t}\n\n\tonLoad = (e) => {\n\t\tthis.setState({ dimensions: `${e.target.clientWidth} x ${e.target.clientHeight}` })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t{this.props.showDimensions && !this.state.errored && {this.state.dimensions}}\n\t\t\t\t\n\t\t\t\n\t\t)\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./grid.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport SafeImage from \"../components/SafeImage\"\n\nexport default class Grid extends Component {\n\tstatic propTypes = {\n\t\tcdn: PropTypes.string,\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tdisableCache: true,\n\t\t\timageSelectedIndex: null,\n\t\t\tloading: false\n\t\t};\n\t\tthis.searchInputEle = React.createRef();\n\t\tthis.search = this.search.bind(this);\n\t\tthis.inputChange = this.inputChange.bind(this)\n\t}\n\n\t// componentDidUpdate(prevProps){\n\t// \tif(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){\n\t// \t\tif(window && this.props.s3.path){\n\t// \t\t\tif(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path])\n\t// \t\t\t\tthis.search();\n\t// \t\t\telse this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path])\n\t// \t\t}\n\t// \t}\n\t// }\n\n\tupdateGlobalDataLocally(images){\n\t\tthis.setState({\n\t\t\tisGrid: true,\n\t\t\tdisableCache: false,\n\t\t\tloading: false\n\t\t});\n\n\t\tthis.props.setImages(images)\n\n\t\tif(!window.react_S3_Gallery)\n\t\t\twindow.react_S3_Gallery = {}\n\t\twindow.react_S3_Gallery[this.props.s3.path] = images\n\t}\n\n\tinputChange(e){\n\t\tif (e && e.key !== \"Enter\") return;\n\t\tlet query = (event && event.target.value);\n\t\tthis.search(query)\n\t}\n\n\treset(){\n\t\tthis.setState({\n\t\t\timageSelectedIndex: null\n\t\t})\n\t\tthis.updateGlobalDataLocally([]);\n\t\tthis.searchInputEle.current.value = '';\n\t}\n\n\tsearch(query) {\n\t\t// Temporary --\n\t\tif(!query || !query.trim()) return;\n\t\t// --\n\t\tquery = query || '__getDefaultImgs__'\n\t\tthis.setState({loading: true, imageSelectedIndex: null})\n\t\taxios\n\t\t\t.post(\n\t\t\t\t`${this.props.server}/search/${query}?disableCache=${\n\t\t\t\t\tthis.state.disableCache\n\t\t\t\t}`,\n\t\t\t\t{\n\t\t\t\t\ts3Bucket: this.props.s3.bucket,\n\t\t\t\t\ts3Path: this.props.s3.path\n\t\t\t\t}\n\t\t\t)\n\t\t\t.then(response => {\n\t\t\t\tlet images = response.data.map(image => {\n\t\t\t\t\timage.url = `${this.props.cdn}/${image.slug}`;\n\t\t\t\t\treturn image;\n\t\t\t\t});\n\t\t\t\tthis.updateGlobalDataLocally(images)\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.setState({\n\t\t\t\t\timages: [],\n\t\t\t\t\tisGrid: true,\n\t\t\t\t\tloading: false\n\t\t\t\t});\n\t\t\t})\n\t}\n\n\topenPreview = (url) => () => {\n\t\twindow.open(url, '_blank')\n\t}\n\n\tselectionBar(){\n\t\tif(this.state.imageSelectedIndex == null) return null\n\t\tlet imageSlug = this.props.images[this.state.imageSelectedIndex].slug\n\t\tlet url = this.props.images[this.state.imageSelectedIndex].url\n\t\treturn(\n\t\t\t
    \n\t\t\t\t{imageSlug}\n\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t
    \n\t\t)\n\t}\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t
    \n\t\t\t\t{this.props.showDimensions &&

    Dimensions mentioned as width x height in pixels.

    }\n\t\t\t\t
    \n\t\t\t\t\t{!this.state.loading && this.props.images && this.props.images.length ? (\n\t\t\t\t\t\tthis.props.images.map((image,i) => {\n\t\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t\t this.setState({imageSelectedIndex: i})}\n\t\t\t\t\t\t\t\t>\n\n\t\t\t\t\t\t\t\t\t{this.state.imageSelectedIndex == i &&
    }\n\t\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\t
    {image.slug}
    \n\t\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t})\n\t\t\t\t\t) : (\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t{this.state.loading?
    :Try searching for something.}\n\t\t\t\t\t\t
    \n\t\t\t\t\t)}\n\t\t\t\t
    \n\t\t\t\t{this.selectionBar()}\n\t\t\t\n\t\t);\n\t}\n}\n","let STANDARD_ASPECT_RATIOS = [\n [1, '1:1'],\n [4 / 3, '4:3'],\n [5 / 4, '5:4'],\n [3 / 2, '3:2'],\n [16 / 10, '16:10'],\n [16 / 9, '16:9'],\n [21 / 9, '21:9'],\n [32 / 9, '32:9'],\n]\nlet RATIOS = STANDARD_ASPECT_RATIOS.map(function (tpl) { return tpl[0] }).sort()\nlet LOOKUP = Object()\nfor (let i = 0; i < STANDARD_ASPECT_RATIOS.length; i++) {\n LOOKUP[STANDARD_ASPECT_RATIOS[i][0]] = STANDARD_ASPECT_RATIOS[i][1]\n}\n\n/*\nFind the closest value in a sorted array\n*/\nfunction findClosest(arrSorted, value) {\n let closest = arrSorted[0]\n let closestDiff = Math.abs(arrSorted[0] - value)\n for (let i = 1; i < arrSorted.length; i++) {\n let diff = Math.abs(arrSorted[i] - value)\n if (diff < closestDiff) {\n closestDiff = diff\n closest = arrSorted[i]\n } else {\n return closest\n }\n }\n return arrSorted[arrSorted.length - 1]\n}\n\n/*\nEstimate the aspect ratio based on width x height\n*/\nexport function estimateAspectRatio(width, height, errorAllowed, aspectRatio) {\n let ratio = width / height; \n if (ratio in LOOKUP) {\n return LOOKUP[ratio] === aspectRatio\n }\n\n // Look by approximation\n let closest = findClosest(RATIOS, ratio)\n if (Math.abs(closest - ratio) <= errorAllowed / 100) {\n return LOOKUP[closest] === aspectRatio\n }\n\n return false\n}\n\n/*\nEstimate the approximate width x height with error buffer\n*/\nexport function approximateDimensions(dimensions, requiredDimensions, errorAllowed) {\n\treturn new Promise((resolve) => {\n\t\tlet approxMinWidth = errorAllowed / 100 * requiredDimensions.width - requiredDimensions.width \n\t\tlet approxMinHeight = errorAllowed / 100 * requiredDimensions.height - requiredDimensions.height\n\t\tlet approxMaxWidth = errorAllowed / 100 * requiredDimensions.width + requiredDimensions.width \n\t\tlet approxMaxHeight = errorAllowed / 100 * requiredDimensions.height + requiredDimensions.height\n\t\tresolve({ widthError: dimensions.width < approxMaxWidth && dimensions.width > approxMinWidth , heightError: dimensions.height < approxMaxHeight && dimensions.height > approxMinHeight })\n\t})\n}","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./uploader.css\";\nimport axios from \"axios\";\nimport homeStyles from \"./../styles.css\"\nimport { validate } from \"./../helpers/validators\"\nimport SafeImage from \"../components/SafeImage\";\n\nexport default class Uploader extends Component {\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\tform: {},\n\t\t\terrors: null,\n\t\t\ttitleValid: true\n\t\t};\n\t}\n\n\tstatic propTypes = {\n\t\ts3: PropTypes.object,\n\t\tserver: PropTypes.string,\n\t\tselect: PropTypes.func,\n\t\tcontainerStyles: PropTypes.object,\n\t\trestrictions: PropTypes.object,\n\t\taccept: PropTypes.string\n\t}\n\n\tfileChangeListener = e => {\n\t\tlet files = e.target.files\n\t\tif(files && files[0]) {\n\t\t\tthis.setFile(files[0])\n\t\t}\n\t};\n\n\tsetFile = file => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: this.getFilePreviewUrl(file),\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile\n\t\t\t},\n\t\t\terrors: null\n\t\t})\n\t}\n\n\tgetFilePreviewUrl = file => {\n\t\treturn file.type && file.type.startsWith('image/') ? URL.createObjectURL(file) : null\n\t}\n\n\ttitleChangeListener = e => {\n\t\tif(!/[^\\w\\d-]/.test(e.target.value)) {\n\t\t\tthis.setState({\n\t\t\t\tform: {\n\t\t\t\t\t...this.state.form,\n\t\t\t\t\ttitle: e.target.value\n\t\t\t\t},\n\t\t\t\ttitleValid: true\n\t\t\t});\n\t\t} else {\n\t\t\tthis.setState({ titleValid: false })\n\t\t}\n\t}\n\n\tclearImage = () => {\n\t\tthis.setState({\n\t\t\timagePreviewSrc: null,\n\t\t\tform: {\n\t\t\t\t...this.state.form,\n\t\t\t\tfile: null\n\t\t\t}\n\t\t});\n\t}\n\n\tupload = e => {\n\t\tthis.setState({ loading: true });\n\t\te.preventDefault();\n\t\tlet formData = new FormData();\n\t\tformData.append(\"title\", this.state.form.title);\n\t\tformData.append(\"file\", this.state.form.file);\n\t\tformData.append(\"s3Bucket\", this.props.s3.bucket);\n\t\tformData.append(\"s3Path\", this.props.s3.path);\n\t\tformData.append(\"accept\", this.props.accept);\n\t\taxios({\n\t\t\tmethod: \"post\",\n\t\t\turl: `${this.props.server}/upload`,\n\t\t\tdata: formData,\n\t\t\tconfig: { headers: { \"Content-Type\": \"multipart/form-data\" } }\n\t\t})\n\t\t\t.then(response => {\n\t\t\t\tthis.props.select(response.data.slug)\n\t\t\t\tthis.setState({ form: {} })\n\t\t\t})\n\t\t\t.catch(function(error) {\n\t\t\t\talert(`Sorry couldn't upload the file. Try again`)\n\t\t\t}).finally(() => {\n\t\t\t\tthis.setState({ loading: false })\n\t\t\t});\n\t};\n\n\trender() {\n\t\treturn (\n\t\t\t
    \n\t\t\t\t
    \n\t\t\t\t\t{this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\tclear[x]\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t
    \n\t\t\t\t\t}\n\t\t\t\t\t{!this.state.form.file &&\n\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\t\tDrop a file here or choose one by clicking here\n\t\t\t\t\t\t\n\t\t\t\t\t
    }\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\t\t{this.state.loading\n\t\t\t\t\t\t\t? \"Uploading...\"\n\t\t\t\t\t\t\t: \"UPLOAD\"}\n\t\t\t\t\t\n\t\t\t\t\t{this.state.errors && Array.isArray(this.state.errors) &&\n\t\t\t\t\t\t
    {this.state.errors.map((e , i) =>\n\t\t\t\t\t\t\t

    {e}

    \n\t\t\t\t\t\t)}
    }\n\t\t\t\t\n\t\t\t
    \n\t\t);\n\t}\n}\n","import React, { Component } from \"react\";\nimport PropTypes from \"prop-types\";\nimport styles from \"./styles.css\";\n\nimport Grid from \"./Grid/grid\";\nimport Uploader from \"./Uploader/uploader\";\n\nexport default class Gallery extends Component {\n\tstatic propTypes = {\n\t\tconfig: PropTypes.object,\n\t\tisActive: PropTypes.bool,\n\t\tuploaded: PropTypes.func,\n\t\tuploaderConfig: PropTypes.object,\n\t\tshowDimensions: PropTypes.bool\n\t};\n\n\tstatic defaultProps = {\n\t\tconfig: {},\n\t\tisActive: false,\n\t\tuploaderConfig: {\n\t\t\taccept: '.png, .jpg, .jpeg'\n\t\t},\n\t\tshowDimensions: false\n\t};\n\n\tconstructor(props) {\n\t\tsuper(props);\n\t\tthis.state = {\n\t\t\timages: [],\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...props.config.style,\n\t\t\t\twidth: this.props.config.style.width || 30,\n\t\t\t\talign: `flex-${props.config.style.align || \"right\"}`\n\t\t\t},\n\t\t};\n\t}\n\n\tselectFinal = slug => {\n\t\tlet data;\n\t\tif (slug) {\n\t\t\tdata = {\n\t\t\t\timageUrl: `${this.props.config.cdn}/${slug}`,\n\t\t\t\timageSlug: slug.substr(0, slug.lastIndexOf(\".\")) || slug,\n\t\t\t\tfilename: slug\n\t\t\t};\n\t\t}\n\t\tthis.setState({\n\t\t\ttab: 'grid',\n\t\t\tstyle: {\n\t\t\t\t...this.state.style,\n\t\t\t\twidth: 0,\n\t\t\t},\n\t\t});\n\t\tsetTimeout(() => this.props.onClose(data), 200);\n\t};\n\n\tsetImages = (images) => {\n\t\tthis.setState({ images })\n\t}\n\n\trender() {\n\t\treturn (\n\t\t\t\n\t\t\t\t
    \n\t\t\t\t\t
    \n\t\t\t\t\t\tGallery\n\t\t\t\t\t
    \n\n\t\t\t\t\t
      \n\t\t\t\t\t\t
    • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'grid'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'grid'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tSearch\n\t\t\t\t\t\t\t
    \n\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\t\t\tthis.setState({\n\t\t\t\t\t\t\t\t\t\ttab: 'upload'\n\t\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\t\tstyles.navItem +\n\t\t\t\t\t\t\t\t\t\" \" +\n\t\t\t\t\t\t\t\t\t(this.state.tab === 'upload'\n\t\t\t\t\t\t\t\t\t\t? styles.navItemActive\n\t\t\t\t\t\t\t\t\t\t: \"\")\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\tUpload New\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t
  • \n\t\t\t\t\t\n\t\t\t\t\t this.selectFinal()}\n\t\t\t\t\t>\n\t\t\t\t\t\t\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t\n\t\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\t\n\t\t\t\n\t\t);\n\t}\n}\n"],"names":["cookies","require$$0","require$$1","defaults","InterceptorManager","Cancel","Axios","require$$2","require$$3","SafeImage","props","onError","setState","defaultIcon","onLoad","e","dimensions","target","clientWidth","clientHeight","state","src","React","showDimensions","errored","position","right","top","fontSize","background","padding","borderRadius","alt","url","className","Component","propTypes","PropTypes","string","bool","Grid","openPreview","open","searchInputEle","createRef","search","bind","inputChange","images","setImages","window","react_S3_Gallery","s3","path","key","query","event","value","updateGlobalDataLocally","current","trim","loading","imageSelectedIndex","post","server","disableCache","bucket","then","response","data","map","cdn","image","slug","catch","error","imageSlug","styles","selectionBar","selectionBarButtons","homeStyles","galleryButton","previewButton","selectionButton","select","containerStyles","searchWrapper","searchIcon","galleryInput","searchBar","reset","searchButton","backgroundColor","marginLeft","opacity","grid","length","i","borderColor","gridImageWrapper","test","gridImageDarkWrapper","gridOverlay","gridImage","gridFooter","info","galleryLoading","object","func","STANDARD_ASPECT_RATIOS","RATIOS","tpl","sort","LOOKUP","Object","Uploader","fileChangeListener","files","setFile","getFilePreviewUrl","file","form","type","startsWith","URL","createObjectURL","titleChangeListener","titleValid","clearImage","upload","preventDefault","formData","FormData","append","title","accept","headers","finally","uploader","imagePreview","previewImage","imagePreviewSrc","fileUploader","fileUploaderInput","titleLabel","submit","errors","Array","isArray","errorMessage","Gallery","selectFinal","config","substr","lastIndexOf","style","onClose","width","align","modal","isActive","isModalActive","header","navList","navItem","tab","navItemActive","closeBtn","display","uploadRestrictions","uploaderConfig","defaultProps"],"mappings":"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"} \ No newline at end of file diff --git a/src/Grid/grid.js b/src/Grid/grid.js index 9c07886..1baabf3 100644 --- a/src/Grid/grid.js +++ b/src/Grid/grid.js @@ -27,15 +27,15 @@ export default class Grid extends Component { this.inputChange = this.inputChange.bind(this) } - componentDidUpdate(prevProps){ - if(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){ - if(window && this.props.s3.path){ - if(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) - this.search(); - else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]) - } - } - } + // componentDidUpdate(prevProps){ + // if(this.props.defaultSearch && (prevProps.defaultSearch != this.props.defaultSearch)){ + // if(window && this.props.s3.path){ + // if(!window.react_S3_Gallery || !window.react_S3_Gallery[this.props.s3.path]) + // this.search(); + // else this.updateGlobalDataLocally(window.react_S3_Gallery[this.props.s3.path]) + // } + // } + // } updateGlobalDataLocally(images){ this.setState({ @@ -66,6 +66,9 @@ export default class Grid extends Component { } search(query) { + // Temporary -- + if(!query || !query.trim()) return; + // -- query = query || '__getDefaultImgs__' this.setState({loading: true, imageSelectedIndex: null}) axios @@ -165,7 +168,7 @@ export default class Grid extends Component { }) ) : (
    - {this.state.loading?
    :No files. Try searching for something.} + {this.state.loading?
    :Try searching for something.}
    )} diff --git a/src/components/SafeImage.js b/src/components/SafeImage.js index 8578f6b..517ee41 100644 --- a/src/components/SafeImage.js +++ b/src/components/SafeImage.js @@ -40,6 +40,7 @@ export default class SafeImage extends React.Component { onError={this.onError} className={this.props.className} onLoad={this.onLoad} + loading={'lazy'} /> ) diff --git a/src/index.js b/src/index.js index ff5232f..3acb517 100644 --- a/src/index.js +++ b/src/index.js @@ -55,18 +55,6 @@ export default class Gallery extends Component { setTimeout(() => this.props.onClose(data), 200); }; - spriteNote() { - const SPRITE_PATH = "sprites/images"; - if (this.props.config.s3.path == SPRITE_PATH) { - return ( - - Note: Image slug you select would be reflected only after - save. - - ); - } - } - setImages = (images) => { this.setState({ images }) } @@ -144,7 +132,6 @@ export default class Gallery extends Component { - {this.spriteNote()}