@elliemae/ds-popper 2.2.0 → 2.3.0-alpha.3

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.
@@ -1,81 +1,55 @@
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 { PureComponent } from 'react';
9
- import { Popper } from 'react-popper';
10
- import { Keyframes, animated } from 'react-spring/renderprops';
11
- import getComponentFromProps from '@elliemae/ds-utilities/getComponentFromProps';
12
- import DSOverlay from '@elliemae/ds-overlay';
13
- import { getArrowStylesBySize } from './getArrowStylesBySize.js';
14
- import { jsx } from 'react/jsx-runtime';
15
-
16
- var _svg;
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; }
1
+ import * as React from "react";
2
+ import React2, { PureComponent } from "react";
3
+ import { Popper } from "react-popper";
4
+ import { Keyframes, animated } from "react-spring/renderprops";
5
+ import getComponentFromProps from "@elliemae/ds-utilities/getComponentFromProps";
6
+ import DSOverlay from "@elliemae/ds-overlay";
7
+ import { getArrowStylesBySize } from "./getArrowStylesBySize";
21
8
  const Content = Keyframes.Spring({});
22
9
  class PopperContent extends PureComponent {
23
- // eslint-disable-next-line react/static-property-placement
24
10
  constructor(props) {
25
11
  super(props);
26
12
  this.renderContent = this.renderContent.bind(this);
27
13
  this.renderArrow = this.renderArrow.bind(this);
28
14
  this.handleRestAnimation = this.handleRestAnimation.bind(this);
29
- this.handleRestAnimation = this.handleRestAnimation.bind(this);
30
15
  }
31
-
32
16
  handleRestAnimation() {
33
- const {
34
- isOpen,
35
- onContentDestroyed
36
- } = this.props;
37
-
17
+ const { isOpen, onContentDestroyed } = this.props;
38
18
  if (!isOpen) {
39
19
  onContentDestroyed();
40
20
  }
41
21
  }
42
-
43
- renderArrow(_ref, placement) {
44
- let {
22
+ renderArrow({ ref, style }, placement) {
23
+ const { blockName, showArrow } = this.props;
24
+ if (!showArrow)
25
+ return null;
26
+ return /* @__PURE__ */ React2.createElement("div", {
27
+ key: "popper-arrow",
45
28
  ref,
46
- style
47
- } = _ref;
48
- const {
49
- blockName,
50
- showArrow
51
- } = this.props;
52
- if (!showArrow) return null;
53
- return /*#__PURE__*/jsx("div", {
54
- ref: ref,
55
- className: "".concat(blockName || 'popper', "__arrow"),
29
+ className: `${blockName || "popper"}__arrow`,
56
30
  "data-placement": placement,
57
- style: _objectSpread(_objectSpread({}, style), getArrowStylesBySize(placement, 25)),
58
- children: _svg || (_svg = /*#__PURE__*/_jsx("svg", {
59
- viewBox: "0 0 30 30"
60
- }, void 0, /*#__PURE__*/_jsx("path", {
61
- className: "stroke",
62
- d: "M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26 C26.7,29,24.6,28.1,23.7,27.1z"
63
- }), /*#__PURE__*/_jsx("path", {
64
- className: "fill",
65
- d: "M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z"
66
- })))
67
- }, "popper-arrow");
31
+ style: {
32
+ ...style,
33
+ ...getArrowStylesBySize(placement, 25)
34
+ }
35
+ }, /* @__PURE__ */ React2.createElement("svg", {
36
+ viewBox: "0 0 30 30"
37
+ }, /* @__PURE__ */ React2.createElement("path", {
38
+ className: "stroke",
39
+ d: "M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26\n C26.7,29,24.6,28.1,23.7,27.1z"
40
+ }), /* @__PURE__ */ React2.createElement("path", {
41
+ className: "fill",
42
+ d: "M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z"
43
+ })));
68
44
  }
69
-
70
- renderContent(_ref2) {
71
- let {
72
- ref,
73
- style,
74
- placement,
75
- arrowProps,
76
- scheduleUpdate,
77
- outOfBoundaries
78
- } = _ref2;
45
+ renderContent({
46
+ ref,
47
+ style,
48
+ placement,
49
+ arrowProps,
50
+ scheduleUpdate,
51
+ outOfBoundaries
52
+ }) {
79
53
  const {
80
54
  contentComponent,
81
55
  contentStyle,
@@ -88,60 +62,58 @@ class PopperContent extends PureComponent {
88
62
  zIndex,
89
63
  hideIfNotVisible
90
64
  } = this.props;
91
-
92
- const computedStyle = _objectSpread(_objectSpread(_objectSpread({}, style), contentStyle), {}, {
65
+ const computedStyle = {
66
+ ...style,
67
+ ...contentStyle,
93
68
  zIndex
94
- });
95
-
96
- return /*#__PURE__*/jsx("div", _objectSpread(_objectSpread({}, containerProps), {}, {
69
+ };
70
+ return /* @__PURE__ */ React2.createElement("div", {
71
+ ...containerProps,
97
72
  "data-placement": placement,
98
- onMouseEnter: onMouseEnter,
99
- onMouseLeave: onMouseLeave,
73
+ onMouseEnter,
74
+ onMouseLeave,
100
75
  style: computedStyle,
101
- "data-testid": "popper-container",
102
- children: /*#__PURE__*/_jsx(Content, {
103
- native: true,
104
- onRest: this.handleRestAnimation,
105
- state: isOpen && (!outOfBoundaries || !hideIfNotVisible) ? 'open' : 'close',
106
- states: {
107
- open: _objectSpread(_objectSpread({}, openAnimationConfig), {}, {
108
- from: closeAnimationConfig.to
109
- }),
110
- close: closeAnimationConfig
111
- }
112
- }, void 0, animationStyle => /*#__PURE__*/jsx(animated.div, {
113
- ref: ref,
114
- style: animationStyle,
115
- children: getComponentFromProps(contentComponent, {
116
- scheduleUpdate
117
- }, [this.renderArrow(arrowProps, placement)])
118
- }))
119
- }));
76
+ "data-testid": "popper-container"
77
+ }, /* @__PURE__ */ React2.createElement(Content, {
78
+ native: true,
79
+ onRest: this.handleRestAnimation,
80
+ state: isOpen && (!outOfBoundaries || !hideIfNotVisible) ? "open" : "close",
81
+ states: {
82
+ open: {
83
+ ...openAnimationConfig,
84
+ from: closeAnimationConfig.to
85
+ },
86
+ close: closeAnimationConfig
87
+ }
88
+ }, (animationStyle) => /* @__PURE__ */ React2.createElement(animated.div, {
89
+ ref,
90
+ style: animationStyle
91
+ }, getComponentFromProps(contentComponent, { scheduleUpdate }, [
92
+ this.renderArrow(arrowProps, placement)
93
+ ]))));
120
94
  }
121
-
122
95
  render() {
123
96
  const {
124
97
  destroyed = false,
125
98
  onClickOutside = () => null,
126
- placement = 'bottom-start',
99
+ placement = "bottom-start",
127
100
  modifiers = {},
128
101
  referenceNode,
129
102
  usePortal = true
130
103
  } = this.props;
131
- return /*#__PURE__*/_jsx(DSOverlay, {
104
+ return /* @__PURE__ */ React2.createElement(DSOverlay, {
132
105
  isOpen: !destroyed,
133
- onClickOutside: onClickOutside,
134
- usePortal: usePortal
135
- }, void 0, /*#__PURE__*/_jsx(Popper, {
136
- modifiers: modifiers,
137
- placement: placement,
106
+ onClickOutside,
107
+ usePortal
108
+ }, /* @__PURE__ */ React2.createElement(Popper, {
109
+ modifiers,
110
+ placement,
138
111
  referenceElement: referenceNode
139
- }, void 0, this.renderContent));
112
+ }, this.renderContent));
140
113
  }
141
-
142
114
  }
143
- PopperContent.defaultProps = {
144
- onContentDestroyed: () => null
115
+ PopperContent.defaultProps = { onContentDestroyed: () => null };
116
+ export {
117
+ PopperContent as default
145
118
  };
146
-
147
- export { PopperContent as default };
119
+ //# sourceMappingURL=PopperContent.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/PopperContent.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable react/prop-types */\nimport React, { PureComponent } from 'react';\nimport { Popper } from 'react-popper';\nimport { Keyframes, animated } from 'react-spring/renderprops';\nimport getComponentFromProps from '@elliemae/ds-utilities/getComponentFromProps';\nimport DSOverlay from '@elliemae/ds-overlay';\nimport { getArrowStylesBySize } from './getArrowStylesBySize';\n\nconst Content = Keyframes.Spring({});\n\nexport default class PopperContent extends PureComponent {\n // eslint-disable-next-line react/static-property-placement\n static defaultProps = { onContentDestroyed: () => null };\n\n constructor(props) {\n super(props);\n this.renderContent = this.renderContent.bind(this);\n this.renderArrow = this.renderArrow.bind(this);\n this.handleRestAnimation = this.handleRestAnimation.bind(this);\n }\n\n handleRestAnimation() {\n const { isOpen, onContentDestroyed } = this.props;\n if (!isOpen) {\n onContentDestroyed();\n }\n }\n\n renderArrow({ ref, style }, placement) {\n const { blockName, showArrow } = this.props;\n if (!showArrow) return null;\n return (\n <div\n key=\"popper-arrow\"\n ref={ref}\n className={`${blockName || 'popper'}__arrow`}\n data-placement={placement}\n style={{\n ...style,\n ...getArrowStylesBySize(placement, 25),\n }}\n >\n <svg viewBox=\"0 0 30 30\">\n <path\n className=\"stroke\"\n d=\"M23.7,27.1L17,19.9C16.5,19.3,15.8,19,15,19s-1.6,0.3-2.1,0.9l-6.6,7.2C5.3,28.1,3.4,29,2,29h26\n C26.7,29,24.6,28.1,23.7,27.1z\"\n />\n <path\n className=\"fill\"\n d=\"M23,27.8c1.1,1.2,3.4,2.2,5,2.2h2H0h2c1.7,0,3.9-1,5-2.2l6.6-7.2c0.7-0.8,2-0.8,2.7,0L23,27.8L23,27.8z\"\n />\n </svg>\n </div>\n );\n }\n\n renderContent({\n ref,\n style,\n placement,\n arrowProps,\n scheduleUpdate,\n outOfBoundaries,\n }) {\n const {\n contentComponent,\n contentStyle,\n isOpen,\n closeAnimationConfig,\n openAnimationConfig,\n onMouseEnter,\n onMouseLeave,\n containerProps,\n zIndex,\n hideIfNotVisible,\n } = this.props;\n\n const computedStyle = {\n ...style,\n ...contentStyle,\n zIndex,\n };\n return (\n <div\n {...containerProps}\n data-placement={placement}\n onMouseEnter={onMouseEnter}\n onMouseLeave={onMouseLeave}\n style={computedStyle}\n data-testid=\"popper-container\"\n >\n <Content\n native\n onRest={this.handleRestAnimation}\n state={\n isOpen && (!outOfBoundaries || !hideIfNotVisible) ? 'open' : 'close'\n }\n states={{\n open: {\n ...openAnimationConfig,\n from: closeAnimationConfig.to,\n },\n close: closeAnimationConfig,\n }}\n >\n {(animationStyle) => (\n <animated.div ref={ref} style={animationStyle}>\n {getComponentFromProps(contentComponent, { scheduleUpdate }, [\n this.renderArrow(arrowProps, placement),\n ])}\n </animated.div>\n )}\n </Content>\n </div>\n );\n }\n\n render() {\n const {\n destroyed = false,\n onClickOutside = () => null,\n placement = 'bottom-start',\n modifiers = {},\n referenceNode,\n usePortal = true,\n } = this.props;\n return (\n <DSOverlay\n isOpen={!destroyed}\n onClickOutside={onClickOutside}\n usePortal={usePortal}\n >\n <Popper\n modifiers={modifiers}\n placement={placement}\n referenceElement={referenceNode}\n >\n {this.renderContent}\n </Popper>\n </DSOverlay>\n );\n }\n}\n"],
5
+ "mappings": "AAAA;ACCA;AACA;AACA;AACA;AACA;AACA;AAEA,MAAM,UAAU,UAAU,OAAO;AAEjC,4BAA2C,cAAc;AAAA,EAIvD,YAAY,OAAO;AACjB,UAAM;AACN,SAAK,gBAAgB,KAAK,cAAc,KAAK;AAC7C,SAAK,cAAc,KAAK,YAAY,KAAK;AACzC,SAAK,sBAAsB,KAAK,oBAAoB,KAAK;AAAA;AAAA,EAG3D,sBAAsB;AACpB,UAAM,EAAE,QAAQ,uBAAuB,KAAK;AAC5C,QAAI,CAAC,QAAQ;AACX;AAAA;AAAA;AAAA,EAIJ,YAAY,EAAE,KAAK,SAAS,WAAW;AACrC,UAAM,EAAE,WAAW,cAAc,KAAK;AACtC,QAAI,CAAC;AAAW,aAAO;AACvB,WACE,qCAAC,OAAD;AAAA,MACE,KAAI;AAAA,MACJ;AAAA,MACA,WAAW,GAAG,aAAa;AAAA,MAC3B,kBAAgB;AAAA,MAChB,OAAO;AAAA,WACF;AAAA,WACA,qBAAqB,WAAW;AAAA;AAAA,OAGrC,qCAAC,OAAD;AAAA,MAAK,SAAQ;AAAA,OACX,qCAAC,QAAD;AAAA,MACE,WAAU;AAAA,MACV,GAAE;AAAA,QAGJ,qCAAC,QAAD;AAAA,MACE,WAAU;AAAA,MACV,GAAE;AAAA;AAAA;AAAA,EAOZ,cAAc;AAAA,IACZ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,KACC;AACD,UAAM;AAAA,MACJ;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,QACE,KAAK;AAET,UAAM,gBAAgB;AAAA,SACjB;AAAA,SACA;AAAA,MACH;AAAA;AAEF,WACE,qCAAC,OAAD;AAAA,SACM;AAAA,MACJ,kBAAgB;AAAA,MAChB;AAAA,MACA;AAAA,MACA,OAAO;AAAA,MACP,eAAY;AAAA,OAEZ,qCAAC,SAAD;AAAA,MACE,QAAM;AAAA,MACN,QAAQ,KAAK;AAAA,MACb,OACE,UAAW,EAAC,mBAAmB,CAAC,oBAAoB,SAAS;AAAA,MAE/D,QAAQ;AAAA,QACN,MAAM;AAAA,aACD;AAAA,UACH,MAAM,qBAAqB;AAAA;AAAA,QAE7B,OAAO;AAAA;AAAA,OAGR,CAAC,mBACA,qCAAC,SAAS,KAAV;AAAA,MAAc;AAAA,MAAU,OAAO;AAAA,OAC5B,sBAAsB,kBAAkB,EAAE,kBAAkB;AAAA,MAC3D,KAAK,YAAY,YAAY;AAAA;AAAA;AAAA,EAS3C,SAAS;AACP,UAAM;AAAA,MACJ,YAAY;AAAA,MACZ,iBAAiB,MAAM;AAAA,MACvB,YAAY;AAAA,MACZ,YAAY;AAAA,MACZ;AAAA,MACA,YAAY;AAAA,QACV,KAAK;AACT,WACE,qCAAC,WAAD;AAAA,MACE,QAAQ,CAAC;AAAA,MACT;AAAA,MACA;AAAA,OAEA,qCAAC,QAAD;AAAA,MACE;AAAA,MACA;AAAA,MACA,kBAAkB;AAAA,OAEjB,KAAK;AAAA;AAAA;AA9HP,AAFT,cAES,eAAe,EAAE,oBAAoB,MAAM;",
6
+ "names": []
7
+ }
package/esm/PopperImpl.js CHANGED
@@ -1,39 +1,22 @@
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; }
1
+ import * as React from "react";
2
+ import React2, { Component } from "react";
3
+ import { isFunction, get, isDOMTypeElement, getComponentFromProps, mergeRefs } from "@elliemae/ds-utilities";
4
+ import { Manager, Reference } from "react-popper";
5
+ import memoizeOne from "memoize-one";
6
+ import PopperContent from "./PopperContent";
7
+ import { Interaction } from "./interaction";
21
8
  class PopperImpl extends Component {
22
- // we use safeIsMounted because isMounted is not allowed by React.
23
9
  constructor(props) {
24
10
  super(props);
25
11
  this.safeIsMounted = false;
26
- this.handlePopperPlacementChange = memoizeOne(placement => {
27
- const {
28
- onPlacementChange
29
- } = this.props;
12
+ this.handlePopperPlacementChange = memoizeOne((placement) => {
13
+ const { onPlacementChange } = this.props;
30
14
  onPlacementChange(placement);
31
15
  });
32
16
  this.state = {
33
17
  isOpen: false,
34
18
  destroyed: true
35
- }; // TODO: Fix the autobinding to remove this!!
36
-
19
+ };
37
20
  this.handleMouseEnter = this.handleMouseEnter.bind(this);
38
21
  this.handleMouseLeave = this.handleMouseLeave.bind(this);
39
22
  this.handleTriggerClick = this.handleTriggerClick.bind(this);
@@ -43,55 +26,34 @@ class PopperImpl extends Component {
43
26
  this.handleDestroyContent = this.handleDestroyContent.bind(this);
44
27
  this.handleContentMouseEnter = this.handleContentMouseEnter.bind(this);
45
28
  this.handleContentMouseLeave = this.handleContentMouseLeave.bind(this);
46
- } // this is needed to prevent setState on unmounted components
47
-
48
-
29
+ }
49
30
  componentDidMount() {
50
31
  this.safeIsMounted = true;
51
32
  }
52
-
53
33
  componentDidUpdate() {
54
- const {
55
- isOpen,
56
- destroyed
57
- } = this.state;
58
-
34
+ const { isOpen, destroyed } = this.state;
59
35
  if (isOpen === true && destroyed === true) {
60
- // eslint-disable-next-line react/no-did-update-set-state
61
- this.setState({
62
- destroyed: false
63
- });
36
+ this.setState({ destroyed: false });
64
37
  }
65
38
  }
66
-
67
39
  componentWillUnmount() {
68
40
  this.safeIsMounted = false;
69
41
  }
70
-
71
42
  static getDerivedStateFromProps(nextProps, prevState) {
72
- const {
73
- isOpen
74
- } = nextProps;
75
- const {
76
- prevPropIsOpen
77
- } = prevState; // todo: this causes multiple rerenders
78
-
43
+ const { isOpen } = nextProps;
44
+ const { prevPropIsOpen } = prevState;
79
45
  if (isOpen !== prevPropIsOpen) {
80
46
  return {
81
47
  isOpen,
82
48
  prevPropIsOpen: isOpen
83
49
  };
84
50
  }
85
-
86
51
  return null;
87
52
  }
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 {};
53
+ getInteractionObject(interaction, referenceProps = {}) {
54
+ const { isOpen } = this.props;
55
+ if (isOpen !== void 0)
56
+ return {};
95
57
  return {
96
58
  [Interaction.CLICK]: {
97
59
  handlers: {
@@ -114,66 +76,45 @@ class PopperImpl extends Component {
114
76
  canClose: () => true
115
77
  };
116
78
  }
117
-
118
79
  setOpen(opening) {
119
- const {
120
- onOpen
121
- } = this.props;
122
- const {
123
- prevPropIsOpen
124
- } = this.state;
125
- if (!this.safeIsMounted) return;
126
-
127
- if (prevPropIsOpen === undefined) {
80
+ const { onOpen } = this.props;
81
+ const { prevPropIsOpen } = this.state;
82
+ if (!this.safeIsMounted)
83
+ return;
84
+ if (prevPropIsOpen === void 0) {
128
85
  this.setState({
129
86
  isOpen: opening,
130
87
  destroyed: false
131
88
  });
132
89
  }
133
-
134
90
  onOpen(opening);
135
91
  }
136
-
137
92
  open() {
138
93
  clearTimeout(this.closeTimer);
139
- const {
140
- delayOpen
141
- } = this.props;
94
+ const { delayOpen } = this.props;
142
95
  this.openTimer = setTimeout(() => this.setOpen(true), delayOpen);
143
96
  }
144
-
145
97
  close() {
146
98
  clearTimeout(this.openTimer);
147
- const {
148
- delayClose,
149
- onClose = () => null
150
- } = this.props;
99
+ const { delayClose, onClose = () => null } = this.props;
151
100
  this.closeTimer = setTimeout(() => {
152
101
  this.setOpen(false);
153
102
  onClose();
154
103
  }, delayClose);
155
104
  }
156
-
157
105
  handleTriggerClick(e) {
158
- const {
159
- triggerComponent
160
- } = this.props;
161
- const {
162
- onClick
163
- } = get(triggerComponent, 'props') || {};
106
+ const { triggerComponent } = this.props;
107
+ const { onClick } = get(triggerComponent, "props") || {};
164
108
  this.open();
165
- if (isFunction(onClick)) onClick(e);
109
+ if (isFunction(onClick))
110
+ onClick(e);
166
111
  }
167
-
168
112
  handleContentMouseEnter() {
169
113
  this.isMouseOverContent = true;
170
114
  }
171
-
172
115
  handleContentMouseLeave() {
173
116
  this.isMouseOverContent = false;
174
- const {
175
- onClose = () => null
176
- } = this.props;
117
+ const { onClose = () => null } = this.props;
177
118
  setTimeout(() => {
178
119
  if (!this.isMouseOverTarget) {
179
120
  this.setOpen(false);
@@ -181,12 +122,10 @@ class PopperImpl extends Component {
181
122
  }
182
123
  }, 10);
183
124
  }
184
-
185
125
  handleMouseEnter() {
186
126
  this.isMouseOverTarget = true;
187
127
  this.open();
188
128
  }
189
-
190
129
  handleMouseLeave() {
191
130
  this.isMouseOverTarget = false;
192
131
  setTimeout(() => {
@@ -195,57 +134,35 @@ class PopperImpl extends Component {
195
134
  }
196
135
  }, 10);
197
136
  }
198
-
199
137
  updatePopoverState(popperData) {
200
138
  this.handlePopperPlacementChange(popperData.placement);
201
139
  return popperData;
202
140
  }
203
-
204
141
  handleDestroyContent() {
205
- this.setState({
206
- destroyed: true
207
- });
142
+ this.setState({ destroyed: true });
208
143
  }
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)
227
- };
144
+ renderTarget({ ref }) {
145
+ const { isOpen } = this.state;
146
+ const { triggerComponent, interactionType, renderReference } = this.props;
147
+ const componentInnerRef = get(triggerComponent, ["props", "innerRef"], () => null);
148
+ const compRef = isDOMTypeElement(triggerComponent) ? { ref } : { innerRef: mergeRefs(ref, componentInnerRef) };
228
149
  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
-
150
+ const targetProps = {
151
+ ...triggerHandler,
152
+ ...compRef,
153
+ "aria-haspopup": true,
154
+ "aria-expanded": isOpen
155
+ };
235
156
  if (renderReference) {
236
- return renderReference(_objectSpread({
237
- ref
238
- }, targetProps));
157
+ return renderReference({
158
+ ref,
159
+ ...targetProps
160
+ });
239
161
  }
240
-
241
162
  return getComponentFromProps(triggerComponent, targetProps);
242
163
  }
243
-
244
164
  render() {
245
- const {
246
- isOpen,
247
- destroyed
248
- } = this.state;
165
+ const { isOpen, destroyed } = this.state;
249
166
  const {
250
167
  placement,
251
168
  interactionType,
@@ -265,11 +182,10 @@ class PopperImpl extends Component {
265
182
  zIndex,
266
183
  hideIfNotVisible
267
184
  } = this.props;
268
-
269
- const allModifiers = _objectSpread({
185
+ const allModifiers = {
270
186
  offset: {
271
187
  enabled: showArrow,
272
- offset: "0, ".concat(arrowSize + arrowGap)
188
+ offset: `0, ${arrowSize + arrowGap}`
273
189
  },
274
190
  preventOverflow: {
275
191
  enabled: true,
@@ -280,9 +196,9 @@ class PopperImpl extends Component {
280
196
  enabled: true,
281
197
  fn: this.updatePopoverState,
282
198
  order: 900
283
- }
284
- }, modifiers);
285
-
199
+ },
200
+ ...modifiers
201
+ };
286
202
  const triggerHandler = this.getInteractionObject(interactionType).handlers;
287
203
  const popperContentProps = {
288
204
  hideIfNotVisible,
@@ -300,23 +216,28 @@ class PopperImpl extends Component {
300
216
  usePortal,
301
217
  openAnimationConfig,
302
218
  closeAnimationConfig,
303
- onMouseEnter: interactionType === Interaction.HOVER ? this.handleContentMouseEnter : undefined,
304
- onMouseLeave: interactionType === Interaction.HOVER ? this.handleContentMouseLeave : undefined,
219
+ onMouseEnter: interactionType === Interaction.HOVER ? this.handleContentMouseEnter : void 0,
220
+ onMouseLeave: interactionType === Interaction.HOVER ? this.handleContentMouseLeave : void 0,
305
221
  referenceNode,
306
222
  zIndex
307
223
  };
308
-
309
- if (customPopper && typeof customPopper === 'function') {
310
- return /*#__PURE__*/_jsx(Manager, {}, void 0, customPopper({
224
+ if (customPopper && typeof customPopper === "function") {
225
+ return /* @__PURE__ */ React2.createElement(Manager, null, customPopper({
311
226
  Reference,
312
227
  triggerHandler,
313
- content: /*#__PURE__*/jsx(PopperContent, _objectSpread({}, popperContentProps))
228
+ content: /* @__PURE__ */ React2.createElement(PopperContent, {
229
+ ...popperContentProps
230
+ })
314
231
  }));
315
232
  }
316
-
317
- return /*#__PURE__*/_jsx(Manager, {}, void 0, /*#__PURE__*/_jsx(Reference, {}, void 0, this.renderTarget), /*#__PURE__*/jsx(PopperContent, _objectSpread({}, popperContentProps)));
233
+ return /* @__PURE__ */ React2.createElement(Manager, null, /* @__PURE__ */ React2.createElement(Reference, null, this.renderTarget), /* @__PURE__ */ React2.createElement(PopperContent, {
234
+ ...popperContentProps
235
+ }));
318
236
  }
319
-
320
237
  }
321
-
322
- export { PopperImpl as default };
238
+ export {
239
+ PopperContent,
240
+ Reference,
241
+ PopperImpl as default
242
+ };
243
+ //# sourceMappingURL=PopperImpl.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../../../scripts/build/transpile/react-shim.js", "../../src/PopperImpl.tsx"],
4
+ "sourcesContent": ["import * as React from 'react';\nexport { React };\n", "/* eslint-disable max-lines */\nimport React, { Component } from 'react';\nimport { isFunction, get, isDOMTypeElement, getComponentFromProps, mergeRefs } from '@elliemae/ds-utilities';\nimport { Manager, Reference } from 'react-popper';\nimport memoizeOne from 'memoize-one';\nimport PopperContent from './PopperContent';\nimport { Interaction } from './interaction';\n\nexport default class PopperImpl extends Component<any, any> {\n // we use safeIsMounted because isMounted is not allowed by React.\n safeIsMounted = false;\n\n handlePopperPlacementChange = memoizeOne((placement) => {\n const { onPlacementChange } = this.props;\n onPlacementChange(placement);\n });\n\n constructor(props) {\n super(props);\n this.state = {\n isOpen: false,\n destroyed: true,\n };\n // TODO: Fix the autobinding to remove this!!\n this.handleMouseEnter = this.handleMouseEnter.bind(this);\n this.handleMouseLeave = this.handleMouseLeave.bind(this);\n this.handleTriggerClick = this.handleTriggerClick.bind(this);\n this.renderTarget = this.renderTarget.bind(this);\n this.updatePopoverState = this.updatePopoverState.bind(this);\n this.handlePopperPlacementChange = this.handlePopperPlacementChange.bind(\n this,\n );\n this.handleDestroyContent = this.handleDestroyContent.bind(this);\n this.handleContentMouseEnter = this.handleContentMouseEnter.bind(this);\n this.handleContentMouseLeave = this.handleContentMouseLeave.bind(this);\n }\n\n // this is needed to prevent setState on unmounted components\n componentDidMount() {\n this.safeIsMounted = true;\n }\n\n componentDidUpdate() {\n const { isOpen, destroyed } = this.state;\n if (isOpen === true && destroyed === true) {\n // eslint-disable-next-line react/no-did-update-set-state\n this.setState({ destroyed: false });\n }\n }\n\n componentWillUnmount() {\n this.safeIsMounted = false;\n }\n\n static getDerivedStateFromProps(nextProps, prevState) {\n const { isOpen } = nextProps;\n const { prevPropIsOpen } = prevState;\n // todo: this causes multiple rerenders\n if (isOpen !== prevPropIsOpen) {\n return {\n isOpen,\n prevPropIsOpen: isOpen,\n };\n }\n return null;\n }\n\n getInteractionObject(interaction, referenceProps = {}) {\n const { isOpen } = this.props;\n if (isOpen !== undefined) return {};\n return (\n {\n [Interaction.CLICK]: {\n handlers: {\n onClick: this.handleTriggerClick,\n },\n canClose: () => true,\n },\n [Interaction.HOVER]: {\n handlers: {\n onMouseEnter: referenceProps.onMouseEnter || this.handleMouseEnter,\n onPointerEnter: referenceProps.onMouseEnter || this.handleMouseEnter,\n onMouseLeave: referenceProps.onMouseLeave || this.handleMouseLeave,\n onPointerLeave: referenceProps.onMouseLeave || this.handleMouseLeave,\n onClick: this.handleTriggerClick,\n },\n canClose: (isOnTrigger, isOnPopper) => !isOnTrigger && !isOnPopper,\n },\n }[interaction] || {\n handlers: {},\n canClose: () => true,\n }\n );\n }\n\n setOpen(opening) {\n const { onOpen } = this.props;\n const { prevPropIsOpen } = this.state;\n if (!this.safeIsMounted) return;\n\n if (prevPropIsOpen === undefined) {\n this.setState({\n isOpen: opening,\n destroyed: false,\n });\n }\n onOpen(opening);\n }\n\n open() {\n clearTimeout(this.closeTimer);\n const { delayOpen } = this.props;\n this.openTimer = setTimeout(() => this.setOpen(true), delayOpen);\n }\n\n close() {\n clearTimeout(this.openTimer);\n const { delayClose, onClose = () => null } = this.props;\n this.closeTimer = setTimeout(() => {\n this.setOpen(false);\n onClose();\n }, delayClose);\n }\n\n handleTriggerClick(e) {\n const { triggerComponent } = this.props;\n const { onClick } = get(triggerComponent, 'props') || {};\n\n this.open();\n\n if (isFunction(onClick)) onClick(e);\n }\n\n handleContentMouseEnter() {\n this.isMouseOverContent = true;\n }\n\n handleContentMouseLeave() {\n this.isMouseOverContent = false;\n const { onClose = () => null } = this.props;\n setTimeout(() => {\n if (!this.isMouseOverTarget) {\n this.setOpen(false);\n onClose();\n }\n }, 10);\n }\n\n handleMouseEnter() {\n this.isMouseOverTarget = true;\n this.open();\n }\n\n handleMouseLeave() {\n this.isMouseOverTarget = false;\n setTimeout(() => {\n if (!this.isMouseOverContent) {\n this.close();\n }\n }, 10);\n }\n\n updatePopoverState(popperData) {\n this.handlePopperPlacementChange(popperData.placement);\n return popperData;\n }\n\n handleDestroyContent() {\n this.setState({ destroyed: true });\n }\n\n renderTarget({ ref }) {\n const { isOpen } = this.state;\n const { triggerComponent, interactionType, renderReference } = this.props;\n\n const componentInnerRef = get(\n triggerComponent,\n ['props', 'innerRef'],\n () => null,\n );\n const compRef = isDOMTypeElement(triggerComponent)\n ? { ref }\n : { innerRef: mergeRefs(ref, componentInnerRef) };\n\n const triggerHandler = this.getInteractionObject(\n interactionType,\n triggerComponent.props,\n ).handlers;\n\n const targetProps = {\n ...triggerHandler,\n ...compRef,\n 'aria-haspopup': true,\n 'aria-expanded': isOpen,\n };\n\n if (renderReference) {\n return renderReference({\n ref,\n ...targetProps,\n });\n }\n\n return getComponentFromProps(triggerComponent, targetProps);\n }\n\n render() {\n const { isOpen, destroyed } = this.state;\n\n const {\n placement,\n interactionType,\n showArrow,\n arrowSize,\n arrowGap,\n preventOverflow,\n children: customPopper,\n usePortal,\n blockName,\n contentComponent,\n openAnimationConfig,\n closeAnimationConfig,\n modifiers,\n referenceNode,\n containerProps,\n zIndex,\n hideIfNotVisible,\n } = this.props;\n\n const allModifiers = {\n offset: {\n enabled: showArrow,\n offset: `0, ${arrowSize + arrowGap}`,\n },\n preventOverflow: {\n enabled: true,\n padding: 0,\n boundariesElement: preventOverflow,\n },\n updatePopoverState: {\n enabled: true,\n fn: this.updatePopoverState,\n order: 900,\n },\n ...modifiers,\n };\n const triggerHandler = this.getInteractionObject(interactionType).handlers;\n\n const popperContentProps = {\n hideIfNotVisible,\n containerProps,\n isOpen,\n destroyed: isOpen ? false : destroyed,\n arrowSize,\n blockName,\n showArrow,\n modifiers: allModifiers,\n contentComponent,\n onContentDestroyed: this.handleDestroyContent,\n onClickOutside: () => this.close(),\n placement,\n usePortal,\n openAnimationConfig,\n closeAnimationConfig,\n onMouseEnter:\n interactionType === Interaction.HOVER\n ? this.handleContentMouseEnter\n : undefined,\n onMouseLeave:\n interactionType === Interaction.HOVER\n ? this.handleContentMouseLeave\n : undefined,\n referenceNode,\n zIndex,\n };\n\n if (customPopper && typeof customPopper === 'function') {\n return (\n <Manager>\n {customPopper({\n Reference,\n triggerHandler,\n content: <PopperContent {...popperContentProps} />,\n })}\n </Manager>\n );\n }\n\n return (\n <Manager>\n <Reference>{this.renderTarget}</Reference>\n <PopperContent {...popperContentProps} />\n </Manager>\n );\n }\n}\n\nexport { Reference, PopperContent };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }