vue-element-queries
Version:
A Vue directive for using element queries to build responsive components.
1,688 lines (1,337 loc) • 62.9 kB
JavaScript
(function webpackUniversalModuleDefinition(root, factory) {
if(typeof exports === 'object' && typeof module === 'object')
module.exports = factory();
else if(typeof define === 'function' && define.amd)
define([], factory);
else if(typeof exports === 'object')
exports["vue-element-queries"] = factory();
else
root["vue-element-queries"] = factory();
})(typeof self !== 'undefined' ? self : this, function() {
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 = "Yhqr");
/******/ })
/************************************************************************/
/******/ ({
/***/ "+OAr":
/***/ (function(module, exports, __webpack_require__) {
var core = __webpack_require__("vlp9");
var global = __webpack_require__("1wvP");
var SHARED = '__core-js_shared__';
var store = global[SHARED] || (global[SHARED] = {});
(module.exports = function (key, value) {
return store[key] || (store[key] = value !== undefined ? value : {});
})('versions', []).push({
version: core.version,
mode: __webpack_require__("3h5O") ? 'pure' : 'global',
copyright: '© 2018 Denis Pushkarev (zloirock.ru)'
});
/***/ }),
/***/ "+jBU":
/***/ (function(module, exports, __webpack_require__) {
var document = __webpack_require__("1wvP").document;
module.exports = document && document.documentElement;
/***/ }),
/***/ "1wvP":
/***/ (function(module, exports) {
// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028
var global = module.exports = typeof window != 'undefined' && window.Math == Math
? window : typeof self != 'undefined' && self.Math == Math ? self
// eslint-disable-next-line no-new-func
: Function('return this')();
if (typeof __g == 'number') __g = global; // eslint-disable-line no-undef
/***/ }),
/***/ "2Rpf":
/***/ (function(module, exports, __webpack_require__) {
// 0 -> Array#forEach
// 1 -> Array#map
// 2 -> Array#filter
// 3 -> Array#some
// 4 -> Array#every
// 5 -> Array#find
// 6 -> Array#findIndex
var ctx = __webpack_require__("pioK");
var IObject = __webpack_require__("vjA/");
var toObject = __webpack_require__("Nb9L");
var toLength = __webpack_require__("U9NY");
var asc = __webpack_require__("VlJI");
module.exports = function (TYPE, $create) {
var IS_MAP = TYPE == 1;
var IS_FILTER = TYPE == 2;
var IS_SOME = TYPE == 3;
var IS_EVERY = TYPE == 4;
var IS_FIND_INDEX = TYPE == 6;
var NO_HOLES = TYPE == 5 || IS_FIND_INDEX;
var create = $create || asc;
return function ($this, callbackfn, that) {
var O = toObject($this);
var self = IObject(O);
var f = ctx(callbackfn, that, 3);
var length = toLength(self.length);
var index = 0;
var result = IS_MAP ? create($this, length) : IS_FILTER ? create($this, 0) : undefined;
var val, res;
for (;length > index; index++) if (NO_HOLES || index in self) {
val = self[index];
res = f(val, index, O);
if (TYPE) {
if (IS_MAP) result[index] = res; // map
else if (res) switch (TYPE) {
case 3: return true; // some
case 5: return val; // find
case 6: return index; // findIndex
case 2: result.push(val); // filter
} else if (IS_EVERY) return false; // every
}
}
return IS_FIND_INDEX ? -1 : IS_SOME || IS_EVERY ? IS_EVERY : result;
};
};
/***/ }),
/***/ "3h5O":
/***/ (function(module, exports) {
module.exports = false;
/***/ }),
/***/ "3qjF":
/***/ (function(module, exports) {
var toString = {}.toString;
module.exports = function (it) {
return toString.call(it).slice(8, -1);
};
/***/ }),
/***/ "53Cw":
/***/ (function(module, exports) {
exports.f = {}.propertyIsEnumerable;
/***/ }),
/***/ "59Ib":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var create = __webpack_require__("S8mh");
var descriptor = __webpack_require__("R1bx");
var setToStringTag = __webpack_require__("OIVH");
var IteratorPrototype = {};
// 25.1.2.1.1 %IteratorPrototype%[@@iterator]()
__webpack_require__("XA8k")(IteratorPrototype, __webpack_require__("7D+n")('iterator'), function () { return this; });
module.exports = function (Constructor, NAME, next) {
Constructor.prototype = create(IteratorPrototype, { next: descriptor(1, next) });
setToStringTag(Constructor, NAME + ' Iterator');
};
/***/ }),
/***/ "7D+n":
/***/ (function(module, exports, __webpack_require__) {
var store = __webpack_require__("+OAr")('wks');
var uid = __webpack_require__("b3my");
var Symbol = __webpack_require__("1wvP").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;
/***/ }),
/***/ "7Gz4":
/***/ (function(module, exports, __webpack_require__) {
// This file is imported into lib/wc client bundles.
if (typeof window !== 'undefined') {
let i
if ((i = window.document.currentScript) && (i = i.src.match(/(.+\/)[^/]+\.js$/))) {
__webpack_require__.p = i[1] // eslint-disable-line
}
}
/***/ }),
/***/ "84BH":
/***/ (function(module, exports, __webpack_require__) {
var has = __webpack_require__("MzIJ");
var toIObject = __webpack_require__("Yxsw");
var arrayIndexOf = __webpack_require__("Jcby")(false);
var IE_PROTO = __webpack_require__("mPYY")('IE_PROTO');
module.exports = function (object, names) {
var O = toIObject(object);
var i = 0;
var result = [];
var key;
for (key in O) if (key != IE_PROTO) has(O, key) && result.push(key);
// Don't enum bug & hidden keys
while (names.length > i) if (has(O, key = names[i++])) {
~arrayIndexOf(result, key) || result.push(key);
}
return result;
};
/***/ }),
/***/ "8Ib8":
/***/ (function(module, exports) {
module.exports = function (done, value) {
return { value: value, done: !!done };
};
/***/ }),
/***/ "BPiH":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var fails = __webpack_require__("gbI/");
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);
});
};
/***/ }),
/***/ "BjRm":
/***/ (function(module, exports, __webpack_require__) {
// 7.1.1 ToPrimitive(input [, PreferredType])
var isObject = __webpack_require__("PUi0");
// instead of the ES6 spec version, we didn't implement @@toPrimitive case
// and the second argument - flag - preferred type is a string
module.exports = function (it, S) {
if (!isObject(it)) return it;
var fn, val;
if (S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
if (typeof (fn = it.valueOf) == 'function' && !isObject(val = fn.call(it))) return val;
if (!S && typeof (fn = it.toString) == 'function' && !isObject(val = fn.call(it))) return val;
throw TypeError("Can't convert object to primitive value");
};
/***/ }),
/***/ "Ef9j":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
// 22.1.3.8 Array.prototype.find(predicate, thisArg = undefined)
var $export = __webpack_require__("t1yY");
var $find = __webpack_require__("2Rpf")(5);
var KEY = 'find';
var forced = true;
// Shouldn't skip holes
if (KEY in []) Array(1)[KEY](function () { forced = false; });
$export($export.P + $export.F * forced, 'Array', {
find: function find(callbackfn /* , that = undefined */) {
return $find(this, callbackfn, arguments.length > 1 ? arguments[1] : undefined);
}
});
__webpack_require__("YKKp")(KEY);
/***/ }),
/***/ "FR8X":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var global = __webpack_require__("1wvP");
var dP = __webpack_require__("uKfR");
var DESCRIPTORS = __webpack_require__("k9+X");
var SPECIES = __webpack_require__("7D+n")('species');
module.exports = function (KEY) {
var C = global[KEY];
if (DESCRIPTORS && C && !C[SPECIES]) dP.f(C, SPECIES, {
configurable: true,
get: function () { return this; }
});
};
/***/ }),
/***/ "FfIX":
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 / 15.2.3.14 Object.keys(O)
var $keys = __webpack_require__("84BH");
var enumBugKeys = __webpack_require__("JaTa");
module.exports = Object.keys || function keys(O) {
return $keys(O, enumBugKeys);
};
/***/ }),
/***/ "IQBv":
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.9 / 15.2.3.2 Object.getPrototypeOf(O)
var has = __webpack_require__("MzIJ");
var toObject = __webpack_require__("Nb9L");
var IE_PROTO = __webpack_require__("mPYY")('IE_PROTO');
var ObjectProto = Object.prototype;
module.exports = Object.getPrototypeOf || function (O) {
O = toObject(O);
if (has(O, IE_PROTO)) return O[IE_PROTO];
if (typeof O.constructor == 'function' && O instanceof O.constructor) {
return O.constructor.prototype;
} return O instanceof Object ? ObjectProto : null;
};
/***/ }),
/***/ "IfvN":
/***/ (function(module, exports, __webpack_require__) {
// 7.2.2 IsArray(argument)
var cof = __webpack_require__("3qjF");
module.exports = Array.isArray || function isArray(arg) {
return cof(arg) == 'Array';
};
/***/ }),
/***/ "JaTa":
/***/ (function(module, exports) {
// IE 8- don't enum bug keys
module.exports = (
'constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf'
).split(',');
/***/ }),
/***/ "Jcby":
/***/ (function(module, exports, __webpack_require__) {
// false -> Array#indexOf
// true -> Array#includes
var toIObject = __webpack_require__("Yxsw");
var toLength = __webpack_require__("U9NY");
var toAbsoluteIndex = __webpack_require__("fsba");
module.exports = function (IS_INCLUDES) {
return function ($this, el, fromIndex) {
var O = toIObject($this);
var length = toLength(O.length);
var index = toAbsoluteIndex(fromIndex, length);
var value;
// Array#includes uses SameValueZero equality algorithm
// eslint-disable-next-line no-self-compare
if (IS_INCLUDES && el != el) while (length > index) {
value = O[index++];
// eslint-disable-next-line no-self-compare
if (value != value) return true;
// Array#indexOf ignores holes, Array#includes - not
} else for (;length > index; index++) if (IS_INCLUDES || index in O) {
if (O[index] === el) return IS_INCLUDES || index || 0;
} return !IS_INCLUDES && -1;
};
};
/***/ }),
/***/ "KtZj":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
/**
* Copyright Marc J. Schmidt. See the LICENSE file at the top-level
* directory of this distribution and at
* https://github.com/marcj/css-element-queries/blob/master/LICENSE.
*/
(function (root, factory) {
if (true) {
!(__WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
__WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
(__WEBPACK_AMD_DEFINE_FACTORY__.call(exports, __webpack_require__, exports, module)) :
__WEBPACK_AMD_DEFINE_FACTORY__),
__WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
} else {}
}(typeof window !== 'undefined' ? window : this, function () {
// Make sure it does not throw in a SSR (Server Side Rendering) situation
if (typeof window === "undefined") {
return null;
}
// Only used for the dirty checking, so the event callback count is limited to max 1 call per fps per sensor.
// In combination with the event based resize sensor this saves cpu time, because the sensor is too fast and
// would generate too many unnecessary events.
var requestAnimationFrame = window.requestAnimationFrame ||
window.mozRequestAnimationFrame ||
window.webkitRequestAnimationFrame ||
function (fn) {
return window.setTimeout(fn, 20);
};
/**
* Iterate over each of the provided element(s).
*
* @param {HTMLElement|HTMLElement[]} elements
* @param {Function} callback
*/
function forEachElement(elements, callback){
var elementsType = Object.prototype.toString.call(elements);
var isCollectionTyped = ('[object Array]' === elementsType
|| ('[object NodeList]' === elementsType)
|| ('[object HTMLCollection]' === elementsType)
|| ('[object Object]' === elementsType)
|| ('undefined' !== typeof jQuery && elements instanceof jQuery) //jquery
|| ('undefined' !== typeof Elements && elements instanceof Elements) //mootools
);
var i = 0, j = elements.length;
if (isCollectionTyped) {
for (; i < j; i++) {
callback(elements[i]);
}
} else {
callback(elements);
}
}
/**
* Get element size
* @param {HTMLElement} element
* @returns {Object} {width, height}
*/
function getElementSize(element) {
if (!element.getBoundingClientRect) {
return {
width: element.offsetWidth,
height: element.offsetHeight
}
}
var rect = element.getBoundingClientRect();
return {
width: Math.round(rect.width),
height: Math.round(rect.height)
}
}
/**
* Class for dimension change detection.
*
* @param {Element|Element[]|Elements|jQuery} element
* @param {Function} callback
*
* @constructor
*/
var ResizeSensor = function(element, callback) {
/**
*
* @constructor
*/
function EventQueue() {
var q = [];
this.add = function(ev) {
q.push(ev);
};
var i, j;
this.call = function() {
for (i = 0, j = q.length; i < j; i++) {
q[i].call();
}
};
this.remove = function(ev) {
var newQueue = [];
for(i = 0, j = q.length; i < j; i++) {
if(q[i] !== ev) newQueue.push(q[i]);
}
q = newQueue;
};
this.length = function() {
return q.length;
}
}
/**
*
* @param {HTMLElement} element
* @param {Function} resized
*/
function attachResizeEvent(element, resized) {
if (!element) return;
if (element.resizedAttached) {
element.resizedAttached.add(resized);
return;
}
element.resizedAttached = new EventQueue();
element.resizedAttached.add(resized);
element.resizeSensor = document.createElement('div');
element.resizeSensor.dir = 'ltr';
element.resizeSensor.className = 'resize-sensor';
var style = 'position: absolute; left: -10px; top: -10px; right: 0; bottom: 0; overflow: hidden; z-index: -1; visibility: hidden;';
var styleChild = 'position: absolute; left: 0; top: 0; transition: 0s;';
element.resizeSensor.style.cssText = style;
element.resizeSensor.innerHTML =
'<div class="resize-sensor-expand" style="' + style + '">' +
'<div style="' + styleChild + '"></div>' +
'</div>' +
'<div class="resize-sensor-shrink" style="' + style + '">' +
'<div style="' + styleChild + ' width: 200%; height: 200%"></div>' +
'</div>';
element.appendChild(element.resizeSensor);
var position = window.getComputedStyle(element).getPropertyValue('position');
if ('absolute' !== position && 'relative' !== position && 'fixed' !== position) {
element.style.position = 'relative';
}
var expand = element.resizeSensor.childNodes[0];
var expandChild = expand.childNodes[0];
var shrink = element.resizeSensor.childNodes[1];
var dirty, rafId, newWidth, newHeight;
var size = getElementSize(element);
var lastWidth = size.width;
var lastHeight = size.height;
var reset = function() {
//set display to block, necessary otherwise hidden elements won't ever work
var invisible = element.offsetWidth === 0 && element.offsetHeight === 0;
if (invisible) {
var saveDisplay = element.style.display;
element.style.display = 'block';
}
expandChild.style.width = '100000px';
expandChild.style.height = '100000px';
expand.scrollLeft = 100000;
expand.scrollTop = 100000;
shrink.scrollLeft = 100000;
shrink.scrollTop = 100000;
if (invisible) {
element.style.display = saveDisplay;
}
};
element.resizeSensor.resetSensor = reset;
var onResized = function() {
rafId = 0;
if (!dirty) return;
lastWidth = newWidth;
lastHeight = newHeight;
if (element.resizedAttached) {
element.resizedAttached.call();
}
};
var onScroll = function() {
var size = getElementSize(element);
var newWidth = size.width;
var newHeight = size.height;
dirty = newWidth != lastWidth || newHeight != lastHeight;
if (dirty && !rafId) {
rafId = requestAnimationFrame(onResized);
}
reset();
};
var addEvent = function(el, name, cb) {
if (el.attachEvent) {
el.attachEvent('on' + name, cb);
} else {
el.addEventListener(name, cb);
}
};
addEvent(expand, 'scroll', onScroll);
addEvent(shrink, 'scroll', onScroll);
// Fix for custom Elements
requestAnimationFrame(reset);
}
forEachElement(element, function(elem){
attachResizeEvent(elem, callback);
});
this.detach = function(ev) {
ResizeSensor.detach(element, ev);
};
this.reset = function() {
element.resizeSensor.resetSensor();
};
};
ResizeSensor.reset = function(element, ev) {
forEachElement(element, function(elem){
elem.resizeSensor.resetSensor();
});
};
ResizeSensor.detach = function(element, ev) {
forEachElement(element, function(elem){
if (!elem) return;
if(elem.resizedAttached && typeof ev === "function"){
elem.resizedAttached.remove(ev);
if(elem.resizedAttached.length()) return;
}
if (elem.resizeSensor) {
if (elem.contains(elem.resizeSensor)) {
elem.removeChild(elem.resizeSensor);
}
delete elem.resizeSensor;
delete elem.resizedAttached;
}
});
};
return ResizeSensor;
}));
/***/ }),
/***/ "MzIJ":
/***/ (function(module, exports) {
var hasOwnProperty = {}.hasOwnProperty;
module.exports = function (it, key) {
return hasOwnProperty.call(it, key);
};
/***/ }),
/***/ "Nb9L":
/***/ (function(module, exports, __webpack_require__) {
// 7.1.13 ToObject(argument)
var defined = __webpack_require__("XpIx");
module.exports = function (it) {
return Object(defined(it));
};
/***/ }),
/***/ "O2Ai":
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.7 / 15.2.3.4 Object.getOwnPropertyNames(O)
var $keys = __webpack_require__("84BH");
var hiddenKeys = __webpack_require__("JaTa").concat('length', 'prototype');
exports.f = Object.getOwnPropertyNames || function getOwnPropertyNames(O) {
return $keys(O, hiddenKeys);
};
/***/ }),
/***/ "OIVH":
/***/ (function(module, exports, __webpack_require__) {
var def = __webpack_require__("uKfR").f;
var has = __webpack_require__("MzIJ");
var TAG = __webpack_require__("7D+n")('toStringTag');
module.exports = function (it, tag, stat) {
if (it && !has(it = stat ? it : it.prototype, TAG)) def(it, TAG, { configurable: true, value: tag });
};
/***/ }),
/***/ "OdnW":
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.14 Object.keys(O)
var toObject = __webpack_require__("Nb9L");
var $keys = __webpack_require__("FfIX");
__webpack_require__("m8XM")('keys', function () {
return function keys(it) {
return $keys(toObject(it));
};
});
/***/ }),
/***/ "PUi0":
/***/ (function(module, exports) {
module.exports = function (it) {
return typeof it === 'object' ? it !== null : typeof it === 'function';
};
/***/ }),
/***/ "PVSW":
/***/ (function(module, exports, __webpack_require__) {
var pIE = __webpack_require__("53Cw");
var createDesc = __webpack_require__("R1bx");
var toIObject = __webpack_require__("Yxsw");
var toPrimitive = __webpack_require__("BjRm");
var has = __webpack_require__("MzIJ");
var IE8_DOM_DEFINE = __webpack_require__("bMrv");
var gOPD = Object.getOwnPropertyDescriptor;
exports.f = __webpack_require__("k9+X") ? 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]);
};
/***/ }),
/***/ "R1bx":
/***/ (function(module, exports) {
module.exports = function (bitmap, value) {
return {
enumerable: !(bitmap & 1),
configurable: !(bitmap & 2),
writable: !(bitmap & 4),
value: value
};
};
/***/ }),
/***/ "S8mh":
/***/ (function(module, exports, __webpack_require__) {
// 19.1.2.2 / 15.2.3.5 Object.create(O [, Properties])
var anObject = __webpack_require__("i/GF");
var dPs = __webpack_require__("k38r");
var enumBugKeys = __webpack_require__("JaTa");
var IE_PROTO = __webpack_require__("mPYY")('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__("eVn5")('iframe');
var i = enumBugKeys.length;
var lt = '<';
var gt = '>';
var iframeDocument;
iframe.style.display = 'none';
__webpack_require__("+jBU").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);
};
/***/ }),
/***/ "U9NY":
/***/ (function(module, exports, __webpack_require__) {
// 7.1.15 ToLength
var toInteger = __webpack_require__("wgvU");
var min = Math.min;
module.exports = function (it) {
return it > 0 ? min(toInteger(it), 0x1fffffffffffff) : 0; // pow(2, 53) - 1 == 9007199254740991
};
/***/ }),
/***/ "Ve1X":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("PUi0");
var isArray = __webpack_require__("IfvN");
var SPECIES = __webpack_require__("7D+n")('species');
module.exports = function (original) {
var C;
if (isArray(original)) {
C = original.constructor;
// cross-realm fallback
if (typeof C == 'function' && (C === Array || isArray(C.prototype))) C = undefined;
if (isObject(C)) {
C = C[SPECIES];
if (C === null) C = undefined;
}
} return C === undefined ? Array : C;
};
/***/ }),
/***/ "VlJI":
/***/ (function(module, exports, __webpack_require__) {
// 9.4.2.3 ArraySpeciesCreate(originalArray, length)
var speciesConstructor = __webpack_require__("Ve1X");
module.exports = function (original, length) {
return new (speciesConstructor(original))(length);
};
/***/ }),
/***/ "XA8k":
/***/ (function(module, exports, __webpack_require__) {
var dP = __webpack_require__("uKfR");
var createDesc = __webpack_require__("R1bx");
module.exports = __webpack_require__("k9+X") ? function (object, key, value) {
return dP.f(object, key, createDesc(1, value));
} : function (object, key, value) {
object[key] = value;
return object;
};
/***/ }),
/***/ "XUoG":
/***/ (function(module, exports, __webpack_require__) {
var $iterators = __webpack_require__("o1ro");
var getKeys = __webpack_require__("FfIX");
var redefine = __webpack_require__("tfDl");
var global = __webpack_require__("1wvP");
var hide = __webpack_require__("XA8k");
var Iterators = __webpack_require__("bm5Y");
var wks = __webpack_require__("7D+n");
var ITERATOR = wks('iterator');
var TO_STRING_TAG = wks('toStringTag');
var ArrayValues = Iterators.Array;
var DOMIterables = {
CSSRuleList: true, // TODO: Not spec compliant, should be false.
CSSStyleDeclaration: false,
CSSValueList: false,
ClientRectList: false,
DOMRectList: false,
DOMStringList: false,
DOMTokenList: true,
DataTransferItemList: false,
FileList: false,
HTMLAllCollection: false,
HTMLCollection: false,
HTMLFormElement: false,
HTMLSelectElement: false,
MediaList: true, // TODO: Not spec compliant, should be false.
MimeTypeArray: false,
NamedNodeMap: false,
NodeList: true,
PaintRequestList: false,
Plugin: false,
PluginArray: false,
SVGLengthList: false,
SVGNumberList: false,
SVGPathSegList: false,
SVGPointList: false,
SVGStringList: false,
SVGTransformList: false,
SourceBufferList: false,
StyleSheetList: true, // TODO: Not spec compliant, should be false.
TextTrackCueList: false,
TextTrackList: false,
TouchList: false
};
for (var collections = getKeys(DOMIterables), i = 0; i < collections.length; i++) {
var NAME = collections[i];
var explicit = DOMIterables[NAME];
var Collection = global[NAME];
var proto = Collection && Collection.prototype;
var key;
if (proto) {
if (!proto[ITERATOR]) hide(proto, ITERATOR, ArrayValues);
if (!proto[TO_STRING_TAG]) hide(proto, TO_STRING_TAG, NAME);
Iterators[NAME] = ArrayValues;
if (explicit) for (key in $iterators) if (!proto[key]) redefine(proto, key, $iterators[key], true);
}
}
/***/ }),
/***/ "XpIx":
/***/ (function(module, exports) {
// 7.2.1 RequireObjectCoercible(argument)
module.exports = function (it) {
if (it == undefined) throw TypeError("Can't call method on " + it);
return it;
};
/***/ }),
/***/ "YKKp":
/***/ (function(module, exports, __webpack_require__) {
// 22.1.3.31 Array.prototype[@@unscopables]
var UNSCOPABLES = __webpack_require__("7D+n")('unscopables');
var ArrayProto = Array.prototype;
if (ArrayProto[UNSCOPABLES] == undefined) __webpack_require__("XA8k")(ArrayProto, UNSCOPABLES, {});
module.exports = function (key) {
ArrayProto[UNSCOPABLES][key] = true;
};
/***/ }),
/***/ "Yhqr":
/***/ (function(module, __webpack_exports__, __webpack_require__) {
"use strict";
__webpack_require__.r(__webpack_exports__);
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/@vue/cli-service/lib/commands/build/setPublicPath.js
var setPublicPath = __webpack_require__("7Gz4");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.array.index-of.js
var es6_array_index_of = __webpack_require__("xO4F");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.array.for-each.js
var es6_array_for_each = __webpack_require__("Yx2f");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.array.reduce.js
var es6_array_reduce = __webpack_require__("fRkG");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.regexp.constructor.js
var es6_regexp_constructor = __webpack_require__("vhJ+");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/web.dom.iterable.js
var web_dom_iterable = __webpack_require__("XUoG");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.array.iterator.js
var es6_array_iterator = __webpack_require__("o1ro");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.object.keys.js
var es6_object_keys = __webpack_require__("OdnW");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.array.find.js
var es6_array_find = __webpack_require__("Ef9j");
// EXTERNAL MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/core-js/modules/es6.regexp.match.js
var es6_regexp_match = __webpack_require__("jZGP");
// CONCATENATED MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/@babel/runtime/helpers/builtin/es6/classCallCheck.js
function _classCallCheck(instance, Constructor) {
if (!(instance instanceof Constructor)) {
throw new TypeError("Cannot call a class as a function");
}
}
// CONCATENATED MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/@babel/runtime/helpers/builtin/es6/createClass.js
function _defineProperties(target, props) {
for (var i = 0; i < props.length; i++) {
var descriptor = props[i];
descriptor.enumerable = descriptor.enumerable || false;
descriptor.configurable = true;
if ("value" in descriptor) descriptor.writable = true;
Object.defineProperty(target, descriptor.key, descriptor);
}
}
function _createClass(Constructor, protoProps, staticProps) {
if (protoProps) _defineProperties(Constructor.prototype, protoProps);
if (staticProps) _defineProperties(Constructor, staticProps);
return Constructor;
}
// CONCATENATED MODULE: ./src/VueElementQuery.js
var VueElementQuery_VueElementQuery =
/*#__PURE__*/
function () {
/**
* Constructor for the class
* @param {VueComponent} component
*/
function VueElementQuery(ResizeSensor, element) {
_classCallCheck(this, VueElementQuery);
this.ResizeSensor = ResizeSensor;
this.breakpoints = {
'min-width': [],
'max-width': []
};
this.init(element);
}
/**
* Initialize ElementQuery by crawling stylesheets for breakpoints,
* setting a resize watcher on the element, and firing the initial resize
* event.
* @param {HTMLElement} element
* @return {void}
*/
_createClass(VueElementQuery, [{
key: "init",
value: function init(element) {
this.setBreakpoints(element);
this.watchElement(element);
this.setInitialResize(element);
}
/**
* Fire the initial resize event
* @param {HTMLElement} element
*/
}, {
key: "setInitialResize",
value: function setInitialResize(element) {
element.resizedAttached.call();
}
/**
* Create a watcher on the element width
* @param {HTMLElement} element
* @return {void}
*/
}, {
key: "watchElement",
value: function watchElement(element) {
var _this = this;
new this.ResizeSensor(element, function () {
element.setAttribute('min-width', _this.setMinWidth(element.clientWidth));
element.setAttribute('max-width', _this.setMaxWidth(element.clientWidth));
});
}
/**
* Crawl the document stylesheets and capture all breakpoints for
* this element
* @param {HTMLElement} element
*/
}, {
key: "setBreakpoints",
value: function setBreakpoints(element) {
var _this2 = this;
this.crawlStylesheets(document, function (rules) {
_this2.readRules(rules, function (rule) {
if (_this2.matchesScope(element, rule.selectorText)) {
_this2.breakpoints[rule.selector].push(rule.value);
}
});
});
}
/**
* Determine if an element has a scoped stylesheet. This prevents
* us from crawling stylesheet rules that aren't relevant.
* @param @param {HTMLElement} element
* @param {String} selectorText
* @return {void}
*/
}, {
key: "matchesScope",
value: function matchesScope(element, selectorText) {
var scope = this.getScopeTag(element);
return selectorText.match(scope);
}
/**
* Returns a regex to determine if an element is scoped
* @param @param {HTMLElement} element
* @param {RegExp} regex
* @return {RegExp}
*/
}, {
key: "getScopeTag",
value: function getScopeTag(element) {
// grab the scope tag from the element, such as `v-12jn123n123`
var scope = Object.keys(element.dataset).find(function (key) {
return key.match(/v-/);
});
if (!scope) {
throw new Error({
message: '[VueElementQuery] Vue element queries only work on scoped stylesheets. Did you forget to add `scoped` to your stylesheet?'
});
}
return new RegExp(scope);
}
/**
* Set the string for the min-width attribute that will be used for element
* queries. Example result: "500px 600px 900px"
* @param {Number} elementWidth
*/
}, {
key: "setMinWidth",
value: function setMinWidth(elementWidth) {
return this.breakpoints['min-width'].reduce(function (string, key) {
return elementWidth >= key ? string + key + 'px ' : string;
}, '').slice(0, -1);
}
/**
* Set the string for the max-width attribute that will be used for element
* queries. Example result: "500px 600px 900px"
* @param {Number} elementWidth
*/
}, {
key: "setMaxWidth",
value: function setMaxWidth(elementWidth) {
return this.breakpoints['max-width'].reduce(function (string, key) {
return elementWidth <= key ? string + key + 'px ' : string;
}, '').slice(0, -1);
}
/**
* Crawl the document for stylesheets, and if valid for reading rules,
* pass to a callback function with the rules as the first argument.
* @param {HTMLDocument} document
* @param {Function} callback
* @return {void}
*/
}, {
key: "crawlStylesheets",
value: function crawlStylesheets(document, callback) {
for (var i = 0, j = document.styleSheets.length; i < j; i++) {
this.ifValidRules(document.styleSheets[i], callback);
}
}
/**
* Determine if the rules are valid for crawling on a stylesheet.
* @param {CSSStyleSheet} stylesheet
* @param {Function} callback
* @return {void}
*/
}, {
key: "ifValidRules",
value: function ifValidRules(stylesheet, callback) {
if (stylesheet.cssRules) {
callback(stylesheet.cssRules);
}
}
/**
* Read from the list of rules and build a map
* @param {CSSRuleList} rules
* @return {[type]}
*/
}, {
key: "readRules",
value: function readRules(rules, callback) {
this.crawlRules(rules, function (selectorText) {
callback(selectorText);
});
}
/**
* Crawl rules and execute a callback if the rule has valid
* selectorText.
* @param {CSSRuleList} rules
* @param {Function} callback
* @return {void}
*/
}, {
key: "crawlRules",
value: function crawlRules(rules, callback) {
for (var i = 0, j = rules.length; i < j; i++) {
if (rules[i].selectorText) this.getValidSelector(rules[i].selectorText, callback);
}
}
/**
* Check for a valid selector
* @param {String} selectorText
* @param {Function} callback
* @return {void}
*/
}, {
key: "getValidSelector",
value: function getValidSelector(selectorText, callback) {
// List of valid selectors
var matches = ['min-width', 'max-width']; // Check selector for a match, and if so execute the callback.
matches.forEach(function (selector) {
if (selectorText.indexOf(selector) !== -1) {
var regex = new RegExp("".concat(selector, "~=\"(.*)px\"]"));
callback({
selectorText: selectorText,
selector: selector,
value: selectorText.match(regex)[1]
});
}
});
}
}]);
return VueElementQuery;
}();
// EXTERNAL MODULE: ./node_modules/css-element-queries/src/ResizeSensor.js
var src_ResizeSensor = __webpack_require__("KtZj");
var ResizeSensor_default = /*#__PURE__*/__webpack_require__.n(src_ResizeSensor);
// CONCATENATED MODULE: ./src/index.js
/* harmony default export */ var src = ({
install: function install(Vue) {
Vue.directive('query', {
inserted: function inserted(element) {
new VueElementQuery_VueElementQuery(ResizeSensor_default.a, element);
},
unbind: function unbind(element) {
ResizeSensor_default.a.detach(element);
}
});
}
});
// CONCATENATED MODULE: /Users/joel-brubaker/.nvm/versions/node/v8.11.1/lib/node_modules/@vue/cli-service-global/node_modules/@vue/cli-service/lib/commands/build/entry-lib.js
/* harmony default export */ var entry_lib = __webpack_exports__["default"] = (src);
/***/ }),
/***/ "Yx2f":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $export = __webpack_require__("t1yY");
var $forEach = __webpack_require__("2Rpf")(0);
var STRICT = __webpack_require__("BPiH")([].forEach, true);
$export($export.P + $export.F * !STRICT, 'Array', {
// 22.1.3.10 / 15.4.4.18 Array.prototype.forEach(callbackfn [, thisArg])
forEach: function forEach(callbackfn /* , thisArg */) {
return $forEach(this, callbackfn, arguments[1]);
}
});
/***/ }),
/***/ "Yxsw":
/***/ (function(module, exports, __webpack_require__) {
// to indexed object, toObject with fallback for non-array-like ES3 strings
var IObject = __webpack_require__("vjA/");
var defined = __webpack_require__("XpIx");
module.exports = function (it) {
return IObject(defined(it));
};
/***/ }),
/***/ "b/3a":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("PUi0");
var setPrototypeOf = __webpack_require__("bGcJ").set;
module.exports = function (that, target, C) {
var S = target.constructor;
var P;
if (S !== C && typeof S == 'function' && (P = S.prototype) !== C.prototype && isObject(P) && setPrototypeOf) {
setPrototypeOf(that, P);
} return that;
};
/***/ }),
/***/ "b3my":
/***/ (function(module, exports) {
var id = 0;
var px = Math.random();
module.exports = function (key) {
return 'Symbol('.concat(key === undefined ? '' : key, ')_', (++id + px).toString(36));
};
/***/ }),
/***/ "bGcJ":
/***/ (function(module, exports, __webpack_require__) {
// Works with __proto__ only. Old v8 can't work with null proto objects.
/* eslint-disable no-proto */
var isObject = __webpack_require__("PUi0");
var anObject = __webpack_require__("i/GF");
var check = function (O, proto) {
anObject(O);
if (!isObject(proto) && proto !== null) throw TypeError(proto + ": can't set as prototype!");
};
module.exports = {
set: Object.setPrototypeOf || ('__proto__' in {} ? // eslint-disable-line
function (test, buggy, set) {
try {
set = __webpack_require__("pioK")(Function.call, __webpack_require__("PVSW").f(Object.prototype, '__proto__').set, 2);
set(test, []);
buggy = !(test instanceof Array);
} catch (e) { buggy = true; }
return function setPrototypeOf(O, proto) {
check(O, proto);
if (buggy) O.__proto__ = proto;
else set(O, proto);
return O;
};
}({}, false) : undefined),
check: check
};
/***/ }),
/***/ "bMrv":
/***/ (function(module, exports, __webpack_require__) {
module.exports = !__webpack_require__("k9+X") && !__webpack_require__("gbI/")(function () {
return Object.defineProperty(__webpack_require__("eVn5")('div'), 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
/***/ "bm5Y":
/***/ (function(module, exports) {
module.exports = {};
/***/ }),
/***/ "eVn5":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("PUi0");
var document = __webpack_require__("1wvP").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) : {};
};
/***/ }),
/***/ "fRkG":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var $export = __webpack_require__("t1yY");
var $reduce = __webpack_require__("rXsV");
$export($export.P + $export.F * !__webpack_require__("BPiH")([].reduce, true), 'Array', {
// 22.1.3.18 / 15.4.4.21 Array.prototype.reduce(callbackfn [, initialValue])
reduce: function reduce(callbackfn /* , initialValue */) {
return $reduce(this, callbackfn, arguments.length, arguments[1], false);
}
});
/***/ }),
/***/ "fsba":
/***/ (function(module, exports, __webpack_require__) {
var toInteger = __webpack_require__("wgvU");
var max = Math.max;
var min = Math.min;
module.exports = function (index, length) {
index = toInteger(index);
return index < 0 ? max(index + length, 0) : min(index, length);
};
/***/ }),
/***/ "gbI/":
/***/ (function(module, exports) {
module.exports = function (exec) {
try {
return !!exec();
} catch (e) {
return true;
}
};
/***/ }),
/***/ "i/GF":
/***/ (function(module, exports, __webpack_require__) {
var isObject = __webpack_require__("PUi0");
module.exports = function (it) {
if (!isObject(it)) throw TypeError(it + ' is not an object!');
return it;
};
/***/ }),
/***/ "jZGP":
/***/ (function(module, exports, __webpack_require__) {
// @@match logic
__webpack_require__("neYO")('match', 1, function (defined, MATCH, $match) {
// 21.1.3.11 String.prototype.match(regexp)
return [function match(regexp) {
'use strict';
var O = defined(this);
var fn = regexp == undefined ? undefined : regexp[MATCH];
return fn !== undefined ? fn.call(regexp, O) : new RegExp(regexp)[MATCH](String(O));
}, $match];
});
/***/ }),
/***/ "k38r":
/***/ (function(module, exports, __webpack_require__) {
var dP = __webpack_require__("uKfR");
var anObject = __webpack_require__("i/GF");
var getKeys = __webpack_require__("FfIX");
module.exports = __webpack_require__("k9+X") ? 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;
};
/***/ }),
/***/ "k9+X":
/***/ (function(module, exports, __webpack_require__) {
// Thank's IE8 for his funny defineProperty
module.exports = !__webpack_require__("gbI/")(function () {
return Object.defineProperty({}, 'a', { get: function () { return 7; } }).a != 7;
});
/***/ }),
/***/ "m8XM":
/***/ (function(module, exports, __webpack_require__) {
// most Object methods by ES6 should accept primitives
var $export = __webpack_require__("t1yY");
var core = __webpack_require__("vlp9");
var fails = __webpack_require__("gbI/");
module.exports = function (KEY, exec) {
var fn = (core.Object || {})[KEY] || Object[KEY];
var exp = {};
exp[KEY] = exec(fn);
$export($export.S + $export.F * fails(function () { fn(1); }), 'Object', exp);
};
/***/ }),
/***/ "mPYY":
/***/ (function(module, exports, __webpack_require__) {
var shared = __webpack_require__("+OAr")('keys');
var uid = __webpack_require__("b3my");
module.exports = function (key) {
return shared[key] || (shared[key] = uid(key));
};
/***/ }),
/***/ "mpE1":
/***/ (function(module, exports, __webpack_require__) {
"use strict";
var LIBRARY = __webpack_require__("3h5O");
var $export = __webpack_require__("t1yY");
var redefine = __webpack_require__("tfDl");
var hide = __webpack_require__("XA8k");
var Iterators = __webpack_require__("bm5Y");
var $iterCreate = __webpack_require__("59Ib");
var setToStringTag = __webpack_require__("OIVH");
var getPrototypeOf = __webpack_require__("IQBv");
var ITERATOR = __webpack_require__("7D+n")('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