linear-react-components-ui 0.4.76-rc.9 → 0.4.76

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 (120) 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 +40 -5
  5. package/lib/assets/styles/button.scss +19 -10
  6. package/lib/assets/styles/checkbox.scss +92 -70
  7. package/lib/assets/styles/commons.scss +36 -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 +32 -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/list.scss +8 -0
  16. package/lib/assets/styles/multiSelect.scss +105 -0
  17. package/lib/assets/styles/panel.scss +3 -1
  18. package/lib/assets/styles/periodpicker.scss +65 -0
  19. package/lib/assets/styles/progress.scss +8 -1
  20. package/lib/assets/styles/radio.scss +19 -0
  21. package/lib/assets/styles/select.scss +4 -3
  22. package/lib/assets/styles/sidenav.scss +11 -1
  23. package/lib/assets/styles/skeleton.scss +48 -0
  24. package/lib/assets/styles/table.scss +25 -5
  25. package/lib/assets/styles/tabs.scss +116 -75
  26. package/lib/assets/styles/treeview.scss +41 -0
  27. package/lib/assets/styles/uitour.scss +112 -0
  28. package/lib/avatar/avatar.spec.js +17 -6
  29. package/lib/avatar/index.js +1 -1
  30. package/lib/buttons/DefaultButton.js +13 -4
  31. package/lib/buttons/split_button/index.js +8 -4
  32. package/lib/checkbox/Label.js +37 -0
  33. package/lib/checkbox/checkbox.spec.js +16 -16
  34. package/lib/checkbox/index.js +33 -12
  35. package/lib/dialog/base/index.js +15 -6
  36. package/lib/dialog/form/index.js +24 -4
  37. package/lib/drawer/Drawer.js +9 -5
  38. package/lib/drawer/Header.js +15 -5
  39. package/lib/drawer/index.js +4 -1
  40. package/lib/dropdown/Popup.js +3 -2
  41. package/lib/form/Field.js +2 -0
  42. package/lib/form/FieldNumber.js +11 -3
  43. package/lib/form/FieldPeriod.js +100 -0
  44. package/lib/form/form.spec.js +8 -0
  45. package/lib/form/helpers.js +20 -1
  46. package/lib/form/index.js +220 -218
  47. package/lib/form/withFieldHOC.js +5 -1
  48. package/lib/form/withFormSecurity.js +106 -0
  49. package/lib/icons/helper.js +24 -0
  50. package/lib/inputs/base/InputTextBase.js +30 -5
  51. package/lib/inputs/base/helpers.js +13 -9
  52. package/lib/inputs/date/Dropdown.js +3 -3
  53. package/lib/inputs/date/date.spec.js +46 -36
  54. package/lib/inputs/date/helpers.js +36 -0
  55. package/lib/inputs/date/index.js +12 -10
  56. package/lib/inputs/mask/Phone.js +10 -1
  57. package/lib/inputs/mask/imaskHOC.js +2 -1
  58. package/lib/inputs/mask/input_mask.spec.js +21 -4
  59. package/lib/inputs/multiSelect/ActionButtons.js +68 -0
  60. package/lib/inputs/multiSelect/Dropdown.js +200 -0
  61. package/lib/inputs/multiSelect/helper.js +18 -0
  62. package/lib/inputs/multiSelect/index.js +343 -0
  63. package/lib/inputs/number/BaseNumber.js +1 -1
  64. package/lib/inputs/number/index.js +7 -5
  65. package/lib/inputs/period/Dialog.js +38 -0
  66. package/lib/inputs/period/Dropdown.js +90 -0
  67. package/lib/inputs/period/PeriodList.js +79 -0
  68. package/lib/inputs/period/helper.js +118 -0
  69. package/lib/inputs/period/index.js +490 -0
  70. package/lib/inputs/search/index.js +2 -0
  71. package/lib/inputs/select/Dropdown.js +55 -65
  72. package/lib/inputs/select/helper.js +65 -2
  73. package/lib/inputs/select/index.js +26 -3
  74. package/lib/inputs/select/multiple/index.js +16 -11
  75. package/lib/inputs/select/simple/index.js +39 -24
  76. package/lib/internals/constants.js +4 -3
  77. package/lib/internals/withTooltip.js +86 -82
  78. package/lib/labels/DefaultLabel.js +7 -4
  79. package/lib/list/Item.js +35 -9
  80. package/lib/list/helpers.js +8 -3
  81. package/lib/list/index.js +172 -14
  82. package/lib/list/list.spec.js +290 -89
  83. package/lib/menus/float/MenuItem.js +25 -8
  84. package/lib/menus/sidenav/NavMenuItem.js +17 -8
  85. package/lib/menus/sidenav/index.js +59 -86
  86. package/lib/menus/sidenav/popup_menu_search/index.js +26 -17
  87. package/lib/menus/sidenav/sidenav.spec.js +86 -19
  88. package/lib/panel/Header.js +4 -3
  89. package/lib/progress/Bar.js +40 -9
  90. package/lib/progress/index.js +12 -4
  91. package/lib/radio/index.js +9 -6
  92. package/lib/skeleton/SkeletonContainer.js +42 -0
  93. package/lib/skeleton/index.js +84 -0
  94. package/lib/spinner/index.js +6 -1
  95. package/lib/split/Split.js +5 -11
  96. package/lib/table/Body.js +55 -11
  97. package/lib/table/Header.js +14 -1
  98. package/lib/table/HeaderColumn.js +26 -3
  99. package/lib/table/Row.js +19 -8
  100. package/lib/table/RowColumn.js +23 -3
  101. package/lib/table/helpers.js +11 -1
  102. package/lib/table/index.js +41 -8
  103. package/lib/tabs/DropdownItems.js +84 -0
  104. package/lib/tabs/Menu.js +12 -9
  105. package/lib/tabs/MenuItems.js +15 -9
  106. package/lib/tabs/Panel.js +1 -3
  107. package/lib/tabs/index.js +156 -22
  108. package/lib/tabs/tabs.spec.js +8 -5
  109. package/lib/toolbar/ButtonBar.js +30 -24
  110. package/lib/toolbar/LabelBar.js +22 -27
  111. package/lib/toolbar/helpers.js +12 -0
  112. package/lib/toolbar/index.js +24 -9
  113. package/lib/tooltip/index.js +20 -7
  114. package/lib/treeview/Node.js +364 -49
  115. package/lib/treeview/index.js +475 -36
  116. package/lib/treeview/treeview.spec.js +18 -0
  117. package/lib/uitour/helpers.js +15 -0
  118. package/lib/uitour/index.js +271 -0
  119. package/lib/uitour/uitour.spec.js +176 -0
  120. 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;
