linear-react-components-ui 0.4.76-beta.12 → 0.4.76-beta.13

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.
Files changed (101) hide show
  1. package/.husky/pre-commit +2 -2
  2. package/.tool-versions +1 -0
  3. package/.vscode/settings.json +1 -2
  4. package/README.md +33 -0
  5. package/lib/assets/styles/button.scss +17 -10
  6. package/lib/assets/styles/checkbox.scss +92 -70
  7. package/lib/assets/styles/commons.scss +26 -0
  8. package/lib/assets/styles/drawers.scss +22 -6
  9. package/lib/assets/styles/dropdown.scss +28 -2
  10. package/lib/assets/styles/effects.scss +12 -0
  11. package/lib/assets/styles/floatMenu.scss +0 -1
  12. package/lib/assets/styles/gridlayout.scss +2 -1
  13. package/lib/assets/styles/input.scss +21 -0
  14. package/lib/assets/styles/label.scss +9 -1
  15. package/lib/assets/styles/multiSelect.scss +105 -0
  16. package/lib/assets/styles/panel.scss +5 -2
  17. package/lib/assets/styles/periodpicker.scss +65 -0
  18. package/lib/assets/styles/progress.scss +8 -1
  19. package/lib/assets/styles/radio.scss +19 -0
  20. package/lib/assets/styles/select.scss +1 -0
  21. package/lib/assets/styles/skeleton.scss +48 -0
  22. package/lib/assets/styles/table.scss +14 -5
  23. package/lib/assets/styles/tabs.scss +79 -43
  24. package/lib/assets/styles/treeview.scss +32 -0
  25. package/lib/avatar/avatar.spec.js +17 -6
  26. package/lib/avatar/index.js +1 -1
  27. package/lib/buttons/DefaultButton.js +13 -4
  28. package/lib/buttons/split_button/index.js +8 -4
  29. package/lib/checkbox/Label.js +37 -0
  30. package/lib/checkbox/checkbox.spec.js +16 -16
  31. package/lib/checkbox/index.js +33 -12
  32. package/lib/dialog/base/index.js +15 -6
  33. package/lib/dialog/form/index.js +24 -4
  34. package/lib/drawer/Drawer.js +9 -5
  35. package/lib/drawer/Header.js +15 -5
  36. package/lib/drawer/index.js +4 -1
  37. package/lib/form/Field.js +2 -0
  38. package/lib/form/FieldNumber.js +10 -2
  39. package/lib/form/FieldPeriod.js +100 -0
  40. package/lib/form/helpers.js +20 -1
  41. package/lib/form/index.js +207 -224
  42. package/lib/form/withFieldHOC.js +5 -1
  43. package/lib/form/withFormSecurity.js +106 -0
  44. package/lib/icons/helper.js +16 -0
  45. package/lib/inputs/base/InputTextBase.js +10 -5
  46. package/lib/inputs/base/helpers.js +2 -1
  47. package/lib/inputs/date/Dropdown.js +3 -3
  48. package/lib/inputs/date/date.spec.js +46 -36
  49. package/lib/inputs/date/helpers.js +36 -0
  50. package/lib/inputs/date/index.js +12 -10
  51. package/lib/inputs/mask/imaskHOC.js +2 -1
  52. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  53. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  54. package/lib/inputs/multiSelect/helper.js +18 -0
  55. package/lib/inputs/multiSelect/index.js +343 -0
  56. package/lib/inputs/number/BaseNumber.js +1 -1
  57. package/lib/inputs/number/index.js +7 -5
  58. package/lib/inputs/period/Dialog.js +38 -0
  59. package/lib/inputs/period/Dropdown.js +90 -0
  60. package/lib/inputs/period/PeriodList.js +79 -0
  61. package/lib/inputs/period/helper.js +118 -0
  62. package/lib/inputs/period/index.js +490 -0
  63. package/lib/inputs/select/Dropdown.js +4 -4
  64. package/lib/inputs/select/index.js +26 -3
  65. package/lib/inputs/select/multiple/index.js +9 -7
  66. package/lib/inputs/select/simple/index.js +30 -18
  67. package/lib/internals/withTooltip.js +85 -81
  68. package/lib/labels/DefaultLabel.js +7 -4
  69. package/lib/list/Item.js +3 -3
  70. package/lib/list/index.js +20 -10
  71. package/lib/list/list.spec.js +129 -85
  72. package/lib/menus/float/MenuItem.js +25 -8
  73. package/lib/menus/sidenav/NavMenuItem.js +2 -2
  74. package/lib/menus/sidenav/index.js +7 -3
  75. package/lib/menus/sidenav/popup_menu_search/index.js +1 -1
  76. package/lib/panel/Content.js +11 -4
  77. package/lib/progress/Bar.js +40 -9
  78. package/lib/progress/index.js +12 -4
  79. package/lib/radio/index.js +9 -6
  80. package/lib/skeleton/SkeletonContainer.js +42 -0
  81. package/lib/skeleton/index.js +84 -0
  82. package/lib/spinner/index.js +6 -1
  83. package/lib/split/Split.js +5 -11
  84. package/lib/table/HeaderColumn.js +24 -3
  85. package/lib/table/Row.js +7 -3
  86. package/lib/table/RowColumn.js +22 -3
  87. package/lib/table/index.js +11 -4
  88. package/lib/tabs/DropdownItems.js +84 -0
  89. package/lib/tabs/Menu.js +18 -5
  90. package/lib/tabs/MenuItems.js +15 -9
  91. package/lib/tabs/Panel.js +1 -3
  92. package/lib/tabs/index.js +156 -22
  93. package/lib/tabs/tabs.spec.js +8 -5
  94. package/lib/toolbar/ButtonBar.js +30 -24
  95. package/lib/toolbar/LabelBar.js +22 -27
  96. package/lib/toolbar/helpers.js +12 -0
  97. package/lib/toolbar/index.js +24 -9
  98. package/lib/tooltip/index.js +20 -7
  99. package/lib/treeview/Node.js +348 -49
  100. package/lib/treeview/index.js +457 -36
  101. package/package.json +9 -8
