UNPKG

vue-grid-layout

Version:

A draggable and resizable grid layout, as a Vue component.

1,532 lines (1,263 loc) 414 kB
/*! vue-grid-layout - 2.4.0 | (c) 2015, 2022 Gustavo Santos (JBay Solutions) <gustavo.santos@jbaysolutions.com> (http://www.jbaysolutions.com) | https://github.com/jbaysolutions/vue-grid-layout */ (function webpackUniversalModuleDefinition(root, factory) { if(typeof exports === 'object' && typeof module === 'object') module.exports = factory(require("vue")); else if(typeof define === 'function' && define.amd) define([], factory); else if(typeof exports === 'object') exports["VueGridLayout"] = factory(require("vue")); else root["VueGridLayout"] = factory(root["Vue"]); })((typeof self !== 'undefined' ? self : this), function(__WEBPACK_EXTERNAL_MODULE__8bbf__) { return /******/ (function(modules) { // webpackBootstrap /******/ // The module cache /******/ var installedModules = {}; /******/ /******/ // The require function /******/ function __webpack_require__(moduleId) { /******/ /******/ // Check if module is in cache /******/ if(installedModules[moduleId]) { /******/ return installedModules[moduleId].exports; /******/ } /******/ // Create a new module (and put it into the cache) /******/ var module = installedModules[moduleId] = { /******/ i: moduleId, /******/ l: false, /******/ exports: {} /******/ }; /******/ /******/ // Execute the module function /******/ modules[moduleId].call(module.exports, module, module.exports, __webpack_require__); /******/ /******/ // Flag the module as loaded /******/ module.l = true; /******/ /******/ // Return the exports of the module /******/ return module.exports; /******/ } /******/ /******/ /******/ // expose the modules object (__webpack_modules__) /******/ __webpack_require__.m = modules; /******/ /******/ // expose the module cache /******/ __webpack_require__.c = installedModules; /******/ /******/ // define getter function for harmony exports /******/ __webpack_require__.d = function(exports, name, getter) { /******/ if(!__webpack_require__.o(exports, name)) { /******/ Object.defineProperty(exports, name, { enumerable: true, get: getter }); /******/ } /******/ }; /******/ /******/ // define __esModule on exports /******/ __webpack_require__.r = function(exports) { /******/ if(typeof Symbol !== 'undefined' && Symbol.toStringTag) { /******/ Object.defineProperty(exports, Symbol.toStringTag, { value: 'Module' }); /******/ } /******/ Object.defineProperty(exports, '__esModule', { value: true }); /******/ }; /******/ /******/ // create a fake namespace object /******/ // mode & 1: value is a module id, require it /******/ // mode & 2: merge all properties of value into the ns /******/ // mode & 4: return value when already ns object /******/ // mode & 8|1: behave like require /******/ __webpack_require__.t = function(value, mode) { /******/ if(mode & 1) value = __webpack_require__(value); /******/ if(mode & 8) return value; /******/ if((mode & 4) && typeof value === 'object' && value && value.__esModule) return value; /******/ var ns = Object.create(null); /******/ __webpack_require__.r(ns); /******/ Object.defineProperty(ns, 'default', { enumerable: true, value: value }); /******/ if(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key)); /******/ return ns; /******/ }; /******/ /******/ // getDefaultExport function for compatibility with non-harmony modules /******/ __webpack_require__.n = function(module) { /******/ var getter = module && module.__esModule ? /******/ function getDefault() { return module['default']; } : /******/ function getModuleExports() { return module; }; /******/ __webpack_require__.d(getter, 'a', getter); /******/ return getter; /******/ }; /******/ /******/ // Object.prototype.hasOwnProperty.call /******/ __webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); }; /******/ /******/ // __webpack_public_path__ /******/ __webpack_require__.p = ""; /******/ /******/ /******/ // Load entry module and return exports /******/ return __webpack_require__(__webpack_require__.s = "fb15"); /******/ }) /************************************************************************/ /******/ ({ /***/ "01f9": /***/ (function(module, exports, __webpack_require__) { "use strict"; var LIBRARY = __webpack_require__("2d00"); var $export = __webpack_require__("5ca1"); var redefine = __webpack_require__("2aba"); var hide = __webpack_require__("32e9"); var Iterators = __webpack_require__("84f2"); var $iterCreate = __webpack_require__("41a0"); var setToStringTag = __webpack_require__("7f20"); var getPrototypeOf = __webpack_require__("38fd"); var ITERATOR = __webpack_require__("2b4c")('iterator'); var BUGGY = !([].keys && 'next' in [].keys()); // Safari has buggy iterators w/o `next` var FF_ITERATOR = '@@iterator'; var KEYS = 'keys'; var VALUES = 'values'; var returnThis = function () { return this; }; module.exports = function (Base, NAME, Constructor, next, DEFAULT, IS_SET, FORCED) { $iterCreate(Constructor, NAME, next); var getMethod = function (kind) { if (!BUGGY && kind in proto) return proto[kind]; switch (kind) { case KEYS: return function keys() { return new Constructor(this, kind); }; case VALUES: return function values() { return new Constructor(this, kind); }; } return function entries() { return new Constructor(this, kind); }; }; var TAG = NAME + ' Iterator'; var DEF_VALUES = DEFAULT == VALUES; var VALUES_BUG = false; var proto = Base.prototype; var $native = proto[ITERATOR] || proto[FF_ITERATOR] || DEFAULT && proto[DEFAULT]; var $default = $native || getMethod(DEFAULT); var $entries = DEFAULT ? !DEF_VALUES ? $default : getMethod('entries') : undefined; var $anyNative = NAME == 'Array' ? proto.entries || $native : $native; var methods, key, IteratorPrototype; // Fix native if ($anyNative) { IteratorPrototype = getPrototypeOf($anyNative.call(new Base())); if (IteratorPrototype !== Object.prototype && IteratorPrototype.next) { // Set @@toStringTag to native iterators setToStringTag(IteratorPrototype, TAG, true); // fix for some old engines if (!LIBRARY && typeof IteratorPrototype[ITERATOR] != 'function') hide(IteratorPrototype, ITERATOR, returnThis); } } // fix Array#{values, @@iterator}.name in V8 / FF if (DEF_VALUES && $native && $native.name !== VALUES) { VALUES_BUG = true; $default = function values() { return $native.call(this); }; } // Define iterator if ((!LIBRARY || FORCED) && (BUGGY || VALUES_BUG || !proto[ITERATOR])) { hide(proto, ITERATOR, $default); } // Plug for library Iterators[NAME] = $default; Iterators[TAG] = returnThis; if (DEFAULT) { methods = { values: DEF_VALUES ? $default : getMethod(VALUES), keys: IS_SET ? $default : getMethod(KEYS), entries: $entries }; if (FORCED) for (key in methods) { if (!(key in proto)) redefine(proto, key, methods[key]); } else $export($export.P + $export.F * (BUGGY || VALUES_BUG), NAME, methods); } return methods; }; /***/ }), /***/ "02f4": /***/ (function(module, exports, __webpack_require__) { var toInteger = __webpack_require__("4588"); var defined = __webpack_require__("be13"); // true -> String#at // false -> String#codePointAt module.exports = function (TO_STRING) { return function (that, pos) { var s = String(defined(that)); var i = toInteger(pos); var l = s.length; var a, b; if (i < 0 || i >= l) return TO_STRING ? '' : undefined; a = s.charCodeAt(i); return a < 0xd800 || a > 0xdbff || i + 1 === l || (b = s.charCodeAt(i + 1)) < 0xdc00 || b > 0xdfff ? TO_STRING ? s.charAt(i) : a : TO_STRING ? s.slice(i, i + 2) : (a - 0xd800 << 10) + (b - 0xdc00) + 0x10000; }; }; /***/ }), /***/ "0390": /***/ (function(module, exports, __webpack_require__) { "use strict"; var at = __webpack_require__("02f4")(true); // `AdvanceStringIndex` abstract operation // https://tc39.github.io/ecma262/#sec-advancestringindex module.exports = function (S, index, unicode) { return index + (unicode ? at(S, index).length : 1); }; /***/ }), /***/ "0bfb": /***/ (function(module, exports, __webpack_require__) { "use strict"; // 21.2.5.3 get RegExp.prototype.flags var anObject = __webpack_require__("cb7c"); module.exports = function () { var that = anObject(this); var result = ''; if (that.global) result += 'g'; if (that.ignoreCase) result += 'i'; if (that.multiline) result += 'm'; if (that.unicode) result += 'u'; if (that.sticky) result += 'y'; return result; }; /***/ }), /***/ "0d58": /***/ (function(module, exports, __webpack_require__) { // 19.1.2.14 / 15.2.3.14 Object.keys(O) var $keys = __webpack_require__("ce10"); var enumBugKeys = __webpack_require__("e11e"); module.exports = Object.keys || function keys(O) { return $keys(O, enumBugKeys); }; /***/ }), /***/ "1156": /***/ (function(module, exports, __webpack_require__) { // style-loader: Adds some css to the DOM by adding a <style> tag // load the styles var content = __webpack_require__("ad20"); if(typeof content === 'string') content = [[module.i, content, '']]; if(content.locals) module.exports = content.locals; // add the styles to the DOM var add = __webpack_require__("499e").default var update = add("c1ec597e", content, true, {"sourceMap":false,"shadowMode":false}); /***/ }), /***/ "11e9": /***/ (function(module, exports, __webpack_require__) { var pIE = __webpack_require__("52a7"); var createDesc = __webpack_require__("4630"); var toIObject = __webpack_require__("6821"); var toPrimitive = __webpack_require__("6a99"); var has = __webpack_require__("69a8"); var IE8_DOM_DEFINE = __webpack_require__("c69a"); var gOPD = Object.getOwnPropertyDescriptor; exports.f = __webpack_require__("9e1e") ? gOPD : function getOwnPropertyDescriptor(O, P) { O = toIObject(O); P = toPrimitive(P, true); if (IE8_DOM_DEFINE) try { return gOPD(O, P); } catch (e) { /* empty */ } if (has(O, P)) return createDesc(!pIE.f.call(O, P), O[P]); }; /***/ }), /***/ "1495": /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__("86cc"); var anObject = __webpack_require__("cb7c"); var getKeys = __webpack_require__("0d58"); module.exports = __webpack_require__("9e1e") ? Object.defineProperties : function defineProperties(O, Properties) { anObject(O); var keys = getKeys(Properties); var length = keys.length; var i = 0; var P; while (length > i) dP.f(O, P = keys[i++], Properties[P]); return O; }; /***/ }), /***/ "18d2": /***/ (function(module, exports, __webpack_require__) { "use strict"; /** * Resize detection strategy that injects objects to elements in order to detect resize events. * Heavily inspired by: http://www.backalleycoder.com/2013/03/18/cross-browser-event-based-element-resize-detection/ */ var browserDetector = __webpack_require__("18e9"); module.exports = function(options) { options = options || {}; var reporter = options.reporter; var batchProcessor = options.batchProcessor; var getState = options.stateHandler.getState; if(!reporter) { throw new Error("Missing required dependency: reporter."); } /** * Adds a resize event listener to the element. * @public * @param {element} element The element that should have the listener added. * @param {function} listener The listener callback to be called for each resize event of the element. The element will be given as a parameter to the listener callback. */ function addListener(element, listener) { function listenerProxy() { listener(element); } if(browserDetector.isIE(8)) { //IE 8 does not support object, but supports the resize event directly on elements. getState(element).object = { proxy: listenerProxy }; element.attachEvent("onresize", listenerProxy); } else { var object = getObject(element); if(!object) { throw new Error("Element is not detectable by this strategy."); } object.contentDocument.defaultView.addEventListener("resize", listenerProxy); } } function buildCssTextString(rules) { var seperator = options.important ? " !important; " : "; "; return (rules.join(seperator) + seperator).trim(); } /** * Makes an element detectable and ready to be listened for resize events. Will call the callback when the element is ready to be listened for resize changes. * @private * @param {object} options Optional options object. * @param {element} element The element to make detectable * @param {function} callback The callback to be called when the element is ready to be listened for resize changes. Will be called with the element as first parameter. */ function makeDetectable(options, element, callback) { if (!callback) { callback = element; element = options; options = null; } options = options || {}; var debug = options.debug; function injectObject(element, callback) { var OBJECT_STYLE = buildCssTextString(["display: block", "position: absolute", "top: 0", "left: 0", "width: 100%", "height: 100%", "border: none", "padding: 0", "margin: 0", "opacity: 0", "z-index: -1000", "pointer-events: none"]); //The target element needs to be positioned (everything except static) so the absolute positioned object will be positioned relative to the target element. // Position altering may be performed directly or on object load, depending on if style resolution is possible directly or not. var positionCheckPerformed = false; // The element may not yet be attached to the DOM, and therefore the style object may be empty in some browsers. // Since the style object is a reference, it will be updated as soon as the element is attached to the DOM. var style = window.getComputedStyle(element); var width = element.offsetWidth; var height = element.offsetHeight; getState(element).startSize = { width: width, height: height }; function mutateDom() { function alterPositionStyles() { if(style.position === "static") { element.style.setProperty("position", "relative", options.important ? "important" : ""); var removeRelativeStyles = function(reporter, element, style, property) { function getNumericalValue(value) { return value.replace(/[^-\d\.]/g, ""); } var value = style[property]; if(value !== "auto" && getNumericalValue(value) !== "0") { reporter.warn("An element that is positioned static has style." + property + "=" + value + " which is ignored due to the static positioning. The element will need to be positioned relative, so the style." + property + " will be set to 0. Element: ", element); element.style.setProperty(property, "0", options.important ? "important" : ""); } }; //Check so that there are no accidental styles that will make the element styled differently now that is is relative. //If there are any, set them to 0 (this should be okay with the user since the style properties did nothing before [since the element was positioned static] anyway). removeRelativeStyles(reporter, element, style, "top"); removeRelativeStyles(reporter, element, style, "right"); removeRelativeStyles(reporter, element, style, "bottom"); removeRelativeStyles(reporter, element, style, "left"); } } function onObjectLoad() { // The object has been loaded, which means that the element now is guaranteed to be attached to the DOM. if (!positionCheckPerformed) { alterPositionStyles(); } /*jshint validthis: true */ function getDocument(element, callback) { //Opera 12 seem to call the object.onload before the actual document has been created. //So if it is not present, poll it with an timeout until it is present. //TODO: Could maybe be handled better with object.onreadystatechange or similar. if(!element.contentDocument) { var state = getState(element); if (state.checkForObjectDocumentTimeoutId) { window.clearTimeout(state.checkForObjectDocumentTimeoutId); } state.checkForObjectDocumentTimeoutId = setTimeout(function checkForObjectDocument() { state.checkForObjectDocumentTimeoutId = 0; getDocument(element, callback); }, 100); return; } callback(element.contentDocument); } //Mutating the object element here seems to fire another load event. //Mutating the inner document of the object element is fine though. var objectElement = this; //Create the style element to be added to the object. getDocument(objectElement, function onObjectDocumentReady(objectDocument) { //Notify that the element is ready to be listened to. callback(element); }); } // The element may be detached from the DOM, and some browsers does not support style resolving of detached elements. // The alterPositionStyles needs to be delayed until we know the element has been attached to the DOM (which we are sure of when the onObjectLoad has been fired), if style resolution is not possible. if (style.position !== "") { alterPositionStyles(style); positionCheckPerformed = true; } //Add an object element as a child to the target element that will be listened to for resize events. var object = document.createElement("object"); object.style.cssText = OBJECT_STYLE; object.tabIndex = -1; object.type = "text/html"; object.setAttribute("aria-hidden", "true"); object.onload = onObjectLoad; //Safari: This must occur before adding the object to the DOM. //IE: Does not like that this happens before, even if it is also added after. if(!browserDetector.isIE()) { object.data = "about:blank"; } if (!getState(element)) { // The element has been uninstalled before the actual loading happened. return; } element.appendChild(object); getState(element).object = object; //IE: This must occur after adding the object to the DOM. if(browserDetector.isIE()) { object.data = "about:blank"; } } if(batchProcessor) { batchProcessor.add(mutateDom); } else { mutateDom(); } } if(browserDetector.isIE(8)) { //IE 8 does not support objects properly. Luckily they do support the resize event. //So do not inject the object and notify that the element is already ready to be listened to. //The event handler for the resize event is attached in the utils.addListener instead. callback(element); } else { injectObject(element, callback); } } /** * Returns the child object of the target element. * @private * @param {element} element The target element. * @returns The object element of the target. */ function getObject(element) { return getState(element).object; } function uninstall(element) { if (!getState(element)) { return; } var object = getObject(element); if (!object) { return; } if (browserDetector.isIE(8)) { element.detachEvent("onresize", object.proxy); } else { element.removeChild(object); } if (getState(element).checkForObjectDocumentTimeoutId) { window.clearTimeout(getState(element).checkForObjectDocumentTimeoutId); } delete getState(element).object; } return { makeDetectable: makeDetectable, addListener: addListener, uninstall: uninstall }; }; /***/ }), /***/ "18e9": /***/ (function(module, exports, __webpack_require__) { "use strict"; var detector = module.exports = {}; detector.isIE = function(version) { function isAnyIeVersion() { var agent = navigator.userAgent.toLowerCase(); return agent.indexOf("msie") !== -1 || agent.indexOf("trident") !== -1 || agent.indexOf(" edge/") !== -1; } if(!isAnyIeVersion()) { return false; } if(!version) { return true; } //Shamelessly stolen from https://gist.github.com/padolsey/527683 var ieVersion = (function(){ var undef, v = 3, div = document.createElement("div"), all = div.getElementsByTagName("i"); do { div.innerHTML = "<!--[if gt IE " + (++v) + "]><i></i><![endif]-->"; } while (all[0]); return v > 4 ? v : undef; }()); return version === ieVersion; }; detector.isLegacyOpera = function() { return !!window.opera; }; /***/ }), /***/ "1ca7": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "b", function() { return getDocumentDir; }); /* unused harmony export setDocumentDir */ /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return addWindowEventListener; }); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "c", function() { return removeWindowEventListener; }); var currentDir /*: "ltr" | "rtl" | "auto"*/ = "auto"; // let currentDir = "auto"; function hasDocument() { return typeof document !== "undefined"; } function hasWindow() { return typeof window !== "undefined"; } function getDocumentDir() { if (!hasDocument()) { return currentDir; } var direction = typeof document.dir !== "undefined" ? document.dir : document.getElementsByTagName("html")[0].getAttribute("dir"); return direction; } function setDocumentDir(dir /*: "ltr" | "rtl" | "auto"*/ ) { // export function setDocumentDir(dir){ if (!hasDocument) { currentDir = dir; return; } var html = document.getElementsByTagName("html")[0]; html.setAttribute("dir", dir); } function addWindowEventListener(event /*:string*/ , callback /*: () => mixed*/ ) { if (!hasWindow) { callback(); return; } window.addEventListener(event, callback); } function removeWindowEventListener(event /*:string*/ , callback /*: () => mixed*/ ) { if (!hasWindow) { return; } window.removeEventListener(event, callback); } /***/ }), /***/ "214f": /***/ (function(module, exports, __webpack_require__) { "use strict"; __webpack_require__("b0c5"); var redefine = __webpack_require__("2aba"); var hide = __webpack_require__("32e9"); var fails = __webpack_require__("79e5"); var defined = __webpack_require__("be13"); var wks = __webpack_require__("2b4c"); var regexpExec = __webpack_require__("520a"); var SPECIES = wks('species'); var REPLACE_SUPPORTS_NAMED_GROUPS = !fails(function () { // #replace needs built-in support for named groups. // #match works fine because it just return the exec results, even if it has // a "grops" property. var re = /./; re.exec = function () { var result = []; result.groups = { a: '7' }; return result; }; return ''.replace(re, '$<a>') !== '7'; }); var SPLIT_WORKS_WITH_OVERWRITTEN_EXEC = (function () { // Chrome 51 has a buggy "split" implementation when RegExp#exec !== nativeExec var re = /(?:)/; var originalExec = re.exec; re.exec = function () { return originalExec.apply(this, arguments); }; var result = 'ab'.split(re); return result.length === 2 && result[0] === 'a' && result[1] === 'b'; })(); module.exports = function (KEY, length, exec) { var SYMBOL = wks(KEY); var DELEGATES_TO_SYMBOL = !fails(function () { // String methods call symbol-named RegEp methods var O = {}; O[SYMBOL] = function () { return 7; }; return ''[KEY](O) != 7; }); var DELEGATES_TO_EXEC = DELEGATES_TO_SYMBOL ? !fails(function () { // Symbol-named RegExp methods call .exec var execCalled = false; var re = /a/; re.exec = function () { execCalled = true; return null; }; if (KEY === 'split') { // RegExp[@@split] doesn't call the regex's exec method, but first creates // a new one. We need to return the patched regex when creating the new one. re.constructor = {}; re.constructor[SPECIES] = function () { return re; }; } re[SYMBOL](''); return !execCalled; }) : undefined; if ( !DELEGATES_TO_SYMBOL || !DELEGATES_TO_EXEC || (KEY === 'replace' && !REPLACE_SUPPORTS_NAMED_GROUPS) || (KEY === 'split' && !SPLIT_WORKS_WITH_OVERWRITTEN_EXEC) ) { var nativeRegExpMethod = /./[SYMBOL]; var fns = exec( defined, SYMBOL, ''[KEY], function maybeCallNative(nativeMethod, regexp, str, arg2, forceStringMethod) { if (regexp.exec === regexpExec) { if (DELEGATES_TO_SYMBOL && !forceStringMethod) { // The native String method already delegates to @@method (this // polyfilled function), leasing to infinite recursion. // We avoid it by directly calling the native @@method method. return { done: true, value: nativeRegExpMethod.call(regexp, str, arg2) }; } return { done: true, value: nativeMethod.call(str, regexp, arg2) }; } return { done: false }; } ); var strfn = fns[0]; var rxfn = fns[1]; redefine(String.prototype, KEY, strfn); hide(RegExp.prototype, SYMBOL, length == 2 // 21.2.5.8 RegExp.prototype[@@replace](string, replaceValue) // 21.2.5.11 RegExp.prototype[@@split](string, limit) ? function (string, arg) { return rxfn.call(string, this, arg); } // 21.2.5.6 RegExp.prototype[@@match](string) // 21.2.5.9 RegExp.prototype[@@search](string) : function (string) { return rxfn.call(string, this); } ); } }; /***/ }), /***/ "230e": /***/ (function(module, exports, __webpack_require__) { var isObject = __webpack_require__("d3f4"); var document = __webpack_require__("7726").document; // typeof document.createElement is 'object' in old IE var is = isObject(document) && isObject(document.createElement); module.exports = function (it) { return is ? document.createElement(it) : {}; }; /***/ }), /***/ "2350": /***/ (function(module, exports) { /* MIT License http://www.opensource.org/licenses/mit-license.php Author Tobias Koppers @sokra */ // css base code, injected by the css-loader module.exports = function(useSourceMap) { var list = []; // return the list of modules as css string list.toString = function toString() { return this.map(function (item) { var content = cssWithMappingToString(item, useSourceMap); if(item[2]) { return "@media " + item[2] + "{" + content + "}"; } else { return content; } }).join(""); }; // import a list of modules into the list list.i = function(modules, mediaQuery) { if(typeof modules === "string") modules = [[null, modules, ""]]; var alreadyImportedModules = {}; for(var i = 0; i < this.length; i++) { var id = this[i][0]; if(typeof id === "number") alreadyImportedModules[id] = true; } for(i = 0; i < modules.length; i++) { var item = modules[i]; // skip already imported module // this implementation is not 100% perfect for weird media query combinations // when a module is imported multiple times with different media queries. // I hope this will never occur (Hey this way we have smaller bundles) if(typeof item[0] !== "number" || !alreadyImportedModules[item[0]]) { if(mediaQuery && !item[2]) { item[2] = mediaQuery; } else if(mediaQuery) { item[2] = "(" + item[2] + ") and (" + mediaQuery + ")"; } list.push(item); } } }; return list; }; function cssWithMappingToString(item, useSourceMap) { var content = item[1] || ''; var cssMapping = item[3]; if (!cssMapping) { return content; } if (useSourceMap && typeof btoa === 'function') { var sourceMapping = toComment(cssMapping); var sourceURLs = cssMapping.sources.map(function (source) { return '/*# sourceURL=' + cssMapping.sourceRoot + source + ' */' }); return [content].concat(sourceURLs).concat([sourceMapping]).join('\n'); } return [content].join('\n'); } // Adapted from convert-source-map (MIT) function toComment(sourceMap) { // eslint-disable-next-line no-undef var base64 = btoa(unescape(encodeURIComponent(JSON.stringify(sourceMap)))); var data = 'sourceMappingURL=data:application/json;charset=utf-8;base64,' + base64; return '/*# ' + data + ' */'; } /***/ }), /***/ "23c6": /***/ (function(module, exports, __webpack_require__) { // getting tag from 19.1.3.6 Object.prototype.toString() var cof = __webpack_require__("2d95"); var TAG = __webpack_require__("2b4c")('toStringTag'); // ES3 wrong here var ARG = cof(function () { return arguments; }()) == 'Arguments'; // fallback for IE11 Script Access Denied error var tryGet = function (it, key) { try { return it[key]; } catch (e) { /* empty */ } }; module.exports = function (it) { var O, T, B; return it === undefined ? 'Undefined' : it === null ? 'Null' // @@toStringTag case : typeof (T = tryGet(O = Object(it), TAG)) == 'string' ? T // builtinTag case : ARG ? cof(O) // ES3 arguments fallback : (B = cof(O)) == 'Object' && typeof O.callee == 'function' ? 'Arguments' : B; }; /***/ }), /***/ "2621": /***/ (function(module, exports) { exports.f = Object.getOwnPropertySymbols; /***/ }), /***/ "2877": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "a", function() { return normalizeComponent; }); /* globals __VUE_SSR_CONTEXT__ */ // IMPORTANT: Do NOT use ES2015 features in this file (except for modules). // This module is a runtime utility for cleaner component module output and will // be included in the final webpack user bundle. function normalizeComponent ( scriptExports, render, staticRenderFns, functionalTemplate, injectStyles, scopeId, moduleIdentifier, /* server only */ shadowMode /* vue-cli only */ ) { // Vue.extend constructor export interop var options = typeof scriptExports === 'function' ? scriptExports.options : scriptExports // render functions if (render) { options.render = render options.staticRenderFns = staticRenderFns options._compiled = true } // functional template if (functionalTemplate) { options.functional = true } // scopedId if (scopeId) { options._scopeId = 'data-v-' + scopeId } var hook if (moduleIdentifier) { // server build hook = function (context) { // 2.3 injection context = context || // cached call (this.$vnode && this.$vnode.ssrContext) || // stateful (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional // 2.2 with runInNewContext: true if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') { context = __VUE_SSR_CONTEXT__ } // inject component styles if (injectStyles) { injectStyles.call(this, context) } // register component module identifier for async chunk inferrence if (context && context._registeredComponents) { context._registeredComponents.add(moduleIdentifier) } } // used by ssr in case component is cached and beforeCreate // never gets called options._ssrRegister = hook } else if (injectStyles) { hook = shadowMode ? function () { injectStyles.call( this, (options.functional ? this.parent : this).$root.$options.shadowRoot ) } : injectStyles } if (hook) { if (options.functional) { // for template-only hot-reload because in that case the render fn doesn't // go through the normalizer options._injectStyles = hook // register for functional component in vue file var originalRender = options.render options.render = function renderWithStyleInjection (h, context) { hook.call(context) return originalRender(h, context) } } else { // inject component registration as beforeCreate hook var existing = options.beforeCreate options.beforeCreate = existing ? [].concat(existing, hook) : [hook] } } return { exports: scriptExports, options: options } } /***/ }), /***/ "2aba": /***/ (function(module, exports, __webpack_require__) { var global = __webpack_require__("7726"); var hide = __webpack_require__("32e9"); var has = __webpack_require__("69a8"); var SRC = __webpack_require__("ca5a")('src'); var $toString = __webpack_require__("fa5b"); var TO_STRING = 'toString'; var TPL = ('' + $toString).split(TO_STRING); __webpack_require__("8378").inspectSource = function (it) { return $toString.call(it); }; (module.exports = function (O, key, val, safe) { var isFunction = typeof val == 'function'; if (isFunction) has(val, 'name') || hide(val, 'name', key); if (O[key] === val) return; if (isFunction) has(val, SRC) || hide(val, SRC, O[key] ? '' + O[key] : TPL.join(String(key))); if (O === global) { O[key] = val; } else if (!safe) { delete O[key]; hide(O, key, val); } else if (O[key]) { O[key] = val; } else { hide(O, key, val); } // add fake Function#toString for correct work wrapped methods / constructors with methods like LoDash isNative })(Function.prototype, TO_STRING, function toString() { return typeof this == 'function' && this[SRC] || $toString.call(this); }); /***/ }), /***/ "2aeb": /***/ (function(module, exports, __webpack_require__) { // 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties]) var anObject = __webpack_require__("cb7c"); var dPs = __webpack_require__("1495"); var enumBugKeys = __webpack_require__("e11e"); var IE_PROTO = __webpack_require__("613b")('IE_PROTO'); var Empty = function () { /* empty */ }; var PROTOTYPE = 'prototype'; // Create object with fake `null` prototype: use iframe Object with cleared prototype var createDict = function () { // Thrash, waste and sodomy: IE GC bug var iframe = __webpack_require__("230e")('iframe'); var i = enumBugKeys.length; var lt = '<'; var gt = '>'; var iframeDocument; iframe.style.display = 'none'; __webpack_require__("fab2").appendChild(iframe); iframe.src = 'javascript:'; // eslint-disable-line no-script-url // createDict = iframe.contentWindow.Object; // html.removeChild(iframe); iframeDocument = iframe.contentWindow.document; iframeDocument.open(); iframeDocument.write(lt + 'script' + gt + 'document.F=Object' + lt + '/script' + gt); iframeDocument.close(); createDict = iframeDocument.F; while (i--) delete createDict[PROTOTYPE][enumBugKeys[i]]; return createDict(); }; module.exports = Object.create || function create(O, Properties) { var result; if (O !== null) { Empty[PROTOTYPE] = anObject(O); result = new Empty(); Empty[PROTOTYPE] = null; // add "__proto__" for Object.getPrototypeOf polyfill result[IE_PROTO] = O; } else result = createDict(); return Properties === undefined ? result : dPs(result, Properties); }; /***/ }), /***/ "2af9": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; /* WEBPACK VAR INJECTION */(function(global) {/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "d", function() { return install; }); /* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__("7f7f"); /* harmony import */ var core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_function_name__WEBPACK_IMPORTED_MODULE_0__); /* harmony import */ var core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__("cadf"); /* harmony import */ var core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_array_iterator__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__("456d"); /* harmony import */ var core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_es6_object_keys__WEBPACK_IMPORTED_MODULE_2__); /* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__("ac6a"); /* harmony import */ var core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(core_js_modules_web_dom_iterable__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _GridItem_vue__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__("bc21"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "a", function() { return _GridItem_vue__WEBPACK_IMPORTED_MODULE_4__["a"]; }); /* harmony import */ var _GridLayout_vue__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__("37c8"); /* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "b", function() { return _GridLayout_vue__WEBPACK_IMPORTED_MODULE_5__["a"]; }); // import ResponsiveGridLayout from './ResponsiveGridLayout.vue'; var VueGridLayout = { // ResponsiveGridLayout, GridLayout: _GridLayout_vue__WEBPACK_IMPORTED_MODULE_5__[/* default */ "a"], GridItem: _GridItem_vue__WEBPACK_IMPORTED_MODULE_4__[/* default */ "a"] }; function install(Vue) { if (install.installed) return; install.installed = true; Object.keys(VueGridLayout).forEach(function (name) { Vue.component(name, VueGridLayout[name]); }); } var plugin = { install: install }; var GlobalVue = null; if (typeof window !== 'undefined') { GlobalVue = window.Vue; } else if (typeof global !== 'undefined') { GlobalVue = global.Vue; } if (GlobalVue) { GlobalVue.use(plugin); } /* harmony default export */ __webpack_exports__["c"] = (VueGridLayout); /* WEBPACK VAR INJECTION */}.call(this, __webpack_require__("c8ba"))) /***/ }), /***/ "2b4c": /***/ (function(module, exports, __webpack_require__) { var store = __webpack_require__("5537")('wks'); var uid = __webpack_require__("ca5a"); var Symbol = __webpack_require__("7726").Symbol; var USE_SYMBOL = typeof Symbol == 'function'; var $exports = module.exports = function (name) { return store[name] || (store[name] = USE_SYMBOL && Symbol[name] || (USE_SYMBOL ? Symbol : uid)('Symbol.' + name)); }; $exports.store = store; /***/ }), /***/ "2cef": /***/ (function(module, exports, __webpack_require__) { "use strict"; module.exports = function() { var idCount = 1; /** * Generates a new unique id in the context. * @public * @returns {number} A unique id in the context. */ function generate() { return idCount++; } return { generate: generate }; }; /***/ }), /***/ "2d00": /***/ (function(module, exports) { module.exports = false; /***/ }), /***/ "2d95": /***/ (function(module, exports) { var toString = {}.toString; module.exports = function (it) { return toString.call(it).slice(8, -1); }; /***/ }), /***/ "2f21": /***/ (function(module, exports, __webpack_require__) { "use strict"; var fails = __webpack_require__("79e5"); module.exports = function (method, arg) { return !!method && fails(function () { // eslint-disable-next-line no-useless-call arg ? method.call(null, function () { /* empty */ }, 1) : method.call(null); }); }; /***/ }), /***/ "32e9": /***/ (function(module, exports, __webpack_require__) { var dP = __webpack_require__("86cc"); var createDesc = __webpack_require__("4630"); module.exports = __webpack_require__("9e1e") ? function (object, key, value) { return dP.f(object, key, createDesc(1, value)); } : function (object, key, value) { object[key] = value; return object; }; /***/ }), /***/ "37c8": /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js?{"cacheDirectory":"node_modules/.cache/vue-loader","cacheIdentifier":"1705dc22-vue-loader-template"}!./node_modules/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=template&id=361da5e4& var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:"item",staticClass:"vue-grid-layout",style:(_vm.mergedStyle)},[_vm._t("default"),_c('grid-item',{directives:[{name:"show",rawName:"v-show",value:(_vm.isDragging),expression:"isDragging"}],staticClass:"vue-grid-placeholder",attrs:{"x":_vm.placeholder.x,"y":_vm.placeholder.y,"w":_vm.placeholder.w,"h":_vm.placeholder.h,"i":_vm.placeholder.i}})],2)} var staticRenderFns = [] // CONCATENATED MODULE: ./src/components/GridLayout.vue?vue&type=template&id=361da5e4& // EXTERNAL MODULE: ./node_modules/core-js/modules/es7.object.get-own-property-descriptors.js var es7_object_get_own_property_descriptors = __webpack_require__("8e6e"); // EXTERNAL MODULE: ./node_modules/core-js/modules/es6.array.iterator.js var es6_array_iterator = __webpack_require__("cadf"); // EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.keys.js var es6_object_keys = __webpack_require__("456d"); // EXTERNAL MODULE: ./node_modules/core-js/modules/es6.object.assign.js var es6_object_assign = __webpack_require__("f751"); // EXTERNAL MODULE: ./node_modules/core-js/modules/es6.number.is-finite.js var es6_number_is_finite = __webpack_require__("fca0"); // EXTERNAL MODULE: ./node_modules/core-js/modules/web.dom.iterable.js var web_dom_iterable = __webpack_require__("ac6a"); // EXTERNAL MODULE: ./node_modules/@babel/runtime/helpers/esm/defineProperty.js var defineProperty = __webpack_require__("ade3"); // EXTERNAL MODULE: ./node_modules/core-js/modules/es6.number.constructor.js var es6_number_constructor = __webpack_require__("c5f6"); // EXTERNAL MODULE: external {"commonjs":"vue","commonjs2":"vue","root":"Vue"} var external_commonjs_vue_commonjs2_vue_root_Vue_ = __webpack_require__("8bbf"); var external_commonjs_vue_commonjs2_vue_root_Vue_default = /*#__PURE__*/__webpack_require__.n(external_commonjs_vue_commonjs2_vue_root_Vue_); // EXTERNAL MODULE: ./src/helpers/utils.js var utils = __webpack_require__("a2b6"); // EXTERNAL MODULE: ./src/helpers/responsiveUtils.js var responsiveUtils = __webpack_require__("97a7"); // EXTERNAL MODULE: ./src/components/GridItem.vue + 71 modules var GridItem = __webpack_require__("bc21"); // EXTERNAL MODULE: ./src/helpers/DOM.js var DOM = __webpack_require__("1ca7"); // CONCATENATED MODULE: ./node_modules/cache-loader/dist/cjs.js??ref--12-0!./node_modules/thread-loader/dist/cjs.js!./node_modules/babel-loader/lib!./node_modules/cache-loader/dist/cjs.js??ref--0-0!./node_modules/vue-loader/lib??vue-loader-options!./src/components/GridLayout.vue?vue&type=script&lang=js& function 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; } function _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) { Object(defineProperty["a" /* default */])(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; } // // // // // // // // // // // // // // // // // // var elementResizeDetectorMaker = __webpack_require__("eec4"); //var eventBus = require('./eventBus'); /* harmony default export */ var GridLayoutvue_type_script_lang_js_ = ({ name: "GridLayout", provide: function provide() { return { eventBus: null, layout: this }; }, components: { GridItem: GridItem["a" /* default */] }, props: { // If true, the container height swells and contracts to fit contents autoSize: { type: Boolean, default: true }, colNum: { type: Number, default: 12 }, rowHeight: { type: Number, default: 150 }, maxRows: { type: Number, default: Infinity }, margin: { type: Array, default: function _default() { return [10, 10]; } }, isDraggable: { type: Boolean, default: true }, isResizable: { type: Boolean, default: true }, isMirrored: { type: Boolean, default: false }, isBounded: { type: Boolean, default: false }, useCssTransforms: { type: Boolean, default: true }, verticalCompact: { type: Boolean, default: true }, restoreOnDrag: { type: Boolean, default: false }, layout: { type: Array, required: true }, responsive: { type: Boolean, default: false }, responsiveLayouts: { type: Object, default: function _default() { return {}; } }, transformScale: { type: Number, default: 1 }, breakpoints: { type: Object, default: function _default() { return { lg: 1200, md: 996, sm: 768, xs: 480, xxs: 0 }; } }, cols: { type: Object, default: function _default() { return { lg: 12, md: 10, sm: 6, xs: 4, xxs: 2 }; } }, preventCollision: { type: Boolean, default: false }, useStyleCursor: { type: Boolean, default: true } }, data: function data() { return { width: null, mergedStyle: {}, lastLayoutLength: 0, isDragging: false, placeholder: { x: 0, y: 0, w: 0, h: 0, i: -1 }, layouts: {}, // array to store all layouts from different breakpoints lastBreakpoint: null, // store last active breakpoint originalLayout: null // store original Layout }; }, created: function created() { var self = this; // Accessible refernces of functions for removing in beforeDestroy self.resizeEventHandler = function (eventType, i, x, y, h, w) { self.resizeEvent(eventType, i, x, y, h, w); }; self.dragEventHandler = function (eventType, i, x, y, h, w) { self.dragEvent(eventType, i, x, y, h, w); }; self._provided.eventBus = new external_commonjs_vue_commonjs2_vue_root_Vue_default.a(); self.eventBus = self._provided.eventBus; self.eventBus.$on('resizeEvent', self.resizeEventHandler); self.eventBus.$on('dragEvent', self.dragEventHandler); self.$emit('layout-created', self.layout); }, beforeDestroy: function beforeDestroy() { //Remove listeners this.eventBus.$off('resizeEvent', this.resizeEventHandler); this.eventBus.$off('dragEvent', this.dragEventHandler); this.eventBus.$destroy(); Object(DOM["c" /* removeWindowEventListener */])("resize", this.onWindowResize); if (this.erd) { this.erd.uninstall(this.$refs.item); } }, beforeMount: function beforeMount() { this.$emit('layout-before-mount', this.layout); }, mounted: function mounted() { this.$emit('layout-mounted', this.layout); this.$nextTick(function () { Object(utils["l" /* validateLayout */])(this.layout); this.originalLayout = this.layout; var self = this; this.$nextTick(function () { self.initResponsiveFeatures();