UNPKG

orxapi.tools.toggle

Version:

The TypeScript toggle tools library for orxapi

84 lines 4.3 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.isToggleTargetActivated = exports.getToggleTargetElement = exports.toggleDisabled = exports.toggleIcon = exports.toggleText = exports.toggleSwitch = exports.resetToggleLinks = exports.toggleLinks = exports.toggleLink = void 0; function toggleLink(element, opts) { var _a; const { closeClassName = "orx-toggle-closed", hiddenClassName = "orx-toggle-hidden", dataName = "toggleLink", } = opts || {}; const id = (_a = element.dataset[dataName]) !== null && _a !== void 0 ? _a : ""; const target = document.getElementById(id); element.classList.toggle(closeClassName, !(target === null || target === void 0 ? void 0 : target.classList.contains(hiddenClassName))); target === null || target === void 0 ? void 0 : target.classList.toggle(hiddenClassName); } exports.toggleLink = toggleLink; function toggleLinks(elementList, index, opts) { const { collapsible = false, closeClassName = "orx-toggle-closed", hiddenClassName = "orx-toggle-hidden", dataName = "toggleLinks" } = opts || {}; elementList.forEach((element, idx) => { var _a; const method = (idx === index) ? collapsible ? "toggle" : "remove" : "add"; element.classList[method](closeClassName); const id = (_a = element.dataset[dataName]) !== null && _a !== void 0 ? _a : ""; document.querySelector("#" + id).classList[method](hiddenClassName); }); } exports.toggleLinks = toggleLinks; function resetToggleLinks(elementList, opts) { const { closeClassName = "orx-toggle-closed", hiddenClassName = "orx-toggle-hidden", dataName = "toggleLinks" } = opts || {}; elementList.forEach((element) => { var _a; element.classList.remove(closeClassName); const id = (_a = element.dataset[dataName]) !== null && _a !== void 0 ? _a : ""; document.querySelector("#" + id).classList.remove(hiddenClassName); }); } exports.resetToggleLinks = resetToggleLinks; function toggleSwitch(element, opts) { var _a, _b; const { hiddenClassName = "orx-toggle-hidden", dataName = "toggleSwitch" } = opts || {}; const id = String(element.dataset[dataName]).split(","); (_a = document.getElementById(id[0])) === null || _a === void 0 ? void 0 : _a.classList.toggle(hiddenClassName); (_b = document.getElementById(id[1])) === null || _b === void 0 ? void 0 : _b.classList.toggle(hiddenClassName); } exports.toggleSwitch = toggleSwitch; function toggleText(element, opts) { var _a, _b; const { dataName = "toggleText" } = opts || {}; const newText = (_a = element.dataset[dataName]) !== null && _a !== void 0 ? _a : ""; const oldText = (_b = element.textContent) !== null && _b !== void 0 ? _b : ""; element.textContent = newText; element.dataset[dataName] = oldText; } exports.toggleText = toggleText; function toggleIcon(element, opts) { const { dataName = "toggleIcon" } = opts || {}; const newIcon = element.dataset.icon; const currentIcon = element.dataset[dataName]; element.dataset.icon = newIcon; element.dataset[dataName] = currentIcon; } exports.toggleIcon = toggleIcon; function toggleDisabled(element, opts) { const { dataName = "toggleDisabled" } = opts || {}; const target = element.dataset[dataName]; const elementList = document.querySelectorAll(target); elementList.forEach((elem) => { if (elem.getAttribute("disabled") === null || !elem.disabled) { elem.setAttribute("disabled", ""); } else { elem.removeAttribute("disabled"); } }); } exports.toggleDisabled = toggleDisabled; function getToggleTargetElement(element, dataName = "toggleLink") { var _a; const target = (_a = element.dataset[dataName]) !== null && _a !== void 0 ? _a : ""; return document.querySelector(target); } exports.getToggleTargetElement = getToggleTargetElement; function isToggleTargetActivated(element, toggleClassName = "orx-toggle-hidden") { const target = getToggleTargetElement(element); return target.classList.contains(toggleClassName); } exports.isToggleTargetActivated = isToggleTargetActivated; //# sourceMappingURL=toggle.js.map