linear-react-components-ui 1.1.22 → 1.1.24-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (258) hide show
  1. package/lib/@types/ColorStyles.d.ts +2 -1
  2. package/lib/@types/Position.d.ts +2 -1
  3. package/lib/BaseMask-3d5d581d.d.ts +24 -0
  4. package/lib/BaseNumber-797088d7.d.ts +23 -0
  5. package/lib/Cnpj-1602be21.d.ts +18 -0
  6. package/lib/Cpf-4d6b9079.d.ts +18 -0
  7. package/lib/Currency-b33d3a22.d.ts +18 -0
  8. package/lib/Decimal-55e836d5.d.ts +13 -0
  9. package/lib/Number-9c6aceff.d.ts +20 -0
  10. package/lib/Phone-79e5e3b4.d.ts +18 -0
  11. package/lib/ZipCode-8c2e9d8b.d.ts +13 -0
  12. package/lib/assets/styles/checkbox2.scss +199 -0
  13. package/lib/assets/styles/colorpicker.scss +1 -6
  14. package/lib/assets/styles/colors.scss +48 -12
  15. package/lib/assets/styles/datepicker2.scss +338 -0
  16. package/lib/assets/styles/label.scss +4 -2
  17. package/lib/assets/styles/select.scss +19 -15
  18. package/lib/assets/styles/selectfield.scss +409 -0
  19. package/lib/assets/styles/slot.scss +34 -0
  20. package/lib/assets/styles/textfield.scss +148 -0
  21. package/lib/buttons/ActivateButton.d.ts +1 -0
  22. package/lib/buttons/AddButton.d.ts +1 -0
  23. package/lib/buttons/Button.d.ts +1 -0
  24. package/lib/buttons/CancelButton.d.ts +1 -0
  25. package/lib/buttons/DangerButton.d.ts +1 -0
  26. package/lib/buttons/DefaultButton.d.ts +1 -0
  27. package/lib/buttons/DefaultButton.js +20 -12
  28. package/lib/buttons/DestroyButton.d.ts +1 -0
  29. package/lib/buttons/EditButton.d.ts +1 -0
  30. package/lib/buttons/InactivateButton.d.ts +1 -0
  31. package/lib/buttons/InfoButton.d.ts +1 -0
  32. package/lib/buttons/PrimaryButton.d.ts +1 -0
  33. package/lib/buttons/RestoreButton.d.ts +1 -0
  34. package/lib/buttons/SaveButton.d.ts +1 -0
  35. package/lib/buttons/SuccessButton.d.ts +1 -0
  36. package/lib/buttons/WarningButton.d.ts +1 -0
  37. package/lib/buttons/index.d.ts +1 -0
  38. package/lib/buttons/split_button/index.d.ts +1 -0
  39. package/lib/buttons/types.d.ts +2 -5
  40. package/lib/drawer/Drawer.js +10 -6
  41. package/lib/form/Field.d.ts +1 -1
  42. package/lib/form/FieldArray.d.ts +1 -1
  43. package/lib/form/FieldNumber.d.ts +1 -1
  44. package/lib/form/FieldPeriod.d.ts +1 -1
  45. package/lib/form/helpers.d.ts +1 -1
  46. package/lib/form/index.d.ts +1 -1
  47. package/lib/form/types.d.ts +1 -1
  48. package/lib/form/withFieldHOC.d.ts +1 -1
  49. package/lib/form/withFormSecurity.d.ts +1 -1
  50. package/lib/form2/helpers.d.ts +8 -0
  51. package/lib/form2/helpers.js +41 -0
  52. package/lib/form2/index.d.ts +9 -0
  53. package/lib/form2/index.js +36 -0
  54. package/lib/form2/types.d.ts +125 -0
  55. package/lib/form2/types.js +5 -0
  56. package/lib/form2/useForm/index.d.ts +5 -0
  57. package/lib/form2/useForm/index.js +203 -0
  58. package/lib/icons/helper.d.ts +4 -0
  59. package/lib/icons/helper.js +4 -0
  60. package/lib/icons/index.d.ts +4 -6
  61. package/lib/icons/index.js +14 -9
  62. package/lib/icons/types.d.ts +3 -6
  63. package/lib/index-18a64236.d.ts +23 -0
  64. package/lib/index-368f781f.d.ts +15 -0
  65. package/lib/index-43ad8140.d.ts +41 -0
  66. package/lib/index-772f9f1a.d.ts +44 -0
  67. package/lib/index-8a59cf4b.d.ts +23 -0
  68. package/lib/index-c9247c1f.d.ts +15 -0
  69. package/lib/index.d.ts +1 -0
  70. package/lib/inputs/base/InputTextBase.d.ts +1 -1
  71. package/lib/inputs/base/InputTextBase.js +18 -8
  72. package/lib/inputs/base/helpers.d.ts +1 -1
  73. package/lib/inputs/base/types.d.ts +5 -16
  74. package/lib/inputs/color/index.js +1 -1
  75. package/lib/inputs/color/types.d.ts +1 -1
  76. package/lib/inputs/date/Dialog.d.ts +1 -1
  77. package/lib/inputs/date/Dropdown.d.ts +1 -1
  78. package/lib/inputs/date/index.d.ts +1 -1
  79. package/lib/inputs/date/types.d.ts +2 -2
  80. package/lib/inputs/errorMessage/index.d.ts +1 -1
  81. package/lib/inputs/file/DefaultFile.d.ts +1 -1
  82. package/lib/inputs/file/DefaultFile.js +1 -1
  83. package/lib/inputs/file/DragDropFile.d.ts +1 -1
  84. package/lib/inputs/file/File.d.ts +1 -1
  85. package/lib/inputs/file/FileButtonSettings.d.ts +1 -1
  86. package/lib/inputs/file/helpers.d.ts +1 -1
  87. package/lib/inputs/file/index.d.ts +1 -1
  88. package/lib/inputs/file/types.d.ts +1 -1
  89. package/lib/inputs/inputHOC.d.ts +1 -1
  90. package/lib/inputs/mask/BaseMask.d.ts +1 -1
  91. package/lib/inputs/mask/BaseMask.js +9 -6
  92. package/lib/inputs/mask/Cnpj.d.ts +1 -1
  93. package/lib/inputs/mask/Cpf.d.ts +1 -1
  94. package/lib/inputs/mask/Phone.d.ts +1 -1
  95. package/lib/inputs/mask/ZipCode.d.ts +1 -1
  96. package/lib/inputs/mask/helpers.d.ts +1 -1
  97. package/lib/inputs/mask/helpers.js +1 -1
  98. package/lib/inputs/mask/index.d.ts +1 -1
  99. package/lib/inputs/mask/types.d.ts +2 -2
  100. package/lib/inputs/multiSelect/ActionButtons.d.ts +1 -1
  101. package/lib/inputs/multiSelect/Dropdown.d.ts +1 -1
  102. package/lib/inputs/multiSelect/helper.d.ts +1 -1
  103. package/lib/inputs/multiSelect/index.d.ts +1 -1
  104. package/lib/inputs/multiSelect/types.d.ts +2 -2
  105. package/lib/inputs/number/BaseNumber.d.ts +1 -1
  106. package/lib/inputs/number/BaseNumber.js +3 -2
  107. package/lib/inputs/number/Currency.d.ts +1 -1
  108. package/lib/inputs/number/Decimal.d.ts +1 -1
  109. package/lib/inputs/number/format_number.d.ts +1 -1
  110. package/lib/inputs/number/format_number.js +4 -2
  111. package/lib/inputs/number/index.d.ts +1 -1
  112. package/lib/inputs/number/types.d.ts +4 -4
  113. package/lib/inputs/period/Dialog.d.ts +1 -1
  114. package/lib/inputs/period/Dropdown.d.ts +1 -1
  115. package/lib/inputs/period/PeriodList.d.ts +1 -1
  116. package/lib/inputs/period/helper.d.ts +1 -1
  117. package/lib/inputs/period/index.d.ts +1 -1
  118. package/lib/inputs/period/index.js +8 -10
  119. package/lib/inputs/period/types.d.ts +2 -5
  120. package/lib/inputs/search/index.d.ts +1 -1
  121. package/lib/inputs/select/ActionButtons.d.ts +1 -1
  122. package/lib/inputs/select/Dropdown.d.ts +1 -1
  123. package/lib/inputs/select/helper.d.ts +1 -1
  124. package/lib/inputs/select/index.d.ts +1 -1
  125. package/lib/inputs/select/multiple/Selecteds.d.ts +2 -2
  126. package/lib/inputs/select/multiple/Selecteds.js +3 -1
  127. package/lib/inputs/select/multiple/index.d.ts +1 -1
  128. package/lib/inputs/select/multiple/index.js +3 -2
  129. package/lib/inputs/select/simple/index.d.ts +1 -1
  130. package/lib/inputs/select/simple/index.js +3 -3
  131. package/lib/inputs/select/types.d.ts +2 -1
  132. package/lib/inputs/text/index.d.ts +1 -1
  133. package/lib/inputs/text/types.d.ts +2 -3
  134. package/lib/inputs/textarea/index.d.ts +1 -1
  135. package/lib/inputs/textarea/types.d.ts +1 -1
  136. package/lib/inputs/types.d.ts +2 -2
  137. package/lib/inputs2/checkboxfield/index.d.ts +7 -0
  138. package/lib/inputs2/checkboxfield/index.js +146 -0
  139. package/lib/inputs2/colorfield/index.d.ts +9 -0
  140. package/lib/inputs2/colorfield/index.js +119 -0
  141. package/lib/inputs2/date/base/constants.d.ts +7 -0
  142. package/lib/inputs2/date/base/constants.js +43 -0
  143. package/lib/inputs2/date/base/index.d.ts +12 -0
  144. package/lib/inputs2/date/base/index.js +179 -0
  145. package/lib/inputs2/date/datefield/calendarbox.d.ts +7 -0
  146. package/lib/inputs2/date/datefield/calendarbox.js +115 -0
  147. package/lib/inputs2/date/datefield/context.d.ts +13 -0
  148. package/lib/inputs2/date/datefield/context.js +15 -0
  149. package/lib/inputs2/date/datefield/index.d.ts +9 -0
  150. package/lib/inputs2/date/datefield/index.js +334 -0
  151. package/lib/inputs2/date/datefield/triggers.d.ts +8 -0
  152. package/lib/inputs2/date/datefield/triggers.js +47 -0
  153. package/lib/inputs2/date/datefield/types.d.ts +61 -0
  154. package/lib/inputs2/date/datefield/types.js +5 -0
  155. package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +7 -0
  156. package/lib/inputs2/date/dateperiodfield/calendarbox.js +136 -0
  157. package/lib/inputs2/date/dateperiodfield/context.d.ts +13 -0
  158. package/lib/inputs2/date/dateperiodfield/context.js +17 -0
  159. package/lib/inputs2/date/dateperiodfield/index.d.ts +9 -0
  160. package/lib/inputs2/date/dateperiodfield/index.js +592 -0
  161. package/lib/inputs2/date/dateperiodfield/triggers.d.ts +6 -0
  162. package/lib/inputs2/date/dateperiodfield/triggers.js +120 -0
  163. package/lib/inputs2/date/dateperiodfield/types.d.ts +99 -0
  164. package/lib/inputs2/date/dateperiodfield/types.js +19 -0
  165. package/lib/inputs2/date/helpers.d.ts +20 -0
  166. package/lib/inputs2/date/helpers.js +62 -0
  167. package/lib/inputs2/date/types.d.ts +59 -0
  168. package/lib/inputs2/date/types.js +19 -0
  169. package/lib/inputs2/index.d.ts +29 -0
  170. package/lib/inputs2/index.js +38 -0
  171. package/lib/inputs2/mask/BaseMask.d.ts +10 -0
  172. package/lib/inputs2/mask/BaseMask.js +95 -0
  173. package/lib/inputs2/mask/Cnpj.d.ts +11 -0
  174. package/lib/inputs2/mask/Cnpj.js +57 -0
  175. package/lib/inputs2/mask/Cpf.d.ts +11 -0
  176. package/lib/inputs2/mask/Cpf.js +53 -0
  177. package/lib/inputs2/mask/Phone.d.ts +11 -0
  178. package/lib/inputs2/mask/Phone.js +26 -0
  179. package/lib/inputs2/mask/ZipCode.d.ts +11 -0
  180. package/lib/inputs2/mask/ZipCode.js +23 -0
  181. package/lib/inputs2/mask/helpers.d.ts +4 -0
  182. package/lib/inputs2/mask/helpers.js +57 -0
  183. package/lib/inputs2/number/BaseNumber.d.ts +10 -0
  184. package/lib/inputs2/number/BaseNumber.js +86 -0
  185. package/lib/inputs2/number/Currency.d.ts +11 -0
  186. package/lib/inputs2/number/Currency.js +47 -0
  187. package/lib/inputs2/number/Decimal.d.ts +11 -0
  188. package/lib/inputs2/number/Decimal.js +36 -0
  189. package/lib/inputs2/number/Number.d.ts +9 -0
  190. package/lib/inputs2/number/Number.js +49 -0
  191. package/lib/inputs2/number/format_number.d.ts +5 -0
  192. package/lib/inputs2/number/format_number.js +29 -0
  193. package/lib/inputs2/selectfield/context.d.ts +38 -0
  194. package/lib/inputs2/selectfield/context.js +15 -0
  195. package/lib/inputs2/selectfield/helpers.d.ts +6 -0
  196. package/lib/inputs2/selectfield/helpers.js +25 -0
  197. package/lib/inputs2/selectfield/index.d.ts +10 -0
  198. package/lib/inputs2/selectfield/index.js +491 -0
  199. package/lib/inputs2/selectfield/item.d.ts +11 -0
  200. package/lib/inputs2/selectfield/item.js +85 -0
  201. package/lib/inputs2/selectfield/listbox.d.ts +7 -0
  202. package/lib/inputs2/selectfield/listbox.js +103 -0
  203. package/lib/inputs2/selectfield/search.d.ts +7 -0
  204. package/lib/inputs2/selectfield/search.js +71 -0
  205. package/lib/inputs2/selectfield/selections.d.ts +10 -0
  206. package/lib/inputs2/selectfield/selections.js +86 -0
  207. package/lib/inputs2/selectfield/triggers.d.ts +8 -0
  208. package/lib/inputs2/selectfield/triggers.js +100 -0
  209. package/lib/inputs2/selectfield/types.d.ts +55 -0
  210. package/lib/inputs2/selectfield/types.js +21 -0
  211. package/lib/inputs2/slot/index.d.ts +14 -0
  212. package/lib/inputs2/slot/index.js +47 -0
  213. package/lib/inputs2/textfield/index.d.ts +8 -0
  214. package/lib/inputs2/textfield/index.js +159 -0
  215. package/lib/internals/types.d.ts +1 -17
  216. package/lib/labels/DangerLabel.d.ts +1 -0
  217. package/lib/labels/DefaultLabel.d.ts +3 -5
  218. package/lib/labels/DefaultLabel.js +15 -7
  219. package/lib/labels/InfoLabel.d.ts +1 -0
  220. package/lib/labels/PrimaryLabel.d.ts +1 -0
  221. package/lib/labels/SuccessLabel.d.ts +1 -0
  222. package/lib/labels/WarningLabel.d.ts +1 -0
  223. package/lib/labels/index.d.ts +3 -2
  224. package/lib/labels/types.d.ts +2 -5
  225. package/lib/list/Header.d.ts +1 -0
  226. package/lib/list/Item.d.ts +3 -5
  227. package/lib/list/Item.js +17 -12
  228. package/lib/list/helpers.d.ts +1 -0
  229. package/lib/list/index.d.ts +1 -0
  230. package/lib/list/types.d.ts +4 -6
  231. package/lib/menus/sidenav/ExpandMenu.d.ts +2 -2
  232. package/lib/menus/sidenav/MenuLink.d.ts +4 -7
  233. package/lib/menus/sidenav/MenuLink.js +20 -11
  234. package/lib/menus/sidenav/NavMenuGroup.d.ts +2 -2
  235. package/lib/menus/sidenav/NavMenuItem.d.ts +4 -7
  236. package/lib/menus/sidenav/NavMenuItem.js +16 -12
  237. package/lib/menus/sidenav/NavSubMenuItem.d.ts +2 -2
  238. package/lib/menus/sidenav/helpers.d.ts +2 -2
  239. package/lib/menus/sidenav/index.d.ts +2 -2
  240. package/lib/menus/sidenav/popup_menu_search/EmptyList.d.ts +2 -2
  241. package/lib/menus/sidenav/popup_menu_search/index.d.ts +2 -2
  242. package/lib/menus/sidenav/types.d.ts +6 -6
  243. package/lib/popover/PopoverText.js +11 -2
  244. package/lib/popover/types.d.ts +1 -0
  245. package/lib/textContent/index.d.ts +6 -11
  246. package/lib/textContent/index.js +20 -11
  247. package/lib/tooltip/TooltipContent.d.ts +7 -0
  248. package/lib/tooltip/TooltipContent.js +65 -0
  249. package/lib/tooltip/index.d.ts +4 -3
  250. package/lib/tooltip/index.js +36 -53
  251. package/lib/tooltip/types.d.ts +25 -3
  252. package/lib/tooltip/useTooltip.d.ts +30 -0
  253. package/lib/tooltip/useTooltip.js +128 -0
  254. package/package.json +4 -3
  255. package/lib/inputs/base/Label.d.ts +0 -14
  256. package/lib/inputs/base/Label.js +0 -35
  257. package/lib/internals/withTooltip.d.ts +0 -12
  258. package/lib/internals/withTooltip.js +0 -172
