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,334 @@
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 _uuid = require("uuid");
11
+ var _reactDom = require("react-dom");
12
+ var _moment = _interopRequireDefault(require("moment"));
13
+ var _hint = _interopRequireDefault(require("../../../hint"));
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", "tooltip", "tooltipPosition", "tooltipWidth", "onDeniedActions", "permissionAttr", "customClass", "customClassLabel", "customClassWrapper", "customClassInputContainer", "textAlign", "labelUppercase", "skeletonize", "hintPosition", "gridLayout", "themePopover", "popoverAlign", "showCalendarButton", "openCalendarOnFocus", "undigitable", "shouldCloseOnSelect", "showClearDateButton", "placeholder"];
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, ref) => {
33
+ const {
34
+ label,
35
+ errors,
36
+ tooltip,
37
+ tooltipPosition,
38
+ tooltipWidth,
39
+ onDeniedActions = undefined,
40
+ permissionAttr = undefined,
41
+ customClass = '',
42
+ customClassLabel = '',
43
+ customClassWrapper = '',
44
+ customClassInputContainer = '',
45
+ textAlign = 'left',
46
+ labelUppercase = false,
47
+ skeletonize = false,
48
+ hintPosition = 'below',
49
+ gridLayout = undefined,
50
+ themePopover = 'light',
51
+ popoverAlign = 'left',
52
+ showCalendarButton = true,
53
+ openCalendarOnFocus = true,
54
+ undigitable = false,
55
+ shouldCloseOnSelect = true,
56
+ showClearDateButton = true,
57
+ placeholder = _helpers2.TOKEN_PTBR_FORMAT
58
+ } = props,
59
+ rest = _objectWithoutProperties(props, _excluded);
60
+ const onDenied = _react.default.useMemo(() => {
61
+ return onDeniedActions || (0, _permissionValidations.actionsOnPermissionDenied)(_helpers2.options, permissionAttr);
62
+ }, [onDeniedActions, permissionAttr]);
63
+ const {
64
+ hideContent,
65
+ unvisible
66
+ } = onDenied;
67
+ const [calendarBoxOpen, setCalendarBoxOpen] = _react.default.useState(false);
68
+ const [activeDescendant, setActiveDescendant] = _react.default.useState((0, _moment.default)().format(_helpers2.TOKEN_ISO_FORMAT));
69
+ const [selectedDate, setSelectedDate] = _react.default.useState(null);
70
+ const [calendarDisplayDate, setCalendarDisplayDate] = _react.default.useState(selectedDate ?? (0, _moment.default)());
71
+ const calendarRef = _react.default.useRef(null);
72
+ const inputRootRef = _react.default.useRef(null);
73
+ const dateInputRef = _react.default.useRef(null);
74
+ const dateContainerRef = _react.default.useRef(null);
75
+ const {
76
+ setValue: setMaskValue,
77
+ unmaskedValue,
78
+ value: maskedValue
79
+ } = (0, _reactImask.useIMask)({
80
+ mask: _helpers2.TOKEN_MASK,
81
+ lazy: false,
82
+ placeholderChar: '_'
83
+ }, {
84
+ ref: dateInputRef,
85
+ defaultValue: selectedDate?.format(_helpers2.TOKEN_PTBR_FORMAT),
86
+ onComplete: value => {
87
+ const date = (0, _moment.default)(value, _helpers2.TOKEN_PTBR_FORMAT);
88
+ if (date.isValid()) {
89
+ handleUpdateDateState(date);
90
+ }
91
+ }
92
+ });
93
+ const inputId = _react.default.useMemo(() => props.id || props.name || (0, _uuid.v1)(), [props.id, props.name]);
94
+ const hasLabel = !_lodash.default.isEmpty(props?.label);
95
+ const isReadOnly = Boolean(props.readOnly || onDenied.readOnly);
96
+ const isDisabled = Boolean(props.disabled || onDenied.disabled);
97
+ const hasHintMessages = Boolean(props.hint?.length);
98
+ const hasValidationErrors = Boolean(errors?.length);
99
+ const hasValidDateSelected = !_lodash.default.isEmpty(props?.value);
100
+ const handleUpdateDateState = _react.default.useCallback(date => {
101
+ const dateIsoFormat = date.format(_helpers2.TOKEN_ISO_FORMAT);
102
+ setSelectedDate(date.clone());
103
+ setCalendarDisplayDate(date.clone());
104
+ props.onChange?.({
105
+ target: {
106
+ name: props.name,
107
+ value: dateIsoFormat
108
+ }
109
+ });
110
+ if (shouldCloseOnSelect) handleCloseCalendar();
111
+ }, [selectedDate, props.name, props.onChange, shouldCloseOnSelect]);
112
+ const handleOpenCalendar = _react.default.useCallback(() => setCalendarBoxOpen(true), []);
113
+ const handleCloseCalendar = _react.default.useCallback(() => setCalendarBoxOpen(false), []);
114
+ const handleNextMonth = _react.default.useCallback(() => setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().add(1, 'month')), []);
115
+ const handlePreviousMonth = _react.default.useCallback(() => setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().subtract(1, 'month')), []);
116
+ const handleChangeCalendarBoxState = _react.default.useCallback(() => {
117
+ setCalendarBoxOpen(prevState => {
118
+ if (dateInputRef.current !== document.activeElement) {
119
+ dateInputRef?.current?.focus?.();
120
+ }
121
+ return !prevState;
122
+ });
123
+ }, []);
124
+ const handleNavigateWithDays = _react.default.useCallback(offset => {
125
+ setCalendarDisplayDate(prevDisplayDate => {
126
+ const daySelected = prevDisplayDate.clone().add(offset, 'day');
127
+ setActiveDescendant(daySelected.format(_helpers2.TOKEN_ISO_FORMAT));
128
+ return daySelected;
129
+ });
130
+ }, []);
131
+ const handleNavigateWithWeeks = _react.default.useCallback(when => {
132
+ setCalendarDisplayDate(prevDisplayDate => {
133
+ let daySelected = prevDisplayDate;
134
+ if (when === 'end') daySelected = prevDisplayDate.clone().endOf('week');
135
+ if (when === 'start') daySelected = prevDisplayDate.clone().startOf('week');
136
+ setActiveDescendant(daySelected.format(_helpers2.TOKEN_ISO_FORMAT));
137
+ return daySelected;
138
+ });
139
+ }, []);
140
+ const handleOnClickClearSelectedDate = _react.default.useCallback(() => {
141
+ props.onChange?.({
142
+ target: {
143
+ name: props.name,
144
+ value: ''
145
+ }
146
+ });
147
+ setSelectedDate(null);
148
+ setMaskValue('');
149
+ handleCloseCalendar();
150
+ }, [props.onChange]);
151
+ const handleOnBlur = event => {
152
+ props?.onBlur?.(event);
153
+ handleCloseCalendar();
154
+ setActiveDescendant((selectedDate ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
155
+ setCalendarDisplayDate(selectedDate ?? (0, _moment.default)());
156
+ if (_lodash.default.size(unmaskedValue) !== 8) {
157
+ const date = (0, _moment.default)(_lodash.default.toString(props?.value), _helpers2.TOKEN_ISO_FORMAT);
158
+ if (date.isValid()) {
159
+ setMaskValue(date.format('DD/MM/YYYY'));
160
+ }
161
+ }
162
+ };
163
+ const handleOnFocus = event => {
164
+ props?.onFocus?.(event);
165
+ setActiveDescendant((selectedDate ?? (0, _moment.default)()).format(_helpers2.TOKEN_ISO_FORMAT));
166
+ setCalendarDisplayDate(selectedDate ?? (0, _moment.default)());
167
+ if (openCalendarOnFocus) {
168
+ handleOpenCalendar();
169
+ }
170
+ };
171
+ const handleOnPaste = event => {
172
+ if (undigitable) {
173
+ event.preventDefault();
174
+ } else {
175
+ props.onPaste?.(event);
176
+ }
177
+ };
178
+ const handleOnBeforeInput = event => {
179
+ if (undigitable) {
180
+ event.preventDefault();
181
+ } else {
182
+ props.onBeforeInput?.(event);
183
+ }
184
+ };
185
+ const handleOnKeyDown = event => {
186
+ props?.onKeyDown?.(event);
187
+ if (calendarBoxOpen && event.key && !event.shiftKey && !event.altKey && _helpers2.NAVIGATION_KEYS.includes(event.key)) {
188
+ event.preventDefault();
189
+ switch (event.key) {
190
+ case _types.Keys.arrowLeft:
191
+ handleNavigateWithDays(-1);
192
+ break;
193
+ case _types.Keys.arrowRight:
194
+ handleNavigateWithDays(1);
195
+ break;
196
+ case _types.Keys.arrowUp:
197
+ handleNavigateWithDays(-7);
198
+ break;
199
+ case _types.Keys.arrowDown:
200
+ handleNavigateWithDays(7);
201
+ break;
202
+ case _types.Keys.pageUp:
203
+ handleNextMonth();
204
+ break;
205
+ case _types.Keys.pageDown:
206
+ handlePreviousMonth();
207
+ break;
208
+ case _types.Keys.home:
209
+ handleNavigateWithWeeks('start');
210
+ break;
211
+ case _types.Keys.end:
212
+ handleNavigateWithWeeks('end');
213
+ break;
214
+ case _types.Keys.escape:
215
+ handleCloseCalendar();
216
+ break;
217
+ case _types.Keys.enter:
218
+ handleUpdateDateState((0, _moment.default)(_lodash.default.toString(activeDescendant), _helpers2.TOKEN_ISO_FORMAT));
219
+ break;
220
+ default:
221
+ break;
222
+ }
223
+ }
224
+ };
225
+ _react.default.useEffect(() => {
226
+ const currentValue = props?.value ?? null;
227
+ const date = (0, _moment.default)(_lodash.default.toString(currentValue), _helpers2.TOKEN_ISO_FORMAT);
228
+ setSelectedDate(date.isValid() ? date : null);
229
+ setMaskValue(date.format(_helpers2.TOKEN_PTBR_FORMAT));
230
+ }, [props?.value]);
231
+ const contextValues = _react.default.useMemo(() => ({
232
+ label,
233
+ inputFieldId: inputId,
234
+ activeDescendant,
235
+ calendarBoxOpen,
236
+ isReadOnly,
237
+ isDisabled,
238
+ skeletonize,
239
+ showCalendarButton,
240
+ hasValidDateSelected,
241
+ dateInputRef,
242
+ dateContainerRef,
243
+ handleOpenCalendar,
244
+ handleCloseCalendar,
245
+ handleNextMonth,
246
+ handlePreviousMonth,
247
+ handleSelectDate: handleUpdateDateState,
248
+ selectedDate,
249
+ calendarDisplayDate,
250
+ calendarRef,
251
+ unmaskedValue,
252
+ maskedValue,
253
+ showClearDateButton,
254
+ handleChangeCalendarBoxState,
255
+ handleOnClickClearSelectedDate
256
+ }), [label, activeDescendant, calendarBoxOpen, isReadOnly, isDisabled, skeletonize, showCalendarButton, selectedDate, calendarDisplayDate, hasValidDateSelected, unmaskedValue, maskedValue]);
257
+ if (unvisible || hideContent) return null;
258
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_gridlayout.default, {
259
+ cols: gridLayout
260
+ }, /*#__PURE__*/_react.default.createElement(_context.DateFieldContext.Provider, {
261
+ value: contextValues
262
+ }, /*#__PURE__*/_react.default.createElement(BaseDate.Root, {
263
+ ref: inputRootRef,
264
+ "data-testid": "test-date-field-root",
265
+ customClassWrapper: customClassWrapper,
266
+ hasValidationErrors: hasValidationErrors
267
+ }, hasLabel && /*#__PURE__*/_react.default.createElement(BaseDate.Label, {
268
+ "data-testid": "test-date-field-label",
269
+ label: label,
270
+ inputId: inputId,
271
+ hint: props?.hint,
272
+ isDisabled: isDisabled,
273
+ isReadOnly: isReadOnly,
274
+ skeletonize: skeletonize,
275
+ required: props?.required,
276
+ hintPosition: hintPosition,
277
+ themePopover: themePopover,
278
+ popoverAlign: popoverAlign,
279
+ labelUppercase: labelUppercase,
280
+ hasHintMessages: hasHintMessages,
281
+ customClassLabel: customClassLabel
282
+ }), /*#__PURE__*/_react.default.createElement(BaseDate.Container, {
283
+ ref: dateContainerRef,
284
+ skeletonize: skeletonize,
285
+ customClassInputContainer: customClassInputContainer
286
+ }, /*#__PURE__*/_react.default.createElement(BaseDate.Input, _extends({}, rest, {
287
+ ref: (0, _helpers.mergeRefs)(ref, dateInputRef),
288
+ id: inputId,
289
+ name: props?.name,
290
+ value: maskedValue,
291
+ readOnly: isReadOnly,
292
+ disabled: isDisabled,
293
+ customClass: customClass,
294
+ tabIndex: !isReadOnly && !skeletonize ? 0 : -1,
295
+ placeholder: placeholder,
296
+ "aria-activedescendant": activeDescendant,
297
+ "aria-expanded": calendarBoxOpen,
298
+ "aria-controls": inputId,
299
+ "aria-labelledby": inputId,
300
+ "data-state-is-period-input": false,
301
+ "data-testid": "test-date-field-input",
302
+ "data-state-error": hasValidationErrors,
303
+ "data-state-read-only": isReadOnly,
304
+ "data-state-text-align": textAlign,
305
+ "data-state-undigitable": undigitable,
306
+ "data-state-skeletonize": skeletonize,
307
+ onBlur: handleOnBlur,
308
+ onFocus: handleOnFocus,
309
+ onPaste: handleOnPaste,
310
+ onKeyDown: handleOnKeyDown,
311
+ onBeforeInput: handleOnBeforeInput
312
+ })), /*#__PURE__*/_react.default.createElement(_triggers.Triggers, null)), calendarBoxOpen && !hideContent && /*#__PURE__*/(0, _reactDom.createPortal)(/*#__PURE__*/_react.default.createElement(_calendarbox.CalendarBox, {
313
+ ref: calendarRef
314
+ }), document.body), hintPosition === 'below' && /*#__PURE__*/_react.default.createElement(_hint.default, {
315
+ customClass: "hint",
316
+ description: props.hint,
317
+ disabled: isDisabled,
318
+ skeletonize: skeletonize,
319
+ visible: hasHintMessages
320
+ }), hasValidationErrors && /*#__PURE__*/_react.default.createElement("span", {
321
+ "data-testid": "test-date-field-list-errors",
322
+ className: "error",
323
+ "data-state-skeletonize": skeletonize,
324
+ "aria-describedby": String(props.name).concat('-errors')
325
+ }, errors?.map((error, index) => /*#__PURE__*/_react.default.createElement(_react.default.Fragment, {
326
+ key: `${index + 1}-${error}`
327
+ }, error, "\xA0")))))), /*#__PURE__*/_react.default.createElement(_tooltip.Tooltip, {
328
+ targetRef: inputRootRef,
329
+ text: tooltip,
330
+ width: tooltipWidth,
331
+ position: tooltipPosition
332
+ }));
333
+ });
334
+ Input.displayName = 'DateFieldInput';
@@ -0,0 +1,8 @@
1
+ interface DateFieldTriggersProps {
2
+ }
3
+ declare const Triggers: {
4
+ (): JSX.Element;
5
+ displayName: string;
6
+ };
7
+
8
+ export { DateFieldTriggersProps, Triggers };
@@ -0,0 +1,47 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Triggers = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _context = require("./context");
9
+ var BaseDate = _interopRequireWildcard(require("../base"));
10
+ 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); }
11
+ 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; }
12
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
13
+ const Triggers = () => {
14
+ const {
15
+ inputFieldId,
16
+ isReadOnly,
17
+ isDisabled,
18
+ skeletonize,
19
+ calendarBoxOpen,
20
+ showCalendarButton,
21
+ hasValidDateSelected,
22
+ handleChangeCalendarBoxState,
23
+ handleOnClickClearSelectedDate,
24
+ showClearDateButton
25
+ } = (0, _context.useDateFieldContext)();
26
+ const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;
27
+ const handleOnClickTriggerCalendar = event => {
28
+ if (!shouldHavePermitClickOnTrigger) event.preventDefault();else handleChangeCalendarBoxState();
29
+ };
30
+ return /*#__PURE__*/_react.default.createElement(BaseDate.Triggers, {
31
+ clearButtonTestId: "test-date-field-trigger-clear-selected-date",
32
+ calendarButtonTestId: "test-date-field-trigger-open-calendar",
33
+ isDisabled: isDisabled,
34
+ isReadOnly: isReadOnly,
35
+ skeletonize: skeletonize,
36
+ inputFieldId: inputFieldId,
37
+ calendarBoxOpen: calendarBoxOpen,
38
+ showClearButton: showClearDateButton,
39
+ showCalendarButton: showCalendarButton,
40
+ hasValidDateSelection: hasValidDateSelected,
41
+ hasValidPeriodSelected: false,
42
+ onClearSelectedDate: handleOnClickClearSelectedDate,
43
+ onClickTriggerCalendar: handleOnClickTriggerCalendar
44
+ });
45
+ };
46
+ exports.Triggers = Triggers;
47
+ Triggers.displayName = 'DateFieldTriggers';
@@ -0,0 +1,61 @@
1
+ import { Moment } from 'moment';
2
+ import { TextAlign } from '../../../@types/Align.js';
3
+ import { ColorTheme } from '../../../@types/ColorStyles.js';
4
+ import { ITooltipCommonProps } from '../../../tooltip/types.js';
5
+ import { HintPosition, Position } from '../../../@types/Position.js';
6
+ import { PermissionAttr, OnDenied } from '../../../@types/PermissionAttr.js';
7
+ import 'react';
8
+
9
+ type InputHTMLProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'type' | 'multiple'>;
10
+ interface DateFieldInputProps extends InputHTMLProps, ITooltipCommonProps {
11
+ hint?: string;
12
+ label?: string;
13
+ errors?: string[];
14
+ gridLayout?: string;
15
+ customClass?: string;
16
+ customClassLabel?: string;
17
+ customClassWrapper?: string;
18
+ customClassInputContainer?: string;
19
+ readOnly?: boolean;
20
+ undigitable?: boolean;
21
+ skeletonize?: boolean;
22
+ labelUppercase?: boolean;
23
+ showCalendarButton?: boolean;
24
+ openCalendarOnFocus?: boolean;
25
+ shouldCloseOnSelect?: boolean;
26
+ showClearDateButton?: boolean;
27
+ textAlign?: TextAlign;
28
+ hintPosition?: HintPosition;
29
+ themePopover?: ColorTheme;
30
+ popoverAlign?: Extract<Position, 'left' | 'right'>;
31
+ permissionAttr?: PermissionAttr;
32
+ onDeniedActions?: OnDenied;
33
+ }
34
+ interface DateFieldContextProps {
35
+ label?: string;
36
+ inputFieldId: string;
37
+ activeDescendant?: string;
38
+ calendarBoxOpen: boolean;
39
+ isReadOnly?: boolean;
40
+ isDisabled?: boolean;
41
+ skeletonize?: boolean;
42
+ showCalendarButton?: boolean;
43
+ hasValidDateSelected?: boolean;
44
+ showClearDateButton?: boolean;
45
+ selectedDate: Moment | null;
46
+ calendarDisplayDate: Moment;
47
+ maskedValue: string;
48
+ unmaskedValue: string;
49
+ calendarRef: React.RefObject<HTMLDivElement | null>;
50
+ dateInputRef: React.RefObject<HTMLInputElement | null>;
51
+ dateContainerRef: React.RefObject<HTMLDivElement | null>;
52
+ handleNextMonth: () => void;
53
+ handlePreviousMonth: () => void;
54
+ handleOpenCalendar: () => void;
55
+ handleCloseCalendar: () => void;
56
+ handleSelectDate: (date: Moment) => void;
57
+ handleChangeCalendarBoxState: () => void;
58
+ handleOnClickClearSelectedDate: () => void;
59
+ }
60
+
61
+ export { DateFieldContextProps, DateFieldInputProps };
@@ -0,0 +1,5 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
@@ -0,0 +1,7 @@
1
+ import React__default from 'react';
2
+
3
+ interface DateFieldCalendarBoxProps extends React__default.ComponentProps<'div'> {
4
+ }
5
+ declare const CalendarBox: React__default.ForwardRefExoticComponent<Pick<DateFieldCalendarBoxProps, "className" | "onClick" | "color" | "children" | "style" | "id" | "key" | "slot" | "title" | "hidden" | "onKeyPress" | "role" | "tabIndex" | "align" | "defaultChecked" | "defaultValue" | "suppressContentEditableWarning" | "suppressHydrationWarning" | "accessKey" | "contentEditable" | "contextMenu" | "dir" | "draggable" | "lang" | "nonce" | "placeholder" | "spellCheck" | "translate" | "radioGroup" | "about" | "datatype" | "inlist" | "prefix" | "property" | "resource" | "typeof" | "vocab" | "autoCapitalize" | "autoCorrect" | "autoSave" | "itemProp" | "itemScope" | "itemType" | "itemID" | "itemRef" | "results" | "security" | "unselectable" | "inputMode" | "is" | "aria-activedescendant" | "aria-atomic" | "aria-autocomplete" | "aria-busy" | "aria-checked" | "aria-colcount" | "aria-colindex" | "aria-colspan" | "aria-controls" | "aria-current" | "aria-describedby" | "aria-details" | "aria-disabled" | "aria-dropeffect" | "aria-errormessage" | "aria-expanded" | "aria-flowto" | "aria-grabbed" | "aria-haspopup" | "aria-hidden" | "aria-invalid" | "aria-keyshortcuts" | "aria-label" | "aria-labelledby" | "aria-level" | "aria-live" | "aria-modal" | "aria-multiline" | "aria-multiselectable" | "aria-orientation" | "aria-owns" | "aria-placeholder" | "aria-posinset" | "aria-pressed" | "aria-readonly" | "aria-relevant" | "aria-required" | "aria-roledescription" | "aria-rowcount" | "aria-rowindex" | "aria-rowspan" | "aria-selected" | "aria-setsize" | "aria-sort" | "aria-valuemax" | "aria-valuemin" | "aria-valuenow" | "aria-valuetext" | "dangerouslySetInnerHTML" | "onCopy" | "onCopyCapture" | "onCut" | "onCutCapture" | "onPaste" | "onPasteCapture" | "onCompositionEnd" | "onCompositionEndCapture" | "onCompositionStart" | "onCompositionStartCapture" | "onCompositionUpdate" | "onCompositionUpdateCapture" | "onFocus" | "onFocusCapture" | "onBlur" | "onBlurCapture" | "onChange" | "onChangeCapture" | "onBeforeInput" | "onBeforeInputCapture" | "onInput" | "onInputCapture" | "onReset" | "onResetCapture" | "onSubmit" | "onSubmitCapture" | "onInvalid" | "onInvalidCapture" | "onLoad" | "onLoadCapture" | "onError" | "onErrorCapture" | "onKeyDown" | "onKeyDownCapture" | "onKeyPressCapture" | "onKeyUp" | "onKeyUpCapture" | "onAbort" | "onAbortCapture" | "onCanPlay" | "onCanPlayCapture" | "onCanPlayThrough" | "onCanPlayThroughCapture" | "onDurationChange" | "onDurationChangeCapture" | "onEmptied" | "onEmptiedCapture" | "onEncrypted" | "onEncryptedCapture" | "onEnded" | "onEndedCapture" | "onLoadedData" | "onLoadedDataCapture" | "onLoadedMetadata" | "onLoadedMetadataCapture" | "onLoadStart" | "onLoadStartCapture" | "onPause" | "onPauseCapture" | "onPlay" | "onPlayCapture" | "onPlaying" | "onPlayingCapture" | "onProgress" | "onProgressCapture" | "onRateChange" | "onRateChangeCapture" | "onResize" | "onResizeCapture" | "onSeeked" | "onSeekedCapture" | "onSeeking" | "onSeekingCapture" | "onStalled" | "onStalledCapture" | "onSuspend" | "onSuspendCapture" | "onTimeUpdate" | "onTimeUpdateCapture" | "onVolumeChange" | "onVolumeChangeCapture" | "onWaiting" | "onWaitingCapture" | "onAuxClick" | "onAuxClickCapture" | "onClickCapture" | "onContextMenu" | "onContextMenuCapture" | "onDoubleClick" | "onDoubleClickCapture" | "onDrag" | "onDragCapture" | "onDragEnd" | "onDragEndCapture" | "onDragEnter" | "onDragEnterCapture" | "onDragExit" | "onDragExitCapture" | "onDragLeave" | "onDragLeaveCapture" | "onDragOver" | "onDragOverCapture" | "onDragStart" | "onDragStartCapture" | "onDrop" | "onDropCapture" | "onMouseDown" | "onMouseDownCapture" | "onMouseEnter" | "onMouseLeave" | "onMouseMove" | "onMouseMoveCapture" | "onMouseOut" | "onMouseOutCapture" | "onMouseOver" | "onMouseOverCapture" | "onMouseUp" | "onMouseUpCapture" | "onSelect" | "onSelectCapture" | "onTouchCancel" | "onTouchCancelCapture" | "onTouchEnd" | "onTouchEndCapture" | "onTouchMove" | "onTouchMoveCapture" | "onTouchStart" | "onTouchStartCapture" | "onPointerDown" | "onPointerDownCapture" | "onPointerMove" | "onPointerMoveCapture" | "onPointerUp" | "onPointerUpCapture" | "onPointerCancel" | "onPointerCancelCapture" | "onPointerEnter" | "onPointerEnterCapture" | "onPointerLeave" | "onPointerLeaveCapture" | "onPointerOver" | "onPointerOverCapture" | "onPointerOut" | "onPointerOutCapture" | "onGotPointerCapture" | "onGotPointerCaptureCapture" | "onLostPointerCapture" | "onLostPointerCaptureCapture" | "onScroll" | "onScrollCapture" | "onWheel" | "onWheelCapture" | "onAnimationStart" | "onAnimationStartCapture" | "onAnimationEnd" | "onAnimationEndCapture" | "onAnimationIteration" | "onAnimationIterationCapture" | "onTransitionEnd" | "onTransitionEndCapture"> & React__default.RefAttributes<HTMLDivElement>>;
6
+
7
+ export { CalendarBox, DateFieldCalendarBoxProps };
@@ -0,0 +1,136 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.CalendarBox = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _lodash = _interopRequireDefault(require("lodash"));
9
+ var _moment = _interopRequireDefault(require("moment"));
10
+ var _buttons = _interopRequireDefault(require("../../../buttons"));
11
+ var _textContent = _interopRequireDefault(require("../../../textContent"));
12
+ var _context = require("./context");
13
+ var _helpers = require("../helpers");
14
+ var _constants = require("../base/constants");
15
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
16
+ const CalendarBox = exports.CalendarBox = /*#__PURE__*/_react.default.forwardRef((__, ref) => {
17
+ const {
18
+ initialInputId,
19
+ finalInputId,
20
+ activeDescendant,
21
+ calendarBoxOpen,
22
+ dateContainerRef,
23
+ calendarDisplayDate,
24
+ selectedDate,
25
+ handleChangeNextMonth,
26
+ handleChangePreviousMonth,
27
+ handleChangeUpdateDateState,
28
+ handleChangeActiveDescendant
29
+ } = (0, _context.useDatePeriodFieldContext)();
30
+ const {
31
+ calendarBoxStyles
32
+ } = (0, _constants.useCalendarPosition)(calendarBoxOpen, dateContainerRef);
33
+ const weeks = (0, _helpers.generateCalendarWeeks)(calendarDisplayDate);
34
+ const isInRange = day => selectedDate.inicial && selectedDate.final && day.isAfter(selectedDate.inicial, 'day') && day.isBefore(selectedDate.final, 'day');
35
+ const isSelected = day => selectedDate.inicial && day.isSame(selectedDate.inicial, 'day') || selectedDate.final && day.isSame(selectedDate.final, 'day');
36
+ const handleOnMouseDown = event => {
37
+ event?.preventDefault?.();
38
+ };
39
+ const handleOnClick = (___, daySelected) => {
40
+ const inputActive = document.activeElement;
41
+ let inputType = undefined;
42
+ if (inputActive?.id === initialInputId) inputType = 'initial';
43
+ if (inputActive?.id === finalInputId) inputType = 'final';
44
+ if (!_lodash.default.isUndefined(inputType)) {
45
+ handleChangeUpdateDateState({
46
+ date: daySelected,
47
+ inputType
48
+ });
49
+ handleChangeActiveDescendant(daySelected.format(_helpers.TOKEN_ISO_FORMAT));
50
+ }
51
+ };
52
+ return /*#__PURE__*/_react.default.createElement("div", {
53
+ ref: ref,
54
+ style: calendarBoxStyles,
55
+ "aria-expanded": calendarBoxOpen,
56
+ className: "date-calendar-box",
57
+ "data-testid": "test-date-period-field-calendar-box"
58
+ }, /*#__PURE__*/_react.default.createElement("div", {
59
+ id: initialInputId,
60
+ className: "date-calendar-box-header"
61
+ }, /*#__PURE__*/_react.default.createElement(_buttons.default, {
62
+ boxShadow: false,
63
+ type: "button",
64
+ iconName: "arrow_left",
65
+ title: "M\xEAs anterior",
66
+ className: "previous-month",
67
+ "aria-label": "M\xEAs anterior",
68
+ onClick: handleChangePreviousMonth,
69
+ onMouseDown: handleOnMouseDown
70
+ }), /*#__PURE__*/_react.default.createElement("div", {
71
+ "aria-live": "polite",
72
+ className: "month-year"
73
+ }, /*#__PURE__*/_react.default.createElement(_textContent.default, {
74
+ "aria-label": calendarDisplayDate.format('MMMM YYYY'),
75
+ as: "p",
76
+ "data-testid": "test-date-period-field-calendar-box-month-description"
77
+ }, calendarDisplayDate.format('MMMM YYYY'))), /*#__PURE__*/_react.default.createElement(_buttons.default, {
78
+ boxShadow: false,
79
+ type: "button",
80
+ iconName: "arrow_right",
81
+ title: "Pr\xF3ximo m\xEAs",
82
+ className: "next-month",
83
+ "aria-label": "Pr\xF3ximo m\xEAs",
84
+ onClick: handleChangeNextMonth,
85
+ onMouseDown: handleOnMouseDown
86
+ })), /*#__PURE__*/_react.default.createElement("table", {
87
+ "aria-label": "Dias da Semana",
88
+ role: "grid",
89
+ className: "date-calendar-box-days-of-week"
90
+ }, /*#__PURE__*/_react.default.createElement("thead", null, /*#__PURE__*/_react.default.createElement("tr", null, _moment.default.weekdaysShort(true).map((day, idx) => /*#__PURE__*/_react.default.createElement("th", {
91
+ role: "columnheader",
92
+ key: `day-of-week-${idx + 1}`
93
+ }, day))))), /*#__PURE__*/_react.default.createElement("div", {
94
+ className: "date-calendar-box-grid-of-days"
95
+ }, /*#__PURE__*/_react.default.createElement("table", {
96
+ "aria-label": "Calend\xE1rio",
97
+ role: "grid"
98
+ }, /*#__PURE__*/_react.default.createElement("tbody", {
99
+ className: "weeks"
100
+ }, weeks.map((week, weekIndex) => /*#__PURE__*/_react.default.createElement("tr", {
101
+ role: "row",
102
+ key: weekIndex + 1
103
+ }, week.map((day, dateIndex) => {
104
+ const idActiveDescendant = day.format(_helpers.TOKEN_ISO_FORMAT);
105
+ const isToday = _lodash.default.isEqual((0, _moment.default)().format(_helpers.TOKEN_ISO_FORMAT), day.format(_helpers.TOKEN_ISO_FORMAT));
106
+ const inRange = isInRange(day) ?? false;
107
+ const hasFocus = _lodash.default.isEqual(activeDescendant, day.format(_helpers.TOKEN_ISO_FORMAT));
108
+ const hasSelected = isSelected(day) ?? false;
109
+ const isCurrentMonth = day.month() === calendarDisplayDate.month();
110
+ const descriptionDate = day.format('LL');
111
+ return /*#__PURE__*/_react.default.createElement("td", {
112
+ role: "gridcell",
113
+ key: dateIndex
114
+ }, /*#__PURE__*/_react.default.createElement(_buttons.default, {
115
+ id: idActiveDescendant,
116
+ type: "button",
117
+ className: "day-button",
118
+ boxShadow: false,
119
+ tabIndex: -1,
120
+ title: descriptionDate,
121
+ "aria-label": descriptionDate,
122
+ "aria-selected": hasSelected,
123
+ "data-testid": "test-date-period-field-day-button",
124
+ "data-state-is-today": isToday,
125
+ "data-state-has-focus": hasFocus,
126
+ "data-state-is-in-range": inRange,
127
+ "data-state-is-current-month": isCurrentMonth,
128
+ label: day.date().toString(),
129
+ onMouseDown: handleOnMouseDown,
130
+ onClick: event => {
131
+ handleOnClick(event, day);
132
+ }
133
+ }));
134
+ })))))));
135
+ });
136
+ CalendarBox.displayName = 'DatePeriodFieldCalendarBox';
@@ -0,0 +1,13 @@
1
+ import React__default from 'react';
2
+ import { DatePeriodContextProps } from './types.js';
3
+ import 'moment';
4
+ import '../../../@types/Align.js';
5
+ import '../../../@types/ColorStyles.js';
6
+ import '../../../tooltip/types.js';
7
+ import '../../../@types/Position.js';
8
+ import '../../../@types/PermissionAttr.js';
9
+
10
+ declare const DatePeriodFieldContext: React__default.Context<DatePeriodContextProps>;
11
+ declare const useDatePeriodFieldContext: () => DatePeriodContextProps;
12
+
13
+ export { DatePeriodFieldContext, useDatePeriodFieldContext };
@@ -0,0 +1,17 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useDatePeriodFieldContext = exports.DatePeriodFieldContext = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
9
+ const DatePeriodFieldContext = exports.DatePeriodFieldContext = /*#__PURE__*/_react.default.createContext({});
10
+ const useDatePeriodFieldContext = () => {
11
+ const context = _react.default.useContext(DatePeriodFieldContext);
12
+ if (!context) {
13
+ throw new Error('useDatePeriodFieldContext must be used within a DatePeriodFieldProvider');
14
+ }
15
+ return context;
16
+ };
17
+ exports.useDatePeriodFieldContext = useDatePeriodFieldContext;
@@ -0,0 +1,9 @@
1
+ import 'react';
2
+ export { DatePeriodFieldProps } from './types.js';
3
+ export { I as Input } from '../../../index-c9247c1f.js';
4
+ import 'moment';
5
+ import '../../../@types/Align.js';
6
+ import '../../../@types/ColorStyles.js';
7
+ import '../../../tooltip/types.js';
8
+ import '../../../@types/Position.js';
9
+ import '../../../@types/PermissionAttr.js';