blue-react 8.8.1 → 9.0.0-alpha1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,166 +1,175 @@
1
- "use strict";
2
-
3
1
  function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
4
2
 
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports.default = Modal;
9
-
10
- var _react = _interopRequireWildcard(require("react"));
11
-
12
- var _bootstrap = require("bootstrap");
13
-
14
- var _shared = require("./shared");
15
-
16
- function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
17
-
18
- function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
19
-
20
- function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
21
-
22
- 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."); }
23
-
24
- function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
25
-
26
- function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
27
-
28
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
29
-
30
- function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
31
-
32
- /**
33
- * Simple modal/dialog. Designed to work as an alternative to JavaScript's native `alert()`, `prompt()` and `confirm()` functions.
34
- * It uses Bootstrap's Modal components.
35
- *
36
- * For easy use, you should use the hook `useModal` together with `ModalProvider`. See the example there.
37
- */
38
- function Modal(_ref) {
39
- var modalContent = _ref.modalContent,
40
- modalTitle = _ref.modalTitle,
41
- modalIcon = _ref.modalIcon,
42
- unSetModalContent = _ref.unSetModalContent,
43
- onSubmit = _ref.onSubmit,
44
- defaultInput = _ref.defaultInput,
45
- type = _ref.type,
46
- _ref$inputType = _ref.inputType,
47
- inputType = _ref$inputType === void 0 ? "text" : _ref$inputType,
48
- _ref$switchPrimaryBtn = _ref.switchPrimaryBtn,
49
- switchPrimaryBtn = _ref$switchPrimaryBtn === void 0 ? false : _ref$switchPrimaryBtn;
50
- var modalRef = (0, _react.useRef)();
51
-
52
- var _useState = (0, _react.useState)(defaultInput || ""),
53
- _useState2 = _slicedToArray(_useState, 2),
54
- input = _useState2[0],
55
- setInput = _useState2[1];
56
-
57
- var cancel = function cancel() {
58
- unSetModalContent();
59
-
60
- if (onSubmit) {
61
- onSubmit(null);
62
- }
63
- };
64
-
65
- var sayNo = function sayNo() {
66
- unSetModalContent();
67
-
68
- if (onSubmit) {
69
- onSubmit(false);
70
- }
71
- };
72
-
73
- var submit = function submit(e) {
74
- e.preventDefault();
75
-
76
- if (onSubmit) {
77
- onSubmit(input || true);
78
- }
79
- };
80
-
81
- var btnStyle = {
82
- maxWidth: "10rem"
83
- };
84
-
85
- var focusFirstControl = function focusFirstControl() {
86
- var myModal = modalRef.current;
87
- myModal.removeEventListener("shown.bs.modal", focusFirstControl);
88
- var firstControl = myModal.querySelector(".btn-primary, .form-control");
89
-
90
- if (firstControl) {
91
- firstControl.focus();
92
- }
93
- };
94
-
95
- (0, _react.useEffect)(function () {
96
- setInput(defaultInput || "");
97
- }, [defaultInput]);
98
- (0, _react.useEffect)(function () {
99
- var myModal = modalRef.current;
100
-
101
- var bsModal = _bootstrap.Modal.getInstance(myModal);
102
-
103
- if (!bsModal) {
104
- bsModal = new _bootstrap.Modal(myModal);
105
- bsModal.hide(); // When the user clicks on underlay to close the modal
106
-
107
- myModal.addEventListener("hidden.bs.modal", function () {
108
- cancel();
109
- });
110
- } else {
111
- modalContent !== undefined ? bsModal.show() : bsModal.hide(); // Will focus first button or text field inside of modal when it is shown.
112
- // For accessibility: This way you can control the modal actions with a keyboard.
113
-
114
- myModal.addEventListener("shown.bs.modal", focusFirstControl);
115
- }
116
- }, [modalContent]);
117
- return /*#__PURE__*/_react.default.createElement("div", {
118
- className: "modal",
119
- ref: modalRef,
120
- tabIndex: -1
121
- }, /*#__PURE__*/_react.default.createElement("div", {
122
- className: "modal-dialog"
123
- }, /*#__PURE__*/_react.default.createElement("div", {
124
- className: "modal-content"
125
- }, /*#__PURE__*/_react.default.createElement("form", {
126
- onSubmit: submit
127
- }, /*#__PURE__*/_react.default.createElement("div", {
128
- className: "modal-header align-items-center"
129
- }, modalIcon !== undefined && /*#__PURE__*/_react.default.createElement("div", {
130
- className: "me-2"
131
- }, modalIcon), /*#__PURE__*/_react.default.createElement("h5", {
132
- className: "modal-title"
133
- }, modalTitle || (0, _shared.getPhrase)("Message")), /*#__PURE__*/_react.default.createElement("button", {
134
- type: "button",
135
- className: "btn-close",
136
- onClick: cancel
137
- })), /*#__PURE__*/_react.default.createElement("div", {
138
- className: "modal-body",
139
- style: {
140
- whiteSpace: "pre-wrap"
141
- }
142
- }, modalContent, type === "ask" && /*#__PURE__*/_react.default.createElement("input", {
143
- type: inputType,
144
- className: "form-control mt-1",
145
- value: input,
146
- onChange: function onChange(_ref2) {
147
- var target = _ref2.target;
148
- return setInput(target.value);
149
- },
150
- autoFocus: true
151
- })), /*#__PURE__*/_react.default.createElement("div", {
152
- className: "modal-footer"
153
- }, /*#__PURE__*/_react.default.createElement("button", {
154
- type: "submit",
155
- className: "btn ".concat(switchPrimaryBtn ? "btn-outline-primary" : "btn-primary", " d-block w-100"),
156
- style: btnStyle
157
- }, type === "verify" ? (0, _shared.getPhrase)("Yes") : "OK"), (type === "ask" || type === "verify") && (type === "verify" ? /*#__PURE__*/_react.default.createElement("button", {
158
- className: "btn ".concat(switchPrimaryBtn ? "btn-primary" : "btn-outline-primary", " d-block w-100"),
159
- style: btnStyle,
160
- onClick: sayNo
161
- }, (0, _shared.getPhrase)("No")) : /*#__PURE__*/_react.default.createElement("button", {
162
- className: "btn btn-outline-primary d-block w-100",
163
- style: btnStyle,
164
- onClick: cancel
165
- }, (0, _shared.getPhrase)("Cancel"))))))));
166
- }
3
+ (function (global, factory) {
4
+ if (typeof define === "function" && define.amd) {
5
+ define(["exports", "react", "bootstrap", "./shared"], factory);
6
+ } else if (typeof exports !== "undefined") {
7
+ factory(exports, require("react"), require("bootstrap"), require("./shared"));
8
+ } else {
9
+ var mod = {
10
+ exports: {}
11
+ };
12
+ factory(mod.exports, global.react, global.bootstrap, global.shared);
13
+ global.Modal = mod.exports;
14
+ }
15
+ })(typeof globalThis !== "undefined" ? globalThis : typeof self !== "undefined" ? self : this, function (_exports, _react, _bootstrap, _shared) {
16
+ "use strict";
17
+
18
+ Object.defineProperty(_exports, "__esModule", {
19
+ value: true
20
+ });
21
+ _exports.default = Modal;
22
+ _react = _interopRequireWildcard(_react);
23
+
24
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
25
+
26
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
27
+
28
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
29
+
30
+ 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."); }
31
+
32
+ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o === "string") return _arrayLikeToArray(o, minLen); var n = Object.prototype.toString.call(o).slice(8, -1); if (n === "Object" && o.constructor) n = o.constructor.name; if (n === "Map" || n === "Set") return Array.from(o); if (n === "Arguments" || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(n)) return _arrayLikeToArray(o, minLen); }
33
+
34
+ function _arrayLikeToArray(arr, len) { if (len == null || len > arr.length) len = arr.length; for (var i = 0, arr2 = new Array(len); i < len; i++) { arr2[i] = arr[i]; } return arr2; }
35
+
36
+ function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : typeof Symbol !== "undefined" && arr[Symbol.iterator] || arr["@@iterator"]; if (_i == null) return; var _arr = []; var _n = true; var _d = false; var _s, _e; try { for (_i = _i.call(arr); !(_n = (_s = _i.next()).done); _n = true) { _arr.push(_s.value); if (i && _arr.length === i) break; } } catch (err) { _d = true; _e = err; } finally { try { if (!_n && _i["return"] != null) _i["return"](); } finally { if (_d) throw _e; } } return _arr; }
37
+
38
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
+
40
+ /**
41
+ * Simple modal/dialog. Designed to work as an alternative to JavaScript's native `alert()`, `prompt()` and `confirm()` functions.
42
+ * It uses Bootstrap's Modal components.
43
+ *
44
+ * For easy use, you should use the hook `useModal` together with `ModalProvider`. See the example there.
45
+ */
46
+ function Modal(_ref) {
47
+ var modalContent = _ref.modalContent,
48
+ modalTitle = _ref.modalTitle,
49
+ modalIcon = _ref.modalIcon,
50
+ unSetModalContent = _ref.unSetModalContent,
51
+ onSubmit = _ref.onSubmit,
52
+ defaultInput = _ref.defaultInput,
53
+ type = _ref.type,
54
+ _ref$inputType = _ref.inputType,
55
+ inputType = _ref$inputType === void 0 ? "text" : _ref$inputType,
56
+ _ref$switchPrimaryBtn = _ref.switchPrimaryBtn,
57
+ switchPrimaryBtn = _ref$switchPrimaryBtn === void 0 ? false : _ref$switchPrimaryBtn;
58
+ var modalRef = (0, _react.useRef)();
59
+
60
+ var _useState = (0, _react.useState)(defaultInput || ""),
61
+ _useState2 = _slicedToArray(_useState, 2),
62
+ input = _useState2[0],
63
+ setInput = _useState2[1];
64
+
65
+ var cancel = function cancel() {
66
+ unSetModalContent();
67
+
68
+ if (onSubmit) {
69
+ onSubmit(null);
70
+ }
71
+ };
72
+
73
+ var sayNo = function sayNo() {
74
+ unSetModalContent();
75
+
76
+ if (onSubmit) {
77
+ onSubmit(false);
78
+ }
79
+ };
80
+
81
+ var submit = function submit(e) {
82
+ e.preventDefault();
83
+
84
+ if (onSubmit) {
85
+ onSubmit(input || true);
86
+ }
87
+ };
88
+
89
+ var btnStyle = {
90
+ maxWidth: "10rem"
91
+ };
92
+
93
+ var focusFirstControl = function focusFirstControl() {
94
+ var myModal = modalRef.current;
95
+ myModal.removeEventListener("shown.bs.modal", focusFirstControl);
96
+ var firstControl = myModal.querySelector(".btn-primary, .form-control");
97
+
98
+ if (firstControl) {
99
+ firstControl.focus();
100
+ }
101
+ };
102
+
103
+ (0, _react.useEffect)(function () {
104
+ setInput(defaultInput || "");
105
+ }, [defaultInput]);
106
+ (0, _react.useEffect)(function () {
107
+ var myModal = modalRef.current;
108
+
109
+ var bsModal = _bootstrap.Modal.getInstance(myModal);
110
+
111
+ if (!bsModal) {
112
+ bsModal = new _bootstrap.Modal(myModal);
113
+ bsModal.hide(); // When the user clicks on underlay to close the modal
114
+
115
+ myModal.addEventListener("hidden.bs.modal", function () {
116
+ cancel();
117
+ });
118
+ } else {
119
+ modalContent !== undefined ? bsModal.show() : bsModal.hide(); // Will focus first button or text field inside of modal when it is shown.
120
+ // For accessibility: This way you can control the modal actions with a keyboard.
121
+
122
+ myModal.addEventListener("shown.bs.modal", focusFirstControl);
123
+ }
124
+ }, [modalContent]);
125
+ return /*#__PURE__*/_react.default.createElement("div", {
126
+ className: "modal",
127
+ ref: modalRef,
128
+ tabIndex: -1
129
+ }, /*#__PURE__*/_react.default.createElement("div", {
130
+ className: "modal-dialog"
131
+ }, /*#__PURE__*/_react.default.createElement("div", {
132
+ className: "modal-content"
133
+ }, /*#__PURE__*/_react.default.createElement("form", {
134
+ onSubmit: submit
135
+ }, /*#__PURE__*/_react.default.createElement("div", {
136
+ className: "modal-header align-items-center"
137
+ }, modalIcon !== undefined && /*#__PURE__*/_react.default.createElement("div", {
138
+ className: "me-2"
139
+ }, modalIcon), /*#__PURE__*/_react.default.createElement("h5", {
140
+ className: "modal-title"
141
+ }, modalTitle || (0, _shared.getPhrase)("Message")), /*#__PURE__*/_react.default.createElement("button", {
142
+ type: "button",
143
+ className: "btn-close",
144
+ onClick: cancel
145
+ })), /*#__PURE__*/_react.default.createElement("div", {
146
+ className: "modal-body",
147
+ style: {
148
+ whiteSpace: "pre-wrap"
149
+ }
150
+ }, modalContent, type === "ask" && /*#__PURE__*/_react.default.createElement("input", {
151
+ type: inputType,
152
+ className: "form-control mt-1",
153
+ value: input,
154
+ onChange: function onChange(_ref2) {
155
+ var target = _ref2.target;
156
+ return setInput(target.value);
157
+ },
158
+ autoFocus: true
159
+ })), /*#__PURE__*/_react.default.createElement("div", {
160
+ className: "modal-footer"
161
+ }, /*#__PURE__*/_react.default.createElement("button", {
162
+ type: "submit",
163
+ className: "btn ".concat(switchPrimaryBtn ? "btn-outline-primary" : "btn-primary", " d-block w-100"),
164
+ style: btnStyle
165
+ }, type === "verify" ? (0, _shared.getPhrase)("Yes") : "OK"), (type === "ask" || type === "verify") && (type === "verify" ? /*#__PURE__*/_react.default.createElement("button", {
166
+ className: "btn ".concat(switchPrimaryBtn ? "btn-primary" : "btn-outline-primary", " d-block w-100"),
167
+ style: btnStyle,
168
+ onClick: sayNo
169
+ }, (0, _shared.getPhrase)("No")) : /*#__PURE__*/_react.default.createElement("button", {
170
+ className: "btn btn-outline-primary d-block w-100",
171
+ style: btnStyle,
172
+ onClick: cancel
173
+ }, (0, _shared.getPhrase)("Cancel"))))))));
174
+ }
175
+ });