{"version":3,"sources":["webpack:///./node_modules/bootstrap-vue/esm/components/form/form.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-aside.js","webpack:///./node_modules/compressorjs/dist/compressor.js","webpack:///./node_modules/bootstrap-vue/esm/components/media/media-body.js","webpack:///./node_modules/bootstrap-vue/esm/mixins/form-custom.js","webpack:///./src/@core/comp-functions/forms/form-utils.js","webpack:///./node_modules/bootstrap-vue/esm/components/form-file/form-file.js","webpack:///./node_modules/vue-ripple-directive/src/ripple.js"],"names":["props","id","inline","novalidate","validated","BForm","extend","name","functional","render","h","_ref","data","children","class","attrs","noBody","rightAlign","tag","verticalAlign","BMedia","slots","scopedSlots","$children","slotScope","$slots","$scopedSlots","push","$aside","right","staticClass","_defineProperty","obj","key","value","Object","defineProperty","enumerable","configurable","writable","BMediaAside","align","concat","global","factory","module","exports","this","ownKeys","object","enumerableOnly","keys","getOwnPropertySymbols","symbols","filter","sym","getOwnPropertyDescriptor","apply","_objectSpread2","target","i","arguments","length","source","forEach","getOwnPropertyDescriptors","defineProperties","_classCallCheck","instance","Constructor","TypeError","_defineProperties","descriptor","_toPropertyKey","_createClass","protoProps","staticProps","prototype","_extends","assign","bind","hasOwnProperty","call","_toPrimitive","input","hint","prim","Symbol","toPrimitive","undefined","res","String","Number","arg","canvasToBlob","window","CanvasPrototype","HTMLCanvasElement","hasBlobConstructor","Blob","Boolean","e","hasArrayBufferViewSupport","Uint8Array","size","BlobBuilder","WebKitBlobBuilder","MozBlobBuilder","MSBlobBuilder","dataURIPattern","dataURLtoBlob","atob","ArrayBuffer","dataURI","matches","mediaType","isBase64","dataString","byteString","arrayBuffer","intArray","bb","match","Error","slice","decodeURIComponent","charCodeAt","type","append","getBlob","toBlob","mozGetAsFile","callback","quality","self","setTimeout","toDataURL","msToBlob","isBlob","toString","DEFAULTS","strict","checkOrientation","retainExif","maxWidth","Infinity","maxHeight","minWidth","minHeight","width","height","resize","mimeType","convertTypes","convertSize","beforeDraw","drew","success","error","IS_BROWSER","document","WINDOW","isPositiveNumber","Array","toArray","from","REGEXP_IMAGE_TYPE","isImageType","test","imageTypeToExtension","extension","substr","fromCharCode","getStringFromCharCode","dataView","start","str","getUint8","btoa","arrayBufferToDataURL","chunks","chunkSize","uint8","subarray","join","resetAndGetOrientation","orientation","DataView","littleEndian","app1Start","ifdStart","byteLength","offset","exifIDCode","tiffOffset","endianness","getUint16","firstIFDOffset","getUint32","_offset","_length","setUint16","parseOrientation","rotate","scaleX","scaleY","REGEXP_DECIMALS","normalizeDecimalNumber","times","Math","round","getAdjustedSizes","aspectRatio","isValidWidth","isValidHeight","adjustedWidth","getExif","array","segments","next","end","segment","reduce","exifArray","current","insertExif","app0Length","newArrayBuffer","ArrayBuffer$1","FileReader","URL","webkitURL","REGEXP_EXTENSION","AnotherCompressor","Compressor","file","options","exif","image","Image","aborted","result","init","_this","isJPEGImage","reader","onload","url","createObjectURL","load","onabort","fail","onerror","onloadend","readAsArrayBuffer","readAsDataURL","_this2","draw","naturalWidth","naturalHeight","navigator","userAgent","crossOrigin","alt","src","_ref2","_this3","_ref2$rotate","_ref2$scaleX","_ref2$scaleY","canvas","createElement","context","getContext","is90DegreesRotated","abs","resizable","max","_ref3","_ref4","_ref5","_getAdjustedSizes","_getAdjustedSizes2","_getAdjustedSizes3","_getAdjustedSizes4","_getAdjustedSizes4$wi","_getAdjustedSizes4$he","floor","min","destX","destY","destWidth","destHeight","params","srcX","srcY","srcWidth","srcHeight","_getAdjustedSizes5","contain","cover","_ref6","fillStyle","indexOf","fillRect","save","translate","PI","scale","drawImage","restore","blob","done","then","catch","_ref7","_ref8","revokeObjectURL","date","Date","lastModified","getTime","lastModifiedDate","replace","err","abort","complete","BMediaBody","plain","formCustomMixin","computed","custom","useInputImageRenderer","inputEl","inputImageRenderer","files","_watch","_objectSpread","_makeModelMixin","defaultValue","validator","VALUE_EMPTY_DEPRECATED_MSG","isValidValue","modelMixin","mixin","modelProps","MODEL_PROP_NAME","prop","MODEL_EVENT_NAME","event","every","v","getDataTransferItemEntry","item","getAsEntry","webkitGetAsEntry","getAllFileEntries","dataTransferItemList","traverseDirectories","Promise","all","kind","map","entry","isDirectory","getAllFileEntriesInDirectory","createReader","isFile","resolve","$path","directoryReader","path","entryPromises","readDirectoryEntries","readEntries","entries","accept","browseText","capture","directory","dropPlaceholder","fileNameFormatter","multiple","noDrop","noDropPlaceholder","noTraverse","placeholder","BFormFile","mixins","inheritAttrs","dragging","dropAllowed","hasFocus","computedAccept","trim","split","extOrType","startMatch","endMatch","rx","RegExp","computedCapture","computedAttrs","disabled","required","form","bvAttrs","safeId","webkitdirectory","computedFileNameFormatter","defaultFileNameFormatter","clonedFiles","flattenedFiles","fileNames","labelContent","normalizeSlot","allowed","$createElement","hasNormalizedSlot","filesTraversed","names","watch","newValue","reset","oldValue","$emit","created","$_form","mounted","$form","$el","beforeDestroy","methods","isFileValid","some","a","isFilesArrayValid","setFiles","setInputFiles","dataTransfer","ClipboardEvent","clipboardData","DataTransfer","items","add","$refs","_unused","$input","_unused2","handleFiles","isDrop","filteredFiles","focusHandler","onChange","_event$dataTransfer","webkitRelativePath","onDragenter","_event$dataTransfer2","dropEffect","onDragover","_event$dataTransfer3","onDragleave","$nextTick","onDrop","_this4","stateClass","focus","style","zIndex","on","change","focusin","focusout","ref","$label","for","pointerEvents","dragenter","dragover","dragleave","drop","Ripple","el","binding","transition","setProps","modifiers","addEventListener","rippler","bg","color","targetBorder","parseInt","getComputedStyle","rect","getBoundingClientRect","left","top","offsetWidth","offsetHeight","dx","clientX","dy","clientY","maxX","maxY","radius","sqrt","border","ripple","rippleContainer","className","marginTop","marginLeft","borderRadius","position","backgroundColor","overflow","storedTargetPosition","clearRipple","parentNode","removeChild","removeEventListener","clearPosition","childNodes","appendChild","borderTopLeftRadius","borderTopRightRadius","borderBottomLeftRadius","borderBottomRightRadius","direction","isNaN"],"mappings":"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","file":"js/chunk-0d2f7f90.8b9a48b7.js","sourcesContent":["import { Vue, mergeData } from '../../vue';\nimport { NAME_FORM } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n id: makeProp(PROP_TYPE_STRING),\n inline: makeProp(PROP_TYPE_BOOLEAN, false),\n novalidate: makeProp(PROP_TYPE_BOOLEAN, false),\n validated: makeProp(PROP_TYPE_BOOLEAN, false)\n}, NAME_FORM); // --- Main component ---\n// @vue/component\n\nexport var BForm = /*#__PURE__*/Vue.extend({\n name: NAME_FORM,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h('form', mergeData(data, {\n class: {\n 'form-inline': props.inline,\n 'was-validated': props.validated\n },\n attrs: {\n id: props.id,\n novalidate: props.novalidate\n }\n }), children);\n }\n});","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_ASIDE, SLOT_NAME_DEFAULT } from '../../constants/slots';\nimport { normalizeSlot } from '../../utils/normalize-slot';\nimport { makeProp, makePropsConfigurable } from '../../utils/props';\nimport { BMediaAside } from './media-aside';\nimport { BMediaBody } from './media-body'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n noBody: makeProp(PROP_TYPE_BOOLEAN, false),\n rightAlign: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA); // --- Main component ---\n// @vue/component\n\nexport var BMedia = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n slots = _ref.slots,\n scopedSlots = _ref.scopedSlots,\n children = _ref.children;\n var noBody = props.noBody,\n rightAlign = props.rightAlign,\n verticalAlign = props.verticalAlign;\n var $children = noBody ? children : [];\n\n if (!noBody) {\n var slotScope = {};\n var $slots = slots();\n var $scopedSlots = scopedSlots || {};\n $children.push(h(BMediaBody, normalizeSlot(SLOT_NAME_DEFAULT, slotScope, $scopedSlots, $slots)));\n var $aside = normalizeSlot(SLOT_NAME_ASIDE, slotScope, $scopedSlots, $slots);\n\n if ($aside) {\n $children[rightAlign ? 'push' : 'unshift'](h(BMediaAside, {\n props: {\n right: rightAlign,\n verticalAlign: verticalAlign\n }\n }, $aside));\n }\n }\n\n return h(props.tag, mergeData(data, {\n staticClass: 'media'\n }), $children);\n }\n});","function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_ASIDE } from '../../constants/components';\nimport { PROP_TYPE_BOOLEAN, PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n right: makeProp(PROP_TYPE_BOOLEAN, false),\n tag: makeProp(PROP_TYPE_STRING, 'div'),\n verticalAlign: makeProp(PROP_TYPE_STRING, 'top')\n}, NAME_MEDIA_ASIDE); // --- Main component ---\n// @vue/component\n\nexport var BMediaAside = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_ASIDE,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n var verticalAlign = props.verticalAlign;\n var align = verticalAlign === 'top' ? 'start' : verticalAlign === 'bottom' ? 'end' :\n /* istanbul ignore next */\n verticalAlign;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-aside',\n class: _defineProperty({\n 'media-aside-right': props.right\n }, \"align-self-\".concat(align), align)\n }), children);\n }\n});","/*!\n * Compressor.js v1.2.1\n * https://fengyuanchen.github.io/compressorjs\n *\n * Copyright 2018-present Chen Fengyuan\n * Released under the MIT license\n *\n * Date: 2023-02-28T14:09:41.732Z\n */\n\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Compressor = factory());\n})(this, (function () { 'use strict';\n\n function ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n enumerableOnly && (symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n })), keys.push.apply(keys, symbols);\n }\n return keys;\n }\n function _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = null != arguments[i] ? arguments[i] : {};\n i % 2 ? ownKeys(Object(source), !0).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n return target;\n }\n function _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n }\n function _defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor);\n }\n }\n function _createClass(Constructor, protoProps, staticProps) {\n if (protoProps) _defineProperties(Constructor.prototype, protoProps);\n if (staticProps) _defineProperties(Constructor, staticProps);\n Object.defineProperty(Constructor, \"prototype\", {\n writable: false\n });\n return Constructor;\n }\n function _defineProperty(obj, key, value) {\n key = _toPropertyKey(key);\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n return obj;\n }\n function _extends() {\n _extends = Object.assign ? Object.assign.bind() : function (target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i];\n for (var key in source) {\n if (Object.prototype.hasOwnProperty.call(source, key)) {\n target[key] = source[key];\n }\n }\n }\n return target;\n };\n return _extends.apply(this, arguments);\n }\n function _toPrimitive(input, hint) {\n if (typeof input !== \"object\" || input === null) return input;\n var prim = input[Symbol.toPrimitive];\n if (prim !== undefined) {\n var res = prim.call(input, hint || \"default\");\n if (typeof res !== \"object\") return res;\n throw new TypeError(\"@@toPrimitive must return a primitive value.\");\n }\n return (hint === \"string\" ? String : Number)(input);\n }\n function _toPropertyKey(arg) {\n var key = _toPrimitive(arg, \"string\");\n return typeof key === \"symbol\" ? key : String(key);\n }\n\n var canvasToBlob = {exports: {}};\n\n /*\n * JavaScript Canvas to Blob\n * https://github.com/blueimp/JavaScript-Canvas-to-Blob\n *\n * Copyright 2012, Sebastian Tschan\n * https://blueimp.net\n *\n * Licensed under the MIT license:\n * https://opensource.org/licenses/MIT\n *\n * Based on stackoverflow user Stoive's code snippet:\n * http://stackoverflow.com/q/4998908\n */\n (function (module) {\n if (typeof window === 'undefined') {\n return;\n }\n (function (window) {\n\n var CanvasPrototype = window.HTMLCanvasElement && window.HTMLCanvasElement.prototype;\n var hasBlobConstructor = window.Blob && function () {\n try {\n return Boolean(new Blob());\n } catch (e) {\n return false;\n }\n }();\n var hasArrayBufferViewSupport = hasBlobConstructor && window.Uint8Array && function () {\n try {\n return new Blob([new Uint8Array(100)]).size === 100;\n } catch (e) {\n return false;\n }\n }();\n var BlobBuilder = window.BlobBuilder || window.WebKitBlobBuilder || window.MozBlobBuilder || window.MSBlobBuilder;\n var dataURIPattern = /^data:((.*?)(;charset=.*?)?)(;base64)?,/;\n var dataURLtoBlob = (hasBlobConstructor || BlobBuilder) && window.atob && window.ArrayBuffer && window.Uint8Array && function (dataURI) {\n var matches, mediaType, isBase64, dataString, byteString, arrayBuffer, intArray, i, bb;\n // Parse the dataURI components as per RFC 2397\n matches = dataURI.match(dataURIPattern);\n if (!matches) {\n throw new Error('invalid data URI');\n }\n // Default to text/plain;charset=US-ASCII\n mediaType = matches[2] ? matches[1] : 'text/plain' + (matches[3] || ';charset=US-ASCII');\n isBase64 = !!matches[4];\n dataString = dataURI.slice(matches[0].length);\n if (isBase64) {\n // Convert base64 to raw binary data held in a string:\n byteString = atob(dataString);\n } else {\n // Convert base64/URLEncoded data component to raw binary:\n byteString = decodeURIComponent(dataString);\n }\n // Write the bytes of the string to an ArrayBuffer:\n arrayBuffer = new ArrayBuffer(byteString.length);\n intArray = new Uint8Array(arrayBuffer);\n for (i = 0; i < byteString.length; i += 1) {\n intArray[i] = byteString.charCodeAt(i);\n }\n // Write the ArrayBuffer (or ArrayBufferView) to a blob:\n if (hasBlobConstructor) {\n return new Blob([hasArrayBufferViewSupport ? intArray : arrayBuffer], {\n type: mediaType\n });\n }\n bb = new BlobBuilder();\n bb.append(arrayBuffer);\n return bb.getBlob(mediaType);\n };\n if (window.HTMLCanvasElement && !CanvasPrototype.toBlob) {\n if (CanvasPrototype.mozGetAsFile) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if (quality && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.mozGetAsFile('blob', type));\n }\n });\n };\n } else if (CanvasPrototype.toDataURL && dataURLtoBlob) {\n if (CanvasPrototype.msToBlob) {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n if ((type && type !== 'image/png' || quality) && CanvasPrototype.toDataURL && dataURLtoBlob) {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n } else {\n callback(self.msToBlob(type));\n }\n });\n };\n } else {\n CanvasPrototype.toBlob = function (callback, type, quality) {\n var self = this;\n setTimeout(function () {\n callback(dataURLtoBlob(self.toDataURL(type, quality)));\n });\n };\n }\n }\n }\n if (module.exports) {\n module.exports = dataURLtoBlob;\n } else {\n window.dataURLtoBlob = dataURLtoBlob;\n }\n })(window);\n })(canvasToBlob);\n var toBlob = canvasToBlob.exports;\n\n var isBlob = function isBlob(value) {\n if (typeof Blob === 'undefined') {\n return false;\n }\n return value instanceof Blob || Object.prototype.toString.call(value) === '[object Blob]';\n };\n\n var DEFAULTS = {\n /**\n * Indicates if output the original image instead of the compressed one\n * when the size of the compressed image is greater than the original one's\n * @type {boolean}\n */\n strict: true,\n /**\n * Indicates if read the image's Exif Orientation information,\n * and then rotate or flip the image automatically.\n * @type {boolean}\n */\n checkOrientation: true,\n /**\n * Indicates if retain the image's Exif information after compressed.\n * @type {boolean}\n */\n retainExif: false,\n /**\n * The max width of the output image.\n * @type {number}\n */\n maxWidth: Infinity,\n /**\n * The max height of the output image.\n * @type {number}\n */\n maxHeight: Infinity,\n /**\n * The min width of the output image.\n * @type {number}\n */\n minWidth: 0,\n /**\n * The min height of the output image.\n * @type {number}\n */\n minHeight: 0,\n /**\n * The width of the output image.\n * If not specified, the natural width of the source image will be used.\n * @type {number}\n */\n width: undefined,\n /**\n * The height of the output image.\n * If not specified, the natural height of the source image will be used.\n * @type {number}\n */\n height: undefined,\n /**\n * Sets how the size of the image should be resized to the container\n * specified by the `width` and `height` options.\n * @type {string}\n */\n resize: 'none',\n /**\n * The quality of the output image.\n * It must be a number between `0` and `1`,\n * and only available for `image/jpeg` and `image/webp` images.\n * Check out {@link https://developer.mozilla.org/en-US/docs/Web/API/HTMLCanvasElement/toBlob canvas.toBlob}.\n * @type {number}\n */\n quality: 0.8,\n /**\n * The mime type of the output image.\n * By default, the original mime type of the source image file will be used.\n * @type {string}\n */\n mimeType: 'auto',\n /**\n * Files whose file type is included in this list,\n * and whose file size exceeds the `convertSize` value will be converted to JPEGs.\n * @type {string|Array}\n */\n convertTypes: ['image/png'],\n /**\n * PNG files over this size (5 MB by default) will be converted to JPEGs.\n * To disable this, just set the value to `Infinity`.\n * @type {number}\n */\n convertSize: 5000000,\n /**\n * The hook function to execute before draw the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.fillStyle = '#fff';\n * }\n */\n beforeDraw: null,\n /**\n * The hook function to execute after drew the image into the canvas for compression.\n * @type {Function}\n * @param {CanvasRenderingContext2D} context - The 2d rendering context of the canvas.\n * @param {HTMLCanvasElement} canvas - The canvas for compression.\n * @example\n * function (context, canvas) {\n * context.filter = 'grayscale(100%)';\n * }\n */\n drew: null,\n /**\n * The hook function to execute when success to compress the image.\n * @type {Function}\n * @param {File} file - The compressed image File object.\n * @example\n * function (file) {\n * console.log(file);\n * }\n */\n success: null,\n /**\n * The hook function to execute when fail to compress the image.\n * @type {Function}\n * @param {Error} err - An Error object.\n * @example\n * function (err) {\n * console.log(err.message);\n * }\n */\n error: null\n };\n\n var IS_BROWSER = typeof window !== 'undefined' && typeof window.document !== 'undefined';\n var WINDOW = IS_BROWSER ? window : {};\n\n /**\n * Check if the given value is a positive number.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given value is a positive number, else `false`.\n */\n var isPositiveNumber = function isPositiveNumber(value) {\n return value > 0 && value < Infinity;\n };\n var slice = Array.prototype.slice;\n\n /**\n * Convert array-like or iterable object to an array.\n * @param {*} value - The value to convert.\n * @returns {Array} Returns a new array.\n */\n function toArray(value) {\n return Array.from ? Array.from(value) : slice.call(value);\n }\n var REGEXP_IMAGE_TYPE = /^image\\/.+$/;\n\n /**\n * Check if the given value is a mime type of image.\n * @param {*} value - The value to check.\n * @returns {boolean} Returns `true` if the given is a mime type of image, else `false`.\n */\n function isImageType(value) {\n return REGEXP_IMAGE_TYPE.test(value);\n }\n\n /**\n * Convert image type to extension.\n * @param {string} value - The image type to convert.\n * @returns {boolean} Returns the image extension.\n */\n function imageTypeToExtension(value) {\n var extension = isImageType(value) ? value.substr(6) : '';\n if (extension === 'jpeg') {\n extension = 'jpg';\n }\n return \".\".concat(extension);\n }\n var fromCharCode = String.fromCharCode;\n\n /**\n * Get string from char code in data view.\n * @param {DataView} dataView - The data view for read.\n * @param {number} start - The start index.\n * @param {number} length - The read length.\n * @returns {string} The read result.\n */\n function getStringFromCharCode(dataView, start, length) {\n var str = '';\n var i;\n length += start;\n for (i = start; i < length; i += 1) {\n str += fromCharCode(dataView.getUint8(i));\n }\n return str;\n }\n var btoa = WINDOW.btoa;\n\n /**\n * Transform array buffer to Data URL.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {string} mimeType - The mime type of the Data URL.\n * @returns {string} The result Data URL.\n */\n function arrayBufferToDataURL(arrayBuffer, mimeType) {\n var chunks = [];\n var chunkSize = 8192;\n var uint8 = new Uint8Array(arrayBuffer);\n while (uint8.length > 0) {\n // XXX: Babel's `toConsumableArray` helper will throw error in IE or Safari 9\n // eslint-disable-next-line prefer-spread\n chunks.push(fromCharCode.apply(null, toArray(uint8.subarray(0, chunkSize))));\n uint8 = uint8.subarray(chunkSize);\n }\n return \"data:\".concat(mimeType, \";base64,\").concat(btoa(chunks.join('')));\n }\n\n /**\n * Get orientation value from given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {number} The read orientation value.\n */\n function resetAndGetOrientation(arrayBuffer) {\n var dataView = new DataView(arrayBuffer);\n var orientation;\n\n // Ignores range error when the image does not have correct Exif information\n try {\n var littleEndian;\n var app1Start;\n var ifdStart;\n\n // Only handle JPEG image (start by 0xFFD8)\n if (dataView.getUint8(0) === 0xFF && dataView.getUint8(1) === 0xD8) {\n var length = dataView.byteLength;\n var offset = 2;\n while (offset + 1 < length) {\n if (dataView.getUint8(offset) === 0xFF && dataView.getUint8(offset + 1) === 0xE1) {\n app1Start = offset;\n break;\n }\n offset += 1;\n }\n }\n if (app1Start) {\n var exifIDCode = app1Start + 4;\n var tiffOffset = app1Start + 10;\n if (getStringFromCharCode(dataView, exifIDCode, 4) === 'Exif') {\n var endianness = dataView.getUint16(tiffOffset);\n littleEndian = endianness === 0x4949;\n if (littleEndian || endianness === 0x4D4D /* bigEndian */) {\n if (dataView.getUint16(tiffOffset + 2, littleEndian) === 0x002A) {\n var firstIFDOffset = dataView.getUint32(tiffOffset + 4, littleEndian);\n if (firstIFDOffset >= 0x00000008) {\n ifdStart = tiffOffset + firstIFDOffset;\n }\n }\n }\n }\n }\n if (ifdStart) {\n var _length = dataView.getUint16(ifdStart, littleEndian);\n var _offset;\n var i;\n for (i = 0; i < _length; i += 1) {\n _offset = ifdStart + i * 12 + 2;\n if (dataView.getUint16(_offset, littleEndian) === 0x0112 /* Orientation */) {\n // 8 is the offset of the current tag's value\n _offset += 8;\n\n // Get the original orientation value\n orientation = dataView.getUint16(_offset, littleEndian);\n\n // Override the orientation with its default value\n dataView.setUint16(_offset, 1, littleEndian);\n break;\n }\n }\n }\n } catch (e) {\n orientation = 1;\n }\n return orientation;\n }\n\n /**\n * Parse Exif Orientation value.\n * @param {number} orientation - The orientation to parse.\n * @returns {Object} The parsed result.\n */\n function parseOrientation(orientation) {\n var rotate = 0;\n var scaleX = 1;\n var scaleY = 1;\n switch (orientation) {\n // Flip horizontal\n case 2:\n scaleX = -1;\n break;\n\n // Rotate left 180°\n case 3:\n rotate = -180;\n break;\n\n // Flip vertical\n case 4:\n scaleY = -1;\n break;\n\n // Flip vertical and rotate right 90°\n case 5:\n rotate = 90;\n scaleY = -1;\n break;\n\n // Rotate right 90°\n case 6:\n rotate = 90;\n break;\n\n // Flip horizontal and rotate right 90°\n case 7:\n rotate = 90;\n scaleX = -1;\n break;\n\n // Rotate left 90°\n case 8:\n rotate = -90;\n break;\n }\n return {\n rotate: rotate,\n scaleX: scaleX,\n scaleY: scaleY\n };\n }\n var REGEXP_DECIMALS = /\\.\\d*(?:0|9){12}\\d*$/;\n\n /**\n * Normalize decimal number.\n * Check out {@link https://0.30000000000000004.com/}\n * @param {number} value - The value to normalize.\n * @param {number} [times=100000000000] - The times for normalizing.\n * @returns {number} Returns the normalized number.\n */\n function normalizeDecimalNumber(value) {\n var times = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100000000000;\n return REGEXP_DECIMALS.test(value) ? Math.round(value * times) / times : value;\n }\n\n /**\n * Get the max sizes in a rectangle under the given aspect ratio.\n * @param {Object} data - The original sizes.\n * @param {string} [type='contain'] - The adjust type.\n * @returns {Object} The result sizes.\n */\n function getAdjustedSizes(_ref) {\n var aspectRatio = _ref.aspectRatio,\n height = _ref.height,\n width = _ref.width;\n var type = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'none';\n var isValidWidth = isPositiveNumber(width);\n var isValidHeight = isPositiveNumber(height);\n if (isValidWidth && isValidHeight) {\n var adjustedWidth = height * aspectRatio;\n if ((type === 'contain' || type === 'none') && adjustedWidth > width || type === 'cover' && adjustedWidth < width) {\n height = width / aspectRatio;\n } else {\n width = height * aspectRatio;\n }\n } else if (isValidWidth) {\n height = width / aspectRatio;\n } else if (isValidHeight) {\n width = height * aspectRatio;\n }\n return {\n width: width,\n height: height\n };\n }\n\n /**\n * Get Exif information from the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to read.\n * @returns {Array} The read Exif information.\n */\n function getExif(arrayBuffer) {\n var array = toArray(new Uint8Array(arrayBuffer));\n var length = array.length;\n var segments = [];\n var start = 0;\n while (start + 3 < length) {\n var value = array[start];\n var next = array[start + 1];\n\n // SOS (Start of Scan)\n if (value === 0xFF && next === 0xDA) {\n break;\n }\n\n // SOI (Start of Image)\n if (value === 0xFF && next === 0xD8) {\n start += 2;\n } else {\n var offset = array[start + 2] * 256 + array[start + 3];\n var end = start + offset + 2;\n var segment = array.slice(start, end);\n segments.push(segment);\n start = end;\n }\n }\n return segments.reduce(function (exifArray, current) {\n if (current[0] === 0xFF && current[1] === 0xE1) {\n return exifArray.concat(current);\n }\n return exifArray;\n }, []);\n }\n\n /**\n * Insert Exif information into the given array buffer.\n * @param {ArrayBuffer} arrayBuffer - The array buffer to transform.\n * @param {Array} exifArray - The Exif information to insert.\n * @returns {ArrayBuffer} The transformed array buffer.\n */\n function insertExif(arrayBuffer, exifArray) {\n var array = toArray(new Uint8Array(arrayBuffer));\n if (array[2] !== 0xFF || array[3] !== 0xE0) {\n return arrayBuffer;\n }\n var app0Length = array[4] * 256 + array[5];\n var newArrayBuffer = [0xFF, 0xD8].concat(exifArray, array.slice(4 + app0Length));\n return new Uint8Array(newArrayBuffer);\n }\n\n var ArrayBuffer$1 = WINDOW.ArrayBuffer,\n FileReader = WINDOW.FileReader;\n var URL = WINDOW.URL || WINDOW.webkitURL;\n var REGEXP_EXTENSION = /\\.\\w+$/;\n var AnotherCompressor = WINDOW.Compressor;\n\n /**\n * Creates a new image compressor.\n * @class\n */\n var Compressor = /*#__PURE__*/function () {\n /**\n * The constructor of Compressor.\n * @param {File|Blob} file - The target image file for compressing.\n * @param {Object} [options] - The options for compressing.\n */\n function Compressor(file, options) {\n _classCallCheck(this, Compressor);\n this.file = file;\n this.exif = [];\n this.image = new Image();\n this.options = _objectSpread2(_objectSpread2({}, DEFAULTS), options);\n this.aborted = false;\n this.result = null;\n this.init();\n }\n _createClass(Compressor, [{\n key: \"init\",\n value: function init() {\n var _this = this;\n var file = this.file,\n options = this.options;\n if (!isBlob(file)) {\n this.fail(new Error('The first argument must be a File or Blob object.'));\n return;\n }\n var mimeType = file.type;\n if (!isImageType(mimeType)) {\n this.fail(new Error('The first argument must be an image File or Blob object.'));\n return;\n }\n if (!URL || !FileReader) {\n this.fail(new Error('The current browser does not support image compression.'));\n return;\n }\n if (!ArrayBuffer$1) {\n options.checkOrientation = false;\n options.retainExif = false;\n }\n var isJPEGImage = mimeType === 'image/jpeg';\n var checkOrientation = isJPEGImage && options.checkOrientation;\n var retainExif = isJPEGImage && options.retainExif;\n if (URL && !checkOrientation && !retainExif) {\n this.load({\n url: URL.createObjectURL(file)\n });\n } else {\n var reader = new FileReader();\n this.reader = reader;\n reader.onload = function (_ref) {\n var target = _ref.target;\n var result = target.result;\n var data = {};\n var orientation = 1;\n if (checkOrientation) {\n // Reset the orientation value to its default value 1\n // as some iOS browsers will render image with its orientation\n orientation = resetAndGetOrientation(result);\n if (orientation > 1) {\n _extends(data, parseOrientation(orientation));\n }\n }\n if (retainExif) {\n _this.exif = getExif(result);\n }\n if (checkOrientation || retainExif) {\n if (!URL\n\n // Generate a new URL with the default orientation value 1.\n || orientation > 1) {\n data.url = arrayBufferToDataURL(result, mimeType);\n } else {\n data.url = URL.createObjectURL(file);\n }\n } else {\n data.url = result;\n }\n _this.load(data);\n };\n reader.onabort = function () {\n _this.fail(new Error('Aborted to read the image with FileReader.'));\n };\n reader.onerror = function () {\n _this.fail(new Error('Failed to read the image with FileReader.'));\n };\n reader.onloadend = function () {\n _this.reader = null;\n };\n if (checkOrientation || retainExif) {\n reader.readAsArrayBuffer(file);\n } else {\n reader.readAsDataURL(file);\n }\n }\n }\n }, {\n key: \"load\",\n value: function load(data) {\n var _this2 = this;\n var file = this.file,\n image = this.image;\n image.onload = function () {\n _this2.draw(_objectSpread2(_objectSpread2({}, data), {}, {\n naturalWidth: image.naturalWidth,\n naturalHeight: image.naturalHeight\n }));\n };\n image.onabort = function () {\n _this2.fail(new Error('Aborted to load the image.'));\n };\n image.onerror = function () {\n _this2.fail(new Error('Failed to load the image.'));\n };\n\n // Match all browsers that use WebKit as the layout engine in iOS devices,\n // such as Safari for iOS, Chrome for iOS, and in-app browsers.\n if (WINDOW.navigator && /(?:iPad|iPhone|iPod).*?AppleWebKit/i.test(WINDOW.navigator.userAgent)) {\n // Fix the `The operation is insecure` error (#57)\n image.crossOrigin = 'anonymous';\n }\n image.alt = file.name;\n image.src = data.url;\n }\n }, {\n key: \"draw\",\n value: function draw(_ref2) {\n var _this3 = this;\n var naturalWidth = _ref2.naturalWidth,\n naturalHeight = _ref2.naturalHeight,\n _ref2$rotate = _ref2.rotate,\n rotate = _ref2$rotate === void 0 ? 0 : _ref2$rotate,\n _ref2$scaleX = _ref2.scaleX,\n scaleX = _ref2$scaleX === void 0 ? 1 : _ref2$scaleX,\n _ref2$scaleY = _ref2.scaleY,\n scaleY = _ref2$scaleY === void 0 ? 1 : _ref2$scaleY;\n var file = this.file,\n image = this.image,\n options = this.options;\n var canvas = document.createElement('canvas');\n var context = canvas.getContext('2d');\n var is90DegreesRotated = Math.abs(rotate) % 180 === 90;\n var resizable = (options.resize === 'contain' || options.resize === 'cover') && isPositiveNumber(options.width) && isPositiveNumber(options.height);\n var maxWidth = Math.max(options.maxWidth, 0) || Infinity;\n var maxHeight = Math.max(options.maxHeight, 0) || Infinity;\n var minWidth = Math.max(options.minWidth, 0) || 0;\n var minHeight = Math.max(options.minHeight, 0) || 0;\n var aspectRatio = naturalWidth / naturalHeight;\n var width = options.width,\n height = options.height;\n if (is90DegreesRotated) {\n var _ref3 = [maxHeight, maxWidth];\n maxWidth = _ref3[0];\n maxHeight = _ref3[1];\n var _ref4 = [minHeight, minWidth];\n minWidth = _ref4[0];\n minHeight = _ref4[1];\n var _ref5 = [height, width];\n width = _ref5[0];\n height = _ref5[1];\n }\n if (resizable) {\n aspectRatio = width / height;\n }\n var _getAdjustedSizes = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: maxWidth,\n height: maxHeight\n }, 'contain');\n maxWidth = _getAdjustedSizes.width;\n maxHeight = _getAdjustedSizes.height;\n var _getAdjustedSizes2 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: minWidth,\n height: minHeight\n }, 'cover');\n minWidth = _getAdjustedSizes2.width;\n minHeight = _getAdjustedSizes2.height;\n if (resizable) {\n var _getAdjustedSizes3 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: width,\n height: height\n }, options.resize);\n width = _getAdjustedSizes3.width;\n height = _getAdjustedSizes3.height;\n } else {\n var _getAdjustedSizes4 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: width,\n height: height\n });\n var _getAdjustedSizes4$wi = _getAdjustedSizes4.width;\n width = _getAdjustedSizes4$wi === void 0 ? naturalWidth : _getAdjustedSizes4$wi;\n var _getAdjustedSizes4$he = _getAdjustedSizes4.height;\n height = _getAdjustedSizes4$he === void 0 ? naturalHeight : _getAdjustedSizes4$he;\n }\n width = Math.floor(normalizeDecimalNumber(Math.min(Math.max(width, minWidth), maxWidth)));\n height = Math.floor(normalizeDecimalNumber(Math.min(Math.max(height, minHeight), maxHeight)));\n var destX = -width / 2;\n var destY = -height / 2;\n var destWidth = width;\n var destHeight = height;\n var params = [];\n if (resizable) {\n var srcX = 0;\n var srcY = 0;\n var srcWidth = naturalWidth;\n var srcHeight = naturalHeight;\n var _getAdjustedSizes5 = getAdjustedSizes({\n aspectRatio: aspectRatio,\n width: naturalWidth,\n height: naturalHeight\n }, {\n contain: 'cover',\n cover: 'contain'\n }[options.resize]);\n srcWidth = _getAdjustedSizes5.width;\n srcHeight = _getAdjustedSizes5.height;\n srcX = (naturalWidth - srcWidth) / 2;\n srcY = (naturalHeight - srcHeight) / 2;\n params.push(srcX, srcY, srcWidth, srcHeight);\n }\n params.push(destX, destY, destWidth, destHeight);\n if (is90DegreesRotated) {\n var _ref6 = [height, width];\n width = _ref6[0];\n height = _ref6[1];\n }\n canvas.width = width;\n canvas.height = height;\n if (!isImageType(options.mimeType)) {\n options.mimeType = file.type;\n }\n var fillStyle = 'transparent';\n\n // Converts PNG files over the `convertSize` to JPEGs.\n if (file.size > options.convertSize && options.convertTypes.indexOf(options.mimeType) >= 0) {\n options.mimeType = 'image/jpeg';\n }\n var isJPEGImage = options.mimeType === 'image/jpeg';\n if (isJPEGImage) {\n fillStyle = '#fff';\n }\n\n // Override the default fill color (#000, black)\n context.fillStyle = fillStyle;\n context.fillRect(0, 0, width, height);\n if (options.beforeDraw) {\n options.beforeDraw.call(this, context, canvas);\n }\n if (this.aborted) {\n return;\n }\n context.save();\n context.translate(width / 2, height / 2);\n context.rotate(rotate * Math.PI / 180);\n context.scale(scaleX, scaleY);\n context.drawImage.apply(context, [image].concat(params));\n context.restore();\n if (options.drew) {\n options.drew.call(this, context, canvas);\n }\n if (this.aborted) {\n return;\n }\n var callback = function callback(blob) {\n if (!_this3.aborted) {\n var done = function done(result) {\n return _this3.done({\n naturalWidth: naturalWidth,\n naturalHeight: naturalHeight,\n result: result\n });\n };\n if (blob && isJPEGImage && options.retainExif && _this3.exif && _this3.exif.length > 0) {\n var next = function next(arrayBuffer) {\n return done(toBlob(arrayBufferToDataURL(insertExif(arrayBuffer, _this3.exif), options.mimeType)));\n };\n if (blob.arrayBuffer) {\n blob.arrayBuffer().then(next).catch(function () {\n _this3.fail(new Error('Failed to read the compressed image with Blob.arrayBuffer().'));\n });\n } else {\n var reader = new FileReader();\n _this3.reader = reader;\n reader.onload = function (_ref7) {\n var target = _ref7.target;\n next(target.result);\n };\n reader.onabort = function () {\n _this3.fail(new Error('Aborted to read the compressed image with FileReader.'));\n };\n reader.onerror = function () {\n _this3.fail(new Error('Failed to read the compressed image with FileReader.'));\n };\n reader.onloadend = function () {\n _this3.reader = null;\n };\n reader.readAsArrayBuffer(blob);\n }\n } else {\n done(blob);\n }\n }\n };\n if (canvas.toBlob) {\n canvas.toBlob(callback, options.mimeType, options.quality);\n } else {\n callback(toBlob(canvas.toDataURL(options.mimeType, options.quality)));\n }\n }\n }, {\n key: \"done\",\n value: function done(_ref8) {\n var naturalWidth = _ref8.naturalWidth,\n naturalHeight = _ref8.naturalHeight,\n result = _ref8.result;\n var file = this.file,\n image = this.image,\n options = this.options;\n if (URL && image.src.indexOf('blob:') === 0) {\n URL.revokeObjectURL(image.src);\n }\n if (result) {\n // Returns original file if the result is greater than it and without size related options\n if (options.strict && !options.retainExif && result.size > file.size && options.mimeType === file.type && !(options.width > naturalWidth || options.height > naturalHeight || options.minWidth > naturalWidth || options.minHeight > naturalHeight || options.maxWidth < naturalWidth || options.maxHeight < naturalHeight)) {\n result = file;\n } else {\n var date = new Date();\n result.lastModified = date.getTime();\n result.lastModifiedDate = date;\n result.name = file.name;\n\n // Convert the extension to match its type\n if (result.name && result.type !== file.type) {\n result.name = result.name.replace(REGEXP_EXTENSION, imageTypeToExtension(result.type));\n }\n }\n } else {\n // Returns original file if the result is null in some cases.\n result = file;\n }\n this.result = result;\n if (options.success) {\n options.success.call(this, result);\n }\n }\n }, {\n key: \"fail\",\n value: function fail(err) {\n var options = this.options;\n if (options.error) {\n options.error.call(this, err);\n } else {\n throw err;\n }\n }\n }, {\n key: \"abort\",\n value: function abort() {\n if (!this.aborted) {\n this.aborted = true;\n if (this.reader) {\n this.reader.abort();\n } else if (!this.image.complete) {\n this.image.onload = null;\n this.image.onabort();\n } else {\n this.fail(new Error('The compression process has been aborted.'));\n }\n }\n }\n\n /**\n * Get the no conflict compressor class.\n * @returns {Compressor} The compressor class.\n */\n }], [{\n key: \"noConflict\",\n value: function noConflict() {\n window.Compressor = AnotherCompressor;\n return Compressor;\n }\n\n /**\n * Change the default options.\n * @param {Object} options - The new default options.\n */\n }, {\n key: \"setDefaults\",\n value: function setDefaults(options) {\n _extends(DEFAULTS, options);\n }\n }]);\n return Compressor;\n }();\n\n return Compressor;\n\n}));\n","import { Vue, mergeData } from '../../vue';\nimport { NAME_MEDIA_BODY } from '../../constants/components';\nimport { PROP_TYPE_STRING } from '../../constants/props';\nimport { makeProp, makePropsConfigurable } from '../../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n tag: makeProp(PROP_TYPE_STRING, 'div')\n}, NAME_MEDIA_BODY); // --- Main component ---\n// @vue/component\n\nexport var BMediaBody = /*#__PURE__*/Vue.extend({\n name: NAME_MEDIA_BODY,\n functional: true,\n props: props,\n render: function render(h, _ref) {\n var props = _ref.props,\n data = _ref.data,\n children = _ref.children;\n return h(props.tag, mergeData(data, {\n staticClass: 'media-body'\n }), children);\n }\n});","import { Vue } from '../vue';\nimport { PROP_TYPE_BOOLEAN } from '../constants/props';\nimport { makeProp, makePropsConfigurable } from '../utils/props'; // --- Props ---\n\nexport var props = makePropsConfigurable({\n plain: makeProp(PROP_TYPE_BOOLEAN, false)\n}, 'formControls'); // --- Mixin ---\n// @vue/component\n\nexport var formCustomMixin = Vue.extend({\n props: props,\n computed: {\n custom: function custom() {\n return !this.plain;\n }\n }\n});","import Compressor from \"compressorjs\";\n\nexport const useInputImageRenderer = (inputEl, callback) => {\n const inputImageRenderer = () => {\n const file = inputEl.files[0];\n new Compressor(file, {\n width: 200,\n height: 200,\n quality: 0.2,\n // The compression process is asynchronous,\n // which means you have to access the `result` in the `success` hook function.\n success(result) {\n var reader = new FileReader();\n reader.readAsDataURL(result);\n reader.onload = () => {\n callback(reader.result);\n };\n },\n error(err) {},\n });\n };\n return {\n inputImageRenderer,\n };\n};\n\nexport const _ = null;\n","var _watch;\n\nfunction ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); if (enumerableOnly) symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; }); keys.push.apply(keys, symbols); } return keys; }\n\nfunction _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i] != null ? arguments[i] : {}; if (i % 2) { ownKeys(Object(source), true).forEach(function (key) { _defineProperty(target, key, source[key]); }); } else if (Object.getOwnPropertyDescriptors) { Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)); } else { ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } } return target; }\n\nfunction _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }\n\nimport { Vue } from '../../vue';\nimport { NAME_FORM_FILE } from '../../constants/components';\nimport { HAS_PROMISE_SUPPORT } from '../../constants/env';\nimport { EVENT_NAME_CHANGE, EVENT_OPTIONS_PASSIVE } from '../../constants/events';\nimport { PROP_TYPE_ARRAY, PROP_TYPE_BOOLEAN, PROP_TYPE_FUNCTION, PROP_TYPE_STRING } from '../../constants/props';\nimport { SLOT_NAME_DROP_PLACEHOLDER, SLOT_NAME_FILE_NAME, SLOT_NAME_PLACEHOLDER } from '../../constants/slots';\nimport { RX_EXTENSION, RX_STAR } from '../../constants/regex';\nimport { File } from '../../constants/safe-types';\nimport { from as arrayFrom, flatten, flattenDeep } from '../../utils/array';\nimport { cloneDeep } from '../../utils/clone-deep';\nimport { closest } from '../../utils/dom';\nimport { eventOn, eventOff, stopEvent } from '../../utils/events';\nimport { identity } from '../../utils/identity';\nimport { isArray, isFile, isFunction, isNull, isUndefinedOrNull } from '../../utils/inspect';\nimport { looseEqual } from '../../utils/loose-equal';\nimport { makeModelMixin } from '../../utils/model';\nimport { sortKeys } from '../../utils/object';\nimport { hasPropFunction, makeProp, makePropsConfigurable } from '../../utils/props';\nimport { escapeRegExp } from '../../utils/string';\nimport { warn } from '../../utils/warn';\nimport { attrsMixin } from '../../mixins/attrs';\nimport { formControlMixin, props as formControlProps } from '../../mixins/form-control';\nimport { formCustomMixin, props as formCustomProps } from '../../mixins/form-custom';\nimport { formStateMixin, props as formStateProps } from '../../mixins/form-state';\nimport { idMixin, props as idProps } from '../../mixins/id';\nimport { normalizeSlotMixin } from '../../mixins/normalize-slot';\nimport { props as formSizeProps } from '../../mixins/form-size'; // --- Constants ---\n\nvar _makeModelMixin = makeModelMixin('value', {\n type: [PROP_TYPE_ARRAY, File],\n defaultValue: null,\n validator: function validator(value) {\n /* istanbul ignore next */\n if (value === '') {\n warn(VALUE_EMPTY_DEPRECATED_MSG, NAME_FORM_FILE);\n return true;\n }\n\n return isUndefinedOrNull(value) || isValidValue(value);\n }\n}),\n modelMixin = _makeModelMixin.mixin,\n modelProps = _makeModelMixin.props,\n MODEL_PROP_NAME = _makeModelMixin.prop,\n MODEL_EVENT_NAME = _makeModelMixin.event;\n\nvar VALUE_EMPTY_DEPRECATED_MSG = 'Setting \"value\"/\"v-model\" to an empty string for reset is deprecated. Set to \"null\" instead.'; // --- Helper methods ---\n\nvar isValidValue = function isValidValue(value) {\n return isFile(value) || isArray(value) && value.every(function (v) {\n return isValidValue(v);\n });\n}; // Helper method to \"safely\" get the entry from a data-transfer item\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getDataTransferItemEntry = function getDataTransferItemEntry(item) {\n return isFunction(item.getAsEntry) ? item.getAsEntry() : isFunction(item.webkitGetAsEntry) ? item.webkitGetAsEntry() : null;\n}; // Drop handler function to get all files\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntries = function getAllFileEntries(dataTransferItemList) {\n var traverseDirectories = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;\n return Promise.all(arrayFrom(dataTransferItemList).filter(function (item) {\n return item.kind === 'file';\n }).map(function (item) {\n var entry = getDataTransferItemEntry(item);\n\n if (entry) {\n if (entry.isDirectory && traverseDirectories) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = '';\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity));\n}; // Get all the file entries (recursive) in a directory\n\n/* istanbul ignore next: not supported in JSDOM */\n\n\nvar getAllFileEntriesInDirectory = function getAllFileEntriesInDirectory(directoryReader) {\n var path = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';\n return new Promise(function (resolve) {\n var entryPromises = [];\n\n var readDirectoryEntries = function readDirectoryEntries() {\n directoryReader.readEntries(function (entries) {\n if (entries.length === 0) {\n resolve(Promise.all(entryPromises).then(function (entries) {\n return flatten(entries);\n }));\n } else {\n entryPromises.push(Promise.all(entries.map(function (entry) {\n if (entry) {\n if (entry.isDirectory) {\n return getAllFileEntriesInDirectory(entry.createReader(), \"\".concat(path).concat(entry.name, \"/\"));\n } else if (entry.isFile) {\n return new Promise(function (resolve) {\n entry.file(function (file) {\n file.$path = \"\".concat(path).concat(file.name);\n resolve(file);\n });\n });\n }\n }\n\n return null;\n }).filter(identity)));\n readDirectoryEntries();\n }\n });\n };\n\n readDirectoryEntries();\n });\n}; // --- Props ---\n\n\nvar props = makePropsConfigurable(sortKeys(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread(_objectSpread({}, idProps), modelProps), formControlProps), formCustomProps), formStateProps), formSizeProps), {}, {\n accept: makeProp(PROP_TYPE_STRING, ''),\n browseText: makeProp(PROP_TYPE_STRING, 'Browse'),\n // Instruct input to capture from camera\n capture: makeProp(PROP_TYPE_BOOLEAN, false),\n directory: makeProp(PROP_TYPE_BOOLEAN, false),\n dropPlaceholder: makeProp(PROP_TYPE_STRING, 'Drop files here'),\n fileNameFormatter: makeProp(PROP_TYPE_FUNCTION),\n multiple: makeProp(PROP_TYPE_BOOLEAN, false),\n noDrop: makeProp(PROP_TYPE_BOOLEAN, false),\n noDropPlaceholder: makeProp(PROP_TYPE_STRING, 'Not allowed'),\n // TODO:\n // Should we deprecate this and only support flat file structures?\n // Nested file structures are only supported when files are dropped\n // A Chromium \"bug\" prevents `webkitEntries` from being populated\n // on the file input's `change` event and is marked as \"WontFix\"\n // Mozilla implemented the behavior the same way as Chromium\n // See: https://bugs.chromium.org/p/chromium/issues/detail?id=138987\n // See: https://bugzilla.mozilla.org/show_bug.cgi?id=1326031\n noTraverse: makeProp(PROP_TYPE_BOOLEAN, false),\n placeholder: makeProp(PROP_TYPE_STRING, 'No file chosen')\n})), NAME_FORM_FILE); // --- Main component ---\n// @vue/component\n\nexport var BFormFile = /*#__PURE__*/Vue.extend({\n name: NAME_FORM_FILE,\n mixins: [attrsMixin, idMixin, modelMixin, normalizeSlotMixin, formControlMixin, formStateMixin, formCustomMixin, normalizeSlotMixin],\n inheritAttrs: false,\n props: props,\n data: function data() {\n return {\n files: [],\n dragging: false,\n // IE 11 doesn't respect setting `event.dataTransfer.dropEffect`,\n // so we handle it ourselves as well\n // https://stackoverflow.com/a/46915971/2744776\n dropAllowed: !this.noDrop,\n hasFocus: false\n };\n },\n computed: {\n // Convert `accept` to an array of `[{ RegExpr, isMime }, ...]`\n computedAccept: function computedAccept() {\n var accept = this.accept;\n accept = (accept || '').trim().split(/[,\\s]+/).filter(identity); // Allow any file type/extension\n\n if (accept.length === 0) {\n return null;\n }\n\n return accept.map(function (extOrType) {\n var prop = 'name';\n var startMatch = '^';\n var endMatch = '$';\n\n if (RX_EXTENSION.test(extOrType)) {\n // File extension /\\.ext$/\n startMatch = '';\n } else {\n // MIME type /^mime\\/.+$/ or /^mime\\/type$/\n prop = 'type';\n\n if (RX_STAR.test(extOrType)) {\n endMatch = '.+$'; // Remove trailing `*`\n\n extOrType = extOrType.slice(0, -1);\n }\n } // Escape all RegExp special chars\n\n\n extOrType = escapeRegExp(extOrType);\n var rx = new RegExp(\"\".concat(startMatch).concat(extOrType).concat(endMatch));\n return {\n rx: rx,\n prop: prop\n };\n });\n },\n computedCapture: function computedCapture() {\n var capture = this.capture;\n return capture === true || capture === '' ? true : capture || null;\n },\n computedAttrs: function computedAttrs() {\n var name = this.name,\n disabled = this.disabled,\n required = this.required,\n form = this.form,\n computedCapture = this.computedCapture,\n accept = this.accept,\n multiple = this.multiple,\n directory = this.directory;\n return _objectSpread(_objectSpread({}, this.bvAttrs), {}, {\n type: 'file',\n id: this.safeId(),\n name: name,\n disabled: disabled,\n required: required,\n form: form || null,\n capture: computedCapture,\n accept: accept || null,\n multiple: multiple,\n directory: directory,\n webkitdirectory: directory,\n 'aria-required': required ? 'true' : null\n });\n },\n computedFileNameFormatter: function computedFileNameFormatter() {\n var fileNameFormatter = this.fileNameFormatter;\n return hasPropFunction(fileNameFormatter) ? fileNameFormatter : this.defaultFileNameFormatter;\n },\n clonedFiles: function clonedFiles() {\n return cloneDeep(this.files);\n },\n flattenedFiles: function flattenedFiles() {\n return flattenDeep(this.files);\n },\n fileNames: function fileNames() {\n return this.flattenedFiles.map(function (file) {\n return file.name;\n });\n },\n labelContent: function labelContent() {\n // Draging active\n\n /* istanbul ignore next: used by drag/drop which can't be tested easily */\n if (this.dragging && !this.noDrop) {\n return (// TODO: Add additional scope with file count, and other not-allowed reasons\n this.normalizeSlot(SLOT_NAME_DROP_PLACEHOLDER, {\n allowed: this.dropAllowed\n }) || (this.dropAllowed ? this.dropPlaceholder : this.$createElement('span', {\n staticClass: 'text-danger'\n }, this.noDropPlaceholder))\n );\n } // No file chosen\n\n\n if (this.files.length === 0) {\n return this.normalizeSlot(SLOT_NAME_PLACEHOLDER) || this.placeholder;\n }\n\n var flattenedFiles = this.flattenedFiles,\n clonedFiles = this.clonedFiles,\n fileNames = this.fileNames,\n computedFileNameFormatter = this.computedFileNameFormatter; // There is a slot for formatting the files/names\n\n if (this.hasNormalizedSlot(SLOT_NAME_FILE_NAME)) {\n return this.normalizeSlot(SLOT_NAME_FILE_NAME, {\n files: flattenedFiles,\n filesTraversed: clonedFiles,\n names: fileNames\n });\n }\n\n return computedFileNameFormatter(flattenedFiles, clonedFiles, fileNames);\n }\n },\n watch: (_watch = {}, _defineProperty(_watch, MODEL_PROP_NAME, function (newValue) {\n if (!newValue || isArray(newValue) && newValue.length === 0) {\n this.reset();\n }\n }), _defineProperty(_watch, \"files\", function files(newValue, oldValue) {\n if (!looseEqual(newValue, oldValue)) {\n var multiple = this.multiple,\n noTraverse = this.noTraverse;\n var files = !multiple || noTraverse ? flattenDeep(newValue) : newValue;\n this.$emit(MODEL_EVENT_NAME, multiple ? files : files[0] || null);\n }\n }), _watch),\n created: function created() {\n // Create private non-reactive props\n this.$_form = null;\n },\n mounted: function mounted() {\n // Listen for form reset events, to reset the file input\n var $form = closest('form', this.$el);\n\n if ($form) {\n eventOn($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n this.$_form = $form;\n }\n },\n beforeDestroy: function beforeDestroy() {\n var $form = this.$_form;\n\n if ($form) {\n eventOff($form, 'reset', this.reset, EVENT_OPTIONS_PASSIVE);\n }\n },\n methods: {\n isFileValid: function isFileValid(file) {\n if (!file) {\n return false;\n }\n\n var accept = this.computedAccept;\n return accept ? accept.some(function (a) {\n return a.rx.test(file[a.prop]);\n }) : true;\n },\n isFilesArrayValid: function isFilesArrayValid(files) {\n var _this = this;\n\n return isArray(files) ? files.every(function (file) {\n return _this.isFileValid(file);\n }) : this.isFileValid(files);\n },\n defaultFileNameFormatter: function defaultFileNameFormatter(flattenedFiles, clonedFiles, fileNames) {\n return fileNames.join(', ');\n },\n setFiles: function setFiles(files) {\n // Reset the dragging flags\n this.dropAllowed = !this.noDrop;\n this.dragging = false; // Set the selected files\n\n this.files = this.multiple ? this.directory ? files : flattenDeep(files) : flattenDeep(files).slice(0, 1);\n },\n\n /* istanbul ignore next: used by Drag/Drop */\n setInputFiles: function setInputFiles(files) {\n // Try an set the file input files array so that `required`\n // constraint works for dropped files (will fail in IE11 though)\n // To be used only when dropping files\n try {\n // Firefox < 62 workaround exploiting https://bugzilla.mozilla.org/show_bug.cgi?id=1422655\n var dataTransfer = new ClipboardEvent('').clipboardData || new DataTransfer(); // Add flattened files to temp `dataTransfer` object to get a true `FileList` array\n\n flattenDeep(cloneDeep(files)).forEach(function (file) {\n // Make sure to remove the custom `$path` attribute\n delete file.$path;\n dataTransfer.items.add(file);\n });\n this.$refs.input.files = dataTransfer.files;\n } catch (_unused) {}\n },\n reset: function reset() {\n // IE 11 doesn't support setting `$input.value` to `''` or `null`\n // So we use this little extra hack to reset the value, just in case\n // This also appears to work on modern browsers as well\n // Wrapped in try in case IE 11 or mobile Safari crap out\n try {\n var $input = this.$refs.input;\n $input.value = '';\n $input.type = '';\n $input.type = 'file';\n } catch (_unused2) {}\n\n this.files = [];\n },\n handleFiles: function handleFiles(files) {\n var isDrop = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;\n\n if (isDrop) {\n // When dropped, make sure to filter files with the internal `accept` logic\n var filteredFiles = files.filter(this.isFilesArrayValid); // Only update files when we have any after filtering\n\n if (filteredFiles.length > 0) {\n this.setFiles(filteredFiles); // Try an set the file input's files array so that `required`\n // constraint works for dropped files (will fail in IE 11 though)\n\n this.setInputFiles(filteredFiles);\n }\n } else {\n // We always update the files from the `change` event\n this.setFiles(files);\n }\n },\n focusHandler: function focusHandler(event) {\n // Bootstrap v4 doesn't have focus styling for custom file input\n // Firefox has a `[type=file]:focus ~ sibling` selector issue,\n // so we add a `focus` class to get around these bugs\n if (this.plain || event.type === 'focusout') {\n this.hasFocus = false;\n } else {\n // Add focus styling for custom file input\n this.hasFocus = true;\n }\n },\n onChange: function onChange(event) {\n var _this2 = this;\n\n var type = event.type,\n target = event.target,\n _event$dataTransfer = event.dataTransfer,\n dataTransfer = _event$dataTransfer === void 0 ? {} : _event$dataTransfer;\n var isDrop = type === 'drop'; // Always emit original event\n\n this.$emit(EVENT_NAME_CHANGE, event);\n var items = arrayFrom(dataTransfer.items || []);\n\n if (HAS_PROMISE_SUPPORT && items.length > 0 && !isNull(getDataTransferItemEntry(items[0]))) {\n // Drop handling for modern browsers\n // Supports nested directory structures in `directory` mode\n\n /* istanbul ignore next: not supported in JSDOM */\n getAllFileEntries(items, this.directory).then(function (files) {\n return _this2.handleFiles(files, isDrop);\n });\n } else {\n // Standard file input handling (native file input change event),\n // or fallback drop mode (IE 11 / Opera) which don't support `directory` mode\n var files = arrayFrom(target.files || dataTransfer.files || []).map(function (file) {\n // Add custom `$path` property to each file (to be consistent with drop mode)\n file.$path = file.webkitRelativePath || '';\n return file;\n });\n this.handleFiles(files, isDrop);\n }\n },\n onDragenter: function onDragenter(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer2 = event.dataTransfer,\n dataTransfer = _event$dataTransfer2 === void 0 ? {} : _event$dataTransfer2; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n // Note this event fires repeatedly while the mouse is over the dropzone at\n // intervals in the milliseconds, so avoid doing much processing in here\n onDragover: function onDragover(event) {\n stopEvent(event);\n this.dragging = true;\n var _event$dataTransfer3 = event.dataTransfer,\n dataTransfer = _event$dataTransfer3 === void 0 ? {} : _event$dataTransfer3; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n // Show deny feedback\n\n /* istanbul ignore next: not supported in JSDOM */\n dataTransfer.dropEffect = 'none';\n this.dropAllowed = false;\n return;\n }\n /* istanbul ignore next: not supported in JSDOM */\n\n\n dataTransfer.dropEffect = 'copy';\n },\n onDragleave: function onDragleave(event) {\n var _this3 = this;\n\n stopEvent(event);\n this.$nextTick(function () {\n _this3.dragging = false; // Reset `dropAllowed` to default\n\n _this3.dropAllowed = !_this3.noDrop;\n });\n },\n // Triggered by a file drop onto drop target\n onDrop: function onDrop(event) {\n var _this4 = this;\n\n stopEvent(event);\n this.dragging = false; // Early exit when the input or dropping is disabled\n\n if (this.noDrop || this.disabled || !this.dropAllowed) {\n this.$nextTick(function () {\n // Reset `dropAllowed` to default\n _this4.dropAllowed = !_this4.noDrop;\n });\n return;\n }\n\n this.onChange(event);\n }\n },\n render: function render(h) {\n var custom = this.custom,\n plain = this.plain,\n size = this.size,\n dragging = this.dragging,\n stateClass = this.stateClass,\n bvAttrs = this.bvAttrs; // Form Input\n\n var $input = h('input', {\n class: [{\n 'form-control-file': plain,\n 'custom-file-input': custom,\n focus: custom && this.hasFocus\n }, stateClass],\n // With IE 11, the input gets in the \"way\" of the drop events,\n // so we move it out of the way by putting it behind the label\n // Bootstrap v4 has it in front\n style: custom ? {\n zIndex: -5\n } : {},\n attrs: this.computedAttrs,\n on: {\n change: this.onChange,\n focusin: this.focusHandler,\n focusout: this.focusHandler,\n reset: this.reset\n },\n ref: 'input'\n });\n\n if (plain) {\n return $input;\n } // Overlay label\n\n\n var $label = h('label', {\n staticClass: 'custom-file-label',\n class: {\n dragging: dragging\n },\n attrs: {\n for: this.safeId(),\n // This goes away in Bootstrap v5\n 'data-browse': this.browseText || null\n }\n }, [h('span', {\n staticClass: 'd-block form-file-text',\n // `pointer-events: none` is used to make sure\n // the drag events fire only on the label\n style: {\n pointerEvents: 'none'\n }\n }, [this.labelContent])]); // Return rendered custom file input\n\n return h('div', {\n staticClass: 'custom-file b-form-file',\n class: [_defineProperty({}, \"b-custom-control-\".concat(size), size), stateClass, bvAttrs.class],\n style: bvAttrs.style,\n attrs: {\n id: this.safeId('_BV_file_outer_')\n },\n on: {\n dragenter: this.onDragenter,\n dragover: this.onDragover,\n dragleave: this.onDragleave,\n drop: this.onDrop\n }\n }, [$input, $label]);\n }\n});","var Ripple = {\n bind: function(el, binding){\n\n // Default values.\n var props = {\n event: 'mousedown',\n transition: 600\n };\n\n setProps(Object.keys(binding.modifiers),props);\n\n el.addEventListener(props.event, function(event) {\n rippler(event, el, binding.value);\n });\n\n var bg = binding.value || Ripple.color || 'rgba(0, 0, 0, 0.35)';\n var zIndex = Ripple.zIndex || '9999';\n\n function rippler(event, el) {\n var target = el;\n // Get border to avoid offsetting on ripple container position\n var targetBorder = parseInt((getComputedStyle(target).borderWidth).replace('px', ''));\n\n // Get necessary variables\n var rect = target.getBoundingClientRect(),\n left = rect.left,\n top = rect.top,\n width = target.offsetWidth,\n height = target.offsetHeight,\n dx = event.clientX - left,\n dy = event.clientY - top,\n maxX = Math.max(dx, width - dx),\n maxY = Math.max(dy, height - dy),\n style = window.getComputedStyle(target),\n radius = Math.sqrt((maxX * maxX) + (maxY * maxY)),\n border = (targetBorder > 0 ) ? targetBorder : 0;\n\n // Create the ripple and its container\n var ripple = document.createElement(\"div\"),\n rippleContainer = document.createElement(\"div\");\n rippleContainer.className = 'ripple-container';\n ripple.className = 'ripple';\n\n //Styles for ripple\n ripple.style.marginTop= '0px';\n ripple.style.marginLeft= '0px';\n ripple.style.width= '1px';\n ripple.style.height= '1px';\n ripple.style.transition= 'all ' + props.transition + 'ms cubic-bezier(0.4, 0, 0.2, 1)';\n ripple.style.borderRadius= '50%';\n ripple.style.pointerEvents= 'none';\n ripple.style.position= 'relative';\n ripple.style.zIndex= zIndex;\n ripple.style.backgroundColor = bg;\n\n //Styles for rippleContainer\n rippleContainer.style.position= 'absolute';\n rippleContainer.style.left = 0 - border + 'px';\n rippleContainer.style.top = 0 - border + 'px';\n rippleContainer.style.height = '0';\n rippleContainer.style.width = '0';\n rippleContainer.style.pointerEvents = 'none';\n rippleContainer.style.overflow = 'hidden';\n\n // Store target position to change it after\n var storedTargetPosition = ((target.style.position).length > 0) ? target.style.position : getComputedStyle(target).position;\n // Change target position to relative to guarantee ripples correct positioning\n if (storedTargetPosition !== 'relative') {\n target.style.position = 'relative';\n }\n\n rippleContainer.appendChild(ripple);\n target.appendChild(rippleContainer);\n\n ripple.style.marginLeft = dx + \"px\";\n ripple.style.marginTop = dy + \"px\";\n\n // No need to set positioning because ripple should be child of target and to it's relative position.\n // rippleContainer.style.left = left + (((window.pageXOffset || document.scrollLeft) - (document.clientLeft || 0)) || 0) + \"px\";\n // rippleContainer.style.top = top + (((window.pageYOffset || document.scrollTop) - (document.clientTop || 0)) || 0) + \"px\";\n rippleContainer.style.width = width + \"px\";\n rippleContainer.style.height = height + \"px\";\n rippleContainer.style.borderTopLeftRadius = style.borderTopLeftRadius;\n rippleContainer.style.borderTopRightRadius = style.borderTopRightRadius;\n rippleContainer.style.borderBottomLeftRadius = style.borderBottomLeftRadius;\n rippleContainer.style.borderBottomRightRadius = style.borderBottomRightRadius;\n\n rippleContainer.style.direction = 'ltr';\n\n setTimeout(function() {\n ripple.style.width = radius * 2 + \"px\";\n ripple.style.height = radius * 2 + \"px\";\n ripple.style.marginLeft = dx - radius + \"px\";\n ripple.style.marginTop = dy - radius + \"px\";\n }, 0);\n\n function clearRipple() {\n setTimeout(function() {\n ripple.style.backgroundColor = \"rgba(0, 0, 0, 0)\";\n }, 250);\n\n // Timeout set to get a smooth removal of the ripple\n setTimeout(function() {\n rippleContainer.parentNode.removeChild(rippleContainer);\n }, 850);\n\n el.removeEventListener('mouseup', clearRipple, false);\n\n // After removing event set position to target to it's original one\n // Timeout it's needed to avoid jerky effect of ripple jumping out parent target\n setTimeout(function () {\n\n var clearPosition = true;\n for(var i = 0; i < target.childNodes.length; i++) {\n if(target.childNodes[i].className === 'ripple-container') {\n clearPosition = false;\n }\n }\n\n if(clearPosition) {\n if(storedTargetPosition !== 'static') {\n target.style.position = storedTargetPosition;\n } else {\n target.style.position = '';\n }\n }\n\n }, props.transition + 250)\n }\n\n if(event.type === 'mousedown') {\n el.addEventListener('mouseup', clearRipple, false);\n } else {\n clearRipple();\n }\n }\n }\n};\n\nfunction setProps(modifiers,props) {\n modifiers.forEach(function(item) {\n if(isNaN(Number(item)))\n props.event = item;\n else\n props.transition = item;\n });\n}\n\nexport default Ripple;"],"sourceRoot":""}