linear-react-components-ui 0.4.77-beta.26 → 0.4.77-beta.28

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 (254) hide show
  1. package/.eslintrc.json +3 -76
  2. package/.husky/pre-commit +4 -0
  3. package/.vscode/settings.json +2 -2
  4. package/jest.config.js +3 -3
  5. package/lib/alerts/AlertContainer.js +19 -14
  6. package/lib/alerts/AlertProvider.js +9 -4
  7. package/lib/alerts/BaseAlert.js +8 -5
  8. package/lib/alerts/Message.js +40 -31
  9. package/lib/alerts/alert.spec.js +55 -32
  10. package/lib/alerts/helpers.js +5 -2
  11. package/lib/alerts/withAlert.js +2 -2
  12. package/lib/assets/styles/commons.scss +10 -0
  13. package/lib/assets/styles/dropdown.scss +36 -2
  14. package/lib/assets/styles/effects.scss +11 -0
  15. package/lib/assets/styles/list.scss +8 -0
  16. package/lib/assets/styles/table.scss +2 -7
  17. package/lib/avatar/avatar.spec.js +74 -42
  18. package/lib/avatar/index.js +58 -13
  19. package/lib/badge/badge.spec.js +52 -30
  20. package/lib/badge/index.js +22 -6
  21. package/lib/buttons/ActivateButton.js +3 -3
  22. package/lib/buttons/AddButton.js +1 -1
  23. package/lib/buttons/Button.js +11 -19
  24. package/lib/buttons/ButtonGroups.js +5 -0
  25. package/lib/buttons/CancelButton.js +3 -16
  26. package/lib/buttons/DangerButton.js +19 -14
  27. package/lib/buttons/DefaultButton.js +127 -65
  28. package/lib/buttons/DestroyButton.js +3 -12
  29. package/lib/buttons/EditButton.js +3 -3
  30. package/lib/buttons/InactivateButton.js +3 -3
  31. package/lib/buttons/InfoButton.js +19 -14
  32. package/lib/buttons/PrimaryButton.js +19 -14
  33. package/lib/buttons/RestoreButton.js +3 -3
  34. package/lib/buttons/SaveButton.js +2 -15
  35. package/lib/buttons/SpinnerLoading.js +41 -41
  36. package/lib/buttons/SuccessButton.js +18 -13
  37. package/lib/buttons/WarningButton.js +18 -13
  38. package/lib/buttons/button_container/index.js +18 -5
  39. package/lib/buttons/buttons.spec.js +210 -136
  40. package/lib/buttons/index.js +28 -28
  41. package/lib/buttons/split_button/index.js +30 -13
  42. package/lib/calendar/DangerCalendar.js +2 -11
  43. package/lib/calendar/InfoCalendar.js +2 -11
  44. package/lib/calendar/PrimaryCalendar.js +2 -11
  45. package/lib/calendar/SuccessCalendar.js +2 -11
  46. package/lib/calendar/WarningCalendar.js +2 -11
  47. package/lib/calendar/base/Day.js +8 -2
  48. package/lib/calendar/base/Month.js +5 -0
  49. package/lib/calendar/base/Week.js +6 -0
  50. package/lib/calendar/base/helpers.js +9 -9
  51. package/lib/calendar/base/index.js +36 -33
  52. package/lib/calendar/calendar.spec.js +63 -32
  53. package/lib/calendar/index.js +10 -10
  54. package/lib/checkbox/Label.js +12 -2
  55. package/lib/checkbox/checkbox.spec.js +78 -37
  56. package/lib/checkbox/index.js +79 -42
  57. package/lib/dialog/Alert.js +8 -3
  58. package/lib/dialog/Custom.js +25 -17
  59. package/lib/dialog/Error.js +6 -1
  60. package/lib/dialog/Information.js +6 -1
  61. package/lib/dialog/Question.js +17 -6
  62. package/lib/dialog/Warning.js +6 -1
  63. package/lib/dialog/base/Content.js +9 -0
  64. package/lib/dialog/base/Footer.js +8 -2
  65. package/lib/dialog/base/Header.js +22 -8
  66. package/lib/dialog/base/index.js +28 -6
  67. package/lib/dialog/dialog.spec.js +153 -79
  68. package/lib/dialog/form/index.js +32 -22
  69. package/lib/dialog/index.js +6 -6
  70. package/lib/drawer/Content.js +10 -1
  71. package/lib/drawer/Drawer.js +50 -29
  72. package/lib/drawer/Drawer.spec.js +95 -52
  73. package/lib/drawer/Header.js +31 -12
  74. package/lib/drawer/helpers.js +1 -1
  75. package/lib/drawer/index.js +4 -4
  76. package/lib/dropdown/Popup.js +16 -32
  77. package/lib/dropdown/dropdown.spec.js +58 -34
  78. package/lib/dropdown/helper.js +2 -2
  79. package/lib/dropdown/withDropdown.js +43 -18
  80. package/lib/fieldset/fieldset.spec.js +123 -77
  81. package/lib/fieldset/index.js +43 -12
  82. package/lib/form/Field.js +41 -14
  83. package/lib/form/FieldArray.js +50 -20
  84. package/lib/form/FieldNumber.js +44 -12
  85. package/lib/form/FieldPeriod.js +41 -19
  86. package/lib/form/form.spec.js +90 -48
  87. package/lib/form/helpers.js +16 -10
  88. package/lib/form/index.js +92 -57
  89. package/lib/form/withFieldHOC.js +120 -40
  90. package/lib/form/withFormSecurity.js +38 -17
  91. package/lib/gridlayout/GridCol.js +18 -3
  92. package/lib/gridlayout/GridRow.js +24 -4
  93. package/lib/gridlayout/gridLayout.spec.js +70 -43
  94. package/lib/icons/helper.js +571 -560
  95. package/lib/icons/icons.spec.js +36 -20
  96. package/lib/icons/index.js +40 -23
  97. package/lib/index.js +12 -12
  98. package/lib/inputs/base/InputTextBase.js +149 -40
  99. package/lib/inputs/base/base.spec.js +289 -174
  100. package/lib/inputs/base/helpers.js +4 -4
  101. package/lib/inputs/color/color_input.spec.js +67 -33
  102. package/lib/inputs/color/index.js +29 -31
  103. package/lib/inputs/date/Dialog.js +8 -1
  104. package/lib/inputs/date/Dropdown.js +70 -18
  105. package/lib/inputs/date/date.spec.js +156 -75
  106. package/lib/inputs/date/helpers.js +1 -1
  107. package/lib/inputs/date/index.js +411 -255
  108. package/lib/inputs/inputHOC.js +96 -44
  109. package/lib/inputs/mask/BaseMask.js +45 -16
  110. package/lib/inputs/mask/Cnpj.js +19 -12
  111. package/lib/inputs/mask/Cpf.js +22 -14
  112. package/lib/inputs/mask/Phone.js +9 -1
  113. package/lib/inputs/mask/ZipCode.js +1 -1
  114. package/lib/inputs/mask/helpers.js +36 -21
  115. package/lib/inputs/mask/imaskHOC.js +255 -186
  116. package/lib/inputs/mask/index.js +4 -4
  117. package/lib/inputs/mask/input_mask.spec.js +290 -177
  118. package/lib/inputs/multiSelect/ActionButtons.js +14 -2
  119. package/lib/inputs/multiSelect/Dropdown.js +70 -43
  120. package/lib/inputs/multiSelect/index.js +80 -64
  121. package/lib/inputs/number/BaseNumber.js +62 -27
  122. package/lib/inputs/number/Currency.js +14 -4
  123. package/lib/inputs/number/format_number.js +1 -1
  124. package/lib/inputs/number/index.js +15 -9
  125. package/lib/inputs/number/numberfield.spec.js +83 -42
  126. package/lib/inputs/period/Dialog.js +8 -1
  127. package/lib/inputs/period/Dropdown.js +70 -16
  128. package/lib/inputs/period/PeriodList.js +19 -6
  129. package/lib/inputs/period/helper.js +71 -30
  130. package/lib/inputs/period/index.js +160 -112
  131. package/lib/inputs/search/index.js +261 -129
  132. package/lib/inputs/search/search_input.spec.js +86 -46
  133. package/lib/inputs/select/ActionButtons.js +20 -14
  134. package/lib/inputs/select/Dropdown.js +63 -30
  135. package/lib/inputs/select/helper.js +16 -18
  136. package/lib/inputs/select/index.js +13 -14
  137. package/lib/inputs/select/multiple/Selecteds.js +13 -5
  138. package/lib/inputs/select/multiple/index.js +414 -289
  139. package/lib/inputs/select/select.spec.js +182 -127
  140. package/lib/inputs/select/simple/index.js +462 -305
  141. package/lib/inputs/select/types.d.ts +4 -0
  142. package/lib/inputs/text/index.js +0 -1
  143. package/lib/inputs/text/textfield.spec.js +83 -42
  144. package/lib/inputs/textarea/index.js +15 -5
  145. package/lib/inputs/textarea/textarea.spec.js +27 -14
  146. package/lib/internals/constants.js +1 -1
  147. package/lib/internals/withTooltip.js +34 -26
  148. package/lib/labelMessages/index.js +45 -27
  149. package/lib/labelMessages/labelMessages.spec.js +61 -28
  150. package/lib/labels/DangerLabel.js +4 -13
  151. package/lib/labels/DefaultLabel.js +57 -25
  152. package/lib/labels/InfoLabel.js +4 -13
  153. package/lib/labels/PrimaryLabel.js +4 -13
  154. package/lib/labels/SuccessLabel.js +4 -13
  155. package/lib/labels/WarningLabel.js +4 -13
  156. package/lib/labels/index.js +10 -10
  157. package/lib/labels/label.spec.js +68 -41
  158. package/lib/labels/label_container/index.js +12 -2
  159. package/lib/list/Header.js +13 -0
  160. package/lib/list/Item.js +65 -27
  161. package/lib/list/helpers.js +2 -2
  162. package/lib/list/index.js +51 -31
  163. package/lib/list/list.spec.js +358 -211
  164. package/lib/menus/float/MenuItem.js +42 -10
  165. package/lib/menus/float/SubMenuContainer.js +95 -0
  166. package/lib/menus/float/float-menu.spec.js +61 -27
  167. package/lib/menus/float/helpers.js +1 -1
  168. package/lib/menus/float/index.js +39 -9
  169. package/lib/menus/sidenav/ExpandMenu.js +13 -1
  170. package/lib/menus/sidenav/MenuLink.js +14 -0
  171. package/lib/menus/sidenav/NavMenuGroup.js +12 -1
  172. package/lib/menus/sidenav/NavMenuItem.js +45 -19
  173. package/lib/menus/sidenav/NavSubMenuItem.js +15 -4
  174. package/lib/menus/sidenav/helpers.js +3 -3
  175. package/lib/menus/sidenav/index.js +60 -30
  176. package/lib/menus/sidenav/popup_menu_search/EmptyList.js +11 -2
  177. package/lib/menus/sidenav/popup_menu_search/index.js +11 -14
  178. package/lib/menus/sidenav/sidenav.spec.js +78 -29
  179. package/lib/panel/Content.js +18 -6
  180. package/lib/panel/DangerPanel.js +1 -1
  181. package/lib/panel/Default.js +45 -18
  182. package/lib/panel/Header.js +29 -7
  183. package/lib/panel/InfoPanel.js +1 -1
  184. package/lib/panel/PrimaryPanel.js +1 -1
  185. package/lib/panel/SuccessPanel.js +1 -1
  186. package/lib/panel/ToolBar.js +5 -0
  187. package/lib/panel/WarningPanel.js +1 -1
  188. package/lib/panel/helpers.js +3 -7
  189. package/lib/panel/index.js +14 -14
  190. package/lib/panel/panel.spec.js +106 -69
  191. package/lib/permissionValidations.js +12 -14
  192. package/lib/popover/PopoverText.js +5 -0
  193. package/lib/popover/PopoverTitle.js +5 -0
  194. package/lib/popover/index.js +40 -26
  195. package/lib/popover/popover.spec.js +70 -40
  196. package/lib/progress/Bar.js +47 -37
  197. package/lib/progress/index.js +18 -8
  198. package/lib/progress/progress.spec.js +48 -32
  199. package/lib/radio/index.js +46 -22
  200. package/lib/radio/radio.spec.js +68 -41
  201. package/lib/skeleton/SkeletonContainer.js +13 -0
  202. package/lib/skeleton/index.js +26 -7
  203. package/lib/spinner/SpinnerLoading.js +12 -4
  204. package/lib/spinner/index.js +29 -24
  205. package/lib/spinner/spinner.spec.js +65 -43
  206. package/lib/split/Split.js +62 -45
  207. package/lib/split/SplitSide.js +21 -1
  208. package/lib/split/helpers.js +1 -1
  209. package/lib/split/split.spec.js +76 -51
  210. package/lib/table/Body.js +16 -9
  211. package/lib/table/Header.js +19 -40
  212. package/lib/table/HeaderColumn.js +20 -6
  213. package/lib/table/Row.js +28 -7
  214. package/lib/table/RowColumn.js +30 -12
  215. package/lib/table/helpers.js +3 -3
  216. package/lib/table/index.js +53 -15
  217. package/lib/table/table.spec.js +149 -94
  218. package/lib/tabs/DropdownItems.js +53 -39
  219. package/lib/tabs/Menu.js +20 -16
  220. package/lib/tabs/MenuItems.js +39 -25
  221. package/lib/tabs/Panel.js +51 -18
  222. package/lib/tabs/index.js +75 -81
  223. package/lib/tabs/tabHelpers.js +8 -10
  224. package/lib/tabs/tabs.spec.js +158 -95
  225. package/lib/toolbar/ButtonBar.js +13 -32
  226. package/lib/toolbar/LabelBar.js +18 -31
  227. package/lib/toolbar/ToolBarGroup.js +12 -6
  228. package/lib/toolbar/helpers.js +1 -1
  229. package/lib/toolbar/index.js +33 -25
  230. package/lib/toolbar/toolbar.spec.js +182 -134
  231. package/lib/tooltip/index.js +34 -25
  232. package/lib/tooltip/tooltip.spec.js +51 -24
  233. package/lib/treeview/Header.js +12 -0
  234. package/lib/treeview/Node.js +387 -261
  235. package/lib/treeview/constants.js +2 -1
  236. package/lib/treeview/index.js +548 -363
  237. package/lib/treeview/treeview.spec.js +86 -49
  238. package/lib/treeview_old/Node.js +6 -6
  239. package/lib/uitour/helpers.js +1 -1
  240. package/lib/uitour/index.js +32 -15
  241. package/lib/uitour/uitour.spec.js +77 -55
  242. package/package.json +16 -40
  243. package/.husky/pre-push +0 -4
  244. package/babel.config.json +0 -11
  245. package/dist/main.js +0 -14
  246. package/lib/assets/styles/treetable.scss +0 -100
  247. package/lib/treetable/Body.js +0 -46
  248. package/lib/treetable/Header.js +0 -27
  249. package/lib/treetable/Row.js +0 -261
  250. package/lib/treetable/helpers.js +0 -41
  251. package/lib/treetable/index.js +0 -24
  252. package/lib/treetable/types.d.js +0 -5
  253. package/tsconfig.json +0 -32
  254. package/tsup.config.ts +0 -10
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
 
