vxe-table-select-area
Version:
一个基于 vxe-table 的可区域选中复制、粘贴的组件
175 lines (160 loc) • 3.83 kB
JavaScript
"use strict";
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.getChildCompsByName = getChildCompsByName;
exports.getParentCompByName = getParentCompByName;
exports.getValByUnit = getValByUnit;
exports.isBoolean = isBoolean;
exports.isDefined = isDefined;
exports.isEmptyArray = isEmptyArray;
exports.isEmptyValue = isEmptyValue;
exports.isFalse = isFalse;
exports.isFunction = isFunction;
exports.isNumber = isNumber;
exports.isObject = isObject;
exports.isTrue = isTrue;
exports.scrollTo = scrollTo;
function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
// import { createI18N } from "../locale/index";
/*
* @createLocale
* @desc create namespace by comp name
* @param {string} compName
* @return {function}
*/
// export function createLocale(compName) {
// return createI18N(compName);
// }
/*
* @isEmptyArray
* @desc is empty array
* @param {array} arr
*/
function isEmptyArray(arr) {
return !(Array.isArray(arr) && arr.length > 0);
}
/*
* @isEmptyValue
* @desc is empty value
* @param {array} arr
*/
function isEmptyValue(value) {
return !(value !== '' && value !== undefined && value !== null);
}
/*
* @isDefined
* @desc is defined
* @param {any} val
*/
function isDefined(val) {
return val !== undefined && val !== null;
}
/*
* @isObject
* @desc is object
* @param {any} val
*/
function isObject(val) {
return val !== null && _typeof(val) === 'object';
}
/*
* @isFunction
* @desc is function
* @param {any} val
*/
function isFunction(val) {
return typeof val === 'function';
}
/*
* @isBoolean
* @desc is boolean
* @param {any} val
*/
function isBoolean(val) {
return typeof val === 'boolean';
}
/*
* @isNumber
* @desc is number
* @param {any} val
*/
function isNumber(val) {
return typeof val === 'number';
}
/*
* @isTrue
* @desc is equal true
* @param {any} val
*/
function isTrue(val) {
return isBoolean(val) && val;
}
/*
* @isFalse
* @desc is equal false
* @param {any} val
*/
function isFalse(val) {
return isBoolean(val) && !val;
}
/*
* @getValByUnit
* @desc get value by unit
* @param {number|string} width - 宽度
*/
function getValByUnit(width) {
return typeof width === 'number' ? width + 'px' : width;
}
/*
* @getParentCompByName
* @desc get parent comp by name
* @param {object} context
* @param {string} name - parent comp name
*/
function getParentCompByName(context, name) {
var parent = context.$parent;
while (parent) {
if (parent.$options.name !== name) {
parent = parent.$parent;
} else {
return parent;
}
}
return null;
}
/*
* @getChildCompsByName
* @desc get child comps by name
* @param {object} context
* @param {string} name - child comp name
*/
function getChildCompsByName(context, name) {
var result = [];
var childrens = context.$children;
while (childrens && childrens.length > 0) {
childrens.forEach(function (child) {
childrens = child.$children ? child.$children : null;
if (child.$options.name === name) {
result.push(child);
}
});
}
return result;
}
/*
* @scrollTo
* @desc element scrollTo https://developer.mozilla.org/zh-CN/docs/Web/API/Element/scrollTo
* @param {element} el - element
* @param {object} option - scroll option
*/
function scrollTo(el, option) {
if (isFunction(el.scrollTo)) {
el.scrollTo(option);
} else {
var top = option.top,
left = option.left;
el.scrollTop = top;
el.scrollLeft = left;
}
}