@@ -0,0 +1,490 @@
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["default"] = void 0;
9
+
10
+ var _react = _interopRequireWildcard(require("react"));
11
+
12
+ var _moment = _interopRequireDefault(require("moment"));
13
+
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
+
16
+ var _BaseMask = _interopRequireDefault(require("../mask/BaseMask"));
17
+
18
+ var _Dropdown = _interopRequireDefault(require("./Dropdown"));
19
+
20
+ var _calendar = _interopRequireDefault(require("../../calendar"));
21
+
22
+ var _buttons = _interopRequireDefault(require("../../buttons"));
23
+
24
+ var _icons = _interopRequireDefault(require("../../icons"));
25
+
26
+ var _Dialog = _interopRequireDefault(require("./Dialog"));
27
+
28
+ var _colorStyles = _interopRequireDefault(require("../../internals/colorStyles"));
29
+
30
+ var _PeriodList = _interopRequireDefault(require("./PeriodList"));
31
+
32
+ var helperBase = _interopRequireWildcard(require("../base/helpers"));
33
+
34
+ require("../../assets/styles/periodpicker.scss");
35
+
36
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
37
+
38
+ 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); }
39
+
40
+ 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; }
41
+
42
+ 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); }
43
+
44
+ function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
45
+
46
+ 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."); }
47
+
48
+ 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); }
49
+
50
+ 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; }
51
+
52
+ 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; }
53
+
54
+ function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
55
+
56
+ function usePrevious(value) {
57
+ var ref = (0, _react.useRef)();
58
+ (0, _react.useEffect)(function () {
59
+ ref.current = value;
60
+ });
61
+ return ref.current;
62
+ }
63
+
64
+ var PeriodPicker = function PeriodPicker(props) {
65
+ var _useState = (0, _react.useState)(props.value && props.value.initial ? (0, _moment["default"])(props.value.initial) : undefined),
66
+ _useState2 = _slicedToArray(_useState, 2),
67
+ valueInitial = _useState2[0],
68
+ setValueInitial = _useState2[1];
69
+
70
+ var _useState3 = (0, _react.useState)(props.value && props.value["final"] ? (0, _moment["default"])(props.value["final"]) : undefined),
71
+ _useState4 = _slicedToArray(_useState3, 2),
72
+ valueFinal = _useState4[0],
73
+ setValueFinal = _useState4[1];
74
+
75
+ var previusValueInitial = usePrevious(valueInitial);
76
+ var previusValueFinal = usePrevious(valueFinal);
77
+ var previusValueProp = usePrevious(props.value);
78
+
79
+ var _useState5 = (0, _react.useState)('valueInitial'),
80
+ _useState6 = _slicedToArray(_useState5, 2),
81
+ changing = _useState6[0],
82
+ setChanging = _useState6[1];
83
+
84
+ var _useState7 = (0, _react.useState)('week'),
85
+ _useState8 = _slicedToArray(_useState7, 2),
86
+ valuePeriodSelection = _useState8[0],
87
+ setValuePeriodSelection = _useState8[1];
88
+
89
+ var _useState9 = (0, _react.useState)(false),
90
+ _useState10 = _slicedToArray(_useState9, 2),
91
+ showCalendar = _useState10[0],
92
+ setShowCalendar = _useState10[1];
93
+
94
+ var _useState11 = (0, _react.useState)(false),
95
+ _useState12 = _slicedToArray(_useState11, 2),
96
+ showPeriodSelection = _useState12[0],
97
+ setShowPeriodSelection = _useState12[1];
98
+
99
+ var _useState13 = (0, _react.useState)(null),
100
+ _useState14 = _slicedToArray(_useState13, 2),
101
+ inputDimensions = _useState14[0],
102
+ setInputDimensions = _useState14[1];
103
+
104
+ var _useState15 = (0, _react.useState)(undefined),
105
+ _useState16 = _slicedToArray(_useState15, 2),
106
+ onDenied = _useState16[0],
107
+ setOnDenied = _useState16[1];
108
+
109
+ var inputContainerRef = (0, _react.useRef)();
110
+ var inputInitialRef = (0, _react.useRef)();
111
+ var buttonOpenRef = (0, _react.useRef)();
112
+ var buttonSelectPeriodRef = (0, _react.useRef)();
113
+ var dropdownCalendarContainer = (0, _react.useRef)();
114
+ var dropdownPeriodContainer = (0, _react.useRef)();
115
+ var inputFinalRef = (0, _react.useRef)();
116
+
117
+ var onScreenResize = function onScreenResize() {
118
+ var inputDimensionsAux = inputContainerRef.current.getBoundingClientRect();
119
+ setInputDimensions(inputDimensionsAux);
120
+ };
121
+
122
+ var onClickOutside = function onClickOutside(event) {
123
+ var target = event.target;
124
+
125
+ if (target === inputContainerRef.current || target === inputInitialRef.current || target === inputFinalRef.current || target === buttonOpenRef.current || target === buttonSelectPeriodRef.current) {
126
+ return;
127
+ }
128
+
129
+ if (dropdownCalendarContainer.current && dropdownCalendarContainer.current.contains(target)) return;
130
+ if (dropdownPeriodContainer.current && dropdownPeriodContainer.current.contains(target)) return;
131
+ setShowCalendar(false);
132
+ setShowPeriodSelection(false);
133
+ };
134
+
135
+ (0, _react.useEffect)(function () {
136
+ window.addEventListener('resize', onScreenResize);
137
+ document.addEventListener('click', onClickOutside);
138
+ if (inputContainerRef.current) onScreenResize();
139
+ return function () {
140
+ window.removeEventListener('resize', onScreenResize);
141
+ document.removeEventListener('click', onClickOutside);
142
+ };
143
+ }, []);
144
+ (0, _react.useEffect)(function () {
145
+ if (valueFinal && valueInitial && (previusValueFinal !== valueFinal || previusValueInitial !== valueInitial)) {
146
+ // Se for selecionado um valor para data final menor que data inicial trocar as datas
147
+ if (valueFinal < valueInitial) {
148
+ var valueInitialAux = (0, _moment["default"])(valueInitial);
149
+ setValueInitial(valueFinal);
150
+ setValueFinal(valueInitialAux); // Sempre que for alterado o estado interno chamar o callback
151
+ } else if (props.onChange) {
152
+ var initial = valueInitial ? valueInitial.format('YYYY-MM-DD') : '';
153
+
154
+ var _final = valueFinal ? valueFinal.format('YYYY-MM-DD') : '';
155
+
156
+ props.onChange({
157
+ initial: initial,
158
+ "final": _final
159
+ });
160
+ }
161
+ }
162
+ }, [valueFinal, valueInitial]);
163
+ (0, _react.useEffect)(function () {
164
+ // sempre que alterado a prop 'value' atualiza o state interno
165
+ if (props.value !== previusValueProp) {
166
+ var _props$value = props.value,
167
+ valueInitialProp = _props$value.initial,
168
+ valueFinalProp = _props$value["final"];
169
+ var newValueInitial;
170
+ var newValueFinal;
171
+
172
+ if ((0, _moment["default"])(valueInitialProp, 'YYYY-MM-DD', true).isValid()) {
173
+ newValueInitial = (0, _moment["default"])(valueInitialProp, 'YYYY-MM-DD');
174
+ }
175
+
176
+ if ((0, _moment["default"])(valueFinalProp, 'YYYY-MM-DD', true).isValid()) {
177
+ newValueFinal = (0, _moment["default"])(valueFinalProp, 'YYYY-MM-DD');
178
+ }
179
+
180
+ setValueInitial(newValueInitial);
181
+ setValueFinal(newValueFinal);
182
+ }
183
+ }, [props.value]);
184
+
185
+ var openCalendar = function openCalendar() {
186
+ setShowCalendar(true);
187
+ setShowPeriodSelection(false);
188
+
189
+ if (inputContainerRef.current) {
190
+ setInputDimensions(inputContainerRef.current.getBoundingClientRect());
191
+ }
192
+ };
193
+
194
+ var onInputFocus = function onInputFocus(e) {
195
+ var openOnFocus = props.openOnFocus;
196
+ var name = e.target.name;
197
+ setChanging(name);
198
+ if (openOnFocus) openCalendar();
199
+ };
200
+
201
+ var onInputChange = function onInputChange(event, value) {
202
+ var changingAux = event.target.name;
203
+
204
+ if (value.replace(/\D/g, '') === '') {
205
+ if (changingAux === 'valueInitial') {
206
+ setValueInitial(undefined);
207
+ } else {
208
+ setValueFinal(undefined);
209
+ }
210
+ }
211
+ };
212
+
213
+ var setValue = function setValue(e, value) {
214
+ var sholdOpenDropdown = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
215
+ var changingAux = e.target.name;
216
+ var dateObj = (0, _moment["default"])(value, 'DD/MM/YYYY');
217
+
218
+ if (changingAux === 'valueInitial') {
219
+ setValueInitial(dateObj);
220
+ } else {
221
+ setValueFinal(dateObj);
222
+ }
223
+ /*
224
+ Caso valor setado for inicial e valor final vazio,
225
+ dar focus na data final e abrir dropdown para selecao de data final
226
+ */
227
+
228
+
229
+ if (changingAux === 'valueInitial' && !valueFinal && sholdOpenDropdown) {
230
+ setChanging(valueFinal);
231
+ setShowCalendar(false);
232
+ inputFinalRef.current.focus();
233
+ setTimeout(function () {
234
+ return setShowCalendar(true);
235
+ }, 100);
236
+ } else if (props.shouldCloseOnSelect) {
237
+ setShowCalendar(false);
238
+ }
239
+ };
240
+
241
+ var shouldDisable = function shouldDisable() {
242
+ var disabled = props.disabled;
243
+ return disabled || onDenied && (onDenied.disabled || onDenied.hideContent);
244
+ };
245
+
246
+ var getButtonOpen = function getButtonOpen() {
247
+ var showButtonOpen = props.showButtonOpen;
248
+ if (!showButtonOpen) return null;
249
+ return /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
250
+ key: "button-open",
251
+ boxShadow: false,
252
+ icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
253
+ name: "calendar"
254
+ }),
255
+ onClick: function onClick() {
256
+ inputInitialRef.current.focus();
257
+ setChanging('valueInitial');
258
+ openCalendar();
259
+ },
260
+ customClass: "calendar-button",
261
+ tabIndex: "-1",
262
+ targetRef: function targetRef(ref) {
263
+ buttonOpenRef.current = ref;
264
+ },
265
+ disabled: shouldDisable()
266
+ });
267
+ };
268
+
269
+ var getPeriodSelection = function getPeriodSelection(valuePeriodSelectionAux, setPeridDates) {
270
+ return /*#__PURE__*/_react["default"].createElement(_PeriodList["default"], {
271
+ selected: valuePeriodSelectionAux,
272
+ handleOnSelect: setPeridDates
273
+ });
274
+ };
275
+
276
+ var openPeriodSelecion = function openPeriodSelecion() {
277
+ setShowCalendar(false);
278
+ setShowPeriodSelection(true);
279
+
280
+ if (inputContainerRef.current) {
281
+ setInputDimensions(inputContainerRef.current.getBoundingClientRect());
282
+ }
283
+ };
284
+
285
+ var getButtonSelectPeriod = function getButtonSelectPeriod() {
286
+ return /*#__PURE__*/_react["default"].createElement(_buttons["default"], {
287
+ key: "button-select-period",
288
+ boxShadow: false,
289
+ icon: /*#__PURE__*/_react["default"].createElement(_icons["default"], {
290
+ name: "more1"
291
+ }),
292
+ onClick: function onClick() {
293
+ return openPeriodSelecion();
294
+ },
295
+ customClass: "calendar-button",
296
+ tabIndex: "-1",
297
+ targetRef: function targetRef(ref) {
298
+ buttonSelectPeriodRef.current = ref;
299
+ },
300
+ disabled: shouldDisable()
301
+ });
302
+ };
303
+
304
+ var getCalendar = function getCalendar(value, calendarColorStyle, changingAux) {
305
+ return /*#__PURE__*/_react["default"].createElement(_calendar["default"], {
306
+ currentDate: value !== undefined ? value : (0, _moment["default"])(),
307
+ onDateChange: function onDateChange(date) {
308
+ return setValue({
309
+ target: {
310
+ name: changingAux
311
+ }
312
+ }, date);
313
+ },
314
+ colorStyle: calendarColorStyle
315
+ });
316
+ };
317
+
318
+ var setPeridDates = function setPeridDates(selected, dates) {
319
+ if (selected === 'custom') {
320
+ inputInitialRef.current.focus();
321
+ setValuePeriodSelection(selected);
322
+ setChanging('valueInitial');
323
+ setShowPeriodSelection(false);
324
+ setShowCalendar(true);
325
+ return;
326
+ }
327
+
328
+ setValuePeriodSelection(selected);
329
+ setValueInitial(dates[0]);
330
+ setValueFinal(dates[1]);
331
+
332
+ if (props.shouldCloseOnSelect) {
333
+ setShowPeriodSelection(false);
334
+ }
335
+ };
336
+
337
+ var getWrapperComponentCalendar = function getWrapperComponentCalendar() {
338
+ var value = changing === 'valueInitial' ? valueInitial : valueFinal;
339
+ var showCalendarInDialog = props.showCalendarInDialog,
340
+ dialogSize = props.dialogSize,
341
+ calendarColorStyle = props.calendarColorStyle;
342
+ if (onDenied && onDenied.readOnly) return null;
343
+
344
+ if (showCalendarInDialog) {
345
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
346
+ dialogSize: dialogSize,
347
+ handlerClose: function handlerClose() {
348
+ return setShowCalendar(false);
349
+ }
350
+ }, getCalendar(value, calendarColorStyle, changing));
351
+ }
352
+
353
+ return /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
354
+ targetElement: inputContainerRef.current,
355
+ topPosition: inputDimensions.top + inputDimensions.height + 5,
356
+ leftPosition: inputDimensions.left,
357
+ width: inputDimensions.width,
358
+ dropdownRef: function dropdownRef(el) {
359
+ dropdownCalendarContainer.current = el;
360
+ }
361
+ }, getCalendar(value, calendarColorStyle, changing));
362
+ };
363
+
364
+ var getWrapperComponentPeriodSelection = function getWrapperComponentPeriodSelection() {
365
+ var showCalendarInDialog = props.showCalendarInDialog,
366
+ dialogSize = props.dialogSize;
367
+
368
+ if (showCalendarInDialog) {
369
+ return /*#__PURE__*/_react["default"].createElement(_Dialog["default"], {
370
+ dialogSize: dialogSize,
371
+ handlerClose: function handlerClose() {
372
+ return setShowPeriodSelection(false);
373
+ }
374
+ }, getPeriodSelection(valuePeriodSelection, setPeridDates));
375
+ }
376
+
377
+ return /*#__PURE__*/_react["default"].createElement(_Dropdown["default"], {
378
+ targetElement: inputContainerRef.current,
379
+ topPosition: inputDimensions.top + inputDimensions.height + 5,
380
+ leftPosition: inputDimensions.left,
381
+ width: inputDimensions.width,
382
+ dropdownRef: function dropdownRef(el) {
383
+ dropdownPeriodContainer.current = el;
384
+ }
385
+ }, getPeriodSelection(valuePeriodSelection, setPeridDates));
386
+ };
387
+
388
+ var required = props.required,
389
+ label = props.label,
390
+ customClassForLabel = props.customClassForLabel,
391
+ labelUppercase = props.labelUppercase,
392
+ errorMessages = props.errorMessages;
393
+ if (onDenied && onDenied.unvisible) return null;
394
+ return /*#__PURE__*/_react["default"].createElement("div", {
395
+ className: "input-base-component"
396
+ }, label && /*#__PURE__*/_react["default"].createElement("div", {
397
+ className: "labelcontainer"
398
+ }, /*#__PURE__*/_react["default"].createElement("span", {
399
+ className: "label ".concat(customClassForLabel, " ").concat(labelUppercase && ' -uppercase')
400
+ }, label, required && /*#__PURE__*/_react["default"].createElement("span", {
401
+ className: "-requiredlabel"
402
+ }, "*"))), /*#__PURE__*/_react["default"].createElement("div", {
403
+ className: "periodpicker-component ".concat(helperBase.getInputWrapperClass(_extends({}, props, {
404
+ disabled: shouldDisable()
405
+ }))),
406
+ ref: function ref(el) {
407
+ inputContainerRef.current = el;
408
+ }
409
+ }, /*#__PURE__*/_react["default"].createElement(_BaseMask["default"], {
410
+ permissionAttr: props.permissionAttr,
411
+ name: "valueInitial",
412
+ value: !valueInitial ? '' : valueInitial.format('DD/MM/YYYY'),
413
+ mask: "00/00/0000",
414
+ onComplete: function onComplete(e, date) {
415
+ setValue(e, date, false);
416
+ },
417
+ onFocus: onInputFocus,
418
+ onChange: onInputChange,
419
+ inputRef: function inputRef(el) {
420
+ inputInitialRef.current = el;
421
+ },
422
+ handlerSetOnDenied: function handlerSetOnDenied(value) {
423
+ return setOnDenied(value);
424
+ },
425
+ required: required
426
+ }), /*#__PURE__*/_react["default"].createElement(_icons["default"], {
427
+ name: "arrow_right",
428
+ customClass: "separation_icon"
429
+ }), /*#__PURE__*/_react["default"].createElement(_BaseMask["default"], {
430
+ permissionAttr: props.permissionAttr,
431
+ name: "valueFinal",
432
+ value: !valueFinal ? '' : valueFinal.format('DD/MM/YYYY'),
433
+ mask: "00/00/0000",
434
+ onComplete: function onComplete(e, date) {
435
+ return setValue(e, date, false);
436
+ },
437
+ onFocus: onInputFocus,
438
+ onChange: onInputChange,
439
+ inputRef: function inputRef(el) {
440
+ inputFinalRef.current = el;
441
+ },
442
+ handlerSetOnDenied: function handlerSetOnDenied(value) {
443
+ return setOnDenied(value);
444
+ },
445
+ required: required
446
+ }), getButtonOpen(), getButtonSelectPeriod()), showCalendar && getWrapperComponentCalendar(), showPeriodSelection && getWrapperComponentPeriodSelection(), helperBase.getErrorMessages(errorMessages));
447
+ };
448
+
449
+ PeriodPicker.propTypes = {
450
+ label: _propTypes["default"].string,
451
+ value: _propTypes["default"].object,
452
+ customClassForLabel: _propTypes["default"].string,
453
+ labelUppercase: _propTypes["default"].string,
454
+ showButtonOpen: _propTypes["default"].bool,
455
+ shouldCloseOnSelect: _propTypes["default"].bool,
456
+ openOnFocus: _propTypes["default"].bool,
457
+ showCalendarInDialog: _propTypes["default"].bool,
458
+ dialogSize: _propTypes["default"].object,
459
+ calendarColorStyle: _propTypes["default"].oneOf(['', _colorStyles["default"].PRIMARY, _colorStyles["default"].SUCCESS, _colorStyles["default"].WARNING, _colorStyles["default"].INFO, _colorStyles["default"].DANGER]),
460
+ required: _propTypes["default"].bool,
461
+ onChange: _propTypes["default"].func,
462
+ disabled: _propTypes["default"].bool,
463
+ permissionAttr: _propTypes["default"].object,
464
+ errorMessages: _propTypes["default"].arrayOf(_propTypes["default"].string)
465
+ };
466
+ PeriodPicker.defaultProps = {
467
+ value: {
468
+ valueInitial: undefined,
469
+ valueFinal: undefined
470
+ },
471
+ label: undefined,
472
+ customClassForLabel: undefined,
473
+ labelUppercase: undefined,
474
+ showButtonOpen: true,
475
+ openOnFocus: true,
476
+ shouldCloseOnSelect: true,
477
+ showCalendarInDialog: false,
478
+ dialogSize: {
479
+ width: '350px',
480
+ height: '350px'
481
+ },
482
+ calendarColorStyle: '',
483
+ required: false,
484
+ onChange: undefined,
485
+ disabled: false,
486
+ permissionAttr: undefined,
487
+ errorMessages: []
488
+ };
489
+ var _default = PeriodPicker;
490
+ exports["default"] = _default;
@@ -105,9 +105,6 @@ var Dropdown = function Dropdown(_ref) {
105
105
  onFocus: function onFocus() {
106
106
  handleOnFocus();
107
107
  },
108
- onBlur: function onBlur() {
109
- handleOnBlur();
110
- },
111
108
  onChange: function onChange(e) {
112
109
  handleOnFilter(e.target.value);
113
110
  },
@@ -132,7 +129,10 @@ var Dropdown = function Dropdown(_ref) {
132
129
  tabIndex: "-1",
133
130
  onKeyPress: function onKeyPress() {},
134
131
  onClick: function onClick() {
135
- if (!disabled) handleOnSelect(item);
132
+ if (!disabled) {
133
+ handleOnSelect(item);
134
+ handleOnBlur(item);
135
+ }
136
136
  }
137
137
  }, item.iconName && /*#__PURE__*/_react["default"].createElement(_icons["default"], {
138
138
  name: item.iconName,
@@ -15,17 +15,40 @@ var _simple = _interopRequireDefault(require("./simple"));
15
15
 
16
16
  require("../../assets/styles/select.scss");
17
17
 
18
+ var _gridlayout = _interopRequireDefault(require("../../gridlayout"));
19
+
20
+ var _excluded = ["gridLayout", "multiple"];
21
+
18
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
19
23
 
24
+ 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; }
25
+
26
+ 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; }
27
+
20
28
  var SelectField = function SelectField(props) {
21
- return props.multiple ? /*#__PURE__*/_react["default"].createElement(_multiple["default"], props) : /*#__PURE__*/_react["default"].createElement(_simple["default"], props);
29
+ var gridLayout = props.gridLayout,
30
+ multiple = props.multiple,
31
+ newProps = _objectWithoutProperties(props, _excluded);
32
+
33
+ var component = multiple ? /*#__PURE__*/_react["default"].createElement(_multiple["default"], newProps) : /*#__PURE__*/_react["default"].createElement(_simple["default"], newProps);
34
+
35
+ if (gridLayout !== undefined) {
36
+ return /*#__PURE__*/_react["default"].createElement(_gridlayout["default"], {
37
+ customClass: "-withinput",
38
+ cols: gridLayout
39
+ }, component);
40
+ }
41
+
42
+ return component;
22
43
  };
23
44
 
24
45
  SelectField.propTypes = {
25
- multiple: _propTypes["default"].bool
46
+ multiple: _propTypes["default"].bool,
47
+ gridLayout: _propTypes["default"].string
26
48
  };
27
49
  SelectField.defaultProps = {
28
- multiple: false
50
+ multiple: false,
51
+ gridLayout: undefined
29
52
  };
30
53
  var _default = SelectField;
31
54
  exports["default"] = _default;
@@ -84,6 +84,7 @@ var MultipleSelect = /*#__PURE__*/function (_Component) {
84
84
  _this.componentId = "select-component".concat(_uuid["default"].v1());
85
85
  _this.componentRef = /*#__PURE__*/_react["default"].createRef();
86
86
  _this.state = {
87
+ valueFromProps: null,
87
88
  dataCombo: props.dataSource,
88
89
  currents: [],
89
90
  selected: null,
@@ -385,18 +386,19 @@ Object.defineProperty(MultipleSelect, "getDerivedStateFromProps", {
385
386
  value = props.value,
386
387
  idKey = props.idKey;
387
388
 
388
- if (dataSource !== state.dataCombo) {
389
- var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
390
- return {
391
- dataCombo: dataCombo,
392
- selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
393
- };
394
- } else if (value !== null && dataSource.length > 0) {
389
+ if (value !== state.valueFromProps && dataSource.length > 0) {
395
390
  return {
391
+ valueFromProps: value,
396
392
  currents: dataSource.filter(function (item) {
397
393
  return value.includes(item[idKey]);
398
394
  })
399
395
  };
396
+ } else if (dataSource !== state.dataCombo) {
397
+ var dataCombo = remoteSearch ? dataSource : (0, _helper.getFilteredMultipleDataCombo)(_extends({}, props, state));
398
+ return {
399
+ dataCombo: dataCombo,
400
+ selected: dataSource.length > 0 && remoteSearch ? dataSource[0] : null
401
+ };
400
402
  }
401
403
 
402
404
  return null;
@@ -127,9 +127,6 @@ var SimpleSelect = /*#__PURE__*/function (_Component) {
127
127
  onFocus: function onFocus() {
128
128
  _this2.onFocus();
129
129
  },
130
- onBlur: function onBlur(e) {
131
- _this2.onBlur(e);
132
- },
133
130
  onChange: function onChange(e) {
134
131
  _this2.onFilter(e.target.value);
135
132
  },
@@ -293,18 +290,11 @@ var _initialiseProps = function _initialiseProps() {
293
290
  enumerable: true,
294
291
  writable: true,
295
292
  value: function value(selected) {
296
- var _this3$props2 = _this3.props,
297
- onChange = _this3$props2.onChange,
298
- idKey = _this3$props2.idKey,
299
- name = _this3$props2.name;
293
+ var onChange = _this3.props.onChange;
300
294
 
301
295
  if (onChange) {
302
- var event = {
303
- target: {
304
- name: name,
305
- value: selected ? selected[idKey] : undefined
306
- }
307
- };
296
+ var event = _this3.getSelectEvent(selected);
297
+
308
298
  onChange(event);
309
299
  }
310
300
  }
@@ -364,9 +354,15 @@ var _initialiseProps = function _initialiseProps() {
364
354
  configurable: true,
365
355
  enumerable: true,
366
356
  writable: true,
367
- value: function value(e) {
357
+ value: function value(selected) {
368
358
  var onBlur = _this3.props.onBlur;
369
- if (onBlur) onBlur(e);
359
+
360
+ if (onBlur) {
361
+ var event = _this3.getSelectEvent(selected);
362
+
363
+ onBlur(event);
364
+ }
365
+
370
366
  if (!_this3.state.insideComponent) _this3.setState({
371
367
  opened: false,
372
368
  isTyping: false
@@ -378,9 +374,9 @@ var _initialiseProps = function _initialiseProps() {
378
374
  enumerable: true,
379
375
  writable: true,
380
376
  value: function value(e) {
381
- var _this3$props3 = _this3.props,
382
- dataSource = _this3$props3.dataSource,
383
- idKey = _this3$props3.idKey;
377
+ var _this3$props2 = _this3.props,
378
+ dataSource = _this3$props2.dataSource,
379
+ idKey = _this3$props2.idKey;
384
380
  var _this3$state = _this3.state,
385
381
  selected = _this3$state.selected,
386
382
  isTyping = _this3$state.isTyping;
@@ -421,6 +417,22 @@ var _initialiseProps = function _initialiseProps() {
421
417
  });
422
418
  }
423
419
  });
420
+ Object.defineProperty(this, "getSelectEvent", {
421
+ configurable: true,
422
+ enumerable: true,
423
+ writable: true,
424
+ value: function value(selected) {
425
+ var _this3$props3 = _this3.props,
426
+ idKey = _this3$props3.idKey,
427
+ name = _this3$props3.name;
428
+ return {
429
+ target: {
430
+ name: name,
431
+ value: selected ? selected[idKey] : undefined
432
+ }
433
+ };
434
+ }
435
+ });
424
436
  Object.defineProperty(this, "setOnDenied", {
425
437
  configurable: true,
426
438
  enumerable: true,