3
- function _typeof(obj) { "@babel/helpers - typeof"; return _typeof = "function" == typeof Symbol && "symbol" == typeof Symbol.iterator ? function (obj) { return typeof obj; } : function (obj) { return obj && "function" == typeof Symbol && obj.constructor === Symbol && obj !== Symbol.prototype ? "symbol" : typeof obj; }, _typeof(obj); }
3
+ 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
4
 
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
@@ -11,7 +11,7 @@ var _react = _interopRequireWildcard(require("react"));
11
11
 
12
12
  var _moment = _interopRequireDefault(require("moment"));
13
13
 
14
- var _PeriodList = _interopRequireDefault(require("./PeriodList"));
14
+ var _propTypes = _interopRequireDefault(require("prop-types"));
15
15
 
16
16
  var _BaseMask = _interopRequireDefault(require("../mask/BaseMask"));
17
17
 
@@ -25,6 +25,10 @@ var _icons = _interopRequireDefault(require("../../icons"));
25
25
 
26
26
  var _Dialog = _interopRequireDefault(require("./Dialog"));
27
27
 
28
+ var _colorStyles = _interopRequireDefault(require("../../internals/colorStyles"));
29
+
30
+ var _PeriodList = _interopRequireDefault(require("./PeriodList"));
31
+
28
32
  var helperBase = _interopRequireWildcard(require("../base/helpers"));
