linear-react-components-ui 2.1.0-beta.1 → 2.1.0-beta.3

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 (44) hide show
  1. package/lib/assets/styles/datepicker2.css +77 -4
  2. package/lib/inputs2/date/calendarbox.d.ts +23 -0
  3. package/lib/inputs2/date/calendarbox.js +254 -0
  4. package/lib/inputs2/date/calendarbox.js.map +1 -0
  5. package/lib/inputs2/date/datefield/base.js +599 -215
  6. package/lib/inputs2/date/datefield/base.js.map +1 -1
  7. package/lib/inputs2/date/datefield/triggers.js +4 -4
  8. package/lib/inputs2/date/datefield/triggers.js.map +1 -1
  9. package/lib/inputs2/date/datefield/types.d.ts +5 -12
  10. package/lib/inputs2/date/dateperiodfield/base.js +645 -751
  11. package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
  12. package/lib/inputs2/date/dateperiodfield/triggers.js +21 -9
  13. package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
  14. package/lib/inputs2/date/dateperiodfield/types.d.ts +7 -23
  15. package/lib/inputs2/date/helpers.d.ts +25 -4
  16. package/lib/inputs2/date/helpers.js +79 -4
  17. package/lib/inputs2/date/helpers.js.map +1 -1
  18. package/lib/inputs2/date/{base/constants.d.ts → hooks/useCalendarPosition.d.ts} +1 -1
  19. package/lib/inputs2/date/hooks/useCalendarPosition.js +93 -0
  20. package/lib/inputs2/date/hooks/useCalendarPosition.js.map +1 -0
  21. package/lib/inputs2/date/hooks/useDateCalendarState.d.ts +14 -0
  22. package/lib/inputs2/date/hooks/useDateCalendarState.js +250 -0
  23. package/lib/inputs2/date/hooks/useDateCalendarState.js.map +1 -0
  24. package/lib/inputs2/date/hooks/useDateMask.d.ts +22 -0
  25. package/lib/inputs2/date/hooks/useDateMask.js +215 -0
  26. package/lib/inputs2/date/hooks/useDateMask.js.map +1 -0
  27. package/lib/inputs2/date/timeselector.d.ts +15 -0
  28. package/lib/inputs2/date/timeselector.js +228 -0
  29. package/lib/inputs2/date/timeselector.js.map +1 -0
  30. package/lib/inputs2/date/types.d.ts +16 -1
  31. package/lib/inputs2/date/types.js.map +1 -1
  32. package/lib/menus/float/SubMenuContainer.js +8 -16
  33. package/lib/menus/float/SubMenuContainer.js.map +1 -1
  34. package/lib/node_modules/moment/dist/locale/pt-br.js +54 -0
  35. package/lib/node_modules/moment/dist/locale/pt-br.js.map +1 -0
  36. package/package.json +1 -1
  37. package/lib/inputs2/date/base/constants.js +0 -69
  38. package/lib/inputs2/date/base/constants.js.map +0 -1
  39. package/lib/inputs2/date/datefield/calendarbox.d.ts +0 -6
  40. package/lib/inputs2/date/datefield/calendarbox.js +0 -228
  41. package/lib/inputs2/date/datefield/calendarbox.js.map +0 -1
  42. package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +0 -6
  43. package/lib/inputs2/date/dateperiodfield/calendarbox.js +0 -282
  44. package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"base.js","sources":["../../../../src/lib/inputs2/date/datefield/base.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport { useIMask } from 'react-imask';\nimport { v1 as uuid } from 'uuid';\nimport { createPortal } from 'react-dom';\nimport moment, { type Moment } from 'moment';\nimport Hint from '../../../hint';\nimport { Tooltip } from '../../../tooltip';\nimport { mergeRefs } from '../../../form2/helpers';\nimport { Keys } from '../types';\nimport * as BaseDate from '../base';\nimport { NAVIGATION_KEYS, TOKEN_ISO_FORMAT, TOKEN_MASK, TOKEN_PTBR_FORMAT } from '../helpers';\nimport { Triggers } from './triggers';\nimport { CalendarBox } from './calendarbox';\nimport { DateFieldContext } from './context';\nimport type { DateFieldInputBaseProps } from './types';\n\nexport const InputBase = \n React.forwardRef<HTMLInputElement, DateFieldInputBaseProps>((props, ref) => {\n const {\n label, errors, tooltip, tooltipPosition, tooltipWidth, shouldCloseOnSelect = true, returnValueType = 'default',\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '', textAlign = 'left',\n labelUppercase = false, skeletonize = false, hintPosition = 'below', themePopover = 'light',\n popoverAlign = 'left', showCalendarButton = true, openCalendarOnFocus = true, undigitable = false, \n showClearDateButton = true, placeholder = TOKEN_PTBR_FORMAT, readOnly, disabled, ...rest\n } = props;\n const [calendarBoxOpen, setCalendarBoxOpen] = React.useState(false);\n const [activeDescendant, setActiveDescendant] = React.useState<string>(\n moment().format(TOKEN_ISO_FORMAT),\n );\n const [selectedDate, setSelectedDate] = React.useState<Moment | null>(null);\n const [calendarDisplayDate, setCalendarDisplayDate] = React.useState<Moment>(\n selectedDate ?? moment(),\n );\n const calendarRef = React.useRef<HTMLDivElement | null>(null);\n const inputRootRef = React.useRef<HTMLInputElement | null>(null);\n const dateInputRef = React.useRef<HTMLInputElement | null>(null);\n const dateContainerRef = React.useRef<HTMLDivElement | null>(null);\n\n const { setValue: setMaskValue, unmaskedValue, value: maskedValue } = useIMask(\n { mask: TOKEN_MASK, lazy: false, placeholderChar: '_' },\n {\n ref: dateInputRef,\n defaultValue: selectedDate?.format(TOKEN_PTBR_FORMAT),\n onComplete: (value) => {\n const date = moment(value, TOKEN_PTBR_FORMAT);\n if (date.isValid()) { handleUpdateDateState(date); }\n },\n },\n );\n\n const inputId = React.useMemo(() => props.id || props.name || uuid(), [props.id, props.name]);\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n const hasValidDateSelected = !_.isEmpty(props?.value);\n\n const handleUpdateDateState = React.useCallback((date: Moment) => {\n const nonIsoDateFormat = date.format(TOKEN_ISO_FORMAT);\n const isoDateFormat = date.toISOString();\n setSelectedDate(date.clone());\n setCalendarDisplayDate(date.clone());\n props.onChange?.({\n target: {\n name: props.name,\n value: returnValueType === 'default' ? nonIsoDateFormat : isoDateFormat,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n if (shouldCloseOnSelect) handleCloseCalendar();\n }, [selectedDate, props.name, props.onChange, shouldCloseOnSelect]);\n\n const handleOpenCalendar = React.useCallback(() => setCalendarBoxOpen(true), []);\n const handleCloseCalendar = React.useCallback(() => setCalendarBoxOpen(false), []);\n const handleNextMonth = React.useCallback(() => setCalendarDisplayDate(prevDisplayDate =>\n prevDisplayDate.clone().add(1, 'month')), []);\n const handlePreviousMonth = React.useCallback(() => setCalendarDisplayDate(prevDisplayDate =>\n prevDisplayDate.clone().subtract(1, 'month')), []);\n const handleChangeCalendarBoxState = React.useCallback(() => {\n setCalendarBoxOpen((prevState) => {\n if (dateInputRef.current !== document.activeElement) {\n dateInputRef?.current?.focus?.();\n }\n return !prevState;\n });\n }, []);\n const handleNavigateWithDays = React.useCallback((offset: number) => {\n setCalendarDisplayDate((prevDisplayDate) => {\n const daySelected = prevDisplayDate.clone().add(offset, 'day');\n setActiveDescendant(daySelected.format(TOKEN_ISO_FORMAT));\n return daySelected;\n });\n }, []);\n const handleNavigateWithWeeks = React.useCallback((when: 'start' | 'end') => {\n setCalendarDisplayDate((prevDisplayDate) => {\n let daySelected = prevDisplayDate;\n if (when === 'end') daySelected = prevDisplayDate.clone().endOf('week');\n if (when === 'start') daySelected = prevDisplayDate.clone().startOf('week');\n setActiveDescendant(daySelected.format(TOKEN_ISO_FORMAT));\n return daySelected;\n });\n }, []);\n\n const handleOnClickClearSelectedDate = React.useCallback(() => {\n props.onChange?.({\n target: { name: props.name, value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n setSelectedDate(null);\n setMaskValue('');\n handleCloseCalendar();\n }, [props.onChange]);\n\n const handleOnBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n handleCloseCalendar();\n setActiveDescendant((selectedDate ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(selectedDate ?? moment());\n if (_.size(unmaskedValue) !== 8) {\n const date = moment(_.toString(props?.value), TOKEN_ISO_FORMAT);\n if (date.isValid()) { setMaskValue(date.format('DD/MM/YYYY')); }\n }\n };\n\n const handleOnFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n setActiveDescendant((selectedDate ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(selectedDate ?? moment());\n if (!readOnly && openCalendarOnFocus) {\n handleOpenCalendar();\n }\n };\n\n const handleOnPaste = (event: React.ClipboardEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onPaste?.(event);\n }\n };\n\n const handleOnBeforeInput = (event: React.InputEvent<HTMLInputElement>) => {\n if (undigitable) {\n event.preventDefault();\n } else {\n props.onBeforeInput?.(event);\n }\n };\n\n const handleOnKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n if (calendarBoxOpen && event.key && !event.shiftKey && \n !event.altKey && NAVIGATION_KEYS.includes(event.key)) {\n event.preventDefault();\n switch (event.key) {\n case Keys.arrowLeft: handleNavigateWithDays(-1);\n break;\n case Keys.arrowRight: handleNavigateWithDays(1);\n break;\n case Keys.arrowUp: handleNavigateWithDays(-7);\n break;\n case Keys.arrowDown: handleNavigateWithDays(7);\n break;\n case Keys.pageUp: handleNextMonth();\n break;\n case Keys.pageDown: handlePreviousMonth();\n break;\n case Keys.home: handleNavigateWithWeeks('start');\n break;\n case Keys.end: handleNavigateWithWeeks('end');\n break;\n case Keys.escape: handleCloseCalendar();\n break;\n case Keys.enter: handleUpdateDateState(\n moment(_.toString(activeDescendant), TOKEN_ISO_FORMAT),\n );\n break;\n default:\n break;\n }\n }\n };\n\n React.useEffect(() => {\n const currentValue = props?.value ?? null;\n const date = moment(_.toString(currentValue), TOKEN_ISO_FORMAT);\n setSelectedDate(date.isValid() ? date : null);\n setMaskValue(date.format(TOKEN_PTBR_FORMAT));\n }, [props?.value]);\n\n const contextValues = ({\n label, inputFieldId: inputId, activeDescendant, calendarBoxOpen, \n isReadOnly: Boolean(readOnly), isDisabled: Boolean(disabled), skeletonize, showCalendarButton,\n hasValidDateSelected, dateInputRef, dateContainerRef, handleOpenCalendar, \n handleCloseCalendar, handleNextMonth, handlePreviousMonth, \n handleSelectDate: handleUpdateDateState, selectedDate, unmaskedValue, maskedValue, \n showClearDateButton, handleChangeCalendarBoxState, handleOnClickClearSelectedDate,\n calendarDisplayDate, calendarRef,\n });\n\n return (\n <React.Fragment>\n <DateFieldContext.Provider value={contextValues}>\n <BaseDate.Root\n ref={inputRootRef}\n data-testid=\"test-date-field-root\"\n customClassWrapper={customClassWrapper}\n hasValidationErrors={hasValidationErrors}>\n {hasLabel && (\n <BaseDate.Label\n data-testid=\"test-date-field-label\"\n label={label}\n inputId={inputId}\n hint={props?.hint}\n isDisabled={disabled}\n isReadOnly={readOnly}\n skeletonize={skeletonize}\n required={props?.required}\n hintPosition={hintPosition}\n themePopover={themePopover}\n popoverAlign={popoverAlign}\n labelUppercase={labelUppercase}\n hasHintMessages={hasHintMessages}\n customClassLabel={customClassLabel} />\n )}\n <BaseDate.Container\n ref={dateContainerRef}\n skeletonize={skeletonize}\n customClassInputContainer={customClassInputContainer}>\n <BaseDate.Input\n {...rest}\n ref={mergeRefs(ref, dateInputRef)}\n id={inputId}\n name={props?.name}\n value={maskedValue}\n readOnly={readOnly}\n disabled={disabled}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={placeholder}\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={inputId}\n aria-labelledby={inputId}\n data-state-is-period-input={false}\n data-testid=\"test-date-field-input\"\n data-state-error={hasValidationErrors}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onPaste={handleOnPaste}\n onKeyDown={handleOnKeyDown}\n onBeforeInput={handleOnBeforeInput} />\n <Triggers />\n </BaseDate.Container>\n {calendarBoxOpen &&\n createPortal(<CalendarBox ref={calendarRef} />, document.body)\n }\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n description={props.hint}\n disabled={disabled}\n skeletonize={skeletonize}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-date-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(props.name).concat('-errors')}>\n {errors?.map((error, index) => (\n <React.Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </React.Fragment>\n ))}\n </span>\n )}\n </BaseDate.Root>\n </DateFieldContext.Provider>\n <Tooltip\n targetRef={inputRootRef}\n text={tooltip}\n width={tooltipWidth}\n position={tooltipPosition} />\n </React.Fragment>\n );\n });\n\nInputBase.displayName = 'DateFieldInputBase';\n"],"names":["InputBase","React","forwardRef","props","ref","label","errors","tooltip","tooltipPosition","tooltipWidth","shouldCloseOnSelect","returnValueType","customClass","customClassLabel","customClassWrapper","customClassInputContainer","textAlign","labelUppercase","skeletonize","hintPosition","themePopover","popoverAlign","showCalendarButton","openCalendarOnFocus","undigitable","showClearDateButton","placeholder","TOKEN_PTBR_FORMAT","readOnly","disabled","rest","calendarBoxOpen","setCalendarBoxOpen","useState","activeDescendant","setActiveDescendant","moment","format","TOKEN_ISO_FORMAT","selectedDate","setSelectedDate","calendarDisplayDate","setCalendarDisplayDate","calendarRef","useRef","inputRootRef","dateInputRef","dateContainerRef","setValue","setMaskValue","unmaskedValue","value","maskedValue","useIMask","mask","TOKEN_MASK","lazy","placeholderChar","defaultValue","onComplete","date","isValid","handleUpdateDateState","inputId","useMemo","id","name","uuid","hasLabel","_","isEmpty","hasHintMessages","Boolean","hint","length","hasValidationErrors","hasValidDateSelected","useCallback","nonIsoDateFormat","isoDateFormat","toISOString","clone","onChange","target","handleCloseCalendar","handleOpenCalendar","handleNextMonth","prevDisplayDate","add","handlePreviousMonth","subtract","handleChangeCalendarBoxState","prevState","current","document","activeElement","focus","handleNavigateWithDays","offset","daySelected","handleNavigateWithWeeks","when","endOf","startOf","handleOnClickClearSelectedDate","handleOnBlur","event","onBlur","size","toString","handleOnFocus","onFocus","handleOnPaste","preventDefault","onPaste","handleOnBeforeInput","onBeforeInput","handleOnKeyDown","onKeyDown","key","shiftKey","altKey","NAVIGATION_KEYS","includes","Keys","arrowLeft","arrowRight","arrowUp","arrowDown","pageUp","pageDown","home","end","escape","enter","useEffect","currentValue","contextValues","inputFieldId","isReadOnly","isDisabled","handleSelectDate","BaseDate.Root","BaseDate.Label","required","BaseDate.Container","BaseDate.Input","mergeRefs","createPortal","body","String","concat","map","error","index","displayName"],"mappings":"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"}
