react-side-sheet-pro 0.1.2 → 0.1.4
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/README.md +44 -0
- package/dist/components/SideSheetContainer.js +75 -0
- package/dist/components/SideSheetContent.js +16 -0
- package/dist/components/SideSheetFooter.js +16 -0
- package/dist/components/SideSheetHeader.js +25 -0
- package/dist/components/SideSheetProvider.js +179 -0
- package/dist/constants/defaultOptions.js +45 -0
- package/dist/contexts/SideSheetReducer.js +48 -0
- package/dist/hooks/useSideSheet.js +17 -0
- package/dist/index.js +39 -13833
- package/dist/types/index.js +4 -0
- package/package.json +82 -86
- package/src/components/SideSheetHeader.tsx +5 -2
- package/src/components/SideSheetProvider.tsx +118 -105
- package/src/constants/defaultOptions.ts +25 -22
- package/src/types/index.ts +5 -2
- package/dist/index.css +0 -191
- package/dist/index.d.ts +0 -60
- package/dist/index.esm.d.ts +0 -60
- package/dist/index.esm.js +0 -13825
- package/dist/index.umd.d.ts +0 -60
- package/dist/index.umd.js +0 -13836
- package/dist/index.umd.min.d.ts +0 -60
- package/dist/index.umd.min.js +0 -7
package/README.md
CHANGED
|
@@ -94,6 +94,8 @@ export const App = () => {
|
|
|
94
94
|
)
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
+
// Wrap your app with the SideSheet.Provider to manage side sheets globally
|
|
98
|
+
|
|
97
99
|
export default () => (
|
|
98
100
|
<SideSheet.Provider>
|
|
99
101
|
<App />
|
|
@@ -101,6 +103,48 @@ export default () => (
|
|
|
101
103
|
)
|
|
102
104
|
```
|
|
103
105
|
|
|
106
|
+
## 🧩 Compound Components
|
|
107
|
+
|
|
108
|
+
### `Sheet.Provider`
|
|
109
|
+
|
|
110
|
+
Sheet provider component that manages the state of all side sheets in your application. It should wrap your main application component.
|
|
111
|
+
|
|
112
|
+
### `Sheet.Header`
|
|
113
|
+
|
|
114
|
+
Sheet header component that displays the title and can include custom actions. It also provides custom `onClick` function for a button to close the sheet.
|
|
115
|
+
|
|
116
|
+
#### Header props
|
|
117
|
+
|
|
118
|
+
| Name | Required | Default | Description |
|
|
119
|
+
|-------------|----------|-----------|------------------------------------------|
|
|
120
|
+
| `title` | yes | | Title of the header. |
|
|
121
|
+
| `onClose` | no | undefined | Callback function to close the sheet. |
|
|
122
|
+
| `actions` | no | undefined | Custom actions to render in the header. |
|
|
123
|
+
| `className` | no | undefined | Custom CSS class for additional styling. |
|
|
124
|
+
|
|
125
|
+
### `Sheet.Content`
|
|
126
|
+
|
|
127
|
+
Sheet content component that wraps the main content of the side sheet. Can be styled using custom classes.
|
|
128
|
+
|
|
129
|
+
#### Content props
|
|
130
|
+
|
|
131
|
+
| Name | Required | Default | Description |
|
|
132
|
+
|-------------|----------|-----------|-------------------------------------------|
|
|
133
|
+
| `children` | yes | | Content to display inside the side sheet. |
|
|
134
|
+
| `className` | no | undefined | Custom CSS class for additional styling. |
|
|
135
|
+
|
|
136
|
+
### `Sheet.Footer`
|
|
137
|
+
|
|
138
|
+
Sheet footer component that can be used to display actions or additional information at the bottom of the side sheet. Can be styled using custom classes.
|
|
139
|
+
|
|
140
|
+
#### Footer props
|
|
141
|
+
|
|
142
|
+
| Name | Required | Default | Description |
|
|
143
|
+
|-------------|----------|-----------|------------------------------------------|
|
|
144
|
+
| `children` | yes | | Content to display inside the footer. |
|
|
145
|
+
| `className` | no | undefined | Custom CSS class for additional styling. |
|
|
146
|
+
|
|
147
|
+
|
|
104
148
|
## 🧪 Testing
|
|
105
149
|
|
|
106
150
|
```bash
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SideSheetContainer = void 0;
|
|
8
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
9
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
10
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
11
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
12
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
13
|
+
var SideSheetContainer = exports.SideSheetContainer = function SideSheetContainer(_ref) {
|
|
14
|
+
var stack = _ref.stack,
|
|
15
|
+
open = _ref.open,
|
|
16
|
+
close = _ref.close,
|
|
17
|
+
update = _ref.update,
|
|
18
|
+
config = _ref.config;
|
|
19
|
+
(0, _react.useEffect)(function () {
|
|
20
|
+
var onKeyDown = function onKeyDown(e) {
|
|
21
|
+
if (e.key === 'Escape') {
|
|
22
|
+
var top = stack[stack.length - 1];
|
|
23
|
+
if (top !== null && top !== void 0 && top.options.closeOnEsc && top.state === 'open') {
|
|
24
|
+
close(top.id);
|
|
25
|
+
}
|
|
26
|
+
}
|
|
27
|
+
};
|
|
28
|
+
document.addEventListener('keydown', onKeyDown);
|
|
29
|
+
return function () {
|
|
30
|
+
document.removeEventListener('keydown', onKeyDown);
|
|
31
|
+
};
|
|
32
|
+
}, [stack, close]);
|
|
33
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, null, stack.map(function (item, idx) {
|
|
34
|
+
var _stack;
|
|
35
|
+
var isTop = idx === stack.length - 1;
|
|
36
|
+
var isPrevClosing = ((_stack = stack[idx - 1]) === null || _stack === void 0 ? void 0 : _stack.state) === 'closing';
|
|
37
|
+
var _item$options = item.options,
|
|
38
|
+
width = _item$options.width,
|
|
39
|
+
closeOnOverlayClick = _item$options.closeOnOverlayClick,
|
|
40
|
+
className = _item$options.className;
|
|
41
|
+
if (config.mountStrategy === 'top-only' && !isTop && !isPrevClosing) return null;
|
|
42
|
+
return /*#__PURE__*/_react["default"].createElement(_react["default"].Fragment, {
|
|
43
|
+
key: item.id
|
|
44
|
+
}, /*#__PURE__*/_react["default"].createElement("div", {
|
|
45
|
+
className: "sidesheet-overlay",
|
|
46
|
+
onClick: function onClick() {
|
|
47
|
+
if (closeOnOverlayClick && item.state === 'open') {
|
|
48
|
+
close(item.id);
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
}), /*#__PURE__*/_react["default"].createElement("div", {
|
|
52
|
+
role: "dialog",
|
|
53
|
+
"aria-modal": "true",
|
|
54
|
+
className: (0, _classnames["default"])('sidesheet', "sidesheet-animation-".concat(item.state), {
|
|
55
|
+
'sidesheet-left': config.side === 'left',
|
|
56
|
+
'sidesheet-right': config.side === 'right'
|
|
57
|
+
}, className),
|
|
58
|
+
style: {
|
|
59
|
+
width: "".concat(isTop || isPrevClosing ? "".concat(width, "px") : '100%')
|
|
60
|
+
}
|
|
61
|
+
}, item.element({
|
|
62
|
+
sideId: item.id,
|
|
63
|
+
options: item.options,
|
|
64
|
+
close: close,
|
|
65
|
+
open: open,
|
|
66
|
+
update: update
|
|
67
|
+
})));
|
|
68
|
+
}));
|
|
69
|
+
};
|
|
70
|
+
SideSheetContainer.propTypes = {
|
|
71
|
+
stack: _propTypes["default"].array.isRequired,
|
|
72
|
+
open: _propTypes["default"].func.isRequired,
|
|
73
|
+
close: _propTypes["default"].func.isRequired,
|
|
74
|
+
update: _propTypes["default"].func.isRequired
|
|
75
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SideSheetContent = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var SideSheetContent = exports.SideSheetContent = function SideSheetContent(_ref) {
|
|
11
|
+
var children = _ref.children,
|
|
12
|
+
className = _ref.className;
|
|
13
|
+
return /*#__PURE__*/_react["default"].createElement("section", {
|
|
14
|
+
className: (0, _classnames["default"])('sidesheet-content', className)
|
|
15
|
+
}, children);
|
|
16
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SideSheetFooter = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
9
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
10
|
+
var SideSheetFooter = exports.SideSheetFooter = function SideSheetFooter(_ref) {
|
|
11
|
+
var children = _ref.children,
|
|
12
|
+
className = _ref.className;
|
|
13
|
+
return /*#__PURE__*/_react["default"].createElement("footer", {
|
|
14
|
+
className: (0, _classnames["default"])('sidesheet-footer', className)
|
|
15
|
+
}, children);
|
|
16
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.SideSheetHeader = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _hi = require("react-icons/hi");
|
|
9
|
+
var _classnames = _interopRequireDefault(require("classnames"));
|
|
10
|
+
function _interopRequireDefault(e) { return e && e.__esModule ? e : { "default": e }; }
|
|
11
|
+
var SideSheetHeader = exports.SideSheetHeader = /*#__PURE__*/_react["default"].memo(function (_ref) {
|
|
12
|
+
var title = _ref.title,
|
|
13
|
+
onClose = _ref.onClose,
|
|
14
|
+
actions = _ref.actions,
|
|
15
|
+
className = _ref.className;
|
|
16
|
+
return /*#__PURE__*/_react["default"].createElement("header", {
|
|
17
|
+
className: (0, _classnames["default"])('sidesheet-header', className)
|
|
18
|
+
}, onClose && /*#__PURE__*/_react["default"].createElement("button", {
|
|
19
|
+
type: "button",
|
|
20
|
+
className: "sidesheet-header-close sidesheet-header-btn",
|
|
21
|
+
onClick: onClose
|
|
22
|
+
}, /*#__PURE__*/_react["default"].createElement(_hi.HiX, null)), /*#__PURE__*/_react["default"].createElement("div", {
|
|
23
|
+
className: "sidesheet-header-title"
|
|
24
|
+
}, title), actions);
|
|
25
|
+
});
|
|
@@ -0,0 +1,179 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SideSheetProvider = exports.SideSheetContext = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _reactDom = require("react-dom");
|
|
10
|
+
var _defaultOptions = require("../constants/defaultOptions");
|
|
11
|
+
var _SideSheetContainer = require("./SideSheetContainer");
|
|
12
|
+
var _SideSheetReducer = require("../contexts/SideSheetReducer");
|
|
13
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
14
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { return Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
|
|
15
|
+
function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
|
|
16
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
17
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
18
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
19
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
20
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
21
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
22
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
23
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
24
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
25
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
26
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
27
|
+
function _slicedToArray(r, e) { return _arrayWithHoles(r) || _iterableToArrayLimit(r, e) || _unsupportedIterableToArray(r, e) || _nonIterableRest(); }
|
|
28
|
+
function _nonIterableRest() { throw new TypeError("Invalid attempt to destructure non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
29
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
30
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
31
|
+
function _iterableToArrayLimit(r, l) { var t = null == r ? null : "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (null != t) { var e, n, i, u, a = [], f = !0, o = !1; try { if (i = (t = t.call(r)).next, 0 === l) { if (Object(t) !== t) return; f = !1; } else for (; !(f = (e = i.call(t)).done) && (a.push(e.value), a.length !== l); f = !0); } catch (r) { o = !0, n = r; } finally { try { if (!f && null != t["return"] && (u = t["return"](), Object(u) !== u)) return; } finally { if (o) throw n; } } return a; } }
|
|
32
|
+
function _arrayWithHoles(r) { if (Array.isArray(r)) return r; }
|
|
33
|
+
var SideSheetContext = exports.SideSheetContext = /*#__PURE__*/(0, _react.createContext)(null);
|
|
34
|
+
var SideSheetProvider = exports.SideSheetProvider = function SideSheetProvider(_ref) {
|
|
35
|
+
var children = _ref.children,
|
|
36
|
+
configuration = _ref.configuration;
|
|
37
|
+
var _useReducer = (0, _react.useReducer)(_SideSheetReducer.SideSheetReducer, []),
|
|
38
|
+
_useReducer2 = _slicedToArray(_useReducer, 2),
|
|
39
|
+
stack = _useReducer2[0],
|
|
40
|
+
dispatch = _useReducer2[1];
|
|
41
|
+
var stackRef = (0, _react.useRef)(stack);
|
|
42
|
+
var overflowRef = (0, _react.useRef)('');
|
|
43
|
+
var idRef = (0, _react.useRef)(0);
|
|
44
|
+
(0, _react.useEffect)(function () {
|
|
45
|
+
stackRef.current = stack;
|
|
46
|
+
}, [stack]);
|
|
47
|
+
var open = (0, _react.useCallback)(function (element) {
|
|
48
|
+
var opts = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};
|
|
49
|
+
var id = ++idRef.current;
|
|
50
|
+
var options = _objectSpread(_objectSpread({}, _defaultOptions.DEFAULT_SHEET_OPTIONS), opts);
|
|
51
|
+
if (!config.enableOverflow && stackRef.current.length === 0) {
|
|
52
|
+
overflowRef.current = document.body.style.overflow;
|
|
53
|
+
document.body.style.overflow = 'hidden';
|
|
54
|
+
}
|
|
55
|
+
dispatch({
|
|
56
|
+
type: 'OPEN',
|
|
57
|
+
payload: {
|
|
58
|
+
id: id,
|
|
59
|
+
element: element,
|
|
60
|
+
options: options,
|
|
61
|
+
state: 'opening'
|
|
62
|
+
}
|
|
63
|
+
});
|
|
64
|
+
setTimeout(function () {
|
|
65
|
+
var _options$onOpen;
|
|
66
|
+
dispatch({
|
|
67
|
+
type: 'SET_OPEN',
|
|
68
|
+
id: id
|
|
69
|
+
});
|
|
70
|
+
(_options$onOpen = options.onOpen) === null || _options$onOpen === void 0 ? void 0 : _options$onOpen.call(options, id);
|
|
71
|
+
}, options.animationDuration);
|
|
72
|
+
return id;
|
|
73
|
+
}, []);
|
|
74
|
+
var close = (0, _react.useCallback)(/*#__PURE__*/function () {
|
|
75
|
+
var _ref2 = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(id) {
|
|
76
|
+
var _itemsToClose;
|
|
77
|
+
var itemsToClose, _iterator, _step, _item$options$onClose, _item$options, item, _item$options$confirm, _item$options$confirm2, confirmCallback, confirmed, duration;
|
|
78
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
79
|
+
while (1) switch (_context.prev = _context.next) {
|
|
80
|
+
case 0:
|
|
81
|
+
itemsToClose = id === null ? _toConsumableArray(stackRef.current) : stackRef.current.filter(function (i) {
|
|
82
|
+
return i.id === id;
|
|
83
|
+
});
|
|
84
|
+
_iterator = _createForOfIteratorHelper(itemsToClose);
|
|
85
|
+
_context.prev = 2;
|
|
86
|
+
_iterator.s();
|
|
87
|
+
case 4:
|
|
88
|
+
if ((_step = _iterator.n()).done) {
|
|
89
|
+
_context.next = 16;
|
|
90
|
+
break;
|
|
91
|
+
}
|
|
92
|
+
item = _step.value;
|
|
93
|
+
if (!item.options.confirmBeforeClose) {
|
|
94
|
+
_context.next = 13;
|
|
95
|
+
break;
|
|
96
|
+
}
|
|
97
|
+
confirmCallback = (_item$options$confirm = item.options.confirmCallback) !== null && _item$options$confirm !== void 0 ? _item$options$confirm : config.confirmCallback;
|
|
98
|
+
_context.next = 10;
|
|
99
|
+
return confirmCallback((_item$options$confirm2 = item.options.confirmMessage) !== null && _item$options$confirm2 !== void 0 ? _item$options$confirm2 : config.confirmMessage);
|
|
100
|
+
case 10:
|
|
101
|
+
confirmed = _context.sent;
|
|
102
|
+
if (confirmed) {
|
|
103
|
+
_context.next = 13;
|
|
104
|
+
break;
|
|
105
|
+
}
|
|
106
|
+
return _context.abrupt("return");
|
|
107
|
+
case 13:
|
|
108
|
+
(_item$options$onClose = (_item$options = item.options).onClose) === null || _item$options$onClose === void 0 ? void 0 : _item$options$onClose.call(_item$options, item.id);
|
|
109
|
+
case 14:
|
|
110
|
+
_context.next = 4;
|
|
111
|
+
break;
|
|
112
|
+
case 16:
|
|
113
|
+
_context.next = 21;
|
|
114
|
+
break;
|
|
115
|
+
case 18:
|
|
116
|
+
_context.prev = 18;
|
|
117
|
+
_context.t0 = _context["catch"](2);
|
|
118
|
+
_iterator.e(_context.t0);
|
|
119
|
+
case 21:
|
|
120
|
+
_context.prev = 21;
|
|
121
|
+
_iterator.f();
|
|
122
|
+
return _context.finish(21);
|
|
123
|
+
case 24:
|
|
124
|
+
if (!config.enableOverflow && stackRef.current.length <= itemsToClose.length) {
|
|
125
|
+
document.body.style.overflow = overflowRef.current;
|
|
126
|
+
}
|
|
127
|
+
duration = (_itemsToClose = itemsToClose[itemsToClose.length - 1]) === null || _itemsToClose === void 0 ? void 0 : _itemsToClose.options.animationDuration;
|
|
128
|
+
dispatch({
|
|
129
|
+
type: 'CLOSE',
|
|
130
|
+
id: id
|
|
131
|
+
});
|
|
132
|
+
setTimeout(function () {
|
|
133
|
+
if (id === null) {
|
|
134
|
+
itemsToClose.forEach(function (item) {
|
|
135
|
+
return dispatch({
|
|
136
|
+
type: 'REMOVE',
|
|
137
|
+
id: item.id
|
|
138
|
+
});
|
|
139
|
+
});
|
|
140
|
+
} else {
|
|
141
|
+
dispatch({
|
|
142
|
+
type: 'REMOVE',
|
|
143
|
+
id: id
|
|
144
|
+
});
|
|
145
|
+
}
|
|
146
|
+
}, duration);
|
|
147
|
+
case 28:
|
|
148
|
+
case "end":
|
|
149
|
+
return _context.stop();
|
|
150
|
+
}
|
|
151
|
+
}, _callee, null, [[2, 18, 21, 24]]);
|
|
152
|
+
}));
|
|
153
|
+
return function (_x) {
|
|
154
|
+
return _ref2.apply(this, arguments);
|
|
155
|
+
};
|
|
156
|
+
}(), []);
|
|
157
|
+
var update = (0, _react.useCallback)(function (id, options) {
|
|
158
|
+
dispatch({
|
|
159
|
+
type: 'UPDATE',
|
|
160
|
+
id: id,
|
|
161
|
+
options: options
|
|
162
|
+
});
|
|
163
|
+
}, []);
|
|
164
|
+
var config = _objectSpread(_objectSpread({}, _defaultOptions.DEFAULT_OPTIONS), configuration);
|
|
165
|
+
return /*#__PURE__*/_react["default"].createElement(SideSheetContext.Provider, {
|
|
166
|
+
value: {
|
|
167
|
+
open: open,
|
|
168
|
+
close: close,
|
|
169
|
+
update: update,
|
|
170
|
+
config: config
|
|
171
|
+
}
|
|
172
|
+
}, children, /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react["default"].createElement(_SideSheetContainer.SideSheetContainer, {
|
|
173
|
+
stack: stack,
|
|
174
|
+
close: close,
|
|
175
|
+
open: open,
|
|
176
|
+
update: update,
|
|
177
|
+
config: config
|
|
178
|
+
}), document.body));
|
|
179
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.DEFAULT_SHEET_OPTIONS = exports.DEFAULT_OPTIONS = void 0;
|
|
8
|
+
function _regeneratorRuntime() { "use strict"; /*! regenerator-runtime -- Copyright (c) 2014-present, Facebook, Inc. -- license (MIT): https://github.com/babel/babel/blob/main/packages/babel-helpers/LICENSE */ _regeneratorRuntime = function _regeneratorRuntime() { return r; }; var t, r = {}, e = Object.prototype, n = e.hasOwnProperty, o = "function" == typeof Symbol ? Symbol : {}, i = o.iterator || "@@iterator", a = o.asyncIterator || "@@asyncIterator", u = o.toStringTag || "@@toStringTag"; function c(t, r, e, n) { return Object.defineProperty(t, r, { value: e, enumerable: !n, configurable: !n, writable: !n }); } try { c({}, ""); } catch (t) { c = function c(t, r, e) { return t[r] = e; }; } function h(r, e, n, o) { var i = e && e.prototype instanceof Generator ? e : Generator, a = Object.create(i.prototype); return c(a, "_invoke", function (r, e, n) { var o = 1; return function (i, a) { if (3 === o) throw Error("Generator is already running"); if (4 === o) { if ("throw" === i) throw a; return { value: t, done: !0 }; } for (n.method = i, n.arg = a;;) { var u = n.delegate; if (u) { var c = d(u, n); if (c) { if (c === f) continue; return c; } } if ("next" === n.method) n.sent = n._sent = n.arg;else if ("throw" === n.method) { if (1 === o) throw o = 4, n.arg; n.dispatchException(n.arg); } else "return" === n.method && n.abrupt("return", n.arg); o = 3; var h = s(r, e, n); if ("normal" === h.type) { if (o = n.done ? 4 : 2, h.arg === f) continue; return { value: h.arg, done: n.done }; } "throw" === h.type && (o = 4, n.method = "throw", n.arg = h.arg); } }; }(r, n, new Context(o || [])), !0), a; } function s(t, r, e) { try { return { type: "normal", arg: t.call(r, e) }; } catch (t) { return { type: "throw", arg: t }; } } r.wrap = h; var f = {}; function Generator() {} function GeneratorFunction() {} function GeneratorFunctionPrototype() {} var l = {}; c(l, i, function () { return this; }); var p = Object.getPrototypeOf, y = p && p(p(x([]))); y && y !== e && n.call(y, i) && (l = y); var v = GeneratorFunctionPrototype.prototype = Generator.prototype = Object.create(l); function g(t) { ["next", "throw", "return"].forEach(function (r) { c(t, r, function (t) { return this._invoke(r, t); }); }); } function AsyncIterator(t, r) { function e(o, i, a, u) { var c = s(t[o], t, i); if ("throw" !== c.type) { var h = c.arg, f = h.value; return f && "object" == _typeof(f) && n.call(f, "__await") ? r.resolve(f.__await).then(function (t) { e("next", t, a, u); }, function (t) { e("throw", t, a, u); }) : r.resolve(f).then(function (t) { h.value = t, a(h); }, function (t) { return e("throw", t, a, u); }); } u(c.arg); } var o; c(this, "_invoke", function (t, n) { function i() { return new r(function (r, o) { e(t, n, r, o); }); } return o = o ? o.then(i, i) : i(); }, !0); } function d(r, e) { var n = e.method, o = r.i[n]; if (o === t) return e.delegate = null, "throw" === n && r.i["return"] && (e.method = "return", e.arg = t, d(r, e), "throw" === e.method) || "return" !== n && (e.method = "throw", e.arg = new TypeError("The iterator does not provide a '" + n + "' method")), f; var i = s(o, r.i, e.arg); if ("throw" === i.type) return e.method = "throw", e.arg = i.arg, e.delegate = null, f; var a = i.arg; return a ? a.done ? (e[r.r] = a.value, e.next = r.n, "return" !== e.method && (e.method = "next", e.arg = t), e.delegate = null, f) : a : (e.method = "throw", e.arg = new TypeError("iterator result is not an object"), e.delegate = null, f); } function w(t) { this.tryEntries.push(t); } function m(r) { var e = r[4] || {}; e.type = "normal", e.arg = t, r[4] = e; } function Context(t) { this.tryEntries = [[-1]], t.forEach(w, this), this.reset(!0); } function x(r) { if (null != r) { var e = r[i]; if (e) return e.call(r); if ("function" == typeof r.next) return r; if (!isNaN(r.length)) { var o = -1, a = function e() { for (; ++o < r.length;) if (n.call(r, o)) return e.value = r[o], e.done = !1, e; return e.value = t, e.done = !0, e; }; return a.next = a; } } throw new TypeError(_typeof(r) + " is not iterable"); } return GeneratorFunction.prototype = GeneratorFunctionPrototype, c(v, "constructor", GeneratorFunctionPrototype), c(GeneratorFunctionPrototype, "constructor", GeneratorFunction), GeneratorFunction.displayName = c(GeneratorFunctionPrototype, u, "GeneratorFunction"), r.isGeneratorFunction = function (t) { var r = "function" == typeof t && t.constructor; return !!r && (r === GeneratorFunction || "GeneratorFunction" === (r.displayName || r.name)); }, r.mark = function (t) { return Object.setPrototypeOf ? Object.setPrototypeOf(t, GeneratorFunctionPrototype) : (t.__proto__ = GeneratorFunctionPrototype, c(t, u, "GeneratorFunction")), t.prototype = Object.create(v), t; }, r.awrap = function (t) { return { __await: t }; }, g(AsyncIterator.prototype), c(AsyncIterator.prototype, a, function () { return this; }), r.AsyncIterator = AsyncIterator, r.async = function (t, e, n, o, i) { void 0 === i && (i = Promise); var a = new AsyncIterator(h(t, e, n, o), i); return r.isGeneratorFunction(e) ? a : a.next().then(function (t) { return t.done ? t.value : a.next(); }); }, g(v), c(v, u, "Generator"), c(v, i, function () { return this; }), c(v, "toString", function () { return "[object Generator]"; }), r.keys = function (t) { var r = Object(t), e = []; for (var n in r) e.unshift(n); return function t() { for (; e.length;) if ((n = e.pop()) in r) return t.value = n, t.done = !1, t; return t.done = !0, t; }; }, r.values = x, Context.prototype = { constructor: Context, reset: function reset(r) { if (this.prev = this.next = 0, this.sent = this._sent = t, this.done = !1, this.delegate = null, this.method = "next", this.arg = t, this.tryEntries.forEach(m), !r) for (var e in this) "t" === e.charAt(0) && n.call(this, e) && !isNaN(+e.slice(1)) && (this[e] = t); }, stop: function stop() { this.done = !0; var t = this.tryEntries[0][4]; if ("throw" === t.type) throw t.arg; return this.rval; }, dispatchException: function dispatchException(r) { if (this.done) throw r; var e = this; function n(t) { a.type = "throw", a.arg = r, e.next = t; } for (var o = e.tryEntries.length - 1; o >= 0; --o) { var i = this.tryEntries[o], a = i[4], u = this.prev, c = i[1], h = i[2]; if (-1 === i[0]) return n("end"), !1; if (!c && !h) throw Error("try statement without catch or finally"); if (null != i[0] && i[0] <= u) { if (u < c) return this.method = "next", this.arg = t, n(c), !0; if (u < h) return n(h), !1; } } }, abrupt: function abrupt(t, r) { for (var e = this.tryEntries.length - 1; e >= 0; --e) { var n = this.tryEntries[e]; if (n[0] > -1 && n[0] <= this.prev && this.prev < n[2]) { var o = n; break; } } o && ("break" === t || "continue" === t) && o[0] <= r && r <= o[2] && (o = null); var i = o ? o[4] : {}; return i.type = t, i.arg = r, o ? (this.method = "next", this.next = o[2], f) : this.complete(i); }, complete: function complete(t, r) { if ("throw" === t.type) throw t.arg; return "break" === t.type || "continue" === t.type ? this.next = t.arg : "return" === t.type ? (this.rval = this.arg = t.arg, this.method = "return", this.next = "end") : "normal" === t.type && r && (this.next = r), f; }, finish: function finish(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[2] === t) return this.complete(e[4], e[3]), m(e), f; } }, "catch": function _catch(t) { for (var r = this.tryEntries.length - 1; r >= 0; --r) { var e = this.tryEntries[r]; if (e[0] === t) { var n = e[4]; if ("throw" === n.type) { var o = n.arg; m(e); } return o; } } throw Error("illegal catch attempt"); }, delegateYield: function delegateYield(r, e, n) { return this.delegate = { i: x(r), r: e, n: n }, "next" === this.method && (this.arg = t), f; } }, r; }
|
|
9
|
+
function asyncGeneratorStep(n, t, e, r, o, a, c) { try { var i = n[a](c), u = i.value; } catch (n) { return void e(n); } i.done ? t(u) : Promise.resolve(u).then(r, o); }
|
|
10
|
+
function _asyncToGenerator(n) { return function () { var t = this, e = arguments; return new Promise(function (r, o) { var a = n.apply(t, e); function _next(n) { asyncGeneratorStep(a, r, o, _next, _throw, "next", n); } function _throw(n) { asyncGeneratorStep(a, r, o, _next, _throw, "throw", n); } _next(void 0); }); }; }
|
|
11
|
+
var DEFAULT_OPTIONS = exports.DEFAULT_OPTIONS = {
|
|
12
|
+
side: 'right',
|
|
13
|
+
enableOverflow: false,
|
|
14
|
+
mountStrategy: 'all',
|
|
15
|
+
confirmMessage: 'Are you sure you want to close?',
|
|
16
|
+
confirmCallback: function () {
|
|
17
|
+
var _confirmCallback = _asyncToGenerator(/*#__PURE__*/_regeneratorRuntime().mark(function _callee(msg) {
|
|
18
|
+
return _regeneratorRuntime().wrap(function _callee$(_context) {
|
|
19
|
+
while (1) switch (_context.prev = _context.next) {
|
|
20
|
+
case 0:
|
|
21
|
+
return _context.abrupt("return", typeof window !== 'undefined' ? Promise.resolve(window.confirm(msg)) : Promise.resolve(true));
|
|
22
|
+
case 1:
|
|
23
|
+
case "end":
|
|
24
|
+
return _context.stop();
|
|
25
|
+
}
|
|
26
|
+
}, _callee);
|
|
27
|
+
}));
|
|
28
|
+
function confirmCallback(_x) {
|
|
29
|
+
return _confirmCallback.apply(this, arguments);
|
|
30
|
+
}
|
|
31
|
+
return confirmCallback;
|
|
32
|
+
}()
|
|
33
|
+
};
|
|
34
|
+
var DEFAULT_SHEET_OPTIONS = exports.DEFAULT_SHEET_OPTIONS = {
|
|
35
|
+
width: 400,
|
|
36
|
+
className: '',
|
|
37
|
+
confirmBeforeClose: false,
|
|
38
|
+
confirmMessage: null,
|
|
39
|
+
confirmCallback: null,
|
|
40
|
+
closeOnOverlayClick: true,
|
|
41
|
+
closeOnEsc: true,
|
|
42
|
+
animationDuration: 240,
|
|
43
|
+
onOpen: function onOpen() {},
|
|
44
|
+
onClose: function onClose() {}
|
|
45
|
+
};
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.SideSheetReducer = void 0;
|
|
8
|
+
function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
|
|
9
|
+
function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { _defineProperty(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
|
|
10
|
+
function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object.defineProperty(e, r, { value: t, enumerable: !0, configurable: !0, writable: !0 }) : e[r] = t, e; }
|
|
11
|
+
function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == _typeof(i) ? i : i + ""; }
|
|
12
|
+
function _toPrimitive(t, r) { if ("object" != _typeof(t) || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != _typeof(i)) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
|
|
13
|
+
function _toConsumableArray(r) { return _arrayWithoutHoles(r) || _iterableToArray(r) || _unsupportedIterableToArray(r) || _nonIterableSpread(); }
|
|
14
|
+
function _nonIterableSpread() { throw new TypeError("Invalid attempt to spread non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); }
|
|
15
|
+
function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
|
|
16
|
+
function _iterableToArray(r) { if ("undefined" != typeof Symbol && null != r[Symbol.iterator] || null != r["@@iterator"]) return Array.from(r); }
|
|
17
|
+
function _arrayWithoutHoles(r) { if (Array.isArray(r)) return _arrayLikeToArray(r); }
|
|
18
|
+
function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
|
|
19
|
+
var SideSheetReducer = exports.SideSheetReducer = function SideSheetReducer(state, action) {
|
|
20
|
+
switch (action.type) {
|
|
21
|
+
case 'OPEN':
|
|
22
|
+
return [].concat(_toConsumableArray(state), [action.payload]);
|
|
23
|
+
case 'SET_OPEN':
|
|
24
|
+
return state.map(function (item) {
|
|
25
|
+
return item.id === action.id ? _objectSpread(_objectSpread({}, item), {}, {
|
|
26
|
+
state: 'open'
|
|
27
|
+
}) : item;
|
|
28
|
+
});
|
|
29
|
+
case 'CLOSE':
|
|
30
|
+
return state.map(function (item) {
|
|
31
|
+
return action.id === null || item.id === action.id ? _objectSpread(_objectSpread({}, item), {}, {
|
|
32
|
+
state: 'closing'
|
|
33
|
+
}) : item;
|
|
34
|
+
});
|
|
35
|
+
case 'REMOVE':
|
|
36
|
+
return state.filter(function (item) {
|
|
37
|
+
return item.id !== action.id;
|
|
38
|
+
});
|
|
39
|
+
case 'UPDATE':
|
|
40
|
+
return state.map(function (item) {
|
|
41
|
+
return item.id === action.id ? _objectSpread(_objectSpread({}, item), {}, {
|
|
42
|
+
options: _objectSpread(_objectSpread({}, item.options), action.options)
|
|
43
|
+
}) : item;
|
|
44
|
+
});
|
|
45
|
+
default:
|
|
46
|
+
return state;
|
|
47
|
+
}
|
|
48
|
+
};
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(o) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (o) { return typeof o; } : function (o) { return o && "function" == typeof Symbol && o.constructor === Symbol && o !== Symbol.prototype ? "symbol" : typeof o; }, _typeof(o); }
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useSideSheet = void 0;
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _SideSheetProvider = require("../components/SideSheetProvider");
|
|
10
|
+
function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t in e) "default" !== _t && {}.hasOwnProperty.call(e, _t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t)) && (i.get || i.set) ? o(f, _t, i) : f[_t] = e[_t]); return f; })(e, t); }
|
|
11
|
+
var useSideSheet = exports.useSideSheet = function useSideSheet() {
|
|
12
|
+
var context = (0, _react.useContext)(_SideSheetProvider.SideSheetContext);
|
|
13
|
+
if (!context) {
|
|
14
|
+
throw new Error('useSideSheet must be used within SideSheetProvider');
|
|
15
|
+
}
|
|
16
|
+
return context;
|
|
17
|
+
};
|