29
33
 
30
34
  require("../../assets/styles/periodpicker.scss");
@@ -35,7 +39,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
35
39
 
36
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; }
37
41
 
38
- function _extends() { _extends = Object.assign ? Object.assign.bind() : 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); }
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); }
39
43
 
40
44
  function _slicedToArray(arr, i) { return _arrayWithHoles(arr) || _iterableToArrayLimit(arr, i) || _unsupportedIterableToArray(arr, i) || _nonIterableRest(); }
41
45
 
@@ -45,38 +49,33 @@ function _unsupportedIterableToArray(o, minLen) { if (!o) return; if (typeof o =
45
49
 
46
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; }
47
51
 
48
- function _iterableToArrayLimit(arr, i) { var _i = arr == null ? null : 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; }
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; }
49
53
 
50
54
  function _arrayWithHoles(arr) { if (Array.isArray(arr)) return arr; }
51
55
 
52
- var PeriodPicker = function PeriodPicker(props) {
53
- var _props$value2, _props$value3;
54
-
55
- var _props$showButtonOpen = props.showButtonOpen,
56
- showButtonOpen = _props$showButtonOpen === void 0 ? true : _props$showButtonOpen,
57
- _props$openOnFocus = props.openOnFocus,
58
- openOnFocus = _props$openOnFocus === void 0 ? true : _props$openOnFocus,
59
- _props$shouldCloseOnS = props.shouldCloseOnSelect,
60
- shouldCloseOnSelect = _props$shouldCloseOnS === void 0 ? true : _props$shouldCloseOnS,
61
- _props$showCalendarIn = props.showCalendarInDialog,
62
- showCalendarInDialog = _props$showCalendarIn === void 0 ? false : _props$showCalendarIn,
63
- _props$dialogSize = props.dialogSize,
64
- dialogSize = _props$dialogSize === void 0 ? {
65
- width: '350px',
66
- height: '350px'
67
- } : _props$dialogSize,
68
- calendarColorStyle = props.calendarColorStyle;
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
+ }
69
63
 
