linear-react-components-ui 1.0.10-rc.0 → 1.0.10-rc.2
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/.eslintrc.json +1 -0
- package/README.md +19 -12
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/assets/styles/dialog.scss +9 -4
- package/lib/assets/styles/effects.scss +2 -2
- package/lib/assets/styles/radio.scss +52 -8
- package/lib/assets/styles/tooltip.scss +42 -2
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/badge/badge.spec.js +127 -0
- package/lib/buttons/DefaultButton.js +2 -1
- package/lib/buttons/SpinnerLoading.js +230 -0
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/buttons/types.d.ts +1 -0
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/dialog/base/Header.js +12 -1
- package/lib/dialog/base/index.js +73 -14
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.d.ts +4 -3
- package/lib/dialog/form/index.js +11 -4
- package/lib/dialog/types.d.ts +4 -1
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/dropdown/Popup.js +5 -0
- package/lib/dropdown/dropdown.spec.js +169 -0
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/FieldArray.js +2 -2
- package/lib/form/form.spec.js +293 -0
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/helper.d.ts +4 -0
- package/lib/icons/helper.js +4 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/base/index.js +1 -0
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/date/date.spec.js +354 -0
- package/lib/inputs/date/helpers.d.ts +1 -1
- package/lib/inputs/date/helpers.js +3 -2
- package/lib/inputs/date/index.js +23 -9
- package/lib/inputs/date/types.d.ts +2 -1
- package/lib/inputs/mask/BaseMask.js +20 -5
- package/lib/inputs/mask/helpers.js +1 -1
- package/lib/inputs/mask/imaskHOC.js +1 -1
- package/lib/inputs/mask/input_mask.spec.js +607 -0
- package/lib/inputs/multiSelect/Dropdown.js +3 -3
- package/lib/inputs/multiSelect/index.js +10 -9
- package/lib/inputs/multiSelect/types.d.ts +4 -3
- package/lib/inputs/number/format_number.d.ts +2 -1
- package/lib/inputs/number/format_number.js +11 -2
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/select.spec.js +395 -0
- package/lib/inputs/select/simple/index.js +5 -1
- package/lib/inputs/select/types.d.ts +1 -1
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/textarea/index.js +1 -1
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/internals/types.d.ts +1 -0
- package/lib/internals/withTooltip.js +13 -6
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/list/list.spec.js +769 -0
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/sidenav/sidenav.spec.js +379 -0
- package/lib/panel/panel.spec.js +216 -0
- package/lib/popover/popover.spec.js +146 -0
- package/lib/progress/progress.spec.js +94 -0
- package/lib/radio/index.d.ts +2 -1
- package/lib/radio/index.js +3 -1
- package/lib/radio/radio.spec.js +189 -0
- package/lib/radio/types.d.ts +2 -0
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/split.spec.js +163 -0
- package/lib/table/table.spec.js +352 -0
- package/lib/tabs/tabs.spec.js +321 -0
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/tooltip/index.d.ts +1 -1
- package/lib/tooltip/index.js +5 -1
- package/lib/tooltip/tooltip.spec.js +215 -0
- package/lib/tooltip/types.d.ts +1 -0
- package/lib/treeview/index.js +1 -0
- package/lib/treeview/treeview.spec.js +279 -0
- package/lib/uitour/uitour.spec.js +176 -0
- package/package.json +6 -3
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
function _typeof(obj) { "@babel/helpers - typeof"; if (typeof Symbol === "function" && typeof Symbol.iterator === "symbol") { _typeof = function _typeof(obj) { return typeof obj; }; } else { _typeof = function _typeof(obj) { return obj && typeof Symbol === "function" && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }; } return _typeof(obj); }
|
|
4
|
+
|
|
5
|
+
var _react = require("@testing-library/react");
|
|
6
|
+
|
|
7
|
+
var _react2 = _interopRequireDefault(require("react"));
|
|
8
|
+
|
|
9
|
+
require("babel-polyfill");
|
|
10
|
+
|
|
11
|
+
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
12
|
+
|
|
13
|
+
var _storageMock = _interopRequireWildcard(require("../../../config/jest/storageMock"));
|
|
14
|
+
|
|
15
|
+
var _gridlayout = require("../gridlayout");
|
|
16
|
+
|
|
17
|
+
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); }
|
|
18
|
+
|
|
19
|
+
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; }
|
|
20
|
+
|
|
21
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
22
|
+
|
|
23
|
+
function asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) { try { var info = gen[key](arg); var value = info.value; } catch (error) { reject(error); return; } if (info.done) { resolve(value); } else { Promise.resolve(value).then(_next, _throw); } }
|
|
24
|
+
|
|
25
|
+
function _asyncToGenerator(fn) { return function () { var self = this, args = arguments; return new Promise(function (resolve, reject) { var gen = fn.apply(self, args); function _next(value) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "next", value); } function _throw(err) { asyncGeneratorStep(gen, resolve, reject, _next, _throw, "throw", err); } _next(undefined); }); }; }
|
|
26
|
+
|
|
27
|
+
function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
28
|
+
|
|
29
|
+
var CheckBoxTest = function CheckBoxTest(props) {
|
|
30
|
+
return /*#__PURE__*/_react2.default.createElement(_gridlayout.GridRow, {
|
|
31
|
+
template: "columns",
|
|
32
|
+
style: {
|
|
33
|
+
marginBottom: 20
|
|
34
|
+
}
|
|
35
|
+
}, /*#__PURE__*/_react2.default.createElement(_checkbox.default, _extends({}, props, {
|
|
36
|
+
name: "test",
|
|
37
|
+
value: "1",
|
|
38
|
+
label: "testLabel",
|
|
39
|
+
id: "1",
|
|
40
|
+
hint: "test",
|
|
41
|
+
gridLayout: "6 6 6 6"
|
|
42
|
+
})));
|
|
43
|
+
};
|
|
44
|
+
|
|
45
|
+
describe('CheckBox', function () {
|
|
46
|
+
describe('Default', function () {
|
|
47
|
+
it('should render without errors', function () {
|
|
48
|
+
var _render = (0, _react.render)(CheckBoxTest()),
|
|
49
|
+
container = _render.container;
|
|
50
|
+
|
|
51
|
+
expect(container.firstChild).toBeTruthy();
|
|
52
|
+
});
|
|
53
|
+
it('should hint', function () {
|
|
54
|
+
var _render2 = (0, _react.render)(CheckBoxTest()),
|
|
55
|
+
container = _render2.container;
|
|
56
|
+
|
|
57
|
+
expect(container.firstChild).toContainElement(container.querySelector('.hint'));
|
|
58
|
+
});
|
|
59
|
+
it('should label text match with prop label', function () {
|
|
60
|
+
var _render3 = (0, _react.render)(CheckBoxTest()),
|
|
61
|
+
container = _render3.container;
|
|
62
|
+
|
|
63
|
+
expect(container.querySelector('.description')).toHaveTextContent('testLabel');
|
|
64
|
+
});
|
|
65
|
+
it('should checkbox have id ', function () {
|
|
66
|
+
var _render4 = (0, _react.render)(CheckBoxTest()),
|
|
67
|
+
container = _render4.container;
|
|
68
|
+
|
|
69
|
+
expect(container.querySelector('.input').id).toBe('1');
|
|
70
|
+
});
|
|
71
|
+
it('should checkbox have name test', function () {
|
|
72
|
+
var _render5 = (0, _react.render)(CheckBoxTest()),
|
|
73
|
+
container = _render5.container;
|
|
74
|
+
|
|
75
|
+
expect(container.querySelector('.input').name).toBe('test');
|
|
76
|
+
});
|
|
77
|
+
it('should checkbox have value', function () {
|
|
78
|
+
var _render6 = (0, _react.render)(CheckBoxTest()),
|
|
79
|
+
container = _render6.container;
|
|
80
|
+
|
|
81
|
+
expect(container.querySelector('.input').value).toBe('1');
|
|
82
|
+
});
|
|
83
|
+
it('should change checked', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
84
|
+
var _render7, container;
|
|
85
|
+
|
|
86
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
87
|
+
while (1) {
|
|
88
|
+
switch (_context.prev = _context.next) {
|
|
89
|
+
case 0:
|
|
90
|
+
_render7 = (0, _react.render)(CheckBoxTest()), container = _render7.container;
|
|
91
|
+
expect(container.querySelector('.input').checked).toEqual(false);
|
|
92
|
+
|
|
93
|
+
_react.fireEvent.click(container.querySelector('.input'));
|
|
94
|
+
|
|
95
|
+
expect(container.querySelector('.input').checked).toEqual(true);
|
|
96
|
+
|
|
97
|
+
case 4:
|
|
98
|
+
case "end":
|
|
99
|
+
return _context.stop();
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
}, _callee);
|
|
103
|
+
})));
|
|
104
|
+
it('should disable', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee2() {
|
|
105
|
+
var _render8, container;
|
|
106
|
+
|
|
107
|
+
return regeneratorRuntime.wrap(function _callee2$(_context2) {
|
|
108
|
+
while (1) {
|
|
109
|
+
switch (_context2.prev = _context2.next) {
|
|
110
|
+
case 0:
|
|
111
|
+
_render8 = (0, _react.render)(CheckBoxTest({
|
|
112
|
+
disabled: true
|
|
113
|
+
})), container = _render8.container;
|
|
114
|
+
expect(container.querySelector('.input').checked).toEqual(false);
|
|
115
|
+
|
|
116
|
+
_react.fireEvent.click(container.querySelector('.input'));
|
|
117
|
+
|
|
118
|
+
expect(container.querySelector('.input').checked).toEqual(false);
|
|
119
|
+
|
|
120
|
+
case 4:
|
|
121
|
+
case "end":
|
|
122
|
+
return _context2.stop();
|
|
123
|
+
}
|
|
124
|
+
}
|
|
125
|
+
}, _callee2);
|
|
126
|
+
})));
|
|
127
|
+
it('should required', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee3() {
|
|
128
|
+
var _render9, container;
|
|
129
|
+
|
|
130
|
+
return regeneratorRuntime.wrap(function _callee3$(_context3) {
|
|
131
|
+
while (1) {
|
|
132
|
+
switch (_context3.prev = _context3.next) {
|
|
133
|
+
case 0:
|
|
134
|
+
_render9 = (0, _react.render)(CheckBoxTest({
|
|
135
|
+
required: true
|
|
136
|
+
})), container = _render9.container;
|
|
137
|
+
expect(container.querySelector('.input').required).toEqual(true);
|
|
138
|
+
|
|
139
|
+
case 2:
|
|
140
|
+
case "end":
|
|
141
|
+
return _context3.stop();
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
}, _callee3);
|
|
145
|
+
})));
|
|
146
|
+
it('should autoFocus', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee4() {
|
|
147
|
+
var _render10, container;
|
|
148
|
+
|
|
149
|
+
return regeneratorRuntime.wrap(function _callee4$(_context4) {
|
|
150
|
+
while (1) {
|
|
151
|
+
switch (_context4.prev = _context4.next) {
|
|
152
|
+
case 0:
|
|
153
|
+
_render10 = (0, _react.render)(CheckBoxTest({
|
|
154
|
+
autoFocus: true
|
|
155
|
+
})), container = _render10.container;
|
|
156
|
+
container.querySelector('.input').focus();
|
|
157
|
+
expect(container.querySelector('.input')).toHaveFocus();
|
|
158
|
+
|
|
159
|
+
case 3:
|
|
160
|
+
case "end":
|
|
161
|
+
return _context4.stop();
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}, _callee4);
|
|
165
|
+
})));
|
|
166
|
+
});
|
|
167
|
+
describe('Permission', function () {
|
|
168
|
+
var defineStorage = function defineStorage() {
|
|
169
|
+
Object.defineProperty(window, 'sessionStorage', {
|
|
170
|
+
value: (0, _storageMock.default)()
|
|
171
|
+
});
|
|
172
|
+
};
|
|
173
|
+
|
|
174
|
+
it('should check permission', function () {
|
|
175
|
+
defineStorage();
|
|
176
|
+
|
|
177
|
+
var _render11 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_checkbox.default, {
|
|
178
|
+
permissionAttr: (0, _storageMock.permissionAttrMockAuthorized)('disabled')
|
|
179
|
+
})),
|
|
180
|
+
container = _render11.container;
|
|
181
|
+
|
|
182
|
+
expect(container.firstChild).not.toHaveClass('disabled');
|
|
183
|
+
expect(container.firstChild).toBeTruthy();
|
|
184
|
+
});
|
|
185
|
+
it('should check permission, be unavaible and onDenied is disabled', function () {
|
|
186
|
+
defineStorage();
|
|
187
|
+
var mockOnClick = jest.fn();
|
|
188
|
+
|
|
189
|
+
var mockCheckbox = /*#__PURE__*/_react2.default.createElement(_checkbox.default, {
|
|
190
|
+
onClick: mockOnClick,
|
|
191
|
+
permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('disabled')
|
|
192
|
+
});
|
|
193
|
+
|
|
194
|
+
var _render12 = (0, _react.render)(mockCheckbox),
|
|
195
|
+
getByTestId = _render12.getByTestId,
|
|
196
|
+
container = _render12.container;
|
|
197
|
+
|
|
198
|
+
_react.fireEvent.click(container.firstChild);
|
|
199
|
+
|
|
200
|
+
expect(getByTestId('checkbox-container')).toBeVisible();
|
|
201
|
+
expect(container.querySelector('.input')).toBeDisabled();
|
|
202
|
+
expect(mockOnClick).toBeCalledTimes(0);
|
|
203
|
+
});
|
|
204
|
+
it('should check permission, be unavaible and onDenied is unvisible', function () {
|
|
205
|
+
defineStorage();
|
|
206
|
+
|
|
207
|
+
var _render13 = (0, _react.render)( /*#__PURE__*/_react2.default.createElement(_checkbox.default, {
|
|
208
|
+
permissionAttr: (0, _storageMock.permissionAttrMockUnauthorized)('unvisible')
|
|
209
|
+
})),
|
|
210
|
+
container = _render13.container;
|
|
211
|
+
|
|
212
|
+
expect(container.firstChild).not.toBeTruthy();
|
|
213
|
+
});
|
|
214
|
+
});
|
|
215
|
+
});
|
|
@@ -1,12 +1,16 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
+
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); }
|
|
3
4
|
Object.defineProperty(exports, "__esModule", {
|
|
4
5
|
value: true
|
|
5
6
|
});
|
|
6
7
|
exports.default = void 0;
|
|
7
|
-
var _react =
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
8
9
|
var _icons = _interopRequireDefault(require("../../icons"));
|
|
10
|
+
var _form = require("../form");
|
|
9
11
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
12
|
+
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); }
|
|
13
|
+
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; }
|
|
10
14
|
var getCloseButton = function getCloseButton(handlerClose) {
|
|
11
15
|
return /*#__PURE__*/_react.default.createElement("span", {
|
|
12
16
|
className: "close-button",
|
|
@@ -34,7 +38,14 @@ var Header = function Header(_ref) {
|
|
|
34
38
|
title = _ref.title,
|
|
35
39
|
icon = _ref.icon,
|
|
36
40
|
titleIcon = _ref.titleIcon;
|
|
41
|
+
var _useContext = (0, _react.useContext)(_form.FormDialogContext),
|
|
42
|
+
headerRef = _useContext.headerRef;
|
|
37
43
|
return /*#__PURE__*/_react.default.createElement("div", {
|
|
44
|
+
role: "button",
|
|
45
|
+
tabIndex: -1,
|
|
46
|
+
onFocus: function onFocus() {},
|
|
47
|
+
onBlur: function onBlur() {},
|
|
48
|
+
ref: headerRef,
|
|
38
49
|
className: "dialog-header"
|
|
39
50
|
}, /*#__PURE__*/_react.default.createElement("div", {
|
|
40
51
|
className: "".concat(icon !== null || titleIcon !== null ? 'left' : '')
|
package/lib/dialog/base/index.js
CHANGED
|
@@ -9,9 +9,16 @@ var _react = _interopRequireWildcard(require("react"));
|
|
|
9
9
|
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
10
10
|
var _style = _interopRequireDefault(require("./style"));
|
|
11
11
|
require("../../assets/styles/dialog.scss");
|
|
12
|
+
var _form = require("../form");
|
|
12
13
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
13
14
|
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); }
|
|
14
15
|
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; }
|
|
16
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
17
|
+
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."); }
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
function _iterableToArrayLimit(arr, i) { var _i = null == arr ? null : "undefined" != typeof Symbol && arr[Symbol.iterator] || arr["@@iterator"]; if (null != _i) { var _s, _e, _x, _r, _arr = [], _n = !0, _d = !1; try { if (_x = (_i = _i.call(arr)).next, 0 === i) { if (Object(_i) !== _i) return; _n = !1; } else for (; !(_n = (_s = _x.call(_i)).done) && (_arr.push(_s.value), _arr.length !== i); _n = !0); } catch (err) { _d = !0, _e = err; } finally { try { if (!_n && null != _i.return && (_r = _i.return(), Object(_r) !== _r)) return; } finally { if (_d) throw _e; } } return _arr; } }
|
|
21
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
15
22
|
var body = document.getElementsByTagName('body')[0];
|
|
16
23
|
var BaseDialog = function BaseDialog(props) {
|
|
17
24
|
var _props$overlay = props.overlay,
|
|
@@ -22,12 +29,18 @@ var BaseDialog = function BaseDialog(props) {
|
|
|
22
29
|
wrapperClassName = props.wrapperClassName,
|
|
23
30
|
children = props.children,
|
|
24
31
|
zIndex = props.zIndex;
|
|
32
|
+
var _useContext = (0, _react.useContext)(_form.FormDialogContext),
|
|
33
|
+
headerRef = _useContext.headerRef;
|
|
34
|
+
var wrapperEl = (0, _react.useRef)(null);
|
|
35
|
+
var _useState = (0, _react.useState)(false),
|
|
36
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
37
|
+
isDragging = _useState2[0],
|
|
38
|
+
setIsDragging = _useState2[1];
|
|
25
39
|
var dialogEl = (0, _react.useRef)(document.createElement('div'));
|
|
26
40
|
dialogEl.current.className = 'dialog';
|
|
27
41
|
dialogEl.current.dataset.testid = 'dialog-component';
|
|
28
42
|
var modalContainerEl = (0, _react.useRef)(document.createElement('div'));
|
|
29
43
|
var overlayEl = (0, _react.useRef)(null);
|
|
30
|
-
var wrapperEl = (0, _react.useRef)(null);
|
|
31
44
|
if (overlay && overlayEl.current === null) {
|
|
32
45
|
overlayEl.current = document.createElement('div');
|
|
33
46
|
overlayEl.current.className = 'modal-overlay';
|
|
@@ -38,7 +51,7 @@ var BaseDialog = function BaseDialog(props) {
|
|
|
38
51
|
var handleClickOutside = function handleClickOutside(event) {
|
|
39
52
|
var target = event.target;
|
|
40
53
|
var dialogAlert = document.getElementsByClassName('dialog-alert-wrapper');
|
|
41
|
-
if (wrapperEl !== null && wrapperEl.current !== null && !wrapperEl.current.contains(target)) {
|
|
54
|
+
if (wrapperEl !== null && wrapperEl.current !== null && !isDragging && !wrapperEl.current.contains(target)) {
|
|
42
55
|
if (dialogAlert.length > 0 && dialogAlert[dialogAlert.length - 1].contains(target) || target.classList.contains('button-component')) return;
|
|
43
56
|
if (handlerClose) handlerClose();
|
|
44
57
|
}
|
|
@@ -64,27 +77,73 @@ var BaseDialog = function BaseDialog(props) {
|
|
|
64
77
|
var modalOverlay = document.getElementsByClassName('modal-overlay')[countModalOverlays - 1];
|
|
65
78
|
body.removeChild(modalOverlay);
|
|
66
79
|
};
|
|
80
|
+
var onDialogPositionChange = function onDialogPositionChange(_ref) {
|
|
81
|
+
var positionX = _ref.positionX,
|
|
82
|
+
positionY = _ref.positionY;
|
|
83
|
+
if (wrapperEl.current) {
|
|
84
|
+
var _wrapperEl$current$ge = wrapperEl.current.getBoundingClientRect(),
|
|
85
|
+
width = _wrapperEl$current$ge.width,
|
|
86
|
+
height = _wrapperEl$current$ge.height;
|
|
87
|
+
var x = positionX <= 0 ? 0 : positionX;
|
|
88
|
+
var y = positionY <= 0 ? 0 : positionY;
|
|
89
|
+
if (x + width >= window.innerWidth) x = window.innerWidth - width;
|
|
90
|
+
if (y + height >= window.innerHeight) y = window.innerHeight - height;
|
|
91
|
+
wrapperEl.current.style.transform = "translate(".concat(x, "px, ").concat(y, "px)");
|
|
92
|
+
wrapperEl.current.style.transition = 'none';
|
|
93
|
+
wrapperEl.current.style.left = '0';
|
|
94
|
+
wrapperEl.current.style.top = '0';
|
|
95
|
+
wrapperEl.current.style.position = 'absolute';
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
var onMouseMove = function onMouseMove(event) {
|
|
99
|
+
if (wrapperEl.current && isDragging) {
|
|
100
|
+
var _wrapperEl$current$ge2 = wrapperEl.current.getBoundingClientRect(),
|
|
101
|
+
left = _wrapperEl$current$ge2.left,
|
|
102
|
+
top = _wrapperEl$current$ge2.top;
|
|
103
|
+
onDialogPositionChange({
|
|
104
|
+
positionX: event.movementX + left,
|
|
105
|
+
positionY: event.movementY + top
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
};
|
|
109
|
+
var onMouseDown = function onMouseDown(event) {
|
|
110
|
+
var _headerRef$current;
|
|
111
|
+
var element = event.target;
|
|
112
|
+
var isHeader = headerRef === null || headerRef === void 0 ? void 0 : (_headerRef$current = headerRef.current) === null || _headerRef$current === void 0 ? void 0 : _headerRef$current.contains(element);
|
|
113
|
+
if (wrapperEl.current && isHeader) setIsDragging(true);
|
|
114
|
+
};
|
|
115
|
+
var onMouseUp = function onMouseUp() {
|
|
116
|
+
if (wrapperEl.current) setIsDragging(false);
|
|
117
|
+
};
|
|
118
|
+
var renderModal = function renderModal() {
|
|
119
|
+
return /*#__PURE__*/_react.default.createElement("div", {
|
|
120
|
+
className: wrapperClassName,
|
|
121
|
+
"data-testid": "dialog-wrapper",
|
|
122
|
+
style: (0, _style.default)(props),
|
|
123
|
+
ref: wrapperEl
|
|
124
|
+
}, children);
|
|
125
|
+
};
|
|
67
126
|
(0, _react.useEffect)(function () {
|
|
68
127
|
setModalContainer();
|
|
69
|
-
if (closeOnOutsideClick) document.addEventListener('click', handleClickOutside);
|
|
70
128
|
if (closeOnEsc) document.addEventListener('keyup', handleCloseOnEsc);
|
|
71
129
|
return function () {
|
|
72
130
|
removeModalContainer();
|
|
73
131
|
if (overlay) removeOverlay();
|
|
74
|
-
if (closeOnOutsideClick) document.removeEventListener('click', handleClickOutside);
|
|
75
132
|
if (closeOnEsc) document.removeEventListener('keyup', handleCloseOnEsc);
|
|
76
133
|
};
|
|
77
134
|
}, []);
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
135
|
+
(0, _react.useEffect)(function () {
|
|
136
|
+
document.addEventListener('mousedown', onMouseDown);
|
|
137
|
+
document.addEventListener('mouseup', onMouseUp);
|
|
138
|
+
if (closeOnOutsideClick) document.addEventListener('click', handleClickOutside);
|
|
139
|
+
if (isDragging) document.addEventListener('mousemove', onMouseMove);
|
|
140
|
+
return function () {
|
|
141
|
+
if (closeOnOutsideClick) document.removeEventListener('click', handleClickOutside);
|
|
142
|
+
document.removeEventListener('mousedown', onMouseDown);
|
|
143
|
+
document.removeEventListener('mouseup', onMouseUp);
|
|
144
|
+
document.removeEventListener('mousemove', onMouseMove);
|
|
145
|
+
};
|
|
146
|
+
}, [isDragging]);
|
|
88
147
|
return /*#__PURE__*/_reactDom.default.createPortal(renderModal(), dialogEl.current);
|
|
89
148
|
};
|
|
90
149
|
var _default = BaseDialog;
|