alert.mjs.map 5.8 KB

1
  1. {"version":3,"file":"alert.mjs","sources":["../../src/strings/alertString.ts","../../src/strings/alertComponent.ts","../../src/components/alert.ts"],"sourcesContent":["/** @type {string} */\nconst alertString = \"alert\";\nexport default alertString;\n","/** @type {string} */\nconst alertComponent = \"Alert\";\nexport default alertComponent;\n","/* Native JavaScript for Bootstrap 5 | Alert\n-------------------------------------------- */\nimport {\n createCustomEvent,\n dispatchEvent,\n emulateTransitionEnd,\n getInstance,\n hasClass,\n mouseclickEvent,\n PointerEvent,\n querySelector,\n removeClass,\n} from \"@thednp/shorty\";\n\nimport { addListener, removeListener } from \"@thednp/event-listener\";\n\nimport fadeClass from \"~/strings/fadeClass\";\nimport showClass from \"~/strings/showClass\";\nimport dataBsDismiss from \"~/strings/dataBsDismiss\";\nimport alertString from \"~/strings/alertString\";\nimport alertComponent from \"~/strings/alertComponent\";\nimport isDisabled from \"~/util/isDisabled\";\nimport type { AlertEvent } from \"~/interface/alert\";\n\nimport BaseComponent from \"./base-component\";\n\n// ALERT PRIVATE GC\n// ================\nconst alertSelector = `.${alertString}`;\nconst alertDismissSelector = `[${dataBsDismiss}=\"${alertString}\"]`;\n\n/**\n * Static method which returns an existing `Alert` instance associated\n * to a target `Element`.\n */\nconst getAlertInstance = (element: Element) =>\n getInstance<Alert>(element, alertComponent);\n\n/**\n * An `Alert` initialization callback.\n */\nconst alertInitCallback = (element: Element) => new Alert(element);\n\n// ALERT CUSTOM EVENTS\n// ===================\nconst closeAlertEvent = createCustomEvent<Record<string, never>, AlertEvent>(\n `close.bs.${alertString}`,\n);\nconst closedAlertEvent = createCustomEvent<Record<string, never>, AlertEvent>(\n `closed.bs.${alertString}`,\n);\n\n// ALERT EVENT HANDLER\n// ===================\n/**\n * Alert `transitionend` callback.\n *\n * @param that target Alert instance\n */\nconst alertTransitionEnd = (self: Alert) => {\n const { element } = self;\n dispatchEvent(element, closedAlertEvent);\n\n self._toggleEventListeners();\n self.dispose();\n element.remove();\n};\n\n// ALERT DEFINITION\n// ================\n/** Creates a new Alert instance. */\nexport default class Alert extends BaseComponent {\n static selector = alertSelector;\n static init = alertInitCallback;\n static getInstance = getAlertInstance;\n dismiss: HTMLElement | null;\n\n constructor(target: Element | string) {\n super(target);\n\n // the dismiss button\n this.dismiss = querySelector<HTMLElement>(\n alertDismissSelector,\n this.element,\n );\n\n // add event listener\n this._toggleEventListeners(true);\n }\n\n /** Returns component name string. */\n get name() {\n return alertComponent;\n }\n\n // ALERT PUBLIC METHODS\n // ====================\n /**\n * Public method that hides the `.alert` element from the user,\n * disposes the instance once animation is complete, then\n * removes the element from the DOM.\n */\n close = (e: PointerEvent<HTMLElement>) => {\n const { element, dismiss } = this;\n\n // istanbul ignore if @preserve\n if (!element || !hasClass(element, showClass)) return;\n // istanbul ignore if @preserve\n if (e && dismiss && isDisabled(dismiss)) return;\n dispatchEvent(element, closeAlertEvent);\n\n if (closeAlertEvent.defaultPrevented) return;\n\n removeClass(element, showClass);\n\n if (hasClass(element, fadeClass)) {\n emulateTransitionEnd(element, () => alertTransitionEnd(this));\n } else alertTransitionEnd(this);\n };\n /**\n * Toggle 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 const { dismiss, close } = this;\n // istanbul ignore else @preserve\n if (dismiss) {\n action(dismiss, mouseclickEvent, close);\n }\n };\n\n /** Remove the component from target element. */\n dispose() {\n this._toggleEventListeners();\n super.dispose();\n }\n}\n"],"names":["alertString","alertComponent","alertSelector","alertDismissSelector","dataBsDismiss","getAlertInstance","element","getInstance","alertInitCallback","Alert","closeAlertEvent","createCustomEvent","closedAlertEvent","alertTransitionEnd","self","dispatchEvent","BaseComponent","target","querySelector","e","dismiss","hasClass","showClass","isDisabled","removeClass","fadeClass","emulateTransitionEnd","add","action","addListener","removeListener","close","mouseclickEvent"],"mappings":";;;;;AACA,MAAMA,IAAc,SCAdC,IAAiB,SC0BjBC,IAAgB,IAAIF,CAAW,IAC/BG,IAAuB,IAAIC,CAAa,KAAKJ,CAAW,MAGxDK,IAAmB,CAACC,MACxBC,EAAmBD,GAASL,CAAc,GAGtCO,IAAoB,CAACF,MAAqB,IAAIG,EAAMH,CAAO,GAI3DI,IAAkBC;AAAAA,EACtB,YAAYX,CAAW;AACzB,GACMY,IAAmBD;AAAAA,EACvB,aAAaX,CAAW;AAC1B,GAKMa,IAAqB,CAACC,MAAgB;AACpC,QAAA,EAAE,SAAAR,MAAYQ;AACpBC,EAAAA,EAAcT,GAASM,CAAgB,GAEvCE,EAAK,sBAAsB,GAC3BA,EAAK,QAAQ,GACbR,EAAQ,OAAO;AACjB;AAKA,MAAqBG,UAAcO,EAAc;AAAA,EAC/C,OAAO,WAAWd;AAAA,EAClB,OAAO,OAAOM;AAAA,EACd,OAAO,cAAcH;AAAA,EACrB;AAAA,EAEA,YAAYY,GAA0B;AACpC,UAAMA,CAAM,GAGZ,KAAK,UAAUC;AAAAA,MACbf;AAAA,MACA,KAAK;AAAA,IACP,GAGA,KAAK,sBAAsB,EAAI;AAAA,EAAA;AAAA,EAIjC,IAAI,OAAO;AACF,WAAAF;AAAA,EAAA;AAAA,EAMT,QAAQ,CAACkB,MAAiC;AAClC,UAAA,EAAE,SAAAb,GAAS,SAAAc,EAAA,IAAY;AAG7B,IAAI,CAACd,KAAW,CAACe,EAASf,GAASgB,CAAS,KAExCH,KAAKC,KAAWG,EAAWH,CAAO,MACtCL,EAAcT,GAASI,CAAe,GAElC,CAAAA,EAAgB,qBAEpBc,EAAYlB,GAASgB,CAAS,GAE1BD,EAASf,GAASmB,CAAS,IAC7BC,EAAqBpB,GAAS,MAAMO,EAAmB,IAAI,CAAC,MACpC,IAAI;AAAA,EAChC;AAAA,EAEA,wBAAwB,CAACc,MAAkB;AACnC,UAAAC,IAASD,IAAME,IAAcC,GAC7B,EAAE,SAAAV,GAAS,OAAAW,EAAA,IAAU;AAE3B,IAAIX,KACKQ,EAAAR,GAASY,GAAiBD,CAAK;AAAA,EAE1C;AAAA,EAGA,UAAU;AACR,SAAK,sBAAsB,GAC3B,MAAM,QAAQ;AAAA,EAAA;AAElB;"}