@@ -301,6 +301,7 @@ SearchField.propTypes = {
301
301
  disabled: _propTypes["default"].bool,
302
302
  readOnly: _propTypes["default"].bool,
303
303
  value: _propTypes["default"].string,
304
+ placeHolder: _propTypes["default"].string,
304
305
  permissionAttr: _propTypes["default"].oneOfType([_propTypes["default"].object, _propTypes["default"].arrayOf(_propTypes["default"].object)])
305
306
  };
306
307
  SearchField.defaultProps = {
@@ -312,6 +313,7 @@ SearchField.defaultProps = {
312
313
  disabled: false,
313
314
  readOnly: false,
314
315
  value: undefined,
316
+ placeHolder: '',
315
317
  permissionAttr: undefined
316
318
  };
317
319
  var _default = SearchField;
@@ -17,6 +17,8 @@ var _avatar = _interopRequireDefault(require("../../avatar"));
17
17
 
18
18
  var helper = _interopRequireWildcard(require("./helper"));
19
19
 
20
+ var _Popup = _interopRequireDefault(require("../../dropdown/Popup"));
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { "default": obj }; }
21
23
 
22
24
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -37,77 +39,59 @@ function _iterableToArrayLimit(arr, i) { var _i = arr && (typeof Symbol !== "und
37
39
 
38
40
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
39
41
 
40
- var returnDropdownDynamicStyles = function returnDropdownDynamicStyles(selectFieldRef, dropdownMaxHeight) {
41
- var selectFieldRects = selectFieldRef.current.getBoundingClientRect();
42
- var dropdownBottomDistance = window.innerHeight - selectFieldRects.bottom;
43
- var maxDropdownBottomDistance = 200;
44
- var height = dropdownMaxHeight;
45
- var dropdownPosition;
46
-
47
- if (!height || height <= 0) {
48
- if (dropdownBottomDistance < maxDropdownBottomDistance) {
49
- height = selectFieldRects.top;
50
- dropdownPosition = window.innerHeight - selectFieldRef.current.offsetTop + 10;
51
- } else {
52
- height = dropdownBottomDistance;
53
- }
54
- } else {
55
- maxDropdownBottomDistance = height;
56
-
57
- if (dropdownBottomDistance < maxDropdownBottomDistance) {
58
- dropdownPosition = window.innerHeight - selectFieldRef.current.offsetTop + 10;
42
+ var Dropdown = function Dropdown(props) {
43
+ var dataCombo = props.dataCombo,
44
+ dropdownWidth = props.dropdownWidth,
45
+ selected = props.selected,
46
+ handleOnSelect = props.handleOnSelect,
47
+ handleOnFilter = props.handleOnFilter,
48
+ searchOnDropdown = props.searchOnDropdown,
49
+ handleOnKeydown = props.handleOnKeydown,
50
+ searchNotFoundText = props.searchNotFoundText,
51
+ handleOnBlur = props.handleOnBlur,
52
+ handleOnFocus = props.handleOnFocus,
53
+ opened = props.opened,
54
+ idKey = props.idKey,
55
+ descriptionKey = props.descriptionKey,
56
+ currents = props.currents,
57
+ imageAlign = props.imageAlign,
58
+ striped = props.striped,
59
+ imgSrcKey = props.imgSrcKey,
60
+ gridWrapperStyle = props.gridWrapperStyle,
61
+ inputValue = props.inputValue,
62
+ dropdownRef = props.dropdownRef;
63
+
64
+ var _useState = (0, _react.useState)(helper.returnDropdownDynamicStyles(_extends({}, props))),
65
+ _useState2 = _slicedToArray(_useState, 2),
66
+ dropdownDynamicStyles = _useState2[0],
67
+ setDropdownDynamicStyles = _useState2[1];
68
+
69
+ (0, _react.useEffect)(function () {
70
+ if (dropdownRef.current) {
71
+ setDropdownDynamicStyles(helper.returnDropdownDynamicStyles(_extends({}, props)));
59
72
  }
60
- }
61
-
62
- return {
63
- maxHeight: "".concat(height - 30, "px"),
64
- bottom: dropdownBottomDistance < maxDropdownBottomDistance && "".concat(dropdownPosition, "px")
65
- };
66
- };
67
-
68
- var Dropdown = function Dropdown(_ref) {
69
- var dataCombo = _ref.dataCombo,
70
- dropdownWidth = _ref.dropdownWidth,
71
- selected = _ref.selected,
72
- handleOnSelect = _ref.handleOnSelect,
73
- handleOnFilter = _ref.handleOnFilter,
74
- searchOnDropdown = _ref.searchOnDropdown,
75
- handleOnKeydown = _ref.handleOnKeydown,
76
- searchNotFoundText = _ref.searchNotFoundText,
77
- handleOnBlur = _ref.handleOnBlur,
78
- handleOnFocus = _ref.handleOnFocus,
79
- opened = _ref.opened,
80
- idKey = _ref.idKey,
81
- descriptionKey = _ref.descriptionKey,
82
- currents = _ref.currents,
83
- imageAlign = _ref.imageAlign,
84
- striped = _ref.striped,
85
- imgSrcKey = _ref.imgSrcKey,
86
- gridWrapperStyle = _ref.gridWrapperStyle,
87
- selectFieldRef = _ref.selectFieldRef,
88
- dropdownMaxHeight = _ref.dropdownMaxHeight;
89
-
90
- var _useState = (0, _react.useState)(returnDropdownDynamicStyles(selectFieldRef, dropdownMaxHeight)),
91
- _useState2 = _slicedToArray(_useState, 1),
92
- dropdownDynamicStyles = _useState2[0];
93
-
94
- return /*#__PURE__*/_react["default"].createElement("div", {
95
- className: "dropdown",
96
- style: _extends({
73
+ }, [dropdownRef.current, dataCombo]);
74
+ return /*#__PURE__*/_react["default"].createElement(_Popup["default"], {
75
+ leftPosition: dropdownDynamicStyles.left,
76
+ topPosition: dropdownDynamicStyles.top,
77
+ minWidth: dropdownWidth
78
+ }, /*#__PURE__*/_react["default"].createElement("div", {
79
+ className: "select-dropdown",
80
+ ref: dropdownRef,
81
+ style: {
97
82
  width: dropdownWidth,
98
- marginLeft: gridWrapperStyle ? gridWrapperStyle.paddingLeft : '0'
99
- }, dropdownDynamicStyles)
83
+ marginLeft: gridWrapperStyle ? gridWrapperStyle.paddingLeft : '0',
84
+ maxHeight: dropdownDynamicStyles.maxHeight
85
+ }
100
86
  }, searchOnDropdown && /*#__PURE__*/_react["default"].createElement("div", {
101
87
  className: "filtercontainer"
102
88
  }, /*#__PURE__*/_react["default"].createElement("input", {
103
89
  className: "filterinput",
104
90
  type: "text",
91
+ value: inputValue,
105
92
  onFocus: function onFocus() {
106
93
  handleOnFocus();
107
94
  },
108
- onBlur: function onBlur() {
109
- handleOnBlur();
110
- },
111
95
  onChange: function onChange(e) {
112
96
  handleOnFilter(e.target.value);
113
97
  },
@@ -132,7 +116,10 @@ var Dropdown = function Dropdown(_ref) {
132
116
  tabIndex: "-1",
133
117
  onKeyPress: function onKeyPress() {},
134
118
  onClick: function onClick() {
135
- if (!disabled) handleOnSelect(item);
119
+ if (!disabled) {
120
+ handleOnSelect(item);
121
+ handleOnBlur(item);
122
+ }
136
123
  }
137
124
  }, item.iconName && /*#__PURE__*/_react["default"].createElement(_icons["default"], {
138
125
  name: item.iconName,
@@ -151,7 +138,7 @@ var Dropdown = function Dropdown(_ref) {
151
138
  }, item[descriptionKey])));
152
139
  }), dataCombo.length === 0 && /*#__PURE__*/_react["default"].createElement("div", {
153
140
  className: "notfound"
154
- }, searchNotFoundText));
141
+ }, searchNotFoundText)));
155
142
  };
156
143
 
157
144
  Dropdown.propTypes = {
@@ -169,12 +156,14 @@ Dropdown.propTypes = {
169
156
  handleOnBlur: _propTypes["default"].func.isRequired,
170
157
  handleOnFocus: _propTypes["default"].func.isRequired,
171
158
  opened: _propTypes["default"].bool.isRequired,
159
+ dropdownRef: _propTypes["default"].object.isRequired,
172
160
  currents: _propTypes["default"].arrayOf(_propTypes["default"].object),
173
161
  imageAlign: _propTypes["default"].oneOf(['left', 'right']),
174
162
  striped: _propTypes["default"].bool,
175
163
  gridWrapperStyle: _propTypes["default"].object,
176
164
  selectFieldRef: _propTypes["default"].object,
177
- dropdownMaxHeight: _propTypes["default"].number
165
+ dropdownMaxHeight: _propTypes["default"].number,
166
+ inputValue: _propTypes["default"].string
178
167
  };
179
168
  Dropdown.defaultProps = {
180
169
  selected: null,
@@ -184,7 +173,8 @@ Dropdown.defaultProps = {
184
173
  imgSrcKey: undefined,
185
174
  gridWrapperStyle: undefined,
186
175
  selectFieldRef: undefined,
187
- dropdownMaxHeight: undefined
176
+ dropdownMaxHeight: undefined,
177
+ inputValue: undefined
188
178
  };
189
179
  var _default = Dropdown;
190
180
  exports["default"] = _default;