Socket
Socket
Sign inDemoInstall

@pluginjs/utils

Package Overview
Dependencies
Maintainers
2
Versions
54
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@pluginjs/utils - npm Package Compare versions

Comparing version 0.7.8 to 0.7.9

574

dist/utils.common.js
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
'use strict';
Object.defineProperty(exports, '__esModule', { value: true });
var is = require('@pluginjs/is');
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;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArrayLimit(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
const nub = arr => {
return Array.from(new Set(arr));
};
const each = (obj, callback) => {
if (is.isArray(obj)) {
let index = 0;
const length = obj.length;
for (; index < length; index++) {
callback(obj[index], index);
}
} else {
Object.entries(obj).map((_ref) => {
let _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return callback(key, value);
});
}
return obj;
};
/** to createEvent */
function triggerNative(el, event, data) {
const e = document.createEvent('HTMLEvents');
if (typeof data !== 'undefined') {
e.initCustomEvent(event, true, true, data);
} else {
e.initEvent(event, true, false);
}
el.dispatchEvent(e);
}
/** Credit to https://github.com/jonschlinkert/shallow-clone MIT */
const clone = val => {
if (is.isElement(val)) {
return val;
} else if (is.isArray(val)) {
return val.slice();
} else if (is.isDate(val)) {
return new val.constructor(Number(val));
} else if (is.isMap(val)) {
return new Map(val);
} else if (is.isSet(val)) {
return new Set(val);
} else if (is.isSymbol(val)) {
return Symbol.prototype.valueOf ? Object(Symbol.prototype.valueOf.call(val)) : {};
} else if (is.isRegexp(val)) {
const re = new val.constructor(val.source, /\w+$/.exec(val));
re.lastIndex = val.lastIndex;
return re;
} else if (is.isError(val)) {
return Object.create(val);
} else if (is.isPlainObject(val)) {
return Object.assign({}, val);
}
return val;
};
/** Credit to https://github.com/jonschlinkert/clone-deep MIT */
const deepClone = val => {
if (is.isPlainObject(val)) {
return deepCloneObject(val);
} else if (is.isArray(val)) {
return deepCloneArray(val);
}
return clone(val);
};
const deepCloneObject = obj => {
if (is.isPlainObject(obj)) {
const res = new obj.constructor();
for (const key in obj) {
// eslint-disable-line
res[key] = deepClone(obj[key]);
}
return res;
}
return obj;
};
const deepCloneArray = arr => {
const res = new arr.constructor(arr.length);
for (let i = 0; i < arr.length; i++) {
res[i] = deepClone(arr[i]);
}
return res;
};
const merge = function merge(target) {
for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
sources[_key - 1] = arguments[_key];
}
sources.forEach(src => {
for (const prop in src) {
// eslint-disable-line
target[prop] = src[prop];
}
});
return target;
};
function deepMergeTwo(target, source) {
const sourceIsArray = is.isArray(source);
const targetIsArray = is.isArray(target);
if (is.isUndefined(source)) {
return target;
}
if (sourceIsArray !== targetIsArray) {
return clone(source);
} else if (sourceIsArray) {
return clone(source);
} else if (is.isPlainObject(target) && is.isPlainObject(source)) {
Object.keys(source).forEach(key => {
target[key] = deepMergeTwo(target[key], source[key]);
});
return target;
}
return clone(source);
}
const deepMerge = function deepMerge() {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return args.filter(is.isObject).reduce(deepMergeTwo, {});
};
const curry = function curry(fn) {
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return function () {
const currylen = fn.currylen || fn.length;
for (var _len3 = arguments.length, subArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
subArgs[_key3] = arguments[_key3];
}
const collect = args.concat(subArgs);
if (collect.length >= currylen) {
return fn(...collect);
}
return curry(fn, collect);
};
};
const curryWith = function curryWith(fn, enSureFunction) {
let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
return function () {
for (var _len4 = arguments.length, subArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
subArgs[_key4] = arguments[_key4];
}
const index = subArgs.findIndex(enSureFunction);
if (index >= 0) {
const collect = args.concat(...subArgs.slice(0, index + 1));
return fn(...collect);
}
const collect = args.concat(...subArgs);
return curryWith(fn, enSureFunction, collect);
};
};
const compose = function compose() {
for (var _len5 = arguments.length, fn = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
fn[_key5] = arguments[_key5];
}
const callback = function callback() {
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
args[_key6] = arguments[_key6];
}
return fn.reduceRight((r, i, index) => {
if (Array.isArray(r) && index === fn.length - 1) {
return i(...r);
}
return i(r);
}, args);
};
callback.currylen = fn[fn.curylen || fn.length - 1].length;
return callback;
};
const MAX_UID = 1000000;
const getUID = prefix => {
do {
// eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix));
return prefix;
};
const range = v => Array.from({
length: v
}, (v, i) => i);
const reflow = element => element.offsetHeight;
const arrayEqual = (a, b) => {
if (a === b) {
return true;
}
if (typeof a === 'undefined' || typeof b === 'undefined') {
return false;
}
if (a.length !== b.length) {
return false;
}
for (let i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
};
const objectEqual = (a, b) => {
const aProps = Object.getOwnPropertyNames(a);
const bProps = Object.getOwnPropertyNames(b);
if (aProps.length !== bProps.length) {
return false;
}
for (let i = 0; i < aProps.length; i++) {
const prop = aProps[i];
if (is.isArray(a[prop]) && is.isArray(b[prop])) {
if (!arrayEqual(a[prop], b[prop])) {
return false;
}
} else if (is.isObject(a[prop]) && is.isObject(b[prop])) {
if (!objectEqual(a[prop], b[prop])) {
return false;
}
} else if (a[prop] !== b[prop]) {
return false;
}
}
return true;
};
const arrayDiff = (a, b) => {
return a.filter(n => b.indexOf(n) < 0);
};
const arrayIntersect = (a, b) => {
let t;
if (b.length > a.length) {
t = b;
b = a;
a = t;
}
return a.filter(n => b.indexOf(n) !== -1);
};
const convertPercentageToFloat = n => parseFloat(n.slice(0, -1) / 100, 10);
const convertFloatToPercentage = n => {
if (n < 0) {
n = 0;
} else if (n > 1) {
n = 1;
}
return `${parseFloat(n).toFixed(4) * 100}%`;
};
const convertMatrixToArray = value => {
if (value && value.substr(0, 6) === 'matrix') {
return value.replace(/^.*\((.*)\)$/g, '$1').replace(/px/g, '').split(/, +/);
}
return false;
};
const getTime = () => {
if (typeof window.performance !== 'undefined' && window.performance.now) {
return window.performance.now();
}
return Date.now();
};
const camelize = function camelize(word) {
let first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
word = word.replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase());
if (first) {
word = word.substring(0, 1).toUpperCase() + word.substring(1);
}
return word;
};
const dasherize = word => word.replace(/([a-z\d])([A-Z])/g, '$1-$2').toLowerCase();
/* Credit to https://github.com/jonschlinkert/get-value MIT */
const getValueByPath = (obj, path) => {
if (Object(obj) !== obj || typeof path === 'undefined') {
return obj;
}
if (path in obj) {
return obj[path];
}
const segs = path.split('.');
const length = segs.length;
if (!length) {
return undefined;
}
let i = -1;
while (obj && ++i < length) {
let key = segs[i];
while (key[key.length - 1] === '\\') {
key = `${key.slice(0, -1)}.${segs[++i]}`;
}
obj = obj[key];
}
return obj;
};
/* Throttle execution of a function.
* Especially useful for rate limiting execution of
* handlers on events like resize and scroll. */
function throttle(func, delay) {
var _this = this;
let running = false;
function resetRunning() {
running = false;
}
if (typeof delay !== 'undefined' || delay !== null) {
return function () {
const that = _this;
if (running) {
return;
}
running = true;
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
args[_key7] = arguments[_key7];
}
func.apply(that, args);
window.setTimeout(resetRunning, delay);
};
}
return function () {
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
args[_key8] = arguments[_key8];
}
const that = _this;
if (running) {
return;
}
running = true;
window.requestAnimationFrame(() => {
func.apply(that, args);
resetRunning();
});
};
}
/* Debounce execution of a function.
* Debouncing, unlike throttling, guarantees that a function
* is only executed a single time at the very end. */
function debounce(func) {
var _this2 = this;
let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
let timer;
return function () {
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
args[_key9] = arguments[_key9];
}
const that = _this2;
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(() => {
func.apply(that, args);
}, delay);
};
}
function fromPairs(arr) {
return arr.reduce((r, _ref3) => {
let _ref4 = _slicedToArray(_ref3, 2),
k = _ref4[0],
v = _ref4[1];
return _objectSpread({}, r, {
[k]: v
});
}, {});
}
const SvgElement = (tag, attrs) => {
const el = document.createElementNS('http://www.w3.org/2000/svg', tag);
if (!attrs) {
return el;
}
for (const key in attrs) {
if (!Object.hasOwnProperty.call(attrs, key)) {
continue;
}
el.setAttribute(key, attrs[key]);
}
return el;
};
function parseDataOptions(dataset) {
return Object.entries(dataset).reduce((result, _ref5) => {
let _ref6 = _slicedToArray(_ref5, 2),
k = _ref6[0],
v = _ref6[1];
try {
const content = JSON.parse(`{"data": ${v.replace(/'/g, '"')}}`).data;
return _objectSpread({}, result, {
[k]: content
});
} catch (err) {
return _objectSpread({}, result, {
[k]: v
});
}
}, {});
}
exports.nub = nub;
exports.each = each;
exports.triggerNative = triggerNative;
exports.clone = clone;
exports.deepClone = deepClone;
exports.deepCloneObject = deepCloneObject;
exports.deepCloneArray = deepCloneArray;
exports.merge = merge;
exports.deepMerge = deepMerge;
exports.curry = curry;
exports.curryWith = curryWith;
exports.compose = compose;
exports.getUID = getUID;
exports.range = range;
exports.reflow = reflow;
exports.arrayEqual = arrayEqual;
exports.objectEqual = objectEqual;
exports.arrayDiff = arrayDiff;
exports.arrayIntersect = arrayIntersect;
exports.convertPercentageToFloat = convertPercentageToFloat;
exports.convertFloatToPercentage = convertFloatToPercentage;
exports.convertMatrixToArray = convertMatrixToArray;
exports.getTime = getTime;
exports.camelize = camelize;
exports.dasherize = dasherize;
exports.getValueByPath = getValueByPath;
exports.throttle = throttle;
exports.debounce = debounce;
exports.fromPairs = fromPairs;
exports.SvgElement = SvgElement;
exports.parseDataOptions = parseDataOptions;
undefined

4

dist/utils.common.min.js
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var is=require("@pluginjs/is");function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){_defineProperty(e,r,t[r])})}return e}function _slicedToArray(e,r){return _arrayWithHoles(e)||_iterableToArrayLimit(e,r)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw i}}return t}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}const nub=e=>Array.from(new Set(e)),each=(e,r)=>{if(is.isArray(e)){let t=0;const n=e.length;for(;t<n;t++)r(e[t],t)}else Object.entries(e).map(e=>{let t=_slicedToArray(e,2),n=t[0],o=t[1];return r(n,o)});return e};function triggerNative(e,r,t){const n=document.createEvent("HTMLEvents");void 0!==t?n.initCustomEvent(r,!0,!0,t):n.initEvent(r,!0,!1),e.dispatchEvent(n)}const clone=e=>{if(is.isElement(e))return e;if(is.isArray(e))return e.slice();if(is.isDate(e))return new e.constructor(Number(e));if(is.isMap(e))return new Map(e);if(is.isSet(e))return new Set(e);if(is.isSymbol(e))return Symbol.prototype.valueOf?Object(Symbol.prototype.valueOf.call(e)):{};if(is.isRegexp(e)){const r=new e.constructor(e.source,/\w+$/.exec(e));return r.lastIndex=e.lastIndex,r}return is.isError(e)?Object.create(e):is.isPlainObject(e)?Object.assign({},e):e},deepClone=e=>is.isPlainObject(e)?deepCloneObject(e):is.isArray(e)?deepCloneArray(e):clone(e),deepCloneObject=e=>{if(is.isPlainObject(e)){const r=new e.constructor;for(const t in e)r[t]=deepClone(e[t]);return r}return e},deepCloneArray=e=>{const r=new e.constructor(e.length);for(let t=0;t<e.length;t++)r[t]=deepClone(e[t]);return r},merge=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];return t.forEach(r=>{for(const t in r)e[t]=r[t]}),e};function deepMergeTwo(e,r){const t=is.isArray(r),n=is.isArray(e);return is.isUndefined(r)?e:t!==n?clone(r):t?clone(r):is.isPlainObject(e)&&is.isPlainObject(r)?(Object.keys(r).forEach(t=>{e[t]=deepMergeTwo(e[t],r[t])}),e):clone(r)}const deepMerge=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return r.filter(is.isObject).reduce(deepMergeTwo,{})},curry=function e(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return function(){const n=r.currylen||r.length;for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=t.concat(i);return c.length>=n?r(...c):e(r,c)}},curryWith=function e(r,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return function(){for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=i.findIndex(t);if(c>=0){const e=n.concat(...i.slice(0,c+1));return r(...e)}const s=n.concat(...i);return e(r,t,s)}},compose=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];const n=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.reduceRight((e,t,n)=>Array.isArray(e)&&n===r.length-1?t(...e):t(e),t)};return n.currylen=r[r.curylen||r.length-1].length,n},MAX_UID=1e6,getUID=e=>{do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},range=e=>Array.from({length:e},(e,r)=>r),reflow=e=>e.offsetHeight,arrayEqual=(e,r)=>{if(e===r)return!0;if(void 0===e||void 0===r)return!1;if(e.length!==r.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==r[t])return!1;return!0},objectEqual=(e,r)=>{const t=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(r);if(t.length!==n.length)return!1;for(let n=0;n<t.length;n++){const o=t[n];if(is.isArray(e[o])&&is.isArray(r[o])){if(!arrayEqual(e[o],r[o]))return!1}else if(is.isObject(e[o])&&is.isObject(r[o])){if(!objectEqual(e[o],r[o]))return!1}else if(e[o]!==r[o])return!1}return!0},arrayDiff=(e,r)=>e.filter(e=>r.indexOf(e)<0),arrayIntersect=(e,r)=>{let t;return r.length>e.length&&(t=r,r=e,e=t),e.filter(e=>-1!==r.indexOf(e))},convertPercentageToFloat=e=>parseFloat(e.slice(0,-1)/100,10),convertFloatToPercentage=e=>(e<0?e=0:e>1&&(e=1),`${100*parseFloat(e).toFixed(4)}%`),convertMatrixToArray=e=>!(!e||"matrix"!==e.substr(0,6))&&e.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/),getTime=()=>void 0!==window.performance&&window.performance.now?window.performance.now():Date.now(),camelize=function(e){let r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=e.replace(/[_.\- ]+(\w|$)/g,(e,r)=>r.toUpperCase()),r&&(e=e.substring(0,1).toUpperCase()+e.substring(1)),e},dasherize=e=>e.replace(/([a-z\d])([A-Z])/g,"$1-$2").toLowerCase(),getValueByPath=(e,r)=>{if(Object(e)!==e||void 0===r)return e;if(r in e)return e[r];const t=r.split("."),n=t.length;if(!n)return;let o=-1;for(;e&&++o<n;){let r=t[o];for(;"\\"===r[r.length-1];)r=`${r.slice(0,-1)}.${t[++o]}`;e=e[r]}return e};function throttle(e,r){var t=this;let n=!1;function o(){n=!1}return void 0!==r||null!==r?function(){const i=t;if(!n){n=!0;for(var a=arguments.length,c=new Array(a),s=0;s<a;s++)c[s]=arguments[s];e.apply(i,c),window.setTimeout(o,r)}}:function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];const c=t;n||(n=!0,window.requestAnimationFrame(()=>{e.apply(c,i),o()}))}}function debounce(e){var r=this;let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return function(){for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=r;t&&(clearTimeout(t),t=null),t=setTimeout(()=>{e.apply(c,i)},n)}}function fromPairs(e){return e.reduce((e,r)=>{let t=_slicedToArray(r,2);return _objectSpread({},e,{[t[0]]:t[1]})},{})}const SvgElement=(e,r)=>{const t=document.createElementNS("http://www.w3.org/2000/svg",e);if(!r)return t;for(const e in r)Object.hasOwnProperty.call(r,e)&&t.setAttribute(e,r[e]);return t};function parseDataOptions(e){return Object.entries(e).reduce((e,r)=>{let t=_slicedToArray(r,2),n=t[0],o=t[1];try{return _objectSpread({},e,{[n]:JSON.parse(`{"data": ${o.replace(/'/g,'"')}}`).data})}catch(r){return _objectSpread({},e,{[n]:o})}},{})}exports.nub=nub,exports.each=each,exports.triggerNative=triggerNative,exports.clone=clone,exports.deepClone=deepClone,exports.deepCloneObject=deepCloneObject,exports.deepCloneArray=deepCloneArray,exports.merge=merge,exports.deepMerge=deepMerge,exports.curry=curry,exports.curryWith=curryWith,exports.compose=compose,exports.getUID=getUID,exports.range=range,exports.reflow=reflow,exports.arrayEqual=arrayEqual,exports.objectEqual=objectEqual,exports.arrayDiff=arrayDiff,exports.arrayIntersect=arrayIntersect,exports.convertPercentageToFloat=convertPercentageToFloat,exports.convertFloatToPercentage=convertFloatToPercentage,exports.convertMatrixToArray=convertMatrixToArray,exports.getTime=getTime,exports.camelize=camelize,exports.dasherize=dasherize,exports.getValueByPath=getValueByPath,exports.throttle=throttle,exports.debounce=debounce,exports.fromPairs=fromPairs,exports.SvgElement=SvgElement,exports.parseDataOptions=parseDataOptions;
undefined
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
import { isDate, isMap, isSet, isSymbol, isRegexp, isError, isArray, isObject, isPlainObject, isUndefined, isElement } from '@pluginjs/is';
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;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArrayLimit(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
const nub = arr => {
return Array.from(new Set(arr));
};
const each = (obj, callback) => {
if (isArray(obj)) {
let index = 0;
const length = obj.length;
for (; index < length; index++) {
callback(obj[index], index);
}
} else {
Object.entries(obj).map((_ref) => {
let _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return callback(key, value);
});
}
return obj;
};
/** to createEvent */
function triggerNative(el, event, data) {
const e = document.createEvent('HTMLEvents');
if (typeof data !== 'undefined') {
e.initCustomEvent(event, true, true, data);
} else {
e.initEvent(event, true, false);
}
el.dispatchEvent(e);
}
/** Credit to https://github.com/jonschlinkert/shallow-clone MIT */
const clone = val => {
if (isElement(val)) {
return val;
} else if (isArray(val)) {
return val.slice();
} else if (isDate(val)) {
return new val.constructor(Number(val));
} else if (isMap(val)) {
return new Map(val);
} else if (isSet(val)) {
return new Set(val);
} else if (isSymbol(val)) {
return Symbol.prototype.valueOf ? Object(Symbol.prototype.valueOf.call(val)) : {};
} else if (isRegexp(val)) {
const re = new val.constructor(val.source, /\w+$/.exec(val));
re.lastIndex = val.lastIndex;
return re;
} else if (isError(val)) {
return Object.create(val);
} else if (isPlainObject(val)) {
return Object.assign({}, val);
}
return val;
};
/** Credit to https://github.com/jonschlinkert/clone-deep MIT */
const deepClone = val => {
if (isPlainObject(val)) {
return deepCloneObject(val);
} else if (isArray(val)) {
return deepCloneArray(val);
}
return clone(val);
};
const deepCloneObject = obj => {
if (isPlainObject(obj)) {
const res = new obj.constructor();
for (const key in obj) {
// eslint-disable-line
res[key] = deepClone(obj[key]);
}
return res;
}
return obj;
};
const deepCloneArray = arr => {
const res = new arr.constructor(arr.length);
for (let i = 0; i < arr.length; i++) {
res[i] = deepClone(arr[i]);
}
return res;
};
const merge = function merge(target) {
for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
sources[_key - 1] = arguments[_key];
}
sources.forEach(src => {
for (const prop in src) {
// eslint-disable-line
target[prop] = src[prop];
}
});
return target;
};
function deepMergeTwo(target, source) {
const sourceIsArray = isArray(source);
const targetIsArray = isArray(target);
if (isUndefined(source)) {
return target;
}
if (sourceIsArray !== targetIsArray) {
return clone(source);
} else if (sourceIsArray) {
return clone(source);
} else if (isPlainObject(target) && isPlainObject(source)) {
Object.keys(source).forEach(key => {
target[key] = deepMergeTwo(target[key], source[key]);
});
return target;
}
return clone(source);
}
const deepMerge = function deepMerge() {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return args.filter(isObject).reduce(deepMergeTwo, {});
};
const curry = function curry(fn) {
let args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return function () {
const currylen = fn.currylen || fn.length;
for (var _len3 = arguments.length, subArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
subArgs[_key3] = arguments[_key3];
}
const collect = args.concat(subArgs);
if (collect.length >= currylen) {
return fn(...collect);
}
return curry(fn, collect);
};
};
const curryWith = function curryWith(fn, enSureFunction) {
let args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
return function () {
for (var _len4 = arguments.length, subArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
subArgs[_key4] = arguments[_key4];
}
const index = subArgs.findIndex(enSureFunction);
if (index >= 0) {
const collect = args.concat(...subArgs.slice(0, index + 1));
return fn(...collect);
}
const collect = args.concat(...subArgs);
return curryWith(fn, enSureFunction, collect);
};
};
const compose = function compose() {
for (var _len5 = arguments.length, fn = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
fn[_key5] = arguments[_key5];
}
const callback = function callback() {
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
args[_key6] = arguments[_key6];
}
return fn.reduceRight((r, i, index) => {
if (Array.isArray(r) && index === fn.length - 1) {
return i(...r);
}
return i(r);
}, args);
};
callback.currylen = fn[fn.curylen || fn.length - 1].length;
return callback;
};
const MAX_UID = 1000000;
const getUID = prefix => {
do {
// eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix));
return prefix;
};
const range = v => Array.from({
length: v
}, (v, i) => i);
const reflow = element => element.offsetHeight;
const arrayEqual = (a, b) => {
if (a === b) {
return true;
}
if (typeof a === 'undefined' || typeof b === 'undefined') {
return false;
}
if (a.length !== b.length) {
return false;
}
for (let i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
};
const objectEqual = (a, b) => {
const aProps = Object.getOwnPropertyNames(a);
const bProps = Object.getOwnPropertyNames(b);
if (aProps.length !== bProps.length) {
return false;
}
for (let i = 0; i < aProps.length; i++) {
const prop = aProps[i];
if (isArray(a[prop]) && isArray(b[prop])) {
if (!arrayEqual(a[prop], b[prop])) {
return false;
}
} else if (isObject(a[prop]) && isObject(b[prop])) {
if (!objectEqual(a[prop], b[prop])) {
return false;
}
} else if (a[prop] !== b[prop]) {
return false;
}
}
return true;
};
const arrayDiff = (a, b) => {
return a.filter(n => b.indexOf(n) < 0);
};
const arrayIntersect = (a, b) => {
let t;
if (b.length > a.length) {
t = b;
b = a;
a = t;
}
return a.filter(n => b.indexOf(n) !== -1);
};
const convertPercentageToFloat = n => parseFloat(n.slice(0, -1) / 100, 10);
const convertFloatToPercentage = n => {
if (n < 0) {
n = 0;
} else if (n > 1) {
n = 1;
}
return `${parseFloat(n).toFixed(4) * 100}%`;
};
const convertMatrixToArray = value => {
if (value && value.substr(0, 6) === 'matrix') {
return value.replace(/^.*\((.*)\)$/g, '$1').replace(/px/g, '').split(/, +/);
}
return false;
};
const getTime = () => {
if (typeof window.performance !== 'undefined' && window.performance.now) {
return window.performance.now();
}
return Date.now();
};
const camelize = function camelize(word) {
let first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
word = word.replace(/[_.\- ]+(\w|$)/g, (m, p1) => p1.toUpperCase());
if (first) {
word = word.substring(0, 1).toUpperCase() + word.substring(1);
}
return word;
};
const dasherize = word => word.replace(/([a-z\d])([A-Z])/g, '$1-$2').toLowerCase();
/* Credit to https://github.com/jonschlinkert/get-value MIT */
const getValueByPath = (obj, path) => {
if (Object(obj) !== obj || typeof path === 'undefined') {
return obj;
}
if (path in obj) {
return obj[path];
}
const segs = path.split('.');
const length = segs.length;
if (!length) {
return undefined;
}
let i = -1;
while (obj && ++i < length) {
let key = segs[i];
while (key[key.length - 1] === '\\') {
key = `${key.slice(0, -1)}.${segs[++i]}`;
}
obj = obj[key];
}
return obj;
};
/* Throttle execution of a function.
* Especially useful for rate limiting execution of
* handlers on events like resize and scroll. */
function throttle(func, delay) {
var _this = this;
let running = false;
function resetRunning() {
running = false;
}
if (typeof delay !== 'undefined' || delay !== null) {
return function () {
const that = _this;
if (running) {
return;
}
running = true;
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
args[_key7] = arguments[_key7];
}
func.apply(that, args);
window.setTimeout(resetRunning, delay);
};
}
return function () {
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
args[_key8] = arguments[_key8];
}
const that = _this;
if (running) {
return;
}
running = true;
window.requestAnimationFrame(() => {
func.apply(that, args);
resetRunning();
});
};
}
/* Debounce execution of a function.
* Debouncing, unlike throttling, guarantees that a function
* is only executed a single time at the very end. */
function debounce(func) {
var _this2 = this;
let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
let timer;
return function () {
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
args[_key9] = arguments[_key9];
}
const that = _this2;
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(() => {
func.apply(that, args);
}, delay);
};
}
function fromPairs(arr) {
return arr.reduce((r, _ref3) => {
let _ref4 = _slicedToArray(_ref3, 2),
k = _ref4[0],
v = _ref4[1];
return _objectSpread({}, r, {
[k]: v
});
}, {});
}
const SvgElement = (tag, attrs) => {
const el = document.createElementNS('http://www.w3.org/2000/svg', tag);
if (!attrs) {
return el;
}
for (const key in attrs) {
if (!Object.hasOwnProperty.call(attrs, key)) {
continue;
}
el.setAttribute(key, attrs[key]);
}
return el;
};
function parseDataOptions(dataset) {
return Object.entries(dataset).reduce((result, _ref5) => {
let _ref6 = _slicedToArray(_ref5, 2),
k = _ref6[0],
v = _ref6[1];
try {
const content = JSON.parse(`{"data": ${v.replace(/'/g, '"')}}`).data;
return _objectSpread({}, result, {
[k]: content
});
} catch (err) {
return _objectSpread({}, result, {
[k]: v
});
}
}, {});
}
export { nub, each, triggerNative, clone, deepClone, deepCloneObject, deepCloneArray, merge, deepMerge, curry, curryWith, compose, getUID, range, reflow, arrayEqual, objectEqual, arrayDiff, arrayIntersect, convertPercentageToFloat, convertFloatToPercentage, convertMatrixToArray, getTime, camelize, dasherize, getValueByPath, throttle, debounce, fromPairs, SvgElement, parseDataOptions };
undefined
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
import{isDate,isMap,isSet,isSymbol,isRegexp,isError,isArray,isObject,isPlainObject,isUndefined,isElement}from"@pluginjs/is";function _defineProperty(e,r,t){return r in e?Object.defineProperty(e,r,{value:t,enumerable:!0,configurable:!0,writable:!0}):e[r]=t,e}function _objectSpread(e){for(var r=1;r<arguments.length;r++){var t=null!=arguments[r]?arguments[r]:{},n=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(n=n.concat(Object.getOwnPropertySymbols(t).filter(function(e){return Object.getOwnPropertyDescriptor(t,e).enumerable}))),n.forEach(function(r){_defineProperty(e,r,t[r])})}return e}function _slicedToArray(e,r){return _arrayWithHoles(e)||_iterableToArrayLimit(e,r)||_nonIterableRest()}function _arrayWithHoles(e){if(Array.isArray(e))return e}function _iterableToArrayLimit(e,r){var t=[],n=!0,o=!1,i=void 0;try{for(var a,c=e[Symbol.iterator]();!(n=(a=c.next()).done)&&(t.push(a.value),!r||t.length!==r);n=!0);}catch(e){o=!0,i=e}finally{try{n||null==c.return||c.return()}finally{if(o)throw i}}return t}function _nonIterableRest(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}const nub=e=>Array.from(new Set(e)),each=(e,r)=>{if(isArray(e)){let t=0;const n=e.length;for(;t<n;t++)r(e[t],t)}else Object.entries(e).map(e=>{let t=_slicedToArray(e,2),n=t[0],o=t[1];return r(n,o)});return e};function triggerNative(e,r,t){const n=document.createEvent("HTMLEvents");void 0!==t?n.initCustomEvent(r,!0,!0,t):n.initEvent(r,!0,!1),e.dispatchEvent(n)}const clone=e=>{if(isElement(e))return e;if(isArray(e))return e.slice();if(isDate(e))return new e.constructor(Number(e));if(isMap(e))return new Map(e);if(isSet(e))return new Set(e);if(isSymbol(e))return Symbol.prototype.valueOf?Object(Symbol.prototype.valueOf.call(e)):{};if(isRegexp(e)){const r=new e.constructor(e.source,/\w+$/.exec(e));return r.lastIndex=e.lastIndex,r}return isError(e)?Object.create(e):isPlainObject(e)?Object.assign({},e):e},deepClone=e=>isPlainObject(e)?deepCloneObject(e):isArray(e)?deepCloneArray(e):clone(e),deepCloneObject=e=>{if(isPlainObject(e)){const r=new e.constructor;for(const t in e)r[t]=deepClone(e[t]);return r}return e},deepCloneArray=e=>{const r=new e.constructor(e.length);for(let t=0;t<e.length;t++)r[t]=deepClone(e[t]);return r},merge=function(e){for(var r=arguments.length,t=new Array(r>1?r-1:0),n=1;n<r;n++)t[n-1]=arguments[n];return t.forEach(r=>{for(const t in r)e[t]=r[t]}),e};function deepMergeTwo(e,r){const t=isArray(r),n=isArray(e);return isUndefined(r)?e:t!==n?clone(r):t?clone(r):isPlainObject(e)&&isPlainObject(r)?(Object.keys(r).forEach(t=>{e[t]=deepMergeTwo(e[t],r[t])}),e):clone(r)}const deepMerge=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];return r.filter(isObject).reduce(deepMergeTwo,{})},curry=function e(r){let t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return function(){const n=r.currylen||r.length;for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=t.concat(i);return c.length>=n?r(...c):e(r,c)}},curryWith=function e(r,t){let n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return function(){for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=i.findIndex(t);if(c>=0){const e=n.concat(...i.slice(0,c+1));return r(...e)}const l=n.concat(...i);return e(r,t,l)}},compose=function(){for(var e=arguments.length,r=new Array(e),t=0;t<e;t++)r[t]=arguments[t];const n=function(){for(var e=arguments.length,t=new Array(e),n=0;n<e;n++)t[n]=arguments[n];return r.reduceRight((e,t,n)=>Array.isArray(e)&&n===r.length-1?t(...e):t(e),t)};return n.currylen=r[r.curylen||r.length-1].length,n},MAX_UID=1e6,getUID=e=>{do{e+=~~(1e6*Math.random())}while(document.getElementById(e));return e},range=e=>Array.from({length:e},(e,r)=>r),reflow=e=>e.offsetHeight,arrayEqual=(e,r)=>{if(e===r)return!0;if(void 0===e||void 0===r)return!1;if(e.length!==r.length)return!1;for(let t=0;t<e.length;++t)if(e[t]!==r[t])return!1;return!0},objectEqual=(e,r)=>{const t=Object.getOwnPropertyNames(e),n=Object.getOwnPropertyNames(r);if(t.length!==n.length)return!1;for(let n=0;n<t.length;n++){const o=t[n];if(isArray(e[o])&&isArray(r[o])){if(!arrayEqual(e[o],r[o]))return!1}else if(isObject(e[o])&&isObject(r[o])){if(!objectEqual(e[o],r[o]))return!1}else if(e[o]!==r[o])return!1}return!0},arrayDiff=(e,r)=>e.filter(e=>r.indexOf(e)<0),arrayIntersect=(e,r)=>{let t;return r.length>e.length&&(t=r,r=e,e=t),e.filter(e=>-1!==r.indexOf(e))},convertPercentageToFloat=e=>parseFloat(e.slice(0,-1)/100,10),convertFloatToPercentage=e=>(e<0?e=0:e>1&&(e=1),`${100*parseFloat(e).toFixed(4)}%`),convertMatrixToArray=e=>!(!e||"matrix"!==e.substr(0,6))&&e.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/),getTime=()=>void 0!==window.performance&&window.performance.now?window.performance.now():Date.now(),camelize=function(e){let r=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return e=e.replace(/[_.\- ]+(\w|$)/g,(e,r)=>r.toUpperCase()),r&&(e=e.substring(0,1).toUpperCase()+e.substring(1)),e},dasherize=e=>e.replace(/([a-z\d])([A-Z])/g,"$1-$2").toLowerCase(),getValueByPath=(e,r)=>{if(Object(e)!==e||void 0===r)return e;if(r in e)return e[r];const t=r.split("."),n=t.length;if(!n)return;let o=-1;for(;e&&++o<n;){let r=t[o];for(;"\\"===r[r.length-1];)r=`${r.slice(0,-1)}.${t[++o]}`;e=e[r]}return e};function throttle(e,r){var t=this;let n=!1;function o(){n=!1}return void 0!==r||null!==r?function(){const i=t;if(!n){n=!0;for(var a=arguments.length,c=new Array(a),l=0;l<a;l++)c[l]=arguments[l];e.apply(i,c),window.setTimeout(o,r)}}:function(){for(var r=arguments.length,i=new Array(r),a=0;a<r;a++)i[a]=arguments[a];const c=t;n||(n=!0,window.requestAnimationFrame(()=>{e.apply(c,i),o()}))}}function debounce(e){var r=this;let t,n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return function(){for(var o=arguments.length,i=new Array(o),a=0;a<o;a++)i[a]=arguments[a];const c=r;t&&(clearTimeout(t),t=null),t=setTimeout(()=>{e.apply(c,i)},n)}}function fromPairs(e){return e.reduce((e,r)=>{let t=_slicedToArray(r,2);return _objectSpread({},e,{[t[0]]:t[1]})},{})}const SvgElement=(e,r)=>{const t=document.createElementNS("http://www.w3.org/2000/svg",e);if(!r)return t;for(const e in r)Object.hasOwnProperty.call(r,e)&&t.setAttribute(e,r[e]);return t};function parseDataOptions(e){return Object.entries(e).reduce((e,r)=>{let t=_slicedToArray(r,2),n=t[0],o=t[1];try{return _objectSpread({},e,{[n]:JSON.parse(`{"data": ${o.replace(/'/g,'"')}}`).data})}catch(r){return _objectSpread({},e,{[n]:o})}},{})}export{nub,each,triggerNative,clone,deepClone,deepCloneObject,deepCloneArray,merge,deepMerge,curry,curryWith,compose,getUID,range,reflow,arrayEqual,objectEqual,arrayDiff,arrayIntersect,convertPercentageToFloat,convertFloatToPercentage,convertMatrixToArray,getTime,camelize,dasherize,getValueByPath,throttle,debounce,fromPairs,SvgElement,parseDataOptions};
undefined
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
(function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? factory(exports, require('@pluginjs/is')) :
typeof define === 'function' && define.amd ? define(['exports', '@pluginjs/is'], factory) :
(factory((global['@pluginjs/utils'] = {}),global['@pluginjs/is']));
}(this, (function (exports,is) { 'use strict';
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;
}
function _objectSpread(target) {
for (var i = 1; i < arguments.length; i++) {
var source = arguments[i] != null ? arguments[i] : {};
var ownKeys = Object.keys(source);
if (typeof Object.getOwnPropertySymbols === 'function') {
ownKeys = ownKeys.concat(Object.getOwnPropertySymbols(source).filter(function (sym) {
return Object.getOwnPropertyDescriptor(source, sym).enumerable;
}));
}
ownKeys.forEach(function (key) {
_defineProperty(target, key, source[key]);
});
}
return target;
}
function _slicedToArray(arr, i) {
return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _nonIterableRest();
}
function _toConsumableArray(arr) {
return _arrayWithoutHoles(arr) || _iterableToArray(arr) || _nonIterableSpread();
}
function _arrayWithoutHoles(arr) {
if (Array.isArray(arr)) {
for (var i = 0, arr2 = new Array(arr.length); i < arr.length; i++) arr2[i] = arr[i];
return arr2;
}
}
function _arrayWithHoles(arr) {
if (Array.isArray(arr)) return arr;
}
function _iterableToArray(iter) {
if (Symbol.iterator in Object(iter) || Object.prototype.toString.call(iter) === "[object Arguments]") return Array.from(iter);
}
function _iterableToArrayLimit(arr, i) {
var _arr = [];
var _n = true;
var _d = false;
var _e = undefined;
try {
for (var _i = arr[Symbol.iterator](), _s; !(_n = (_s = _i.next()).done); _n = true) {
_arr.push(_s.value);
if (i && _arr.length === i) break;
}
} catch (err) {
_d = true;
_e = err;
} finally {
try {
if (!_n && _i["return"] != null) _i["return"]();
} finally {
if (_d) throw _e;
}
}
return _arr;
}
function _nonIterableSpread() {
throw new TypeError("Invalid attempt to spread non-iterable instance");
}
function _nonIterableRest() {
throw new TypeError("Invalid attempt to destructure non-iterable instance");
}
var nub = function nub(arr) {
return Array.from(new Set(arr));
};
var each = function each(obj, callback) {
if (is.isArray(obj)) {
var index = 0;
var length = obj.length;
for (; index < length; index++) {
callback(obj[index], index);
}
} else {
Object.entries(obj).map(function (_ref) {
var _ref2 = _slicedToArray(_ref, 2),
key = _ref2[0],
value = _ref2[1];
return callback(key, value);
});
}
return obj;
};
/** to createEvent */
function triggerNative(el, event, data) {
var e = document.createEvent('HTMLEvents');
if (typeof data !== 'undefined') {
e.initCustomEvent(event, true, true, data);
} else {
e.initEvent(event, true, false);
}
el.dispatchEvent(e);
}
/** Credit to https://github.com/jonschlinkert/shallow-clone MIT */
var clone = function clone(val) {
if (is.isElement(val)) {
return val;
} else if (is.isArray(val)) {
return val.slice();
} else if (is.isDate(val)) {
return new val.constructor(Number(val));
} else if (is.isMap(val)) {
return new Map(val);
} else if (is.isSet(val)) {
return new Set(val);
} else if (is.isSymbol(val)) {
return Symbol.prototype.valueOf ? Object(Symbol.prototype.valueOf.call(val)) : {};
} else if (is.isRegexp(val)) {
var re = new val.constructor(val.source, /\w+$/.exec(val));
re.lastIndex = val.lastIndex;
return re;
} else if (is.isError(val)) {
return Object.create(val);
} else if (is.isPlainObject(val)) {
return Object.assign({}, val);
}
return val;
};
/** Credit to https://github.com/jonschlinkert/clone-deep MIT */
var deepClone = function deepClone(val) {
if (is.isPlainObject(val)) {
return deepCloneObject(val);
} else if (is.isArray(val)) {
return deepCloneArray(val);
}
return clone(val);
};
var deepCloneObject = function deepCloneObject(obj) {
if (is.isPlainObject(obj)) {
var res = new obj.constructor();
for (var key in obj) {
// eslint-disable-line
res[key] = deepClone(obj[key]);
}
return res;
}
return obj;
};
var deepCloneArray = function deepCloneArray(arr) {
var res = new arr.constructor(arr.length);
for (var i = 0; i < arr.length; i++) {
res[i] = deepClone(arr[i]);
}
return res;
};
var merge = function merge(target) {
for (var _len = arguments.length, sources = new Array(_len > 1 ? _len - 1 : 0), _key = 1; _key < _len; _key++) {
sources[_key - 1] = arguments[_key];
}
sources.forEach(function (src) {
for (var prop in src) {
// eslint-disable-line
target[prop] = src[prop];
}
});
return target;
};
function deepMergeTwo(target, source) {
var sourceIsArray = is.isArray(source);
var targetIsArray = is.isArray(target);
if (is.isUndefined(source)) {
return target;
}
if (sourceIsArray !== targetIsArray) {
return clone(source);
} else if (sourceIsArray) {
return clone(source);
} else if (is.isPlainObject(target) && is.isPlainObject(source)) {
Object.keys(source).forEach(function (key) {
target[key] = deepMergeTwo(target[key], source[key]);
});
return target;
}
return clone(source);
}
var deepMerge = function deepMerge() {
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
return args.filter(is.isObject).reduce(deepMergeTwo, {});
};
var curry = function curry(fn) {
var args = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : [];
return function () {
var currylen = fn.currylen || fn.length;
for (var _len3 = arguments.length, subArgs = new Array(_len3), _key3 = 0; _key3 < _len3; _key3++) {
subArgs[_key3] = arguments[_key3];
}
var collect = args.concat(subArgs);
if (collect.length >= currylen) {
return fn.apply(void 0, _toConsumableArray(collect));
}
return curry(fn, collect);
};
};
var curryWith = function curryWith(fn, enSureFunction) {
var args = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : [];
return function () {
for (var _len4 = arguments.length, subArgs = new Array(_len4), _key4 = 0; _key4 < _len4; _key4++) {
subArgs[_key4] = arguments[_key4];
}
var index = subArgs.findIndex(enSureFunction);
if (index >= 0) {
var _collect = args.concat.apply(args, _toConsumableArray(subArgs.slice(0, index + 1)));
return fn.apply(void 0, _toConsumableArray(_collect));
}
var collect = args.concat.apply(args, subArgs);
return curryWith(fn, enSureFunction, collect);
};
};
var compose = function compose() {
for (var _len5 = arguments.length, fn = new Array(_len5), _key5 = 0; _key5 < _len5; _key5++) {
fn[_key5] = arguments[_key5];
}
var callback = function callback() {
for (var _len6 = arguments.length, args = new Array(_len6), _key6 = 0; _key6 < _len6; _key6++) {
args[_key6] = arguments[_key6];
}
return fn.reduceRight(function (r, i, index) {
if (Array.isArray(r) && index === fn.length - 1) {
return i.apply(void 0, _toConsumableArray(r));
}
return i(r);
}, args);
};
callback.currylen = fn[fn.curylen || fn.length - 1].length;
return callback;
};
var MAX_UID = 1000000;
var getUID = function getUID(prefix) {
do {
// eslint-disable-next-line no-bitwise
prefix += ~~(Math.random() * MAX_UID); // "~~" acts like a faster Math.floor() here
} while (document.getElementById(prefix));
return prefix;
};
var range = function range(v) {
return Array.from({
length: v
}, function (v, i) {
return i;
});
};
var reflow = function reflow(element) {
return element.offsetHeight;
};
var arrayEqual = function arrayEqual(a, b) {
if (a === b) {
return true;
}
if (typeof a === 'undefined' || typeof b === 'undefined') {
return false;
}
if (a.length !== b.length) {
return false;
}
for (var i = 0; i < a.length; ++i) {
if (a[i] !== b[i]) {
return false;
}
}
return true;
};
var objectEqual = function objectEqual(a, b) {
var aProps = Object.getOwnPropertyNames(a);
var bProps = Object.getOwnPropertyNames(b);
if (aProps.length !== bProps.length) {
return false;
}
for (var i = 0; i < aProps.length; i++) {
var prop = aProps[i];
if (is.isArray(a[prop]) && is.isArray(b[prop])) {
if (!arrayEqual(a[prop], b[prop])) {
return false;
}
} else if (is.isObject(a[prop]) && is.isObject(b[prop])) {
if (!objectEqual(a[prop], b[prop])) {
return false;
}
} else if (a[prop] !== b[prop]) {
return false;
}
}
return true;
};
var arrayDiff = function arrayDiff(a, b) {
return a.filter(function (n) {
return b.indexOf(n) < 0;
});
};
var arrayIntersect = function arrayIntersect(a, b) {
var t;
if (b.length > a.length) {
t = b;
b = a;
a = t;
}
return a.filter(function (n) {
return b.indexOf(n) !== -1;
});
};
var convertPercentageToFloat = function convertPercentageToFloat(n) {
return parseFloat(n.slice(0, -1) / 100, 10);
};
var convertFloatToPercentage = function convertFloatToPercentage(n) {
if (n < 0) {
n = 0;
} else if (n > 1) {
n = 1;
}
return "".concat(parseFloat(n).toFixed(4) * 100, "%");
};
var convertMatrixToArray = function convertMatrixToArray(value) {
if (value && value.substr(0, 6) === 'matrix') {
return value.replace(/^.*\((.*)\)$/g, '$1').replace(/px/g, '').split(/, +/);
}
return false;
};
var getTime = function getTime() {
if (typeof window.performance !== 'undefined' && window.performance.now) {
return window.performance.now();
}
return Date.now();
};
var camelize = function camelize(word) {
var first = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
word = word.replace(/[_.\- ]+(\w|$)/g, function (m, p1) {
return p1.toUpperCase();
});
if (first) {
word = word.substring(0, 1).toUpperCase() + word.substring(1);
}
return word;
};
var dasherize = function dasherize(word) {
return word.replace(/([a-z\d])([A-Z])/g, '$1-$2').toLowerCase();
};
/* Credit to https://github.com/jonschlinkert/get-value MIT */
var getValueByPath = function getValueByPath(obj, path) {
if (Object(obj) !== obj || typeof path === 'undefined') {
return obj;
}
if (path in obj) {
return obj[path];
}
var segs = path.split('.');
var length = segs.length;
if (!length) {
return undefined;
}
var i = -1;
while (obj && ++i < length) {
var key = segs[i];
while (key[key.length - 1] === '\\') {
key = "".concat(key.slice(0, -1), ".").concat(segs[++i]);
}
obj = obj[key];
}
return obj;
};
/* Throttle execution of a function.
* Especially useful for rate limiting execution of
* handlers on events like resize and scroll. */
function throttle(func, delay) {
var _this = this;
var running = false;
function resetRunning() {
running = false;
}
if (typeof delay !== 'undefined' || delay !== null) {
return function () {
var that = _this;
if (running) {
return;
}
running = true;
for (var _len7 = arguments.length, args = new Array(_len7), _key7 = 0; _key7 < _len7; _key7++) {
args[_key7] = arguments[_key7];
}
func.apply(that, args);
window.setTimeout(resetRunning, delay);
};
}
return function () {
for (var _len8 = arguments.length, args = new Array(_len8), _key8 = 0; _key8 < _len8; _key8++) {
args[_key8] = arguments[_key8];
}
var that = _this;
if (running) {
return;
}
running = true;
window.requestAnimationFrame(function () {
func.apply(that, args);
resetRunning();
});
};
}
/* Debounce execution of a function.
* Debouncing, unlike throttling, guarantees that a function
* is only executed a single time at the very end. */
function debounce(func) {
var _this2 = this;
var delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 100;
var timer;
return function () {
for (var _len9 = arguments.length, args = new Array(_len9), _key9 = 0; _key9 < _len9; _key9++) {
args[_key9] = arguments[_key9];
}
var that = _this2;
if (timer) {
clearTimeout(timer);
timer = null;
}
timer = setTimeout(function () {
func.apply(that, args);
}, delay);
};
}
function fromPairs(arr) {
return arr.reduce(function (r, _ref3) {
var _ref4 = _slicedToArray(_ref3, 2),
k = _ref4[0],
v = _ref4[1];
return _objectSpread({}, r, _defineProperty({}, k, v));
}, {});
}
var SvgElement = function SvgElement(tag, attrs) {
var el = document.createElementNS('http://www.w3.org/2000/svg', tag);
if (!attrs) {
return el;
}
for (var key in attrs) {
if (!Object.hasOwnProperty.call(attrs, key)) {
continue;
}
el.setAttribute(key, attrs[key]);
}
return el;
};
function parseDataOptions(dataset) {
return Object.entries(dataset).reduce(function (result, _ref5) {
var _ref6 = _slicedToArray(_ref5, 2),
k = _ref6[0],
v = _ref6[1];
try {
var content = JSON.parse("{\"data\": ".concat(v.replace(/'/g, '"'), "}")).data;
return _objectSpread({}, result, _defineProperty({}, k, content));
} catch (err) {
return _objectSpread({}, result, _defineProperty({}, k, v));
}
}, {});
}
exports.nub = nub;
exports.each = each;
exports.triggerNative = triggerNative;
exports.clone = clone;
exports.deepClone = deepClone;
exports.deepCloneObject = deepCloneObject;
exports.deepCloneArray = deepCloneArray;
exports.merge = merge;
exports.deepMerge = deepMerge;
exports.curry = curry;
exports.curryWith = curryWith;
exports.compose = compose;
exports.getUID = getUID;
exports.range = range;
exports.reflow = reflow;
exports.arrayEqual = arrayEqual;
exports.objectEqual = objectEqual;
exports.arrayDiff = arrayDiff;
exports.arrayIntersect = arrayIntersect;
exports.convertPercentageToFloat = convertPercentageToFloat;
exports.convertFloatToPercentage = convertFloatToPercentage;
exports.convertMatrixToArray = convertMatrixToArray;
exports.getTime = getTime;
exports.camelize = camelize;
exports.dasherize = dasherize;
exports.getValueByPath = getValueByPath;
exports.throttle = throttle;
exports.debounce = debounce;
exports.fromPairs = fromPairs;
exports.SvgElement = SvgElement;
exports.parseDataOptions = parseDataOptions;
Object.defineProperty(exports, '__esModule', { value: true });
})));
undefined
/*!
* @pluginjs/utils v0.7.8 (https://pluginjs.com)
* @pluginjs/utils v0.7.9 (https://pluginjs.com)
* Copyright 2019 Creation Studio Limited
* Released under the GPL-3.0 License.
*/
!function(r,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@pluginjs/is")):"function"==typeof define&&define.amd?define(["exports","@pluginjs/is"],e):e(r["@pluginjs/utils"]={},r["@pluginjs/is"])}(this,function(r,e){"use strict";function n(r,e,n){return e in r?Object.defineProperty(r,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):r[e]=n,r}function t(r){for(var e=1;e<arguments.length;e++){var t=null!=arguments[e]?arguments[e]:{},i=Object.keys(t);"function"==typeof Object.getOwnPropertySymbols&&(i=i.concat(Object.getOwnPropertySymbols(t).filter(function(r){return Object.getOwnPropertyDescriptor(t,r).enumerable}))),i.forEach(function(e){n(r,e,t[e])})}return r}function i(r,e){return function(r){if(Array.isArray(r))return r}(r)||function(r,e){var n=[],t=!0,i=!1,o=void 0;try{for(var u,a=r[Symbol.iterator]();!(t=(u=a.next()).done)&&(n.push(u.value),!e||n.length!==e);t=!0);}catch(r){i=!0,o=r}finally{try{t||null==a.return||a.return()}finally{if(i)throw o}}return n}(r,e)||function(){throw new TypeError("Invalid attempt to destructure non-iterable instance")}()}function o(r){return function(r){if(Array.isArray(r)){for(var e=0,n=new Array(r.length);e<r.length;e++)n[e]=r[e];return n}}(r)||function(r){if(Symbol.iterator in Object(r)||"[object Arguments]"===Object.prototype.toString.call(r))return Array.from(r)}(r)||function(){throw new TypeError("Invalid attempt to spread non-iterable instance")}()}var u=function(r){if(e.isElement(r))return r;if(e.isArray(r))return r.slice();if(e.isDate(r))return new r.constructor(Number(r));if(e.isMap(r))return new Map(r);if(e.isSet(r))return new Set(r);if(e.isSymbol(r))return Symbol.prototype.valueOf?Object(Symbol.prototype.valueOf.call(r)):{};if(e.isRegexp(r)){var n=new r.constructor(r.source,/\w+$/.exec(r));return n.lastIndex=r.lastIndex,n}return e.isError(r)?Object.create(r):e.isPlainObject(r)?Object.assign({},r):r},a=function(r){return e.isPlainObject(r)?c(r):e.isArray(r)?f(r):u(r)},c=function(r){if(e.isPlainObject(r)){var n=new r.constructor;for(var t in r)n[t]=a(r[t]);return n}return r},f=function(r){for(var e=new r.constructor(r.length),n=0;n<r.length;n++)e[n]=a(r[n]);return e};function l(r,n){var t=e.isArray(n),i=e.isArray(r);return e.isUndefined(n)?r:t!==i?u(n):t?u(n):e.isPlainObject(r)&&e.isPlainObject(n)?(Object.keys(n).forEach(function(e){r[e]=l(r[e],n[e])}),r):u(n)}var s=function(r,e){if(r===e)return!0;if(void 0===r||void 0===e)return!1;if(r.length!==e.length)return!1;for(var n=0;n<r.length;++n)if(r[n]!==e[n])return!1;return!0};r.nub=function(r){return Array.from(new Set(r))},r.each=function(r,n){if(e.isArray(r))for(var t=0,o=r.length;t<o;t++)n(r[t],t);else Object.entries(r).map(function(r){var e=i(r,2),t=e[0],o=e[1];return n(t,o)});return r},r.triggerNative=function(r,e,n){var t=document.createEvent("HTMLEvents");void 0!==n?t.initCustomEvent(e,!0,!0,n):t.initEvent(e,!0,!1),r.dispatchEvent(t)},r.clone=u,r.deepClone=a,r.deepCloneObject=c,r.deepCloneArray=f,r.merge=function(r){for(var e=arguments.length,n=new Array(e>1?e-1:0),t=1;t<e;t++)n[t-1]=arguments[t];return n.forEach(function(e){for(var n in e)r[n]=e[n]}),r},r.deepMerge=function(){for(var r=arguments.length,n=new Array(r),t=0;t<r;t++)n[t]=arguments[t];return n.filter(e.isObject).reduce(l,{})},r.curry=function r(e){var n=arguments.length>1&&void 0!==arguments[1]?arguments[1]:[];return function(){for(var t=e.currylen||e.length,i=arguments.length,u=new Array(i),a=0;a<i;a++)u[a]=arguments[a];var c=n.concat(u);return c.length>=t?e.apply(void 0,o(c)):r(e,c)}},r.curryWith=function r(e,n){var t=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[];return function(){for(var i=arguments.length,u=new Array(i),a=0;a<i;a++)u[a]=arguments[a];var c=u.findIndex(n);if(c>=0){var f=t.concat.apply(t,o(u.slice(0,c+1)));return e.apply(void 0,o(f))}var l=t.concat.apply(t,u);return r(e,n,l)}},r.compose=function(){for(var r=arguments.length,e=new Array(r),n=0;n<r;n++)e[n]=arguments[n];var t=function(){for(var r=arguments.length,n=new Array(r),t=0;t<r;t++)n[t]=arguments[t];return e.reduceRight(function(r,n,t){return Array.isArray(r)&&t===e.length-1?n.apply(void 0,o(r)):n(r)},n)};return t.currylen=e[e.curylen||e.length-1].length,t},r.getUID=function(r){do{r+=~~(1e6*Math.random())}while(document.getElementById(r));return r},r.range=function(r){return Array.from({length:r},function(r,e){return e})},r.reflow=function(r){return r.offsetHeight},r.arrayEqual=s,r.objectEqual=function r(n,t){var i=Object.getOwnPropertyNames(n),o=Object.getOwnPropertyNames(t);if(i.length!==o.length)return!1;for(var u=0;u<i.length;u++){var a=i[u];if(e.isArray(n[a])&&e.isArray(t[a])){if(!s(n[a],t[a]))return!1}else if(e.isObject(n[a])&&e.isObject(t[a])){if(!r(n[a],t[a]))return!1}else if(n[a]!==t[a])return!1}return!0},r.arrayDiff=function(r,e){return r.filter(function(r){return e.indexOf(r)<0})},r.arrayIntersect=function(r,e){var n;return e.length>r.length&&(n=e,e=r,r=n),r.filter(function(r){return-1!==e.indexOf(r)})},r.convertPercentageToFloat=function(r){return parseFloat(r.slice(0,-1)/100,10)},r.convertFloatToPercentage=function(r){return r<0?r=0:r>1&&(r=1),"".concat(100*parseFloat(r).toFixed(4),"%")},r.convertMatrixToArray=function(r){return!(!r||"matrix"!==r.substr(0,6))&&r.replace(/^.*\((.*)\)$/g,"$1").replace(/px/g,"").split(/, +/)},r.getTime=function(){return void 0!==window.performance&&window.performance.now?window.performance.now():Date.now()},r.camelize=function(r){var e=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];return r=r.replace(/[_.\- ]+(\w|$)/g,function(r,e){return e.toUpperCase()}),e&&(r=r.substring(0,1).toUpperCase()+r.substring(1)),r},r.dasherize=function(r){return r.replace(/([a-z\d])([A-Z])/g,"$1-$2").toLowerCase()},r.getValueByPath=function(r,e){if(Object(r)!==r||void 0===e)return r;if(e in r)return r[e];var n=e.split("."),t=n.length;if(t){for(var i=-1;r&&++i<t;){for(var o=n[i];"\\"===o[o.length-1];)o="".concat(o.slice(0,-1),".").concat(n[++i]);r=r[o]}return r}},r.throttle=function(r,e){var n=this,t=!1;function i(){t=!1}return void 0!==e||null!==e?function(){var o=n;if(!t){t=!0;for(var u=arguments.length,a=new Array(u),c=0;c<u;c++)a[c]=arguments[c];r.apply(o,a),window.setTimeout(i,e)}}:function(){for(var e=arguments.length,o=new Array(e),u=0;u<e;u++)o[u]=arguments[u];var a=n;t||(t=!0,window.requestAnimationFrame(function(){r.apply(a,o),i()}))}},r.debounce=function(r){var e,n=this,t=arguments.length>1&&void 0!==arguments[1]?arguments[1]:100;return function(){for(var i=arguments.length,o=new Array(i),u=0;u<i;u++)o[u]=arguments[u];var a=n;e&&(clearTimeout(e),e=null),e=setTimeout(function(){r.apply(a,o)},t)}},r.fromPairs=function(r){return r.reduce(function(r,e){var o=i(e,2);return t({},r,n({},o[0],o[1]))},{})},r.SvgElement=function(r,e){var n=document.createElementNS("http://www.w3.org/2000/svg",r);if(!e)return n;for(var t in e)Object.hasOwnProperty.call(e,t)&&n.setAttribute(t,e[t]);return n},r.parseDataOptions=function(r){return Object.entries(r).reduce(function(r,e){var o=i(e,2),u=o[0],a=o[1];try{return t({},r,n({},u,JSON.parse('{"data": '.concat(a.replace(/'/g,'"'),"}")).data))}catch(e){return t({},r,n({},u,a))}},{})},Object.defineProperty(r,"__esModule",{value:!0})});
undefined

@@ -14,3 +14,3 @@ {

},
"version": "0.7.8",
"version": "0.7.9",
"category": "utils",

@@ -37,8 +37,8 @@ "main": "dist/utils.common.js",

"dependencies": {
"@pluginjs/is": "^0.7.7"
"@pluginjs/is": "^0.7.8"
},
"devDependencies": {
"@babel/core": "^7.4.0",
"@pluginjs/browserslist-config": "^1.2.4",
"@pluginjs/cli": "^0.7.7",
"@babel/core": "^7.4.4",
"@pluginjs/browserslist-config": "^1.2.5",
"@pluginjs/cli": "^0.7.8",
"babel-jest": "*",

@@ -68,4 +68,3 @@ "jest": "*",

"extends @pluginjs/browserslist-config"
],
"gitHead": "290fd3939aca081ceab305e0d4157ee0d52b45bf"
]
}
SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc