UNPKG

jcore-ui

Version:

jcore-ui - components for building an interface

195 lines 5.58 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.JDom = exports.$ = void 0; const createElement_1 = __importDefault(require("../utils/createElement")); function $(element) { const dom = new JDom(element); if (dom.element) { return dom; } return undefined; } exports.$ = $; ; class JDom { constructor(element) { if (typeof element === 'string') { if (element.indexOf('<') >= 0 && element.indexOf('>') >= 0) { this.element = [createElement_1.default(element)]; } else { this.element = Array.from(document.querySelectorAll(element)); } } else if (element instanceof HTMLElement) { this.element = [element]; } else if (element instanceof NodeList) { this.element = Array.from(element); } else if (Array.isArray(element)) { this.element = element; } else if (element instanceof JDom && element.get()) { this.element = [element.get()]; } } get(index = 0) { return this.element[index]; } getAll() { return this.element; } find(element) { if (typeof element !== 'string') { return element; } return new JDom(this.get().querySelectorAll(element)); } addClass(...classes) { this.each(el => { el.classList.add(...classes); }); return this; } removeClass(...classes) { this.each(el => { el.classList.remove(...classes); }); return this; } attr(attrs, value) { if (value === null) { if (typeof attrs === 'string') { this.each(el => { el.removeAttribute(attrs); }); } else if (Array.isArray(attrs)) { for (let i = 0; i < attrs.length; i++) { this.each(el => { el.removeAttribute(attrs[i]); }); } } } else { if (value === undefined) { if (typeof attrs === 'string') { return this.element[0].getAttribute(attrs); } else if (Array.isArray(attrs)) { const needAttrs = {}; for (let i = 0; i < attrs.length; i++) { needAttrs[attrs[i]] = this.element[0].getAttribute(attrs[i]); } return needAttrs; } else if (typeof attrs === 'object') { for (const key in attrs) { this.each(el => { el.setAttribute(key, attrs[key]); }); } } } else { if (typeof attrs === 'string') { this.each(el => { el.setAttribute(attrs, value); }); } else if (Array.isArray(attrs)) { for (let i = 0; i < attrs.length; i++) { this.each(el => { el.setAttribute(attrs[i], value); }); } } } } return this; } hasAttr(attrs) { return this.element[0].hasAttribute(attrs); } on(type, listener, options) { this.each(el => { el.addEventListener(type, listener, options); }); return this; } off(type, listener, options) { this.each(el => { el.removeEventListener(type, listener, options); }); return this; } closest(selector) { return new JDom(this.get().closest(selector)); } each(callbackfn) { this.element.forEach(callbackfn); return this; } toggleAttribute(attr) { this.each((el) => { el.toggleAttribute(attr); }); return this; } append(element) { this.get().appendChild(element); return this; } remove() { this.each((el) => { el.remove(); }); return this; } set text(text) { this.each((el) => { el.innerText = text; }); } get text() { return this.get().innerText; } set html(html) { this.each((el) => { el.innerHTML = html; }); } get html() { return this.get().innerHTML; } set value(val) { this.each((el) => { if (el instanceof HTMLInputElement) { el.value = val; } }); } get value() { return this.get().value; } get dataset() { return this.get().dataset; } get scrollHeight() { return this.get().scrollHeight; } get style() { return this.get().style; } get classList() { return this.get().classList; } } exports.JDom = JDom; JDom.fn = JDom.prototype; //# sourceMappingURL=JDom.js.map