/*!
 * Bootstrap component-functions.js v5.2.3 (https://getbootstrap.com/)
 * Copyright 2011-2022 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
 * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
 */
(function (global, factory) {
  typeof exports === 'object' && typeof module !== 'undefined'
    ? factory(exports, require('../dom/event-handler'), require('./index'))
    : typeof define === 'function' && define.amd
    ? define(['exports', '../dom/event-handler', './index'], factory)
    : ((global = typeof globalThis !== 'undefined' ? globalThis : global || self),
      factory((global.ComponentFunctions = {}), global.EventHandler, global.Index));
})(this, function (exports, EventHandler, index) {
  'use strict';

  const _interopDefaultLegacy = (e) =>
    e && typeof e === 'object' && 'default' in e ? e : { default: e };

  const EventHandler__default = /*#__PURE__*/ _interopDefaultLegacy(EventHandler);

  /**
   * --------------------------------------------------------------------------
   * Bootstrap (v5.2.3): util/component-functions.js
   * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
   * --------------------------------------------------------------------------
   */

  const enableDismissTrigger = (component, method = 'hide') => {
    const clickEvent = `click.dismiss${component.EVENT_KEY}`;
    const name = component.NAME;
    EventHandler__default.default.on(
      document,
      clickEvent,
      `[data-bs-dismiss="${name}"]`,
      function (event) {
        if (['A', 'AREA'].includes(this.tagName)) {
          event.preventDefault();
        }

        if (index.isDisabled(this)) {
          return;
        }

        const target = index.getElementFromSelector(this) || this.closest(`.${name}`);
        const instance = component.getOrCreateInstance(target); // Method argument is left, for Alert and only, as it doesn't implement the 'hide' method

        instance[method]();
      }
    );
  };

  exports.enableDismissTrigger = enableDismissTrigger;

  Object.defineProperties(exports, {
    __esModule: { value: true },
    [Symbol.toStringTag]: { value: 'Module' },
  });
});
//# sourceMappingURL=component-functions.js.map
