@panneau/element-modal 2.0.56 → 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.
@@ -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.56",
3
+ "version": "2.0.59",
4
4
  "description": "Modal element",
5
5
  "keywords": [
6
6
  "javascript"
@@ -45,10 +45,10 @@
45
45
  },
46
46
  "dependencies": {
47
47
  "@babel/runtime": "^7.12.5",
48
- "@panneau/core": "^2.0.56",
49
- "@panneau/element-button": "^2.0.56",
50
- "@panneau/element-icon": "^2.0.56",
51
- "@panneau/element-label": "^2.0.56",
48
+ "@panneau/core": "^2.0.58",
49
+ "@panneau/element-button": "^2.0.59",
50
+ "@panneau/element-icon": "^2.0.58",
51
+ "@panneau/element-label": "^2.0.58",
52
52
  "classnames": "^2.2.6",
53
53
  "prop-types": "^15.7.2",
54
54
  "react-intl": "^5.15.8||^6.0.0"
@@ -56,5 +56,5 @@
56
56
  "publishConfig": {
57
57
  "access": "public"
58
58
  },
59
- "gitHead": "edb76a5622f04136db62c1dd0c4b2e362de6878a"
59
+ "gitHead": "c25e7992dd528293d08ca7de09bcda5ab93f9b43"
60
60
  }