1
+ {"version":3,"file":"base.js","sources":["../../../../src/lib/inputs2/date/datefield/base.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport { v1 as uuid } from 'uuid';\nimport { createPortal } from 'react-dom';\nimport moment, { type Moment } from 'moment';\nimport Hint from '../../../hint';\nimport { Tooltip } from '../../../tooltip';\nimport { mergeRefs } from '../../../form2/helpers';\nimport * as BaseDate from '../base';\nimport { useDateMask } from '../hooks/useDateMask';\nimport { useDateCalendarState } from '../hooks/useDateCalendarState';\nimport { TimeSelector } from '../timeselector';\nimport {\n clampDateToBounds, getDateFormats, isDayOutOfBounds, parseBoundary, parseDateValue,\n TOKEN_ISO_FORMAT,\n} from '../helpers';\nimport { CalendarBox } from '../calendarbox';\nimport { Triggers } from './triggers';\nimport { DateFieldContext } from './context';\nimport type { DateFieldInputBaseProps } from './types';\n\nexport const InputBase = \n React.forwardRef<HTMLInputElement, DateFieldInputBaseProps>((props, ref) => {\n const {\n label, errors, tooltip, tooltipPosition, tooltipWidth, returnValueType = 'default',\n customClass = '', customClassLabel = '', customClassWrapper = '', customClassInputContainer = '', textAlign = 'left',\n labelUppercase = false, skeletonize = false, hintPosition = 'below', themePopover = 'light',\n popoverAlign = 'left', showCalendarButton = true, openCalendarOnFocus = true, undigitable = false,\n showClearDateButton = true, variant = 'date', placeholder, shouldCloseOnSelect,\n min, max, onChange, readOnly, disabled, ...rest\n } = props;\n const isDateTime = variant === 'datetime';\n const { isoFormat, ptbrFormat, digits } = getDateFormats(variant);\n // Em datetime o calendário precisa continuar aberto depois do clique no dia, senão o\n // seletor de hora ficaria inalcançável pelo mouse.\n const shouldCloseCalendarOnSelect = shouldCloseOnSelect ?? !isDateTime;\n const inputPlaceholder = placeholder ?? ptbrFormat;\n const minDate = parseBoundary(min);\n const maxDate = parseBoundary(max);\n const hasBounds = Boolean(minDate || maxDate);\n const [selectedDate, setSelectedDate] = React.useState<Moment | null>(null);\n const inputRootRef = React.useRef<HTMLInputElement | null>(null);\n const dateInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const calendarState = useDateCalendarState({\n inputRef: dateInputRef,\n min: minDate,\n max: maxDate,\n onPressEnter: descendant => handleSelectDay(\n moment(_.toString(descendant), TOKEN_ISO_FORMAT),\n ),\n });\n const {\n calendarBoxOpen, activeDescendant, calendarDisplayDate, calendarRef, dateContainerRef,\n handleNextMonth, handlePreviousMonth, handleSetCalendarBoxOpen,\n handleChangeActiveDescendant, handleChangeCalendarDisplayDate, handleKeyDownNavigation,\n } = calendarState;\n\n const {\n maskedValue, unmaskedValue, setMaskValue, handleOnPaste, handleOnBeforeInput,\n handleOnKeyDownCapture,\n } = useDateMask({\n inputRef: dateInputRef,\n variant,\n defaultValue: selectedDate?.format(ptbrFormat),\n undigitable,\n readOnly,\n onCommit: date => handleUpdateDateState(date),\n onPaste: props.onPaste,\n onBeforeInput: props.onBeforeInput,\n });\n\n const inputId = React.useMemo(() => props.id || props.name || uuid(), [props.id, props.name]);\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n const hasValidDateSelected = !_.isEmpty(props?.value);\n\n const handleUpdateDateState = (date: Moment) => {\n const nonIsoDateFormat = date.format(isoFormat);\n const isoDateFormat = date.toISOString();\n setSelectedDate(date.clone());\n // O cursor do calendário acompanha o que foi gravado, senão a moldura ficaria presa\n // no dia anterior depois de uma escolha que não veio das setas.\n handleChangeActiveDescendant(date.format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(date.clone());\n onChange?.({\n target: {\n name: props.name,\n value: returnValueType === 'default' ? nonIsoDateFormat : isoDateFormat,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n if (shouldCloseCalendarOnSelect) handleSetCalendarBoxOpen(false);\n };\n\n const handleOnClickClearSelectedDate = () => {\n onChange?.({\n target: { name: props.name, value: '' },\n } as React.ChangeEvent<HTMLInputElement>);\n setSelectedDate(null);\n setMaskValue('');\n handleSetCalendarBoxOpen(false);\n };\n\n const handleOnBlur = (event: React.FocusEvent<HTMLInputElement>) => {\n props?.onBlur?.(event);\n handleSetCalendarBoxOpen(false);\n handleChangeActiveDescendant((selectedDate ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate ?? moment());\n if (_.size(unmaskedValue) !== digits) {\n const date = parseDateValue(props?.value, variant);\n if (date.isValid()) { setMaskValue(date.format(ptbrFormat)); }\n }\n };\n\n const handleOnFocus = (event: React.FocusEvent<HTMLInputElement>) => {\n props?.onFocus?.(event);\n handleChangeActiveDescendant((selectedDate ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate ?? moment());\n if (!readOnly && openCalendarOnFocus) {\n handleSetCalendarBoxOpen(true);\n }\n };\n\n const handleOnKeyDown = (event: React.KeyboardEvent<HTMLInputElement>) => {\n props?.onKeyDown?.(event);\n handleKeyDownNavigation(event);\n };\n\n const handleSelectTime = (hour: number, minute: number) => {\n if (!selectedDate) return;\n handleUpdateDateState(selectedDate.clone().hour(hour).minute(minute).second(0));\n };\n\n // Trocar de dia carrega o horário já escolhido, e o horário é preso no intervalo para\n // que um clique no calendário nunca deixe o campo exibindo um valor fora dele.\n const handleSelectDay = (day: Moment) => {\n const dayWithTime = (isDateTime && selectedDate)\n ? day.clone().hour(selectedDate.hour()).minute(selectedDate.minute())\n : day;\n handleUpdateDateState(clampDateToBounds(dayWithTime, minDate, maxDate));\n };\n\n React.useEffect(() => {\n const date = parseDateValue(props?.value ?? null, variant);\n setSelectedDate(date.isValid() ? date : null);\n setMaskValue(date.format(ptbrFormat));\n }, [props?.value]);\n\n const contextValues = ({\n ...calendarState,\n label, inputFieldId: inputId, isReadOnly: Boolean(readOnly), isDisabled: Boolean(disabled),\n skeletonize, showCalendarButton, hasValidDateSelected, dateInputRef, selectedDate,\n unmaskedValue, maskedValue, showClearDateButton, handleOnClickClearSelectedDate,\n handleSelectDate: handleUpdateDateState,\n });\n\n return (\n <React.Fragment>\n <DateFieldContext.Provider value={contextValues}>\n <BaseDate.Root\n ref={inputRootRef}\n data-testid=\"test-date-field-root\"\n customClassWrapper={customClassWrapper}\n hasValidationErrors={hasValidationErrors}>\n {hasLabel && (\n <BaseDate.Label\n data-testid=\"test-date-field-label\"\n label={label}\n inputId={inputId}\n hint={props?.hint}\n isDisabled={disabled}\n isReadOnly={readOnly}\n skeletonize={skeletonize}\n required={props?.required}\n hintPosition={hintPosition}\n themePopover={themePopover}\n popoverAlign={popoverAlign}\n labelUppercase={labelUppercase}\n hasHintMessages={hasHintMessages}\n customClassLabel={customClassLabel} />\n )}\n <BaseDate.Container\n ref={dateContainerRef}\n skeletonize={skeletonize}\n customClassInputContainer={customClassInputContainer}>\n <BaseDate.Input\n {...rest}\n ref={mergeRefs(ref, dateInputRef)}\n id={inputId}\n name={props?.name}\n value={maskedValue}\n readOnly={readOnly}\n disabled={disabled}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={inputPlaceholder}\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={inputId}\n aria-labelledby={inputId}\n data-state-is-period-input={false}\n data-testid=\"test-date-field-input\"\n data-state-error={hasValidationErrors}\n data-state-read-only={readOnly}\n data-state-text-align={textAlign}\n data-state-undigitable={undigitable}\n data-state-skeletonize={skeletonize}\n onBlur={handleOnBlur}\n onFocus={handleOnFocus}\n onPaste={handleOnPaste}\n onKeyDown={handleOnKeyDown}\n onKeyDownCapture={handleOnKeyDownCapture}\n onBeforeInput={handleOnBeforeInput} />\n <Triggers />\n </BaseDate.Container>\n {calendarBoxOpen &&\n createPortal(\n <CalendarBox\n ref={calendarRef}\n testIdPrefix=\"test-date-field\"\n headerId={inputId}\n calendarBoxOpen={calendarBoxOpen}\n activeDescendant={activeDescendant}\n calendarDisplayDate={calendarDisplayDate}\n containerRef={dateContainerRef}\n onNextMonth={handleNextMonth}\n onPreviousMonth={handlePreviousMonth}\n getDayState={day => ({\n isSelected: selectedDate ? day.isSame(selectedDate, 'day') : false,\n ...(hasBounds && { isDisabled: isDayOutOfBounds(day, minDate, maxDate) }),\n })}\n onSelectDay={handleSelectDay}>\n {isDateTime && (\n <TimeSelector\n value={selectedDate}\n onSelectTime={handleSelectTime}\n min={minDate}\n max={maxDate}\n testIdPrefix=\"test-date-field\" />\n )}\n </CalendarBox>,\n document.body,\n )\n }\n {hintPosition === 'below' && (\n <Hint\n customClass=\"hint\"\n description={props.hint}\n disabled={disabled}\n skeletonize={skeletonize}\n visible={hasHintMessages} />\n )}\n {hasValidationErrors && (\n <span\n data-testid=\"test-date-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(props.name).concat('-errors')}>\n {errors?.map((error, index) => (\n <React.Fragment key={`${index + 1}-${error}`}>\n {error}\n {' '}\n </React.Fragment>\n ))}\n </span>\n )}\n </BaseDate.Root>\n </DateFieldContext.Provider>\n <Tooltip\n targetRef={inputRootRef}\n text={tooltip}\n width={tooltipWidth}\n position={tooltipPosition} />\n </React.Fragment>\n );\n });\n\nInputBase.displayName = 'DateFieldInputBase';\n"],"names":["InputBase","React","forwardRef","props","ref","$","_c","disabled","errors","label","max","min","onChange","placeholder","readOnly","rest","shouldCloseOnSelect","t0","t1","t10","t11","t12","t13","t14","t15","t2","t3","t4","t5","t6","t7","t8","t9","tooltip","tooltipPosition","tooltipWidth","returnValueType","customClass","customClassLabel","customClassWrapper","customClassInputContainer","textAlign","labelUppercase","skeletonize","hintPosition","themePopover","popoverAlign","showCalendarButton","openCalendarOnFocus","undigitable","showClearDateButton","variant","undefined","isDateTime","isoFormat","ptbrFormat","digits","getDateFormats","shouldCloseCalendarOnSelect","inputPlaceholder","t16","parseBoundary","minDate","t17","maxDate","hasBounds","Boolean","selectedDate","setSelectedDate","useState","inputRootRef","useRef","dateInputRef","calendarState","useDateCalendarState","inputRef","onPressEnter","descendant","handleSelectDay","moment","_","toString","TOKEN_ISO_FORMAT","calendarBoxOpen","activeDescendant","calendarDisplayDate","calendarRef","dateContainerRef","handleNextMonth","handlePreviousMonth","handleSetCalendarBoxOpen","handleChangeActiveDescendant","handleChangeCalendarDisplayDate","handleKeyDownNavigation","maskedValue","unmaskedValue","setMaskValue","handleOnPaste","handleOnBeforeInput","handleOnKeyDownCapture","useDateMask","defaultValue","format","onCommit","date","handleUpdateDateState","onPaste","onBeforeInput","t18","id","name","uuid","inputId","t19","isEmpty","hasLabel","hasHintMessages","hint","length","hasValidationErrors","t20","value","hasValidDateSelected","date_0","nonIsoDateFormat","isoDateFormat","toISOString","clone","target","t21","handleOnClickClearSelectedDate","t22","event","onBlur","size","date_1","parseDateValue","isValid","handleOnBlur","t23","event_0","onFocus","handleOnFocus","t24","event_1","onKeyDown","handleOnKeyDown","t25","hour","minute","second","handleSelectTime","day","dayWithTime","clampDateToBounds","t26","date_2","t27","t28","useEffect","t29","t30","t31","inputFieldId","isReadOnly","isDisabled","handleSelectDate","contextValues","t32","required","BaseDate.Label","t33","mergeRefs","t34","t35","t36","BaseDate.Input","t37","Symbol","for","t38","BaseDate.Container","t39","createPortal","day_0","isSelected","isSame","isDayOutOfBounds","document","body","t40","t41","String","concat","map","_temp","t42","BaseDate.Root","t43","t44","t45","displayName","error","index"],"mappings":"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"}
@@ -12,21 +12,21 @@ const Triggers = () => {
12
12
  calendarBoxOpen,
13
13
  showCalendarButton,
14
14
  hasValidDateSelected,
15
- handleChangeCalendarBoxState,
15
+ handleToggleCalendarBox,
16
16
  handleOnClickClearSelectedDate,
17
17
  showClearDateButton
18
18
  } = useDateFieldContext();
