orxapi.tools.toggle
Version:
The TypeScript toggle tools library for orxapi
84 lines • 4.3 kB
JavaScript
;
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