linear-react-components-ui 1.1.20-rc.2 → 1.1.20

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 (149) hide show
  1. package/lib/alerts/BaseAlert.js +1 -1
  2. package/lib/alerts/Message.js +1 -1
  3. package/lib/assets/styles/calendar.scss +64 -30
  4. package/lib/assets/styles/datepicker.scss +26 -6
  5. package/lib/assets/styles/periodpicker.scss +60 -20
  6. package/lib/assets/styles/sidenav.scss +1 -1
  7. package/lib/assets/styles/tabs.scss +32 -15
  8. package/lib/avatar/index.js +9 -8
  9. package/lib/badge/index.js +4 -4
  10. package/lib/buttons/DangerButton.js +1 -1
  11. package/lib/buttons/DefaultButton.js +12 -4
  12. package/lib/buttons/InfoButton.js +1 -1
  13. package/lib/buttons/PrimaryButton.js +1 -1
  14. package/lib/buttons/SuccessButton.js +1 -1
  15. package/lib/buttons/WarningButton.js +1 -1
  16. package/lib/buttons/button_container/index.js +1 -1
  17. package/lib/buttons/split_button/index.js +1 -1
  18. package/lib/calendar/DangerCalendar.d.ts +1 -0
  19. package/lib/calendar/InfoCalendar.d.ts +1 -0
  20. package/lib/calendar/PrimaryCalendar.d.ts +1 -0
  21. package/lib/calendar/SuccessCalendar.d.ts +1 -0
  22. package/lib/calendar/WarningCalendar.d.ts +1 -0
  23. package/lib/calendar/base/Day.d.ts +1 -0
  24. package/lib/calendar/base/Day.js +6 -2
  25. package/lib/calendar/base/Month.d.ts +2 -1
  26. package/lib/calendar/base/Month.js +3 -1
  27. package/lib/calendar/base/Week.d.ts +1 -0
  28. package/lib/calendar/base/helpers.js +2 -2
  29. package/lib/calendar/base/index.d.ts +1 -0
  30. package/lib/calendar/base/index.js +62 -14
  31. package/lib/calendar/index.d.ts +1 -0
  32. package/lib/calendar/types.d.ts +5 -0
  33. package/lib/checkbox/index.js +1 -1
  34. package/lib/dialog/Custom.js +1 -1
  35. package/lib/dialog/Question.js +2 -4
  36. package/lib/dialog/base/Content.js +6 -5
  37. package/lib/dialog/base/Header.js +2 -3
  38. package/lib/dialog/base/index.js +30 -8
  39. package/lib/dialog/form/index.js +1 -1
  40. package/lib/dialog/wizard/progressbar.js +1 -1
  41. package/lib/dialog/wizard/step.js +1 -1
  42. package/lib/drawer/Drawer.js +4 -4
  43. package/lib/drawer/Header.js +1 -1
  44. package/lib/dropdown/Popup.d.ts +2 -2
  45. package/lib/dropdown/Popup.js +7 -7
  46. package/lib/dropdown/helper.js +1 -1
  47. package/lib/dropdown/types.d.ts +4 -4
  48. package/lib/dropdown/withDropdown.js +2 -2
  49. package/lib/fieldset/index.js +7 -7
  50. package/lib/form/FieldArray.js +1 -1
  51. package/lib/form/FieldNumber.js +3 -3
  52. package/lib/form/FieldPeriod.js +2 -2
  53. package/lib/form/index.js +2 -2
  54. package/lib/gridlayout/GridCol.js +5 -5
  55. package/lib/gridlayout/GridRow.js +4 -1
  56. package/lib/hint/index.js +7 -1
  57. package/lib/icons/index.js +24 -27
  58. package/lib/inputs/base/InputTextBase.js +15 -10
  59. package/lib/inputs/base/Label.js +1 -1
  60. package/lib/inputs/base/helpers.js +7 -3
  61. package/lib/inputs/base/types.d.ts +2 -0
  62. package/lib/inputs/date/Dialog.js +5 -4
  63. package/lib/inputs/date/Dropdown.js +13 -7
  64. package/lib/inputs/date/helpers.d.ts +1 -11
  65. package/lib/inputs/date/helpers.js +1 -11
  66. package/lib/inputs/date/index.js +130 -104
  67. package/lib/inputs/date/types.d.ts +7 -6
  68. package/lib/inputs/errorMessage/index.js +1 -1
  69. package/lib/inputs/file/DefaultFile.js +5 -6
  70. package/lib/inputs/file/DragDropFile.js +15 -17
  71. package/lib/inputs/file/File.js +3 -4
  72. package/lib/inputs/mask/BaseMask.js +1 -2
  73. package/lib/inputs/multiSelect/Dropdown.js +9 -10
  74. package/lib/inputs/multiSelect/helper.js +1 -2
  75. package/lib/inputs/multiSelect/index.js +7 -9
  76. package/lib/inputs/number/BaseNumber.js +1 -1
  77. package/lib/inputs/number/index.js +1 -2
  78. package/lib/inputs/period/Dialog.d.ts +1 -1
  79. package/lib/inputs/period/Dialog.js +5 -3
  80. package/lib/inputs/period/Dropdown.js +16 -8
  81. package/lib/inputs/period/PeriodList.js +3 -12
  82. package/lib/inputs/period/helper.js +3 -1
  83. package/lib/inputs/period/index.js +217 -86
  84. package/lib/inputs/period/types.d.ts +10 -8
  85. package/lib/inputs/search/index.js +1 -1
  86. package/lib/inputs/select/ActionButtons.js +3 -2
  87. package/lib/inputs/select/Dropdown.js +5 -3
  88. package/lib/inputs/select/helper.js +10 -13
  89. package/lib/inputs/select/multiple/Selecteds.js +1 -1
  90. package/lib/inputs/select/multiple/index.js +18 -17
  91. package/lib/inputs/select/simple/index.js +19 -20
  92. package/lib/inputs/select/types.d.ts +4 -0
  93. package/lib/inputs/textarea/index.js +1 -1
  94. package/lib/inputs/types.d.ts +1 -0
  95. package/lib/internals/withTooltip.js +9 -9
  96. package/lib/labelMessages/index.js +4 -3
  97. package/lib/labels/DefaultLabel.js +4 -1
  98. package/lib/labels/label_container/index.js +1 -1
  99. package/lib/list/Header.js +1 -1
  100. package/lib/list/Item.js +10 -9
  101. package/lib/list/index.js +2 -1
  102. package/lib/menus/float/MenuItem.js +2 -2
  103. package/lib/menus/float/SubMenuContainer.js +1 -1
  104. package/lib/menus/float/index.js +1 -1
  105. package/lib/menus/sidenav/ExpandMenu.js +1 -1
  106. package/lib/menus/sidenav/NavMenuGroup.js +1 -1
  107. package/lib/menus/sidenav/NavMenuItem.js +7 -9
  108. package/lib/menus/sidenav/NavSubMenuItem.js +1 -1
  109. package/lib/menus/sidenav/helpers.js +1 -1
  110. package/lib/menus/sidenav/index.js +5 -5
  111. package/lib/panel/Content.js +5 -7
  112. package/lib/panel/Default.js +2 -2
  113. package/lib/panel/Header.js +3 -3
  114. package/lib/permissionValidations.js +1 -1
  115. package/lib/popover/index.js +1 -1
  116. package/lib/progress/Bar.js +6 -6
  117. package/lib/radio/index.js +2 -2
  118. package/lib/shortcuts/index.js +1 -1
  119. package/lib/skeleton/SkeletonContainer.js +2 -1
  120. package/lib/skeleton/index.js +4 -1
  121. package/lib/spinner/index.js +2 -2
  122. package/lib/split/Split.js +1 -1
  123. package/lib/split/SplitSide.js +3 -3
  124. package/lib/table/Body.js +3 -3
  125. package/lib/table/Header.js +8 -11
  126. package/lib/table/HeaderColumn.js +1 -1
  127. package/lib/table/Row.js +3 -3
  128. package/lib/table/RowColumn.js +1 -1
  129. package/lib/table/index.js +6 -1
  130. package/lib/tabs/DropdownTabs.js +21 -7
  131. package/lib/tabs/Menu.js +1 -1
  132. package/lib/tabs/MenuTabs.js +2 -2
  133. package/lib/tabs/Panel.js +5 -7
  134. package/lib/tabs/context.d.ts +1 -1
  135. package/lib/tabs/context.js +6 -9
  136. package/lib/tabs/types.d.ts +2 -1
  137. package/lib/textContent/index.js +1 -1
  138. package/lib/toolbar/ButtonBar.js +1 -1
  139. package/lib/toolbar/index.js +1 -1
  140. package/lib/toolbar/types.d.ts +2 -1
  141. package/lib/tooltip/index.js +7 -7
  142. package/lib/treetable/Body.js +1 -1
  143. package/lib/treetable/Header.js +2 -2
  144. package/lib/treetable/Row.js +9 -9
  145. package/lib/treeview/Header.js +1 -1
  146. package/lib/treeview/Node.js +5 -5
  147. package/lib/treeview/index.js +4 -4
  148. package/lib/uitour/index.js +6 -8
  149. package/package.json +1 -1