70
- var _useState = (0, _react.useState)(props.value && props.value.valueInitial ? (0, _moment.default)(props.value.valueInitial) : undefined),
64
+ var PeriodPicker = function PeriodPicker(props) {
65
+ var _useState = (0, _react.useState)(props.value && props.value.initial ? (0, _moment.default)(props.value.initial) : undefined),
71
66
  _useState2 = _slicedToArray(_useState, 2),
72
67
  valueInitial = _useState2[0],
73
68
  setValueInitial = _useState2[1];
74
69
 
75
- var _useState3 = (0, _react.useState)(props.value && props.value.valueFinal ? (0, _moment.default)(props.value.valueFinal) : undefined),
70
+ var _useState3 = (0, _react.useState)(props.value && props.value.final ? (0, _moment.default)(props.value.final) : undefined),
76
71
  _useState4 = _slicedToArray(_useState3, 2),
77
72
  valueFinal = _useState4[0],
78
73
  setValueFinal = _useState4[1];
79
74
 
75
+ var previusValueInitial = usePrevious(valueInitial);
76
+ var previusValueFinal = usePrevious(valueFinal);
77
+ var previusValueProp = usePrevious(props.value);
78
+
80
79
  var _useState5 = (0, _react.useState)('valueInitial'),
81
80
  _useState6 = _slicedToArray(_useState5, 2),
82
81
  changing = _useState6[0],
@@ -97,28 +96,26 @@ var PeriodPicker = function PeriodPicker(props) {
97
96
  showPeriodSelection = _useState12[0],
98
97
  setShowPeriodSelection = _useState12[1];
99
98
 
100
- var _useState13 = (0, _react.useState)(),
99
+ var _useState13 = (0, _react.useState)(null),
101
100
  _useState14 = _slicedToArray(_useState13, 2),
102
101
  inputDimensions = _useState14[0],
103
102
  setInputDimensions = _useState14[1];
104
103
 
105
- var _useState15 = (0, _react.useState)(),
104
+ var _useState15 = (0, _react.useState)(undefined),
106
105
  _useState16 = _slicedToArray(_useState15, 2),
107
106
  onDenied = _useState16[0],
108
107
  setOnDenied = _useState16[1];
109
108
 
110
- var inputContainerRef = (0, _react.useRef)(null);
111
- var inputInitialRef = (0, _react.useRef)(null);
112
- var buttonOpenRef = (0, _react.useRef)(null);
113
- var buttonSelectPeriodRef = (0, _react.useRef)(null);
114
- var dropdownCalendarContainer = (0, _react.useRef)(null);
115
- var dropdownPeriodContainer = (0, _react.useRef)(null);
116
- var inputFinalRef = (0, _react.useRef)(null);
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)();
117
116
 
118
117
  var onScreenResize = function onScreenResize() {
119
- var _inputContainerRef$cu;
120
-
121
- var inputDimensionsAux = inputContainerRef === null || inputContainerRef === void 0 ? void 0 : (_inputContainerRef$cu = inputContainerRef.current) === null || _inputContainerRef$cu === void 0 ? void 0 : _inputContainerRef$cu.getBoundingClientRect();
118
+ var inputDimensionsAux = inputContainerRef.current.getBoundingClientRect();
122
119
  setInputDimensions(inputDimensionsAux);
123
120
  };
124
121
 
@@ -145,23 +142,28 @@ var PeriodPicker = function PeriodPicker(props) {
145
142
  };
146
143
  }, []);
