@vue-interface/tooltip 1.0.0-beta.1 → 1.0.0-beta.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +3 -0
- package/dist/src/Popper.d.ts +54 -0
- package/dist/src/Tooltip.vue.d.ts +54 -0
- package/dist/src/TooltipPlugin.d.ts +11 -0
- package/dist/tooltip.mjs +185 -0
- package/dist/tooltip.mjs.map +1 -0
- package/dist/tooltip.umd.js +2 -5
- package/dist/tooltip.umd.js.map +1 -0
- package/package.json +11 -16
- package/src/{Popper.js → Popper.ts} +27 -18
- package/src/Tooltip.vue +19 -11
- package/src/TooltipPlugin.ts +160 -49
- package/tailwindcss/index.js +8 -8
- package/tailwindcss/safelist.js +12 -0
- package/dist/Tooltip.vue.d.ts +0 -4
- package/dist/TooltipPlugin.d.ts +0 -2
- package/dist/tooltip.es.js +0 -1105
- /package/dist/{tooltip.css → style.css} +0 -0
package/dist/index.d.ts
ADDED
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
declare const _default: import("vue").DefineComponent<{
|
|
2
|
+
offset: ArrayConstructor;
|
|
3
|
+
popper: ObjectConstructor;
|
|
4
|
+
show: BooleanConstructor;
|
|
5
|
+
target: {
|
|
6
|
+
type: {
|
|
7
|
+
new (): HTMLElement;
|
|
8
|
+
prototype: HTMLElement;
|
|
9
|
+
};
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
title: StringConstructor;
|
|
13
|
+
placement: StringConstructor;
|
|
14
|
+
top: BooleanConstructor;
|
|
15
|
+
bottom: BooleanConstructor;
|
|
16
|
+
left: BooleanConstructor;
|
|
17
|
+
right: BooleanConstructor;
|
|
18
|
+
}, unknown, {
|
|
19
|
+
currentShow: boolean;
|
|
20
|
+
popperInstance: null;
|
|
21
|
+
}, {
|
|
22
|
+
computedPlacement(): any;
|
|
23
|
+
tooltipClasses(): {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
show: any;
|
|
26
|
+
};
|
|
27
|
+
}, {
|
|
28
|
+
open(): void;
|
|
29
|
+
close(): void;
|
|
30
|
+
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
31
|
+
offset: ArrayConstructor;
|
|
32
|
+
popper: ObjectConstructor;
|
|
33
|
+
show: BooleanConstructor;
|
|
34
|
+
target: {
|
|
35
|
+
type: {
|
|
36
|
+
new (): HTMLElement;
|
|
37
|
+
prototype: HTMLElement;
|
|
38
|
+
};
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
title: StringConstructor;
|
|
42
|
+
placement: StringConstructor;
|
|
43
|
+
top: BooleanConstructor;
|
|
44
|
+
bottom: BooleanConstructor;
|
|
45
|
+
left: BooleanConstructor;
|
|
46
|
+
right: BooleanConstructor;
|
|
47
|
+
}>>, {
|
|
48
|
+
show: boolean;
|
|
49
|
+
top: boolean;
|
|
50
|
+
bottom: boolean;
|
|
51
|
+
left: boolean;
|
|
52
|
+
right: boolean;
|
|
53
|
+
}>;
|
|
54
|
+
export default _default;
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
declare const _sfc_main: import("vue").DefineComponent<{}, {}, {}, {}, {}, import("vue").DefineComponent<{
|
|
2
|
+
offset: ArrayConstructor;
|
|
3
|
+
popper: ObjectConstructor;
|
|
4
|
+
show: BooleanConstructor;
|
|
5
|
+
target: {
|
|
6
|
+
type: {
|
|
7
|
+
new (): HTMLElement;
|
|
8
|
+
prototype: HTMLElement;
|
|
9
|
+
};
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
title: StringConstructor;
|
|
13
|
+
placement: StringConstructor;
|
|
14
|
+
top: BooleanConstructor;
|
|
15
|
+
bottom: BooleanConstructor;
|
|
16
|
+
left: BooleanConstructor;
|
|
17
|
+
right: BooleanConstructor;
|
|
18
|
+
}, unknown, {
|
|
19
|
+
currentShow: boolean;
|
|
20
|
+
popperInstance: null;
|
|
21
|
+
}, {
|
|
22
|
+
computedPlacement(): any;
|
|
23
|
+
tooltipClasses(): {
|
|
24
|
+
[x: string]: any;
|
|
25
|
+
show: any;
|
|
26
|
+
};
|
|
27
|
+
}, {
|
|
28
|
+
open(): void;
|
|
29
|
+
close(): void;
|
|
30
|
+
}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
31
|
+
offset: ArrayConstructor;
|
|
32
|
+
popper: ObjectConstructor;
|
|
33
|
+
show: BooleanConstructor;
|
|
34
|
+
target: {
|
|
35
|
+
type: {
|
|
36
|
+
new (): HTMLElement;
|
|
37
|
+
prototype: HTMLElement;
|
|
38
|
+
};
|
|
39
|
+
required: true;
|
|
40
|
+
};
|
|
41
|
+
title: StringConstructor;
|
|
42
|
+
placement: StringConstructor;
|
|
43
|
+
top: BooleanConstructor;
|
|
44
|
+
bottom: BooleanConstructor;
|
|
45
|
+
left: BooleanConstructor;
|
|
46
|
+
right: BooleanConstructor;
|
|
47
|
+
}>>, {
|
|
48
|
+
show: boolean;
|
|
49
|
+
top: boolean;
|
|
50
|
+
bottom: boolean;
|
|
51
|
+
left: boolean;
|
|
52
|
+
right: boolean;
|
|
53
|
+
}>, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}>;
|
|
54
|
+
export default _sfc_main;
|
package/dist/tooltip.mjs
ADDED
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
import { defineComponent as $, openBlock as S, createElementBlock as y, normalizeClass as N, createElementVNode as _, renderSlot as O, createTextVNode as L, toDisplayString as j, h as B, render as C } from "vue";
|
|
2
|
+
import { createPopper as P } from "@popperjs/core";
|
|
3
|
+
const I = $({
|
|
4
|
+
props: {
|
|
5
|
+
offset: Array,
|
|
6
|
+
popper: Object,
|
|
7
|
+
show: Boolean,
|
|
8
|
+
target: {
|
|
9
|
+
type: HTMLElement,
|
|
10
|
+
required: !0
|
|
11
|
+
},
|
|
12
|
+
title: String,
|
|
13
|
+
placement: String,
|
|
14
|
+
top: Boolean,
|
|
15
|
+
bottom: Boolean,
|
|
16
|
+
left: Boolean,
|
|
17
|
+
right: Boolean
|
|
18
|
+
},
|
|
19
|
+
data() {
|
|
20
|
+
return {
|
|
21
|
+
currentShow: !1,
|
|
22
|
+
popperInstance: null
|
|
23
|
+
};
|
|
24
|
+
},
|
|
25
|
+
computed: {
|
|
26
|
+
computedPlacement() {
|
|
27
|
+
return this.placement ? this.placement : this.bottom ? "bottom" : this.left ? "left" : this.right ? "right" : "top";
|
|
28
|
+
},
|
|
29
|
+
tooltipClasses() {
|
|
30
|
+
return {
|
|
31
|
+
show: this.currentShow,
|
|
32
|
+
[`bs-tooltip-${this.computedPlacement}`]: !0
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
},
|
|
36
|
+
mounted() {
|
|
37
|
+
this.popperInstance = P(this.target, this.$el, Object.assign({
|
|
38
|
+
placement: this.computedPlacement,
|
|
39
|
+
modifiers: [
|
|
40
|
+
{
|
|
41
|
+
name: "offset",
|
|
42
|
+
options: {
|
|
43
|
+
offset: [0, 6]
|
|
44
|
+
}
|
|
45
|
+
},
|
|
46
|
+
{
|
|
47
|
+
name: "arrow",
|
|
48
|
+
options: {
|
|
49
|
+
element: this.$refs.arrow
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
]
|
|
53
|
+
}, this.popper)), this.$nextTick(() => {
|
|
54
|
+
this.currentShow = this.show;
|
|
55
|
+
});
|
|
56
|
+
},
|
|
57
|
+
beforeUnmount() {
|
|
58
|
+
this.popperInstance && this.popperInstance.destroy();
|
|
59
|
+
},
|
|
60
|
+
methods: {
|
|
61
|
+
open() {
|
|
62
|
+
this.currentShow = !0;
|
|
63
|
+
},
|
|
64
|
+
close() {
|
|
65
|
+
this.currentShow = !1;
|
|
66
|
+
}
|
|
67
|
+
}
|
|
68
|
+
}), R = $({
|
|
69
|
+
mixins: [
|
|
70
|
+
I
|
|
71
|
+
]
|
|
72
|
+
});
|
|
73
|
+
const k = (s, m) => {
|
|
74
|
+
const p = s.__vccOpts || s;
|
|
75
|
+
for (const [a, n] of m)
|
|
76
|
+
p[a] = n;
|
|
77
|
+
return p;
|
|
78
|
+
}, F = {
|
|
79
|
+
ref: "arrow",
|
|
80
|
+
class: "tooltip-arrow"
|
|
81
|
+
}, M = {
|
|
82
|
+
ref: "inner",
|
|
83
|
+
class: "tooltip-inner"
|
|
84
|
+
};
|
|
85
|
+
function H(s, m, p, a, n, f) {
|
|
86
|
+
return S(), y("div", {
|
|
87
|
+
class: N(["tooltip", s.tooltipClasses]),
|
|
88
|
+
role: "tooltip"
|
|
89
|
+
}, [
|
|
90
|
+
_("div", F, null, 512),
|
|
91
|
+
_("div", M, [
|
|
92
|
+
O(s.$slots, "default", {}, () => [
|
|
93
|
+
L(j(s.title), 1)
|
|
94
|
+
])
|
|
95
|
+
], 512)
|
|
96
|
+
], 2);
|
|
97
|
+
}
|
|
98
|
+
const U = /* @__PURE__ */ k(R, [["render", H]]);
|
|
99
|
+
function W(s, m = {}) {
|
|
100
|
+
const p = /* @__PURE__ */ new Map(), a = Object.assign({
|
|
101
|
+
delay: void 0,
|
|
102
|
+
prefix: "data-tooltip",
|
|
103
|
+
triggers: {
|
|
104
|
+
open: ["mouseover:350"],
|
|
105
|
+
close: ["mouseout:100"]
|
|
106
|
+
}
|
|
107
|
+
}, m), n = a.prefix.replace(/[-]+$/, ""), f = new RegExp(`^${n}-`);
|
|
108
|
+
function w(e) {
|
|
109
|
+
return Array.from(e.attributes).map((t) => [t.name, t.value]).filter(([t]) => t === "title" || t.match(f)).map(([t, o]) => [t.replace(new RegExp(f), ""), o]).reduce((t, o) => Object.assign(t, { [o[0]]: o[1] }), {});
|
|
110
|
+
}
|
|
111
|
+
function T(e, t = {}, o) {
|
|
112
|
+
const i = document.createElement("template"), r = B(U, Object.assign({
|
|
113
|
+
target: e,
|
|
114
|
+
show: !0
|
|
115
|
+
}, t));
|
|
116
|
+
C(r, i);
|
|
117
|
+
const [l] = [...i.children];
|
|
118
|
+
return document.body.append(l), () => {
|
|
119
|
+
var u;
|
|
120
|
+
p.delete(o), (u = r.component) == null || u.ctx.close(), setTimeout(() => l.remove(), 150);
|
|
121
|
+
};
|
|
122
|
+
}
|
|
123
|
+
function h(e, t = {}) {
|
|
124
|
+
var b, v;
|
|
125
|
+
const o = Object.assign({
|
|
126
|
+
title: e.getAttribute(n)
|
|
127
|
+
}, t, w(e));
|
|
128
|
+
if (!o.title || e.hasAttribute(`${n}-id`))
|
|
129
|
+
return;
|
|
130
|
+
const i = Math.random().toString(36).slice(2, 7);
|
|
131
|
+
let r, l;
|
|
132
|
+
e.setAttribute(`${n}-id`, i), e.removeAttribute("title");
|
|
133
|
+
function u(c = 0) {
|
|
134
|
+
clearTimeout(l), r || (l = setTimeout(() => {
|
|
135
|
+
document.contains(e) && (r = T(e, o, i), p.set(i, r));
|
|
136
|
+
}, c));
|
|
137
|
+
}
|
|
138
|
+
function d(c = 0) {
|
|
139
|
+
clearTimeout(l), r && (l = setTimeout(() => {
|
|
140
|
+
r && r(), r = null;
|
|
141
|
+
}, c));
|
|
142
|
+
}
|
|
143
|
+
function g(c, E) {
|
|
144
|
+
const [x, A] = c.split(":");
|
|
145
|
+
e.addEventListener(x, () => E(Number(A || 0)));
|
|
146
|
+
}
|
|
147
|
+
(((b = e.getAttribute(`${n}-trigger-open`)) == null ? void 0 : b.split(",")) || a.triggers.open).map((c) => g(c, u)), (((v = e.getAttribute(`${n}-trigger-close`)) == null ? void 0 : v.split(",")) || a.triggers.close).map((c) => g(c, d));
|
|
148
|
+
}
|
|
149
|
+
s.mixin({
|
|
150
|
+
mounted() {
|
|
151
|
+
let e = this.$el;
|
|
152
|
+
this.$el instanceof Text && (e = this.$el.parentNode), e instanceof HTMLElement && h(e);
|
|
153
|
+
const t = document.createTreeWalker(
|
|
154
|
+
e,
|
|
155
|
+
NodeFilter.SHOW_ALL,
|
|
156
|
+
(i) => i instanceof Element ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_REJECT
|
|
157
|
+
);
|
|
158
|
+
for (; t.nextNode(); )
|
|
159
|
+
t.currentNode instanceof Element && h(t.currentNode);
|
|
160
|
+
new MutationObserver((i) => {
|
|
161
|
+
for (const { removedNodes: r } of i)
|
|
162
|
+
for (const l of r)
|
|
163
|
+
for (const u of l.querySelectorAll(`[${n}-id]`)) {
|
|
164
|
+
const d = p.get(
|
|
165
|
+
u.getAttribute(`${n}-id`)
|
|
166
|
+
);
|
|
167
|
+
d && d();
|
|
168
|
+
}
|
|
169
|
+
}).observe(e, { childList: !0 });
|
|
170
|
+
}
|
|
171
|
+
}), s.directive("tooltip", {
|
|
172
|
+
created(e, t) {
|
|
173
|
+
h(e, Object.assign({}, t.modifiers, t.value));
|
|
174
|
+
},
|
|
175
|
+
beforeUnmount(e) {
|
|
176
|
+
const t = e.getAttribute(`${n}-id`), o = p.get(t);
|
|
177
|
+
console.log("beforeUnmount"), o && o();
|
|
178
|
+
}
|
|
179
|
+
});
|
|
180
|
+
}
|
|
181
|
+
export {
|
|
182
|
+
U as Tooltip,
|
|
183
|
+
W as TooltipPlugin
|
|
184
|
+
};
|
|
185
|
+
//# sourceMappingURL=tooltip.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.mjs","sources":["../src/Popper.ts","../src/Tooltip.vue","../src/TooltipPlugin.ts"],"sourcesContent":["import { createPopper } from '@popperjs/core';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n props: {\n offset: Array,\n\n popper: Object,\n\n show: Boolean,\n\n target: {\n type: HTMLElement,\n required: true\n },\n\n title: String,\n\n placement: String,\n\n top: Boolean,\n\n bottom: Boolean,\n\n left: Boolean,\n\n right: Boolean,\n },\n \n data() {\n return {\n currentShow: false,\n popperInstance: null\n };\n },\n\n computed: {\n computedPlacement() {\n if(this.placement) {\n return this.placement;\n }\n\n if(this.bottom) {\n return 'bottom';\n }\n\n if(this.left) {\n return 'left';\n }\n\n if(this.right) {\n return 'right';\n }\n\n return 'top';\n },\n tooltipClasses() {\n return {\n show: this.currentShow,\n [`bs-tooltip-${this.computedPlacement}`]: true\n };\n }\n },\n\n mounted() {\n this.popperInstance = createPopper(this.target, this.$el, Object.assign({\n placement: this.computedPlacement,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 6]\n },\n },\n {\n name: 'arrow',\n options: {\n element: this.$refs.arrow,\n },\n },\n ],\n }, this.popper));\n\n this.$nextTick(() => {\n this.currentShow = this.show;\n });\n },\n\n beforeUnmount() {\n this.popperInstance && this.popperInstance.destroy();\n },\n\n methods: {\n\n open() {\n this.currentShow = true;\n },\n\n close() {\n this.currentShow = false;\n }\n\n }\n\n});","<script lang=\"ts\">\n// @ts-ignore\nimport { defineComponent } from 'vue';\nimport Popper from './Popper';\n\nexport default defineComponent({\n mixins: [\n Popper\n ]\n});\n</script>\n\n<template>\n <div\n class=\"tooltip\"\n :class=\"tooltipClasses\"\n role=\"tooltip\">\n <div\n ref=\"arrow\"\n class=\"tooltip-arrow\" />\n <div\n ref=\"inner\"\n class=\"tooltip-inner\">\n <slot>{{ title }}</slot>\n </div>\n </div>\n</template>\n\n<style>\n.tooltip:not(.show) {\n z-index: -1;\n}\n</style>","import type { App } from 'vue';\nimport { h, render } from 'vue';\nimport Tooltip from './Tooltip.vue';\n\ntype TooltipPluginOptions = {\n delay?: number,\n prefix: string,\n triggers: {\n open: string[],\n close: string[],\n }\n}\n\nexport default function (app: App, opts: Partial<TooltipPluginOptions> = {}) {\n const tooltips: Map<string,Function> = new Map;\n\n const options: TooltipPluginOptions = Object.assign({\n delay: undefined,\n prefix: 'data-tooltip',\n triggers: {\n open: ['mouseover:350'],\n close: ['mouseout:100'],\n }\n }, opts);\n\n const prefix = options.prefix.replace(/[-]+$/, '');\n const prefixRegExp = new RegExp(`^${prefix}\\-`);\n\n function getAttributes(el: Element): Record<string,any> {\n return Array.from(el.attributes)\n .map(a => [a.name, a.value])\n .filter(([key]) => key === 'title' || key.match(prefixRegExp))\n .map(([key, value]) => [key.replace(new RegExp(prefixRegExp), ''), value])\n .reduce((carry, attr) => Object.assign(carry, { [attr[0]]: attr[1] }), {});\n }\n\n function createTooltip(target: Element, props: Record<string,any> = {}, hash: string): Function {\n const container = document.createElement('template');\n \n const vnode = h(Tooltip, Object.assign({\n target,\n show: true\n }, props));\n \n render(vnode, container);\n \n const [el] = [...container.children];\n \n document.body.append(el);\n \n return () => {\n tooltips.delete(hash);\n\n // @ts-ignore\n vnode.component?.ctx.close();\n \n // @todo: Make the animation rate (150) dynamic. Should get value \n // from the CSS transition duration.\n setTimeout(() => el.remove(), 150);\n };\n }\n\n function init(target: Element, props = {}) {\n const properties: Record<string,any> = Object.assign({\n title: target.getAttribute(prefix)\n }, props, getAttributes(target));\n\n // If the properties don't have a title, ignore this target.\n if(!properties.title || target.hasAttribute(`${prefix}-id`)) {\n return;\n }\n\n // Create a unique \"hash\" to show the node has been initialized.\n // This prevents double initializing on the same element.\n const hash = Math.random().toString(36).slice(2, 7);\n \n // Create the instance vars.\n let tooltip: Function|null, timer: number;\n\n //target.setAttribute(prefix, properties.title);\n target.setAttribute(`${prefix}-id`, hash);\n target.removeAttribute('title');\n\n function open(delay = 0) {\n clearTimeout(timer);\n\n if(!tooltip) {\n timer = setTimeout(() => {\n // Do a check before creating the tooltip to ensure the dom\n // element still exists. Its possible for the element to\n // be removed after the timeout delay runs.\n if(document.contains(target)) {\n tooltip = createTooltip(target, properties, hash);\n tooltips.set(hash, tooltip);\n }\n }, delay);\n }\n }\n\n function close(delay = 0) {\n clearTimeout(timer);\n\n if(tooltip) {\n timer = setTimeout(() => {\n tooltip && tooltip();\n tooltip = null;\n }, delay);\n } \n }\n\n function addEventListener(trigger: string, fn: Function) {\n const [ event, delayString ] = trigger.split(':');\n\n target.addEventListener(event, () => fn(Number(delayString || 0)));\n }\n\n (target.getAttribute(`${prefix}-trigger-open`)?.split(',') || options.triggers.open).map(trigger => addEventListener(trigger, open));\n (target.getAttribute(`${prefix}-trigger-close`)?.split(',') || options.triggers.close).map(trigger => addEventListener(trigger, close));\n }\n \n app.mixin({\n mounted() {\n let el = this.$el;\n\n if(this.$el instanceof Text) {\n el = this.$el.parentNode;\n }\n\n if(el instanceof HTMLElement) {\n init(el);\n }\n\n // Create the tree walker.\n const walker = document.createTreeWalker(\n el,\n NodeFilter.SHOW_ALL,\n (node: Node) => {\n if(!(node instanceof Element)) {\n return NodeFilter.FILTER_REJECT;\n }\n \n return NodeFilter.FILTER_ACCEPT;\n }\n );\n\n // Step through and alert all child nodes\n while(walker.nextNode()) {\n if(walker.currentNode instanceof Element) {\n init(<Element> walker.currentNode);\n }\n }\n\n const observer = new MutationObserver((changes) => {\n for(const { removedNodes } of changes) {\n for(const node of removedNodes) {\n for(const el of (node as Element).querySelectorAll(`[${prefix}-id]`)) {\n const tooltip = tooltips.get(\n el.getAttribute(`${prefix}-id`) as string\n );\n\n tooltip && tooltip();\n }\n } \n }\n });\n\n observer.observe(el, { childList: true });\n }\n });\n\n app.directive('tooltip', {\n created(target, binding) {\n init(target, Object.assign({}, binding.modifiers, binding.value));\n },\n beforeUnmount(target) {\n const id = target.getAttribute(`${prefix}-id`);\n const tooltip = tooltips.get(id);\n\n console.log('beforeUnmount');\n\n tooltip && tooltip();\n }\n });\n}"],"names":["Popper","defineComponent","createPopper","_sfc_main","_hoisted_1","_hoisted_2","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","TooltipPlugin","app","opts","tooltips","options","prefix","prefixRegExp","getAttributes","el","a","key","value","carry","attr","createTooltip","target","props","hash","container","vnode","h","Tooltip","render","_a","init","properties","tooltip","timer","open","delay","close","addEventListener","trigger","fn","event","delayString","_b","walker","node","changes","removedNodes","binding","id"],"mappings":"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"}
|
package/dist/tooltip.umd.js
CHANGED
|
@@ -1,5 +1,2 @@
|
|
|
1
|
-
(function(
|
|
2
|
-
|
|
3
|
-
`,'Disable the "computeStyles" modifier\'s `adaptive` option to allow',"for smooth transitions, or remove these properties from the CSS","transition declaration on the popper element if only transitioning","opacity or background-color for example.",`
|
|
4
|
-
|
|
5
|
-
`,"We recommend using the popper element as a wrapper around an inner","element that can have any CSS property transitioned for animations."].join(" "))}var p={placement:V(e.placement),variation:ne(e.placement),popper:e.elements.popper,popperRect:e.rects.popper,gpuAcceleration:o,isFixed:e.options.strategy==="fixed"};e.modifiersData.popperOffsets!=null&&(e.styles.popper=Object.assign({},e.styles.popper,Ye(Object.assign({},p,{offsets:e.modifiersData.popperOffsets,position:e.options.strategy,adaptive:f,roundOffsets:i})))),e.modifiersData.arrow!=null&&(e.styles.arrow=Object.assign({},e.styles.arrow,Ye(Object.assign({},p,{offsets:e.modifiersData.arrow,position:"absolute",adaptive:!1,roundOffsets:i})))),e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-placement":e.placement})}const Mt={name:"computeStyles",enabled:!0,phase:"beforeWrite",fn:Lt,data:{}};var ge={passive:!0};function Vt(t){var e=t.state,r=t.instance,n=t.options,o=n.scroll,a=o===void 0?!0:o,f=n.resize,s=f===void 0?!0:f,i=M(e.elements.popper),c=[].concat(e.scrollParents.reference,e.scrollParents.popper);return a&&c.forEach(function(p){p.addEventListener("scroll",r.update,ge)}),s&&i.addEventListener("resize",r.update,ge),function(){a&&c.forEach(function(p){p.removeEventListener("scroll",r.update,ge)}),s&&i.removeEventListener("resize",r.update,ge)}}const It={name:"eventListeners",enabled:!0,phase:"write",fn:function(){},effect:Vt,data:{}};var qt={left:"right",right:"left",bottom:"top",top:"bottom"};function ye(t){return t.replace(/left|right|bottom|top/g,function(e){return qt[e]})}var Wt={start:"end",end:"start"};function ze(t){return t.replace(/start|end/g,function(e){return Wt[e]})}function Re(t){var e=M(t),r=e.pageXOffset,n=e.pageYOffset;return{scrollLeft:r,scrollTop:n}}function je(t){return re(_(t)).left+Re(t).scrollLeft}function Ht(t,e){var r=M(t),n=_(t),o=r.visualViewport,a=n.clientWidth,f=n.clientHeight,s=0,i=0;if(o){a=o.width,f=o.height;var c=qe();(c||!c&&e==="fixed")&&(s=o.offsetLeft,i=o.offsetTop)}return{width:a,height:f,x:s+je(t),y:i}}function _t(t){var e,r=_(t),n=Re(t),o=(e=t.ownerDocument)==null?void 0:e.body,a=z(r.scrollWidth,r.clientWidth,o?o.scrollWidth:0,o?o.clientWidth:0),f=z(r.scrollHeight,r.clientHeight,o?o.scrollHeight:0,o?o.clientHeight:0),s=-n.scrollLeft+je(t),i=-n.scrollTop;return I(o||r).direction==="rtl"&&(s+=z(r.clientWidth,o?o.clientWidth:0)-a),{width:a,height:f,x:s,y:i}}function Be(t){var e=I(t),r=e.overflow,n=e.overflowX,o=e.overflowY;return/auto|scroll|overlay|hidden/.test(r+o+n)}function Ue(t){return["html","body","#document"].indexOf(W(t))>=0?t.ownerDocument.body:$(t)&&Be(t)?t:Ue(me(t))}function ce(t,e){var r;e===void 0&&(e=[]);var n=Ue(t),o=n===((r=t.ownerDocument)==null?void 0:r.body),a=M(n),f=o?[a].concat(a.visualViewport||[],Be(n)?n:[]):n,s=e.concat(f);return o?s:s.concat(ce(me(f)))}function $e(t){return Object.assign({},t,{left:t.x,top:t.y,right:t.x+t.width,bottom:t.y+t.height})}function Ft(t,e){var r=re(t,!1,e==="fixed");return r.top=r.top+t.clientTop,r.left=r.left+t.clientLeft,r.bottom=r.top+t.clientHeight,r.right=r.left+t.clientWidth,r.width=t.clientWidth,r.height=t.clientHeight,r.x=r.left,r.y=r.top,r}function Ge(t,e,r){return e===Me?$e(Ht(t,r)):Y(e)?Ft(e,r):$e(_t(_(t)))}function Xt(t){var e=ce(me(t)),r=["absolute","fixed"].indexOf(I(t).position)>=0,n=r&&$(t)?pe(t):t;return Y(n)?e.filter(function(o){return Y(o)&&We(o,n)&&W(o)!=="body"}):[]}function Yt(t,e,r,n){var o=e==="clippingParents"?Xt(t):[].concat(e),a=[].concat(o,[r]),f=a[0],s=a.reduce(function(i,c){var p=Ge(t,c,n);return i.top=z(p.top,i.top),i.right=he(p.right,i.right),i.bottom=he(p.bottom,i.bottom),i.left=z(p.left,i.left),i},Ge(t,f,n));return s.width=s.right-s.left,s.height=s.bottom-s.top,s.x=s.left,s.y=s.top,s}function Je(t){var e=t.reference,r=t.element,n=t.placement,o=n?V(n):null,a=n?ne(n):null,f=e.x+e.width/2-r.width/2,s=e.y+e.height/2-r.height/2,i;switch(o){case j:i={x:f,y:e.y-r.height};break;case N:i={x:f,y:e.y+e.height};break;case L:i={x:e.x+e.width,y:s};break;case B:i={x:e.x-r.width,y:s};break;default:i={x:e.x,y:e.y}}var c=o?Te(o):null;if(c!=null){var p=c==="y"?"height":"width";switch(a){case ee:i[c]=i[c]-(e[p]/2-r[p]/2);break;case ie:i[c]=i[c]+(e[p]/2-r[p]/2);break}}return i}function le(t,e){e===void 0&&(e={});var r=e,n=r.placement,o=n===void 0?t.placement:n,a=r.strategy,f=a===void 0?t.strategy:a,s=r.boundary,i=s===void 0?dt:s,c=r.rootBoundary,p=c===void 0?Me:c,h=r.elementContext,b=h===void 0?se:h,l=r.altBoundary,x=l===void 0?!1:l,m=r.padding,v=m===void 0?0:m,w=Fe(typeof v!="number"?v:Xe(v,ae)),A=b===se?vt:se,E=t.rects.popper,u=t.elements[x?A:b],g=Yt(Y(u)?u:u.contextElement||_(t.elements.popper),i,p,f),d=re(t.elements.reference),O=Je({reference:d,element:E,strategy:"absolute",placement:o}),P=$e(Object.assign({},E,O)),D=b===se?P:d,S={top:g.top-D.top+w.top,bottom:D.bottom-g.bottom+w.bottom,left:g.left-D.left+w.left,right:D.right-g.right+w.right},y=t.modifiersData.offset;if(b===se&&y){var T=y[o];Object.keys(S).forEach(function(R){var G=[L,N].indexOf(R)>=0?1:-1,J=[j,N].indexOf(R)>=0?"y":"x";S[R]+=T[J]*G})}return S}function zt(t,e){e===void 0&&(e={});var r=e,n=r.placement,o=r.boundary,a=r.rootBoundary,f=r.padding,s=r.flipVariations,i=r.allowedAutoPlacements,c=i===void 0?Ie:i,p=ne(n),h=p?s?Ve:Ve.filter(function(x){return ne(x)===p}):ae,b=h.filter(function(x){return c.indexOf(x)>=0});b.length===0&&(b=h,process.env.NODE_ENV!=="production"&&console.error(["Popper: The `allowedAutoPlacements` option did not allow any","placements. Ensure the `placement` option matches the variation","of the allowed placements.",'For example, "auto" cannot be used to allow "bottom-start".','Use "auto-start" instead.'].join(" ")));var l=b.reduce(function(x,m){return x[m]=le(t,{placement:m,boundary:o,rootBoundary:a,padding:f})[V(m)],x},{});return Object.keys(l).sort(function(x,m){return l[x]-l[m]})}function Ut(t){if(V(t)===ve)return[];var e=ye(t);return[ze(t),e,ze(e)]}function Gt(t){var e=t.state,r=t.options,n=t.name;if(!e.modifiersData[n]._skip){for(var o=r.mainAxis,a=o===void 0?!0:o,f=r.altAxis,s=f===void 0?!0:f,i=r.fallbackPlacements,c=r.padding,p=r.boundary,h=r.rootBoundary,b=r.altBoundary,l=r.flipVariations,x=l===void 0?!0:l,m=r.allowedAutoPlacements,v=e.options.placement,w=V(v),A=w===v,E=i||(A||!x?[ye(v)]:Ut(v)),u=[v].concat(E).reduce(function(oe,X){return oe.concat(V(X)===ve?zt(e,{placement:X,boundary:p,rootBoundary:h,padding:c,flipVariations:x,allowedAutoPlacements:m}):X)},[]),g=e.rects.reference,d=e.rects.popper,O=new Map,P=!0,D=u[0],S=0;S<u.length;S++){var y=u[S],T=V(y),R=ne(y)===ee,G=[j,N].indexOf(T)>=0,J=G?"width":"height",k=le(e,{placement:y,boundary:p,rootBoundary:h,altBoundary:b,padding:c}),q=G?R?L:B:R?N:j;g[J]>d[J]&&(q=ye(q));var be=ye(q),K=[];if(a&&K.push(k[T]<=0),s&&K.push(k[q]<=0,k[be]<=0),K.every(function(oe){return oe})){D=y,P=!1;break}O.set(y,K)}if(P)for(var we=x?3:1,ke=function(X){var de=u.find(function(Oe){var Q=O.get(Oe);if(Q)return Q.slice(0,X).every(function(Ce){return Ce})});if(de)return D=de,"break"},ue=we;ue>0;ue--){var xe=ke(ue);if(xe==="break")break}e.placement!==D&&(e.modifiersData[n]._skip=!0,e.placement=D,e.reset=!0)}}const Jt={name:"flip",enabled:!0,phase:"main",fn:Gt,requiresIfExists:["offset"],data:{_skip:!1}};function Ke(t,e,r){return r===void 0&&(r={x:0,y:0}),{top:t.top-e.height-r.y,right:t.right-e.width+r.x,bottom:t.bottom-e.height+r.y,left:t.left-e.width-r.x}}function Qe(t){return[j,L,N,B].some(function(e){return t[e]>=0})}function Kt(t){var e=t.state,r=t.name,n=e.rects.reference,o=e.rects.popper,a=e.modifiersData.preventOverflow,f=le(e,{elementContext:"reference"}),s=le(e,{altBoundary:!0}),i=Ke(f,n),c=Ke(s,o,a),p=Qe(i),h=Qe(c);e.modifiersData[r]={referenceClippingOffsets:i,popperEscapeOffsets:c,isReferenceHidden:p,hasPopperEscaped:h},e.attributes.popper=Object.assign({},e.attributes.popper,{"data-popper-reference-hidden":p,"data-popper-escaped":h})}const Qt={name:"hide",enabled:!0,phase:"main",requiresIfExists:["preventOverflow"],fn:Kt};function Zt(t,e,r){var n=V(t),o=[B,j].indexOf(n)>=0?-1:1,a=typeof r=="function"?r(Object.assign({},e,{placement:t})):r,f=a[0],s=a[1];return f=f||0,s=(s||0)*o,[B,L].indexOf(n)>=0?{x:s,y:f}:{x:f,y:s}}function er(t){var e=t.state,r=t.options,n=t.name,o=r.offset,a=o===void 0?[0,0]:o,f=Ie.reduce(function(p,h){return p[h]=Zt(h,e.rects,a),p},{}),s=f[e.placement],i=s.x,c=s.y;e.modifiersData.popperOffsets!=null&&(e.modifiersData.popperOffsets.x+=i,e.modifiersData.popperOffsets.y+=c),e.modifiersData[n]=f}const tr={name:"offset",enabled:!0,phase:"main",requires:["popperOffsets"],fn:er};function rr(t){var e=t.state,r=t.name;e.modifiersData[r]=Je({reference:e.rects.reference,element:e.rects.popper,strategy:"absolute",placement:e.placement})}const nr={name:"popperOffsets",enabled:!0,phase:"read",fn:rr,data:{}};function or(t){return t==="x"?"y":"x"}function ar(t){var e=t.state,r=t.options,n=t.name,o=r.mainAxis,a=o===void 0?!0:o,f=r.altAxis,s=f===void 0?!1:f,i=r.boundary,c=r.rootBoundary,p=r.altBoundary,h=r.padding,b=r.tether,l=b===void 0?!0:b,x=r.tetherOffset,m=x===void 0?0:x,v=le(e,{boundary:i,rootBoundary:c,padding:h,altBoundary:p}),w=V(e.placement),A=ne(e.placement),E=!A,u=Te(w),g=or(u),d=e.modifiersData.popperOffsets,O=e.rects.reference,P=e.rects.popper,D=typeof m=="function"?m(Object.assign({},e.rects,{placement:e.placement})):m,S=typeof D=="number"?{mainAxis:D,altAxis:D}:Object.assign({mainAxis:0,altAxis:0},D),y=e.modifiersData.offset?e.modifiersData.offset[e.placement]:null,T={x:0,y:0};if(!!d){if(a){var R,G=u==="y"?j:B,J=u==="y"?N:L,k=u==="y"?"height":"width",q=d[u],be=q+v[G],K=q-v[J],we=l?-P[k]/2:0,ke=A===ee?O[k]:P[k],ue=A===ee?-P[k]:-O[k],xe=e.elements.arrow,oe=l&&xe?Se(xe):{width:0,height:0},X=e.modifiersData["arrow#persistent"]?e.modifiersData["arrow#persistent"].padding:_e(),de=X[G],Oe=X[J],Q=fe(0,O[k],oe[k]),Ce=E?O[k]/2-we-Q-de-S.mainAxis:ke-Q-de-S.mainAxis,Tr=E?-O[k]/2+we+Q+Oe+S.mainAxis:ue+Q+Oe+S.mainAxis,Ne=e.elements.arrow&&pe(e.elements.arrow),Rr=Ne?u==="y"?Ne.clientTop||0:Ne.clientLeft||0:0,ot=(R=y==null?void 0:y[u])!=null?R:0,jr=q+Ce-ot-Rr,Br=q+Tr-ot,at=fe(l?he(be,jr):be,q,l?z(K,Br):K);d[u]=at,T[u]=at-q}if(s){var it,$r=u==="x"?j:B,kr=u==="x"?N:L,Z=d[g],Ee=g==="y"?"height":"width",st=Z+v[$r],pt=Z-v[kr],Le=[j,B].indexOf(w)!==-1,ft=(it=y==null?void 0:y[g])!=null?it:0,ct=Le?st:Z-O[Ee]-P[Ee]-ft+S.altAxis,lt=Le?Z+O[Ee]+P[Ee]-ft-S.altAxis:pt,ut=l&&Le?Rt(ct,Z,lt):fe(l?ct:st,Z,l?lt:pt);d[g]=ut,T[g]=ut-Z}e.modifiersData[n]=T}}const ir={name:"preventOverflow",enabled:!0,phase:"main",fn:ar,requiresIfExists:["offset"]};function sr(t){return{scrollLeft:t.scrollLeft,scrollTop:t.scrollTop}}function pr(t){return t===M(t)||!$(t)?Re(t):sr(t)}function fr(t){var e=t.getBoundingClientRect(),r=te(e.width)/t.offsetWidth||1,n=te(e.height)/t.offsetHeight||1;return r!==1||n!==1}function cr(t,e,r){r===void 0&&(r=!1);var n=$(e),o=$(e)&&fr(e),a=_(e),f=re(t,o,r),s={scrollLeft:0,scrollTop:0},i={x:0,y:0};return(n||!n&&!r)&&((W(e)!=="body"||Be(a))&&(s=pr(e)),$(e)?(i=re(e,!0),i.x+=e.clientLeft,i.y+=e.clientTop):a&&(i.x=je(a))),{x:f.left+s.scrollLeft-i.x,y:f.top+s.scrollTop-i.y,width:f.width,height:f.height}}function lr(t){var e=new Map,r=new Set,n=[];t.forEach(function(a){e.set(a.name,a)});function o(a){r.add(a.name);var f=[].concat(a.requires||[],a.requiresIfExists||[]);f.forEach(function(s){if(!r.has(s)){var i=e.get(s);i&&o(i)}}),n.push(a)}return t.forEach(function(a){r.has(a.name)||o(a)}),n}function ur(t){var e=lr(t);return Ae.reduce(function(r,n){return r.concat(e.filter(function(o){return o.phase===n}))},[])}function dr(t){var e;return function(){return e||(e=new Promise(function(r){Promise.resolve().then(function(){e=void 0,r(t())})})),e}}function F(t){for(var e=arguments.length,r=new Array(e>1?e-1:0),n=1;n<e;n++)r[n-1]=arguments[n];return[].concat(r).reduce(function(o,a){return o.replace(/%s/,a)},t)}var U='Popper: modifier "%s" provided an invalid %s property, expected %s but got %s',vr='Popper: modifier "%s" requires "%s", but "%s" modifier is not available',Ze=["name","enabled","phase","fn","effect","requires","options"];function hr(t){t.forEach(function(e){[].concat(Object.keys(e),Ze).filter(function(r,n,o){return o.indexOf(r)===n}).forEach(function(r){switch(r){case"name":typeof e.name!="string"&&console.error(F(U,String(e.name),'"name"','"string"','"'+String(e.name)+'"'));break;case"enabled":typeof e.enabled!="boolean"&&console.error(F(U,e.name,'"enabled"','"boolean"','"'+String(e.enabled)+'"'));break;case"phase":Ae.indexOf(e.phase)<0&&console.error(F(U,e.name,'"phase"',"either "+Ae.join(", "),'"'+String(e.phase)+'"'));break;case"fn":typeof e.fn!="function"&&console.error(F(U,e.name,'"fn"','"function"','"'+String(e.fn)+'"'));break;case"effect":e.effect!=null&&typeof e.effect!="function"&&console.error(F(U,e.name,'"effect"','"function"','"'+String(e.fn)+'"'));break;case"requires":e.requires!=null&&!Array.isArray(e.requires)&&console.error(F(U,e.name,'"requires"','"array"','"'+String(e.requires)+'"'));break;case"requiresIfExists":Array.isArray(e.requiresIfExists)||console.error(F(U,e.name,'"requiresIfExists"','"array"','"'+String(e.requiresIfExists)+'"'));break;case"options":case"data":break;default:console.error('PopperJS: an invalid property has been provided to the "'+e.name+'" modifier, valid properties are '+Ze.map(function(n){return'"'+n+'"'}).join(", ")+'; but "'+r+'" was provided.')}e.requires&&e.requires.forEach(function(n){t.find(function(o){return o.name===n})==null&&console.error(F(vr,String(e.name),n,n))})})})}function mr(t,e){var r=new Set;return t.filter(function(n){var o=e(n);if(!r.has(o))return r.add(o),!0})}function gr(t){var e=t.reduce(function(r,n){var o=r[n.name];return r[n.name]=o?Object.assign({},o,n,{options:Object.assign({},o.options,n.options),data:Object.assign({},o.data,n.data)}):n,r},{});return Object.keys(e).map(function(r){return e[r]})}var et="Popper: Invalid reference or popper argument provided. They must be either a DOM element or virtual element.",yr="Popper: An infinite loop in the modifiers cycle has been detected! The cycle has been interrupted to prevent a browser crash.",tt={placement:"bottom",modifiers:[],strategy:"absolute"};function rt(){for(var t=arguments.length,e=new Array(t),r=0;r<t;r++)e[r]=arguments[r];return!e.some(function(n){return!(n&&typeof n.getBoundingClientRect=="function")})}function br(t){t===void 0&&(t={});var e=t,r=e.defaultModifiers,n=r===void 0?[]:r,o=e.defaultOptions,a=o===void 0?tt:o;return function(s,i,c){c===void 0&&(c=a);var p={placement:"bottom",orderedModifiers:[],options:Object.assign({},tt,a),modifiersData:{},elements:{reference:s,popper:i},attributes:{},styles:{}},h=[],b=!1,l={state:p,setOptions:function(w){var A=typeof w=="function"?w(p.options):w;m(),p.options=Object.assign({},a,p.options,A),p.scrollParents={reference:Y(s)?ce(s):s.contextElement?ce(s.contextElement):[],popper:ce(i)};var E=ur(gr([].concat(n,p.options.modifiers)));if(p.orderedModifiers=E.filter(function(y){return y.enabled}),process.env.NODE_ENV!=="production"){var u=mr([].concat(E,p.options.modifiers),function(y){var T=y.name;return T});if(hr(u),V(p.options.placement)===ve){var g=p.orderedModifiers.find(function(y){var T=y.name;return T==="flip"});g||console.error(['Popper: "auto" placements require the "flip" modifier be',"present and enabled to work."].join(" "))}var d=I(i),O=d.marginTop,P=d.marginRight,D=d.marginBottom,S=d.marginLeft;[O,P,D,S].some(function(y){return parseFloat(y)})&&console.warn(['Popper: CSS "margin" styles cannot be used to apply padding',"between the popper and its reference element or boundary.","To replicate margin, use the `offset` modifier, as well as","the `padding` option in the `preventOverflow` and `flip`","modifiers."].join(" "))}return x(),l.update()},forceUpdate:function(){if(!b){var w=p.elements,A=w.reference,E=w.popper;if(!rt(A,E)){process.env.NODE_ENV!=="production"&&console.error(et);return}p.rects={reference:cr(A,pe(E),p.options.strategy==="fixed"),popper:Se(E)},p.reset=!1,p.placement=p.options.placement,p.orderedModifiers.forEach(function(y){return p.modifiersData[y.name]=Object.assign({},y.data)});for(var u=0,g=0;g<p.orderedModifiers.length;g++){if(process.env.NODE_ENV!=="production"&&(u+=1,u>100)){console.error(yr);break}if(p.reset===!0){p.reset=!1,g=-1;continue}var d=p.orderedModifiers[g],O=d.fn,P=d.options,D=P===void 0?{}:P,S=d.name;typeof O=="function"&&(p=O({state:p,options:D,name:S,instance:l})||p)}}},update:dr(function(){return new Promise(function(v){l.forceUpdate(),v(p)})}),destroy:function(){m(),b=!0}};if(!rt(s,i))return process.env.NODE_ENV!=="production"&&console.error(et),l;l.setOptions(c).then(function(v){!b&&c.onFirstUpdate&&c.onFirstUpdate(v)});function x(){p.orderedModifiers.forEach(function(v){var w=v.name,A=v.options,E=A===void 0?{}:A,u=v.effect;if(typeof u=="function"){var g=u({state:p,name:w,instance:l,options:E}),d=function(){};h.push(g||d)}})}function m(){h.forEach(function(v){return v()}),h=[]}return l}}var wr=[It,nr,Mt,Dt,tr,Jt,ir,kt,Qt],xr=br({defaultModifiers:wr});const Or={mixins:[{props:{offset:Array,popper:Object,show:Boolean,target:{type:HTMLElement,required:!0},top:Boolean,bottom:Boolean,left:Boolean,right:Boolean},data(){return{currentShow:!1,popperInstance:null}},methods:{open(){this.currentShow=!0},close(){this.currentShow=!1}},computed:{placement(){return this.bottom?"bottom":this.left?"left":this.right?"right":"top"},tooltipClasses(){return{show:this.currentShow,[`bs-tooltip-${this.placement}`]:!0}}},mounted(){this.popperInstance=xr(this.target,this.$el,Object.assign({placement:this.placement,modifiers:[{name:"offset",options:{offset:[0,6]}},{name:"arrow",options:{element:this.$refs.arrow}}]},this.popper)),this.$nextTick(()=>{this.currentShow=this.show})},beforeDestroy(){this.popperInstance&&this.popperInstance.destroy()}}]},Nr="",Er=(t,e)=>{const r=t.__vccOpts||t;for(const[n,o]of e)r[n]=o;return r},Ar={ref:"arrow",class:"tooltip-arrow"},Pr={ref:"inner",class:"tooltip-inner"};function Dr(t,e,r,n,o,a){return C.openBlock(),C.createElementBlock("div",{class:C.normalizeClass(["tooltip",t.tooltipClasses]),role:"tooltip"},[C.createElementVNode("div",Ar,null,512),C.createElementVNode("div",Pr,[C.renderSlot(t.$slots,"default")],512)],2)}const nt=Er(Or,[["render",Dr]]);function Sr(t,e={}){function r(n,o={}){const a=document.createElement("template"),f=n.getAttribute("data-tooltip")||"",s=C.h(nt,Object.assign({target:n,show:!0},o),()=>f);C.render(s,a);const[i]=[...a.children];return document.body.append(i),{el:i,vnode:s,close(){var c;(c=s.component)==null||c.ctx.close(),setTimeout(()=>i.remove(),150)}}}t.mixin({created(){console.log("created")}}),t.directive("tooltip",(n,o)=>{n.getAttribute("data-tooltip")||n.setAttribute("data-tooltip",n.getAttribute("title")),n.removeAttribute("title"),n.addEventListener("mouseover",a=>{clearTimeout(n.timer),n.tooltip||(n.timer=setTimeout(()=>{n.tooltip=r(n,{top:o.modifiers.top,bottom:o.modifiers.bottom,left:o.modifiers.left,right:o.modifiers.right})},1e3))}),n.addEventListener("mouseout",a=>{clearTimeout(n.timer),n.tooltip&&(n.timer=setTimeout(()=>{n.tooltip&&n.tooltip.close(),n.tooltip=null},1e3))})})}H.Tooltip=nt,H.TooltipPlugin=Sr,Object.defineProperties(H,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
1
|
+
(function(l,o){typeof exports=="object"&&typeof module<"u"?o(exports,require("vue"),require("@popperjs/core")):typeof define=="function"&&define.amd?define(["exports","vue","@popperjs/core"],o):(l=typeof globalThis<"u"?globalThis:l||self,o(l.Tooltip={},l.Vue,l.PopperjsCore))})(this,function(l,o,E){"use strict";const v=o.defineComponent({props:{offset:Array,popper:Object,show:Boolean,target:{type:HTMLElement,required:!0},title:String,placement:String,top:Boolean,bottom:Boolean,left:Boolean,right:Boolean},data(){return{currentShow:!1,popperInstance:null}},computed:{computedPlacement(){return this.placement?this.placement:this.bottom?"bottom":this.left?"left":this.right?"right":"top"},tooltipClasses(){return{show:this.currentShow,[`bs-tooltip-${this.computedPlacement}`]:!0}}},mounted(){this.popperInstance=E.createPopper(this.target,this.$el,Object.assign({placement:this.computedPlacement,modifiers:[{name:"offset",options:{offset:[0,6]}},{name:"arrow",options:{element:this.$refs.arrow}}]},this.popper)),this.$nextTick(()=>{this.currentShow=this.show})},beforeUnmount(){this.popperInstance&&this.popperInstance.destroy()},methods:{open(){this.currentShow=!0},close(){this.currentShow=!1}}}),x=o.defineComponent({mixins:[v]}),M="",S=(c,m)=>{const a=c.__vccOpts||c;for(const[d,i]of m)a[d]=i;return a},y={ref:"arrow",class:"tooltip-arrow"},A={ref:"inner",class:"tooltip-inner"};function j(c,m,a,d,i,g){return o.openBlock(),o.createElementBlock("div",{class:o.normalizeClass(["tooltip",c.tooltipClasses]),role:"tooltip"},[o.createElementVNode("div",y,null,512),o.createElementVNode("div",A,[o.renderSlot(c.$slots,"default",{},()=>[o.createTextVNode(o.toDisplayString(c.title),1)])],512)],2)}const T=S(x,[["render",j]]);function N(c,m={}){const a=new Map,d=Object.assign({delay:void 0,prefix:"data-tooltip",triggers:{open:["mouseover:350"],close:["mouseout:100"]}},m),i=d.prefix.replace(/[-]+$/,""),g=new RegExp(`^${i}-`);function O(e){return Array.from(e.attributes).map(t=>[t.name,t.value]).filter(([t])=>t==="title"||t.match(g)).map(([t,n])=>[t.replace(new RegExp(g),""),n]).reduce((t,n)=>Object.assign(t,{[n[0]]:n[1]}),{})}function P(e,t={},n){const s=document.createElement("template"),r=o.h(T,Object.assign({target:e,show:!0},t));o.render(r,s);const[p]=[...s.children];return document.body.append(p),()=>{var f;a.delete(n),(f=r.component)==null||f.ctx.close(),setTimeout(()=>p.remove(),150)}}function b(e,t={}){var $,w;const n=Object.assign({title:e.getAttribute(i)},t,O(e));if(!n.title||e.hasAttribute(`${i}-id`))return;const s=Math.random().toString(36).slice(2,7);let r,p;e.setAttribute(`${i}-id`,s),e.removeAttribute("title");function f(u=0){clearTimeout(p),r||(p=setTimeout(()=>{document.contains(e)&&(r=P(e,n,s),a.set(s,r))},u))}function h(u=0){clearTimeout(p),r&&(p=setTimeout(()=>{r&&r(),r=null},u))}function _(u,C){const[L,B]=u.split(":");e.addEventListener(L,()=>C(Number(B||0)))}((($=e.getAttribute(`${i}-trigger-open`))==null?void 0:$.split(","))||d.triggers.open).map(u=>_(u,f)),(((w=e.getAttribute(`${i}-trigger-close`))==null?void 0:w.split(","))||d.triggers.close).map(u=>_(u,h))}c.mixin({mounted(){let e=this.$el;this.$el instanceof Text&&(e=this.$el.parentNode),e instanceof HTMLElement&&b(e);const t=document.createTreeWalker(e,NodeFilter.SHOW_ALL,s=>s instanceof Element?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_REJECT);for(;t.nextNode();)t.currentNode instanceof Element&&b(t.currentNode);new MutationObserver(s=>{for(const{removedNodes:r}of s)for(const p of r)for(const f of p.querySelectorAll(`[${i}-id]`)){const h=a.get(f.getAttribute(`${i}-id`));h&&h()}}).observe(e,{childList:!0})}}),c.directive("tooltip",{created(e,t){b(e,Object.assign({},t.modifiers,t.value))},beforeUnmount(e){const t=e.getAttribute(`${i}-id`),n=a.get(t);console.log("beforeUnmount"),n&&n()}})}l.Tooltip=T,l.TooltipPlugin=N,Object.defineProperties(l,{__esModule:{value:!0},[Symbol.toStringTag]:{value:"Module"}})});
|
|
2
|
+
//# sourceMappingURL=tooltip.umd.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tooltip.umd.js","sources":["../src/Popper.ts","../src/Tooltip.vue","../src/TooltipPlugin.ts"],"sourcesContent":["import { createPopper } from '@popperjs/core';\nimport { defineComponent } from 'vue';\n\nexport default defineComponent({\n\n props: {\n offset: Array,\n\n popper: Object,\n\n show: Boolean,\n\n target: {\n type: HTMLElement,\n required: true\n },\n\n title: String,\n\n placement: String,\n\n top: Boolean,\n\n bottom: Boolean,\n\n left: Boolean,\n\n right: Boolean,\n },\n \n data() {\n return {\n currentShow: false,\n popperInstance: null\n };\n },\n\n computed: {\n computedPlacement() {\n if(this.placement) {\n return this.placement;\n }\n\n if(this.bottom) {\n return 'bottom';\n }\n\n if(this.left) {\n return 'left';\n }\n\n if(this.right) {\n return 'right';\n }\n\n return 'top';\n },\n tooltipClasses() {\n return {\n show: this.currentShow,\n [`bs-tooltip-${this.computedPlacement}`]: true\n };\n }\n },\n\n mounted() {\n this.popperInstance = createPopper(this.target, this.$el, Object.assign({\n placement: this.computedPlacement,\n modifiers: [\n {\n name: 'offset',\n options: {\n offset: [0, 6]\n },\n },\n {\n name: 'arrow',\n options: {\n element: this.$refs.arrow,\n },\n },\n ],\n }, this.popper));\n\n this.$nextTick(() => {\n this.currentShow = this.show;\n });\n },\n\n beforeUnmount() {\n this.popperInstance && this.popperInstance.destroy();\n },\n\n methods: {\n\n open() {\n this.currentShow = true;\n },\n\n close() {\n this.currentShow = false;\n }\n\n }\n\n});","<script lang=\"ts\">\n// @ts-ignore\nimport { defineComponent } from 'vue';\nimport Popper from './Popper';\n\nexport default defineComponent({\n mixins: [\n Popper\n ]\n});\n</script>\n\n<template>\n <div\n class=\"tooltip\"\n :class=\"tooltipClasses\"\n role=\"tooltip\">\n <div\n ref=\"arrow\"\n class=\"tooltip-arrow\" />\n <div\n ref=\"inner\"\n class=\"tooltip-inner\">\n <slot>{{ title }}</slot>\n </div>\n </div>\n</template>\n\n<style>\n.tooltip:not(.show) {\n z-index: -1;\n}\n</style>","import type { App } from 'vue';\nimport { h, render } from 'vue';\nimport Tooltip from './Tooltip.vue';\n\ntype TooltipPluginOptions = {\n delay?: number,\n prefix: string,\n triggers: {\n open: string[],\n close: string[],\n }\n}\n\nexport default function (app: App, opts: Partial<TooltipPluginOptions> = {}) {\n const tooltips: Map<string,Function> = new Map;\n\n const options: TooltipPluginOptions = Object.assign({\n delay: undefined,\n prefix: 'data-tooltip',\n triggers: {\n open: ['mouseover:350'],\n close: ['mouseout:100'],\n }\n }, opts);\n\n const prefix = options.prefix.replace(/[-]+$/, '');\n const prefixRegExp = new RegExp(`^${prefix}\\-`);\n\n function getAttributes(el: Element): Record<string,any> {\n return Array.from(el.attributes)\n .map(a => [a.name, a.value])\n .filter(([key]) => key === 'title' || key.match(prefixRegExp))\n .map(([key, value]) => [key.replace(new RegExp(prefixRegExp), ''), value])\n .reduce((carry, attr) => Object.assign(carry, { [attr[0]]: attr[1] }), {});\n }\n\n function createTooltip(target: Element, props: Record<string,any> = {}, hash: string): Function {\n const container = document.createElement('template');\n \n const vnode = h(Tooltip, Object.assign({\n target,\n show: true\n }, props));\n \n render(vnode, container);\n \n const [el] = [...container.children];\n \n document.body.append(el);\n \n return () => {\n tooltips.delete(hash);\n\n // @ts-ignore\n vnode.component?.ctx.close();\n \n // @todo: Make the animation rate (150) dynamic. Should get value \n // from the CSS transition duration.\n setTimeout(() => el.remove(), 150);\n };\n }\n\n function init(target: Element, props = {}) {\n const properties: Record<string,any> = Object.assign({\n title: target.getAttribute(prefix)\n }, props, getAttributes(target));\n\n // If the properties don't have a title, ignore this target.\n if(!properties.title || target.hasAttribute(`${prefix}-id`)) {\n return;\n }\n\n // Create a unique \"hash\" to show the node has been initialized.\n // This prevents double initializing on the same element.\n const hash = Math.random().toString(36).slice(2, 7);\n \n // Create the instance vars.\n let tooltip: Function|null, timer: number;\n\n //target.setAttribute(prefix, properties.title);\n target.setAttribute(`${prefix}-id`, hash);\n target.removeAttribute('title');\n\n function open(delay = 0) {\n clearTimeout(timer);\n\n if(!tooltip) {\n timer = setTimeout(() => {\n // Do a check before creating the tooltip to ensure the dom\n // element still exists. Its possible for the element to\n // be removed after the timeout delay runs.\n if(document.contains(target)) {\n tooltip = createTooltip(target, properties, hash);\n tooltips.set(hash, tooltip);\n }\n }, delay);\n }\n }\n\n function close(delay = 0) {\n clearTimeout(timer);\n\n if(tooltip) {\n timer = setTimeout(() => {\n tooltip && tooltip();\n tooltip = null;\n }, delay);\n } \n }\n\n function addEventListener(trigger: string, fn: Function) {\n const [ event, delayString ] = trigger.split(':');\n\n target.addEventListener(event, () => fn(Number(delayString || 0)));\n }\n\n (target.getAttribute(`${prefix}-trigger-open`)?.split(',') || options.triggers.open).map(trigger => addEventListener(trigger, open));\n (target.getAttribute(`${prefix}-trigger-close`)?.split(',') || options.triggers.close).map(trigger => addEventListener(trigger, close));\n }\n \n app.mixin({\n mounted() {\n let el = this.$el;\n\n if(this.$el instanceof Text) {\n el = this.$el.parentNode;\n }\n\n if(el instanceof HTMLElement) {\n init(el);\n }\n\n // Create the tree walker.\n const walker = document.createTreeWalker(\n el,\n NodeFilter.SHOW_ALL,\n (node: Node) => {\n if(!(node instanceof Element)) {\n return NodeFilter.FILTER_REJECT;\n }\n \n return NodeFilter.FILTER_ACCEPT;\n }\n );\n\n // Step through and alert all child nodes\n while(walker.nextNode()) {\n if(walker.currentNode instanceof Element) {\n init(<Element> walker.currentNode);\n }\n }\n\n const observer = new MutationObserver((changes) => {\n for(const { removedNodes } of changes) {\n for(const node of removedNodes) {\n for(const el of (node as Element).querySelectorAll(`[${prefix}-id]`)) {\n const tooltip = tooltips.get(\n el.getAttribute(`${prefix}-id`) as string\n );\n\n tooltip && tooltip();\n }\n } \n }\n });\n\n observer.observe(el, { childList: true });\n }\n });\n\n app.directive('tooltip', {\n created(target, binding) {\n init(target, Object.assign({}, binding.modifiers, binding.value));\n },\n beforeUnmount(target) {\n const id = target.getAttribute(`${prefix}-id`);\n const tooltip = tooltips.get(id);\n\n console.log('beforeUnmount');\n\n tooltip && tooltip();\n }\n });\n}"],"names":["Popper","defineComponent","createPopper","_sfc_main","_hoisted_1","_hoisted_2","_sfc_render","_ctx","_cache","$props","$setup","$data","$options","_openBlock","_createElementBlock","_normalizeClass","_createElementVNode","_renderSlot","TooltipPlugin","app","opts","tooltips","options","prefix","prefixRegExp","getAttributes","el","a","key","value","carry","attr","createTooltip","target","props","hash","container","vnode","h","Tooltip","render","_a","init","properties","tooltip","timer","open","delay","close","addEventListener","trigger","fn","event","delayString","_b","walker","node","changes","removedNodes","binding","id"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vue-interface/tooltip",
|
|
3
|
-
"version": "1.0.0-beta.
|
|
3
|
+
"version": "1.0.0-beta.4",
|
|
4
4
|
"description": "A Vue tooltip component.",
|
|
5
5
|
"files": [
|
|
6
6
|
"index.ts",
|
|
@@ -13,20 +13,17 @@
|
|
|
13
13
|
"browserslist": "last 2 versions, > 0.5%, ie >= 11",
|
|
14
14
|
"exports": {
|
|
15
15
|
".": {
|
|
16
|
-
"
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
}
|
|
16
|
+
"import": "./dist/tooltip.es.js",
|
|
17
|
+
"require": "./dist/tooltip.umd.js",
|
|
18
|
+
"types": "./index.ts"
|
|
19
|
+
},
|
|
20
|
+
"./tailwindcss": "./tailwindcss/index.js",
|
|
21
|
+
"./tailwindcss/safelist": "./tailwindcss/safelist.js"
|
|
20
22
|
},
|
|
21
23
|
"scripts": {
|
|
22
24
|
"dev": "vite",
|
|
23
25
|
"build": "vite build",
|
|
24
|
-
"preview": "vite preview"
|
|
25
|
-
"pre-release": "npm run build; git add . -A; git commit -m 'pre-release commit'",
|
|
26
|
-
"release-patch": "npm run pre-release && npm version patch -m \"%s\" && npm run release;",
|
|
27
|
-
"release-minor": "npm run pre-release && npm version minor -m \"%s\" && npm run release;",
|
|
28
|
-
"release-major": "npm run pre-release && npm version major -m \"%s\" && npm run release;",
|
|
29
|
-
"release": "git add . -A; git commit; git push --tags origin; npm publish;"
|
|
26
|
+
"preview": "vite preview"
|
|
30
27
|
},
|
|
31
28
|
"repository": {
|
|
32
29
|
"type": "git",
|
|
@@ -44,7 +41,7 @@
|
|
|
44
41
|
"bugs": {
|
|
45
42
|
"url": "https://github.com/vue-interface/tooltip/issues"
|
|
46
43
|
},
|
|
47
|
-
"homepage": "https://github.com/vue-interface/tooltip
|
|
44
|
+
"homepage": "https://github.com/vue-interface/tooltip",
|
|
48
45
|
"dependencies": {
|
|
49
46
|
"@popperjs/core": "^2.4.4"
|
|
50
47
|
},
|
|
@@ -52,17 +49,15 @@
|
|
|
52
49
|
"vue": "^3.0.0"
|
|
53
50
|
},
|
|
54
51
|
"devDependencies": {
|
|
55
|
-
"@rollup/plugin-babel": "^6.0.0",
|
|
56
52
|
"@vitejs/plugin-vue": "^3.0.1",
|
|
53
|
+
"@vue-interface/eslint-config": "^1.0.0-beta.0",
|
|
57
54
|
"autoprefixer": "^10.4.2",
|
|
58
|
-
"babel-eslint": "^10.1.0",
|
|
59
|
-
"babel-preset-vue": "^2.0.2",
|
|
60
55
|
"change-case": "^4.1.2",
|
|
61
56
|
"eslint": "^8.27.0",
|
|
62
|
-
"eslint-plugin-vue": "^9.7.0",
|
|
63
57
|
"pascalcase": "^2.0.0",
|
|
64
58
|
"postcss": "^8.4.6",
|
|
65
59
|
"tailwindcss": "^3.0.18",
|
|
60
|
+
"typescript": "^5.0.2",
|
|
66
61
|
"vite": "^3.0.0",
|
|
67
62
|
"vite-plugin-dts": "^1.7.1",
|
|
68
63
|
"vue": "^3.2.37"
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { createPopper } from '@popperjs/core';
|
|
2
|
+
import { defineComponent } from 'vue';
|
|
2
3
|
|
|
3
|
-
export default {
|
|
4
|
+
export default defineComponent({
|
|
4
5
|
|
|
5
6
|
props: {
|
|
6
7
|
offset: Array,
|
|
@@ -14,6 +15,10 @@ export default {
|
|
|
14
15
|
required: true
|
|
15
16
|
},
|
|
16
17
|
|
|
18
|
+
title: String,
|
|
19
|
+
|
|
20
|
+
placement: String,
|
|
21
|
+
|
|
17
22
|
top: Boolean,
|
|
18
23
|
|
|
19
24
|
bottom: Boolean,
|
|
@@ -30,20 +35,12 @@ export default {
|
|
|
30
35
|
};
|
|
31
36
|
},
|
|
32
37
|
|
|
33
|
-
methods: {
|
|
34
|
-
|
|
35
|
-
open() {
|
|
36
|
-
this.currentShow = true;
|
|
37
|
-
},
|
|
38
|
-
|
|
39
|
-
close() {
|
|
40
|
-
this.currentShow = false;
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
},
|
|
44
|
-
|
|
45
38
|
computed: {
|
|
46
|
-
|
|
39
|
+
computedPlacement() {
|
|
40
|
+
if(this.placement) {
|
|
41
|
+
return this.placement;
|
|
42
|
+
}
|
|
43
|
+
|
|
47
44
|
if(this.bottom) {
|
|
48
45
|
return 'bottom';
|
|
49
46
|
}
|
|
@@ -61,14 +58,14 @@ export default {
|
|
|
61
58
|
tooltipClasses() {
|
|
62
59
|
return {
|
|
63
60
|
show: this.currentShow,
|
|
64
|
-
[`bs-tooltip-${this.
|
|
61
|
+
[`bs-tooltip-${this.computedPlacement}`]: true
|
|
65
62
|
};
|
|
66
63
|
}
|
|
67
64
|
},
|
|
68
65
|
|
|
69
66
|
mounted() {
|
|
70
67
|
this.popperInstance = createPopper(this.target, this.$el, Object.assign({
|
|
71
|
-
placement: this.
|
|
68
|
+
placement: this.computedPlacement,
|
|
72
69
|
modifiers: [
|
|
73
70
|
{
|
|
74
71
|
name: 'offset',
|
|
@@ -90,8 +87,20 @@ export default {
|
|
|
90
87
|
});
|
|
91
88
|
},
|
|
92
89
|
|
|
93
|
-
|
|
90
|
+
beforeUnmount() {
|
|
94
91
|
this.popperInstance && this.popperInstance.destroy();
|
|
92
|
+
},
|
|
93
|
+
|
|
94
|
+
methods: {
|
|
95
|
+
|
|
96
|
+
open() {
|
|
97
|
+
this.currentShow = true;
|
|
98
|
+
},
|
|
99
|
+
|
|
100
|
+
close() {
|
|
101
|
+
this.currentShow = false;
|
|
102
|
+
}
|
|
103
|
+
|
|
95
104
|
}
|
|
96
105
|
|
|
97
|
-
};
|
|
106
|
+
});
|