@@ -6,23 +6,19 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.default = void 0;
7
7
  var _react = _interopRequireWildcard(require("react"));
8
8
  var _moment = _interopRequireDefault(require("moment"));
9
- var _BaseMask = _interopRequireDefault(require("../mask/BaseMask"));
9
+ var _Dialog = _interopRequireDefault(require("./Dialog"));
10
10
  var _Dropdown = _interopRequireDefault(require("./Dropdown"));
11
- var _calendar = _interopRequireDefault(require("../../calendar"));
12
- require("../../assets/styles/datepicker.scss");
13
- var contants = _interopRequireWildcard(require("../../internals/constants"));
14
11
  var _buttons = _interopRequireDefault(require("../../buttons"));
15
- var _icons = _interopRequireDefault(require("../../icons"));
16
- var _Dialog = _interopRequireDefault(require("./Dialog"));
12
+ var _gridlayout = _interopRequireDefault(require("../../gridlayout"));
13
+ var _calendar = _interopRequireDefault(require("../../calendar"));
14
+ var _BaseMask = _interopRequireDefault(require("../mask/BaseMask"));
17
15
  var _helpers = require("./helpers");
16
+ require("../../assets/styles/datepicker.scss");
18
17
  function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
19
18
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
20
19
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
21
20
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
22
- const CALENDAR_BUTTON_WIDTH = 24;
23
- const CALENDAR_MIN_WIDTH = 250;
24
21
  const DatePicker = props => {
25
- var _window;
26
22
  const {
27
23
  showButtonOpen = true,
28
24
  openOnFocus = true,
@@ -34,69 +30,97 @@ const DatePicker = props => {
34
30
  name = '',
35
31
  inputRef: inputRefProp,
36
32
  dialogSize = {
37
- width: '350px',
38
- height: '350px'
39
- }
33
+ width: '384px',
34
+ height: '384px'
35
+ },
36
+ gridLayout,
37
+ shouldCloseOnEsc = true
40
38
  } = props;
41
39
  const [valueState, setValueState] = (0, _react.useState)(value ? (0, _helpers.getMomentValue)(value) : undefined);
42
- const [valueFromProps, setValueFromProps] = (0, _react.useState)(value);
43
40
  const [showCalendar, setShowCalendar] = (0, _react.useState)(false);
41
+ const [valueFromProps, setValueFromProps] = (0, _react.useState)(value);
44
42
  const [inputDimensions, setInputDimensions] = (0, _react.useState)();
45
- const [formatedLeftPosition, setFormatedLeftPosition] = (0, _react.useState)();
43
+ const [calendarOnDialog, setCalendarOnDialog] = (0, _react.useState)(false);
46
44
  const [onDenied, setOnDenied] = (0, _react.useState)({
47
45
  disabled: false,
48
46
  readOnly: false,
49
47
  unvisible: false,
50
48
  hideContent: false
51
49
  });
52
- const inputRef = (0, _react.useRef)();
50
+ const inputDateRef = (0, _react.useRef)();
53
51
  const buttonOpenRef = (0, _react.useRef)();
54
52
  const dropdownContainer = (0, _react.useRef)();
55
- const [insideDropdown, setInsideDropdown] = (0, _react.useState)(false);
53
+ const currentDateButtonRef = (0, _react.useRef)();
54
+ const calendarContainerRef = (0, _react.useRef)(null);
55
+ const datePickerContainerRef = (0, _react.useRef)(null);
56
56
  const onScreenResize = () => {
57
- var _inputRef$current;
58
- setInputDimensions(inputRef === null || inputRef === void 0 ? void 0 : (_inputRef$current = inputRef.current) === null || _inputRef$current === void 0 ? void 0 : _inputRef$current.getBoundingClientRect());
57
+ setInputDimensions(inputDateRef?.current?.getBoundingClientRect());
59
58
  };
60
- const onClickOutside = event => {
61
- var _buttonOpenRef$curren;
62
- const {
63
- target
64
- } = event;
65
- if (!dropdownContainer || target === inputRef.current || target === buttonOpenRef.current) return;
66
- if (target !== dropdownContainer.current && dropdownContainer && dropdownContainer.current && !dropdownContainer.current.contains(target) && buttonOpenRef && !(buttonOpenRef !== null && buttonOpenRef !== void 0 && (_buttonOpenRef$curren = buttonOpenRef.current) !== null && _buttonOpenRef$curren !== void 0 && _buttonOpenRef$curren.contains(target))) {
59
+ const onCloseDateDialog = () => {
60
+ setShowCalendar(false);
61
+ if (showCalendarInDialog) {
62
+ setTimeout(() => {
63
+ setCalendarOnDialog(false);
64
+ inputDateRef.current?.focus();
65
+ }, 100);
66
+ }
67
+ };
68
+ const onCloseWithoutBlur = event => {
69
+ const focusOnAnotherField = !datePickerContainerRef.current?.contains(event.relatedTarget);
70
+ if (!showCalendarInDialog && showCalendar && focusOnAnotherField) {
67
71
  setShowCalendar(false);
68
72
  }
69
73
  };
74
+ const onKeyDownPress = event => {
75
+ if (shouldCloseOnEsc && showCalendar && event && event.key && event.key === 'Escape') {
76
+ event.preventDefault();
77
+ setShowCalendar(false);
78
+ inputDateRef.current?.focus();
79
+ }
80
+ if (showCalendar && showCalendarInDialog && event && event.key && event.key === 'Tab') {
81
+ const buttonForNavigateCalendar = calendarContainerRef.current?.getElementsByClassName('navbutton');
82
+ const datePicked = calendarContainerRef.current?.getElementsByClassName('-selectedday');
83
+ const buttonDatePicked = datePicked[0].firstChild;
84
+ const buttonsForFocus = Array.from([...buttonForNavigateCalendar, buttonDatePicked]);
85
+ const firstElement = buttonsForFocus[0];
86
+ const lastElement = buttonsForFocus[buttonsForFocus.length - 1];
87
+ if (event.shiftKey && document.activeElement === firstElement) {
88
+ event.preventDefault();
89
+ lastElement.focus();
90
+ } else if (!event.shiftKey && document.activeElement === lastElement) {
91
+ event.preventDefault();
92
+ firstElement.focus();
93
+ }
94
+ }
95
+ event.stopPropagation();
96
+ };
97
+ const keepPositionCalendarByScroll = () => {
98
+ const inputDateDimensions = inputDateRef.current?.getBoundingClientRect();
99
+ const positionTop = inputDateDimensions && inputDateDimensions.bottom;
100
+ if (dropdownContainer && dropdownContainer.current && inputDateDimensions) {
101
+ dropdownContainer.current.style.top = String(positionTop).concat('px');
102
+ }
103
+ };
70
104
  const openCalendar = () => {
71
105
  setShowCalendar(true);
72
- if (inputRef.current) {
73
- setInputDimensions(inputRef.current.getBoundingClientRect());
106
+ if (inputDateRef.current) {
107
+ inputDateRef.current.focus();
108
+ setInputDimensions(inputDateRef.current?.getBoundingClientRect());
74
109
  }
75
- };
76
- const onMouseMove = event => {
77
- const {
78
- target
79
- } = event;
80
- setInsideDropdown(false);
81
- if (dropdownContainer !== undefined && dropdownContainer.current) {
82
- if (target === dropdownContainer.current || dropdownContainer.current.contains(target)) {
83
- setInsideDropdown(true);
84
- }
110
+ if (showCalendarInDialog) {
111
+ setTimeout(() => {
112
+ currentDateButtonRef.current?.focus();
113
+ }, 100);
85
114
  }
86
115
  };
87
116
  const onInputFocus = e => {
88
117
  if (props.onFocus) props.onFocus(e);
89
- if (openOnFocus) openCalendar();
118
+ if (openOnFocus && !showCalendar && !calendarOnDialog) {
119
+ openCalendar();
120
+ }
90
121
  };
91
122
  const onInputBlur = e => {
92
123
  if (props.onBlur) props.onBlur(e);
93
- if (!insideDropdown) setShowCalendar(false);
94
- };
95
- const onInputKeyDown = event => {
96
- if (Number(event.code) === contants.keyCodes.TAB) {
97
- setInsideDropdown(false);
98
- setShowCalendar(false);
99
- }
100
124
  };
101
125
  const isValidDate = date => {
102
126
  if (typeof date === 'object' && !(date instanceof Date)) {
@@ -109,8 +133,7 @@ const DatePicker = props => {
109
133
  const onInputChange = function (event) {
110
134
  let valueInput = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : '';
111
135
  if (typeof valueInput === 'string') {
112
- var _event$target$value;
113
- const date = (_event$target$value = event.target.value) !== null && _event$target$value !== void 0 ? _event$target$value : '';
136
+ const date = event.target.value ?? '';
114
137
  if (props.onChange) {
115
138
  if (isValidDate(date)) {
116
139
  const newValue = (0, _moment.default)(date, _helpers.PT_BR_FORMAT).format(_helpers.EN_US_FORMAT);
@@ -135,11 +158,8 @@ const DatePicker = props => {
135
158
  }
136
159
  }
137
160
  };
138
- const setValue = function () {
139
- var _inputRef$current2;
140
- let valueParam = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : '';
141
- let e = arguments.length > 1 ? arguments[1] : undefined;
142
- if (showCalendar && setFocusOnSelect) (_inputRef$current2 = inputRef.current) === null || _inputRef$current2 === void 0 ? void 0 : _inputRef$current2.focus();
161
+ const setValue = (valueParam, e) => {
162
+ if (showCalendar && setFocusOnSelect) inputDateRef.current?.focus();
143
163
  if (props.onComplete) props.onComplete(e, valueParam);
144
164
  if (props.onChange) onInputChange({
145
165
  target: {
@@ -154,70 +174,51 @@ const DatePicker = props => {
154
174
  const getButtonOpen = () => {
155
175
  if (!showButtonOpen) return undefined;
156
176
  return /*#__PURE__*/_react.default.createElement(_buttons.default, {
157
- key: "button-1313414141",
158
- boxShadow: false,
159
- icon: /*#__PURE__*/_react.default.createElement(_icons.default, {
160
- name: "calendar",
161
- size: 16
162
- }),
177
+ key: "button-open-date-picker",
178
+ disabled: shouldDisable(),
179
+ tabIndex: -1,
180
+ customClass: "calendar-button",
181
+ iconName: "calendar",
182
+ title: showCalendar ? 'Fechar Calendário' : 'Abrir Calendário',
163
183
  onClick: () => {
164
- openCalendar();
184
+ if (showCalendar) {
185
+ setShowCalendar(false);
186
+ } else openCalendar();
165
187
  },
166
- customClass: "calendar-button",
167
- tabIndex: -1,
168
188
  targetRef: ref => {
169
189
  buttonOpenRef.current = ref;
170
- },
171
- disabled: shouldDisable()
190
+ }
172
191
  });
173
192
  };
174
193
  const getCalendar = (valueCalendar, calendarColorStyle) => /*#__PURE__*/_react.default.createElement(_calendar.default, {
194
+ colorStyle: calendarColorStyle,
175
195
  currentDate: valueCalendar !== undefined ? valueCalendar : (0, _moment.default)(),
176
196
  onDateChange: date => {
177
197
  setValue(date.format(_helpers.PT_BR_FORMAT), undefined);
198
+ if (showCalendarInDialog) setCalendarOnDialog(false);
178
199
  },
179
- colorStyle: calendarColorStyle
200
+ currentDateButton: buttonElement => currentDateButtonRef.current = buttonElement,
201
+ calendarContainer: calendarContainer => {
202
+ calendarContainerRef.current = calendarContainer;
203
+ }
180
204
  });
181
- const getWrapperComponent = () => {
205
+ const getCalendarComponent = () => {
182
206
  if (onDenied && onDenied.readOnly) return null;
183
207
  if (showCalendarInDialog) {
184
208
  return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
185
209
  dialogSize: dialogSize,
186
- handlerClose: setShowCalendar
187
- }, getCalendar(valueState, props === null || props === void 0 ? void 0 : props.calendarColorStyle));
210
+ handlerClose: onCloseDateDialog
211
+ }, getCalendar(valueState, props?.calendarColorStyle));
188
212
  }
189
213
  return /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
190
- topPosition: inputDimensions ? inputDimensions.top + inputDimensions.height + 5 : '',
191
- leftPosition: inputDimensions ? formatedLeftPosition : '',
192
- minWidth: CALENDAR_MIN_WIDTH,
193
- width: inputDimensions ? inputDimensions.width + (showButtonOpen ? CALENDAR_BUTTON_WIDTH : 0) : '',
214
+ showButtonOpen: showButtonOpen,
215
+ inputDimensions: inputDimensions,
216
+ containerRef: datePickerContainerRef,
194
217
  dropdownRef: el => {
195
218
  dropdownContainer.current = el;
196
219
  }
197
- }, getCalendar(valueState, props === null || props === void 0 ? void 0 : props.calendarColorStyle));
220
+ }, getCalendar(valueState, props?.calendarColorStyle));
198
221
  };
199
- (0, _react.useEffect)(() => {
200
- const screenWidth = window.innerWidth;
201
- if (inputDimensions && screenWidth < inputDimensions.left + CALENDAR_MIN_WIDTH) {
202
- setFormatedLeftPosition(inputDimensions.left - (CALENDAR_MIN_WIDTH - inputDimensions.width - CALENDAR_BUTTON_WIDTH));
203
- } else {
204
- setFormatedLeftPosition(inputDimensions === null || inputDimensions === void 0 ? void 0 : inputDimensions.left);
205
- }
206
- }, [(_window = window) === null || _window === void 0 ? void 0 : _window.innerWidth, inputDimensions]);
207
- (0, _react.useEffect)(() => {
208
- window.addEventListener('resize', onScreenResize);
209
- document.addEventListener('click', onClickOutside);
210
- document.addEventListener('mousemove', onMouseMove);
211
- if (inputRef.current) onScreenResize();
212
- return () => {
213
- window.removeEventListener('resize', onScreenResize);
214
- document.removeEventListener('click', onClickOutside);
215
- document.removeEventListener('mousemove', onMouseMove);
216
- };
217
-
218
- // TODO: Procurar solução melhor.
219
- // setTimeout(() => { this.onScreenResize(); }, 300);
220
- }, [inputRef.current]);
221
222
  (0, _react.useEffect)(() => {
222
223
  if (value && (0, _moment.default)(value, _helpers.EN_US_FORMAT).format() !== 'Invalid date' && (0, _moment.default)(valueFromProps, _helpers.EN_US_FORMAT).format() !== (0, _moment.default)(value, _helpers.EN_US_FORMAT).format()) {
223
224
  setValueState((0, _moment.default)(value, _helpers.EN_US_FORMAT));
@@ -227,31 +228,56 @@ const DatePicker = props => {
227
228
  setValueFromProps(value);
228
229
  }
229
230
  }, [value]);
231
+ (0, _react.useEffect)(() => {
232
+ window.addEventListener('resize', onScreenResize);
233
+ document.addEventListener('keydown', onKeyDownPress);
234
+ if (inputDateRef.current) onScreenResize();
235
+ if (showCalendar && showCalendarInDialog) setCalendarOnDialog(true);
236
+ return () => {
237
+ window.removeEventListener('resize', onScreenResize);
238
+ document.removeEventListener('keydown', onKeyDownPress);
239
+ };
240
+ }, [inputDateRef.current, showCalendar]);
241
+ (0, _react.useEffect)(() => {
242
+ document.addEventListener('scroll', keepPositionCalendarByScroll);
243
+ document.getElementById('modal-dialog-content')?.addEventListener('scroll', keepPositionCalendarByScroll);
244
+ return () => {
245
+ document.removeEventListener('scroll', keepPositionCalendarByScroll);
246
+ document.getElementById('modal-dialog-content')?.removeEventListener('scroll', keepPositionCalendarByScroll);
247
+ };
248
+ }, []);
230
249
  if (onDenied && onDenied.unvisible) return null;
231
- return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_BaseMask.default, _extends({}, props, {
250
+ const component = () => /*#__PURE__*/_react.default.createElement("div", {
251
+ ref: datePickerContainerRef,
252
+ onBlur: onCloseWithoutBlur,
253
+ className: "datepicker-container"
254
+ }, /*#__PURE__*/_react.default.createElement(_BaseMask.default, _extends({}, props, {
255
+ gridLayout: undefined,
232
256
  value: !valueState ? ' ' : valueState.format(_helpers.PT_BR_FORMAT),
233
257
  mask: "00/00/0000",
234
- onComplete: e => {
235
- if (e) {
236
- var _e$target;
237
- setValue((_e$target = e.target) === null || _e$target === void 0 ? void 0 : _e$target.maskedValue, e);
258
+ onComplete: (e, date) => {
259
+ if (date) {
260
+ setValue(date, e);
238
261
  }
239
262
  },
240
263
  onBlur: onInputBlur,
241
264
  onFocus: e => {
242
265
  onInputFocus(e);
243
266
  },
244
- onKeyDown: onInputKeyDown,
245
- onChange: (e, __, date) => {
246
- if (date) onInputChange(e, e.target.value);
267
+ onChange: (e, date) => {
268
+ if (date) onInputChange(e, date);
247
269
  },
248
270
  inputRef: el => {
249
- inputRef.current = el;
271
+ inputDateRef.current = el;
250
272
  if (inputRefProp) inputRefProp.current = el;
251
273
  },
252
274
  rightElements: getButtonOpen(),
253
275
  required: required,
254
276
  handlerSetOnDenied: () => setOnDenied(onDenied)
255
- })), showCalendar && getWrapperComponent());
277
+ })), showCalendar && getCalendarComponent());
278
+ return !gridLayout ? component() : /*#__PURE__*/_react.default.createElement(_gridlayout.default, {
279
+ customClass: "-withinput",
280
+ cols: gridLayout
281
+ }, component());
256
282
  };
257
283
  var _default = exports.default = DatePicker;
@@ -1,4 +1,4 @@
1
- import { ReactNode } from 'react';
1
+ import { ReactNode, RefObject } from 'react';
2
2
  import { ColorStyles } from '../../@types/ColorStyles.js';
3
3
  import { PermissionAttr } from '../../@types/PermissionAttr.js';
4
4
  import { CustomInputEvent } from '../base/types.js';
@@ -9,10 +9,11 @@ import '../../@types/Position.js';
9
9
 
10
10
  interface IDatePickerProps {
11
11
  value?: string;
12
+ openOnFocus?: boolean;
12
13
  showButtonOpen?: boolean;
14
+ shouldCloseOnEsc?: boolean;
13
15
  shouldCloseOnSelect?: boolean;
14
16
  setFocusOnSelect?: boolean;
15
- openOnFocus?: boolean;
16
17
  showCalendarInDialog?: boolean;
17
18
  inputRef?: React.MutableRefObject<HTMLInputElement | HTMLTextAreaElement | null>;
18
19
  dialogSize?: {
@@ -37,6 +38,7 @@ interface IDatePickerProps {
37
38
  disabled?: boolean;
38
39
  permissionAttr?: PermissionAttr;
39
40
  label?: string;
41
+ gridLayout?: string;
40
42
  hint?: string | string[];
41
43
  hintPosition?: 'below' | 'onLabelRight';
42
44
  themePopover?: 'light' | 'dark';
@@ -45,10 +47,9 @@ interface IDatePickerProps {
45
47
  interface IDateDropdownProps {
46
48
  children: ReactNode | ReactNode[];
47
49
  dropdownRef: (el: HTMLDivElement) => void;
48
- topPosition: number | string;
49
- leftPosition?: number | string;
50
- width: number | string;
51
- minWidth: number | string;
50
+ containerRef: RefObject<HTMLDivElement | HTMLElement>;
51
+ showButtonOpen: boolean;
52
+ inputDimensions?: DOMRect;
52
53
  }
53
54
  interface IDateDialogProps {
54
55
  children: ReactNode | ReactNode[];
@@ -19,7 +19,7 @@ const ErrorMessage = exports.ErrorMessage = /*#__PURE__*/(0, _react.forwardRef)(
19
19
  return /*#__PURE__*/_react.default.createElement("p", {
20
20
  ref: ref,
21
21
  style: style,
22
- className: "errormessages-component ".concat(customClass)
22
+ className: `errormessages-component ${customClass}`
23
23
  }, messages.join(', '));
24
24
  });
25
25
  ErrorMessage.displayName = 'ErrorMessage';
@@ -27,16 +27,16 @@ const DefaultFile = props => {
27
27
  hint = [],
28
28
  onChange
29
29
  } = props;
30
- const getFilesList = files => !(files !== null && files !== void 0 && files.length) ? [] : _lodash.default.map(files, file => file);
30
+ const getFilesList = files => !files?.length ? [] : _lodash.default.map(files, file => file);
31
31
  const [fileList, setFileList] = (0, _react.useState)(defaultFiles);
32
32
  const ifExistFiles = fileList instanceof Array && fileList.length > 0;
33
33
  const popUpDescription = () => /*#__PURE__*/_react.default.createElement("div", {
34
- className: "size-position-icon ".concat(!ifExistFiles ? '-disabled-popover' : '')
34
+ className: `size-position-icon ${!ifExistFiles ? '-disabled-popover' : ''}`
35
35
  }, /*#__PURE__*/_react.default.createElement(_popover.default, {
36
36
  iconSize: 16
37
37
  }, /*#__PURE__*/_react.default.createElement(_popover.PopoverText, null, /*#__PURE__*/_react.default.createElement("strong", null, "Arquivos"), /*#__PURE__*/_react.default.createElement("br", null), ifExistFiles && fileList.map(file => /*#__PURE__*/_react.default.createElement("div", {
38
38
  className: "list-simple-file",
39
- key: "".concat(file.name).concat(file.size)
39
+ key: `${file.name}${file.size}`
40
40
  }, /*#__PURE__*/_react.default.createElement("div", {
41
41
  className: "file-name"
42
42
  }, /*#__PURE__*/_react.default.createElement("span", null, file.name)))))));
@@ -55,11 +55,10 @@ const DefaultFile = props => {
55
55
  })
56
56
  });
57
57
  const handleChange = e => {
58
- var _e$preventDefault;
59
- (_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
58
+ e.preventDefault?.();
60
59
  const files = getFilesList(e.target.files);
61
60
  setFileList(files);
62
- onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
61
+ onChange?.(files, e);
63
62
  };
64
63
  return /*#__PURE__*/_react.default.createElement("div", {
65
64
  className: "input-simple-file-container"
@@ -15,7 +15,7 @@ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e
15
15
  function _getRequireWildcardCache(e) { if ("function" != typeof WeakMap) return null; var r = new WeakMap(), t = new WeakMap(); return (_getRequireWildcardCache = function (e) { return e ? t : r; })(e); }
16
16
  function _interopRequireWildcard(e, r) { if (!r && e && e.__esModule) return e; if (null === e || "object" != typeof e && "function" != typeof e) return { default: e }; var t = _getRequireWildcardCache(r); if (t && t.has(e)) return t.get(e); var n = { __proto__: null }, a = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var u in e) if ("default" !== u && {}.hasOwnProperty.call(e, u)) { var i = a ? Object.getOwnPropertyDescriptor(e, u) : null; i && (i.get || i.set) ? Object.defineProperty(n, u, i) : n[u] = e[u]; } return n.default = e, t && t.set(e, n), n; }
17
17
  function _extends() { return _extends = Object.assign ? Object.assign.bind() : function (n) { for (var e = 1; e < arguments.length; e++) { var t = arguments[e]; for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]); } return n; }, _extends.apply(null, arguments); }
18
- const getFilesList = files => !(files !== null && files !== void 0 && files.length) ? [] : _lodash.default.map(files, file => file);
18
+ const getFilesList = files => !files?.length ? [] : _lodash.default.map(files, file => file);
19
19
  const getAcceptFilesLabel = valueAccept => valueAccept.split(',').map(value => value.includes('.') ? value.split('.')[1] : value.split('/')[1]).join(', ');
20
20
  const getAcceptFilesWithoutRemoveText = value => value.split(', ');
21
21
  const DragDropFile = props => {
@@ -49,9 +49,8 @@ const DragDropFile = props => {
49
49
  error: false
50
50
  });
51
51
  const handleDrag = e => {
52
- var _e$preventDefault, _e$stopPropagation;
53
- (_e$preventDefault = e.preventDefault) === null || _e$preventDefault === void 0 ? void 0 : _e$preventDefault.call(e);
54
- (_e$stopPropagation = e.stopPropagation) === null || _e$stopPropagation === void 0 ? void 0 : _e$stopPropagation.call(e);
52
+ e.preventDefault?.();
53
+ e.stopPropagation?.();
55
54
  };
56
55
  const checkTypeNotAccept = (types, getTypesArray, e) => {
57
56
  setTypeNotAccept(false);
@@ -72,7 +71,7 @@ const DragDropFile = props => {
72
71
  setMessage({
73
72
  class: 'disapprovedFile',
74
73
  text: 'Por favor, verifique a extensão do(s) arquivo(s) inserido(s).',
75
- subtitle: "Apenas as extens\xF5es ".concat(getAcceptFilesLabel(accept), " s\xE3o permitidas."),
74
+ subtitle: `Apenas as extensões ${getAcceptFilesLabel(accept)} são permitidas.`,
76
75
  error: true
77
76
  });
78
77
  } else {
@@ -102,7 +101,7 @@ const DragDropFile = props => {
102
101
  checkTypeNotAccept(arrayTypes, getTypesArray, e);
103
102
  handleDrag(e);
104
103
  setDragActive(true);
105
- onDragEnter === null || onDragEnter === void 0 ? void 0 : onDragEnter(e);
104
+ onDragEnter?.(e);
106
105
  };
107
106
  const handleDragLeave = e => {
108
107
  setMessage({
@@ -113,11 +112,11 @@ const DragDropFile = props => {
113
112
  });
114
113
  handleDrag(e);
115
114
  setDragActive(false);
116
- onDragLeave === null || onDragLeave === void 0 ? void 0 : onDragLeave(e);
115
+ onDragLeave?.(e);
117
116
  };
118
117
  const handleDragOver = e => {
119
118
  handleDrag(e);
120
- onDragOver === null || onDragOver === void 0 ? void 0 : onDragOver(e);
119
+ onDragOver?.(e);
121
120
  };
122
121
  const handleDrop = e => {
123
122
  handleDrag(e);
@@ -135,8 +134,8 @@ const DragDropFile = props => {
135
134
  return !ids.includes(name, index + 1);
136
135
  });
137
136
  setFileList(filtered);
138
- onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
139
- onDrop === null || onDrop === void 0 ? void 0 : onDrop(e);
137
+ onChange?.(files, e);
138
+ onDrop?.(e);
140
139
  }
141
140
  }
142
141
  setMessage({
@@ -147,8 +146,7 @@ const DragDropFile = props => {
147
146
  });
148
147
  };
149
148
  const handleChange = e => {
150
- var _e$preventDefault2;
151
- (_e$preventDefault2 = e.preventDefault) === null || _e$preventDefault2 === void 0 ? void 0 : _e$preventDefault2.call(e);
149
+ e.preventDefault?.();
152
150
  const files = getFilesList(e.target.files);
153
151
  if (files.length > 0 && !typeNotAccept) {
154
152
  const fileNoRepeat = fileList.concat(files);
@@ -160,7 +158,7 @@ const DragDropFile = props => {
160
158
  return !ids.includes(name, index + 1);
161
159
  });
162
160
  setFileList(filesFiltered);
163
- onChange === null || onChange === void 0 ? void 0 : onChange(files, e);
161
+ onChange?.(files, e);
164
162
  }
165
163
  };
166
164
  const onButtonClickRemoveAll = () => setFileList([]);
@@ -168,7 +166,7 @@ const DragDropFile = props => {
168
166
  setFileList(prevState => prevState.filter(file => file.name !== fileName));
169
167
  };
170
168
  const generateListArray = () => {
171
- if ((fileList === null || fileList === void 0 ? void 0 : fileList.length) === 1) {
169
+ if (fileList?.length === 1) {
172
170
  return /*#__PURE__*/_react.default.createElement(_react.Fragment, null, fileList[0].type === 'image/jpeg' || fileList[0].type === 'image/png' ? /*#__PURE__*/_react.default.createElement("img", {
173
171
  alt: fileList[0].name,
174
172
  src: URL.createObjectURL(fileList[0])
@@ -186,7 +184,7 @@ const DragDropFile = props => {
186
184
  return /*#__PURE__*/_react.default.createElement("ul", {
187
185
  className: "file-list"
188
186
  }, fileList.length > 0 && fileList.map(file => /*#__PURE__*/_react.default.createElement("li", {
189
- key: "".concat(file.name).concat(file.size),
187
+ key: `${file.name}${file.size}`,
190
188
  className: "file-card"
191
189
  }, /*#__PURE__*/_react.default.createElement(_buttons.DangerButton, {
192
190
  transparent: true,
@@ -214,9 +212,9 @@ const DragDropFile = props => {
214
212
  onDragEnter: handleDragEnter,
215
213
  onSubmit: e => e.preventDefault()
216
214
  }, /*#__PURE__*/_react.default.createElement("div", {
217
- className: "drag-content ".concat(skeletonize ? '-skeletonized' : '')
215
+ className: `drag-content ${skeletonize ? '-skeletonized' : ''}`
218
216
  }, /*#__PURE__*/_react.default.createElement("div", {
219
- className: "".concat(message.class, " ").concat(!skeletonize ? 'content' : '')
217
+ className: `${message.class} ${!skeletonize ? 'content' : ''}`
220
218
  }, message.error || fileList.length === 0 ? /*#__PURE__*/_react.default.createElement("label", {
221
219
  htmlFor: id
222
220
  }, /*#__PURE__*/_react.default.createElement("h1", {
@@ -26,8 +26,7 @@ const File = _ref => {
26
26
  rest = _objectWithoutProperties(_ref, _excluded);
27
27
  const inputFileRef = (0, _react.useRef)(null);
28
28
  const onBtnClickInsert = () => {
29
- var _inputFileRef$current;
30
- (_inputFileRef$current = inputFileRef.current) === null || _inputFileRef$current === void 0 ? void 0 : _inputFileRef$current.click();
29
+ inputFileRef.current?.click();
31
30
  };
32
31
  const onBtnClickRemove = () => {
33
32
  if (inputFileRef.current) {
@@ -36,10 +35,10 @@ const File = _ref => {
36
35
  if (onBtnClickRemoveProp) onBtnClickRemoveProp();
37
36
  };
38
37
  (0, _react.useEffect)(() => {
39
- if (inputFileRef !== null && inputFileRef !== void 0 && inputFileRef.current && defaultFiles) {
38
+ if (inputFileRef?.current && defaultFiles) {
40
39
  inputFileRef.current.files = (0, _helpers.transformFilesToFileList)(defaultFiles);
41
40
  }
42
- }, [inputFileRef === null || inputFileRef === void 0 ? void 0 : inputFileRef.current]);
41
+ }, [inputFileRef?.current]);
43
42
  const component = applyDragDrop ? /*#__PURE__*/_react.default.createElement(_DragDropFile.default, _extends({}, rest, {
44
43
  defaultFiles: defaultFiles,
45
44
  inputRef: inputFileRef,
@@ -149,11 +149,10 @@ const BaseMask = _ref => {
149
149
  }
150
150
  });
151
151
  (0, _react.useEffect)(() => {
152
- var _numberToPtBR;
153
152
  if (typeof valueProp === 'number') {
154
153
  if (String(valueProp).trim().length > 0) setTypedValue(valueProp);else setTypedValue(0);
155
154
  }
156
- setValue((_numberToPtBR = (0, _format_number.numberToPtBR)(valueProp)) !== null && _numberToPtBR !== void 0 ? _numberToPtBR : '');
155
+ setValue((0, _format_number.numberToPtBR)(valueProp) ?? '');
157
156
  }, [valueProp]);
158
157
  return /*#__PURE__*/_react.default.createElement(_InputTextBase.default, _extends({
159
158
  inputRef: r => {
@@ -16,17 +16,16 @@ function _defineProperty(e, r, t) { return (r = _toPropertyKey(r)) in e ? Object
16
16
  function _toPropertyKey(t) { var i = _toPrimitive(t, "string"); return "symbol" == typeof i ? i : i + ""; }
17
17
  function _toPrimitive(t, r) { if ("object" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || "default"); if ("object" != typeof i) return i; throw new TypeError("@@toPrimitive must return a primitive value."); } return ("string" === r ? String : Number)(t); }
18
18
  const returnDropdownDynamicStyles = (selectFieldRef, dropdownMaxHeight) => {
19
- var _selectFieldRef$curre, _selectFieldRef$curre2, _selectFieldRef$curre3;
20
- const selectFieldRects = selectFieldRef === null || selectFieldRef === void 0 ? void 0 : (_selectFieldRef$curre = selectFieldRef.current) === null || _selectFieldRef$curre === void 0 ? void 0 : _selectFieldRef$curre.getBoundingClientRect();
21
- const bottom = selectFieldRects !== null && selectFieldRects !== void 0 && selectFieldRects.bottom ? selectFieldRects === null || selectFieldRects === void 0 ? void 0 : selectFieldRects.bottom : 0;
22
- const offsetTop = selectFieldRef !== null && selectFieldRef !== void 0 && (_selectFieldRef$curre2 = selectFieldRef.current) !== null && _selectFieldRef$curre2 !== void 0 && _selectFieldRef$curre2.offsetTop ? selectFieldRef === null || selectFieldRef === void 0 ? void 0 : (_selectFieldRef$curre3 = selectFieldRef.current) === null || _selectFieldRef$curre3 === void 0 ? void 0 : _selectFieldRef$curre3.offsetTop : 0;
19
+ const selectFieldRects = selectFieldRef?.current?.getBoundingClientRect();
20
+ const bottom = selectFieldRects?.bottom ? selectFieldRects?.bottom : 0;
21
+ const offsetTop = selectFieldRef?.current?.offsetTop ? selectFieldRef?.current?.offsetTop : 0;
23
22
  const dropdownBottomDistance = window.innerHeight - bottom;
24
23
  let maxDropdownBottomDistance = 200;
25
24
  let height = dropdownMaxHeight;
26
25
  let dropdownPosition;
27
26
  if (!height || height <= 0) {
28
27
  if (dropdownBottomDistance < maxDropdownBottomDistance) {
29
- height = selectFieldRects !== null && selectFieldRects !== void 0 && selectFieldRects.top ? selectFieldRects.top : 0;
28
+ height = selectFieldRects?.top ? selectFieldRects.top : 0;
30
29
  dropdownPosition = window.innerHeight - offsetTop + 10;
31
30
  } else {
32
31
  height = dropdownBottomDistance;
@@ -38,8 +37,8 @@ const returnDropdownDynamicStyles = (selectFieldRef, dropdownMaxHeight) => {
38
37
  }
39
38
  }
40
39
  return {
41
- maxHeight: "".concat(height - 30, "px"),
42
- bottom: "".concat(dropdownPosition, "px")
40
+ maxHeight: `${height - 30}px`,
41
+ bottom: `${dropdownPosition}px`
43
42
  };
44
43
  };
45
44
  const Dropdown = props => {
@@ -103,11 +102,11 @@ const Dropdown = props => {
103
102
  customClass: "checkboxicon"
104
103
  }), /*#__PURE__*/_react.default.createElement("span", {
105
104
  className: "label"
106
- }, inputValue !== '' ? 'Selecionar todos pesquisados' : 'Selecionar Todos'))), dataCombo === null || dataCombo === void 0 ? void 0 : dataCombo.map(item => {
105
+ }, inputValue !== '' ? 'Selecionar todos pesquisados' : 'Selecionar Todos'))), dataCombo?.map(item => {
107
106
  const isChecked = selecteds ? selecteds.find(selected => selected[idKey] === item[idKey]) : undefined;
108
107
  return /*#__PURE__*/_react.default.createElement("div", {
109
- key: "dropdowmItem ".concat(item[idKey], "}"),
110
- className: "item ".concat(isChecked && '-selected')
108
+ key: `dropdowmItem ${item[idKey]}}`,
109
+ className: `item ${isChecked && '-selected'}`
111
110
  }, /*#__PURE__*/_react.default.createElement("button", {
112
111
  className: "menubutton",
113
112
  tabIndex: -1,
@@ -11,11 +11,10 @@ const getFilteredDataCombo = _ref => {
11
11
  inputText
12
12
  } = _ref;
13
13
  return dataSource.filter(item => {
14
- var _descriptionKey;
15
14
  if (typeof descriptionKey === 'string') {
16
15
  return item[descriptionKey].toLowerCase().indexOf(inputText.toLowerCase()) > -1;
17
16
  }
18
- return ((_descriptionKey = descriptionKey(item)) === null || _descriptionKey === void 0 ? void 0 : _descriptionKey.toLowerCase().indexOf(inputText.toLowerCase())) > -1;
17
+ return descriptionKey(item)?.toLowerCase().indexOf(inputText.toLowerCase()) > -1;
19
18
  });
20
19
  };
21
20
  var _default = exports.default = getFilteredDataCombo;