huanpenguin-tippy-react 1.0.1
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/LICENSE +21 -0
- package/README.md +420 -0
- package/dist/tippy-react.esm.js +533 -0
- package/dist/tippy-react.esm.js.map +1 -0
- package/dist/tippy-react.umd.js +542 -0
- package/dist/tippy-react.umd.js.map +1 -0
- package/dist/tippy-react.umd.min.js +2 -0
- package/dist/tippy-react.umd.min.js.map +1 -0
- package/headless/dist/tippy-react-headless.esm.js +537 -0
- package/headless/dist/tippy-react-headless.esm.js.map +1 -0
- package/headless/dist/tippy-react-headless.umd.js +546 -0
- package/headless/dist/tippy-react-headless.umd.js.map +1 -0
- package/headless/dist/tippy-react-headless.umd.min.js +2 -0
- package/headless/dist/tippy-react-headless.umd.min.js.map +1 -0
- package/headless/index.d.ts +49 -0
- package/index.d.ts +49 -0
- package/package.json +124 -0
|
@@ -0,0 +1,533 @@
|
|
|
1
|
+
import tippy, { createSingleton } from 'tippy.js';
|
|
2
|
+
export { default as tippy } from 'tippy.js';
|
|
3
|
+
import React, { forwardRef, cloneElement, useLayoutEffect, useEffect, useRef, useState, useMemo } from 'react';
|
|
4
|
+
import { createPortal } from 'react-dom';
|
|
5
|
+
|
|
6
|
+
function _objectWithoutPropertiesLoose(source, excluded) {
|
|
7
|
+
if (source == null) return {};
|
|
8
|
+
var target = {};
|
|
9
|
+
var sourceKeys = Object.keys(source);
|
|
10
|
+
var key, i;
|
|
11
|
+
|
|
12
|
+
for (i = 0; i < sourceKeys.length; i++) {
|
|
13
|
+
key = sourceKeys[i];
|
|
14
|
+
if (excluded.indexOf(key) >= 0) continue;
|
|
15
|
+
target[key] = source[key];
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
return target;
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
var isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined';
|
|
22
|
+
function preserveRef(ref, node) {
|
|
23
|
+
if (ref) {
|
|
24
|
+
if (typeof ref === 'function') {
|
|
25
|
+
ref(node);
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
if ({}.hasOwnProperty.call(ref, 'current')) {
|
|
29
|
+
ref.current = node;
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
function ssrSafeCreateDiv() {
|
|
34
|
+
return isBrowser && document.createElement('div');
|
|
35
|
+
}
|
|
36
|
+
function toDataAttributes(attrs) {
|
|
37
|
+
var dataAttrs = {
|
|
38
|
+
'data-placement': attrs.placement
|
|
39
|
+
};
|
|
40
|
+
|
|
41
|
+
if (attrs.referenceHidden) {
|
|
42
|
+
dataAttrs['data-reference-hidden'] = '';
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
if (attrs.escaped) {
|
|
46
|
+
dataAttrs['data-escaped'] = '';
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
return dataAttrs;
|
|
50
|
+
}
|
|
51
|
+
|
|
52
|
+
function deepEqual(x, y) {
|
|
53
|
+
if (x === y) {
|
|
54
|
+
return true;
|
|
55
|
+
} else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {
|
|
56
|
+
if (Object.keys(x).length !== Object.keys(y).length) {
|
|
57
|
+
return false;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
for (var prop in x) {
|
|
61
|
+
if (y.hasOwnProperty(prop)) {
|
|
62
|
+
if (!deepEqual(x[prop], y[prop])) {
|
|
63
|
+
return false;
|
|
64
|
+
}
|
|
65
|
+
} else {
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
return true;
|
|
71
|
+
} else {
|
|
72
|
+
return false;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
function uniqueByShape(arr) {
|
|
77
|
+
var output = [];
|
|
78
|
+
arr.forEach(function (item) {
|
|
79
|
+
if (!output.find(function (outputItem) {
|
|
80
|
+
return deepEqual(item, outputItem);
|
|
81
|
+
})) {
|
|
82
|
+
output.push(item);
|
|
83
|
+
}
|
|
84
|
+
});
|
|
85
|
+
return output;
|
|
86
|
+
}
|
|
87
|
+
function deepPreserveProps(instanceProps, componentProps) {
|
|
88
|
+
var _instanceProps$popper, _componentProps$poppe;
|
|
89
|
+
|
|
90
|
+
return Object.assign({}, componentProps, {
|
|
91
|
+
popperOptions: Object.assign({}, instanceProps.popperOptions, componentProps.popperOptions, {
|
|
92
|
+
modifiers: uniqueByShape([].concat(((_instanceProps$popper = instanceProps.popperOptions) == null ? void 0 : _instanceProps$popper.modifiers) || [], ((_componentProps$poppe = componentProps.popperOptions) == null ? void 0 : _componentProps$poppe.modifiers) || []))
|
|
93
|
+
})
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
|
|
97
|
+
var createTippyWrapper = function createTippyWrapper(Tippy, defaultProps) {
|
|
98
|
+
return /*#__PURE__*/forwardRef(function TippyWrapper(_ref, _ref2) {
|
|
99
|
+
var children = _ref.children,
|
|
100
|
+
props = _objectWithoutPropertiesLoose(_ref, ["children"]);
|
|
101
|
+
|
|
102
|
+
return (
|
|
103
|
+
/*#__PURE__*/
|
|
104
|
+
// If I spread them separately here, Babel adds the _extends ponyfill for
|
|
105
|
+
// some reason
|
|
106
|
+
React.createElement(Tippy, Object.assign({}, defaultProps, props), children ? /*#__PURE__*/cloneElement(children, {
|
|
107
|
+
ref: function ref(node) {
|
|
108
|
+
var _children$props;
|
|
109
|
+
|
|
110
|
+
preserveRef(_ref2, node);
|
|
111
|
+
preserveRef((_children$props = children.props) == null ? void 0 : _children$props.ref, node);
|
|
112
|
+
}
|
|
113
|
+
}) : null)
|
|
114
|
+
);
|
|
115
|
+
});
|
|
116
|
+
};
|
|
117
|
+
|
|
118
|
+
function updateClassName(box, action, classNames) {
|
|
119
|
+
classNames.split(/\s+/).forEach(function (name) {
|
|
120
|
+
if (name) {
|
|
121
|
+
box.classList[action](name);
|
|
122
|
+
}
|
|
123
|
+
});
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
var classNamePlugin = {
|
|
127
|
+
name: 'className',
|
|
128
|
+
defaultValue: '',
|
|
129
|
+
fn: function fn(instance) {
|
|
130
|
+
var box = instance.popper.firstElementChild;
|
|
131
|
+
|
|
132
|
+
var isDefaultRenderFn = function isDefaultRenderFn() {
|
|
133
|
+
var _instance$props$rende;
|
|
134
|
+
|
|
135
|
+
return !!((_instance$props$rende = instance.props.render) == null ? void 0 : _instance$props$rende.$$tippy);
|
|
136
|
+
};
|
|
137
|
+
|
|
138
|
+
function add() {
|
|
139
|
+
if (instance.props.className && !isDefaultRenderFn()) {
|
|
140
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
141
|
+
console.warn(['@tippyjs/react: Cannot use `className` prop in conjunction with', '`render` prop. Place the className on the element you are', 'rendering.'].join(' '));
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
return;
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
updateClassName(box, 'add', instance.props.className);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
function remove() {
|
|
151
|
+
if (isDefaultRenderFn()) {
|
|
152
|
+
updateClassName(box, 'remove', instance.props.className);
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
return {
|
|
157
|
+
onCreate: add,
|
|
158
|
+
onBeforeUpdate: remove,
|
|
159
|
+
onAfterUpdate: add
|
|
160
|
+
};
|
|
161
|
+
}
|
|
162
|
+
};
|
|
163
|
+
|
|
164
|
+
var useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect;
|
|
165
|
+
function useMutableBox(initialValue) {
|
|
166
|
+
// Using refs instead of state as it's recommended to not store imperative
|
|
167
|
+
// values in state due to memory problems in React(?)
|
|
168
|
+
var ref = useRef();
|
|
169
|
+
|
|
170
|
+
if (!ref.current) {
|
|
171
|
+
ref.current = typeof initialValue === 'function' ? initialValue() : initialValue;
|
|
172
|
+
}
|
|
173
|
+
|
|
174
|
+
return ref.current;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
function TippyGenerator(tippy) {
|
|
178
|
+
function Tippy(_ref) {
|
|
179
|
+
var children = _ref.children,
|
|
180
|
+
content = _ref.content,
|
|
181
|
+
visible = _ref.visible,
|
|
182
|
+
singleton = _ref.singleton,
|
|
183
|
+
render = _ref.render,
|
|
184
|
+
reference = _ref.reference,
|
|
185
|
+
_ref$disabled = _ref.disabled,
|
|
186
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
187
|
+
_ref$ignoreAttributes = _ref.ignoreAttributes,
|
|
188
|
+
ignoreAttributes = _ref$ignoreAttributes === void 0 ? true : _ref$ignoreAttributes,
|
|
189
|
+
__source = _ref.__source,
|
|
190
|
+
__self = _ref.__self,
|
|
191
|
+
restOfNativeProps = _objectWithoutPropertiesLoose(_ref, ["children", "content", "visible", "singleton", "render", "reference", "disabled", "ignoreAttributes", "__source", "__self"]);
|
|
192
|
+
|
|
193
|
+
var isControlledMode = visible !== undefined;
|
|
194
|
+
var isSingletonMode = singleton !== undefined;
|
|
195
|
+
|
|
196
|
+
var _useState = useState(false),
|
|
197
|
+
mounted = _useState[0],
|
|
198
|
+
setMounted = _useState[1];
|
|
199
|
+
|
|
200
|
+
var _useState2 = useState({}),
|
|
201
|
+
attrs = _useState2[0],
|
|
202
|
+
setAttrs = _useState2[1];
|
|
203
|
+
|
|
204
|
+
var _useState3 = useState(),
|
|
205
|
+
singletonContent = _useState3[0],
|
|
206
|
+
setSingletonContent = _useState3[1];
|
|
207
|
+
|
|
208
|
+
var mutableBox = useMutableBox(function () {
|
|
209
|
+
return {
|
|
210
|
+
container: ssrSafeCreateDiv(),
|
|
211
|
+
renders: 1
|
|
212
|
+
};
|
|
213
|
+
});
|
|
214
|
+
var props = Object.assign({
|
|
215
|
+
ignoreAttributes: ignoreAttributes
|
|
216
|
+
}, restOfNativeProps, {
|
|
217
|
+
content: mutableBox.container
|
|
218
|
+
});
|
|
219
|
+
|
|
220
|
+
if (isControlledMode) {
|
|
221
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
222
|
+
['trigger', 'hideOnClick', 'showOnCreate'].forEach(function (nativeStateProp) {
|
|
223
|
+
if (props[nativeStateProp] !== undefined) {
|
|
224
|
+
console.warn(["@tippyjs/react: Cannot specify `" + nativeStateProp + "` prop in", "controlled mode (`visible` prop)"].join(' '));
|
|
225
|
+
}
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
|
|
229
|
+
props.trigger = 'manual';
|
|
230
|
+
props.hideOnClick = false;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
if (isSingletonMode) {
|
|
234
|
+
disabled = true;
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
var computedProps = props;
|
|
238
|
+
var plugins = props.plugins || [];
|
|
239
|
+
|
|
240
|
+
if (render) {
|
|
241
|
+
computedProps = Object.assign({}, props, {
|
|
242
|
+
plugins: isSingletonMode && singleton.data != null ? [].concat(plugins, [{
|
|
243
|
+
fn: function fn() {
|
|
244
|
+
return {
|
|
245
|
+
onTrigger: function onTrigger(instance, event) {
|
|
246
|
+
var node = singleton.data.children.find(function (_ref2) {
|
|
247
|
+
var instance = _ref2.instance;
|
|
248
|
+
return instance.reference === event.currentTarget;
|
|
249
|
+
});
|
|
250
|
+
instance.state.$$activeSingletonInstance = node.instance;
|
|
251
|
+
setSingletonContent(node.content);
|
|
252
|
+
}
|
|
253
|
+
};
|
|
254
|
+
}
|
|
255
|
+
}]) : plugins,
|
|
256
|
+
render: function render() {
|
|
257
|
+
return {
|
|
258
|
+
popper: mutableBox.container
|
|
259
|
+
};
|
|
260
|
+
}
|
|
261
|
+
});
|
|
262
|
+
}
|
|
263
|
+
|
|
264
|
+
var deps = [reference].concat(children ? [children.type] : []); // CREATE
|
|
265
|
+
|
|
266
|
+
useIsomorphicLayoutEffect(function () {
|
|
267
|
+
var element = reference;
|
|
268
|
+
|
|
269
|
+
if (reference && reference.hasOwnProperty('current')) {
|
|
270
|
+
element = reference.current;
|
|
271
|
+
}
|
|
272
|
+
|
|
273
|
+
var instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), Object.assign({}, computedProps, {
|
|
274
|
+
plugins: [classNamePlugin].concat(props.plugins || [])
|
|
275
|
+
}));
|
|
276
|
+
mutableBox.instance = instance;
|
|
277
|
+
|
|
278
|
+
if (disabled) {
|
|
279
|
+
instance.disable();
|
|
280
|
+
}
|
|
281
|
+
|
|
282
|
+
if (visible) {
|
|
283
|
+
instance.show();
|
|
284
|
+
}
|
|
285
|
+
|
|
286
|
+
if (isSingletonMode) {
|
|
287
|
+
singleton.hook({
|
|
288
|
+
instance: instance,
|
|
289
|
+
content: content,
|
|
290
|
+
props: computedProps,
|
|
291
|
+
setSingletonContent: setSingletonContent
|
|
292
|
+
});
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
setMounted(true);
|
|
296
|
+
return function () {
|
|
297
|
+
instance.destroy();
|
|
298
|
+
singleton == null ? void 0 : singleton.cleanup(instance);
|
|
299
|
+
};
|
|
300
|
+
}, deps); // UPDATE
|
|
301
|
+
|
|
302
|
+
useIsomorphicLayoutEffect(function () {
|
|
303
|
+
var _instance$popperInsta;
|
|
304
|
+
|
|
305
|
+
// Prevent this effect from running on 1st render
|
|
306
|
+
if (mutableBox.renders === 1) {
|
|
307
|
+
mutableBox.renders++;
|
|
308
|
+
return;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
var instance = mutableBox.instance;
|
|
312
|
+
instance.setProps(deepPreserveProps(instance.props, computedProps)); // Fixes #264
|
|
313
|
+
|
|
314
|
+
(_instance$popperInsta = instance.popperInstance) == null ? void 0 : _instance$popperInsta.forceUpdate();
|
|
315
|
+
|
|
316
|
+
if (disabled) {
|
|
317
|
+
instance.disable();
|
|
318
|
+
} else {
|
|
319
|
+
instance.enable();
|
|
320
|
+
}
|
|
321
|
+
|
|
322
|
+
if (isControlledMode) {
|
|
323
|
+
if (visible) {
|
|
324
|
+
instance.show();
|
|
325
|
+
} else {
|
|
326
|
+
instance.hide();
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
if (isSingletonMode) {
|
|
331
|
+
singleton.hook({
|
|
332
|
+
instance: instance,
|
|
333
|
+
content: content,
|
|
334
|
+
props: computedProps,
|
|
335
|
+
setSingletonContent: setSingletonContent
|
|
336
|
+
});
|
|
337
|
+
}
|
|
338
|
+
});
|
|
339
|
+
useIsomorphicLayoutEffect(function () {
|
|
340
|
+
var _instance$props$poppe;
|
|
341
|
+
|
|
342
|
+
if (!render) {
|
|
343
|
+
return;
|
|
344
|
+
}
|
|
345
|
+
|
|
346
|
+
var instance = mutableBox.instance;
|
|
347
|
+
instance.setProps({
|
|
348
|
+
popperOptions: Object.assign({}, instance.props.popperOptions, {
|
|
349
|
+
modifiers: [].concat((((_instance$props$poppe = instance.props.popperOptions) == null ? void 0 : _instance$props$poppe.modifiers) || []).filter(function (_ref3) {
|
|
350
|
+
var name = _ref3.name;
|
|
351
|
+
return name !== '$$tippyReact';
|
|
352
|
+
}), [{
|
|
353
|
+
name: '$$tippyReact',
|
|
354
|
+
enabled: true,
|
|
355
|
+
phase: 'beforeWrite',
|
|
356
|
+
requires: ['computeStyles'],
|
|
357
|
+
fn: function fn(_ref4) {
|
|
358
|
+
var _state$modifiersData;
|
|
359
|
+
|
|
360
|
+
var state = _ref4.state;
|
|
361
|
+
var hideData = (_state$modifiersData = state.modifiersData) == null ? void 0 : _state$modifiersData.hide; // WARNING: this is a high-risk path that can cause an infinite
|
|
362
|
+
// loop. This expression _must_ evaluate to false when required
|
|
363
|
+
|
|
364
|
+
if (attrs.placement !== state.placement || attrs.referenceHidden !== (hideData == null ? void 0 : hideData.isReferenceHidden) || attrs.escaped !== (hideData == null ? void 0 : hideData.hasPopperEscaped)) {
|
|
365
|
+
setAttrs({
|
|
366
|
+
placement: state.placement,
|
|
367
|
+
referenceHidden: hideData == null ? void 0 : hideData.isReferenceHidden,
|
|
368
|
+
escaped: hideData == null ? void 0 : hideData.hasPopperEscaped
|
|
369
|
+
});
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
state.attributes.popper = {};
|
|
373
|
+
}
|
|
374
|
+
}])
|
|
375
|
+
})
|
|
376
|
+
});
|
|
377
|
+
}, [attrs.placement, attrs.referenceHidden, attrs.escaped].concat(deps));
|
|
378
|
+
return /*#__PURE__*/React.createElement(React.Fragment, null, children ? /*#__PURE__*/cloneElement(children, {
|
|
379
|
+
ref: function ref(node) {
|
|
380
|
+
var _children$props;
|
|
381
|
+
|
|
382
|
+
mutableBox.ref = node;
|
|
383
|
+
preserveRef((_children$props = children.props) == null ? void 0 : _children$props.ref, node);
|
|
384
|
+
}
|
|
385
|
+
}) : null, mounted && /*#__PURE__*/createPortal(render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content, mutableBox.container));
|
|
386
|
+
}
|
|
387
|
+
|
|
388
|
+
return Tippy;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
function useSingletonGenerator(createSingleton) {
|
|
392
|
+
return function useSingleton(_temp) {
|
|
393
|
+
var _ref = _temp === void 0 ? {} : _temp,
|
|
394
|
+
_ref$disabled = _ref.disabled,
|
|
395
|
+
disabled = _ref$disabled === void 0 ? false : _ref$disabled,
|
|
396
|
+
_ref$overrides = _ref.overrides,
|
|
397
|
+
overrides = _ref$overrides === void 0 ? [] : _ref$overrides;
|
|
398
|
+
|
|
399
|
+
var _useState = useState(false),
|
|
400
|
+
mounted = _useState[0],
|
|
401
|
+
setMounted = _useState[1];
|
|
402
|
+
|
|
403
|
+
var mutableBox = useMutableBox({
|
|
404
|
+
children: [],
|
|
405
|
+
renders: 1
|
|
406
|
+
});
|
|
407
|
+
useIsomorphicLayoutEffect(function () {
|
|
408
|
+
if (!mounted) {
|
|
409
|
+
setMounted(true);
|
|
410
|
+
return;
|
|
411
|
+
}
|
|
412
|
+
|
|
413
|
+
var children = mutableBox.children,
|
|
414
|
+
sourceData = mutableBox.sourceData;
|
|
415
|
+
|
|
416
|
+
if (!sourceData) {
|
|
417
|
+
if (process.env.NODE_ENV !== 'production') {
|
|
418
|
+
console.error(['@tippyjs/react: The `source` variable from `useSingleton()` has', 'not been passed to a <Tippy /> component.'].join(' '));
|
|
419
|
+
}
|
|
420
|
+
|
|
421
|
+
return;
|
|
422
|
+
}
|
|
423
|
+
|
|
424
|
+
var instance = createSingleton(children.map(function (child) {
|
|
425
|
+
return child.instance;
|
|
426
|
+
}), Object.assign({}, sourceData.props, {
|
|
427
|
+
popperOptions: sourceData.instance.props.popperOptions,
|
|
428
|
+
overrides: overrides,
|
|
429
|
+
plugins: [classNamePlugin].concat(sourceData.props.plugins || [])
|
|
430
|
+
}));
|
|
431
|
+
mutableBox.instance = instance;
|
|
432
|
+
|
|
433
|
+
if (disabled) {
|
|
434
|
+
instance.disable();
|
|
435
|
+
}
|
|
436
|
+
|
|
437
|
+
return function () {
|
|
438
|
+
instance.destroy();
|
|
439
|
+
mutableBox.children = children.filter(function (_ref2) {
|
|
440
|
+
var instance = _ref2.instance;
|
|
441
|
+
return !instance.state.isDestroyed;
|
|
442
|
+
});
|
|
443
|
+
};
|
|
444
|
+
}, [mounted]);
|
|
445
|
+
useIsomorphicLayoutEffect(function () {
|
|
446
|
+
if (!mounted) {
|
|
447
|
+
return;
|
|
448
|
+
}
|
|
449
|
+
|
|
450
|
+
if (mutableBox.renders === 1) {
|
|
451
|
+
mutableBox.renders++;
|
|
452
|
+
return;
|
|
453
|
+
}
|
|
454
|
+
|
|
455
|
+
var children = mutableBox.children,
|
|
456
|
+
instance = mutableBox.instance,
|
|
457
|
+
sourceData = mutableBox.sourceData;
|
|
458
|
+
|
|
459
|
+
if (!(instance && sourceData)) {
|
|
460
|
+
return;
|
|
461
|
+
}
|
|
462
|
+
|
|
463
|
+
var _sourceData$props = sourceData.props,
|
|
464
|
+
content = _sourceData$props.content,
|
|
465
|
+
props = _objectWithoutPropertiesLoose(_sourceData$props, ["content"]);
|
|
466
|
+
|
|
467
|
+
instance.setProps(deepPreserveProps(instance.props, Object.assign({}, props, {
|
|
468
|
+
overrides: overrides
|
|
469
|
+
})));
|
|
470
|
+
instance.setInstances(children.map(function (child) {
|
|
471
|
+
return child.instance;
|
|
472
|
+
}));
|
|
473
|
+
|
|
474
|
+
if (disabled) {
|
|
475
|
+
instance.disable();
|
|
476
|
+
} else {
|
|
477
|
+
instance.enable();
|
|
478
|
+
}
|
|
479
|
+
});
|
|
480
|
+
return useMemo(function () {
|
|
481
|
+
var source = {
|
|
482
|
+
data: mutableBox,
|
|
483
|
+
hook: function hook(data) {
|
|
484
|
+
mutableBox.sourceData = data;
|
|
485
|
+
mutableBox.setSingletonContent = data.setSingletonContent;
|
|
486
|
+
},
|
|
487
|
+
cleanup: function cleanup() {
|
|
488
|
+
mutableBox.sourceData = null;
|
|
489
|
+
}
|
|
490
|
+
};
|
|
491
|
+
var target = {
|
|
492
|
+
hook: function hook(data) {
|
|
493
|
+
var _mutableBox$instance, _mutableBox$instance2;
|
|
494
|
+
|
|
495
|
+
mutableBox.children = mutableBox.children.filter(function (_ref3) {
|
|
496
|
+
var instance = _ref3.instance;
|
|
497
|
+
return data.instance !== instance;
|
|
498
|
+
});
|
|
499
|
+
mutableBox.children.push(data);
|
|
500
|
+
|
|
501
|
+
if (((_mutableBox$instance = mutableBox.instance) == null ? void 0 : _mutableBox$instance.state.isMounted) && ((_mutableBox$instance2 = mutableBox.instance) == null ? void 0 : _mutableBox$instance2.state.$$activeSingletonInstance) === data.instance) {
|
|
502
|
+
mutableBox.setSingletonContent == null ? void 0 : mutableBox.setSingletonContent(data.content);
|
|
503
|
+
}
|
|
504
|
+
|
|
505
|
+
if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
|
|
506
|
+
mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
|
|
507
|
+
return child.instance;
|
|
508
|
+
}));
|
|
509
|
+
}
|
|
510
|
+
},
|
|
511
|
+
cleanup: function cleanup(instance) {
|
|
512
|
+
mutableBox.children = mutableBox.children.filter(function (data) {
|
|
513
|
+
return data.instance !== instance;
|
|
514
|
+
});
|
|
515
|
+
|
|
516
|
+
if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {
|
|
517
|
+
mutableBox.instance.setInstances(mutableBox.children.map(function (child) {
|
|
518
|
+
return child.instance;
|
|
519
|
+
}));
|
|
520
|
+
}
|
|
521
|
+
}
|
|
522
|
+
};
|
|
523
|
+
return [source, target];
|
|
524
|
+
}, []);
|
|
525
|
+
};
|
|
526
|
+
}
|
|
527
|
+
|
|
528
|
+
var useSingleton = /*#__PURE__*/useSingletonGenerator(createSingleton);
|
|
529
|
+
var index = /*#__PURE__*/createTippyWrapper( /*#__PURE__*/TippyGenerator(tippy));
|
|
530
|
+
|
|
531
|
+
export default index;
|
|
532
|
+
export { useSingleton };
|
|
533
|
+
//# sourceMappingURL=tippy-react.esm.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tippy-react.esm.js","sources":["../src/utils.js","../src/forwardRef.js","../src/className-plugin.js","../src/util-hooks.js","../src/Tippy.js","../src/useSingleton.js","../src/index.js"],"sourcesContent":["export const isBrowser = typeof window !== 'undefined' && typeof document !== 'undefined'\n\nexport function preserveRef(ref, node) {\n if (ref) {\n if (typeof ref === 'function') {\n ref(node)\n }\n if ({}.hasOwnProperty.call(ref, 'current')) {\n ref.current = node\n }\n }\n}\n\nexport function ssrSafeCreateDiv() {\n return isBrowser && document.createElement('div')\n}\n\nexport function toDataAttributes(attrs) {\n const dataAttrs = {\n 'data-placement': attrs.placement,\n }\n\n if (attrs.referenceHidden) {\n dataAttrs['data-reference-hidden'] = ''\n }\n\n if (attrs.escaped) {\n dataAttrs['data-escaped'] = ''\n }\n\n return dataAttrs\n}\n\nfunction deepEqual(x, y) {\n if (x === y) {\n return true\n } else if (typeof x === 'object' && x != null && typeof y === 'object' && y != null) {\n if (Object.keys(x).length !== Object.keys(y).length) {\n return false\n }\n\n for (const prop in x) {\n if (y.hasOwnProperty(prop)) {\n if (!deepEqual(x[prop], y[prop])) {\n return false\n }\n } else {\n return false\n }\n }\n\n return true\n } else {\n return false\n }\n}\n\nexport function uniqueByShape(arr) {\n const output = []\n\n arr.forEach((item) => {\n if (!output.find((outputItem) => deepEqual(item, outputItem))) {\n output.push(item)\n }\n })\n\n return output\n}\n\nexport function deepPreserveProps(instanceProps, componentProps) {\n return {\n ...componentProps,\n popperOptions: {\n ...instanceProps.popperOptions,\n ...componentProps.popperOptions,\n modifiers: uniqueByShape([\n ...(instanceProps.popperOptions?.modifiers || []),\n ...(componentProps.popperOptions?.modifiers || []),\n ]),\n },\n }\n}\n","import React, { cloneElement, forwardRef } from 'react'\n\nimport { preserveRef } from './utils'\n\nconst createTippyWrapper = (Tippy, defaultProps) =>\n forwardRef(function TippyWrapper({ children, ...props }, ref) {\n return (\n // If I spread them separately here, Babel adds the _extends ponyfill for\n // some reason\n <Tippy {...{ ...defaultProps, ...props }}>\n {children\n ? cloneElement(children, {\n ref(node) {\n preserveRef(ref, node)\n preserveRef(children.props?.ref, node)\n },\n })\n : null}\n </Tippy>\n )\n })\n\nexport default createTippyWrapper\n","function updateClassName(box, action, classNames) {\n classNames.split(/\\s+/).forEach((name) => {\n if (name) {\n box.classList[action](name)\n }\n })\n}\n\nexport const classNamePlugin = {\n name: 'className',\n defaultValue: '',\n fn(instance) {\n const box = instance.popper.firstElementChild\n const isDefaultRenderFn = () => !!instance.props.render?.$$tippy\n\n function add() {\n if (instance.props.className && !isDefaultRenderFn()) {\n if (process.env.NODE_ENV !== 'production') {\n console.warn(\n [\n '@tippyjs/react: Cannot use `className` prop in conjunction with',\n '`render` prop. Place the className on the element you are',\n 'rendering.',\n ].join(' '),\n )\n }\n\n return\n }\n\n updateClassName(box, 'add', instance.props.className)\n }\n\n function remove() {\n if (isDefaultRenderFn()) {\n updateClassName(box, 'remove', instance.props.className)\n }\n }\n\n return {\n onCreate: add,\n onBeforeUpdate: remove,\n onAfterUpdate: add,\n }\n },\n}\n","import { useEffect, useLayoutEffect, useRef } from 'react'\n\nimport { isBrowser } from './utils'\n\nexport const useIsomorphicLayoutEffect = isBrowser ? useLayoutEffect : useEffect\n\nexport function useMutableBox(initialValue) {\n // Using refs instead of state as it's recommended to not store imperative\n // values in state due to memory problems in React(?)\n const ref = useRef()\n\n if (!ref.current) {\n ref.current = typeof initialValue === 'function' ? initialValue() : initialValue\n }\n\n return ref.current\n}\n","import React, { cloneElement, useState } from 'react'\nimport { createPortal } from 'react-dom'\n\nimport { classNamePlugin } from './className-plugin'\nimport { useIsomorphicLayoutEffect, useMutableBox } from './util-hooks'\nimport { deepPreserveProps, preserveRef, ssrSafeCreateDiv, toDataAttributes } from './utils'\n\nexport default function TippyGenerator(tippy) {\n function Tippy({\n children,\n content,\n visible,\n singleton,\n render,\n reference,\n disabled = false,\n ignoreAttributes = true,\n // Filter React development reserved props\n // added by babel-preset-react dev plugins:\n // transform-react-jsx-self and transform-react-jsx-source\n __source,\n __self,\n ...restOfNativeProps\n }) {\n const isControlledMode = visible !== undefined\n const isSingletonMode = singleton !== undefined\n\n const [mounted, setMounted] = useState(false)\n const [attrs, setAttrs] = useState({})\n const [singletonContent, setSingletonContent] = useState()\n const mutableBox = useMutableBox(() => ({\n container: ssrSafeCreateDiv(),\n renders: 1,\n }))\n\n const props = {\n ignoreAttributes,\n ...restOfNativeProps,\n content: mutableBox.container,\n }\n\n if (isControlledMode) {\n if (process.env.NODE_ENV !== 'production') {\n ;['trigger', 'hideOnClick', 'showOnCreate'].forEach((nativeStateProp) => {\n if (props[nativeStateProp] !== undefined) {\n console.warn(\n [\n `@tippyjs/react: Cannot specify \\`${nativeStateProp}\\` prop in`,\n `controlled mode (\\`visible\\` prop)`,\n ].join(' '),\n )\n }\n })\n }\n\n props.trigger = 'manual'\n props.hideOnClick = false\n }\n\n if (isSingletonMode) {\n disabled = true\n }\n\n let computedProps = props\n const plugins = props.plugins || []\n\n if (render) {\n computedProps = {\n ...props,\n plugins:\n isSingletonMode && singleton.data != null\n ? [\n ...plugins,\n {\n fn() {\n return {\n onTrigger(instance, event) {\n const node = singleton.data.children.find(\n ({ instance }) => instance.reference === event.currentTarget,\n )\n instance.state.$$activeSingletonInstance = node.instance\n setSingletonContent(node.content)\n },\n }\n },\n },\n ]\n : plugins,\n render: () => ({ popper: mutableBox.container }),\n }\n }\n\n const deps = [reference].concat(children ? [children.type] : [])\n\n // CREATE\n useIsomorphicLayoutEffect(() => {\n let element = reference\n if (reference && reference.hasOwnProperty('current')) {\n element = reference.current\n }\n\n const instance = tippy(element || mutableBox.ref || ssrSafeCreateDiv(), {\n ...computedProps,\n plugins: [classNamePlugin, ...(props.plugins || [])],\n })\n\n mutableBox.instance = instance\n\n if (disabled) {\n instance.disable()\n }\n\n if (visible) {\n instance.show()\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance,\n content,\n props: computedProps,\n setSingletonContent,\n })\n }\n\n setMounted(true)\n\n return () => {\n instance.destroy()\n singleton?.cleanup(instance)\n }\n }, deps)\n\n // UPDATE\n useIsomorphicLayoutEffect(() => {\n // Prevent this effect from running on 1st render\n if (mutableBox.renders === 1) {\n mutableBox.renders++\n return\n }\n\n const { instance } = mutableBox\n\n instance.setProps(deepPreserveProps(instance.props, computedProps))\n\n // Fixes #264\n instance.popperInstance?.forceUpdate()\n\n if (disabled) {\n instance.disable()\n } else {\n instance.enable()\n }\n\n if (isControlledMode) {\n if (visible) {\n instance.show()\n } else {\n instance.hide()\n }\n }\n\n if (isSingletonMode) {\n singleton.hook({\n instance,\n content,\n props: computedProps,\n setSingletonContent,\n })\n }\n })\n\n useIsomorphicLayoutEffect(() => {\n if (!render) {\n return\n }\n\n const { instance } = mutableBox\n\n instance.setProps({\n popperOptions: {\n ...instance.props.popperOptions,\n modifiers: [\n ...(instance.props.popperOptions?.modifiers || []).filter(\n ({ name }) => name !== '$$tippyReact',\n ),\n {\n name: '$$tippyReact',\n enabled: true,\n phase: 'beforeWrite',\n requires: ['computeStyles'],\n fn({ state }) {\n const hideData = state.modifiersData?.hide\n\n // WARNING: this is a high-risk path that can cause an infinite\n // loop. This expression _must_ evaluate to false when required\n if (\n attrs.placement !== state.placement ||\n attrs.referenceHidden !== hideData?.isReferenceHidden ||\n attrs.escaped !== hideData?.hasPopperEscaped\n ) {\n setAttrs({\n placement: state.placement,\n referenceHidden: hideData?.isReferenceHidden,\n escaped: hideData?.hasPopperEscaped,\n })\n }\n\n state.attributes.popper = {}\n },\n },\n ],\n },\n })\n }, [attrs.placement, attrs.referenceHidden, attrs.escaped, ...deps])\n\n return (\n <>\n {children\n ? cloneElement(children, {\n ref(node) {\n mutableBox.ref = node\n preserveRef(children.props?.ref, node)\n },\n })\n : null}\n {mounted &&\n createPortal(\n render ? render(toDataAttributes(attrs), singletonContent, mutableBox.instance) : content,\n mutableBox.container,\n )}\n </>\n )\n }\n\n return Tippy\n}\n","import { useMemo, useState } from 'react'\n\nimport { classNamePlugin } from './className-plugin'\nimport { useIsomorphicLayoutEffect, useMutableBox } from './util-hooks'\nimport { deepPreserveProps } from './utils'\n\nexport default function useSingletonGenerator(createSingleton) {\n return function useSingleton({ disabled = false, overrides = [] } = {}) {\n const [mounted, setMounted] = useState(false)\n const mutableBox = useMutableBox({\n children: [],\n renders: 1,\n })\n\n useIsomorphicLayoutEffect(() => {\n if (!mounted) {\n setMounted(true)\n return\n }\n\n const { children, sourceData } = mutableBox\n\n if (!sourceData) {\n if (process.env.NODE_ENV !== 'production') {\n console.error(\n [\n '@tippyjs/react: The `source` variable from `useSingleton()` has',\n 'not been passed to a <Tippy /> component.',\n ].join(' '),\n )\n }\n\n return\n }\n\n const instance = createSingleton(\n children.map((child) => child.instance),\n {\n ...sourceData.props,\n popperOptions: sourceData.instance.props.popperOptions,\n overrides,\n plugins: [classNamePlugin, ...(sourceData.props.plugins || [])],\n },\n )\n\n mutableBox.instance = instance\n\n if (disabled) {\n instance.disable()\n }\n\n return () => {\n instance.destroy()\n mutableBox.children = children.filter(({ instance }) => !instance.state.isDestroyed)\n }\n }, [mounted])\n\n useIsomorphicLayoutEffect(() => {\n if (!mounted) {\n return\n }\n\n if (mutableBox.renders === 1) {\n mutableBox.renders++\n return\n }\n\n const { children, instance, sourceData } = mutableBox\n\n if (!(instance && sourceData)) {\n return\n }\n\n const { content, ...props } = sourceData.props\n\n instance.setProps(\n deepPreserveProps(instance.props, {\n ...props,\n overrides,\n }),\n )\n\n instance.setInstances(children.map((child) => child.instance))\n\n if (disabled) {\n instance.disable()\n } else {\n instance.enable()\n }\n })\n\n return useMemo(() => {\n const source = {\n data: mutableBox,\n hook(data) {\n mutableBox.sourceData = data\n mutableBox.setSingletonContent = data.setSingletonContent\n },\n cleanup() {\n mutableBox.sourceData = null\n },\n }\n\n const target = {\n hook(data) {\n mutableBox.children = mutableBox.children.filter(({ instance }) => data.instance !== instance)\n mutableBox.children.push(data)\n\n if (\n mutableBox.instance?.state.isMounted &&\n mutableBox.instance?.state.$$activeSingletonInstance === data.instance\n ) {\n mutableBox.setSingletonContent?.(data.content)\n }\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map((child) => child.instance))\n }\n },\n cleanup(instance) {\n mutableBox.children = mutableBox.children.filter((data) => data.instance !== instance)\n\n if (mutableBox.instance && !mutableBox.instance.state.isDestroyed) {\n mutableBox.instance.setInstances(mutableBox.children.map((child) => child.instance))\n }\n },\n }\n\n return [source, target]\n }, [])\n }\n}\n","import tippy, { createSingleton } from 'tippy.js'\n\nimport forwardRef from './forwardRef'\nimport TippyGenerator from './Tippy'\nimport useSingletonGenerator from './useSingleton'\n\nconst useSingleton = useSingletonGenerator(createSingleton)\n\nexport default forwardRef(TippyGenerator(tippy))\nexport { tippy, useSingleton }\n"],"names":["isBrowser","window","document","preserveRef","ref","node","hasOwnProperty","call","current","ssrSafeCreateDiv","createElement","toDataAttributes","attrs","dataAttrs","placement","referenceHidden","escaped","deepEqual","x","y","Object","keys","length","prop","uniqueByShape","arr","output","forEach","item","find","outputItem","push","deepPreserveProps","instanceProps","componentProps","popperOptions","modifiers","createTippyWrapper","Tippy","defaultProps","forwardRef","TippyWrapper","children","props","cloneElement","updateClassName","box","action","classNames","split","name","classList","classNamePlugin","defaultValue","fn","instance","popper","firstElementChild","isDefaultRenderFn","render","$$tippy","add","className","process","env","NODE_ENV","console","warn","join","remove","onCreate","onBeforeUpdate","onAfterUpdate","useIsomorphicLayoutEffect","useLayoutEffect","useEffect","useMutableBox","initialValue","useRef","TippyGenerator","tippy","content","visible","singleton","reference","disabled","ignoreAttributes","__source","__self","restOfNativeProps","isControlledMode","undefined","isSingletonMode","useState","mounted","setMounted","setAttrs","singletonContent","setSingletonContent","mutableBox","container","renders","nativeStateProp","trigger","hideOnClick","computedProps","plugins","data","onTrigger","event","currentTarget","state","$$activeSingletonInstance","deps","concat","type","element","disable","show","hook","destroy","cleanup","setProps","popperInstance","forceUpdate","enable","hide","filter","enabled","phase","requires","hideData","modifiersData","isReferenceHidden","hasPopperEscaped","attributes","createPortal","useSingletonGenerator","createSingleton","useSingleton","overrides","sourceData","error","map","child","isDestroyed","setInstances","useMemo","source","target","isMounted"],"mappings":"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"}
|