147
144
  (0, _react.useEffect)(function () {
148
- if (valueFinal && valueInitial && (0, _moment.default)(valueFinal).isBefore((0, _moment.default)(valueInitial))) {
149
- setValueInitial(valueFinal);
150
- setValueFinal(valueInitial);
151
- } else if (props.onChange) {
152
- var initial = valueInitial ? valueInitial.format('YYYY-MM-DD') : '';
153
- var final = valueFinal ? valueFinal.format('YYYY-MM-DD') : '';
154
- props.onChange(undefined, '', {
155
- initial: initial,
156
- final: final
157
- });
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
+ var final = valueFinal ? valueFinal.format('YYYY-MM-DD') : '';
154
+ props.onChange({
155
+ initial: initial,
156
+ final: final
157
+ });
158
+ }
158
159
  }
159
- }, [valueInitial, valueFinal]);
160
+ }, [valueFinal, valueInitial]);
160
161
  (0, _react.useEffect)(function () {
161
- if (props.value) {
162
+ // sempre que alterado a prop 'value' atualiza o state interno
163
+ if (props.value !== previusValueProp) {
162
164
  var _props$value = props.value,
163
- valueInitialProp = _props$value.valueInitial,
164
- valueFinalProp = _props$value.valueFinal;
165
+ valueInitialProp = _props$value.initial,
166
+ valueFinalProp = _props$value.final;
165
167
  var newValueInitial;
166
168
  var newValueFinal;
167
169
 
@@ -176,7 +178,7 @@ var PeriodPicker = function PeriodPicker(props) {
176
178
  setValueInitial(newValueInitial);
177
179
  setValueFinal(newValueFinal);
178
180
  }
179
- }, [(_props$value2 = props.value) === null || _props$value2 === void 0 ? void 0 : _props$value2.valueInitial, (_props$value3 = props.value) === null || _props$value3 === void 0 ? void 0 : _props$value3.valueFinal]);
181
+ }, [props.value]);
180
182
 
