@elliemae/ds-popover 2.2.0-next.6 → 2.3.0-alpha.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/cjs/Arrow.js CHANGED
@@ -1,63 +1,62 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/esnext.async-iterator.filter.js');
4
- require('core-js/modules/esnext.iterator.constructor.js');
5
- require('core-js/modules/esnext.iterator.filter.js');
6
- require('core-js/modules/esnext.async-iterator.for-each.js');
7
- require('core-js/modules/esnext.iterator.for-each.js');
8
- var _jsx = require('@babel/runtime/helpers/jsx');
9
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
10
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
11
- var react = require('react');
12
- var dsClassnames = require('@elliemae/ds-classnames');
13
- var dsPopper = require('@elliemae/ds-popper');
14
- var jsxRuntime = require('react/jsx-runtime');
15
-
16
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
17
-
18
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
19
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
20
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
21
-
22
- var _svg;
23
-
24
- const _excluded = ["style", "className", "innerRef", "blockName", "placement"];
25
-
26
- 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; }
27
-
28
- 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__default["default"](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; }
29
- const ArrowWrapper = dsClassnames.aggregatedClasses('span')('popover', 'arrow');
30
-
31
- function Arrow(_ref) {
32
- let {
33
- style,
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var Arrow_exports = {};
29
+ __export(Arrow_exports, {
30
+ default: () => Arrow_default
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = __toESM(require("react"));
34
+ var import_ds_classnames = require("@elliemae/ds-classnames");
35
+ var import_ds_popper = require("@elliemae/ds-popper");
36
+ const ArrowWrapper = (0, import_ds_classnames.aggregatedClasses)("span")("popover", "arrow");
37
+ function Arrow({ style, className, innerRef, blockName = "popover", placement, ...otherProps }) {
38
+ return /* @__PURE__ */ import_react.default.createElement(ArrowWrapper, {
34
39
  className,
40
+ "data-placement": placement,
41
+ ...otherProps,
35
42
  innerRef,
36
- blockName = 'popover',
37
- placement
38
- } = _ref,
39
- otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
40
-
41
- return /*#__PURE__*/jsxRuntime.jsx(ArrowWrapper, _objectSpread(_objectSpread({
42
- className: className,
43
- "data-placement": placement
44
- }, otherProps), {}, {
45
- innerRef: innerRef,
46
- style: _objectSpread(_objectSpread({}, style), dsPopper.getArrowStylesBySize(placement, 25)),
47
- children: _svg || (_svg = /*#__PURE__*/_jsx__default["default"]("svg", {
48
- viewBox: "0 0 30 30"
49
- }, void 0, /*#__PURE__*/_jsx__default["default"]("path", {
50
- className: "stroke",
51
- 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"
52
- }), /*#__PURE__*/_jsx__default["default"]("path", {
53
- className: "fill",
54
- 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"
55
- })))
56
- }));
43
+ style: {
44
+ ...style,
45
+ ...(0, import_ds_popper.getArrowStylesBySize)(placement, 25)
46
+ }
47
+ }, /* @__PURE__ */ import_react.default.createElement("svg", {
48
+ viewBox: "0 0 30 30"
49
+ }, /* @__PURE__ */ import_react.default.createElement("path", {
50
+ className: "stroke",
51
+ 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"
52
+ }), /* @__PURE__ */ import_react.default.createElement("path", {
53
+ className: "fill",
54
+ 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"
55
+ })));
57
56
  }
58
-
59
- var Arrow$1 = /*#__PURE__*/react.forwardRef((props, ref) => /*#__PURE__*/jsxRuntime.jsx(Arrow, _objectSpread(_objectSpread({}, props), {}, {
57
+ var Arrow_default = (0, import_react.forwardRef)((props, ref) => /* @__PURE__ */ import_react.default.createElement(Arrow, {
58
+ ...props,
60
59
  innerRef: ref || props.innerRef
61
- })));
62
-
63
- module.exports = Arrow$1;
60
+ }));
61
+ module.exports = __toCommonJS(Arrow_exports);
62
+ //# sourceMappingURL=Arrow.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Arrow.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { forwardRef } from 'react';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { getArrowStylesBySize } from '@elliemae/ds-popper';\n\nconst ArrowWrapper = aggregatedClasses('span')('popover', 'arrow');\nfunction Arrow({ style, className, innerRef, blockName = 'popover', placement, ...otherProps }) {\n return (\n <ArrowWrapper\n className={className}\n data-placement={placement}\n {...otherProps}\n innerRef={innerRef}\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 </ArrowWrapper>\n );\n}\n\nexport default forwardRef((props, ref) => <Arrow {...props} innerRef={ref || props.innerRef} />);\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAAkC;AAClC,2BAAkC;AAClC,uBAAqC;AAErC,MAAM,eAAe,4CAAkB,QAAQ,WAAW;AAC1D,eAAe,EAAE,OAAO,WAAW,UAAU,YAAY,WAAW,cAAc,cAAc;AAC9F,SACE,mDAAC,cAAD;AAAA,IACE;AAAA,IACA,kBAAgB;AAAA,OACZ;AAAA,IACJ;AAAA,IACA,OAAO;AAAA,SACF;AAAA,SACA,2CAAqB,WAAW;AAAA;AAAA,KAGrC,mDAAC,OAAD;AAAA,IAAK,SAAQ;AAAA,KACX,mDAAC,QAAD;AAAA,IACE,WAAU;AAAA,IACV,GAAE;AAAA,MAGJ,mDAAC,QAAD;AAAA,IACE,WAAU;AAAA,IACV,GAAE;AAAA;AAAA;AAOZ,IAAO,gBAAQ,6BAAW,CAAC,OAAO,QAAQ,mDAAC,OAAD;AAAA,KAAW;AAAA,EAAO,UAAU,OAAO,MAAM;AAAA;",
6
+ "names": []
7
+ }
package/cjs/DSPopover.js CHANGED
@@ -1,75 +1,73 @@
1
- 'use strict';
2
-
3
- Object.defineProperty(exports, '__esModule', { value: true });
4
-
5
- var _jsx = require('@babel/runtime/helpers/jsx');
6
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
7
- require('core-js/modules/web.dom-collections.iterator.js');
8
- require('core-js/modules/esnext.async-iterator.filter.js');
9
- require('core-js/modules/esnext.iterator.constructor.js');
10
- require('core-js/modules/esnext.iterator.filter.js');
11
- require('core-js/modules/esnext.async-iterator.for-each.js');
12
- require('core-js/modules/esnext.iterator.for-each.js');
13
- require('react');
14
- var reactDesc = require('react-desc');
15
- var dsUtilities = require('@elliemae/ds-utilities');
16
- var dsHidden = require('@elliemae/ds-hidden');
17
- var Popover = require('./Popover.js');
18
- var usePopper = require('./usePopper.js');
19
- var Arrow = require('./Arrow.js');
20
- var usePopoverProviderState = require('./usePopoverProviderState.js');
21
- var jsxRuntime = require('react/jsx-runtime');
22
- var dsPopper = require('@elliemae/ds-popper');
23
-
24
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
25
-
26
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
27
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
28
-
29
- 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; }
30
-
31
- 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__default["default"](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
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var DSPopover_exports = {};
29
+ __export(DSPopover_exports, {
30
+ DSPopover: () => DSPopover,
31
+ Interaction: () => Interaction,
32
+ PopoverWithSchema: () => PopoverWithSchema,
33
+ default: () => DSPopover_default,
34
+ usePopoverProviderState: () => import_usePopoverProviderState.default,
35
+ usePopper: () => import_usePopper.default
36
+ });
37
+ var React = __toESM(require("react"));
38
+ var import_react = __toESM(require("react"));
39
+ var import_react_desc = require("react-desc");
40
+ var import_ds_utilities = require("@elliemae/ds-utilities");
41
+ var import_ds_hidden = require("@elliemae/ds-hidden");
42
+ var import_Popover = __toESM(require("./Popover"));
43
+ var import_usePopper = __toESM(require("./usePopper"));
44
+ var import_Arrow = __toESM(require("./Arrow"));
45
+ var import_usePopoverProviderState = __toESM(require("./usePopoverProviderState"));
46
+ __reExport(DSPopover_exports, require("@elliemae/ds-popper"));
32
47
  const Interaction = {
33
- CLICK: 'click',
34
- HOVER: 'hover'
48
+ CLICK: "click",
49
+ HOVER: "hover"
35
50
  };
36
- /* Unstable Popover, not yet fully working */
37
-
38
- const DSPopover = _ref => {
39
- let {
40
- containerProps,
41
- content,
42
- // react component inside the popover to render its content
43
- renderer,
44
- // function to render the popover component, ex: (popoverProps) => (<div {...popoverProps}></div>)
45
- visible: visibleProp,
46
- offset,
47
- showArrow,
48
- // popper props options
49
- placement,
50
- boundaries,
51
- // scrollParent | window | viewport
52
- modifiers,
53
- referenceEl,
54
- renderTrigger,
55
- onClickOutside,
56
- destroyOnHidden,
57
- interactionType,
58
- isOpen,
59
- style
60
- } = _ref;
61
- const {
62
- visible,
63
- onShow,
64
- onHide,
65
- onToggle
66
- } = dsHidden.useHiddenController(visibleProp);
67
- const {
68
- reference,
69
- popper,
70
- arrow,
71
- popperData
72
- } = usePopper({
51
+ const DSPopover = ({
52
+ containerProps,
53
+ content,
54
+ renderer,
55
+ visible: visibleProp,
56
+ offset,
57
+ showArrow,
58
+ placement,
59
+ boundaries,
60
+ modifiers,
61
+ referenceEl,
62
+ renderTrigger,
63
+ onClickOutside,
64
+ destroyOnHidden,
65
+ interactionType,
66
+ isOpen,
67
+ style
68
+ }) => {
69
+ const { visible, onShow, onHide, onToggle } = (0, import_ds_hidden.useHiddenController)(visibleProp);
70
+ const { reference, popper, arrow, popperData } = (0, import_usePopper.default)({
73
71
  placement,
74
72
  showArrow,
75
73
  boundaries,
@@ -79,89 +77,79 @@ const DSPopover = _ref => {
79
77
  eventsEnabled: visible,
80
78
  isOpen
81
79
  });
82
- const hoverHandlers = dsUtilities.useHoverHandlersDelay({
80
+ const hoverHandlers = (0, import_ds_utilities.useHoverHandlersDelay)({
83
81
  onMouseOver: onShow,
84
82
  onMouseLeave: onHide
85
83
  });
86
84
  const isPopoverVisible = visible || isOpen;
87
- return /*#__PURE__*/jsxRuntime.jsxs(jsxRuntime.Fragment, {
88
- children: [renderTrigger(_objectSpread(_objectSpread({}, reference), {}, {
89
- handlers: interactionType === 'click' ? {
90
- onClick: onToggle
91
- } : hoverHandlers,
85
+ return /* @__PURE__ */ import_react.default.createElement(import_react.default.Fragment, null, renderTrigger({
86
+ ...reference,
87
+ handlers: interactionType === "click" ? { onClick: onToggle } : hoverHandlers,
88
+ onShow,
89
+ onToggle,
90
+ onHide,
91
+ "aria-haspopup": true,
92
+ "aria-expanded": visible
93
+ }), isPopoverVisible && reference.ref && /* @__PURE__ */ import_react.default.createElement(import_Popover.default, {
94
+ containerProps,
95
+ destroyOnHidden,
96
+ interactionType,
97
+ isOpen,
98
+ onClickOutside: (...args) => {
99
+ onClickOutside(...args);
100
+ if (interactionType === "click")
101
+ onHide();
102
+ },
103
+ popperProps: popper,
104
+ renderer: renderer && ((props) => renderer({
105
+ ...props,
92
106
  onShow,
93
107
  onToggle,
94
- onHide,
95
- 'aria-haspopup': true,
96
- 'aria-expanded': visible
97
- })), isPopoverVisible && reference.ref && /*#__PURE__*/_jsx__default["default"](Popover, {
98
- containerProps: containerProps,
99
- destroyOnHidden: destroyOnHidden,
100
- interactionType: interactionType,
101
- isOpen: isOpen,
102
- onClickOutside: function () {
103
- onClickOutside(...arguments);
104
- if (interactionType === 'click') onHide();
105
- },
106
- popperProps: popper,
107
- renderer: renderer && (props => renderer(_objectSpread(_objectSpread({}, props), {}, {
108
- onShow,
109
- onToggle,
110
- onHide
111
- }))),
112
- style: style,
113
- visible: isPopoverVisible
114
- }, void 0, showArrow && /*#__PURE__*/jsxRuntime.jsx(Arrow, _objectSpread(_objectSpread({}, arrow), {}, {
115
- placement: popperData.placement
116
- })), isPopoverVisible && content)]
117
- });
108
+ onHide
109
+ })),
110
+ style,
111
+ visible: isPopoverVisible
112
+ }, showArrow && /* @__PURE__ */ import_react.default.createElement(import_Arrow.default, {
113
+ ...arrow,
114
+ placement: popperData.placement
115
+ }), isPopoverVisible && content));
118
116
  };
119
-
120
117
  DSPopover.defaultProps = {
121
118
  containerProps: {},
122
- renderer: undefined,
123
- visible: undefined,
124
- offset: undefined,
119
+ renderer: void 0,
120
+ visible: void 0,
121
+ offset: void 0,
125
122
  showArrow: false,
126
- placement: 'top',
123
+ placement: "top",
127
124
  modifiers: {},
128
125
  renderTrigger: () => null,
129
126
  onClickOutside: () => null,
130
127
  destroyOnHidden: true,
131
- isOpen: undefined
128
+ isOpen: void 0
132
129
  };
133
130
  const popoverProps = {
134
- containerProps: reactDesc.PropTypes.shape({}).description('Set of Properties attached to the main container'),
135
- destroyOnHidden: reactDesc.PropTypes.bool.description('destroy popover on hidden or not').defaultValue(true),
136
- renderer: reactDesc.PropTypes.func.description('custom renderer'),
137
- popperProps: reactDesc.PropTypes.object.description('Popper props attached to container'),
138
- visible: reactDesc.PropTypes.bool.description('is visible or not').defaultValue(false),
139
- content: reactDesc.PropTypes.oneOfType([reactDesc.PropTypes.element, reactDesc.PropTypes.string]).description('popover content'),
140
- onClickOutside: reactDesc.PropTypes.func.description('function called on click outside'),
141
- interaction: reactDesc.PropTypes.string.description('interaction type: hover, click'),
142
- offset: reactDesc.PropTypes.object.description('offset'),
143
- showArrow: reactDesc.PropTypes.bool.description('show tooltip arrow or not'),
144
- placement: reactDesc.PropTypes.string.description('popover placement: top, bottom, right, left'),
145
- boundaries: reactDesc.PropTypes.string.description('popover boundaries'),
146
- modifiers: reactDesc.PropTypes.object.description('modifiers'),
147
- style: reactDesc.PropTypes.object.description('css style object'),
148
- referenceEl: reactDesc.PropTypes.element.description('reference element'),
149
- renderTrigger: reactDesc.PropTypes.func.description('render trigger element'),
150
- interactionType: reactDesc.PropTypes.string.description('interaction type'),
151
- isOpen: reactDesc.PropTypes.bool.description('open or not').defaultValue(false)
131
+ containerProps: import_react_desc.PropTypes.shape({}).description("Set of Properties attached to the main container"),
132
+ destroyOnHidden: import_react_desc.PropTypes.bool.description("destroy popover on hidden or not").defaultValue(true),
133
+ renderer: import_react_desc.PropTypes.func.description("custom renderer"),
134
+ popperProps: import_react_desc.PropTypes.object.description("Popper props attached to container"),
135
+ visible: import_react_desc.PropTypes.bool.description("is visible or not").defaultValue(false),
136
+ content: import_react_desc.PropTypes.oneOfType([import_react_desc.PropTypes.element, import_react_desc.PropTypes.string]).description("popover content"),
137
+ onClickOutside: import_react_desc.PropTypes.func.description("function called on click outside"),
138
+ interaction: import_react_desc.PropTypes.string.description("interaction type: hover, click"),
139
+ offset: import_react_desc.PropTypes.object.description("offset"),
140
+ showArrow: import_react_desc.PropTypes.bool.description("show tooltip arrow or not"),
141
+ placement: import_react_desc.PropTypes.string.description("popover placement: top, bottom, right, left"),
142
+ boundaries: import_react_desc.PropTypes.string.description("popover boundaries"),
143
+ modifiers: import_react_desc.PropTypes.object.description("modifiers"),
144
+ style: import_react_desc.PropTypes.object.description("css style object"),
145
+ referenceEl: import_react_desc.PropTypes.element.description("reference element"),
146
+ renderTrigger: import_react_desc.PropTypes.func.description("render trigger element"),
147
+ interactionType: import_react_desc.PropTypes.string.description("interaction type"),
148
+ isOpen: import_react_desc.PropTypes.bool.description("open or not").defaultValue(false)
152
149
  };
153
- const PopoverWithSchema = reactDesc.describe(DSPopover);
150
+ DSPopover.propTypes = popoverProps;
151
+ const PopoverWithSchema = (0, import_react_desc.describe)(DSPopover);
154
152
  PopoverWithSchema.propTypes = popoverProps;
155
-
156
- exports.usePopper = usePopper;
157
- exports.usePopoverProviderState = usePopoverProviderState;
158
- exports.DSPopover = DSPopover;
159
- exports.Interaction = Interaction;
160
- exports.PopoverWithSchema = PopoverWithSchema;
161
- exports["default"] = DSPopover;
162
- Object.keys(dsPopper).forEach(function (k) {
163
- if (k !== 'default' && !exports.hasOwnProperty(k)) Object.defineProperty(exports, k, {
164
- enumerable: true,
165
- get: function () { return dsPopper[k]; }
166
- });
167
- });
153
+ var DSPopover_default = DSPopover;
154
+ module.exports = __toCommonJS(DSPopover_exports);
155
+ //# sourceMappingURL=DSPopover.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/DSPopover.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["/* eslint-disable max-lines */\nimport React from 'react';\nimport { PropTypes, describe } from 'react-desc';\nimport { useHoverHandlersDelay } from '@elliemae/ds-utilities';\nimport { useHiddenController } from '@elliemae/ds-hidden';\nimport Popover from './Popover';\nimport usePopper from './usePopper';\nimport Arrow from './Arrow';\nimport usePopoverProviderState from './usePopoverProviderState';\n\nexport * from '@elliemae/ds-popper';\nexport const Interaction = {\n CLICK: 'click',\n HOVER: 'hover',\n};\n\n/* Unstable Popover, not yet fully working */\nconst DSPopover = ({\n containerProps,\n content, // react component inside the popover to render its content\n renderer, // function to render the popover component, ex: (popoverProps) => (<div {...popoverProps}></div>)\n visible: visibleProp,\n offset,\n showArrow,\n // popper props options\n placement,\n boundaries, // scrollParent | window | viewport\n modifiers,\n referenceEl,\n renderTrigger,\n onClickOutside,\n destroyOnHidden,\n interactionType,\n isOpen,\n style,\n}) => {\n const { visible, onShow, onHide, onToggle } = useHiddenController(visibleProp);\n\n const { reference, popper, arrow, popperData } = usePopper({\n placement,\n showArrow,\n boundaries,\n modifiers,\n offset,\n referenceEl,\n eventsEnabled: visible,\n isOpen,\n });\n\n const hoverHandlers = useHoverHandlersDelay({\n onMouseOver: onShow,\n onMouseLeave: onHide,\n });\n const isPopoverVisible = visible || isOpen;\n return (\n <>\n {renderTrigger({\n ...reference,\n handlers: interactionType === 'click' ? { onClick: onToggle } : hoverHandlers,\n onShow,\n onToggle,\n onHide,\n 'aria-haspopup': true,\n 'aria-expanded': visible,\n })}\n {isPopoverVisible && reference.ref && (\n <Popover\n containerProps={containerProps}\n destroyOnHidden={destroyOnHidden}\n interactionType={interactionType}\n isOpen={isOpen}\n onClickOutside={(...args) => {\n onClickOutside(...args);\n if (interactionType === 'click') onHide();\n }}\n popperProps={popper}\n renderer={\n renderer &&\n ((props) =>\n renderer({\n ...props,\n onShow,\n onToggle,\n onHide,\n }))\n }\n style={style}\n visible={isPopoverVisible}\n >\n {showArrow && <Arrow {...arrow} placement={popperData.placement} />}\n {isPopoverVisible && content}\n </Popover>\n )}\n </>\n );\n};\n\nDSPopover.defaultProps = {\n containerProps: {},\n renderer: undefined,\n visible: undefined,\n offset: undefined,\n showArrow: false,\n placement: 'top',\n modifiers: {},\n renderTrigger: () => null,\n onClickOutside: () => null,\n destroyOnHidden: true,\n isOpen: undefined,\n};\n\nconst popoverProps = {\n containerProps: PropTypes.shape({}).description('Set of Properties attached to the main container'),\n destroyOnHidden: PropTypes.bool.description('destroy popover on hidden or not').defaultValue(true),\n renderer: PropTypes.func.description('custom renderer'),\n popperProps: PropTypes.object.description('Popper props attached to container'),\n visible: PropTypes.bool.description('is visible or not').defaultValue(false),\n content: PropTypes.oneOfType([PropTypes.element, PropTypes.string]).description('popover content'),\n onClickOutside: PropTypes.func.description('function called on click outside'),\n interaction: PropTypes.string.description('interaction type: hover, click'),\n offset: PropTypes.object.description('offset'),\n showArrow: PropTypes.bool.description('show tooltip arrow or not'),\n placement: PropTypes.string.description('popover placement: top, bottom, right, left'),\n boundaries: PropTypes.string.description('popover boundaries'),\n modifiers: PropTypes.object.description('modifiers'),\n style: PropTypes.object.description('css style object'),\n referenceEl: PropTypes.element.description('reference element'),\n renderTrigger: PropTypes.func.description('render trigger element'),\n interactionType: PropTypes.string.description('interaction type'),\n isOpen: PropTypes.bool.description('open or not').defaultValue(false),\n};\n\nDSPopover.propTypes = popoverProps;\n\nconst PopoverWithSchema = describe(DSPopover);\nPopoverWithSchema.propTypes = popoverProps;\n\nexport { DSPopover, usePopper, usePopoverProviderState, PopoverWithSchema };\n\nexport default DSPopover;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": "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",
6
+ "names": []
7
+ }
package/cjs/Popover.js CHANGED
@@ -1,66 +1,73 @@
1
- 'use strict';
2
-
3
- require('core-js/modules/esnext.async-iterator.filter.js');
4
- require('core-js/modules/esnext.iterator.constructor.js');
5
- require('core-js/modules/esnext.iterator.filter.js');
6
- require('core-js/modules/esnext.async-iterator.for-each.js');
7
- require('core-js/modules/esnext.iterator.for-each.js');
8
- var _jsx = require('@babel/runtime/helpers/jsx');
9
- var _defineProperty = require('@babel/runtime/helpers/defineProperty');
10
- var _objectWithoutProperties = require('@babel/runtime/helpers/objectWithoutProperties');
11
- var react = require('react');
12
- var lodash = require('lodash');
13
- var dsClassnames = require('@elliemae/ds-classnames');
14
- var dsUtilities = require('@elliemae/ds-utilities');
15
- var dsHidden = require('@elliemae/ds-hidden');
16
- var DSPortal = require('@elliemae/ds-portal');
17
- var jsxRuntime = require('react/jsx-runtime');
18
-
19
- function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
20
-
21
- var _jsx__default = /*#__PURE__*/_interopDefaultLegacy(_jsx);
22
- var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
23
- var _objectWithoutProperties__default = /*#__PURE__*/_interopDefaultLegacy(_objectWithoutProperties);
24
- var DSPortal__default = /*#__PURE__*/_interopDefaultLegacy(DSPortal);
25
-
26
- const _excluded = ["containerProps", "destroyOnHidden", "renderer", "popperProps", "visible", "content", "onClickOutside", "style"];
27
-
28
- 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; }
29
-
30
- 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__default["default"](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; }
31
- const blockName = 'popover';
32
- const PopoverComponent = dsClassnames.aggregatedClasses('div')(blockName);
33
-
34
- function Popover(_ref) {
35
- let {
36
- containerProps,
37
- destroyOnHidden = true,
38
- renderer = undefined,
39
- popperProps = {},
40
- visible = false,
41
- content = undefined,
42
- onClickOutside = () => null,
43
- style
44
- } = _ref,
45
- otherProps = _objectWithoutProperties__default["default"](_ref, _excluded);
46
-
47
- const popoverRef = react.useRef();
48
- const hiddenTransitionProps = dsHidden.useHiddenTransition({
49
- visible
50
- });
51
- const popoverProps = dsUtilities.removeUndefinedProperties(_objectSpread(_objectSpread({
1
+ var __create = Object.create;
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __getProtoOf = Object.getPrototypeOf;
6
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
7
+ var __markAsModule = (target) => __defProp(target, "__esModule", { value: true });
8
+ var __export = (target, all) => {
9
+ for (var name in all)
10
+ __defProp(target, name, { get: all[name], enumerable: true });
11
+ };
12
+ var __reExport = (target, module2, copyDefault, desc) => {
13
+ if (module2 && typeof module2 === "object" || typeof module2 === "function") {
14
+ for (let key of __getOwnPropNames(module2))
15
+ if (!__hasOwnProp.call(target, key) && (copyDefault || key !== "default"))
16
+ __defProp(target, key, { get: () => module2[key], enumerable: !(desc = __getOwnPropDesc(module2, key)) || desc.enumerable });
17
+ }
18
+ return target;
19
+ };
20
+ var __toESM = (module2, isNodeMode) => {
21
+ return __reExport(__markAsModule(__defProp(module2 != null ? __create(__getProtoOf(module2)) : {}, "default", !isNodeMode && module2 && module2.__esModule ? { get: () => module2.default, enumerable: true } : { value: module2, enumerable: true })), module2);
22
+ };
23
+ var __toCommonJS = /* @__PURE__ */ ((cache) => {
24
+ return (module2, temp) => {
25
+ return cache && cache.get(module2) || (temp = __reExport(__markAsModule({}), module2, 1), cache && cache.set(module2, temp), temp);
26
+ };
27
+ })(typeof WeakMap !== "undefined" ? /* @__PURE__ */ new WeakMap() : 0);
28
+ var Popover_exports = {};
29
+ __export(Popover_exports, {
30
+ default: () => Popover_default
31
+ });
32
+ var React = __toESM(require("react"));
33
+ var import_react = __toESM(require("react"));
34
+ var import_lodash = require("lodash");
35
+ var import_ds_classnames = require("@elliemae/ds-classnames");
36
+ var import_ds_utilities = require("@elliemae/ds-utilities");
37
+ var import_ds_hidden = require("@elliemae/ds-hidden");
38
+ var import_ds_portal = __toESM(require("@elliemae/ds-portal"));
39
+ const blockName = "popover";
40
+ const PopoverComponent = (0, import_ds_classnames.aggregatedClasses)("div")(blockName);
41
+ function Popover({
42
+ containerProps,
43
+ destroyOnHidden = true,
44
+ renderer = void 0,
45
+ popperProps = {},
46
+ visible = false,
47
+ content = void 0,
48
+ onClickOutside = () => null,
49
+ style,
50
+ ...otherProps
51
+ }) {
52
+ const popoverRef = (0, import_react.useRef)();
53
+ const hiddenTransitionProps = (0, import_ds_hidden.useHiddenTransition)({ visible });
54
+ const popoverProps = (0, import_ds_utilities.removeUndefinedProperties)({
52
55
  containerprops: containerProps,
53
56
  content,
54
- ref: popoverRef
55
- }, otherProps), hiddenTransitionProps));
56
- dsUtilities.useOnClickOutside(popoverRef, onClickOutside);
57
- const wrapStyle = lodash.omit(style, 'zIndex') || {};
58
- return destroyOnHidden && !hiddenTransitionProps.destroyed && /*#__PURE__*/_jsx__default["default"](DSPortal__default["default"], {}, void 0, /*#__PURE__*/jsxRuntime.jsx("div", _objectSpread(_objectSpread({}, popperProps), {}, {
59
- style: _objectSpread(_objectSpread({}, style), popperProps.style),
60
- children: dsUtilities.isFunction(renderer) ? renderer(popoverProps) : /*#__PURE__*/jsxRuntime.jsx(PopoverComponent, _objectSpread(_objectSpread({}, popoverProps), {}, {
61
- style: wrapStyle
62
- }))
57
+ ref: popoverRef,
58
+ ...otherProps,
59
+ ...hiddenTransitionProps
60
+ });
61
+ (0, import_ds_utilities.useOnClickOutside)(popoverRef, onClickOutside);
62
+ const wrapStyle = (0, import_lodash.omit)(style, "zIndex") || {};
63
+ return destroyOnHidden && !hiddenTransitionProps.destroyed && /* @__PURE__ */ import_react.default.createElement(import_ds_portal.default, null, /* @__PURE__ */ import_react.default.createElement("div", {
64
+ ...popperProps,
65
+ style: { ...style, ...popperProps.style }
66
+ }, (0, import_ds_utilities.isFunction)(renderer) ? renderer(popoverProps) : /* @__PURE__ */ import_react.default.createElement(PopoverComponent, {
67
+ ...popoverProps,
68
+ style: wrapStyle
63
69
  })));
64
70
  }
65
-
66
- module.exports = Popover;
71
+ var Popover_default = Popover;
72
+ module.exports = __toCommonJS(Popover_exports);
73
+ //# sourceMappingURL=Popover.js.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/Popover.tsx", "../../../../scripts/build/transpile/react-shim.js"],
4
+ "sourcesContent": ["import React, { useRef } from 'react';\nimport { omit } from 'lodash';\nimport { aggregatedClasses } from '@elliemae/ds-classnames';\nimport { isFunction, removeUndefinedProperties, useOnClickOutside } from '@elliemae/ds-utilities';\nimport { useHiddenTransition } from '@elliemae/ds-hidden';\nimport DSPortal from '@elliemae/ds-portal';\n\nconst blockName = 'popover';\nconst PopoverComponent = aggregatedClasses('div')(blockName);\n\nfunction Popover({\n containerProps,\n destroyOnHidden = true,\n renderer = undefined,\n popperProps = {},\n visible = false,\n content = undefined,\n onClickOutside = () => null,\n style,\n ...otherProps\n}) {\n const popoverRef = useRef();\n const hiddenTransitionProps = useHiddenTransition({ visible });\n const popoverProps = removeUndefinedProperties({\n containerprops: containerProps,\n content,\n ref: popoverRef,\n ...otherProps,\n ...hiddenTransitionProps,\n });\n\n useOnClickOutside(popoverRef, onClickOutside);\n\n const wrapStyle = omit(style, 'zIndex') || {};\n return (\n destroyOnHidden &&\n !hiddenTransitionProps.destroyed && (\n <DSPortal>\n <div {...popperProps} style={{ ...style, ...popperProps.style }}>\n {isFunction(renderer) ? renderer(popoverProps) : <PopoverComponent {...popoverProps} style={wrapStyle} />}\n </div>\n </DSPortal>\n )\n );\n}\n\nexport default Popover;\n", "import * as React from 'react';\nexport { React };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;ACAA,YAAuB;ADAvB,mBAA8B;AAC9B,oBAAqB;AACrB,2BAAkC;AAClC,0BAAyE;AACzE,uBAAoC;AACpC,uBAAqB;AAErB,MAAM,YAAY;AAClB,MAAM,mBAAmB,4CAAkB,OAAO;AAElD,iBAAiB;AAAA,EACf;AAAA,EACA,kBAAkB;AAAA,EAClB,WAAW;AAAA,EACX,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,EACV,iBAAiB,MAAM;AAAA,EACvB;AAAA,KACG;AAAA,GACF;AACD,QAAM,aAAa;AACnB,QAAM,wBAAwB,0CAAoB,EAAE;AACpD,QAAM,eAAe,mDAA0B;AAAA,IAC7C,gBAAgB;AAAA,IAChB;AAAA,IACA,KAAK;AAAA,OACF;AAAA,OACA;AAAA;AAGL,6CAAkB,YAAY;AAE9B,QAAM,YAAY,wBAAK,OAAO,aAAa;AAC3C,SACE,mBACA,CAAC,sBAAsB,aACrB,mDAAC,0BAAD,MACE,mDAAC,OAAD;AAAA,OAAS;AAAA,IAAa,OAAO,KAAK,UAAU,YAAY;AAAA,KACrD,oCAAW,YAAY,SAAS,gBAAgB,mDAAC,kBAAD;AAAA,OAAsB;AAAA,IAAc,OAAO;AAAA;AAAA;AAOtG,IAAO,kBAAQ;",
6
+ "names": []
7
+ }