zmp-vue
Version:
Build full featured iOS & Android apps using ZMP & Vue
120 lines (100 loc) • 3.02 kB
JavaScript
;
exports.__esModule = true;
exports.noUndefinedProps = noUndefinedProps;
exports.isStringProp = isStringProp;
exports.isObject = isObject;
exports.now = now;
exports.extend = extend;
exports.classNames = classNames;
exports.unsetRouterIds = unsetRouterIds;
exports.getRouterId = getRouterId;
exports.getComponentId = getComponentId;
function noUndefinedProps(obj) {
var o = {};
Object.keys(obj).forEach(function (key) {
if (typeof obj[key] !== 'undefined') o[key] = obj[key];
});
return o;
}
function isStringProp(val) {
return typeof val === 'string' && val !== '';
}
function isObject(o) {
return typeof o === 'object' && o !== null && o.constructor && o.constructor === Object;
}
function now() {
return Date.now();
}
function extend() {
var deep = true;
var to;
var from;
for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
args[_key] = arguments[_key];
}
if (typeof args[0] === 'boolean') {
deep = args[0];
to = args[1];
args.splice(0, 2);
from = args;
} else {
to = args[0];
args.splice(0, 1);
from = args;
}
for (var i = 0; i < from.length; i += 1) {
var nextSource = args[i];
if (nextSource !== undefined && nextSource !== null) {
var keysArray = Object.keys(Object(nextSource));
for (var nextIndex = 0, len = keysArray.length; nextIndex < len; nextIndex += 1) {
var nextKey = keysArray[nextIndex];
var desc = Object.getOwnPropertyDescriptor(nextSource, nextKey);
if (desc !== undefined && desc.enumerable) {
if (!deep) {
to[nextKey] = nextSource[nextKey];
} else if (isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
extend(to[nextKey], nextSource[nextKey]);
} else if (!isObject(to[nextKey]) && isObject(nextSource[nextKey])) {
to[nextKey] = {};
extend(to[nextKey], nextSource[nextKey]);
} else {
to[nextKey] = nextSource[nextKey];
}
}
}
}
}
return to;
}
function classNames() {
var classes = [];
for (var _len2 = arguments.length, args = new Array(_len2), _key2 = 0; _key2 < _len2; _key2++) {
args[_key2] = arguments[_key2];
}
args.forEach(function (arg) {
if (typeof arg === 'object' && arg.constructor === Object) {
Object.keys(arg).forEach(function (key) {
if (arg[key]) classes.push(key);
});
} else if (arg) classes.push(arg);
});
var uniqueClasses = [];
classes.forEach(function (c) {
if (uniqueClasses.indexOf(c) < 0) uniqueClasses.push(c);
});
return uniqueClasses.join(' ');
}
var routerIdCounter = 0;
var routerComponentIdCounter = 0;
function unsetRouterIds() {
routerIdCounter = 0;
routerComponentIdCounter = 0;
}
function getRouterId() {
routerIdCounter += 1;
return now() + "_" + routerIdCounter;
}
function getComponentId() {
routerComponentIdCounter += 1;
return now() + "_" + routerComponentIdCounter;
}