button.cjs.map 4.5 KB

1
  1. {"version":3,"file":"button.cjs","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":"kLACMA,EAAe,SCAfC,EAAkB,SCsBlBC,EAAiB,IAAIC,EAAAA,YAAY,KAAKH,CAAY,KAGlDI,EAAqBC,GACzBC,KAAoBD,EAASJ,CAAe,EAGxCM,EAAsBF,GAAqB,IAAIG,EAAOH,CAAO,EAKnE,MAAqBG,UAAeC,EAAAA,aAAc,CAChD,OAAO,SAAWP,EAClB,OAAO,KAAOK,EACd,OAAO,YAAcH,EAMrB,YAAYM,EAA0B,CACpC,MAAMA,CAAM,EAGN,KAAA,CAAE,QAAAL,GAAY,KAGf,KAAA,SAAWM,KAASN,EAASO,EAAAA,WAAW,EAC7CC,EAAA,GAAaR,EAASS,KAAa,OAAO,CAAC,CAAC,KAAK,QAAQ,CAAC,EAG1D,KAAK,sBAAsB,EAAI,CAAA,CAIjC,IAAI,MAAO,CACF,OAAAb,CAAA,CAMT,OAAUc,GAAkC,CACtCA,KAAK,eAAe,EAElB,KAAA,CAAE,QAAAV,EAAS,SAAAW,CAAA,EAAa,KAE1B,GAAAC,EAAAA,WAAWZ,CAAO,EAAG,QACVW,EAAWE,EAAAA,GAAcC,EAAA,IACjCd,EAASO,aAAW,EAC3BC,EAAAA,GAAaR,EAASS,EAAAA,GAAaE,EAAW,QAAU,MAAM,EACzD,KAAA,SAAWL,KAASN,EAASO,EAAAA,WAAW,CAC/C,EAKA,sBAAyBQ,GAAkB,EAC1BA,EAAMC,EAAAA,EAAcC,EAAA,GAC5B,KAAK,QAASC,EAAAA,GAAiB,KAAK,MAAM,CACnD,EAGA,SAAU,CACR,KAAK,sBAAsB,EAC3B,MAAM,QAAQ,CAAA,CAElB"}