@@ -0,0 +1,592 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Input = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _reactImask = require("react-imask");
10
+ var _reactDom = require("react-dom");
11
+ var _moment = _interopRequireDefault(require("moment"));
12
+ var _hint = _interopRequireDefault(require("../../../hint"));
13
+ var _icons = _interopRequireDefault(require("../../../icons"));
14
+ var _gridlayout = _interopRequireDefault(require("../../../gridlayout"));
15
+ var _tooltip = require("../../../tooltip");
16
+ var _helpers = require("../../../form2/helpers");
17
+ var _permissionValidations = require("../../../permissionValidations");
18
+ var _types = require("../types");
19
+ var BaseDate = _interopRequireWildcard(require("../base"));
20
+ var _helpers2 = require("../helpers");
21
+ var _triggers = require("./triggers");
22
+ var _calendarbox = require("./calendarbox");
23
+ var _context = require("./context");
24
+ const _excluded = ["label", "errors", "initialName", "finalName", "onDeniedActions", "permissionAttr", "customClass", "customClassLabel", "customClassWrapper", "customClassInputContainer", "labelUppercase", "undigitable", "skeletonize", "hintPosition", "gridLayout", "themePopover", "popoverAlign", "showCalendarButton", "textAlign", "openCalendarOnFocus", "shouldCloseOnSelect", "showPredefinedPeriodsButton", "showClearDateButton", "placeholder", "tooltip", "tooltipPosition", "tooltipWidth"];
25
+ /* eslint-disable @typescript-eslint/no-use-before-define */
26
+ 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); }
27
+ 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; }
28
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
29
+ 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); }
30
+ function _objectWithoutProperties(e, t) { if (null == e) return {}; var o, r, i = _objectWithoutPropertiesLoose(e, t); if (Object.getOwnPropertySymbols) { var n = Object.getOwnPropertySymbols(e); for (r = 0; r < n.length; r++) o = n[r], -1 === t.indexOf(o) && {}.propertyIsEnumerable.call(e, o) && (i[o] = e[o]); } return i; }
31
+ function _objectWithoutPropertiesLoose(r, e) { if (null == r) return {}; var t = {}; for (var n in r) if ({}.hasOwnProperty.call(r, n)) { if (-1 !== e.indexOf(n)) continue; t[n] = r[n]; } return t; }
32
+ const Input = exports.Input = /*#__PURE__*/_react.default.forwardRef((props, __) => {
33
+ const {
34
+ label,
35
+ errors,
36
+ initialName = 'inicial',
37
+ finalName = 'final',
38
+ onDeniedActions = undefined,
39
+ permissionAttr = undefined,
40
+ customClass = '',
41
+ customClassLabel = '',
42
+ customClassWrapper = '',
43
+ customClassInputContainer = '',
44
+ labelUppercase = false,
45
+ undigitable = false,
46
+ skeletonize = false,
47
+ hintPosition = 'below',
48
+ gridLayout = undefined,
49
+ themePopover = 'light',
50
+ popoverAlign = 'left',
51
+ showCalendarButton = true,
52
+ textAlign = 'left',
53
+ openCalendarOnFocus = true,
54
+ shouldCloseOnSelect = true,
55
+ showPredefinedPeriodsButton = true,
56
+ showClearDateButton = true,
57
+ placeholder = _helpers2.TOKEN_PTBR_FORMAT,
58
+ tooltip,
59
+ tooltipPosition,
60
+ tooltipWidth
61
+ } = props,
62
+ rest = _objectWithoutProperties(props, _excluded);
63
+ const onDenied = _react.default.useMemo(() => {
64
+ return onDeniedActions || (0, _permissionValidations.actionsOnPermissionDenied)(_helpers2.options, permissionAttr);
65
+ }, [onDeniedActions, permissionAttr]);
66
+ const {
67
+ hideContent,
68
+ unvisible
69
+ } = onDenied;
70
+ const [selectedDate, setSelectedDate] = _react.default.useState({
71
+ inicial: null,
72
+ final: null
73
+ });
74
+ const [calendarBoxOpen, setCalendarBoxOpen] = _react.default.useState(false);
75
+ const [activeDescendant, setActiveDescendant] = _react.default.useState((0, _moment.default)().format(_helpers2.TOKEN_ISO_FORMAT));
76
+ const [calendarDisplayDate, setCalendarDisplayDate] = _react.default.useState((0, _moment.default)());
77
+ const calendarRef = _react.default.useRef(null);
78
+ const inputRootRef = _react.default.useRef(null);
79
+ const finalInputRef = _react.default.useRef(null);
80
+ const initialInputRef = _react.default.useRef(null);
81
+ const dateContainerRef = _react.default.useRef(null);
82
+ const initialInputName = _react.default.useMemo(() => String(props.name).concat('.').concat(initialName), [props.name, initialName]);
83
+ const finalInputName = _react.default.useMemo(() => String(props.name).concat('.').concat(finalName), [props.name, finalName]);
84
+ const {
85
+ value: initialMaskedValue,
86
+ setValue: setInitialMaskValue,
87
+ unmaskedValue: initialUnmaskedValue
88
+ } = (0, _reactImask.useIMask)({
89
+ mask: _helpers2.TOKEN_MASK,
90
+ lazy: false,
91
+ placeholderChar: '_'
92
+ }, {
93
+ ref: initialInputRef,
94
+ defaultValue: selectedDate.inicial?.format(_helpers2.TOKEN_PTBR_FORMAT),
95
+ onComplete: value => {
96
+ const date = (0, _moment.default)(value, _helpers2.TOKEN_PTBR_FORMAT);
97
+ if (date.isValid()) {
98
+ handleChangeUpdateDateState({
99
+ date,
100
+ inputType: 'initial',
101
+ typing: true
102
+ });
103
+ }
104
+ }
105
+ });
106
+ const {
107
+ value: finalMaskedValue,
108
+ setValue: setFinalMaskValue,
109
+ unmaskedValue: finalUnmaskedValue
110
+ } = (0, _reactImask.useIMask)({
111
+ mask: _helpers2.TOKEN_MASK,
112
+ lazy: false,
113
+ placeholderChar: '_'
114
+ }, {
115
+ ref: finalInputRef,
116
+ defaultValue: selectedDate.final?.format(_helpers2.TOKEN_PTBR_FORMAT),
117
+ onComplete: value => {
118
+ const date = (0, _moment.default)(value, _helpers2.TOKEN_PTBR_FORMAT);
119
+ if (date.isValid()) {
120
+ handleChangeUpdateDateState({
121
+ date,
122
+ inputType: 'final',
123
+ typing: true
124
+ });
125
+ }
126
+ }
127
+ });
128
+ const hasLabel = !_lodash.default.isEmpty(props?.label);
129
+ const isReadOnly = Boolean(props.readOnly || onDenied.readOnly);
130
+ const isDisabled = Boolean(props.disabled || onDenied.disabled);
131
+ const hasHintMessages = Boolean(props.hint?.length);
132
+ const hasValidationErrors = Boolean(errors?.length);
133
+ const handleChangeSelectedDate = _react.default.useCallback(object => setSelectedDate(object), []);
134
+ const handleChangeCalendarBoxState = _react.default.useCallback(value => setCalendarBoxOpen(value), []);
135
+ const handleChangeActiveDescendant = _react.default.useCallback(value => setActiveDescendant(value), []);
136
+ const handleChangeCalendarDisplayDate = _react.default.useCallback(value => setCalendarDisplayDate(value), []);
137
+ const handleChangePreviousMonth = _react.default.useCallback(() => setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().subtract(1, 'month')), []);
138
+ const handleChangeNextMonth = _react.default.useCallback(() => setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().add(1, 'month')), []);
139
+ const handleNavigateWithDays = _react.default.useCallback(offset => {
140
+ setCalendarDisplayDate(prevDisplayDate => {
141
+ const daySelected = prevDisplayDate.clone().add(offset, 'day');
142
+ handleChangeActiveDescendant(daySelected.format(_helpers2.TOKEN_ISO_FORMAT));
143
+ return daySelected;
144
+ });
145
+ }, []);
146
+ const handleNavigateWithWeeks = _react.default.useCallback(when => {
147
+ setCalendarDisplayDate(prevDisplayDate => {
148
+ let daySelected = prevDisplayDate;
149
+ if (when === 'end') daySelected = prevDisplayDate.clone().endOf('week');
150
+ if (when === 'start') daySelected = prevDisplayDate.clone().startOf('week');
151
+ handleChangeActiveDescendant(daySelected.format(_helpers2.TOKEN_ISO_FORMAT));
152
+ return daySelected;
153
+ });
154
+ }, []);
155
+ const verifyPeriodSelectedIsValid = _react.default.useCallback(() => {
156
+ const objectValue = props?.value;
157
+ const isValidInitialValue = !_lodash.default.isEmpty(objectValue[initialName]);
158
+ const isValidFinalValue = !_lodash.default.isEmpty(objectValue[finalName]);
159
+ return isValidInitialValue && isValidFinalValue;
160
+ }, [props?.value, initialName, finalName]);
161
+ const handleOnClickClearSelectedPeriod = _react.default.useCallback(() => {
162
+ props.onChange?.({
163
+ target: {
164
+ name: props.name,
165
+ value: {
166
+ [initialName]: '',
167
+ [finalName]: ''
168
+ }
169
+ }
170
+ });
171
+ setSelectedDate(() => ({
172
+ inicial: null,
173
+ final: null
174
+ }));
175
+ setInitialMaskValue('');
176
+ setFinalMaskValue('');
177
+ handleChangeCalendarBoxState(false);
178
+ }, [props.onChange]);
179
+ const handleChangeUpdateDateState = _react.default.useCallback(params => {
180
+ const {
181
+ date,
182
+ inputType,
183
+ typing
184
+ } = params;
185
+ const rawDate = date.clone();
186
+ const verifyDateRangeOrder = (initialDate, finalDate) => {
187
+ const inicial = initialDate?.isAfter(finalDate) ? finalDate : initialDate;
188
+ const final = initialDate?.isAfter(finalDate) ? initialDate : finalDate;
189
+ return {
190
+ inicial,
191
+ final
192
+ };
193
+ };
194
+ switch (inputType) {
195
+ case 'initial':
196
+ {
197
+ setSelectedDate(prevSelectedDate => {
198
+ const {
199
+ inicial,
200
+ final
201
+ } = verifyDateRangeOrder(rawDate, prevSelectedDate.final);
202
+ const updatedState = {
203
+ inicial,
204
+ final
205
+ };
206
+ return updatedState;
207
+ });
208
+ const {
209
+ inicial,
210
+ final
211
+ } = verifyDateRangeOrder(rawDate, selectedDate.final);
212
+ props.onChange?.({
213
+ target: {
214
+ name: props.name,
215
+ value: {
216
+ [initialName]: inicial?.format(_helpers2.TOKEN_ISO_FORMAT),
217
+ [finalName]: final?.format(_helpers2.TOKEN_ISO_FORMAT)
218
+ }
219
+ }
220
+ });
221
+ requestAnimationFrame(() => {
222
+ if (!typing) finalInputRef.current?.focus?.();
223
+ });
224
+ break;
225
+ }
226
+ case 'final':
227
+ {
228
+ setSelectedDate(prevSelectedDate => {
229
+ const {
230
+ inicial,
231
+ final
232
+ } = verifyDateRangeOrder(prevSelectedDate.inicial, rawDate);
233
+ const updatedState = {
234
+ inicial,
235
+ final
236
+ };
237
+ return updatedState;
238
+ });
239
+ const {
240
+ inicial,
241
+ final
242
+ } = verifyDateRangeOrder(selectedDate.inicial, rawDate);
243
+ props.onChange?.({
244
+ target: {
245
+ name: props.name,
246
+ value: {
247
+ [initialName]: inicial?.format(_helpers2.TOKEN_ISO_FORMAT),
248
+ [finalName]: final?.format(_helpers2.TOKEN_ISO_FORMAT)
249
+ }
250
+ }
251
+ });
252
+ if (shouldCloseOnSelect) handleChangeCalendarBoxState(false);
253
+ break;
254
+ }
255
+ default:
256
+ break;
257
+ }
258
+ setCalendarDisplayDate(rawDate.clone());
259
+ }, [props.name, props.onChange, initialName, finalName, selectedDate, shouldCloseOnSelect]);
260
+ const handleChangeUpdateDateStateWithPredefinedPeriod = _react.default.useCallback(period => {
261
+ const localOnChange = (initialDate, finalDate) => {
262
+ const valueToUpdate = {
263
+ [initialName]: initialDate.format(_helpers2.TOKEN_ISO_FORMAT),
264
+ [finalName]: finalDate.format(_helpers2.TOKEN_ISO_FORMAT)
265
+ };
266
+ setSelectedDate(() => {
267
+ const updatedState = {
268
+ inicial: initialDate.clone(),
269
+ final: finalDate.clone()
270
+ };
271
+ return updatedState;
272
+ });
273
+ props.onChange?.({
274
+ target: {
275
+ name: props.name,
276
+ value: valueToUpdate
277
+ }
278
+ });
279
+ };
280
+ switch (period) {
281
+ case 'today':
282
+ {
283
+ const date = (0, _moment.default)();
284
+ localOnChange(date, date);
285
+ break;
286
+ }
287
+ case 'week':
288
+ {
289
+ const startOfWeek = (0, _moment.default)().startOf('week');
290
+ const endOfWeek = (0, _moment.default)().endOf('week');
291
+ localOnChange(startOfWeek, endOfWeek);
292
+ break;
293
+ }
294
+ case 'lastweek':
295
+ {
296
+ const startOfLastWeek = (0, _moment.default)().add(-1, 'week').startOf('week');
297
+ const endOfLastWeek = (0, _moment.default)().add(-1, 'week').endOf('week');
298
+ localOnChange(startOfLastWeek, endOfLastWeek);
299
+ break;
300
+ }
301
+ case 'last15':
302
+ {
303
+ const startOfLastFifteenDays = (0, _moment.default)().add(-14, 'd');
304
+ const endOfLastFifteenDays = (0, _moment.default)();
305
+ localOnChange(startOfLastFifteenDays, endOfLastFifteenDays);
306
+ break;
307
+ }
308
+ case 'month':
309
+ {
310
+ const startOfMonth = (0, _moment.default)().startOf('month');
311
+ const endOfMonth = (0, _moment.default)().endOf('month');
312
+ localOnChange(startOfMonth, endOfMonth);
313
+ break;
314
+ }
315
+ case 'lastmonth':
316
+ {
317
+ const startOfMonth = (0, _moment.default)().add(-1, 'month').startOf('month');
318
+ const endOfMonth = (0, _moment.default)().add(-1, 'month').endOf('month');
319
+ localOnChange(startOfMonth, endOfMonth);
320
+ break;
321
+ }
322
+ default:
323
+ break;
324
+ }
325
+ finalInputRef?.current?.focus?.();
326
+ if (shouldCloseOnSelect) handleChangeCalendarBoxState(false);
327
+ }, [props.name, props.onChange, initialName, finalName]);
328
+ const handleOnBlurMaskInput = (event, inputType) => {
329
+ props?.onBlur?.(event);
330
+ if (inputType === 'initial') {
331
+ if (event.relatedTarget?.id !== finalInputName) handleChangeCalendarBoxState(false);
332
+ if (calendarBoxOpen) {
333
+ handleChangeActiveDescendant((selectedDate.inicial ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
334
+ setCalendarDisplayDate(selectedDate.inicial ?? (0, _moment.default)());
335
+ }
336
+ if (_lodash.default.size(initialUnmaskedValue) !== 8) {
337
+ const date = (0, _moment.default)(selectedDate.inicial, _helpers2.TOKEN_ISO_FORMAT);
338
+ if (date.isValid()) {
339
+ setInitialMaskValue(date.format(_helpers2.TOKEN_PTBR_FORMAT));
340
+ }
341
+ }
342
+ }
343
+ if (inputType === 'final') {
344
+ if (event.relatedTarget?.id !== initialInputName) handleChangeCalendarBoxState(false);
345
+ if (calendarBoxOpen) {
346
+ handleChangeActiveDescendant((selectedDate.final ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
347
+ setCalendarDisplayDate(selectedDate.final ?? (0, _moment.default)());
348
+ }
349
+ if (_lodash.default.size(finalUnmaskedValue) !== 8) {
350
+ const date = (0, _moment.default)(selectedDate.final, _helpers2.TOKEN_ISO_FORMAT);
351
+ if (date.isValid()) {
352
+ setFinalMaskValue(date.format(_helpers2.TOKEN_PTBR_FORMAT));
353
+ }
354
+ }
355
+ }
356
+ };
357
+ const handleOnFocusMaskInput = (event, inputType) => {
358
+ props?.onFocus?.(event);
359
+ if (!calendarBoxOpen && openCalendarOnFocus) {
360
+ setCalendarBoxOpen(true);
361
+ }
362
+ if (inputType === 'initial') {
363
+ handleChangeActiveDescendant((selectedDate.inicial ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
364
+ setCalendarDisplayDate(selectedDate.inicial ?? (0, _moment.default)());
365
+ }
366
+ if (inputType === 'final') {
367
+ handleChangeActiveDescendant((selectedDate.final ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
368
+ setCalendarDisplayDate(selectedDate.final ?? (0, _moment.default)());
369
+ }
370
+ };
371
+ const handleOnKeyDownMaskInput = (event, inputType) => {
372
+ props?.onKeyDown?.(event);
373
+ if (calendarBoxOpen && event.key && !event.shiftKey && !event.altKey && event.key === _types.Keys.enter) {
374
+ event.preventDefault();
375
+ const rawDate = (0, _moment.default)(_lodash.default.toString(activeDescendant), _helpers2.TOKEN_ISO_FORMAT);
376
+ handleChangeUpdateDateState({
377
+ date: rawDate,
378
+ inputType
379
+ });
380
+ }
381
+ };
382
+ const handleOnPaste = event => {
383
+ if (undigitable) {
384
+ event.preventDefault();
385
+ } else {
386
+ props.onPaste?.(event);
387
+ }
388
+ };
389
+ const handleOnBeforeInput = event => {
390
+ if (undigitable) {
391
+ event.preventDefault();
392
+ } else {
393
+ props.onBeforeInput?.(event);
394
+ }
395
+ };
396
+ const handleOnKeyDown = event => {
397
+ if (calendarBoxOpen && event.key && !event.shiftKey && !event.altKey && _helpers2.NAVIGATION_KEYS.includes(event.key)) {
398
+ event.preventDefault();
399
+ switch (event.key) {
400
+ case _types.Keys.arrowLeft:
401
+ handleNavigateWithDays(-1);
402
+ break;
403
+ case _types.Keys.arrowRight:
404
+ handleNavigateWithDays(1);
405
+ break;
406
+ case _types.Keys.arrowUp:
407
+ handleNavigateWithDays(-7);
408
+ break;
409
+ case _types.Keys.arrowDown:
410
+ handleNavigateWithDays(7);
411
+ break;
412
+ case _types.Keys.pageUp:
413
+ handleChangeNextMonth();
414
+ break;
415
+ case _types.Keys.pageDown:
416
+ handleChangePreviousMonth();
417
+ break;
418
+ case _types.Keys.home:
419
+ handleNavigateWithWeeks('start');
420
+ break;
421
+ case _types.Keys.end:
422
+ handleNavigateWithWeeks('end');
423
+ break;
424
+ case _types.Keys.escape:
425
+ handleChangeCalendarBoxState(false);
426
+ break;
427
+ default:
428
+ break;
429
+ }
430
+ }
431
+ };
432
+ _react.default.useEffect(() => {
433
+ if (props?.value) {
434
+ const objectValue = props.value;
435
+ const initialDate = (0, _moment.default)(_lodash.default.toString(objectValue[initialName]), _helpers2.TOKEN_ISO_FORMAT);
436
+ const finalDate = (0, _moment.default)(_lodash.default.toString(objectValue[finalName]), _helpers2.TOKEN_ISO_FORMAT);
437
+ setSelectedDate(() => ({
438
+ inicial: initialDate.isValid() ? initialDate : null,
439
+ final: finalDate.isValid() ? finalDate : null
440
+ }));
441
+ setInitialMaskValue(initialDate.format(_helpers2.TOKEN_PTBR_FORMAT));
442
+ setFinalMaskValue(finalDate.format(_helpers2.TOKEN_PTBR_FORMAT));
443
+ }
444
+ }, [props?.value]);
445
+ const contextValues = _react.default.useMemo(() => ({
446
+ isReadOnly,
447
+ isDisabled,
448
+ undigitable,
449
+ skeletonize,
450
+ dateContainerRef,
451
+ calendarBoxOpen,
452
+ activeDescendant,
453
+ selectedDate,
454
+ initialInputId: initialInputName,
455
+ finalInputId: finalInputName,
456
+ initialInputRef,
457
+ finalInputRef,
458
+ showCalendarButton,
459
+ calendarDisplayDate,
460
+ hasValidationErrors,
461
+ openCalendarOnFocus,
462
+ showPredefinedPeriodsButton,
463
+ showClearDateButton,
464
+ handleChangeSelectedDate,
465
+ handleChangePreviousMonth,
466
+ handleChangeNextMonth,
467
+ handleChangeCalendarBoxState,
468
+ handleChangeActiveDescendant,
469
+ handleChangeCalendarDisplayDate,
470
+ handleChangeUpdateDateState,
471
+ handleOnClickClearSelectedPeriod,
472
+ handleChangeUpdateDateStateWithPredefinedPeriod,
473
+ hasValidPeriodSelected: verifyPeriodSelectedIsValid()
474
+ }), [isReadOnly, isDisabled, undigitable, skeletonize, initialInputName, finalInputName, selectedDate, calendarBoxOpen, activeDescendant, calendarDisplayDate, hasValidationErrors, openCalendarOnFocus, showClearDateButton]);
475
+ if (unvisible || hideContent) return null;
476
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_gridlayout.default, {
477
+ cols: gridLayout
478
+ }, /*#__PURE__*/_react.default.createElement(_context.DatePeriodFieldContext.Provider, {
479
+ value: contextValues
480
+ }, /*#__PURE__*/_react.default.createElement(BaseDate.Root, {
481
+ ref: inputRootRef,
482
+ "data-testid": "test-date-period-field-root",
483
+ "data-state-error": hasValidationErrors,
484
+ customClassWrapper: customClassWrapper
485
+ }, hasLabel && /*#__PURE__*/_react.default.createElement(BaseDate.Label, {
486
+ "data-testid": "test-date-period-field-label",
487
+ label: label,
488
+ inputId: initialInputName,
489
+ hint: props?.hint,
490
+ isDisabled: isDisabled,
491
+ isReadOnly: isReadOnly,
492
+ skeletonize: skeletonize,
493
+ required: props?.required,
494
+ hintPosition: hintPosition,
495
+ themePopover: themePopover,
496
+ popoverAlign: popoverAlign,
497
+ labelUppercase: labelUppercase,
498
+ hasHintMessages: hasHintMessages,
499
+ customClassLabel: customClassLabel
500
+ }), /*#__PURE__*/_react.default.createElement(BaseDate.Container, {
501
+ ref: dateContainerRef,
502
+ "data-testid": "test-date-period-field-container",
503
+ onKeyDown: handleOnKeyDown,
504
+ skeletonize: skeletonize,
505
+ customClassInputContainer: customClassInputContainer
506
+ }, /*#__PURE__*/_react.default.createElement(BaseDate.Input, _extends({}, _lodash.default.omit(rest, ['initialRef', 'finalRef']), {
507
+ ref: (0, _helpers.mergeRefs)(initialInputRef, props?.initialRef),
508
+ id: initialInputName,
509
+ name: initialInputName,
510
+ value: initialMaskedValue,
511
+ readOnly: isReadOnly,
512
+ disabled: isDisabled,
513
+ customClass: customClass,
514
+ tabIndex: !isReadOnly && !skeletonize ? 0 : -1,
515
+ placeholder: placeholder,
516
+ "aria-autocomplete": "list",
517
+ "aria-activedescendant": activeDescendant,
518
+ "aria-expanded": calendarBoxOpen,
519
+ "aria-controls": initialInputName,
520
+ "aria-labelledby": initialInputName,
521
+ "data-testid": "test-date-period-field-initial-input",
522
+ "data-state-is-period-input": true,
523
+ "data-state-error": hasValidationErrors,
524
+ "data-state-read-only": isReadOnly,
525
+ "data-state-text-align": textAlign,
526
+ "data-state-undigitable": undigitable,
527
+ "data-state-skeletonize": skeletonize,
528
+ onPaste: handleOnPaste,
529
+ onBeforeInput: handleOnBeforeInput,
530
+ onBlur: event => handleOnBlurMaskInput(event, 'initial'),
531
+ onFocus: event => handleOnFocusMaskInput(event, 'initial'),
532
+ onKeyDown: event => handleOnKeyDownMaskInput(event, 'initial')
533
+ })), /*#__PURE__*/_react.default.createElement("span", {
534
+ className: "separator",
535
+ "data-state-disabled": isDisabled,
536
+ "data-state-read-only": isReadOnly,
537
+ onMouseDown: event => {
538
+ event.preventDefault();
539
+ }
540
+ }, /*#__PURE__*/_react.default.createElement(_icons.default, {
541
+ name: "arrow_right",
542
+ size: 10
543
+ })), /*#__PURE__*/_react.default.createElement(BaseDate.Input, _extends({}, _lodash.default.omit(rest, ['initialRef', 'finalRef']), {
544
+ ref: (0, _helpers.mergeRefs)(finalInputRef, props?.finalRef),
545
+ id: finalInputName,
546
+ name: finalInputName,
547
+ value: finalMaskedValue,
548
+ readOnly: isReadOnly,
549
+ disabled: isDisabled,
550
+ customClass: customClass,
551
+ tabIndex: !isReadOnly && !skeletonize ? 0 : -1,
552
+ placeholder: placeholder,
553
+ "aria-autocomplete": "list",
554
+ "aria-activedescendant": activeDescendant,
555
+ "aria-expanded": calendarBoxOpen,
556
+ "aria-controls": finalInputName,
557
+ "aria-labelledby": finalInputName,
558
+ "data-testid": "test-date-period-field-final-input",
559
+ "data-state-is-period-input": true,
560
+ "data-state-error": hasValidationErrors,
561
+ "data-state-read-only": isReadOnly,
562
+ "data-state-text-align": textAlign,
563
+ "data-state-undigitable": undigitable,
564
+ "data-state-skeletonize": skeletonize,
565
+ onPaste: handleOnPaste,
566
+ onBeforeInput: handleOnBeforeInput,
567
+ onBlur: event => handleOnBlurMaskInput(event, 'final'),
568
+ onFocus: event => handleOnFocusMaskInput(event, 'final'),
569
+ onKeyDown: event => handleOnKeyDownMaskInput(event, 'final')
570
+ })), /*#__PURE__*/_react.default.createElement(_triggers.Triggers, null)), calendarBoxOpen && !hideContent && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_calendarbox.CalendarBox, {
571
+ ref: calendarRef
572
+ }), document.body), hintPosition === 'below' && /*#__PURE__*/_react.default.createElement(_hint.default, {
573
+ customClass: "hint",
574
+ description: props.hint,
575
+ disabled: isDisabled,
576
+ skeletonize: skeletonize,
577
+ visible: hasHintMessages
578
+ }), hasValidationErrors && /*#__PURE__*/_react.default.createElement("span", {
579
+ "data-testid": "test-date-period-field-list-errors",
580
+ className: "error",
581
+ "data-state-skeletonize": skeletonize,
582
+ "aria-describedby": String(label).concat('-errors')
583
+ }, errors?.map((error, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
584
+ key: `${index + 1}-${error}`
585
+ }, error, "\xA0")))))), /*#__PURE__*/_react.default.createElement(_tooltip.Tooltip, {
586
+ targetRef: inputRootRef,
587
+ text: tooltip,
588
+ width: tooltipWidth,
589
+ position: tooltipPosition
590
+ }));
591
+ });
592
+ Input.displayName = 'DatePeriodFieldInput';
@@ -0,0 +1,6 @@
1
+ declare const Triggers: {
2
+ (): JSX.Element;
3
+ displayName: string;
4
+ };
5
+
6
+ export { Triggers };