linear-react-components-ui 0.4.75 → 0.4.76-rc.0
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.js +2 -5
- package/.tool-versions +1 -0
- package/.vscode/settings.json +8 -9
- package/README.md +23 -0
- package/config/jest/cssTransform.js +14 -0
- package/config/jest/fileTransform.js +12 -0
- package/config/jest/storageMock.js +40 -0
- package/jest.config.js +18 -0
- package/lib/alerts/alert.spec.js +133 -0
- package/lib/assets/styles/dropdown.scss +25 -2
- package/lib/assets/styles/effects.scss +12 -0
- package/lib/assets/styles/floatMenu.scss +0 -1
- package/lib/assets/styles/multiSelect.scss +105 -0
- package/lib/assets/styles/panel.scss +0 -1
- package/lib/assets/styles/periodpicker.scss +65 -0
- package/lib/assets/styles/popover.scss +9 -11
- package/lib/assets/styles/progress.scss +8 -1
- package/lib/assets/styles/select.scss +1 -0
- package/lib/assets/styles/table.scss +13 -5
- package/lib/assets/styles/tabs.scss +77 -43
- package/lib/assets/styles/treeview.scss +32 -0
- package/lib/avatar/avatar.spec.js +190 -0
- package/lib/avatar/index.js +6 -2
- package/lib/badge/badge.spec.js +127 -0
- package/lib/badge/index.js +3 -5
- package/lib/buttons/DefaultButton.js +7 -1
- package/lib/buttons/buttons.spec.js +504 -0
- package/lib/calendar/calendar.spec.js +171 -0
- package/lib/checkbox/Label.js +37 -0
- package/lib/checkbox/checkbox.spec.js +215 -0
- package/lib/checkbox/index.js +21 -6
- package/lib/dialog/Custom.js +7 -1
- package/lib/dialog/base/index.js +18 -6
- package/lib/dialog/dialog.spec.js +488 -0
- package/lib/dialog/form/index.js +23 -4
- package/lib/drawer/Drawer.js +3 -0
- package/lib/drawer/Drawer.spec.js +258 -0
- package/lib/drawer/Header.js +4 -1
- package/lib/drawer/index.js +4 -1
- package/lib/dropdown/Popup.js +1 -0
- package/lib/dropdown/dropdown.spec.js +168 -0
- package/lib/dropdown/withDropdown.js +10 -4
- package/lib/fieldset/fieldset.spec.js +329 -0
- package/lib/form/Field.js +2 -0
- package/lib/form/FieldNumber.js +10 -2
- package/lib/form/FieldPeriod.js +100 -0
- package/lib/form/form.spec.js +285 -0
- package/lib/form/helpers.js +9 -1
- package/lib/form/index.js +76 -10
- package/lib/form/withFieldHOC.js +2 -0
- package/lib/form/withFormSecurity.js +106 -0
- package/lib/gridlayout/GridRow.js +1 -1
- package/lib/gridlayout/gridLayout.spec.js +169 -0
- package/lib/icons/helper.js +16 -0
- package/lib/icons/icons.spec.js +86 -0
- package/lib/icons/index.js +2 -0
- package/lib/inputs/base/InputTextBase.js +15 -5
- package/lib/inputs/base/base.spec.js +690 -0
- package/lib/inputs/color/color_input.spec.js +174 -0
- package/lib/inputs/color/index.js +2 -2
- package/lib/inputs/date/date.spec.js +344 -0
- package/lib/inputs/date/index.js +7 -6
- package/lib/inputs/mask/Cpf.js +9 -9
- package/lib/inputs/mask/input_mask.spec.js +590 -0
- package/lib/inputs/multiSelect/ActionButtons.js +68 -0
- package/lib/inputs/multiSelect/Dropdown.js +200 -0
- package/lib/inputs/multiSelect/helper.js +18 -0
- package/lib/inputs/multiSelect/index.js +343 -0
- package/lib/inputs/number/BaseNumber.js +1 -1
- package/lib/inputs/number/index.js +7 -5
- package/lib/inputs/number/numberfield.spec.js +215 -0
- package/lib/inputs/period/Dialog.js +38 -0
- package/lib/inputs/period/Dropdown.js +90 -0
- package/lib/inputs/period/PeriodList.js +79 -0
- package/lib/inputs/period/helper.js +118 -0
- package/lib/inputs/period/index.js +490 -0
- package/lib/inputs/search/search_input.spec.js +209 -0
- package/lib/inputs/select/Dropdown.js +4 -4
- package/lib/inputs/select/index.js +26 -3
- package/lib/inputs/select/multiple/index.js +9 -7
- package/lib/inputs/select/select.spec.js +391 -0
- package/lib/inputs/select/simple/index.js +30 -18
- package/lib/inputs/text/textfield.spec.js +215 -0
- package/lib/inputs/textarea/textarea.spec.js +59 -0
- package/lib/internals/withTooltip.js +83 -82
- package/lib/labelMessages/index.js +3 -2
- package/lib/labelMessages/labelMessages.spec.js +176 -0
- package/lib/labels/label.spec.js +162 -0
- package/lib/list/Item.js +3 -3
- package/lib/list/index.js +21 -10
- package/lib/list/list.spec.js +611 -0
- package/lib/menus/float/MenuItem.js +25 -8
- package/lib/menus/float/float-menu.spec.js +221 -0
- package/lib/menus/sidenav/index.js +7 -3
- package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
- package/lib/menus/sidenav/sidenav.spec.js +312 -0
- package/lib/noPermission/index.js +2 -1
- package/lib/panel/panel.spec.js +216 -0
- package/lib/popover/index.js +2 -1
- package/lib/popover/popover.spec.js +146 -0
- package/lib/progress/Bar.js +40 -9
- package/lib/progress/index.js +12 -4
- package/lib/progress/progress.spec.js +86 -0
- package/lib/radio/radio.spec.js +189 -0
- package/lib/spinner/SpinnerLoading.js +14 -24
- package/lib/spinner/index.js +6 -1
- package/lib/spinner/spinner.spec.js +152 -0
- package/lib/split/Split.js +10 -12
- package/lib/split/split.spec.js +151 -0
- package/lib/table/Header.js +3 -1
- package/lib/table/Row.js +2 -5
- package/lib/table/index.js +1 -4
- package/lib/table/table.spec.js +352 -0
- package/lib/tabs/DropdownItems.js +84 -0
- package/lib/tabs/Menu.js +18 -5
- package/lib/tabs/MenuItems.js +7 -7
- package/lib/tabs/Panel.js +1 -3
- package/lib/tabs/index.js +126 -17
- package/lib/tabs/tabs.spec.js +346 -0
- package/lib/toolbar/index.js +8 -4
- package/lib/toolbar/toolbar.spec.js +394 -0
- package/lib/tooltip/index.js +13 -0
- package/lib/tooltip/tooltip.spec.js +203 -0
- package/lib/treeview/Node.js +288 -18
- package/lib/treeview/index.js +448 -35
- package/lib/treeview/treeview.spec.js +261 -0
- package/package.json +19 -9
- package/.DS_Store +0 -0
|
@@ -0,0 +1,285 @@
|
|
|
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 = _interopRequireDefault(require("react"));
|
|
6
|
+
|
|
7
|
+
var _react2 = require("@testing-library/react");
|
|
8
|
+
|
|
9
|
+
require("babel-polyfill");
|
|
10
|
+
|
|
11
|
+
require("@testing-library/jest-dom");
|
|
12
|
+
|
|
13
|
+
var _ = _interopRequireWildcard(require("."));
|
|
14
|
+
|
|
15
|
+
var _text = _interopRequireDefault(require("../inputs/text"));
|
|
16
|
+
|
|
17
|
+
var _checkbox = _interopRequireDefault(require("../checkbox"));
|
|
18
|
+
|
|
19
|
+
var _select = _interopRequireDefault(require("../inputs/select"));
|
|
20
|
+
|
|
21
|
+
var _number = _interopRequireDefault(require("../inputs/number"));
|
|
22
|
+
|
|
23
|
+
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); }
|
|
24
|
+
|
|
25
|
+
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; }
|
|
26
|
+
|
|
27
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
28
|
+
|
|
29
|
+
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); } }
|
|
30
|
+
|
|
31
|
+
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); }); }; }
|
|
32
|
+
|
|
33
|
+
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); }
|
|
34
|
+
|
|
35
|
+
var mockOnSubmit = jest.fn();
|
|
36
|
+
var mockHandlerSubmit = jest.fn();
|
|
37
|
+
var data = {
|
|
38
|
+
status: [0],
|
|
39
|
+
nome: 'Gustavo',
|
|
40
|
+
idade: '4'
|
|
41
|
+
};
|
|
42
|
+
var mockSelectOptions = [{
|
|
43
|
+
id: 0,
|
|
44
|
+
name: 'Ativo'
|
|
45
|
+
}, {
|
|
46
|
+
id: 1,
|
|
47
|
+
name: 'Inativo'
|
|
48
|
+
}, {
|
|
49
|
+
id: 2,
|
|
50
|
+
name: 'Excluído'
|
|
51
|
+
}];
|
|
52
|
+
|
|
53
|
+
var mockForm = function mockForm(props, fieldProps, fieldArrayProps) {
|
|
54
|
+
return /*#__PURE__*/_react["default"].createElement(_["default"], _extends({
|
|
55
|
+
dataSource: data,
|
|
56
|
+
onSubmit: mockOnSubmit,
|
|
57
|
+
handlerSubmit: mockHandlerSubmit,
|
|
58
|
+
customClass: "mock-form",
|
|
59
|
+
style: {
|
|
60
|
+
marginBottom: '10px'
|
|
61
|
+
}
|
|
62
|
+
}, props), /*#__PURE__*/_react["default"].createElement(_.Field, _extends({
|
|
63
|
+
label: "Nome",
|
|
64
|
+
component: _text["default"],
|
|
65
|
+
name: "nome",
|
|
66
|
+
externalMessagesErrors: ['External Message Errors']
|
|
67
|
+
}, fieldProps)), /*#__PURE__*/_react["default"].createElement(_.Field, {
|
|
68
|
+
label: "Endereco Valido",
|
|
69
|
+
component: _checkbox["default"],
|
|
70
|
+
name: "endereco.valido",
|
|
71
|
+
componentType: "Checkbox",
|
|
72
|
+
fieldId: "fooo"
|
|
73
|
+
}), /*#__PURE__*/_react["default"].createElement(_.FieldArray, _extends({
|
|
74
|
+
label: "Status",
|
|
75
|
+
name: "status",
|
|
76
|
+
idKey: "id",
|
|
77
|
+
descriptionKey: "name",
|
|
78
|
+
multiple: true,
|
|
79
|
+
labelContainerStyle: {
|
|
80
|
+
height: 200
|
|
81
|
+
},
|
|
82
|
+
dataSource: mockSelectOptions,
|
|
83
|
+
component: _select["default"],
|
|
84
|
+
valuePropName: "values",
|
|
85
|
+
changePropName: "onChange",
|
|
86
|
+
bordered: true
|
|
87
|
+
}, fieldArrayProps)), /*#__PURE__*/_react["default"].createElement(_.FieldNumber, {
|
|
88
|
+
label: "Idade",
|
|
89
|
+
component: _number["default"],
|
|
90
|
+
scale: 3,
|
|
91
|
+
name: "idade"
|
|
92
|
+
}));
|
|
93
|
+
};
|
|
94
|
+
|
|
95
|
+
describe('Form', function () {
|
|
96
|
+
it('should render correctly', function () {
|
|
97
|
+
var _render = (0, _react2.render)(mockForm()),
|
|
98
|
+
container = _render.container;
|
|
99
|
+
|
|
100
|
+
expect(container.firstChild).toBeTruthy();
|
|
101
|
+
});
|
|
102
|
+
it('should apply custom class', function () {
|
|
103
|
+
var _render2 = (0, _react2.render)(mockForm()),
|
|
104
|
+
container = _render2.container;
|
|
105
|
+
|
|
106
|
+
expect(container.firstChild).toHaveClass('mock-form');
|
|
107
|
+
});
|
|
108
|
+
it('should apply style', function () {
|
|
109
|
+
var _render3 = (0, _react2.render)(mockForm()),
|
|
110
|
+
container = _render3.container;
|
|
111
|
+
|
|
112
|
+
expect(container.firstChild).toHaveStyle('margin-bottom: 10px;');
|
|
113
|
+
});
|
|
114
|
+
it('should render with dataSource', function () {
|
|
115
|
+
var mockOnDataChange = jest.fn();
|
|
116
|
+
|
|
117
|
+
var _render4 = (0, _react2.render)(mockForm({
|
|
118
|
+
onDataChange: mockOnDataChange
|
|
119
|
+
})),
|
|
120
|
+
getByDisplayValue = _render4.getByDisplayValue;
|
|
121
|
+
|
|
122
|
+
_react2.fireEvent.change(getByDisplayValue('Gustavo'), {
|
|
123
|
+
target: {
|
|
124
|
+
value: 'Foo'
|
|
125
|
+
}
|
|
126
|
+
});
|
|
127
|
+
|
|
128
|
+
expect(mockOnDataChange).toHaveBeenCalledWith(_extends({}, data));
|
|
129
|
+
});
|
|
130
|
+
it('should submit form', function () {
|
|
131
|
+
var _render5 = (0, _react2.render)(mockForm()),
|
|
132
|
+
container = _render5.container;
|
|
133
|
+
|
|
134
|
+
_react2.fireEvent.submit(container.querySelector('.form-component'));
|
|
135
|
+
|
|
136
|
+
expect(mockHandlerSubmit).toHaveBeenCalled();
|
|
137
|
+
});
|
|
138
|
+
it('should submit on press enter', function () {
|
|
139
|
+
var _render6 = (0, _react2.render)(mockForm()),
|
|
140
|
+
container = _render6.container;
|
|
141
|
+
|
|
142
|
+
_react2.fireEvent.keyUp(container.querySelector('.form-component'), {
|
|
143
|
+
key: 'Enter',
|
|
144
|
+
code: 'Enter',
|
|
145
|
+
keyCode: '13',
|
|
146
|
+
charCode: '13'
|
|
147
|
+
});
|
|
148
|
+
|
|
149
|
+
expect(mockHandlerSubmit).toHaveBeenCalled();
|
|
150
|
+
});
|
|
151
|
+
it('should change form data', function () {
|
|
152
|
+
var mockOnDataChange = jest.fn();
|
|
153
|
+
|
|
154
|
+
var _render7 = (0, _react2.render)(mockForm({
|
|
155
|
+
onDataChange: mockOnDataChange
|
|
156
|
+
})),
|
|
157
|
+
getByDisplayValue = _render7.getByDisplayValue;
|
|
158
|
+
|
|
159
|
+
_react2.fireEvent.change(getByDisplayValue('Foo'), {
|
|
160
|
+
target: {
|
|
161
|
+
value: 'Gustavo'
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
expect(mockOnDataChange).toHaveBeenCalledWith(_extends({}, data));
|
|
166
|
+
});
|
|
167
|
+
it('should execute handlerValidates', function () {
|
|
168
|
+
var mockOnDataChange = jest.fn();
|
|
169
|
+
var mockHandlerValidates = jest.fn();
|
|
170
|
+
|
|
171
|
+
var _render8 = (0, _react2.render)(mockForm({
|
|
172
|
+
onDataChange: mockOnDataChange,
|
|
173
|
+
handlerValidates: mockHandlerValidates
|
|
174
|
+
})),
|
|
175
|
+
getByDisplayValue = _render8.getByDisplayValue;
|
|
176
|
+
|
|
177
|
+
_react2.fireEvent.change(getByDisplayValue('Gustavo'), {
|
|
178
|
+
target: {
|
|
179
|
+
value: 'XPTO'
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
|
|
183
|
+
expect(mockHandlerValidates).toHaveBeenCalled();
|
|
184
|
+
});
|
|
185
|
+
it('should execute handlerReset', function () {
|
|
186
|
+
var mockHandlerReset = jest.fn();
|
|
187
|
+
(0, _react2.render)(mockForm({
|
|
188
|
+
handlerReset: mockHandlerReset
|
|
189
|
+
}));
|
|
190
|
+
expect(mockHandlerReset).toHaveBeenCalled();
|
|
191
|
+
});
|
|
192
|
+
});
|
|
193
|
+
describe('Field', function () {
|
|
194
|
+
describe('Default & Number', function () {
|
|
195
|
+
it('should field has name', function () {
|
|
196
|
+
var _render9 = (0, _react2.render)(mockForm()),
|
|
197
|
+
getByDisplayValue = _render9.getByDisplayValue;
|
|
198
|
+
|
|
199
|
+
expect(getByDisplayValue('XPTO')).toHaveAttribute('name', 'nome');
|
|
200
|
+
});
|
|
201
|
+
it('should render component', function () {
|
|
202
|
+
var _render10 = (0, _react2.render)(mockForm()),
|
|
203
|
+
container = _render10.container;
|
|
204
|
+
|
|
205
|
+
expect(container.firstChild).toContainElement(container.querySelector('.textinput'));
|
|
206
|
+
});
|
|
207
|
+
it('should execute callback on field change', function () {
|
|
208
|
+
var mockOnChange = jest.fn();
|
|
209
|
+
|
|
210
|
+
var _render11 = (0, _react2.render)(mockForm({}, {
|
|
211
|
+
onChange: mockOnChange
|
|
212
|
+
})),
|
|
213
|
+
getByDisplayValue = _render11.getByDisplayValue;
|
|
214
|
+
|
|
215
|
+
_react2.fireEvent.change(getByDisplayValue('XPTO'), {
|
|
216
|
+
target: {
|
|
217
|
+
value: 'Gustavo'
|
|
218
|
+
}
|
|
219
|
+
});
|
|
220
|
+
|
|
221
|
+
expect(mockOnChange).toHaveBeenCalled();
|
|
222
|
+
});
|
|
223
|
+
it('should render label', function () {
|
|
224
|
+
var _render12 = (0, _react2.render)(mockForm()),
|
|
225
|
+
container = _render12.container;
|
|
226
|
+
|
|
227
|
+
expect(container.firstChild).toHaveTextContent('Nome');
|
|
228
|
+
});
|
|
229
|
+
it('should apply validators', /*#__PURE__*/_asyncToGenerator( /*#__PURE__*/regeneratorRuntime.mark(function _callee() {
|
|
230
|
+
var _render13, container;
|
|
231
|
+
|
|
232
|
+
return regeneratorRuntime.wrap(function _callee$(_context) {
|
|
233
|
+
while (1) {
|
|
234
|
+
switch (_context.prev = _context.next) {
|
|
235
|
+
case 0:
|
|
236
|
+
_render13 = (0, _react2.render)(mockForm()), container = _render13.container;
|
|
237
|
+
expect(container.querySelector('.errormessages')).toHaveTextContent('External Message Errors');
|
|
238
|
+
|
|
239
|
+
case 2:
|
|
240
|
+
case "end":
|
|
241
|
+
return _context.stop();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
244
|
+
}, _callee);
|
|
245
|
+
})));
|
|
246
|
+
it('should apply fieldId', function () {
|
|
247
|
+
var _render14 = (0, _react2.render)(mockForm()),
|
|
248
|
+
container = _render14.container;
|
|
249
|
+
|
|
250
|
+
expect(container.querySelector('#fooo')).toBeInTheDocument();
|
|
251
|
+
});
|
|
252
|
+
});
|
|
253
|
+
describe('Array', function () {
|
|
254
|
+
it('should apply bordered', function () {
|
|
255
|
+
var _render15 = (0, _react2.render)(mockForm()),
|
|
256
|
+
container = _render15.container;
|
|
257
|
+
|
|
258
|
+
expect(container.querySelector('.arraycontainer')).toHaveClass('-bordered');
|
|
259
|
+
});
|
|
260
|
+
it('should apply labelContainerStyle', function () {
|
|
261
|
+
var _render16 = (0, _react2.render)(mockForm()),
|
|
262
|
+
container = _render16.container;
|
|
263
|
+
|
|
264
|
+
expect(container.querySelector('.arraycontainer')).toHaveStyle('height: 200px;');
|
|
265
|
+
});
|
|
266
|
+
it('should apply grid columns', function () {
|
|
267
|
+
var _render17 = (0, _react2.render)(mockForm({}, {}, {
|
|
268
|
+
cols: '12 12 12 12'
|
|
269
|
+
})),
|
|
270
|
+
container = _render17.container;
|
|
271
|
+
|
|
272
|
+
expect(container.querySelector('.grid-container')).toBeInTheDocument();
|
|
273
|
+
expect(container.querySelector('.grid-container')).toHaveClass('col-xs-12 col-sm-12 col-md-12 col-lg-12');
|
|
274
|
+
expect(container.querySelector('.grid-container')).toContainElement(container.querySelector('.arraycontainer'));
|
|
275
|
+
});
|
|
276
|
+
it('should apply skipLabel', function () {
|
|
277
|
+
var _render18 = (0, _react2.render)(mockForm({}, {}, {
|
|
278
|
+
skipLabel: true
|
|
279
|
+
})),
|
|
280
|
+
container = _render18.container;
|
|
281
|
+
|
|
282
|
+
expect(container.querySelector('.arraycontainer')).not.toBeInTheDocument();
|
|
283
|
+
});
|
|
284
|
+
});
|
|
285
|
+
});
|
package/lib/form/helpers.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.getValidatorsArray = exports.getErrorMessages = exports.withFieldContext = exports.FormContext = exports.FieldContext = void 0;
|
|
6
|
+
exports.getValidatorsArray = exports.getErrorMessages = exports.withFieldContext = exports.FormContext = exports.FieldContext = exports.securityBeforeUnload = void 0;
|
|
7
7
|
|
|
8
8
|
var _react = _interopRequireDefault(require("react"));
|
|
9
9
|
|
|
@@ -21,6 +21,9 @@ function _arrayWithoutHoles(arr) { if (Array.isArray(arr)) return _arrayLikeToAr
|
|
|
21
21
|
|
|
22
22
|
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; }
|
|
23
23
|
|
|
24
|
+
var securityBeforeUnload = 'securityBeforeUnload';
|
|
25
|
+
exports.securityBeforeUnload = securityBeforeUnload;
|
|
26
|
+
|
|
24
27
|
var FieldContext = /*#__PURE__*/_react["default"].createContext();
|
|
25
28
|
|
|
26
29
|
exports.FieldContext = FieldContext;
|
|
@@ -36,6 +39,7 @@ exports.withFieldContext = withFieldContext;
|
|
|
36
39
|
var getErrorMessages = function getErrorMessages(_ref) {
|
|
37
40
|
var name = _ref.name,
|
|
38
41
|
fieldErrors = _ref.fieldErrors,
|
|
42
|
+
externalFieldErrors = _ref.externalFieldErrors,
|
|
39
43
|
externalMessagesErrors = _ref.externalMessagesErrors;
|
|
40
44
|
|
|
41
45
|
var errors = _toConsumableArray(externalMessagesErrors);
|
|
@@ -44,6 +48,10 @@ var getErrorMessages = function getErrorMessages(_ref) {
|
|
|
44
48
|
errors = [].concat(_toConsumableArray(errors), _toConsumableArray(fieldErrors[name]));
|
|
45
49
|
}
|
|
46
50
|
|
|
51
|
+
if (externalFieldErrors && externalFieldErrors[name]) {
|
|
52
|
+
errors = [].concat(_toConsumableArray(errors), _toConsumableArray(externalFieldErrors[name]));
|
|
53
|
+
}
|
|
54
|
+
|
|
47
55
|
return errors;
|
|
48
56
|
};
|
|
49
57
|
|
package/lib/form/index.js
CHANGED
|
@@ -41,6 +41,10 @@ var _FieldArray = _interopRequireDefault(require("./FieldArray"));
|
|
|
41
41
|
|
|
42
42
|
require("../assets/styles/form.scss");
|
|
43
43
|
|
|
44
|
+
var _dialog = require("../dialog");
|
|
45
|
+
|
|
46
|
+
var _withFormSecurity = require("./withFormSecurity");
|
|
47
|
+
|
|
44
48
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
45
49
|
|
|
46
50
|
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); }
|
|
@@ -94,6 +98,20 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
94
98
|
_classCallCheck(this, Form);
|
|
95
99
|
|
|
96
100
|
_this = _super.call(this, props);
|
|
101
|
+
Object.defineProperty(_assertThisInitialized(_this), "onBeforeUnload", {
|
|
102
|
+
configurable: true,
|
|
103
|
+
enumerable: true,
|
|
104
|
+
writable: true,
|
|
105
|
+
value: function value(e) {
|
|
106
|
+
e.preventDefault();
|
|
107
|
+
|
|
108
|
+
if (Object.is(_this.state.data, _this.state.originalData)) {
|
|
109
|
+
return;
|
|
110
|
+
}
|
|
111
|
+
|
|
112
|
+
e.returnValue = true;
|
|
113
|
+
}
|
|
114
|
+
});
|
|
97
115
|
Object.defineProperty(_assertThisInitialized(_this), "onFieldChange", {
|
|
98
116
|
configurable: true,
|
|
99
117
|
enumerable: true,
|
|
@@ -106,12 +124,19 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
106
124
|
var _e$target = e.target,
|
|
107
125
|
name = _e$target.name,
|
|
108
126
|
value = _e$target.value;
|
|
127
|
+
var onChangedData = _this.context.onChangedData;
|
|
109
128
|
|
|
110
129
|
_lodash["default"].set(data, name, value);
|
|
111
130
|
|
|
112
131
|
_this.setState({
|
|
113
132
|
data: data
|
|
114
|
-
});
|
|
133
|
+
});
|
|
134
|
+
|
|
135
|
+
if (!Object.is(data, _this.state.originalData)) {
|
|
136
|
+
onChangedData(true);
|
|
137
|
+
} else {
|
|
138
|
+
onChangedData(false);
|
|
139
|
+
} // TODO - Usar debounce para evitar chamada a cada letra digitada
|
|
115
140
|
|
|
116
141
|
|
|
117
142
|
if (onValidateForm) onValidateForm(_this.checkIsValid(data, false));
|
|
@@ -196,7 +221,8 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
196
221
|
},
|
|
197
222
|
handlerRemoveValidators: _this.onRemoveFieldValidators,
|
|
198
223
|
data: _this.state.data,
|
|
199
|
-
fieldErrors: _this.state.fieldErrors
|
|
224
|
+
fieldErrors: _this.state.fieldErrors,
|
|
225
|
+
externalFieldErrors: _this.props.externalFieldErrors
|
|
200
226
|
};
|
|
201
227
|
}
|
|
202
228
|
});
|
|
@@ -254,12 +280,23 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
254
280
|
var _this$props2 = this.props,
|
|
255
281
|
handlerReset = _this$props2.handlerReset,
|
|
256
282
|
handlerSubmit = _this$props2.handlerSubmit,
|
|
257
|
-
handlerValidates = _this$props2.handlerValidates
|
|
283
|
+
handlerValidates = _this$props2.handlerValidates,
|
|
284
|
+
securityBeforeUnload = _this$props2.securityBeforeUnload;
|
|
285
|
+
var setSecurityBeforeUnload = this.context.setSecurityBeforeUnload;
|
|
258
286
|
handlerSubmit(this.onSubmit);
|
|
259
287
|
if (handlerReset) handlerReset(this.onReset);
|
|
260
288
|
if (handlerValidates) handlerValidates(this.checkIsValid);
|
|
261
|
-
} // up = data => _.debounce((data) => { this.props.onValidateForm(this.checkIsValid(data)); }, 300)
|
|
262
289
|
|
|
290
|
+
if (securityBeforeUnload) {
|
|
291
|
+
setSecurityBeforeUnload(true);
|
|
292
|
+
window.addEventListener('beforeunload', this.onBeforeUnload);
|
|
293
|
+
}
|
|
294
|
+
}
|
|
295
|
+
}, {
|
|
296
|
+
key: "componentWillUnmount",
|
|
297
|
+
value: function componentWillUnmount() {
|
|
298
|
+
window.removeEventListener('beforeunload', this.onBeforeUnload);
|
|
299
|
+
}
|
|
263
300
|
}, {
|
|
264
301
|
key: "render",
|
|
265
302
|
value: function render() {
|
|
@@ -268,8 +305,15 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
268
305
|
var _this$props3 = this.props,
|
|
269
306
|
style = _this$props3.style,
|
|
270
307
|
customClass = _this$props3.customClass,
|
|
271
|
-
children = _this$props3.children
|
|
272
|
-
|
|
308
|
+
children = _this$props3.children,
|
|
309
|
+
securityBeforeUnload = _this$props3.securityBeforeUnload,
|
|
310
|
+
securityTitle = _this$props3.securityTitle,
|
|
311
|
+
securityText = _this$props3.securityText;
|
|
312
|
+
var _this$context = this.context,
|
|
313
|
+
showQuestion = _this$context.showQuestion,
|
|
314
|
+
onUnconfirmClick = _this$context.onUnconfirmClick,
|
|
315
|
+
onConfirmClick = _this$context.onConfirmClick;
|
|
316
|
+
return /*#__PURE__*/_react["default"].createElement(_react.Fragment, null, /*#__PURE__*/_react["default"].createElement(_helpers.FormContext.Provider, {
|
|
273
317
|
value: this.getContextValue()
|
|
274
318
|
}, /*#__PURE__*/_react["default"].createElement("form", {
|
|
275
319
|
style: style,
|
|
@@ -281,7 +325,15 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
281
325
|
},
|
|
282
326
|
role: "presentation",
|
|
283
327
|
className: "form-component ".concat(customClass)
|
|
284
|
-
}, children))
|
|
328
|
+
}, children)), /*#__PURE__*/_react["default"].createElement(_dialog.DialogQuestion, {
|
|
329
|
+
zIndex: "99999999",
|
|
330
|
+
customClassName: "classTeste",
|
|
331
|
+
title: securityTitle || 'Dados Alterados',
|
|
332
|
+
text: securityText || 'Vocẽ possui dados alterados, confirma o fechamento?',
|
|
333
|
+
visible: securityBeforeUnload && showQuestion,
|
|
334
|
+
onConfirmClick: onConfirmClick,
|
|
335
|
+
onUnconfirmClick: onUnconfirmClick
|
|
336
|
+
}));
|
|
285
337
|
}
|
|
286
338
|
}], [{
|
|
287
339
|
key: "getDerivedStateFromProps",
|
|
@@ -293,7 +345,7 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
293
345
|
return {
|
|
294
346
|
submitFormOnEnter: submitOnPressEnterKey,
|
|
295
347
|
data: dataSource,
|
|
296
|
-
originalData: dataSource
|
|
348
|
+
originalData: state.originalData || dataSource
|
|
297
349
|
};
|
|
298
350
|
}
|
|
299
351
|
|
|
@@ -304,6 +356,12 @@ var Form = /*#__PURE__*/function (_Component) {
|
|
|
304
356
|
return Form;
|
|
305
357
|
}(_react.Component);
|
|
306
358
|
|
|
359
|
+
Object.defineProperty(Form, "contextType", {
|
|
360
|
+
configurable: true,
|
|
361
|
+
enumerable: true,
|
|
362
|
+
writable: true,
|
|
363
|
+
value: _withFormSecurity.FormSecurityContext
|
|
364
|
+
});
|
|
307
365
|
Form.propTypes = {
|
|
308
366
|
dataSource: _propTypes["default"].object.isRequired,
|
|
309
367
|
children: _propTypes["default"].any.isRequired,
|
|
@@ -315,7 +373,11 @@ Form.propTypes = {
|
|
|
315
373
|
submitOnPressEnterKey: _propTypes["default"].bool,
|
|
316
374
|
style: _propTypes["default"].object,
|
|
317
375
|
customClass: _propTypes["default"].string,
|
|
318
|
-
onDataChange: _propTypes["default"].func
|
|
376
|
+
onDataChange: _propTypes["default"].func,
|
|
377
|
+
securityBeforeUnload: _propTypes["default"].bool,
|
|
378
|
+
securityTitle: _propTypes["default"].string,
|
|
379
|
+
securityText: _propTypes["default"].string,
|
|
380
|
+
externalFieldErrors: _propTypes["default"].object
|
|
319
381
|
};
|
|
320
382
|
Form.defaultProps = {
|
|
321
383
|
onValidateForm: undefined,
|
|
@@ -324,7 +386,11 @@ Form.defaultProps = {
|
|
|
324
386
|
handlerReset: undefined,
|
|
325
387
|
handlerValidates: undefined,
|
|
326
388
|
customClass: '',
|
|
327
|
-
onDataChange: undefined
|
|
389
|
+
onDataChange: undefined,
|
|
390
|
+
securityBeforeUnload: false,
|
|
391
|
+
securityTitle: null,
|
|
392
|
+
securityText: null,
|
|
393
|
+
externalFieldErrors: {}
|
|
328
394
|
};
|
|
329
395
|
var _default = Form;
|
|
330
396
|
exports["default"] = _default;
|
package/lib/form/withFieldHOC.js
CHANGED
|
@@ -151,6 +151,7 @@ function withFieldHOC(WrappedComponent) {
|
|
|
151
151
|
handlerFieldValidade = _ref.handlerFieldValidade,
|
|
152
152
|
data = _ref.data,
|
|
153
153
|
fieldErrors = _ref.fieldErrors,
|
|
154
|
+
externalFieldErrors = _ref.externalFieldErrors,
|
|
154
155
|
handlerStoreValidators = _ref.handlerStoreValidators,
|
|
155
156
|
handlerRemoveValidators = _ref.handlerRemoveValidators;
|
|
156
157
|
return /*#__PURE__*/_react["default"].createElement(FieldHOC, _extends({}, props, {
|
|
@@ -160,6 +161,7 @@ function withFieldHOC(WrappedComponent) {
|
|
|
160
161
|
handlerRemoveValidators: handlerRemoveValidators,
|
|
161
162
|
data: data,
|
|
162
163
|
fieldErrors: fieldErrors,
|
|
164
|
+
externalFieldErrors: externalFieldErrors,
|
|
163
165
|
forwardedRef: ref
|
|
164
166
|
}));
|
|
165
167
|
});
|
|
@@ -0,0 +1,106 @@
|
|
|
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
|
+
Object.defineProperty(exports, "__esModule", {
|
|
6
|
+
value: true
|
|
7
|
+
});
|
|
8
|
+
exports.FormSecurityContext = exports["default"] = void 0;
|
|
9
|
+
|
|
10
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
11
|
+
|
|
12
|
+
var _propTypes = _interopRequireDefault(require("prop-types"));
|
|
13
|
+
|
|
14
|
+
var _excluded = ["handlerClose"];
|
|
15
|
+
|
|
16
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
|
|
17
|
+
|
|
18
|
+
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); }
|
|
19
|
+
|
|
20
|
+
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; }
|
|
21
|
+
|
|
22
|
+
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); }
|
|
23
|
+
|
|
24
|
+
function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
|
|
25
|
+
|
|
26
|
+
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."); }
|
|
27
|
+
|
|
28
|
+
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); }
|
|
29
|
+
|
|
30
|
+
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; }
|
|
31
|
+
|
|
32
|
+
function _iterableToArrayLimit(arr, i) { var _i = arr && (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; }
|
|
33
|
+
|
|
34
|
+
function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
|
|
35
|
+
|
|
36
|
+
function _objectWithoutProperties(source, excluded) { if (source == null) return {}; var target = _objectWithoutPropertiesLoose(source, excluded); var key, i; if (Object.getOwnPropertySymbols) { var sourceSymbolKeys = Object.getOwnPropertySymbols(source); for (i = 0; i < sourceSymbolKeys.length; i++) { key = sourceSymbolKeys[i]; if (excluded.indexOf(key) >= 0) continue; if (!Object.prototype.propertyIsEnumerable.call(source, key)) continue; target[key] = source[key]; } } return target; }
|
|
37
|
+
|
|
38
|
+
function _objectWithoutPropertiesLoose(source, excluded) { if (source == null) return {}; var target = {}; var sourceKeys = Object.keys(source); var key, i; for (i = 0; i < sourceKeys.length; i++) { key = sourceKeys[i]; if (excluded.indexOf(key) >= 0) continue; target[key] = source[key]; } return target; }
|
|
39
|
+
|
|
40
|
+
var FormSecurityContext = /*#__PURE__*/_react["default"].createContext();
|
|
41
|
+
|
|
42
|
+
exports.FormSecurityContext = FormSecurityContext;
|
|
43
|
+
|
|
44
|
+
var withFormSecurity = function withFormSecurity(WrappedComponent) {
|
|
45
|
+
var EnhancedComponent = function EnhancedComponent(_ref) {
|
|
46
|
+
var handlerClose = _ref.handlerClose,
|
|
47
|
+
props = _objectWithoutProperties(_ref, _excluded);
|
|
48
|
+
|
|
49
|
+
var changedData = (0, _react.useRef)(false);
|
|
50
|
+
|
|
51
|
+
var _useState = (0, _react.useState)(false),
|
|
52
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
53
|
+
securityBeforeUnload = _useState2[0],
|
|
54
|
+
setSecurityBeforeUnload = _useState2[1];
|
|
55
|
+
|
|
56
|
+
var _useState3 = (0, _react.useState)(false),
|
|
57
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
58
|
+
showQuestion = _useState4[0],
|
|
59
|
+
setShowQuestion = _useState4[1];
|
|
60
|
+
|
|
61
|
+
var newHandlerClose = function newHandlerClose() {
|
|
62
|
+
if (changedData.current && securityBeforeUnload) {
|
|
63
|
+
setShowQuestion(true);
|
|
64
|
+
} else {
|
|
65
|
+
handlerClose();
|
|
66
|
+
}
|
|
67
|
+
};
|
|
68
|
+
|
|
69
|
+
var onConfirmClick = function onConfirmClick() {
|
|
70
|
+
handlerClose();
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
var onUnconfirmClick = function onUnconfirmClick() {
|
|
74
|
+
setShowQuestion(false);
|
|
75
|
+
};
|
|
76
|
+
|
|
77
|
+
var onChangedData = function onChangedData(value) {
|
|
78
|
+
changedData.current = value;
|
|
79
|
+
};
|
|
80
|
+
|
|
81
|
+
return /*#__PURE__*/_react["default"].createElement(FormSecurityContext.Provider, {
|
|
82
|
+
value: {
|
|
83
|
+
onChangedData: onChangedData,
|
|
84
|
+
showQuestion: showQuestion,
|
|
85
|
+
onConfirmClick: onConfirmClick,
|
|
86
|
+
onUnconfirmClick: onUnconfirmClick,
|
|
87
|
+
setSecurityBeforeUnload: setSecurityBeforeUnload
|
|
88
|
+
}
|
|
89
|
+
}, /*#__PURE__*/_react["default"].createElement(WrappedComponent, _extends({}, props, {
|
|
90
|
+
handlerClose: newHandlerClose
|
|
91
|
+
})));
|
|
92
|
+
};
|
|
93
|
+
|
|
94
|
+
EnhancedComponent.propTypes = {
|
|
95
|
+
handlerClose: _propTypes["default"].func,
|
|
96
|
+
onClick: _propTypes["default"].func
|
|
97
|
+
};
|
|
98
|
+
EnhancedComponent.defaultProps = {
|
|
99
|
+
handlerClose: undefined,
|
|
100
|
+
onClick: undefined
|
|
101
|
+
};
|
|
102
|
+
return EnhancedComponent;
|
|
103
|
+
};
|
|
104
|
+
|
|
105
|
+
var _default = withFormSecurity;
|
|
106
|
+
exports["default"] = _default;
|
|
@@ -18,7 +18,7 @@ var getClass = function getClass(_ref) {
|
|
|
18
18
|
customClass = _ref.customClass,
|
|
19
19
|
horizontalAlign = _ref.horizontalAlign,
|
|
20
20
|
withTrim = _ref.withTrim;
|
|
21
|
-
return "row ".concat(customClass, "
|
|
21
|
+
return "row ".concat(customClass, "\n ").concat(withTrim && ' -withtrim', "\n ").concat(verticalAlign && " align-".concat(verticalAlign), "\n ").concat(horizontalAlign && " justify-content-".concat(horizontalAlign));
|
|
22
22
|
};
|
|
23
23
|
|
|
24
24
|
var GridRow = function GridRow(props) {
|