19
19
  const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;
20
20
  let t0;
21
- if ($[0] !== handleChangeCalendarBoxState || $[1] !== shouldHavePermitClickOnTrigger) {
21
+ if ($[0] !== handleToggleCalendarBox || $[1] !== shouldHavePermitClickOnTrigger) {
22
22
  t0 = (event) => {
23
23
  if (!shouldHavePermitClickOnTrigger) {
24
24
  event.preventDefault();
25
25
  } else {
26
- handleChangeCalendarBoxState();
26
+ handleToggleCalendarBox();
27
27
  }
28
28
  };
29
- $[0] = handleChangeCalendarBoxState;
29
+ $[0] = handleToggleCalendarBox;
30
30
  $[1] = shouldHavePermitClickOnTrigger;
31
31
  $[2] = t0;
32
32
  } else {
@@ -1 +1 @@
1
- {"version":3,"file":"triggers.js","sources":["../../../../src/lib/inputs2/date/datefield/triggers.tsx"],"sourcesContent":["import { MouseEvent } from 'react';\nimport { useDateFieldContext } from './context';\nimport * as BaseDate from '../base';\n\ninterface DateFieldTriggersProps { }\n\nconst Triggers = () => {\n const {\n inputFieldId, isReadOnly, isDisabled, skeletonize, calendarBoxOpen, showCalendarButton, \n hasValidDateSelected, handleChangeCalendarBoxState, handleOnClickClearSelectedDate, \n showClearDateButton,\n } = useDateFieldContext();\n const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;\n\n const handleOnClickTriggerCalendar = (event: MouseEvent<HTMLButtonElement>) => {\n if (!shouldHavePermitClickOnTrigger) event.preventDefault();\n else handleChangeCalendarBoxState();\n };\n\n return (\n <BaseDate.Triggers\n clearButtonTestId=\"test-date-field-trigger-clear-selected-date\"\n calendarButtonTestId=\"test-date-field-trigger-open-calendar\"\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n skeletonize={skeletonize}\n inputFieldId={inputFieldId}\n calendarBoxOpen={calendarBoxOpen}\n showClearButton={showClearDateButton}\n showCalendarButton={showCalendarButton}\n hasValidDateSelection={hasValidDateSelected}\n hasValidPeriodSelected={false}\n onClearSelectedDate={handleOnClickClearSelectedDate}\n onClickTriggerCalendar={handleOnClickTriggerCalendar} />\n );\n};\n\nTriggers.displayName = 'DateFieldTriggers';\n\nexport { Triggers };\nexport type { DateFieldTriggersProps };\n"],"names":["Triggers","$","_c","inputFieldId","isReadOnly","isDisabled","skeletonize","calendarBoxOpen","showCalendarButton","hasValidDateSelected","handleChangeCalendarBoxState","handleOnClickClearSelectedDate","showClearDateButton","useDateFieldContext","shouldHavePermitClickOnTrigger","t0","event","preventDefault","handleOnClickTriggerCalendar","t1","BaseDate.Triggers","displayName"],"mappings":";;;;AAMA,MAAMA,WAAWA,MAAA;AAAA,QAAAC,IAAAC,uBAAAA,EAAA,EAAA;AACf,QAAA;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAIIC,oBAAAA;AACJ,QAAAC,iCAAuC,CAACV,cAAD,CAAgBC;AAAW,MAAAU;AAAA,MAAAd,EAAA,CAAA,MAAAS,gCAAAT,SAAAa,gCAAA;AAE7BC,SAAAC,CAAAA,UAAA;AACnC,UAAI,CAACF,gCAA8B;AAAEE,cAAKC,eAAAA;AAAAA,MAAiB,OAAA;AACtDP,qCAAAA;AAAAA,MAA8B;AAAA,IAAC;AACrCT,WAAAS;AAAAT,WAAAa;AAAAb,WAAAc;AAAAA,EAAA,OAAA;AAAAA,SAAAd,EAAA,CAAA;AAAA,EAAA;AAHD,QAAAiB,+BAAqCH;AAGnC,MAAAI;AAAA,MAAAlB,EAAA,CAAA,MAAAM,mBAAAN,SAAAU,kCAAAV,EAAA,CAAA,MAAAiB,gCAAAjB,SAAAQ,wBAAAR,EAAA,CAAA,MAAAE,gBAAAF,SAAAI,cAAAJ,EAAA,CAAA,MAAAG,cAAAH,EAAA,EAAA,MAAAO,sBAAAP,EAAA,EAAA,MAAAW,uBAAAX,UAAAK,aAAA;AAGAa,SAAA,oBAAAC,YAAA,EACoB,mBAAA,+CACG,sBAAA,yCACTf,YACAD,YACCE,aACCH,cACGI,iBACAK,iBAAAA,qBACGJ,oBACGC,uBAAAA,sBACC,wBAAA,OACHE,qBAAAA,gCACGO,wBAAAA,6BAAAA,CAA4B;AAAIjB,WAAAM;AAAAN,WAAAU;AAAAV,WAAAiB;AAAAjB,WAAAQ;AAAAR,WAAAE;AAAAF,WAAAI;AAAAJ,WAAAG;AAAAH,YAAAO;AAAAP,YAAAW;AAAAX,YAAAK;AAAAL,YAAAkB;AAAAA,EAAA,OAAA;AAAAA,SAAAlB,EAAA,EAAA;AAAA,EAAA;AAAA,SAb1DkB;AAa0D;AAI9DnB,SAASqB,cAAc;"}
1
+ {"version":3,"file":"triggers.js","sources":["../../../../src/lib/inputs2/date/datefield/triggers.tsx"],"sourcesContent":["import { MouseEvent } from 'react';\nimport { useDateFieldContext } from './context';\nimport * as BaseDate from '../base';\n\ninterface DateFieldTriggersProps { }\n\nconst Triggers = () => {\n const {\n inputFieldId, isReadOnly, isDisabled, skeletonize, calendarBoxOpen, showCalendarButton, \n hasValidDateSelected, handleToggleCalendarBox, handleOnClickClearSelectedDate,\n showClearDateButton,\n } = useDateFieldContext();\n const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;\n\n const handleOnClickTriggerCalendar = (event: MouseEvent<HTMLButtonElement>) => {\n if (!shouldHavePermitClickOnTrigger) event.preventDefault();\n else handleToggleCalendarBox();\n };\n\n return (\n <BaseDate.Triggers\n clearButtonTestId=\"test-date-field-trigger-clear-selected-date\"\n calendarButtonTestId=\"test-date-field-trigger-open-calendar\"\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n skeletonize={skeletonize}\n inputFieldId={inputFieldId}\n calendarBoxOpen={calendarBoxOpen}\n showClearButton={showClearDateButton}\n showCalendarButton={showCalendarButton}\n hasValidDateSelection={hasValidDateSelected}\n hasValidPeriodSelected={false}\n onClearSelectedDate={handleOnClickClearSelectedDate}\n onClickTriggerCalendar={handleOnClickTriggerCalendar} />\n );\n};\n\nTriggers.displayName = 'DateFieldTriggers';\n\nexport { Triggers };\nexport type { DateFieldTriggersProps };\n"],"names":["Triggers","$","_c","inputFieldId","isReadOnly","isDisabled","skeletonize","calendarBoxOpen","showCalendarButton","hasValidDateSelected","handleToggleCalendarBox","handleOnClickClearSelectedDate","showClearDateButton","useDateFieldContext","shouldHavePermitClickOnTrigger","t0","event","preventDefault","handleOnClickTriggerCalendar","t1","BaseDate.Triggers","displayName"],"mappings":";;;;AAMA,MAAMA,WAAWA,MAAA;AAAA,QAAAC,IAAAC,uBAAAA,EAAA,EAAA;AACf,QAAA;AAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,IAAAC;AAAAA,EAAAA,IAIIC,oBAAAA;AACJ,QAAAC,iCAAuC,CAACV,cAAD,CAAgBC;AAAW,MAAAU;AAAA,MAAAd,EAAA,CAAA,MAAAS,2BAAAT,SAAAa,gCAAA;AAE7BC,SAAAC,CAAAA,UAAA;AACnC,UAAI,CAACF,gCAA8B;AAAEE,cAAKC,eAAAA;AAAAA,MAAiB,OAAA;AACtDP,gCAAAA;AAAAA,MAAyB;AAAA,IAAC;AAChCT,WAAAS;AAAAT,WAAAa;AAAAb,WAAAc;AAAAA,EAAA,OAAA;AAAAA,SAAAd,EAAA,CAAA;AAAA,EAAA;AAHD,QAAAiB,+BAAqCH;AAGnC,MAAAI;AAAA,MAAAlB,EAAA,CAAA,MAAAM,mBAAAN,SAAAU,kCAAAV,EAAA,CAAA,MAAAiB,gCAAAjB,SAAAQ,wBAAAR,EAAA,CAAA,MAAAE,gBAAAF,SAAAI,cAAAJ,EAAA,CAAA,MAAAG,cAAAH,EAAA,EAAA,MAAAO,sBAAAP,EAAA,EAAA,MAAAW,uBAAAX,UAAAK,aAAA;AAGAa,SAAA,oBAAAC,YAAA,EACoB,mBAAA,+CACG,sBAAA,yCACTf,YACAD,YACCE,aACCH,cACGI,iBACAK,iBAAAA,qBACGJ,oBACGC,uBAAAA,sBACC,wBAAA,OACHE,qBAAAA,gCACGO,wBAAAA,6BAAAA,CAA4B;AAAIjB,WAAAM;AAAAN,WAAAU;AAAAV,WAAAiB;AAAAjB,WAAAQ;AAAAR,WAAAE;AAAAF,WAAAI;AAAAJ,WAAAG;AAAAH,YAAAO;AAAAP,YAAAW;AAAAX,YAAAK;AAAAL,YAAAkB;AAAAA,EAAA,OAAA;AAAAA,SAAAlB,EAAA,EAAA;AAAA,EAAA;AAAA,SAb1DkB;AAa0D;AAI9DnB,SAASqB,cAAc;"}
@@ -5,7 +5,7 @@ import { ColorTheme } from '../../../@types/ColorStyles';
5
5
  import { ITooltipCommonProps } from '../../../tooltip/types';
6
6
  import { Position, HintPosition } from '../../../@types/Position';
7
7
  import { OnDenied, PermissionAttr } from '../../../@types/PermissionAttr';
8
- import { DateValueReturnType } from '../types';
8
+ import { DateValueReturnType, DateVariant, DateSharedContextProps } from '../types';
9
9
  type InputHTMLProps = Omit<ComponentPropsWithoutRef<'input'>, 'type' | 'multiple'>;
10
10
  export interface DateFieldInputBaseProps extends InputHTMLProps, ITooltipCommonProps {
11
11
  hint?: string;
@@ -24,6 +24,9 @@ export interface DateFieldInputBaseProps extends InputHTMLProps, ITooltipCommonP
24
24
  shouldCloseOnSelect?: boolean;
25
25
  showClearDateButton?: boolean;
26
26
  returnValueType?: DateValueReturnType;
27
+ variant?: DateVariant;
28
+ min?: string;
29
+ max?: string;
27
30
  textAlign?: TextAlign;
28
31
  hintPosition?: HintPosition;
29
32
  themePopover?: ColorTheme;
@@ -34,11 +37,9 @@ export interface DateFieldInputProps extends DateFieldInputBaseProps {
34
37
  permissionAttr?: PermissionAttr;
35
38
  onDeniedActions?: OnDenied;
36
39
  }
37
- export interface DateFieldContextProps {
40
+ export interface DateFieldContextProps extends DateSharedContextProps {
38
41
  label?: string;
39
42
  inputFieldId: string;
40
- activeDescendant?: string;
41
- calendarBoxOpen: boolean;
42
43
  isReadOnly?: boolean;
43
44
  isDisabled?: boolean;
44
45
  skeletonize?: boolean;
@@ -46,18 +47,10 @@ export interface DateFieldContextProps {
46
47
  hasValidDateSelected?: boolean;
47
48
  showClearDateButton?: boolean;
48
49
  selectedDate: Moment | null;
49
- calendarDisplayDate: Moment;
50
50
  maskedValue: string;
51
51
  unmaskedValue: string;
52
- calendarRef: RefObject<HTMLDivElement | null>;
53
52
  dateInputRef: RefObject<HTMLInputElement | null>;
54
- dateContainerRef: RefObject<HTMLDivElement | null>;
55
- handleNextMonth: () => void;
56
- handlePreviousMonth: () => void;
57
- handleOpenCalendar: () => void;
58
- handleCloseCalendar: () => void;
59
53
  handleSelectDate: (date: Moment) => void;
60
- handleChangeCalendarBoxState: () => void;
61
54
  handleOnClickClearSelectedDate: () => void;
62
55
  }
63
56
  export {};