linear-react-components-ui 2.1.0-beta.2 → 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.
- package/lib/inputs2/date/datefield/base.js +263 -255
- package/lib/inputs2/date/datefield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/base.js +398 -373
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
- package/lib/inputs2/date/helpers.d.ts +4 -0
- package/lib/inputs2/date/helpers.js +15 -0
- package/lib/inputs2/date/helpers.js.map +1 -1
- package/lib/inputs2/date/hooks/useDateMask.d.ts +2 -0
- package/lib/inputs2/date/hooks/useDateMask.js +93 -56
- package/lib/inputs2/date/hooks/useDateMask.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base.js","sources":["../../../../src/lib/inputs2/date/dateperiodfield/base.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport moment, { type Moment } from 'moment';\nimport Hint from '../../../hint';\nimport Icon from '../../../icons';\nimport { Tooltip } from '../../../tooltip';\nimport { mergeRefs } from '../../../form2/helpers';\nimport { Keys } from '../types';\nimport * as BaseDate from '../base';\nimport { useDateMask } from '../hooks/useDateMask';\nimport { useDateCalendarState } from '../hooks/useDateCalendarState';\nimport { TimeSelector } from '../timeselector';\nimport {\n clampDateToBounds, getDateFormats, getPredefinedPeriodRange, isDayOutOfBounds, parseBoundary,\n parseDateValue, TOKEN_ISO_FORMAT,\n} from '../helpers';\nimport { CalendarBox } from '../calendarbox';\nimport { Triggers } from './triggers';\nimport { DatePeriodFieldContext } from './context';\nimport type { DatePeriodFieldBaseProps, DatePeriodTypes, InputType, SelectedDateType, UpdateDateStateParams } from './types';\n\nexport const InputBase = \n React.forwardRef<HTMLInputElement, DatePeriodFieldBaseProps>((props, __) => {\n const {\n label, errors, initialName = 'inicial', finalName = 'final', customClass = '', customClassLabel = '',\n customClassWrapper = '', customClassInputContainer = '', labelUppercase = false, undigitable = false,\n skeletonize = false, hintPosition = 'below', themePopover = 'light', popoverAlign = 'left',\n showCalendarButton = true, textAlign = 'left', openCalendarOnFocus = true,\n showPredefinedPeriodsButton = true, showClearDateButton = true, returnValueType = 'default',\n variant = 'date', placeholder, shouldCloseOnSelect, min, max,\n tooltip, tooltipPosition, tooltipWidth, disabled, readOnly, ...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<SelectedDateType>({\n inicial: null, final: null,\n });\n const [activeInputType, setActiveInputType] = React.useState<InputType>('initial');\n const inputRootRef = React.useRef<HTMLDivElement | null>(null);\n const finalInputRef = React.useRef<HTMLInputElement | null>(null);\n const initialInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const calendarState = useDateCalendarState({\n inputRef: initialInputRef, min: minDate, max: maxDate,\n });\n const {\n calendarBoxOpen, activeDescendant, calendarDisplayDate, calendarRef, dateContainerRef,\n handleNextMonth, handlePreviousMonth, handleSetCalendarBoxOpen,\n handleChangeActiveDescendant, handleChangeCalendarDisplayDate, handleKeyDownNavigation,\n } = calendarState;\n\n const initialInputName = React.useMemo(() => String(props.name).concat('.').concat(initialName), [props.name, initialName]);\n const finalInputName = React.useMemo(() => String(props.name).concat('.').concat(finalName), [props.name, finalName]);\n\n const {\n maskedValue: initialMaskedValue,\n setMaskValue: setInitialMaskValue,\n unmaskedValue: initialUnmaskedValue,\n handleOnPaste,\n handleOnBeforeInput,\n } = useDateMask({\n inputRef: initialInputRef,\n variant,\n defaultValue: selectedDate.inicial?.format(ptbrFormat),\n undigitable,\n onCommit: date => handleChangeUpdateDateState({ date, inputType: 'initial', typing: true }),\n onPaste: props.onPaste,\n onBeforeInput: props.onBeforeInput,\n });\n\n const {\n maskedValue: finalMaskedValue,\n setMaskValue: setFinalMaskValue,\n unmaskedValue: finalUnmaskedValue,\n } = useDateMask({\n inputRef: finalInputRef,\n variant,\n defaultValue: selectedDate.final?.format(ptbrFormat),\n undigitable,\n onCommit: date => handleChangeUpdateDateState({ date, inputType: 'final', typing: true }),\n onPaste: props.onPaste,\n onBeforeInput: props.onBeforeInput,\n });\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const verifyPeriodSelectedIsValid = () => {\n const objectValue = props?.value as Partial<{ [x: string]: string | undefined }>;\n const isValidInitialValue = !_.isEmpty(objectValue[initialName]);\n const isValidFinalValue = !_.isEmpty(objectValue[finalName]);\n return isValidInitialValue && isValidFinalValue;\n };\n const handleOnClickClearSelectedPeriod = () => {\n props.onChange?.({\n target: {\n name: props.name,\n value: { [initialName]: '', [finalName]: '' } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n setSelectedDate(() => ({ inicial: null, final: null }));\n setInitialMaskValue('');\n setFinalMaskValue('');\n handleSetCalendarBoxOpen(false);\n };\n\n const handleChangeUpdateDateState = (params: UpdateDateStateParams) => {\n const { date, inputType, typing } = params;\n const rawDate = date.clone();\n const verifyDateRangeOrder = (initialDate: Moment | null, finalDate: Moment | null) => {\n const inicial = initialDate?.isAfter(finalDate) ? finalDate : initialDate;\n const final = initialDate?.isAfter(finalDate) ? initialDate : finalDate;\n return { inicial, final };\n };\n switch (inputType) {\n case 'initial': {\n setSelectedDate((prevSelectedDate) => {\n const { inicial, final } = verifyDateRangeOrder(rawDate, prevSelectedDate.final);\n const updatedState: SelectedDateType = { inicial, final };\n return updatedState;\n });\n const { inicial, final } = verifyDateRangeOrder(rawDate, selectedDate.final);\n props.onChange?.({\n target: {\n name: props.name,\n value: {\n [initialName]: returnValueType === 'default' ? inicial?.format(isoFormat) : inicial?.toISOString(),\n [finalName]: returnValueType === 'default' ? final?.format(isoFormat) : final?.toISOString(),\n } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n requestAnimationFrame(() => {\n if (!typing) finalInputRef.current?.focus?.();\n });\n break;\n }\n case 'final': {\n setSelectedDate((prevSelectedDate) => {\n const { inicial, final } = verifyDateRangeOrder(prevSelectedDate.inicial, rawDate);\n const updatedState: SelectedDateType = { inicial, final };\n return updatedState;\n });\n const { inicial, final } = verifyDateRangeOrder(selectedDate.inicial, rawDate);\n props.onChange?.({\n target: {\n name: props.name,\n value: {\n [initialName]: returnValueType === 'default' ? inicial?.format(isoFormat) : inicial?.toISOString(),\n [finalName]: returnValueType === 'default' ? final?.format(isoFormat) : final?.toISOString(),\n } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n if (shouldCloseCalendarOnSelect) handleSetCalendarBoxOpen(false);\n break;\n }\n default:\n break;\n }\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(rawDate.format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(rawDate.clone());\n };\n\n const handleChangeUpdateDateStateWithPredefinedPeriod = (period: DatePeriodTypes) => {\n // Um preset é sempre o dia inteiro. Sem normalizar, \"Hoje\" usaria a hora corrente\n // nos dois extremos e em datetime viraria um período de duração zero.\n const localOnChange = (initialDate: Moment, finalDate: Moment) => {\n const valueToUpdate = {\n [initialName]: returnValueType === 'default' ? initialDate.format(isoFormat) : initialDate.toISOString(),\n [finalName]: returnValueType === 'default' ? finalDate.format(isoFormat) : finalDate.toISOString(),\n };\n setSelectedDate(() => {\n const updatedState: SelectedDateType = {\n inicial: initialDate.clone(),\n final: finalDate.clone(),\n };\n return updatedState;\n });\n props.onChange?.({\n target: {\n name: props.name,\n value: valueToUpdate as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n };\n\n const { initialDate, finalDate } = getPredefinedPeriodRange(period);\n localOnChange(\n clampDateToBounds(initialDate, minDate, maxDate),\n clampDateToBounds(finalDate, minDate, maxDate),\n );\n finalInputRef?.current?.focus?.();\n if (shouldCloseCalendarOnSelect) handleSetCalendarBoxOpen(false);\n };\n\n const handleOnBlurMaskInput = (\n event: React.FocusEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onBlur?.(event);\n if (inputType === 'initial') {\n if (event.relatedTarget?.id !== finalInputName) handleSetCalendarBoxOpen(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (_.size(initialUnmaskedValue) !== digits) {\n const date = moment(selectedDate.inicial, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setInitialMaskValue(date.format(ptbrFormat)); }\n }\n }\n if (inputType === 'final') {\n if (event.relatedTarget?.id !== initialInputName) handleSetCalendarBoxOpen(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.final ?? moment());\n }\n if (_.size(finalUnmaskedValue) !== digits) {\n const date = moment(selectedDate.final, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setFinalMaskValue(date.format(ptbrFormat)); }\n }\n }\n };\n\n const handleOnFocusMaskInput = (\n event: React.FocusEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onFocus?.(event);\n if (!readOnly && !calendarBoxOpen && openCalendarOnFocus) {\n handleSetCalendarBoxOpen(true);\n }\n setActiveInputType(inputType);\n if (inputType === 'initial') {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (inputType === 'final') {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.final ?? moment());\n }\n };\n\n const handleOnKeyDownMaskInput = (\n event: React.KeyboardEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onKeyDown?.(event);\n if (calendarBoxOpen && event.key && \n !event.shiftKey && !event.altKey && event.key === Keys.enter) {\n event.preventDefault();\n handleSelectDay(moment(_.toString(activeDescendant), TOKEN_ISO_FORMAT), inputType);\n }\n };\n\n const getDayState = (day: Moment) => {\n const { inicial, final } = selectedDate;\n return {\n isSelected: Boolean(\n (inicial && day.isSame(inicial, 'day')) || (final && day.isSame(final, 'day')),\n ),\n isInRange: Boolean(\n inicial && final && day.isAfter(inicial, 'day') && day.isBefore(final, 'day'),\n ),\n ...(hasBounds && { isDisabled: isDayOutOfBounds(day, minDate, maxDate) }),\n };\n };\n\n // O calendário é um só para os dois campos, então quem manda é o input com foco —\n // clicar num dia sem foco em nenhum deles não teria onde gravar a data.\n const resolveInputTypeFromFocus = (): InputType | undefined => {\n const focusedInputId = document.activeElement?.id;\n if (focusedInputId === initialInputName) return 'initial';\n if (focusedInputId === finalInputName) return 'final';\n return undefined;\n };\n\n // Trocar de dia carrega o horário já escolhido, e o horário é preso no intervalo para\n // que uma escolha no calendário nunca deixe o campo exibindo um valor fora dele.\n const handleSelectDay = (daySelected: Moment, targetInputType?: InputType) => {\n const inputType = targetInputType ?? resolveInputTypeFromFocus();\n if (_.isUndefined(inputType)) return;\n const current = inputType === 'initial' ? selectedDate.inicial : selectedDate.final;\n const dayWithTime = (isDateTime && current)\n ? daySelected.clone().hour(current.hour()).minute(current.minute())\n : daySelected;\n handleChangeUpdateDateState({\n date: clampDateToBounds(dayWithTime, minDate, maxDate), inputType,\n });\n };\n\n const activeSelectedDate = activeInputType === 'initial'\n ? selectedDate.inicial\n : selectedDate.final;\n\n const handleSelectTime = (hour: number, minute: number) => {\n if (!activeSelectedDate) return;\n handleChangeUpdateDateState({\n date: activeSelectedDate.clone().hour(hour).minute(minute).second(0),\n inputType: activeInputType,\n typing: true,\n });\n };\n\n React.useEffect(() => {\n if (props?.value) {\n const objectValue = props.value as Partial<{ [x: string]: string | undefined }>;\n const initialDate = parseDateValue(objectValue[initialName], variant);\n const finalDate = parseDateValue(objectValue[finalName], variant);\n setSelectedDate(() => ({\n inicial: initialDate.isValid() ? initialDate : null,\n final: finalDate.isValid() ? finalDate : null,\n }));\n setInitialMaskValue(initialDate.format(ptbrFormat));\n setFinalMaskValue(finalDate.format(ptbrFormat));\n }\n }, [props?.value]);\n\n const contextValues = ({\n ...calendarState,\n isReadOnly: Boolean(readOnly), isDisabled: Boolean(disabled), undigitable, skeletonize,\n selectedDate, minDate, maxDate,\n initialInputId: initialInputName, finalInputId: finalInputName,\n initialInputRef, finalInputRef, showCalendarButton, hasValidationErrors,\n openCalendarOnFocus, showPredefinedPeriodsButton, showClearDateButton,\n handleChangeUpdateDateState, handleOnClickClearSelectedPeriod,\n handleChangeUpdateDateStateWithPredefinedPeriod,\n hasValidPeriodSelected: verifyPeriodSelectedIsValid(),\n });\n\n return (\n <React.Fragment>\n <DatePeriodFieldContext.Provider value={contextValues}>\n <BaseDate.Root\n ref={inputRootRef}\n data-testid=\"test-date-period-field-root\"\n data-state-error={hasValidationErrors}\n customClassWrapper={customClassWrapper}>\n {hasLabel && (\n <BaseDate.Label\n data-testid=\"test-date-period-field-label\"\n label={label}\n inputId={initialInputName}\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 data-testid=\"test-date-period-field-container\"\n onKeyDown={handleKeyDownNavigation}\n skeletonize={skeletonize}\n customClassInputContainer={customClassInputContainer}>\n <BaseDate.Input\n {..._.omit(rest, ['initialRef', 'finalRef'])}\n ref={mergeRefs(initialInputRef, props?.initialRef)}\n id={initialInputName}\n name={initialInputName}\n value={initialMaskedValue}\n disabled={disabled}\n readOnly={readOnly}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={inputPlaceholder}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={initialInputName}\n aria-labelledby={initialInputName}\n data-testid=\"test-date-period-field-initial-input\"\n data-state-is-period-input={true}\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 onPaste={handleOnPaste}\n onBeforeInput={handleOnBeforeInput}\n onBlur={event => handleOnBlurMaskInput(event, 'initial')}\n onFocus={event => handleOnFocusMaskInput(event, 'initial')}\n onKeyDown={event => handleOnKeyDownMaskInput(event, 'initial')} />\n <span\n className=\"separator\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n onMouseDown={(event) => { event.preventDefault(); }}>\n <Icon name=\"arrow_right\" size={10} />\n </span>\n <BaseDate.Input\n {..._.omit(rest, ['initialRef', 'finalRef'])}\n ref={mergeRefs(finalInputRef, props?.finalRef)}\n id={finalInputName}\n name={finalInputName}\n value={finalMaskedValue}\n readOnly={readOnly}\n disabled={disabled}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={inputPlaceholder}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={finalInputName}\n aria-labelledby={finalInputName}\n data-testid=\"test-date-period-field-final-input\"\n data-state-is-period-input={true}\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 onPaste={handleOnPaste}\n onBeforeInput={handleOnBeforeInput}\n onBlur={event => handleOnBlurMaskInput(event, 'final')}\n onFocus={event => handleOnFocusMaskInput(event, 'final')}\n onKeyDown={event => handleOnKeyDownMaskInput(event, 'final')} />\n <Triggers />\n </BaseDate.Container>\n {calendarBoxOpen &&\n createPortal(\n <CalendarBox\n ref={calendarRef}\n testIdPrefix=\"test-date-period-field\"\n headerId={initialInputName}\n calendarBoxOpen={calendarBoxOpen}\n activeDescendant={activeDescendant}\n calendarDisplayDate={calendarDisplayDate}\n containerRef={dateContainerRef}\n onNextMonth={handleNextMonth}\n onPreviousMonth={handlePreviousMonth}\n getDayState={getDayState}\n onSelectDay={handleSelectDay}>\n {isDateTime && (\n <TimeSelector\n value={activeSelectedDate}\n onSelectTime={handleSelectTime}\n min={minDate}\n max={maxDate}\n testIdPrefix=\"test-date-period-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-period-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(label).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 </DatePeriodFieldContext.Provider>\n <Tooltip\n targetRef={inputRootRef}\n text={tooltip}\n width={tooltipWidth}\n position={tooltipPosition} />\n </React.Fragment>\n );\n });\n\nInputBase.displayName = 'DatePeriodFieldInputBase';\n"],"names":["InputBase","React","forwardRef","props","__","$","_c","label","errors","initialName","t0","finalName","t1","customClass","t2","customClassLabel","t3","customClassWrapper","t4","customClassInputContainer","t5","labelUppercase","t6","undigitable","t7","skeletonize","t8","hintPosition","t9","themePopover","t10","popoverAlign","t11","showCalendarButton","t12","textAlign","t13","openCalendarOnFocus","t14","showPredefinedPeriodsButton","t15","showClearDateButton","t16","returnValueType","t17","variant","t18","placeholder","shouldCloseOnSelect","min","max","tooltip","tooltipPosition","tooltipWidth","disabled","readOnly","rest","undefined","isDateTime","isoFormat","ptbrFormat","digits","getDateFormats","shouldCloseCalendarOnSelect","inputPlaceholder","minDate","parseBoundary","maxDate","hasBounds","Boolean","t19","Symbol","for","inicial","final","selectedDate","setSelectedDate","useState","activeInputType","setActiveInputType","inputRootRef","useRef","finalInputRef","initialInputRef","calendarState","useDateCalendarState","inputRef","calendarBoxOpen","activeDescendant","calendarDisplayDate","calendarRef","dateContainerRef","handleNextMonth","handlePreviousMonth","handleSetCalendarBoxOpen","handleChangeActiveDescendant","handleChangeCalendarDisplayDate","handleKeyDownNavigation","t20","name","String","concat","initialInputName","t21","finalInputName","maskedValue","initialMaskedValue","setMaskValue","setInitialMaskValue","unmaskedValue","initialUnmaskedValue","handleOnPaste","handleOnBeforeInput","useDateMask","defaultValue","format","onCommit","date","handleChangeUpdateDateState","inputType","typing","onPaste","onBeforeInput","finalMaskedValue","setFinalMaskValue","finalUnmaskedValue","date_0","t22","_","isEmpty","hasLabel","hasHintMessages","hint","length","hasValidationErrors","t23","value","objectValue","isValidInitialValue","isValidFinalValue","verifyPeriodSelectedIsValid","t24","onChange","target","_temp","handleOnClickClearSelectedPeriod","params","date_1","rawDate","clone","verifyDateRangeOrder","_temp2","bb165","prevSelectedDate_0","inicial_2","final_2","prevSelectedDate","updatedState_0","updatedState","inicial_3","final_3","toISOString","requestAnimationFrame","current","focus","inicial_0","final_0","inicial_1","final_1","TOKEN_ISO_FORMAT","t25","period","localOnChange","initialDate_0","finalDate_0","valueToUpdate","initialDate","finalDate","updatedState_1","initialDate_1","finalDate_1","getPredefinedPeriodRange","clampDateToBounds","handleChangeUpdateDateStateWithPredefinedPeriod","t26","event","inputType_0","onBlur","relatedTarget","id","moment","size","date_2","isValid","date_3","handleOnBlurMaskInput","t27","event_0","inputType_1","onFocus","handleOnFocusMaskInput","getDayState","handleOnKeyDownMaskInput","handleSelectDay","event_1","inputType_2","onKeyDown","key","shiftKey","altKey","Keys","enter","preventDefault","toString","t28","day","inicial_4","final_4","isSelected","isSame","isInRange","isAfter","isBefore","isDisabled","isDayOutOfBounds","t29","focusedInputId","document","activeElement","resolveInputTypeFromFocus","daySelected","targetInputType","inputType_3","isUndefined","dayWithTime","hour","minute","activeSelectedDate","second","handleSelectTime","objectValue_0","initialDate_2","parseDateValue","finalDate_2","t30","t31","useEffect","t32","t33","t34","t35","isReadOnly","initialInputId","finalInputId","hasValidPeriodSelected","contextValues","t36","required","BaseDate.Label","t37","omit","t38","initialRef","t39","mergeRefs","t40","event_2","t41","event_3","t42","event_4","t43","t44","_temp3","t45","BaseDate","t46","t47","finalRef","t48","t49","t50","event_6","t51","event_7","t52","event_8","t53","Input","t54","t55","createPortal","body","t56","t57","map","_temp4","t58","BaseDate.Root","BaseDate.Container","BaseDate.Input","displayName","event_5","error","index"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"base.js","sources":["../../../../src/lib/inputs2/date/dateperiodfield/base.tsx"],"sourcesContent":["import React from 'react';\nimport _ from 'lodash';\nimport { createPortal } from 'react-dom';\nimport moment, { type Moment } from 'moment';\nimport Hint from '../../../hint';\nimport Icon from '../../../icons';\nimport { Tooltip } from '../../../tooltip';\nimport { mergeRefs } from '../../../form2/helpers';\nimport { Keys } from '../types';\nimport * as BaseDate from '../base';\nimport { useDateMask } from '../hooks/useDateMask';\nimport { useDateCalendarState } from '../hooks/useDateCalendarState';\nimport { TimeSelector } from '../timeselector';\nimport {\n clampDateToBounds, getDateFormats, getPredefinedPeriodRange, isDayOutOfBounds, parseBoundary,\n parseDateValue, TOKEN_ISO_FORMAT,\n} from '../helpers';\nimport { CalendarBox } from '../calendarbox';\nimport { Triggers } from './triggers';\nimport { DatePeriodFieldContext } from './context';\nimport type { DatePeriodFieldBaseProps, DatePeriodTypes, InputType, SelectedDateType, UpdateDateStateParams } from './types';\n\nexport const InputBase = \n React.forwardRef<HTMLInputElement, DatePeriodFieldBaseProps>((props, __) => {\n const {\n label, errors, initialName = 'inicial', finalName = 'final', customClass = '', customClassLabel = '',\n customClassWrapper = '', customClassInputContainer = '', labelUppercase = false, undigitable = false,\n skeletonize = false, hintPosition = 'below', themePopover = 'light', popoverAlign = 'left',\n showCalendarButton = true, textAlign = 'left', openCalendarOnFocus = true,\n showPredefinedPeriodsButton = true, showClearDateButton = true, returnValueType = 'default',\n variant = 'date', placeholder, shouldCloseOnSelect, min, max, onChange,\n tooltip, tooltipPosition, tooltipWidth, disabled, readOnly, ...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<SelectedDateType>({\n inicial: null, final: null,\n });\n const [activeInputType, setActiveInputType] = React.useState<InputType>('initial');\n const inputRootRef = React.useRef<HTMLDivElement | null>(null);\n const finalInputRef = React.useRef<HTMLInputElement | null>(null);\n const initialInputRef = React.useRef<HTMLInputElement | null>(null);\n\n const calendarState = useDateCalendarState({\n inputRef: initialInputRef, min: minDate, max: maxDate,\n });\n const {\n calendarBoxOpen, activeDescendant, calendarDisplayDate, calendarRef, dateContainerRef,\n handleNextMonth, handlePreviousMonth, handleSetCalendarBoxOpen,\n handleChangeActiveDescendant, handleChangeCalendarDisplayDate, handleKeyDownNavigation,\n } = calendarState;\n\n const initialInputName = React.useMemo(() => String(props.name).concat('.').concat(initialName), [props.name, initialName]);\n const finalInputName = React.useMemo(() => String(props.name).concat('.').concat(finalName), [props.name, finalName]);\n\n const {\n maskedValue: initialMaskedValue,\n setMaskValue: setInitialMaskValue,\n unmaskedValue: initialUnmaskedValue,\n handleOnPaste,\n handleOnBeforeInput,\n handleOnKeyDownCapture: handleInitialKeyDownCapture,\n } = useDateMask({\n inputRef: initialInputRef,\n variant,\n defaultValue: selectedDate.inicial?.format(ptbrFormat),\n undigitable,\n readOnly,\n onCommit: date => handleChangeUpdateDateState({ date, inputType: 'initial', typing: true }),\n onPaste: props.onPaste,\n onBeforeInput: props.onBeforeInput,\n });\n\n const {\n maskedValue: finalMaskedValue,\n setMaskValue: setFinalMaskValue,\n unmaskedValue: finalUnmaskedValue,\n handleOnKeyDownCapture: handleFinalKeyDownCapture,\n } = useDateMask({\n inputRef: finalInputRef,\n variant,\n defaultValue: selectedDate.final?.format(ptbrFormat),\n undigitable,\n readOnly,\n onCommit: date => handleChangeUpdateDateState({ date, inputType: 'final', typing: true }),\n onPaste: props.onPaste,\n onBeforeInput: props.onBeforeInput,\n });\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const verifyPeriodSelectedIsValid = () => {\n const objectValue = props?.value as Partial<{ [x: string]: string | undefined }>;\n const isValidInitialValue = !_.isEmpty(objectValue[initialName]);\n const isValidFinalValue = !_.isEmpty(objectValue[finalName]);\n return isValidInitialValue && isValidFinalValue;\n };\n const emitPeriodChange = (inicial: Moment | null, final: Moment | null) => {\n onChange?.({\n target: {\n name: props.name,\n value: {\n [initialName]: returnValueType === 'default' ? inicial?.format(isoFormat) : inicial?.toISOString(),\n [finalName]: returnValueType === 'default' ? final?.format(isoFormat) : final?.toISOString(),\n } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n };\n\n const handleOnClickClearSelectedPeriod = () => {\n onChange?.({\n target: {\n name: props.name,\n value: { [initialName]: '', [finalName]: '' } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n setSelectedDate(() => ({ inicial: null, final: null }));\n setInitialMaskValue('');\n setFinalMaskValue('');\n handleSetCalendarBoxOpen(false);\n };\n\n const handleChangeUpdateDateState = (params: UpdateDateStateParams) => {\n const { date, inputType, typing } = params;\n const rawDate = date.clone();\n // Digitar atravessa datas completas intermediárias (12/10 -> 12/11 -> 12/12), e uma\n // delas pode ultrapassar o outro extremo. Reordenar aí trocaria os dois campos\n // debaixo do cursor, então a ordenação espera o fim da edição — ver\n // handleReorderPeriodOnBlur.\n const resolveDateRange = (initialDate: Moment | null, finalDate: Moment | null) => {\n if (typing) return { inicial: initialDate, final: finalDate };\n const inicial = initialDate?.isAfter(finalDate) ? finalDate : initialDate;\n const final = initialDate?.isAfter(finalDate) ? initialDate : finalDate;\n return { inicial, final };\n };\n switch (inputType) {\n case 'initial': {\n setSelectedDate((prevSelectedDate) => {\n const { inicial, final } = resolveDateRange(rawDate, prevSelectedDate.final);\n const updatedState: SelectedDateType = { inicial, final };\n return updatedState;\n });\n const { inicial, final } = resolveDateRange(rawDate, selectedDate.final);\n emitPeriodChange(inicial, final);\n requestAnimationFrame(() => {\n if (!typing) finalInputRef.current?.focus?.();\n });\n break;\n }\n case 'final': {\n setSelectedDate((prevSelectedDate) => {\n const { inicial, final } = resolveDateRange(prevSelectedDate.inicial, rawDate);\n const updatedState: SelectedDateType = { inicial, final };\n return updatedState;\n });\n const { inicial, final } = resolveDateRange(selectedDate.inicial, rawDate);\n emitPeriodChange(inicial, final);\n if (shouldCloseCalendarOnSelect) handleSetCalendarBoxOpen(false);\n break;\n }\n default:\n break;\n }\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(rawDate.format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(rawDate.clone());\n };\n\n const handleChangeUpdateDateStateWithPredefinedPeriod = (period: DatePeriodTypes) => {\n // Um preset é sempre o dia inteiro. Sem normalizar, \"Hoje\" usaria a hora corrente\n // nos dois extremos e em datetime viraria um período de duração zero.\n const localOnChange = (initialDate: Moment, finalDate: Moment) => {\n const valueToUpdate = {\n [initialName]: returnValueType === 'default' ? initialDate.format(isoFormat) : initialDate.toISOString(),\n [finalName]: returnValueType === 'default' ? finalDate.format(isoFormat) : finalDate.toISOString(),\n };\n setSelectedDate(() => {\n const updatedState: SelectedDateType = {\n inicial: initialDate.clone(),\n final: finalDate.clone(),\n };\n return updatedState;\n });\n onChange?.({\n target: {\n name: props.name,\n value: valueToUpdate as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n };\n\n const { initialDate, finalDate } = getPredefinedPeriodRange(period);\n localOnChange(\n clampDateToBounds(initialDate, minDate, maxDate),\n clampDateToBounds(finalDate, minDate, maxDate),\n );\n finalInputRef?.current?.focus?.();\n if (shouldCloseCalendarOnSelect) handleSetCalendarBoxOpen(false);\n };\n\n const handleOnBlurMaskInput = (\n event: React.FocusEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onBlur?.(event);\n if (inputType === 'initial') {\n if (event.relatedTarget?.id !== finalInputName) handleSetCalendarBoxOpen(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (_.size(initialUnmaskedValue) !== digits) {\n const date = moment(selectedDate.inicial, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setInitialMaskValue(date.format(ptbrFormat)); }\n }\n }\n if (inputType === 'final') {\n if (event.relatedTarget?.id !== initialInputName) handleSetCalendarBoxOpen(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.final ?? moment());\n }\n if (_.size(finalUnmaskedValue) !== digits) {\n const date = moment(selectedDate.final, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setFinalMaskValue(date.format(ptbrFormat)); }\n }\n }\n handleReorderPeriodOnBlur();\n };\n\n // Contrapartida de resolveDateRange: a inversão que a digitação pode deixar para trás é\n // desfeita aqui, uma vez só, quando a edição termina.\n const handleReorderPeriodOnBlur = () => {\n const { inicial, final } = selectedDate;\n if (!inicial || !final || !inicial.isAfter(final)) return;\n setSelectedDate({ inicial: final, final: inicial });\n setInitialMaskValue(final.format(ptbrFormat));\n setFinalMaskValue(inicial.format(ptbrFormat));\n emitPeriodChange(final, inicial);\n };\n\n const handleOnFocusMaskInput = (\n event: React.FocusEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onFocus?.(event);\n if (!readOnly && !calendarBoxOpen && openCalendarOnFocus) {\n handleSetCalendarBoxOpen(true);\n }\n setActiveInputType(inputType);\n if (inputType === 'initial') {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (inputType === 'final') {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.final ?? moment());\n }\n };\n\n const handleOnKeyDownMaskInput = (\n event: React.KeyboardEvent<HTMLInputElement>, inputType: InputType,\n ) => {\n props?.onKeyDown?.(event);\n if (calendarBoxOpen && event.key && \n !event.shiftKey && !event.altKey && event.key === Keys.enter) {\n event.preventDefault();\n handleSelectDay(moment(_.toString(activeDescendant), TOKEN_ISO_FORMAT), inputType);\n }\n };\n\n const getDayState = (day: Moment) => {\n const { inicial, final } = selectedDate;\n return {\n isSelected: Boolean(\n (inicial && day.isSame(inicial, 'day')) || (final && day.isSame(final, 'day')),\n ),\n isInRange: Boolean(\n inicial && final && day.isAfter(inicial, 'day') && day.isBefore(final, 'day'),\n ),\n ...(hasBounds && { isDisabled: isDayOutOfBounds(day, minDate, maxDate) }),\n };\n };\n\n // O calendário é um só para os dois campos, então quem manda é o input com foco —\n // clicar num dia sem foco em nenhum deles não teria onde gravar a data.\n const resolveInputTypeFromFocus = (): InputType | undefined => {\n const focusedInputId = document.activeElement?.id;\n if (focusedInputId === initialInputName) return 'initial';\n if (focusedInputId === finalInputName) return 'final';\n return undefined;\n };\n\n // Trocar de dia carrega o horário já escolhido, e o horário é preso no intervalo para\n // que uma escolha no calendário nunca deixe o campo exibindo um valor fora dele.\n const handleSelectDay = (daySelected: Moment, targetInputType?: InputType) => {\n const inputType = targetInputType ?? resolveInputTypeFromFocus();\n if (_.isUndefined(inputType)) return;\n const current = inputType === 'initial' ? selectedDate.inicial : selectedDate.final;\n const dayWithTime = (isDateTime && current)\n ? daySelected.clone().hour(current.hour()).minute(current.minute())\n : daySelected;\n handleChangeUpdateDateState({\n date: clampDateToBounds(dayWithTime, minDate, maxDate), inputType,\n });\n };\n\n const activeSelectedDate = activeInputType === 'initial'\n ? selectedDate.inicial\n : selectedDate.final;\n\n const handleSelectTime = (hour: number, minute: number) => {\n if (!activeSelectedDate) return;\n handleChangeUpdateDateState({\n date: activeSelectedDate.clone().hour(hour).minute(minute).second(0),\n inputType: activeInputType,\n typing: true,\n });\n };\n\n React.useEffect(() => {\n if (props?.value) {\n const objectValue = props.value as Partial<{ [x: string]: string | undefined }>;\n const initialDate = parseDateValue(objectValue[initialName], variant);\n const finalDate = parseDateValue(objectValue[finalName], variant);\n setSelectedDate(() => ({\n inicial: initialDate.isValid() ? initialDate : null,\n final: finalDate.isValid() ? finalDate : null,\n }));\n setInitialMaskValue(initialDate.format(ptbrFormat));\n setFinalMaskValue(finalDate.format(ptbrFormat));\n }\n }, [props?.value]);\n\n const contextValues = ({\n ...calendarState,\n isReadOnly: Boolean(readOnly), isDisabled: Boolean(disabled), undigitable, skeletonize,\n selectedDate, minDate, maxDate,\n initialInputId: initialInputName, finalInputId: finalInputName,\n initialInputRef, finalInputRef, showCalendarButton, hasValidationErrors,\n openCalendarOnFocus, showPredefinedPeriodsButton, showClearDateButton,\n handleChangeUpdateDateState, handleOnClickClearSelectedPeriod,\n handleChangeUpdateDateStateWithPredefinedPeriod,\n hasValidPeriodSelected: verifyPeriodSelectedIsValid(),\n });\n\n return (\n <React.Fragment>\n <DatePeriodFieldContext.Provider value={contextValues}>\n <BaseDate.Root\n ref={inputRootRef}\n data-testid=\"test-date-period-field-root\"\n data-state-error={hasValidationErrors}\n customClassWrapper={customClassWrapper}>\n {hasLabel && (\n <BaseDate.Label\n data-testid=\"test-date-period-field-label\"\n label={label}\n inputId={initialInputName}\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 data-testid=\"test-date-period-field-container\"\n onKeyDown={handleKeyDownNavigation}\n skeletonize={skeletonize}\n customClassInputContainer={customClassInputContainer}>\n <BaseDate.Input\n {..._.omit(rest, ['initialRef', 'finalRef'])}\n ref={mergeRefs(initialInputRef, props?.initialRef)}\n id={initialInputName}\n name={initialInputName}\n value={initialMaskedValue}\n disabled={disabled}\n readOnly={readOnly}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={inputPlaceholder}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={initialInputName}\n aria-labelledby={initialInputName}\n data-testid=\"test-date-period-field-initial-input\"\n data-state-is-period-input={true}\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 onPaste={handleOnPaste}\n onBeforeInput={handleOnBeforeInput}\n onBlur={event => handleOnBlurMaskInput(event, 'initial')}\n onFocus={event => handleOnFocusMaskInput(event, 'initial')}\n onKeyDown={event => handleOnKeyDownMaskInput(event, 'initial')}\n onKeyDownCapture={handleInitialKeyDownCapture} />\n <span\n className=\"separator\"\n data-state-disabled={disabled}\n data-state-read-only={readOnly}\n onMouseDown={(event) => { event.preventDefault(); }}>\n <Icon name=\"arrow_right\" size={10} />\n </span>\n <BaseDate.Input\n {..._.omit(rest, ['initialRef', 'finalRef'])}\n ref={mergeRefs(finalInputRef, props?.finalRef)}\n id={finalInputName}\n name={finalInputName}\n value={finalMaskedValue}\n readOnly={readOnly}\n disabled={disabled}\n customClass={customClass}\n tabIndex={(!readOnly && !skeletonize) ? 0 : -1}\n placeholder={inputPlaceholder}\n aria-autocomplete=\"list\"\n aria-activedescendant={activeDescendant}\n aria-expanded={calendarBoxOpen}\n aria-controls={finalInputName}\n aria-labelledby={finalInputName}\n data-testid=\"test-date-period-field-final-input\"\n data-state-is-period-input={true}\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 onPaste={handleOnPaste}\n onBeforeInput={handleOnBeforeInput}\n onBlur={event => handleOnBlurMaskInput(event, 'final')}\n onFocus={event => handleOnFocusMaskInput(event, 'final')}\n onKeyDown={event => handleOnKeyDownMaskInput(event, 'final')}\n onKeyDownCapture={handleFinalKeyDownCapture} />\n <Triggers />\n </BaseDate.Container>\n {calendarBoxOpen &&\n createPortal(\n <CalendarBox\n ref={calendarRef}\n testIdPrefix=\"test-date-period-field\"\n headerId={initialInputName}\n calendarBoxOpen={calendarBoxOpen}\n activeDescendant={activeDescendant}\n calendarDisplayDate={calendarDisplayDate}\n containerRef={dateContainerRef}\n onNextMonth={handleNextMonth}\n onPreviousMonth={handlePreviousMonth}\n getDayState={getDayState}\n onSelectDay={handleSelectDay}>\n {isDateTime && (\n <TimeSelector\n value={activeSelectedDate}\n onSelectTime={handleSelectTime}\n min={minDate}\n max={maxDate}\n testIdPrefix=\"test-date-period-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-period-field-list-errors\"\n className=\"error\"\n data-state-skeletonize={skeletonize}\n aria-describedby={String(label).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 </DatePeriodFieldContext.Provider>\n <Tooltip\n targetRef={inputRootRef}\n text={tooltip}\n width={tooltipWidth}\n position={tooltipPosition} />\n </React.Fragment>\n );\n });\n\nInputBase.displayName = 'DatePeriodFieldInputBase';\n"],"names":["InputBase","React","forwardRef","props","__","$","_c","label","errors","initialName","t0","finalName","t1","customClass","t2","customClassLabel","t3","customClassWrapper","t4","customClassInputContainer","t5","labelUppercase","t6","undigitable","t7","skeletonize","t8","hintPosition","t9","themePopover","t10","popoverAlign","t11","showCalendarButton","t12","textAlign","t13","openCalendarOnFocus","t14","showPredefinedPeriodsButton","t15","showClearDateButton","t16","returnValueType","t17","variant","t18","placeholder","shouldCloseOnSelect","min","max","onChange","tooltip","tooltipPosition","tooltipWidth","disabled","readOnly","rest","undefined","isDateTime","isoFormat","ptbrFormat","digits","getDateFormats","shouldCloseCalendarOnSelect","inputPlaceholder","minDate","parseBoundary","maxDate","hasBounds","Boolean","t19","Symbol","for","inicial","final","selectedDate","setSelectedDate","useState","activeInputType","setActiveInputType","inputRootRef","useRef","finalInputRef","initialInputRef","calendarState","useDateCalendarState","inputRef","calendarBoxOpen","activeDescendant","calendarDisplayDate","calendarRef","dateContainerRef","handleNextMonth","handlePreviousMonth","handleSetCalendarBoxOpen","handleChangeActiveDescendant","handleChangeCalendarDisplayDate","handleKeyDownNavigation","t20","name","String","concat","initialInputName","t21","finalInputName","maskedValue","initialMaskedValue","setMaskValue","setInitialMaskValue","unmaskedValue","initialUnmaskedValue","handleOnPaste","handleOnBeforeInput","handleOnKeyDownCapture","handleInitialKeyDownCapture","useDateMask","defaultValue","format","onCommit","date","handleChangeUpdateDateState","inputType","typing","onPaste","onBeforeInput","finalMaskedValue","setFinalMaskValue","finalUnmaskedValue","handleFinalKeyDownCapture","date_0","t22","_","isEmpty","hasLabel","hasHintMessages","hint","length","hasValidationErrors","t23","value","objectValue","isValidInitialValue","isValidFinalValue","verifyPeriodSelectedIsValid","emitPeriodChange","target","toISOString","t24","_temp","handleOnClickClearSelectedPeriod","params","date_1","rawDate","clone","resolveDateRange","initialDate","finalDate","inicial_0","isAfter","final_0","bb209","prevSelectedDate_0","inicial_3","final_3","prevSelectedDate","updatedState_0","updatedState","inicial_4","final_4","requestAnimationFrame","current","focus","inicial_1","final_1","inicial_2","final_2","TOKEN_ISO_FORMAT","t25","period","localOnChange","initialDate_0","finalDate_0","valueToUpdate","updatedState_1","initialDate_1","finalDate_1","getPredefinedPeriodRange","clampDateToBounds","handleChangeUpdateDateStateWithPredefinedPeriod","handleOnBlurMaskInput","event","inputType_0","onBlur","relatedTarget","id","moment","size","date_2","isValid","date_3","handleReorderPeriodOnBlur","inicial_5","final_5","t26","event_0","inputType_1","onFocus","handleOnFocusMaskInput","getDayState","handleOnKeyDownMaskInput","handleSelectDay","event_1","inputType_2","onKeyDown","key","shiftKey","altKey","Keys","enter","preventDefault","toString","t27","day","inicial_6","final_6","isSelected","isSame","isInRange","isBefore","isDisabled","isDayOutOfBounds","t28","focusedInputId","document","activeElement","resolveInputTypeFromFocus","daySelected","targetInputType","inputType_3","isUndefined","dayWithTime","hour","minute","activeSelectedDate","second","handleSelectTime","objectValue_0","initialDate_2","parseDateValue","finalDate_2","t29","t30","useEffect","t31","t32","t33","t34","isReadOnly","initialInputId","finalInputId","hasValidPeriodSelected","contextValues","t35","required","BaseDate.Label","t36","omit","t37","initialRef","t38","mergeRefs","t39","event_2","t40","event_3","t41","event_4","t42","t43","_temp2","t44","BaseDate","t45","t46","finalRef","t47","t48","t49","event_6","t50","event_7","t51","event_8","t52","Input","t53","t54","createPortal","body","t55","t56","map","_temp3","t57","BaseDate.Root","BaseDate.Container","BaseDate.Input","displayName","event_5","error","index"],"mappings":"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"}
|
|
@@ -14,6 +14,10 @@ export declare const getDateFormats: (variant: DateVariant) => {
|
|
|
14
14
|
digits: number;
|
|
15
15
|
};
|
|
16
16
|
export declare const parseDateValue: (value: unknown, variant: DateVariant) => Moment;
|
|
17
|
+
export declare const getMaskSegments: ((format: string) => {
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
}[]) & _.MemoizedFunction;
|
|
17
21
|
export declare const parseBoundary: (value?: string) => Moment | undefined;
|
|
18
22
|
export declare const clampDateToBounds: (date: Moment, min?: Moment, max?: Moment) => Moment;
|
|
19
23
|
export declare const isDayOutOfBounds: (day: Moment, min?: Moment, max?: Moment) => boolean;
|
|
@@ -21,6 +21,20 @@ const getDateFormats = (variant) => variant === "datetime" ? {
|
|
|
21
21
|
digits: 8
|
|
22
22
|
};
|
|
23
23
|
const parseDateValue = (value, variant) => variant === "datetime" ? hooks(_.toString(value), ACCEPTED_VALUE_FORMATS, true) : hooks(_.toString(value), TOKEN_ISO_FORMAT);
|
|
24
|
+
const getMaskSegments = memoize((format) => {
|
|
25
|
+
const segments = [];
|
|
26
|
+
let start = 0;
|
|
27
|
+
while (start < format.length) {
|
|
28
|
+
let end = start;
|
|
29
|
+
while (end < format.length && format[end] === format[start]) end++;
|
|
30
|
+
if (/[a-z]/i.test(format[start])) segments.push({
|
|
31
|
+
start,
|
|
32
|
+
end
|
|
33
|
+
});
|
|
34
|
+
start = end;
|
|
35
|
+
}
|
|
36
|
+
return segments;
|
|
37
|
+
});
|
|
24
38
|
const parseBoundary = (value) => {
|
|
25
39
|
if (!value) return void 0;
|
|
26
40
|
const boundary = hooks(value, ACCEPTED_BOUNDARY_FORMATS, true);
|
|
@@ -104,6 +118,7 @@ export {
|
|
|
104
118
|
clampDateToBounds,
|
|
105
119
|
generateCalendarWeeks,
|
|
106
120
|
getDateFormats,
|
|
121
|
+
getMaskSegments,
|
|
107
122
|
getPredefinedPeriodRange,
|
|
108
123
|
isDayOutOfBounds,
|
|
109
124
|
options,
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs2/date/helpers.ts"],"sourcesContent":["import _ from 'lodash';\nimport moment, { type Moment } from 'moment';\nimport memoize from 'lodash/memoize';\nimport { OPTIONS_ON_DENIED } from '../../permissionValidations';\nimport type { PeriodOptions } from './dateperiodfield/types';\nimport { Keys, type DateVariant } from './types';\n\n// Sem o import explícito o bundler não inclui o locale e o calendário cai em inglês.\nimport 'moment/dist/locale/pt-br';\n\nmoment.locale('pt-br');\n\nexport const TOKEN_ISO_FORMAT = 'YYYY-MM-DD';\nexport const TOKEN_PTBR_FORMAT = 'DD/MM/YYYY';\nexport const TOKEN_ISO_DATETIME_FORMAT = 'YYYY-MM-DDTHH:mm';\nexport const TOKEN_PTBR_DATETIME_FORMAT = 'DD/MM/YYYY HH:mm';\nexport const ACCEPTED_BOUNDARY_FORMATS = [TOKEN_ISO_FORMAT, TOKEN_ISO_DATETIME_FORMAT];\nexport const ACCEPTED_VALUE_FORMATS = [...ACCEPTED_BOUNDARY_FORMATS, moment.ISO_8601];\nexport const getDateFormats = (variant: DateVariant) => (variant === 'datetime'\n ? { isoFormat: TOKEN_ISO_DATETIME_FORMAT, ptbrFormat: TOKEN_PTBR_DATETIME_FORMAT, digits: 12 }\n : { isoFormat: TOKEN_ISO_FORMAT, ptbrFormat: TOKEN_PTBR_FORMAT, digits: 8 });\n// Em datetime um valor sem hora significa meia-noite, e a forma com fuso entra na lista\n// para que o que sai com returnValueType='iso' volte a ser lido.\nexport const parseDateValue = (value: unknown, variant: DateVariant): Moment => (\n variant === 'datetime'\n ? moment(_.toString(value), ACCEPTED_VALUE_FORMATS, true)\n : moment(_.toString(value), TOKEN_ISO_FORMAT)\n);\n// min/max são configuração de quem monta o campo, então não seguem o returnValueType. Um\n// limite mal escrito vira ausência de limite, nunca uma data que ninguém pediu.\nexport const parseBoundary = (value?: string): Moment | undefined => {\n if (!value) return undefined;\n const boundary = moment(value, ACCEPTED_BOUNDARY_FORMATS, true);\n return boundary.isValid() ? boundary : undefined;\n};\nexport const clampDateToBounds = (date: Moment, min?: Moment, max?: Moment): Moment => {\n if (min && date.isBefore(min)) return min.clone();\n if (max && date.isAfter(max)) return max.clone();\n return date;\n};\nexport const isDayOutOfBounds = (day: Moment, min?: Moment, max?: Moment): boolean => {\n if (min && day.isBefore(min, 'day')) return true;\n return Boolean(max && day.isAfter(max, 'day'));\n};\nexport const getPredefinedPeriodRange = (period: PeriodOptions['id']) => {\n const range = (start: Moment, end: Moment) => ({\n initialDate: start.startOf('day'), finalDate: end.endOf('day'),\n });\n switch (period) {\n case 'today': return range(moment(), moment());\n case 'week': return range(moment().startOf('week'), moment().endOf('week'));\n case 'lastweek': return range(\n moment().add(-1, 'week').startOf('week'), moment().add(-1, 'week').endOf('week'),\n );\n case 'last15': return range(moment().add(-14, 'd'), moment());\n case 'month': return range(moment().startOf('month'), moment().endOf('month'));\n case 'lastmonth':\n default: return range(\n moment().add(-1, 'month').startOf('month'), moment().add(-1, 'month').endOf('month'),\n );\n }\n};\nexport const options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\nexport const NAVIGATION_KEYS: string[] = [\n Keys.arrowLeft, Keys.arrowRight, Keys.arrowUp, Keys.arrowDown,\n Keys.pageUp, Keys.pageDown, Keys.home, Keys.end, Keys.escape,\n Keys.enter,\n];\nexport const PERIOD_OPTIONS_LIST: PeriodOptions[] = [\n { id: 'today', label: 'Hoje' },\n { id: 'week', label: 'Semana Atual' },\n { id: 'lastweek', label: 'Última Semana' },\n { id: 'last15', label: 'Últimos 15 dias' },\n { id: 'month', label: 'Mês atual' },\n { id: 'lastmonth', label: 'Último Mês' },\n];\nexport const generateCalendarWeeks = memoize((monthSelected: Moment): Moment[][] => {\n const startOfCalendar = monthSelected.clone().startOf('month').startOf('week');\n const endOfCalendar = monthSelected.clone().endOf('month').endOf('week');\n const weeks: Moment[][] = [];\n const currentWeek = startOfCalendar.clone();\n while (currentWeek.isSameOrBefore(endOfCalendar, 'day')) {\n const week: Moment[] = [];\n for (let days = 0; days < 7; days++) {\n week.push(currentWeek.clone());\n currentWeek.add(1, 'day');\n }\n weeks.push(week);\n }\n return weeks;\n}, (monthSelected: Moment) => monthSelected.format('YYYY-MM'));\n"],"names":["moment","locale","TOKEN_ISO_FORMAT","TOKEN_PTBR_FORMAT","TOKEN_ISO_DATETIME_FORMAT","TOKEN_PTBR_DATETIME_FORMAT","ACCEPTED_BOUNDARY_FORMATS","ACCEPTED_VALUE_FORMATS","ISO_8601","getDateFormats","variant","isoFormat","ptbrFormat","digits","parseDateValue","value","_","toString","parseBoundary","undefined","boundary","isValid","clampDateToBounds","date","min","max","isBefore","clone","isAfter","isDayOutOfBounds","day","Boolean","getPredefinedPeriodRange","period","range","
|
|
1
|
+
{"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs2/date/helpers.ts"],"sourcesContent":["import _ from 'lodash';\nimport moment, { type Moment } from 'moment';\nimport memoize from 'lodash/memoize';\nimport { OPTIONS_ON_DENIED } from '../../permissionValidations';\nimport type { PeriodOptions } from './dateperiodfield/types';\nimport { Keys, type DateVariant } from './types';\n\n// Sem o import explícito o bundler não inclui o locale e o calendário cai em inglês.\nimport 'moment/dist/locale/pt-br';\n\nmoment.locale('pt-br');\n\nexport const TOKEN_ISO_FORMAT = 'YYYY-MM-DD';\nexport const TOKEN_PTBR_FORMAT = 'DD/MM/YYYY';\nexport const TOKEN_ISO_DATETIME_FORMAT = 'YYYY-MM-DDTHH:mm';\nexport const TOKEN_PTBR_DATETIME_FORMAT = 'DD/MM/YYYY HH:mm';\nexport const ACCEPTED_BOUNDARY_FORMATS = [TOKEN_ISO_FORMAT, TOKEN_ISO_DATETIME_FORMAT];\nexport const ACCEPTED_VALUE_FORMATS = [...ACCEPTED_BOUNDARY_FORMATS, moment.ISO_8601];\nexport const getDateFormats = (variant: DateVariant) => (variant === 'datetime'\n ? { isoFormat: TOKEN_ISO_DATETIME_FORMAT, ptbrFormat: TOKEN_PTBR_DATETIME_FORMAT, digits: 12 }\n : { isoFormat: TOKEN_ISO_FORMAT, ptbrFormat: TOKEN_PTBR_FORMAT, digits: 8 });\n// Em datetime um valor sem hora significa meia-noite, e a forma com fuso entra na lista\n// para que o que sai com returnValueType='iso' volte a ser lido.\nexport const parseDateValue = (value: unknown, variant: DateVariant): Moment => (\n variant === 'datetime'\n ? moment(_.toString(value), ACCEPTED_VALUE_FORMATS, true)\n : moment(_.toString(value), TOKEN_ISO_FORMAT)\n);\n// min/max são configuração de quem monta o campo, então não seguem o returnValueType. Um\n// limite mal escrito vira ausência de limite, nunca uma data que ninguém pediu.\n// Os limites de cada segmento saem do próprio formato — 'DD/MM/YYYY HH:mm' vira\n// [0,2] [3,5] [6,10] [11,13] [14,16] — para que as duas variantes derivem de uma fonte só.\nexport const getMaskSegments = memoize((format: string): { start: number; end: number }[] => {\n const segments: { start: number; end: number }[] = [];\n let start = 0;\n while (start < format.length) {\n let end = start;\n while (end < format.length && format[end] === format[start]) end++;\n if (/[a-z]/i.test(format[start])) segments.push({ start, end });\n start = end;\n }\n return segments;\n});\nexport const parseBoundary = (value?: string): Moment | undefined => {\n if (!value) return undefined;\n const boundary = moment(value, ACCEPTED_BOUNDARY_FORMATS, true);\n return boundary.isValid() ? boundary : undefined;\n};\nexport const clampDateToBounds = (date: Moment, min?: Moment, max?: Moment): Moment => {\n if (min && date.isBefore(min)) return min.clone();\n if (max && date.isAfter(max)) return max.clone();\n return date;\n};\nexport const isDayOutOfBounds = (day: Moment, min?: Moment, max?: Moment): boolean => {\n if (min && day.isBefore(min, 'day')) return true;\n return Boolean(max && day.isAfter(max, 'day'));\n};\nexport const getPredefinedPeriodRange = (period: PeriodOptions['id']) => {\n const range = (start: Moment, end: Moment) => ({\n initialDate: start.startOf('day'), finalDate: end.endOf('day'),\n });\n switch (period) {\n case 'today': return range(moment(), moment());\n case 'week': return range(moment().startOf('week'), moment().endOf('week'));\n case 'lastweek': return range(\n moment().add(-1, 'week').startOf('week'), moment().add(-1, 'week').endOf('week'),\n );\n case 'last15': return range(moment().add(-14, 'd'), moment());\n case 'month': return range(moment().startOf('month'), moment().endOf('month'));\n case 'lastmonth':\n default: return range(\n moment().add(-1, 'month').startOf('month'), moment().add(-1, 'month').endOf('month'),\n );\n }\n};\nexport const options = [\n OPTIONS_ON_DENIED.disabled,\n OPTIONS_ON_DENIED.unvisible,\n OPTIONS_ON_DENIED.readOnly,\n OPTIONS_ON_DENIED.hideContent,\n];\nexport const NAVIGATION_KEYS: string[] = [\n Keys.arrowLeft, Keys.arrowRight, Keys.arrowUp, Keys.arrowDown,\n Keys.pageUp, Keys.pageDown, Keys.home, Keys.end, Keys.escape,\n Keys.enter,\n];\nexport const PERIOD_OPTIONS_LIST: PeriodOptions[] = [\n { id: 'today', label: 'Hoje' },\n { id: 'week', label: 'Semana Atual' },\n { id: 'lastweek', label: 'Última Semana' },\n { id: 'last15', label: 'Últimos 15 dias' },\n { id: 'month', label: 'Mês atual' },\n { id: 'lastmonth', label: 'Último Mês' },\n];\nexport const generateCalendarWeeks = memoize((monthSelected: Moment): Moment[][] => {\n const startOfCalendar = monthSelected.clone().startOf('month').startOf('week');\n const endOfCalendar = monthSelected.clone().endOf('month').endOf('week');\n const weeks: Moment[][] = [];\n const currentWeek = startOfCalendar.clone();\n while (currentWeek.isSameOrBefore(endOfCalendar, 'day')) {\n const week: Moment[] = [];\n for (let days = 0; days < 7; days++) {\n week.push(currentWeek.clone());\n currentWeek.add(1, 'day');\n }\n weeks.push(week);\n }\n return weeks;\n}, (monthSelected: Moment) => monthSelected.format('YYYY-MM'));\n"],"names":["moment","locale","TOKEN_ISO_FORMAT","TOKEN_PTBR_FORMAT","TOKEN_ISO_DATETIME_FORMAT","TOKEN_PTBR_DATETIME_FORMAT","ACCEPTED_BOUNDARY_FORMATS","ACCEPTED_VALUE_FORMATS","ISO_8601","getDateFormats","variant","isoFormat","ptbrFormat","digits","parseDateValue","value","_","toString","getMaskSegments","memoize","format","segments","start","length","end","test","push","parseBoundary","undefined","boundary","isValid","clampDateToBounds","date","min","max","isBefore","clone","isAfter","isDayOutOfBounds","day","Boolean","getPredefinedPeriodRange","period","range","initialDate","startOf","finalDate","endOf","add","options","OPTIONS_ON_DENIED","disabled","unvisible","readOnly","hideContent","NAVIGATION_KEYS","Keys","arrowLeft","arrowRight","arrowUp","arrowDown","pageUp","pageDown","home","escape","enter","PERIOD_OPTIONS_LIST","id","label","generateCalendarWeeks","monthSelected","startOfCalendar","endOfCalendar","weeks","currentWeek","isSameOrBefore","week","days"],"mappings":"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"}
|
|
@@ -6,6 +6,7 @@ interface UseDateMaskParams {
|
|
|
6
6
|
variant?: DateVariant;
|
|
7
7
|
defaultValue?: string;
|
|
8
8
|
undigitable?: boolean;
|
|
9
|
+
readOnly?: boolean;
|
|
9
10
|
onCommit: (date: Moment) => void;
|
|
10
11
|
onPaste?: (event: React.ClipboardEvent<HTMLInputElement>) => void;
|
|
11
12
|
onBeforeInput?: (event: React.InputEvent<HTMLInputElement>) => void;
|
|
@@ -16,5 +17,6 @@ export declare const useDateMask: (params: UseDateMaskParams) => {
|
|
|
16
17
|
setMaskValue: React.Dispatch<string>;
|
|
17
18
|
handleOnPaste: (event: React.ClipboardEvent<HTMLInputElement>) => void;
|
|
18
19
|
handleOnBeforeInput: (event: React.InputEvent<HTMLInputElement>) => void;
|
|
20
|
+
handleOnKeyDownCapture: (event: React.KeyboardEvent<HTMLInputElement>) => void;
|
|
19
21
|
};
|
|
20
22
|
export {};
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { c as compilerRuntimeExports } from "../../../_virtual/compiler-runtime.js";
|
|
2
2
|
import hooks from "../../../node_modules/moment/dist/moment.js";
|
|
3
3
|
import { useIMask, IMask } from "react-imask";
|
|
4
|
-
import { getDateFormats } from "../helpers.js";
|
|
4
|
+
import { getDateFormats, getMaskSegments } from "../helpers.js";
|
|
5
5
|
const buildMaskOptions = (variant) => {
|
|
6
6
|
const {
|
|
7
7
|
ptbrFormat
|
|
@@ -52,41 +52,43 @@ const buildMaskOptions = (variant) => {
|
|
|
52
52
|
};
|
|
53
53
|
};
|
|
54
54
|
const useDateMask = (params) => {
|
|
55
|
-
const $ = compilerRuntimeExports.c(
|
|
55
|
+
const $ = compilerRuntimeExports.c(29);
|
|
56
56
|
const {
|
|
57
57
|
inputRef,
|
|
58
58
|
variant: t0,
|
|
59
59
|
defaultValue,
|
|
60
60
|
undigitable: t1,
|
|
61
|
+
readOnly: t2,
|
|
61
62
|
onCommit,
|
|
62
63
|
onPaste,
|
|
63
64
|
onBeforeInput
|
|
64
65
|
} = params;
|
|
65
66
|
const variant = t0 === void 0 ? "date" : t0;
|
|
66
67
|
const undigitable = t1 === void 0 ? false : t1;
|
|
67
|
-
|
|
68
|
+
const readOnly = t2 === void 0 ? false : t2;
|
|
69
|
+
let t3;
|
|
68
70
|
if ($[0] !== variant) {
|
|
69
|
-
|
|
71
|
+
t3 = getDateFormats(variant);
|
|
70
72
|
$[0] = variant;
|
|
71
|
-
$[1] =
|
|
73
|
+
$[1] = t3;
|
|
72
74
|
} else {
|
|
73
|
-
|
|
75
|
+
t3 = $[1];
|
|
74
76
|
}
|
|
75
77
|
const {
|
|
76
78
|
ptbrFormat
|
|
77
|
-
} =
|
|
78
|
-
let
|
|
79
|
+
} = t3;
|
|
80
|
+
let t4;
|
|
79
81
|
if ($[2] !== variant) {
|
|
80
|
-
|
|
82
|
+
t4 = buildMaskOptions(variant);
|
|
81
83
|
$[2] = variant;
|
|
82
|
-
$[3] =
|
|
84
|
+
$[3] = t4;
|
|
83
85
|
} else {
|
|
84
|
-
|
|
86
|
+
t4 = $[3];
|
|
85
87
|
}
|
|
86
|
-
const maskOptions =
|
|
87
|
-
let
|
|
88
|
+
const maskOptions = t4;
|
|
89
|
+
let t5;
|
|
88
90
|
if ($[4] !== onCommit || $[5] !== ptbrFormat) {
|
|
89
|
-
|
|
91
|
+
t5 = (acceptedValue, mask) => {
|
|
90
92
|
if (!mask?.masked?.isComplete) {
|
|
91
93
|
return;
|
|
92
94
|
}
|
|
@@ -97,80 +99,115 @@ const useDateMask = (params) => {
|
|
|
97
99
|
};
|
|
98
100
|
$[4] = onCommit;
|
|
99
101
|
$[5] = ptbrFormat;
|
|
100
|
-
$[6] =
|
|
102
|
+
$[6] = t5;
|
|
101
103
|
} else {
|
|
102
|
-
|
|
104
|
+
t5 = $[6];
|
|
103
105
|
}
|
|
104
|
-
let
|
|
105
|
-
if ($[7] !== defaultValue || $[8] !== inputRef || $[9] !==
|
|
106
|
-
|
|
106
|
+
let t6;
|
|
107
|
+
if ($[7] !== defaultValue || $[8] !== inputRef || $[9] !== t5) {
|
|
108
|
+
t6 = {
|
|
107
109
|
ref: inputRef,
|
|
108
110
|
defaultValue,
|
|
109
|
-
onAccept:
|
|
111
|
+
onAccept: t5
|
|
110
112
|
};
|
|
111
113
|
$[7] = defaultValue;
|
|
112
114
|
$[8] = inputRef;
|
|
113
|
-
$[9] =
|
|
114
|
-
$[10] =
|
|
115
|
+
$[9] = t5;
|
|
116
|
+
$[10] = t6;
|
|
115
117
|
} else {
|
|
116
|
-
|
|
118
|
+
t6 = $[10];
|
|
117
119
|
}
|
|
118
120
|
const {
|
|
119
121
|
value,
|
|
120
122
|
unmaskedValue,
|
|
121
123
|
setValue
|
|
122
|
-
} = useIMask(maskOptions,
|
|
123
|
-
let
|
|
124
|
-
if ($[11] !==
|
|
125
|
-
|
|
124
|
+
} = useIMask(maskOptions, t6);
|
|
125
|
+
let t7;
|
|
126
|
+
if ($[11] !== inputRef || $[12] !== ptbrFormat || $[13] !== readOnly || $[14] !== undigitable) {
|
|
127
|
+
t7 = (event) => {
|
|
128
|
+
if (undigitable || readOnly) {
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
if (event.ctrlKey || event.metaKey || event.altKey) {
|
|
132
|
+
return;
|
|
133
|
+
}
|
|
134
|
+
if (event.key.length !== 1 || !/\d/.test(event.key)) {
|
|
135
|
+
return;
|
|
136
|
+
}
|
|
137
|
+
const input = inputRef.current;
|
|
138
|
+
const start = input?.selectionStart;
|
|
139
|
+
const end = input?.selectionEnd;
|
|
140
|
+
if (!input || start == null || end == null || start === end) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
const segment = getMaskSegments(ptbrFormat).find((item) => start >= item.start && end <= item.end);
|
|
144
|
+
if (!segment) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
input.setSelectionRange(segment.start, segment.end);
|
|
148
|
+
};
|
|
149
|
+
$[11] = inputRef;
|
|
150
|
+
$[12] = ptbrFormat;
|
|
151
|
+
$[13] = readOnly;
|
|
152
|
+
$[14] = undigitable;
|
|
153
|
+
$[15] = t7;
|
|
154
|
+
} else {
|
|
155
|
+
t7 = $[15];
|
|
156
|
+
}
|
|
157
|
+
const handleOnKeyDownCapture = t7;
|
|
158
|
+
let t8;
|
|
159
|
+
if ($[16] !== onPaste || $[17] !== undigitable) {
|
|
160
|
+
t8 = (event_0) => {
|
|
126
161
|
if (undigitable) {
|
|
127
|
-
|
|
162
|
+
event_0.preventDefault();
|
|
128
163
|
} else {
|
|
129
|
-
onPaste?.(
|
|
164
|
+
onPaste?.(event_0);
|
|
130
165
|
}
|
|
131
166
|
};
|
|
132
|
-
$[
|
|
133
|
-
$[
|
|
134
|
-
$[
|
|
167
|
+
$[16] = onPaste;
|
|
168
|
+
$[17] = undigitable;
|
|
169
|
+
$[18] = t8;
|
|
135
170
|
} else {
|
|
136
|
-
|
|
171
|
+
t8 = $[18];
|
|
137
172
|
}
|
|
138
|
-
const handleOnPaste =
|
|
139
|
-
let
|
|
140
|
-
if ($[
|
|
141
|
-
|
|
173
|
+
const handleOnPaste = t8;
|
|
174
|
+
let t9;
|
|
175
|
+
if ($[19] !== onBeforeInput || $[20] !== undigitable) {
|
|
176
|
+
t9 = (event_1) => {
|
|
142
177
|
if (undigitable) {
|
|
143
|
-
|
|
178
|
+
event_1.preventDefault();
|
|
144
179
|
} else {
|
|
145
|
-
onBeforeInput?.(
|
|
180
|
+
onBeforeInput?.(event_1);
|
|
146
181
|
}
|
|
147
182
|
};
|
|
148
|
-
$[
|
|
149
|
-
$[
|
|
150
|
-
$[
|
|
183
|
+
$[19] = onBeforeInput;
|
|
184
|
+
$[20] = undigitable;
|
|
185
|
+
$[21] = t9;
|
|
151
186
|
} else {
|
|
152
|
-
|
|
187
|
+
t9 = $[21];
|
|
153
188
|
}
|
|
154
|
-
const handleOnBeforeInput =
|
|
155
|
-
let
|
|
156
|
-
if ($[
|
|
157
|
-
|
|
189
|
+
const handleOnBeforeInput = t9;
|
|
190
|
+
let t10;
|
|
191
|
+
if ($[22] !== handleOnBeforeInput || $[23] !== handleOnKeyDownCapture || $[24] !== handleOnPaste || $[25] !== setValue || $[26] !== unmaskedValue || $[27] !== value) {
|
|
192
|
+
t10 = {
|
|
158
193
|
maskedValue: value,
|
|
159
194
|
unmaskedValue,
|
|
160
195
|
setMaskValue: setValue,
|
|
161
196
|
handleOnPaste,
|
|
162
|
-
handleOnBeforeInput
|
|
197
|
+
handleOnBeforeInput,
|
|
198
|
+
handleOnKeyDownCapture
|
|
163
199
|
};
|
|
164
|
-
$[
|
|
165
|
-
$[
|
|
166
|
-
$[
|
|
167
|
-
$[
|
|
168
|
-
$[
|
|
169
|
-
$[
|
|
200
|
+
$[22] = handleOnBeforeInput;
|
|
201
|
+
$[23] = handleOnKeyDownCapture;
|
|
202
|
+
$[24] = handleOnPaste;
|
|
203
|
+
$[25] = setValue;
|
|
204
|
+
$[26] = unmaskedValue;
|
|
205
|
+
$[27] = value;
|
|
206
|
+
$[28] = t10;
|
|
170
207
|
} else {
|
|
171
|
-
|
|
208
|
+
t10 = $[28];
|
|
172
209
|
}
|
|
173
|
-
return
|
|
210
|
+
return t10;
|
|
174
211
|
};
|
|
175
212
|
export {
|
|
176
213
|
useDateMask
|