@panneau/element-modal 2.0.58 → 2.0.59
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/assets/css/styles.css +1 -0
- package/es/index.js +122 -0
- package/lib/index.js +137 -0
- package/package.json +3 -3
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.panneau-element-modal-modal{bottom:0;display:-ms-flexbox;display:flex;height:100%;left:9;overflow-y:auto;position:absolute;right:0;top:0;width:100%}.panneau-element-modal-modal.panneau-element-modal-center>.panneau-element-modal-inner{margin:auto}.panneau-element-modal-modal.panneau-element-modal-top>.panneau-element-modal-inner{margin:0 auto;padding:1.75rem 0}.panneau-element-modal-modalsContainer{position:static}.panneau-element-modal-modalsContainer .panneau-element-modal-modals.panneau-element-modal-hasModals{background-color:rgba(0,0,0,.3);bottom:0;left:0;position:fixed;right:0;top:0;z-index:9999}
|
package/es/index.js
ADDED
|
@@ -0,0 +1,122 @@
|
|
|
1
|
+
import _defineProperty from '@babel/runtime/helpers/defineProperty';
|
|
2
|
+
import classNames from 'classnames';
|
|
3
|
+
import PropTypes from 'prop-types';
|
|
4
|
+
import React, { useMemo, useEffect, useRef } from 'react';
|
|
5
|
+
import { getDisplayName } from '@panneau/core/utils';
|
|
6
|
+
import ReactDOM from 'react-dom';
|
|
7
|
+
import { useModal } from '@panneau/core/contexts';
|
|
8
|
+
|
|
9
|
+
/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */
|
|
10
|
+
|
|
11
|
+
// import ElementPortal from '@panneau/element-portal';
|
|
12
|
+
|
|
13
|
+
var propTypes$2 = {
|
|
14
|
+
id: PropTypes.string,
|
|
15
|
+
data: PropTypes.object,
|
|
16
|
+
// eslint-disable-line react/forbid-prop-types
|
|
17
|
+
children: PropTypes.node
|
|
18
|
+
};
|
|
19
|
+
var defaultProps$2 = {
|
|
20
|
+
id: null,
|
|
21
|
+
data: null,
|
|
22
|
+
children: null
|
|
23
|
+
};
|
|
24
|
+
var ModalPortal = function ModalPortal(_ref) {
|
|
25
|
+
var id = _ref.id,
|
|
26
|
+
data = _ref.data,
|
|
27
|
+
children = _ref.children;
|
|
28
|
+
var _useModal = useModal(),
|
|
29
|
+
_useModal$container = _useModal.container,
|
|
30
|
+
container = _useModal$container === void 0 ? null : _useModal$container,
|
|
31
|
+
_useModal$register = _useModal.register,
|
|
32
|
+
register = _useModal$register === void 0 ? null : _useModal$register,
|
|
33
|
+
_useModal$unregister = _useModal.unregister,
|
|
34
|
+
unregister = _useModal$unregister === void 0 ? null : _useModal$unregister;
|
|
35
|
+
var finalId = useMemo(function () {
|
|
36
|
+
return id ? "modal-".concat(id) : "modal-".concat(new Date().getTime());
|
|
37
|
+
}, [id]);
|
|
38
|
+
useEffect(function () {
|
|
39
|
+
if (register !== null) {
|
|
40
|
+
register(finalId, data);
|
|
41
|
+
}
|
|
42
|
+
return function () {
|
|
43
|
+
if (unregister !== null) {
|
|
44
|
+
unregister(finalId);
|
|
45
|
+
}
|
|
46
|
+
};
|
|
47
|
+
}, [finalId, data]);
|
|
48
|
+
return container !== null ? /*#__PURE__*/ReactDOM.createPortal(children, container) : null;
|
|
49
|
+
};
|
|
50
|
+
ModalPortal.propTypes = propTypes$2;
|
|
51
|
+
ModalPortal.defaultProps = defaultProps$2;
|
|
52
|
+
|
|
53
|
+
var styles = {"modal":"panneau-element-modal-modal","center":"panneau-element-modal-center","inner":"panneau-element-modal-inner","top":"panneau-element-modal-top","modalsContainer":"panneau-element-modal-modalsContainer","modals":"panneau-element-modal-modals","hasModals":"panneau-element-modal-hasModals"};
|
|
54
|
+
|
|
55
|
+
var propTypes$1 = {
|
|
56
|
+
id: PropTypes.string,
|
|
57
|
+
title: PropTypes.string,
|
|
58
|
+
position: PropTypes.oneOf(['center', 'top']),
|
|
59
|
+
children: PropTypes.node
|
|
60
|
+
};
|
|
61
|
+
var defaultProps$1 = {
|
|
62
|
+
id: null,
|
|
63
|
+
title: null,
|
|
64
|
+
position: 'center',
|
|
65
|
+
children: null
|
|
66
|
+
};
|
|
67
|
+
var Modal = function Modal(_ref) {
|
|
68
|
+
var id = _ref.id,
|
|
69
|
+
children = _ref.children,
|
|
70
|
+
position = _ref.position,
|
|
71
|
+
title = _ref.title;
|
|
72
|
+
var name = getDisplayName(children);
|
|
73
|
+
var finalId = useMemo(function () {
|
|
74
|
+
return id || name || 'Modal';
|
|
75
|
+
}, [id, name]);
|
|
76
|
+
var data = useMemo(function () {
|
|
77
|
+
return {
|
|
78
|
+
title: title
|
|
79
|
+
};
|
|
80
|
+
}, [title]);
|
|
81
|
+
return /*#__PURE__*/React.createElement(ModalPortal, {
|
|
82
|
+
id: finalId,
|
|
83
|
+
data: data
|
|
84
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
85
|
+
className: classNames([styles.modal, _defineProperty({}, styles[position], position !== null)])
|
|
86
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
87
|
+
className: styles.inner
|
|
88
|
+
}, children)));
|
|
89
|
+
};
|
|
90
|
+
Modal.propTypes = propTypes$1;
|
|
91
|
+
Modal.defaultProps = defaultProps$1;
|
|
92
|
+
|
|
93
|
+
var propTypes = {
|
|
94
|
+
className: PropTypes.string
|
|
95
|
+
};
|
|
96
|
+
var defaultProps = {
|
|
97
|
+
className: null
|
|
98
|
+
};
|
|
99
|
+
var Modals = function Modals(_ref) {
|
|
100
|
+
var className = _ref.className;
|
|
101
|
+
var _useModal = useModal(),
|
|
102
|
+
_useModal$modals = _useModal.modals,
|
|
103
|
+
modals = _useModal$modals === void 0 ? null : _useModal$modals,
|
|
104
|
+
_useModal$setContaine = _useModal.setContainer,
|
|
105
|
+
setContainer = _useModal$setContaine === void 0 ? null : _useModal$setContaine;
|
|
106
|
+
var containerRef = useRef(null);
|
|
107
|
+
useEffect(function () {
|
|
108
|
+
if (setContainer !== null) {
|
|
109
|
+
setContainer(containerRef.current);
|
|
110
|
+
}
|
|
111
|
+
}, [setContainer]);
|
|
112
|
+
return /*#__PURE__*/React.createElement("div", {
|
|
113
|
+
className: classNames([styles.modalsContainer, _defineProperty({}, className, className)])
|
|
114
|
+
}, /*#__PURE__*/React.createElement("div", {
|
|
115
|
+
className: classNames([styles.modals, _defineProperty({}, styles.hasModals, modals.length > 0)]),
|
|
116
|
+
ref: containerRef
|
|
117
|
+
}));
|
|
118
|
+
};
|
|
119
|
+
Modals.propTypes = propTypes;
|
|
120
|
+
Modals.defaultProps = defaultProps;
|
|
121
|
+
|
|
122
|
+
export { Modal, ModalPortal, Modals, Modal as default };
|
package/lib/index.js
ADDED
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var _defineProperty = require('@babel/runtime/helpers/defineProperty');
|
|
6
|
+
var classNames = require('classnames');
|
|
7
|
+
var PropTypes = require('prop-types');
|
|
8
|
+
var React = require('react');
|
|
9
|
+
var utils = require('@panneau/core/utils');
|
|
10
|
+
var ReactDOM = require('react-dom');
|
|
11
|
+
var contexts = require('@panneau/core/contexts');
|
|
12
|
+
|
|
13
|
+
function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
|
|
14
|
+
|
|
15
|
+
var _defineProperty__default = /*#__PURE__*/_interopDefaultLegacy(_defineProperty);
|
|
16
|
+
var classNames__default = /*#__PURE__*/_interopDefaultLegacy(classNames);
|
|
17
|
+
var PropTypes__default = /*#__PURE__*/_interopDefaultLegacy(PropTypes);
|
|
18
|
+
var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
|
|
19
|
+
var ReactDOM__default = /*#__PURE__*/_interopDefaultLegacy(ReactDOM);
|
|
20
|
+
|
|
21
|
+
/* eslint-disable react/no-array-index-key, react/jsx-props-no-spreading */
|
|
22
|
+
|
|
23
|
+
// import ElementPortal from '@panneau/element-portal';
|
|
24
|
+
|
|
25
|
+
var propTypes$2 = {
|
|
26
|
+
id: PropTypes__default["default"].string,
|
|
27
|
+
data: PropTypes__default["default"].object,
|
|
28
|
+
// eslint-disable-line react/forbid-prop-types
|
|
29
|
+
children: PropTypes__default["default"].node
|
|
30
|
+
};
|
|
31
|
+
var defaultProps$2 = {
|
|
32
|
+
id: null,
|
|
33
|
+
data: null,
|
|
34
|
+
children: null
|
|
35
|
+
};
|
|
36
|
+
var ModalPortal = function ModalPortal(_ref) {
|
|
37
|
+
var id = _ref.id,
|
|
38
|
+
data = _ref.data,
|
|
39
|
+
children = _ref.children;
|
|
40
|
+
var _useModal = contexts.useModal(),
|
|
41
|
+
_useModal$container = _useModal.container,
|
|
42
|
+
container = _useModal$container === void 0 ? null : _useModal$container,
|
|
43
|
+
_useModal$register = _useModal.register,
|
|
44
|
+
register = _useModal$register === void 0 ? null : _useModal$register,
|
|
45
|
+
_useModal$unregister = _useModal.unregister,
|
|
46
|
+
unregister = _useModal$unregister === void 0 ? null : _useModal$unregister;
|
|
47
|
+
var finalId = React.useMemo(function () {
|
|
48
|
+
return id ? "modal-".concat(id) : "modal-".concat(new Date().getTime());
|
|
49
|
+
}, [id]);
|
|
50
|
+
React.useEffect(function () {
|
|
51
|
+
if (register !== null) {
|
|
52
|
+
register(finalId, data);
|
|
53
|
+
}
|
|
54
|
+
return function () {
|
|
55
|
+
if (unregister !== null) {
|
|
56
|
+
unregister(finalId);
|
|
57
|
+
}
|
|
58
|
+
};
|
|
59
|
+
}, [finalId, data]);
|
|
60
|
+
return container !== null ? /*#__PURE__*/ReactDOM__default["default"].createPortal(children, container) : null;
|
|
61
|
+
};
|
|
62
|
+
ModalPortal.propTypes = propTypes$2;
|
|
63
|
+
ModalPortal.defaultProps = defaultProps$2;
|
|
64
|
+
|
|
65
|
+
var styles = {"modal":"panneau-element-modal-modal","center":"panneau-element-modal-center","inner":"panneau-element-modal-inner","top":"panneau-element-modal-top","modalsContainer":"panneau-element-modal-modalsContainer","modals":"panneau-element-modal-modals","hasModals":"panneau-element-modal-hasModals"};
|
|
66
|
+
|
|
67
|
+
var propTypes$1 = {
|
|
68
|
+
id: PropTypes__default["default"].string,
|
|
69
|
+
title: PropTypes__default["default"].string,
|
|
70
|
+
position: PropTypes__default["default"].oneOf(['center', 'top']),
|
|
71
|
+
children: PropTypes__default["default"].node
|
|
72
|
+
};
|
|
73
|
+
var defaultProps$1 = {
|
|
74
|
+
id: null,
|
|
75
|
+
title: null,
|
|
76
|
+
position: 'center',
|
|
77
|
+
children: null
|
|
78
|
+
};
|
|
79
|
+
var Modal = function Modal(_ref) {
|
|
80
|
+
var id = _ref.id,
|
|
81
|
+
children = _ref.children,
|
|
82
|
+
position = _ref.position,
|
|
83
|
+
title = _ref.title;
|
|
84
|
+
var name = utils.getDisplayName(children);
|
|
85
|
+
var finalId = React.useMemo(function () {
|
|
86
|
+
return id || name || 'Modal';
|
|
87
|
+
}, [id, name]);
|
|
88
|
+
var data = React.useMemo(function () {
|
|
89
|
+
return {
|
|
90
|
+
title: title
|
|
91
|
+
};
|
|
92
|
+
}, [title]);
|
|
93
|
+
return /*#__PURE__*/React__default["default"].createElement(ModalPortal, {
|
|
94
|
+
id: finalId,
|
|
95
|
+
data: data
|
|
96
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
97
|
+
className: classNames__default["default"]([styles.modal, _defineProperty__default["default"]({}, styles[position], position !== null)])
|
|
98
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
99
|
+
className: styles.inner
|
|
100
|
+
}, children)));
|
|
101
|
+
};
|
|
102
|
+
Modal.propTypes = propTypes$1;
|
|
103
|
+
Modal.defaultProps = defaultProps$1;
|
|
104
|
+
|
|
105
|
+
var propTypes = {
|
|
106
|
+
className: PropTypes__default["default"].string
|
|
107
|
+
};
|
|
108
|
+
var defaultProps = {
|
|
109
|
+
className: null
|
|
110
|
+
};
|
|
111
|
+
var Modals = function Modals(_ref) {
|
|
112
|
+
var className = _ref.className;
|
|
113
|
+
var _useModal = contexts.useModal(),
|
|
114
|
+
_useModal$modals = _useModal.modals,
|
|
115
|
+
modals = _useModal$modals === void 0 ? null : _useModal$modals,
|
|
116
|
+
_useModal$setContaine = _useModal.setContainer,
|
|
117
|
+
setContainer = _useModal$setContaine === void 0 ? null : _useModal$setContaine;
|
|
118
|
+
var containerRef = React.useRef(null);
|
|
119
|
+
React.useEffect(function () {
|
|
120
|
+
if (setContainer !== null) {
|
|
121
|
+
setContainer(containerRef.current);
|
|
122
|
+
}
|
|
123
|
+
}, [setContainer]);
|
|
124
|
+
return /*#__PURE__*/React__default["default"].createElement("div", {
|
|
125
|
+
className: classNames__default["default"]([styles.modalsContainer, _defineProperty__default["default"]({}, className, className)])
|
|
126
|
+
}, /*#__PURE__*/React__default["default"].createElement("div", {
|
|
127
|
+
className: classNames__default["default"]([styles.modals, _defineProperty__default["default"]({}, styles.hasModals, modals.length > 0)]),
|
|
128
|
+
ref: containerRef
|
|
129
|
+
}));
|
|
130
|
+
};
|
|
131
|
+
Modals.propTypes = propTypes;
|
|
132
|
+
Modals.defaultProps = defaultProps;
|
|
133
|
+
|
|
134
|
+
exports.Modal = Modal;
|
|
135
|
+
exports.ModalPortal = ModalPortal;
|
|
136
|
+
exports.Modals = Modals;
|
|
137
|
+
exports["default"] = Modal;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@panneau/element-modal",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.59",
|
|
4
4
|
"description": "Modal element",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"javascript"
|
|
@@ -46,7 +46,7 @@
|
|
|
46
46
|
"dependencies": {
|
|
47
47
|
"@babel/runtime": "^7.12.5",
|
|
48
48
|
"@panneau/core": "^2.0.58",
|
|
49
|
-
"@panneau/element-button": "^2.0.
|
|
49
|
+
"@panneau/element-button": "^2.0.59",
|
|
50
50
|
"@panneau/element-icon": "^2.0.58",
|
|
51
51
|
"@panneau/element-label": "^2.0.58",
|
|
52
52
|
"classnames": "^2.2.6",
|
|
@@ -56,5 +56,5 @@
|
|
|
56
56
|
"publishConfig": {
|
|
57
57
|
"access": "public"
|
|
58
58
|
},
|
|
59
|
-
"gitHead": "
|
|
59
|
+
"gitHead": "c25e7992dd528293d08ca7de09bcda5ab93f9b43"
|
|
60
60
|
}
|