UNPKG

5.23 kBTypeScriptView Raw
1import BaseComponent, { GetInstanceFactory, GetOrCreateInstanceFactory } from './base-component';
2import Tooltip from './tooltip';
3
4declare class Popover extends BaseComponent {
5 static getInstance: GetInstanceFactory<Popover>;
6
7 /**
8 * Static method which allows you to get the popover instance associated with
9 * a DOM element, or create a new one in case it wasn’t initialised
10 */
11 static getOrCreateInstance: GetOrCreateInstanceFactory<Popover, Partial<Popover.Options>>;
12
13 static jQueryInterface: Popover.jQueryInterface;
14
15 static NAME: 'popover';
16
17 /**
18 * Default settings of this plugin
19 *
20 * @link https://getbootstrap.com/docs/5.0/getting-started/javascript/#default-settings
21 */
22 static Default: Popover.Options;
23
24 static DefaultType: Record<keyof Popover.Options, string>;
25
26 static Event: Record<
27 | 'CLICK'
28 | 'FOCUSIN'
29 | 'FOCUSOUT'
30 | 'HIDDEN'
31 | 'HIDE'
32 | 'INSERTED'
33 | 'MOUSEENTER'
34 | 'MOUSELEAVE'
35 | 'SHOW'
36 | 'SHOWN',
37 string
38 >;
39 constructor(element: string | Element, options?: Partial<Popover.Options>);
40
41 /**
42 * Reveals an element’s popover. Returns to the caller before the
43 * popover has actually been shown (i.e. before the shown.bs.popover
44 * event occurs). This is considered a “manual” triggering of the
45 * popover. Popovers whose title and content are both zero-length are
46 * never displayed.
47 */
48 show(): void;
49
50 /**
51 * Hides an element’s popover. Returns to the caller before the popover
52 * has actually been hidden (i.e. before the hidden.bs.popover event
53 * occurs). This is considered a “manual” triggering of the popover.
54 */
55 hide(): void;
56
57 /**
58 * Toggles an element’s popover. Returns to the caller before the
59 * popover has actually been shown or hidden (i.e. before the
60 * shown.bs.popover or hidden.bs.popover event occurs). This is
61 * considered a “manual” triggering of the popover.
62 */
63 toggle(): void;
64
65 /**
66 * Gives an element’s popover the ability to be shown. Popovers are
67 * enabled by default.
68 */
69 enable(): void;
70
71 /**
72 * Removes the ability for an element’s popover to be shown. The popover
73 * will only be able to be shown if it is re-enabled.
74 */
75 disable(): void;
76
77 /**
78 * Toggles the ability for an element’s popover to be shown or hidden.
79 */
80 toggleEnabled(): void;
81
82 /**
83 * Updates the position of an element’s popover.
84 */
85 update(): void;
86
87 /**
88 * Gives a way to change the popover’s content after its initialization.
89 */
90 setContent(content?: Record<string, string | Element | Tooltip.SetContentFunction | null>): void;
91}
92
93declare namespace Popover {
94 enum Events {
95 /**
96 * This event fires immediately when the show instance method is called.
97 */
98 show = 'show.bs.popover',
99
100 /**
101 * This event is fired when the popover has been made visible to the
102 * user (will wait for CSS transitions to complete).
103 */
104 shown = 'shown.bs.popover',
105
106 /**
107 * This event is fired immediately when the hide instance method has
108 * been called.
109 */
110 hide = 'hide.bs.popover',
111
112 /**
113 * This event is fired when the popover has finished being hidden from
114 * the user (will wait for CSS transitions to complete).
115 */
116 hidden = 'hidden.bs.popover',
117
118 /**
119 * This event is fired after the show.bs.popover event when the popover
120 * template has been added to the DOM.
121 */
122 inserted = 'inserted.bs.popover',
123 }
124
125 type PopperConfigFunction = (defaultBsPopperConfig: Options) => Partial<Options>;
126
127 interface Options extends Omit<Tooltip.Options, 'popperConfig'> {
128 /**
129 * Default content value if data-content attribute isn't present.
130 *
131 * If a function is given, it will be called with its this reference set
132 * to the element that the popover is attached to.
133 *
134 * @default ''
135 */
136 content: string | Element | JQuery | ((this: HTMLElement) => string | Element | JQuery);
137
138 /**
139 * To change Bootstrap's default Popper.js config
140 *
141 * When a function is used to create the Popper configuration, it's
142 * called with an object that contains the Bootstrap's default Popper
143 * configuration. It helps you use and merge the default with your own
144 * configuration. The function must return a configuration object for
145 * Popper.
146 *
147 * @see {@link https://popper.js.org/docs/v2}
148 * @default null
149 */
150 popperConfig: Partial<Options> | PopperConfigFunction | null;
151 }
152
153 type jQueryInterface = (
154 config?:
155 | Partial<Options>
156 | 'show'
157 | 'hide'
158 | 'toggle'
159 | 'enable'
160 | 'disable'
161 | 'toggleEnabled'
162 | 'update'
163 | 'setContent'
164 | 'dispose',
165 ) => JQuery;
166}
167
168export default Popover;