UNPKG

heyui

Version:

A UI components Library.

135 lines (121 loc) 3 kB
import Utils from 'hey-utils'; const rclass = /[\t\r\n\f]/g; const rnotwhite = (/\S+/g); function getClass(elem) { return elem.getAttribute && elem.getAttribute("class") || ""; } export default Utils.extend({}, Utils, { addClass(elem, value) { let classes; let cur; let curValue; let clazz; let j; let finalValue; if (typeof value === "string" && value) { classes = value.match(rnotwhite) || []; curValue = getClass(elem); cur = elem.nodeType === 1 && (` ${curValue} `).replace(rclass, " "); if (cur) { j = 0; while ((clazz = classes[j++])) { if (cur.indexOf(` ${clazz} `) < 0) { cur += `${clazz} `; } } finalValue = cur.trim(); if (curValue !== finalValue) { elem.setAttribute("class", finalValue); } } } }, removeClass(elem, value) { let classes; let cur; let curValue; let clazz; let j; let finalValue; if (typeof value === "string" && value) { classes = value.match(rnotwhite) || []; curValue = getClass(elem); // This expression is here for better compressibility (see addClass) cur = elem.nodeType === 1 && (` ${curValue} `).replace(rclass, " "); if (cur) { j = 0; while ((clazz = classes[j++])) { while (cur.indexOf(` ${clazz} `) > -1) { cur = cur.replace(` ${clazz} `, ' '); } } finalValue = cur.trim(); if (curValue !== finalValue) { elem.setAttribute("class", finalValue); } } } return this; }, removeDom(elem) { if (elem.parentNode) { elem.parentNode.removeChild(elem); } }, hasClass(elem, selector) { let className; className = ` ${selector} `; if (elem.nodeType === 1 && (` ${getClass(elem)} `).replace(rclass, " ") .indexOf(className) > -1 ) { return true; } return false; }, initParam(param, paramFrom, array) { if (this.isArray(array) && this.isObject(param) && this.isObject(param)) { for (let a of array) { if (paramFrom[a]) param[a] = paramFrom[a]; } } return param; }, toggleValue(list, value) { if (!this.isArray(list)) return ; if (list.includes(value)) { list.splice(list.indexOf(value), 1); } else { list.push(value); } }, padLeft(str, size){ var s = "00000" + str; return s.substr(s.length-size); }, toggleValueByKey(list, key, value) { if (!this.isArray(list)) return ; let index = -1; for (let l of list) { if (this.isNull(l[key])) { continue; } index = list.indexOf(l); break; } if (index > -1) { list.splice(index, 1); } else { list.push(value); } }, numList(start, end, step){ let data = []; for(let i = start; i < end; i = i + step){ data.push(i); } return data; } });