181
183
  var openCalendar = function openCalendar() {
182
184
  setShowCalendar(true);
@@ -188,30 +190,27 @@ var PeriodPicker = function PeriodPicker(props) {
188
190
  };
189
191
 
190
192
  var onInputFocus = function onInputFocus(e) {
191
- var _ref = e.target,
192
- name = _ref.name;
193
+ var openOnFocus = props.openOnFocus;
194
+ var name = e.target.name;
193
195
  setChanging(name);
194
196
  if (openOnFocus) openCalendar();
195
197
  };
196
198
 
197
199
  var onInputChange = function onInputChange(event, value) {
198
- if (event) {
199
- var _ref2 = event.target,
200
- changingAux = _ref2.name;
201
-
202
- if (value && value.replace(/\D/g, '') === '') {
203
- if (changingAux === 'valueInitial') {
204
- setValueInitial(undefined);
205
- } else {
206
- setValueFinal(undefined);
207
- }
200
+ var changingAux = event.target.name;
201
+
202
+ if (value.replace(/\D/g, '') === '') {
203
+ if (changingAux === 'valueInitial') {
204
+ setValueInitial(undefined);
205
+ } else {
206
+ setValueFinal(undefined);
208
207
  }
209
208
  }
210
209
  };
211
210
 
212
211
  var setValue = function setValue(e, value) {
213
212
  var sholdOpenDropdown = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : true;
214
- var changingAux = e ? e.target.name : '';
213
+ var changingAux = e.target.name;
215
214
  var dateObj = (0, _moment.default)(value, 'DD/MM/YYYY');
216
215
 
217
216
  if (changingAux === 'valueInitial') {
@@ -219,17 +218,20 @@ var PeriodPicker = function PeriodPicker(props) {
219
218
  } else {
220
219
  setValueFinal(dateObj);
221
220
  }
221
+ /*
222
+ Caso valor setado for inicial e valor final vazio,
223
+ dar focus na data final e abrir dropdown para selecao de data final
224
+ */
222
225
 
223
- if (changingAux === 'valueInitial' && !valueFinal && sholdOpenDropdown) {
224
- var _inputFinalRef$curren;
225
226
 
226
- if (valueFinal) setChanging(valueFinal);
227
+ if (changingAux === 'valueInitial' && !valueFinal && sholdOpenDropdown) {
228
+ setChanging(valueFinal);
227
229
  setShowCalendar(false);
228
- (_inputFinalRef$curren = inputFinalRef.current) === null || _inputFinalRef$curren === void 0 ? void 0 : _inputFinalRef$curren.focus();
230
+ inputFinalRef.current.focus();
229
231
  setTimeout(function () {
230
232
  return setShowCalendar(true);
231
233
  }, 100);
232
- } else if (shouldCloseOnSelect) {
234
+ } else if (props.shouldCloseOnSelect) {
233
235
  setShowCalendar(false);
234
236
  }
235
237
  };
@@ -240,6 +242,7 @@ var PeriodPicker = function PeriodPicker(props) {
240
242
  };
241
243
 
242
244
  var getButtonOpen = function getButtonOpen() {
245
+ var showButtonOpen = props.showButtonOpen;
243
246
  if (!showButtonOpen) return null;
244
247
  return /*#__PURE__*/_react.default.createElement(_buttons.default, {
245
248
  key: "button-open",
@@ -248,14 +251,12 @@ var PeriodPicker = function PeriodPicker(props) {
248
251
  name: "calendar"
249
252
  }),
250
253
  onClick: function onClick() {
251
- var _inputInitialRef$curr;
252
-
253
- (_inputInitialRef$curr = inputInitialRef.current) === null || _inputInitialRef$curr === void 0 ? void 0 : _inputInitialRef$curr.focus();
254
+ inputInitialRef.current.focus();
254
255
  setChanging('valueInitial');
255
256
  openCalendar();
256
257
  },
257
258
  customClass: "calendar-button",
258
- tabIndex: -1,
259
+ tabIndex: "-1",
259
260
  targetRef: function targetRef(ref) {
260
261
  buttonOpenRef.current = ref;
261
262
  },
@@ -263,10 +264,10 @@ var PeriodPicker = function PeriodPicker(props) {
263
264
  });
264
265
  };
265
266
 
266
- var getPeriodSelection = function getPeriodSelection(valuePeriodSelectionAux, setPeriodDates) {
267
+ var getPeriodSelection = function getPeriodSelection(valuePeriodSelectionAux, setPeridDates) {
267
268
  return /*#__PURE__*/_react.default.createElement(_PeriodList.default, {
268
269
  selected: valuePeriodSelectionAux,
269
- handleOnSelect: setPeriodDates
270
+ handleOnSelect: setPeridDates
270
271
  });
271
272
  };
272
273
 
@@ -290,7 +291,7 @@ var PeriodPicker = function PeriodPicker(props) {
290
291
  return openPeriodSelecion();
291
292
  },
292
293
  customClass: "calendar-button",
293
- tabIndex: -1,
294
+ tabIndex: "-1",
294
295
  targetRef: function targetRef(ref) {
295
296
  buttonSelectPeriodRef.current = ref;
296
297
  },
@@ -298,9 +299,9 @@ var PeriodPicker = function PeriodPicker(props) {
298
299
  });
299
300
  };
300
301
 
301
- var getCalendar = function getCalendar(value, calendarColorStyleCalendar, changingAux) {
302
+ var getCalendar = function getCalendar(value, calendarColorStyle, changingAux) {
302
303
  return /*#__PURE__*/_react.default.createElement(_calendar.default, {
303
- currentDate: value !== undefined ? (0, _moment.default)(value) : (0, _moment.default)(),
304
+ currentDate: value !== undefined ? value : (0, _moment.default)(),
304
305
  onDateChange: function onDateChange(date) {
305
306
  return setValue({
306
307
  target: {
@@ -308,15 +309,13 @@ var PeriodPicker = function PeriodPicker(props) {
308
309
  }
309
310
  }, date);
310
311
  },
311
- colorStyle: calendarColorStyleCalendar
312
+ colorStyle: calendarColorStyle
312
313
  });
313
314
  };
314
315
 
315
- var setPeriodDates = function setPeriodDates(selected, dates) {
316
+ var setPeridDates = function setPeridDates(selected, dates) {
316
317
  if (selected === 'custom') {
317
- var _inputInitialRef$curr2;
318
-
319
- (_inputInitialRef$curr2 = inputInitialRef.current) === null || _inputInitialRef$curr2 === void 0 ? void 0 : _inputInitialRef$curr2.focus();
318
+ inputInitialRef.current.focus();
320
319
  setValuePeriodSelection(selected);
321
320
  setChanging('valueInitial');
322
321
  setShowPeriodSelection(false);
@@ -325,19 +324,19 @@ var PeriodPicker = function PeriodPicker(props) {
325
324
  }
326
325
 
327
326
  setValuePeriodSelection(selected);
327
+ setValueInitial(dates[0]);
328
+ setValueFinal(dates[1]);
328
329
 
329
- if (dates) {
330
- setValueInitial(dates[0]);
331
- setValueFinal(dates[1]);
332
- }
333
-
334
- if (shouldCloseOnSelect) {
330
+ if (props.shouldCloseOnSelect) {
335
331
  setShowPeriodSelection(false);
336
332
  }
337
333
  };
338
334
 
339
335
  var getWrapperComponentCalendar = function getWrapperComponentCalendar() {
340
336
  var value = changing === 'valueInitial' ? valueInitial : valueFinal;
337
+ var showCalendarInDialog = props.showCalendarInDialog,
338
+ dialogSize = props.dialogSize,
339
+ calendarColorStyle = props.calendarColorStyle;
341
340
  if (onDenied && onDenied.readOnly) return null;
342
341
 
343
342
  if (showCalendarInDialog) {
@@ -351,9 +350,9 @@ var PeriodPicker = function PeriodPicker(props) {
351
350
 
352
351
  return /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
353
352
  targetElement: inputContainerRef.current,
354
- topPosition: inputDimensions ? inputDimensions.top + inputDimensions.height + 5 : '',
355
- leftPosition: inputDimensions ? inputDimensions.left : '',
356
- width: inputDimensions ? inputDimensions.width : '',
353
+ topPosition: inputDimensions.top + inputDimensions.height + 5,
354
+ leftPosition: inputDimensions.left,
355
+ width: inputDimensions.width,
357
356
  dropdownRef: function dropdownRef(el) {
358
357
  dropdownCalendarContainer.current = el;
359
358
  }
@@ -361,45 +360,54 @@ var PeriodPicker = function PeriodPicker(props) {
361
360
  };
362
361
 
363
362
  var getWrapperComponentPeriodSelection = function getWrapperComponentPeriodSelection() {
363
+ var showCalendarInDialog = props.showCalendarInDialog,
364
+ dialogSize = props.dialogSize;
365
+
364
366
  if (showCalendarInDialog) {
365
367
  return /*#__PURE__*/_react.default.createElement(_Dialog.default, {
366
368
  dialogSize: dialogSize,
367
369
  handlerClose: function handlerClose() {
368
370
  return setShowPeriodSelection(false);
369
371
  }
370
- }, getPeriodSelection(valuePeriodSelection, setPeriodDates));
372
+ }, getPeriodSelection(valuePeriodSelection, setPeridDates));
371
373
  }
372
374
 
373
375
  return /*#__PURE__*/_react.default.createElement(_Dropdown.default, {
374
376
  targetElement: inputContainerRef.current,
375
- topPosition: inputDimensions ? inputDimensions.top + inputDimensions.height + 5 : '',
376
- leftPosition: inputDimensions ? inputDimensions.left : '',
377
- width: inputDimensions ? inputDimensions.width : '',
377
+ topPosition: inputDimensions.top + inputDimensions.height + 5,
378
+ leftPosition: inputDimensions.left,
379
+ width: inputDimensions.width,
378
380
  dropdownRef: function dropdownRef(el) {
379
381
  dropdownPeriodContainer.current = el;
380
382
  }
381
- }, getPeriodSelection(valuePeriodSelection, setPeriodDates));
383
+ }, getPeriodSelection(valuePeriodSelection, setPeridDates));
382
384
  };
383
385
 
386
+ var required = props.required,
387
+ label = props.label,
388
+ customClassForLabel = props.customClassForLabel,
389
+ labelUppercase = props.labelUppercase,
390
+ errorMessages = props.errorMessages;
384
391
  if (onDenied && onDenied.unvisible) return null;
385
392
  return /*#__PURE__*/_react.default.createElement("div", {
386
393
  className: "input-base-component"
387
- }, props.label && /*#__PURE__*/_react.default.createElement("div", {
394
+ }, label && /*#__PURE__*/_react.default.createElement("div", {
388
395
  className: "labelcontainer"
389
396
  }, /*#__PURE__*/_react.default.createElement("span", {
390
- className: "label ".concat(props.customClassForLabel, " ").concat(props.labelUppercase && ' -uppercase')
391
- }, props.label, props.required && /*#__PURE__*/_react.default.createElement("span", {
397
+ className: "label ".concat(customClassForLabel, " ").concat(labelUppercase && ' -uppercase')
398
+ }, label, required && /*#__PURE__*/_react.default.createElement("span", {
392
399
  className: "-requiredlabel"
393
400
  }, "*"))), /*#__PURE__*/_react.default.createElement("div", {
394
401
  className: "periodpicker-component ".concat(helperBase.getInputWrapperClass(_extends({}, props, {
395
- value: !valueInitial ? '' : (0, _moment.default)(valueInitial).format('DD/MM/YYYY'),
396
402
  disabled: shouldDisable()
397
403
  }))),
398
- ref: inputContainerRef
404
+ ref: function ref(el) {
405
+ inputContainerRef.current = el;
406
+ }
399
407
  }, /*#__PURE__*/_react.default.createElement(_BaseMask.default, {
400
408
  permissionAttr: props.permissionAttr,
401
409
  name: "valueInitial",
402
- value: !valueInitial ? '' : (0, _moment.default)(valueInitial).format('DD/MM/YYYY'),
410
+ value: !valueInitial ? '' : valueInitial.format('DD/MM/YYYY'),
403
411
  mask: "00/00/0000",
404
412
  onComplete: function onComplete(e, date) {
405
413
  setValue(e, date, false);
@@ -407,34 +415,74 @@ var PeriodPicker = function PeriodPicker(props) {
407
415
  onFocus: onInputFocus,
408
416
  onChange: onInputChange,
409
417
  inputRef: function inputRef(el) {
410
- if (el) inputInitialRef.current = el;
418
+ inputInitialRef.current = el;
411
419
  },
412
- handlerSetOnDenied: function handlerSetOnDenied(denied) {
413
- setOnDenied(denied);
420
+ handlerSetOnDenied: function handlerSetOnDenied(value) {
421
+ return setOnDenied(value);
414
422
  },
415
- required: props.required
423
+ required: required
416
424
  }), /*#__PURE__*/_react.default.createElement(_icons.default, {
417
425
  name: "arrow_right",
418
426
  customClass: "separation_icon"
419
427
  }), /*#__PURE__*/_react.default.createElement(_BaseMask.default, {
420
428
  permissionAttr: props.permissionAttr,
421
429
  name: "valueFinal",
422
- value: !valueFinal ? '' : (0, _moment.default)(valueFinal).format('DD/MM/YYYY'),
430
+ value: !valueFinal ? '' : valueFinal.format('DD/MM/YYYY'),
423
431
  mask: "00/00/0000",
424
432
  onComplete: function onComplete(e, date) {
425
- setValue(e, date, false);
433
+ return setValue(e, date, false);
426
434
  },
427
435
  onFocus: onInputFocus,
428
436
  onChange: onInputChange,
429
437
  inputRef: function inputRef(el) {
430
438
  inputFinalRef.current = el;
431
439
  },
432
- handlerSetOnDenied: function handlerSetOnDenied(denied) {
433
- return setOnDenied(denied);
440
+ handlerSetOnDenied: function handlerSetOnDenied(value) {
441
+ return setOnDenied(value);
434
442
  },
435
- required: props.required
436
- }), getButtonOpen(), getButtonSelectPeriod()), showCalendar && getWrapperComponentCalendar(), showPeriodSelection && getWrapperComponentPeriodSelection(), props.errorMessages && helperBase.getErrorMessages(props.errorMessages));
443
+ required: required
444
+ }), getButtonOpen(), getButtonSelectPeriod()), showCalendar && getWrapperComponentCalendar(), showPeriodSelection && getWrapperComponentPeriodSelection(), helperBase.getErrorMessages(errorMessages));
437
445
  };
438
446
 
447
+ PeriodPicker.propTypes = {
448
+ label: _propTypes.default.string,
449
+ value: _propTypes.default.object,
450
+ customClassForLabel: _propTypes.default.string,
451
+ labelUppercase: _propTypes.default.string,
452
+ showButtonOpen: _propTypes.default.bool,
453
+ shouldCloseOnSelect: _propTypes.default.bool,
454
+ openOnFocus: _propTypes.default.bool,
455
+ showCalendarInDialog: _propTypes.default.bool,
456
+ dialogSize: _propTypes.default.object,
457
+ calendarColorStyle: _propTypes.default.oneOf(['', _colorStyles.default.PRIMARY, _colorStyles.default.SUCCESS, _colorStyles.default.WARNING, _colorStyles.default.INFO, _colorStyles.default.DANGER]),
458
+ required: _propTypes.default.bool,
459
+ onChange: _propTypes.default.func,
460
+ disabled: _propTypes.default.bool,
461
+ permissionAttr: _propTypes.default.object,
462
+ errorMessages: _propTypes.default.arrayOf(_propTypes.default.string)
463
+ };
464
+ PeriodPicker.defaultProps = {
465
+ value: {
466
+ valueInitial: undefined,
467
+ valueFinal: undefined
468
+ },
469
+ label: undefined,
470
+ customClassForLabel: undefined,
471
+ labelUppercase: undefined,
472
+ showButtonOpen: true,
473
+ openOnFocus: true,
474
+ shouldCloseOnSelect: true,
475
+ showCalendarInDialog: false,
476
+ dialogSize: {
477
+ width: '350px',
478
+ height: '350px'
479
+ },
480
+ calendarColorStyle: '',
481
+ required: false,
482
+ onChange: undefined,
483
+ disabled: false,
484
+ permissionAttr: undefined,
485
+ errorMessages: []
486
+ };
439
487
  var _default = PeriodPicker;
440
488
  exports.default = _default;