button.mjs.map 4.5 KB

1
  1. {"version":3,"file":"button.mjs","sources":["../../src/strings/buttonString.ts","../../src/strings/buttonComponent.ts","../../src/components/button.ts"],"sourcesContent":["/** @type {string} */\nconst buttonString = \"button\";\nexport default buttonString;\n","/** @type {string} */\nconst buttonComponent = \"Button\";\nexport default buttonComponent;\n","/* Native JavaScript for Bootstrap 5 | Button\n---------------------------------------------*/\nimport {\n addClass,\n ariaPressed,\n getInstance,\n hasClass,\n mouseclickEvent,\n PointerEvent,\n removeClass,\n setAttribute,\n} from \"@thednp/shorty\";\n\nimport { addListener, removeListener } from \"@thednp/event-listener\";\n\nimport activeClass from \"~/strings/activeClass\";\nimport dataBsToggle from \"~/strings/dataBsToggle\";\nimport buttonString from \"~/strings/buttonString\";\nimport buttonComponent from \"~/strings/buttonComponent\";\nimport BaseComponent from \"./base-component\";\nimport isDisabled from \"~/util/isDisabled\";\n\n// BUTTON PRIVATE GC\n// =================\nconst buttonSelector = `[${dataBsToggle}=\"${buttonString}\"]`;\n\n/**\n * Static method which returns an existing `Button` instance associated\n * to a target `Element`.\n */\nconst getButtonInstance = (element: Element) =>\n getInstance<Button>(element, buttonComponent);\n\n/** A `Button` initialization callback. */\nconst buttonInitCallback = (element: Element) => new Button(element);\n\n// BUTTON DEFINITION\n// =================\n/** Creates a new `Button` instance. */\nexport default class Button extends BaseComponent {\n static selector = buttonSelector;\n static init = buttonInitCallback;\n static getInstance = getButtonInstance;\n\n declare isActive: boolean;\n declare element: HTMLElement;\n\n /**\n * @param target usually a `.btn` element\n */\n constructor(target: Element | string) {\n super(target);\n\n // initialization element\n const { element } = this;\n\n // set initial state\n this.isActive = hasClass(element, activeClass);\n setAttribute(element, ariaPressed, String(!!this.isActive));\n\n // add event listener\n this._toggleEventListeners(true);\n }\n\n /**\n * Returns component name string.\n */\n get name() {\n return buttonComponent;\n }\n\n // BUTTON PUBLIC METHODS\n // =====================\n /**\n * Toggles the state of the target button.\n *\n * @param e usually `click` Event object\n */\n toggle = (e?: PointerEvent<HTMLElement>) => {\n if (e) e.preventDefault();\n\n const { element, isActive } = this;\n // istanbul ignore if @preserve\n if (isDisabled(element)) return;\n const action = isActive ? removeClass : addClass;\n action(element, activeClass);\n setAttribute(element, ariaPressed, isActive ? \"false\" : \"true\");\n this.isActive = hasClass(element, activeClass);\n };\n\n // BUTTON PRIVATE METHOD\n // =====================\n /**\n * Toggles on/off the `click` event listener.\n *\n * @param add when `true`, event listener is added\n */\n _toggleEventListeners = (add?: boolean) => {\n const action = add ? addListener : removeListener;\n action(this.element, mouseclickEvent, this.toggle);\n };\n\n /** Removes the `Button` component from the target element. */\n dispose() {\n this._toggleEventListeners();\n super.dispose();\n }\n}\n"],"names":["buttonString","buttonComponent","buttonSelector","dataBsToggle","getButtonInstance","element","getInstance","buttonInitCallback","Button","BaseComponent","target","hasClass","activeClass","setAttribute","ariaPressed","e","isActive","isDisabled","removeClass","addClass","add","addListener","removeListener","mouseclickEvent"],"mappings":";;;;AACA,MAAMA,IAAe,UCAfC,IAAkB,UCsBlBC,IAAiB,IAAIC,CAAY,KAAKH,CAAY,MAGlDI,IAAoB,CAACC,MACzBC,EAAoBD,GAASJ,CAAe,GAGxCM,IAAqB,CAACF,MAAqB,IAAIG,EAAOH,CAAO;AAKnE,MAAqBG,UAAeC,EAAc;AAAA,EAChD,OAAO,WAAWP;AAAA,EAClB,OAAO,OAAOK;AAAA,EACd,OAAO,cAAcH;AAAA,EAMrB,YAAYM,GAA0B;AACpC,UAAMA,CAAM;AAGN,UAAA,EAAE,SAAAL,MAAY;AAGf,SAAA,WAAWM,EAASN,GAASO,CAAW,GAC7CC,EAAaR,GAASS,GAAa,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,GAG1D,KAAK,sBAAsB,EAAI;AAAA,EAAA;AAAA,EAIjC,IAAI,OAAO;AACF,WAAAb;AAAA,EAAA;AAAA,EAMT,SAAS,CAACc,MAAkC;AACtC,IAAAA,OAAK,eAAe;AAElB,UAAA,EAAE,SAAAV,GAAS,UAAAW,EAAA,IAAa;AAE1B,QAAAC,EAAWZ,CAAO,EAAG;AAEzB,KADeW,IAAWE,IAAcC,GACjCd,GAASO,CAAW,GAC3BC,EAAaR,GAASS,GAAaE,IAAW,UAAU,MAAM,GACzD,KAAA,WAAWL,EAASN,GAASO,CAAW;AAAA,EAC/C;AAAA,EAKA,wBAAwB,CAACQ,MAAkB;AAEzC,KADeA,IAAMC,IAAcC,GAC5B,KAAK,SAASC,GAAiB,KAAK,MAAM;AAAA,EACnD;AAAA,EAGA,UAAU;AACR,SAAK,sBAAsB,GAC3B,MAAM,QAAQ;AAAA,EAAA;AAElB;"}