@elliemae/ds-popper 2.2.0-alpha.3 → 2.2.0-next.2
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/cjs/DSPopper.js +97 -117
- package/cjs/PopperContent.js +114 -106
- package/cjs/PopperImpl.js +167 -104
- package/cjs/getArrowStylesBySize.js +45 -59
- package/cjs/index.js +19 -37
- package/cjs/interaction.js +9 -37
- package/cjs/positions.js +23 -67
- package/cjs/props.js +61 -62
- package/esm/DSPopper.js +80 -85
- package/esm/PopperContent.js +102 -74
- package/esm/PopperImpl.js +148 -69
- package/esm/getArrowStylesBySize.js +36 -30
- package/esm/index.js +4 -8
- package/esm/interaction.js +4 -8
- package/esm/positions.js +18 -38
- package/esm/props.js +54 -31
- package/package.json +3 -3
- package/cjs/DSPopper.js.map +0 -7
- package/cjs/PopperContent.js.map +0 -7
- package/cjs/PopperImpl.js.map +0 -7
- package/cjs/getArrowStylesBySize.js.map +0 -7
- package/cjs/index.js.map +0 -7
- package/cjs/interaction.js.map +0 -7
- package/cjs/positions.js.map +0 -7
- package/cjs/props.js.map +0 -7
- package/esm/DSPopper.js.map +0 -7
- package/esm/PopperContent.js.map +0 -7
- package/esm/PopperImpl.js.map +0 -7
- package/esm/getArrowStylesBySize.js.map +0 -7
- package/esm/index.js.map +0 -7
- package/esm/interaction.js.map +0 -7
- package/esm/positions.js.map +0 -7
- package/esm/props.js.map +0 -7
package/esm/PopperImpl.js
CHANGED
|
@@ -1,22 +1,39 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import
|
|
4
|
-
import
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
6
|
+
import _jsx from '@babel/runtime/helpers/esm/jsx';
|
|
7
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
8
|
+
import { Component } from 'react';
|
|
9
|
+
import { get, isFunction, isDOMTypeElement, mergeRefs, getComponentFromProps } from '@elliemae/ds-utilities';
|
|
10
|
+
import { Manager, Reference } from 'react-popper';
|
|
11
|
+
export { Reference } from 'react-popper';
|
|
12
|
+
import memoizeOne from 'memoize-one';
|
|
13
|
+
import PopperContent from './PopperContent.js';
|
|
14
|
+
export { default as PopperContent } from './PopperContent.js';
|
|
15
|
+
import { Interaction } from './interaction.js';
|
|
16
|
+
import { jsx } from 'react/jsx-runtime';
|
|
17
|
+
|
|
18
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
19
|
+
|
|
20
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
8
21
|
class PopperImpl extends Component {
|
|
22
|
+
// we use safeIsMounted because isMounted is not allowed by React.
|
|
9
23
|
constructor(props) {
|
|
10
24
|
super(props);
|
|
11
25
|
this.safeIsMounted = false;
|
|
12
|
-
this.handlePopperPlacementChange = memoizeOne(
|
|
13
|
-
const {
|
|
26
|
+
this.handlePopperPlacementChange = memoizeOne(placement => {
|
|
27
|
+
const {
|
|
28
|
+
onPlacementChange
|
|
29
|
+
} = this.props;
|
|
14
30
|
onPlacementChange(placement);
|
|
15
31
|
});
|
|
16
32
|
this.state = {
|
|
17
33
|
isOpen: false,
|
|
18
34
|
destroyed: true
|
|
19
|
-
};
|
|
35
|
+
}; // TODO: Fix the autobinding to remove this!!
|
|
36
|
+
|
|
20
37
|
this.handleMouseEnter = this.handleMouseEnter.bind(this);
|
|
21
38
|
this.handleMouseLeave = this.handleMouseLeave.bind(this);
|
|
22
39
|
this.handleTriggerClick = this.handleTriggerClick.bind(this);
|
|
@@ -26,34 +43,55 @@ class PopperImpl extends Component {
|
|
|
26
43
|
this.handleDestroyContent = this.handleDestroyContent.bind(this);
|
|
27
44
|
this.handleContentMouseEnter = this.handleContentMouseEnter.bind(this);
|
|
28
45
|
this.handleContentMouseLeave = this.handleContentMouseLeave.bind(this);
|
|
29
|
-
}
|
|
46
|
+
} // this is needed to prevent setState on unmounted components
|
|
47
|
+
|
|
48
|
+
|
|
30
49
|
componentDidMount() {
|
|
31
50
|
this.safeIsMounted = true;
|
|
32
51
|
}
|
|
52
|
+
|
|
33
53
|
componentDidUpdate() {
|
|
34
|
-
const {
|
|
54
|
+
const {
|
|
55
|
+
isOpen,
|
|
56
|
+
destroyed
|
|
57
|
+
} = this.state;
|
|
58
|
+
|
|
35
59
|
if (isOpen === true && destroyed === true) {
|
|
36
|
-
|
|
60
|
+
// eslint-disable-next-line react/no-did-update-set-state
|
|
61
|
+
this.setState({
|
|
62
|
+
destroyed: false
|
|
63
|
+
});
|
|
37
64
|
}
|
|
38
65
|
}
|
|
66
|
+
|
|
39
67
|
componentWillUnmount() {
|
|
40
68
|
this.safeIsMounted = false;
|
|
41
69
|
}
|
|
70
|
+
|
|
42
71
|
static getDerivedStateFromProps(nextProps, prevState) {
|
|
43
|
-
const {
|
|
44
|
-
|
|
72
|
+
const {
|
|
73
|
+
isOpen
|
|
74
|
+
} = nextProps;
|
|
75
|
+
const {
|
|
76
|
+
prevPropIsOpen
|
|
77
|
+
} = prevState; // todo: this causes multiple rerenders
|
|
78
|
+
|
|
45
79
|
if (isOpen !== prevPropIsOpen) {
|
|
46
80
|
return {
|
|
47
81
|
isOpen,
|
|
48
82
|
prevPropIsOpen: isOpen
|
|
49
83
|
};
|
|
50
84
|
}
|
|
85
|
+
|
|
51
86
|
return null;
|
|
52
87
|
}
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
88
|
+
|
|
89
|
+
getInteractionObject(interaction) {
|
|
90
|
+
let referenceProps = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
91
|
+
const {
|
|
92
|
+
isOpen
|
|
93
|
+
} = this.props;
|
|
94
|
+
if (isOpen !== undefined) return {};
|
|
57
95
|
return {
|
|
58
96
|
[Interaction.CLICK]: {
|
|
59
97
|
handlers: {
|
|
@@ -76,45 +114,66 @@ class PopperImpl extends Component {
|
|
|
76
114
|
canClose: () => true
|
|
77
115
|
};
|
|
78
116
|
}
|
|
117
|
+
|
|
79
118
|
setOpen(opening) {
|
|
80
|
-
const {
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
119
|
+
const {
|
|
120
|
+
onOpen
|
|
121
|
+
} = this.props;
|
|
122
|
+
const {
|
|
123
|
+
prevPropIsOpen
|
|
124
|
+
} = this.state;
|
|
125
|
+
if (!this.safeIsMounted) return;
|
|
126
|
+
|
|
127
|
+
if (prevPropIsOpen === undefined) {
|
|
85
128
|
this.setState({
|
|
86
129
|
isOpen: opening,
|
|
87
130
|
destroyed: false
|
|
88
131
|
});
|
|
89
132
|
}
|
|
133
|
+
|
|
90
134
|
onOpen(opening);
|
|
91
135
|
}
|
|
136
|
+
|
|
92
137
|
open() {
|
|
93
138
|
clearTimeout(this.closeTimer);
|
|
94
|
-
const {
|
|
139
|
+
const {
|
|
140
|
+
delayOpen
|
|
141
|
+
} = this.props;
|
|
95
142
|
this.openTimer = setTimeout(() => this.setOpen(true), delayOpen);
|
|
96
143
|
}
|
|
144
|
+
|
|
97
145
|
close() {
|
|
98
146
|
clearTimeout(this.openTimer);
|
|
99
|
-
const {
|
|
147
|
+
const {
|
|
148
|
+
delayClose,
|
|
149
|
+
onClose = () => null
|
|
150
|
+
} = this.props;
|
|
100
151
|
this.closeTimer = setTimeout(() => {
|
|
101
152
|
this.setOpen(false);
|
|
102
153
|
onClose();
|
|
103
154
|
}, delayClose);
|
|
104
155
|
}
|
|
156
|
+
|
|
105
157
|
handleTriggerClick(e) {
|
|
106
|
-
const {
|
|
107
|
-
|
|
158
|
+
const {
|
|
159
|
+
triggerComponent
|
|
160
|
+
} = this.props;
|
|
161
|
+
const {
|
|
162
|
+
onClick
|
|
163
|
+
} = get(triggerComponent, 'props') || {};
|
|
108
164
|
this.open();
|
|
109
|
-
if (isFunction(onClick))
|
|
110
|
-
onClick(e);
|
|
165
|
+
if (isFunction(onClick)) onClick(e);
|
|
111
166
|
}
|
|
167
|
+
|
|
112
168
|
handleContentMouseEnter() {
|
|
113
169
|
this.isMouseOverContent = true;
|
|
114
170
|
}
|
|
171
|
+
|
|
115
172
|
handleContentMouseLeave() {
|
|
116
173
|
this.isMouseOverContent = false;
|
|
117
|
-
const {
|
|
174
|
+
const {
|
|
175
|
+
onClose = () => null
|
|
176
|
+
} = this.props;
|
|
118
177
|
setTimeout(() => {
|
|
119
178
|
if (!this.isMouseOverTarget) {
|
|
120
179
|
this.setOpen(false);
|
|
@@ -122,10 +181,12 @@ class PopperImpl extends Component {
|
|
|
122
181
|
}
|
|
123
182
|
}, 10);
|
|
124
183
|
}
|
|
184
|
+
|
|
125
185
|
handleMouseEnter() {
|
|
126
186
|
this.isMouseOverTarget = true;
|
|
127
187
|
this.open();
|
|
128
188
|
}
|
|
189
|
+
|
|
129
190
|
handleMouseLeave() {
|
|
130
191
|
this.isMouseOverTarget = false;
|
|
131
192
|
setTimeout(() => {
|
|
@@ -134,35 +195,57 @@ class PopperImpl extends Component {
|
|
|
134
195
|
}
|
|
135
196
|
}, 10);
|
|
136
197
|
}
|
|
198
|
+
|
|
137
199
|
updatePopoverState(popperData) {
|
|
138
200
|
this.handlePopperPlacementChange(popperData.placement);
|
|
139
201
|
return popperData;
|
|
140
202
|
}
|
|
203
|
+
|
|
141
204
|
handleDestroyContent() {
|
|
142
|
-
this.setState({
|
|
205
|
+
this.setState({
|
|
206
|
+
destroyed: true
|
|
207
|
+
});
|
|
143
208
|
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
const
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
209
|
+
|
|
210
|
+
renderTarget(_ref) {
|
|
211
|
+
let {
|
|
212
|
+
ref
|
|
213
|
+
} = _ref;
|
|
214
|
+
const {
|
|
215
|
+
isOpen
|
|
216
|
+
} = this.state;
|
|
217
|
+
const {
|
|
218
|
+
triggerComponent,
|
|
219
|
+
interactionType,
|
|
220
|
+
renderReference
|
|
221
|
+
} = this.props;
|
|
222
|
+
const componentInnerRef = get(triggerComponent, ['props', 'innerRef'], () => null);
|
|
223
|
+
const compRef = isDOMTypeElement(triggerComponent) ? {
|
|
224
|
+
ref
|
|
225
|
+
} : {
|
|
226
|
+
innerRef: mergeRefs(ref, componentInnerRef)
|
|
155
227
|
};
|
|
228
|
+
const triggerHandler = this.getInteractionObject(interactionType, triggerComponent.props).handlers;
|
|
229
|
+
|
|
230
|
+
const targetProps = _objectSpread(_objectSpread(_objectSpread({}, triggerHandler), compRef), {}, {
|
|
231
|
+
'aria-haspopup': true,
|
|
232
|
+
'aria-expanded': isOpen
|
|
233
|
+
});
|
|
234
|
+
|
|
156
235
|
if (renderReference) {
|
|
157
|
-
return renderReference({
|
|
158
|
-
ref
|
|
159
|
-
|
|
160
|
-
});
|
|
236
|
+
return renderReference(_objectSpread({
|
|
237
|
+
ref
|
|
238
|
+
}, targetProps));
|
|
161
239
|
}
|
|
240
|
+
|
|
162
241
|
return getComponentFromProps(triggerComponent, targetProps);
|
|
163
242
|
}
|
|
243
|
+
|
|
164
244
|
render() {
|
|
165
|
-
const {
|
|
245
|
+
const {
|
|
246
|
+
isOpen,
|
|
247
|
+
destroyed
|
|
248
|
+
} = this.state;
|
|
166
249
|
const {
|
|
167
250
|
placement,
|
|
168
251
|
interactionType,
|
|
@@ -182,10 +265,11 @@ class PopperImpl extends Component {
|
|
|
182
265
|
zIndex,
|
|
183
266
|
hideIfNotVisible
|
|
184
267
|
} = this.props;
|
|
185
|
-
|
|
268
|
+
|
|
269
|
+
const allModifiers = _objectSpread({
|
|
186
270
|
offset: {
|
|
187
271
|
enabled: showArrow,
|
|
188
|
-
offset:
|
|
272
|
+
offset: "0, ".concat(arrowSize + arrowGap)
|
|
189
273
|
},
|
|
190
274
|
preventOverflow: {
|
|
191
275
|
enabled: true,
|
|
@@ -196,9 +280,9 @@ class PopperImpl extends Component {
|
|
|
196
280
|
enabled: true,
|
|
197
281
|
fn: this.updatePopoverState,
|
|
198
282
|
order: 900
|
|
199
|
-
}
|
|
200
|
-
|
|
201
|
-
|
|
283
|
+
}
|
|
284
|
+
}, modifiers);
|
|
285
|
+
|
|
202
286
|
const triggerHandler = this.getInteractionObject(interactionType).handlers;
|
|
203
287
|
const popperContentProps = {
|
|
204
288
|
hideIfNotVisible,
|
|
@@ -216,28 +300,23 @@ class PopperImpl extends Component {
|
|
|
216
300
|
usePortal,
|
|
217
301
|
openAnimationConfig,
|
|
218
302
|
closeAnimationConfig,
|
|
219
|
-
onMouseEnter: interactionType === Interaction.HOVER ? this.handleContentMouseEnter :
|
|
220
|
-
onMouseLeave: interactionType === Interaction.HOVER ? this.handleContentMouseLeave :
|
|
303
|
+
onMouseEnter: interactionType === Interaction.HOVER ? this.handleContentMouseEnter : undefined,
|
|
304
|
+
onMouseLeave: interactionType === Interaction.HOVER ? this.handleContentMouseLeave : undefined,
|
|
221
305
|
referenceNode,
|
|
222
306
|
zIndex
|
|
223
307
|
};
|
|
224
|
-
|
|
225
|
-
|
|
308
|
+
|
|
309
|
+
if (customPopper && typeof customPopper === 'function') {
|
|
310
|
+
return /*#__PURE__*/_jsx(Manager, {}, void 0, customPopper({
|
|
226
311
|
Reference,
|
|
227
312
|
triggerHandler,
|
|
228
|
-
content:
|
|
229
|
-
...popperContentProps
|
|
230
|
-
})
|
|
313
|
+
content: /*#__PURE__*/jsx(PopperContent, _objectSpread({}, popperContentProps))
|
|
231
314
|
}));
|
|
232
315
|
}
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
}));
|
|
316
|
+
|
|
317
|
+
return /*#__PURE__*/_jsx(Manager, {}, void 0, /*#__PURE__*/_jsx(Reference, {}, void 0, this.renderTarget), /*#__PURE__*/jsx(PopperContent, _objectSpread({}, popperContentProps)));
|
|
236
318
|
}
|
|
319
|
+
|
|
237
320
|
}
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
Reference,
|
|
241
|
-
PopperImpl as default
|
|
242
|
-
};
|
|
243
|
-
//# sourceMappingURL=PopperImpl.js.map
|
|
321
|
+
|
|
322
|
+
export { PopperImpl as default };
|
|
@@ -1,31 +1,37 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
1
|
+
import 'core-js/modules/esnext.async-iterator.filter.js';
|
|
2
|
+
import 'core-js/modules/esnext.iterator.constructor.js';
|
|
3
|
+
import 'core-js/modules/esnext.iterator.filter.js';
|
|
4
|
+
import 'core-js/modules/esnext.async-iterator.for-each.js';
|
|
5
|
+
import 'core-js/modules/esnext.iterator.for-each.js';
|
|
6
|
+
import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
|
|
7
|
+
|
|
8
|
+
function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (Object.getOwnPropertySymbols) { var symbols = Object.getOwnPropertySymbols(object); enumerableOnly && (symbols = symbols.filter(function (sym) { return Object.getOwnPropertyDescriptor(object, sym).enumerable; })), keys.push.apply(keys, symbols); } return keys; }
|
|
9
|
+
|
|
10
|
+
function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
|
|
11
|
+
|
|
12
|
+
const getArrowStylesBySize = function (position) {
|
|
13
|
+
let size = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 30;
|
|
14
|
+
const basePosition = position && position.split('-')[0];
|
|
15
|
+
return _objectSpread({
|
|
16
|
+
borderWidth: size
|
|
17
|
+
}, {
|
|
18
|
+
top: {
|
|
19
|
+
top: '100% !important',
|
|
20
|
+
transform: "rotateZ(".concat(180, "deg)")
|
|
21
|
+
},
|
|
22
|
+
right: {
|
|
23
|
+
right: '100%',
|
|
24
|
+
transform: "rotateZ(".concat(-90, "deg)")
|
|
25
|
+
},
|
|
26
|
+
bottom: {
|
|
27
|
+
bottom: '100%',
|
|
28
|
+
transform: "rotateZ(".concat(0, "deg)")
|
|
29
|
+
},
|
|
30
|
+
left: {
|
|
31
|
+
left: '100%',
|
|
32
|
+
transform: "rotateZ(".concat(90, "deg)")
|
|
33
|
+
}
|
|
34
|
+
}[basePosition]);
|
|
25
35
|
};
|
|
26
|
-
|
|
27
|
-
export {
|
|
28
|
-
getArrowStylesBySize_default as default,
|
|
29
|
-
getArrowStylesBySize
|
|
30
|
-
};
|
|
31
|
-
//# sourceMappingURL=getArrowStylesBySize.js.map
|
|
36
|
+
|
|
37
|
+
export { getArrowStylesBySize as default, getArrowStylesBySize };
|
package/esm/index.js
CHANGED
|
@@ -1,8 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
export
|
|
3
|
-
export
|
|
4
|
-
|
|
5
|
-
export {
|
|
6
|
-
default2 as default
|
|
7
|
-
};
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
1
|
+
export { DSPopper, DSPopperWithSchema, DSPopper as default } from './DSPopper.js';
|
|
2
|
+
export { getArrowStylesBySize } from './getArrowStylesBySize.js';
|
|
3
|
+
export { Interaction as PopperInteractions, interactions } from './interaction.js';
|
|
4
|
+
export { Position as PopperPositions, positions } from './positions.js';
|
package/esm/interaction.js
CHANGED
|
@@ -1,11 +1,7 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
const Interaction = {
|
|
3
|
-
CLICK:
|
|
4
|
-
HOVER:
|
|
2
|
+
CLICK: 'click',
|
|
3
|
+
HOVER: 'hover'
|
|
5
4
|
};
|
|
6
5
|
const interactions = [Interaction.CLICK, Interaction.HOVER];
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
interactions
|
|
10
|
-
};
|
|
11
|
-
//# sourceMappingURL=interaction.js.map
|
|
6
|
+
|
|
7
|
+
export { Interaction, interactions };
|
package/esm/positions.js
CHANGED
|
@@ -1,40 +1,20 @@
|
|
|
1
|
-
import * as React from "react";
|
|
2
1
|
const Position = {
|
|
3
|
-
AUTO:
|
|
4
|
-
AUTO_START:
|
|
5
|
-
AUTO_END:
|
|
6
|
-
BOTTOM:
|
|
7
|
-
BOTTOM_START:
|
|
8
|
-
BOTTOM_END:
|
|
9
|
-
LEFT:
|
|
10
|
-
LEFT_END:
|
|
11
|
-
LEFT_START:
|
|
12
|
-
RIGHT:
|
|
13
|
-
RIGHT_END:
|
|
14
|
-
RIGHT_START:
|
|
15
|
-
TOP:
|
|
16
|
-
TOP_START:
|
|
17
|
-
TOP_END:
|
|
2
|
+
AUTO: 'auto',
|
|
3
|
+
AUTO_START: 'auto-start',
|
|
4
|
+
AUTO_END: 'auto-end',
|
|
5
|
+
BOTTOM: 'bottom',
|
|
6
|
+
BOTTOM_START: 'bottom-start',
|
|
7
|
+
BOTTOM_END: 'bottom-end',
|
|
8
|
+
LEFT: 'left',
|
|
9
|
+
LEFT_END: 'left-end',
|
|
10
|
+
LEFT_START: 'left-start',
|
|
11
|
+
RIGHT: 'right',
|
|
12
|
+
RIGHT_END: 'right-end',
|
|
13
|
+
RIGHT_START: 'right-start',
|
|
14
|
+
TOP: 'top',
|
|
15
|
+
TOP_START: 'top-start',
|
|
16
|
+
TOP_END: 'top-end'
|
|
18
17
|
};
|
|
19
|
-
const positions = [
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
Position.AUTO,
|
|
23
|
-
Position.TOP_START,
|
|
24
|
-
Position.TOP,
|
|
25
|
-
Position.TOP_END,
|
|
26
|
-
Position.RIGHT_START,
|
|
27
|
-
Position.RIGHT,
|
|
28
|
-
Position.RIGHT_END,
|
|
29
|
-
Position.BOTTOM_START,
|
|
30
|
-
Position.BOTTOM,
|
|
31
|
-
Position.BOTTOM_END,
|
|
32
|
-
Position.LEFT_START,
|
|
33
|
-
Position.LEFT,
|
|
34
|
-
Position.LEFT_END
|
|
35
|
-
];
|
|
36
|
-
export {
|
|
37
|
-
Position,
|
|
38
|
-
positions
|
|
39
|
-
};
|
|
40
|
-
//# sourceMappingURL=positions.js.map
|
|
18
|
+
const positions = [Position.AUTO_START, Position.AUTO_END, Position.AUTO, Position.TOP_START, Position.TOP, Position.TOP_END, Position.RIGHT_START, Position.RIGHT, Position.RIGHT_END, Position.BOTTOM_START, Position.BOTTOM, Position.BOTTOM_END, Position.LEFT_START, Position.LEFT, Position.LEFT_END];
|
|
19
|
+
|
|
20
|
+
export { Position, positions };
|
package/esm/props.js
CHANGED
|
@@ -1,30 +1,44 @@
|
|
|
1
|
-
import
|
|
2
|
-
import {
|
|
3
|
-
import {
|
|
4
|
-
|
|
1
|
+
import { PropTypes } from 'react-desc';
|
|
2
|
+
import { Position } from './positions.js';
|
|
3
|
+
import { Interaction } from './interaction.js';
|
|
4
|
+
|
|
5
5
|
const popperProps = {
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
6
|
+
/** Hide menu component if trigger component is not visible/scrolled away */
|
|
7
|
+
hideIfNotVisible: PropTypes.bool.description('Hide menu component if trigger component is not visible/scrolled away'),
|
|
8
|
+
|
|
9
|
+
/** props to inject to popper wrapper */
|
|
10
|
+
containerProps: PropTypes.object.description('props to inject to popper wrapper'),
|
|
11
|
+
|
|
12
|
+
/** Space between the arrow and the popup */
|
|
13
|
+
arrowGap: PropTypes.number.description('Space between the arrow and the popup'),
|
|
14
|
+
|
|
15
|
+
/** callback for when menu changes from close to open */
|
|
16
|
+
onOpen: PropTypes.func.description('callback for when menu changes from close to open'),
|
|
17
|
+
|
|
18
|
+
/** callback for when menu changes from open to close */
|
|
19
|
+
onClose: PropTypes.func.description('callback for when menu changes from open to close'),
|
|
20
|
+
|
|
21
|
+
/** Time in ms to delay close of menu */
|
|
22
|
+
delayClose: PropTypes.number.description('Time in ms to delay close of menu'),
|
|
23
|
+
|
|
24
|
+
/** Time in ms to delay open of menu */
|
|
25
|
+
delayOpen: PropTypes.number.description('Time in ms to delay open of menu'),
|
|
26
|
+
|
|
27
|
+
/** callback for when menu changes placement */
|
|
28
|
+
onPlacementChange: PropTypes.func.description('callback for when menu changes placement'),
|
|
29
|
+
|
|
30
|
+
/** Arrow size */
|
|
31
|
+
arrowSize: PropTypes.number.description('Arrow size'),
|
|
32
|
+
|
|
33
|
+
/** Bem blockname for the popper */
|
|
34
|
+
blockName: PropTypes.oneOfType([PropTypes.string, PropTypes.object]).description('Bem blockname for the popper'),
|
|
35
|
+
triggerComponent: PropTypes.element.description("The component that will open/close the tooltip. \n Cannot be used with disabled elements. \n https://developer.mozilla.org/en-US/docs/Web/HTML/Attributes/disabled").isRequired
|
|
22
36
|
};
|
|
23
37
|
const defaultProps = {
|
|
24
38
|
containerProps: {},
|
|
25
39
|
arrowGap: 8,
|
|
26
40
|
arrowSize: 6,
|
|
27
|
-
blockName:
|
|
41
|
+
blockName: '',
|
|
28
42
|
contentOffset: null,
|
|
29
43
|
contentStyle: null,
|
|
30
44
|
contentComponent: () => null,
|
|
@@ -35,15 +49,27 @@ const defaultProps = {
|
|
|
35
49
|
onClose: () => null,
|
|
36
50
|
onPlacementChange: () => null,
|
|
37
51
|
placement: Position.BOTTOM,
|
|
38
|
-
preventOverflow:
|
|
52
|
+
preventOverflow: 'window',
|
|
39
53
|
showArrow: true,
|
|
40
54
|
closeAnimationConfig: {
|
|
41
|
-
to: {
|
|
42
|
-
|
|
55
|
+
to: {
|
|
56
|
+
transform: 'scale(0.8)',
|
|
57
|
+
opacity: '0'
|
|
58
|
+
},
|
|
59
|
+
config: {
|
|
60
|
+
delay: 80,
|
|
61
|
+
duration: 80
|
|
62
|
+
}
|
|
43
63
|
},
|
|
44
64
|
openAnimationConfig: {
|
|
45
|
-
to: {
|
|
46
|
-
|
|
65
|
+
to: {
|
|
66
|
+
transform: 'scale(1)',
|
|
67
|
+
opacity: '1'
|
|
68
|
+
},
|
|
69
|
+
config: {
|
|
70
|
+
delay: 80,
|
|
71
|
+
duration: 80
|
|
72
|
+
}
|
|
47
73
|
},
|
|
48
74
|
usePortal: true,
|
|
49
75
|
triggerComponent: () => null,
|
|
@@ -53,8 +79,5 @@ const defaultProps = {
|
|
|
53
79
|
triggerRef: () => null,
|
|
54
80
|
hideIfNotVisible: false
|
|
55
81
|
};
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
popperProps
|
|
59
|
-
};
|
|
60
|
-
//# sourceMappingURL=props.js.map
|
|
82
|
+
|
|
83
|
+
export { defaultProps, popperProps };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@elliemae/ds-popper",
|
|
3
|
-
"version": "2.2.0-
|
|
3
|
+
"version": "2.2.0-next.2",
|
|
4
4
|
"license": "MIT",
|
|
5
5
|
"description": "ICE MT - Dimsum - Popper",
|
|
6
6
|
"module": "./esm/index.js",
|
|
@@ -60,8 +60,8 @@
|
|
|
60
60
|
"build": "node ../../scripts/build/build.js"
|
|
61
61
|
},
|
|
62
62
|
"dependencies": {
|
|
63
|
-
"@elliemae/ds-overlay": "2.2.0-
|
|
64
|
-
"@elliemae/ds-utilities": "2.2.0-
|
|
63
|
+
"@elliemae/ds-overlay": "2.2.0-next.2",
|
|
64
|
+
"@elliemae/ds-utilities": "2.2.0-next.2",
|
|
65
65
|
"memoize-one": "~5.1.1",
|
|
66
66
|
"prop-types": "~15.7.2",
|
|
67
67
|
"react-desc": "~4.1.3",
|
package/cjs/DSPopper.js.map
DELETED
|
@@ -1,7 +0,0 @@
|
|
|
1
|
-
{
|
|
2
|
-
"version": 3,
|
|
3
|
-
"sources": ["../../src/DSPopper.tsx", "../../../../scripts/build/transpile/react-shim.js"],
|
|
4
|
-
"sourcesContent": ["import React from 'react';\nimport { describe } from 'react-desc';\nimport PopperImpl from './PopperImpl';\nimport { Position } from './positions';\nimport { Interaction } from './interaction';\nimport { popperProps, defaultProps } from './props';\n\nconst DSPopper = ({\n containerProps,\n arrowGap,\n arrowSize,\n blockName,\n contentOffset,\n contentStyle,\n contentComponent,\n delayClose,\n delayOpen,\n interactionType,\n isOpen, // if this is set DSPopper would be a controlled component if not, an uncontrolled one\n onOpen,\n onClose,\n onPlacementChange,\n placement,\n preventOverflow,\n showArrow,\n closeAnimationConfig,\n openAnimationConfig,\n usePortal,\n triggerComponent,\n wrapExtraComponent,\n getTargetFromChildren,\n getContentFromChildren,\n modifiers,\n triggerRef,\n children: customPopper,\n renderReference,\n referenceNode,\n zIndex,\n hideIfNotVisible,\n}): JSX.Element => (\n <PopperImpl\n arrowGap={arrowGap}\n arrowSize={arrowSize}\n blockName={blockName}\n closeAnimationConfig={closeAnimationConfig}\n containerProps={containerProps}\n contentComponent={contentComponent}\n contentOffset={contentOffset}\n contentStyle={contentStyle}\n delayClose={delayClose}\n delayOpen={delayOpen}\n getContentFromChildren={getContentFromChildren}\n getTargetFromChildren={getTargetFromChildren}\n interactionType={interactionType}\n isOpen={isOpen}\n modifiers={modifiers}\n onOpen={onOpen}\n onClose={onClose}\n onPlacementChange={onPlacementChange}\n openAnimationConfig={openAnimationConfig}\n placement={placement}\n preventOverflow={preventOverflow}\n referenceNode={referenceNode}\n renderReference={renderReference}\n showArrow={showArrow}\n triggerComponent={triggerComponent}\n triggerRef={triggerRef}\n usePortal={usePortal}\n wrapExtraComponent={wrapExtraComponent}\n zIndex={zIndex}\n hideIfNotVisible={hideIfNotVisible}\n >\n {customPopper}\n </PopperImpl>\n);\n\n// @deprecated: There's the NEW (not finished) popover that uses its own popper implementation.\nDSPopper.propTypes = popperProps;\nDSPopper.defaultProps = defaultProps;\n\nconst DSPopperWithSchema = describe(DSPopper);\nDSPopperWithSchema.propTypes = popperProps;\n\nexport { Interaction as PopperInteractions, Position as PopperPositions, DSPopperWithSchema, DSPopper };\n\nexport { interactions } from './interaction';\nexport { positions } from './positions';\n\nexport default DSPopper;\n", "import * as React from 'react';\nexport { React };\n"],
|
|
5
|
-
"mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkB;AAClB,wBAAyB;AACzB,wBAAuB;AACvB,uBAAyB;AACzB,yBAA4B;AAC5B,mBAA0C;AAgF1C,0BAA6B;AAC7B,wBAA0B;AA/E1B,MAAM,WAAW,CAAC;AAAA,EAChB;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,MAEA,mDAAC,2BAAD;AAAA,EACE;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,GAEC;AAKL,SAAS,YAAY;AACrB,SAAS,eAAe;AAExB,MAAM,qBAAqB,gCAAS;AACpC,mBAAmB,YAAY;AAO/B,IAAO,mBAAQ;",
|
|
6
|
-
"names": []
|
|
7
|
-
}
|