UNPKG

@stimulus-library/utilities

Version:

A library of useful controllers for Stimulus

34 lines (33 loc) 1.71 kB
import { camelCase } from "./strings"; import { BaseController } from "./base_controller"; export class EphemeralController extends BaseController { _cleanupSelf() { this.cleanup(this.el); } cleanup(element) { var _a, _b, _c; element.dataset.controller = ((_a = element.dataset.controller) === null || _a === void 0 ? void 0 : _a.replaceAll(new RegExp(`(\\s|^)${this.identifier}(\\s|$)`, "g"), "")) || ""; if (element.dataset.controller == "") { delete element.dataset.controller; } const substringIdentifierValueRegex = new RegExp(`(\\s|^)${this.identifier}\\..+?(\\s|$)`, "g"); element.dataset.target = ((_b = element.dataset.target) === null || _b === void 0 ? void 0 : _b.replaceAll(substringIdentifierValueRegex, "")) || ""; delete element.dataset[camelCase(`${this.identifier}-target`)]; if (element.dataset.target == "") { delete element.dataset.target; } element.dataset.action = ((_c = element.dataset.target) === null || _c === void 0 ? void 0 : _c.replaceAll(substringIdentifierValueRegex, "")) || ""; delete element.dataset[camelCase(`${this.identifier}-action`)]; if (element.dataset.action == "") { delete element.dataset.action; } const values = this.constructor.values; if (values) { Object.keys(values).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-value`)]); } const classes = this.constructor.classes; if (classes) { Object.keys(classes).forEach(val => delete element.dataset[camelCase(`${this.identifier}-${val}-class`)]); } } }