popover.js 7.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244
  1. /*!
  2. * Bootstrap popover.js v4.6.1 (https://getbootstrap.com/)
  3. * Copyright 2011-2021 The Bootstrap Authors (https://github.com/twbs/bootstrap/graphs/contributors)
  4. * Licensed under MIT (https://github.com/twbs/bootstrap/blob/main/LICENSE)
  5. */
  6. (function (global, factory) {
  7. typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory(require('jquery'), require('./tooltip.js')) :
  8. typeof define === 'function' && define.amd ? define(['jquery', './tooltip'], factory) :
  9. (global = typeof globalThis !== 'undefined' ? globalThis : global || self, global.Popover = factory(global.jQuery, global.Tooltip));
  10. })(this, (function ($, Tooltip) { 'use strict';
  11. function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
  12. var $__default = /*#__PURE__*/_interopDefaultLegacy($);
  13. var Tooltip__default = /*#__PURE__*/_interopDefaultLegacy(Tooltip);
  14. function _defineProperties(target, props) {
  15. for (var i = 0; i < props.length; i++) {
  16. var descriptor = props[i];
  17. descriptor.enumerable = descriptor.enumerable || false;
  18. descriptor.configurable = true;
  19. if ("value" in descriptor) descriptor.writable = true;
  20. Object.defineProperty(target, descriptor.key, descriptor);
  21. }
  22. }
  23. function _createClass(Constructor, protoProps, staticProps) {
  24. if (protoProps) _defineProperties(Constructor.prototype, protoProps);
  25. if (staticProps) _defineProperties(Constructor, staticProps);
  26. return Constructor;
  27. }
  28. function _extends() {
  29. _extends = Object.assign || function (target) {
  30. for (var i = 1; i < arguments.length; i++) {
  31. var source = arguments[i];
  32. for (var key in source) {
  33. if (Object.prototype.hasOwnProperty.call(source, key)) {
  34. target[key] = source[key];
  35. }
  36. }
  37. }
  38. return target;
  39. };
  40. return _extends.apply(this, arguments);
  41. }
  42. function _inheritsLoose(subClass, superClass) {
  43. subClass.prototype = Object.create(superClass.prototype);
  44. subClass.prototype.constructor = subClass;
  45. _setPrototypeOf(subClass, superClass);
  46. }
  47. function _setPrototypeOf(o, p) {
  48. _setPrototypeOf = Object.setPrototypeOf || function _setPrototypeOf(o, p) {
  49. o.__proto__ = p;
  50. return o;
  51. };
  52. return _setPrototypeOf(o, p);
  53. }
  54. /**
  55. * Constants
  56. */
  57. var NAME = 'popover';
  58. var VERSION = '4.6.1';
  59. var DATA_KEY = 'bs.popover';
  60. var EVENT_KEY = "." + DATA_KEY;
  61. var JQUERY_NO_CONFLICT = $__default["default"].fn[NAME];
  62. var CLASS_PREFIX = 'bs-popover';
  63. var BSCLS_PREFIX_REGEX = new RegExp("(^|\\s)" + CLASS_PREFIX + "\\S+", 'g');
  64. var CLASS_NAME_FADE = 'fade';
  65. var CLASS_NAME_SHOW = 'show';
  66. var SELECTOR_TITLE = '.popover-header';
  67. var SELECTOR_CONTENT = '.popover-body';
  68. var Default = _extends({}, Tooltip__default["default"].Default, {
  69. placement: 'right',
  70. trigger: 'click',
  71. content: '',
  72. template: '<div class="popover" role="tooltip">' + '<div class="arrow"></div>' + '<h3 class="popover-header"></h3>' + '<div class="popover-body"></div></div>'
  73. });
  74. var DefaultType = _extends({}, Tooltip__default["default"].DefaultType, {
  75. content: '(string|element|function)'
  76. });
  77. var Event = {
  78. HIDE: "hide" + EVENT_KEY,
  79. HIDDEN: "hidden" + EVENT_KEY,
  80. SHOW: "show" + EVENT_KEY,
  81. SHOWN: "shown" + EVENT_KEY,
  82. INSERTED: "inserted" + EVENT_KEY,
  83. CLICK: "click" + EVENT_KEY,
  84. FOCUSIN: "focusin" + EVENT_KEY,
  85. FOCUSOUT: "focusout" + EVENT_KEY,
  86. MOUSEENTER: "mouseenter" + EVENT_KEY,
  87. MOUSELEAVE: "mouseleave" + EVENT_KEY
  88. };
  89. /**
  90. * Class definition
  91. */
  92. var Popover = /*#__PURE__*/function (_Tooltip) {
  93. _inheritsLoose(Popover, _Tooltip);
  94. function Popover() {
  95. return _Tooltip.apply(this, arguments) || this;
  96. }
  97. var _proto = Popover.prototype;
  98. // Overrides
  99. _proto.isWithContent = function isWithContent() {
  100. return this.getTitle() || this._getContent();
  101. };
  102. _proto.addAttachmentClass = function addAttachmentClass(attachment) {
  103. $__default["default"](this.getTipElement()).addClass(CLASS_PREFIX + "-" + attachment);
  104. };
  105. _proto.getTipElement = function getTipElement() {
  106. this.tip = this.tip || $__default["default"](this.config.template)[0];
  107. return this.tip;
  108. };
  109. _proto.setContent = function setContent() {
  110. var $tip = $__default["default"](this.getTipElement()); // We use append for html objects to maintain js events
  111. this.setElementContent($tip.find(SELECTOR_TITLE), this.getTitle());
  112. var content = this._getContent();
  113. if (typeof content === 'function') {
  114. content = content.call(this.element);
  115. }
  116. this.setElementContent($tip.find(SELECTOR_CONTENT), content);
  117. $tip.removeClass(CLASS_NAME_FADE + " " + CLASS_NAME_SHOW);
  118. } // Private
  119. ;
  120. _proto._getContent = function _getContent() {
  121. return this.element.getAttribute('data-content') || this.config.content;
  122. };
  123. _proto._cleanTipClass = function _cleanTipClass() {
  124. var $tip = $__default["default"](this.getTipElement());
  125. var tabClass = $tip.attr('class').match(BSCLS_PREFIX_REGEX);
  126. if (tabClass !== null && tabClass.length > 0) {
  127. $tip.removeClass(tabClass.join(''));
  128. }
  129. } // Static
  130. ;
  131. Popover._jQueryInterface = function _jQueryInterface(config) {
  132. return this.each(function () {
  133. var data = $__default["default"](this).data(DATA_KEY);
  134. var _config = typeof config === 'object' ? config : null;
  135. if (!data && /dispose|hide/.test(config)) {
  136. return;
  137. }
  138. if (!data) {
  139. data = new Popover(this, _config);
  140. $__default["default"](this).data(DATA_KEY, data);
  141. }
  142. if (typeof config === 'string') {
  143. if (typeof data[config] === 'undefined') {
  144. throw new TypeError("No method named \"" + config + "\"");
  145. }
  146. data[config]();
  147. }
  148. });
  149. };
  150. _createClass(Popover, null, [{
  151. key: "VERSION",
  152. get: // Getters
  153. function get() {
  154. return VERSION;
  155. }
  156. }, {
  157. key: "Default",
  158. get: function get() {
  159. return Default;
  160. }
  161. }, {
  162. key: "NAME",
  163. get: function get() {
  164. return NAME;
  165. }
  166. }, {
  167. key: "DATA_KEY",
  168. get: function get() {
  169. return DATA_KEY;
  170. }
  171. }, {
  172. key: "Event",
  173. get: function get() {
  174. return Event;
  175. }
  176. }, {
  177. key: "EVENT_KEY",
  178. get: function get() {
  179. return EVENT_KEY;
  180. }
  181. }, {
  182. key: "DefaultType",
  183. get: function get() {
  184. return DefaultType;
  185. }
  186. }]);
  187. return Popover;
  188. }(Tooltip__default["default"]);
  189. /**
  190. * jQuery
  191. */
  192. $__default["default"].fn[NAME] = Popover._jQueryInterface;
  193. $__default["default"].fn[NAME].Constructor = Popover;
  194. $__default["default"].fn[NAME].noConflict = function () {
  195. $__default["default"].fn[NAME] = JQUERY_NO_CONFLICT;
  196. return Popover._jQueryInterface;
  197. };
  198. return Popover;
  199. }));
  200. //# sourceMappingURL=popover.js.map