linear-react-components-ui 2.1.0-beta.1 → 2.1.0-beta.2
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/assets/styles/datepicker2.css +77 -4
- package/lib/inputs2/date/calendarbox.d.ts +23 -0
- package/lib/inputs2/date/calendarbox.js +254 -0
- package/lib/inputs2/date/calendarbox.js.map +1 -0
- package/lib/inputs2/date/datefield/base.js +590 -214
- package/lib/inputs2/date/datefield/base.js.map +1 -1
- package/lib/inputs2/date/datefield/triggers.js +4 -4
- package/lib/inputs2/date/datefield/triggers.js.map +1 -1
- package/lib/inputs2/date/datefield/types.d.ts +5 -12
- package/lib/inputs2/date/dateperiodfield/base.js +543 -674
- package/lib/inputs2/date/dateperiodfield/base.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/triggers.js +21 -9
- package/lib/inputs2/date/dateperiodfield/triggers.js.map +1 -1
- package/lib/inputs2/date/dateperiodfield/types.d.ts +7 -23
- package/lib/inputs2/date/helpers.d.ts +21 -4
- package/lib/inputs2/date/helpers.js +64 -4
- package/lib/inputs2/date/helpers.js.map +1 -1
- package/lib/inputs2/date/{base/constants.d.ts → hooks/useCalendarPosition.d.ts} +1 -1
- package/lib/inputs2/date/hooks/useCalendarPosition.js +93 -0
- package/lib/inputs2/date/hooks/useCalendarPosition.js.map +1 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.d.ts +14 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.js +250 -0
- package/lib/inputs2/date/hooks/useDateCalendarState.js.map +1 -0
- package/lib/inputs2/date/hooks/useDateMask.d.ts +20 -0
- package/lib/inputs2/date/hooks/useDateMask.js +178 -0
- package/lib/inputs2/date/hooks/useDateMask.js.map +1 -0
- package/lib/inputs2/date/timeselector.d.ts +15 -0
- package/lib/inputs2/date/timeselector.js +228 -0
- package/lib/inputs2/date/timeselector.js.map +1 -0
- package/lib/inputs2/date/types.d.ts +16 -1
- package/lib/inputs2/date/types.js.map +1 -1
- package/lib/menus/float/SubMenuContainer.js +8 -16
- package/lib/menus/float/SubMenuContainer.js.map +1 -1
- package/lib/node_modules/moment/dist/locale/pt-br.js +54 -0
- package/lib/node_modules/moment/dist/locale/pt-br.js.map +1 -0
- package/package.json +1 -1
- package/lib/inputs2/date/base/constants.js +0 -69
- package/lib/inputs2/date/base/constants.js.map +0 -1
- package/lib/inputs2/date/datefield/calendarbox.d.ts +0 -6
- package/lib/inputs2/date/datefield/calendarbox.js +0 -228
- package/lib/inputs2/date/datefield/calendarbox.js.map +0 -1
- package/lib/inputs2/date/dateperiodfield/calendarbox.d.ts +0 -6
- package/lib/inputs2/date/dateperiodfield/calendarbox.js +0 -282
- package/lib/inputs2/date/dateperiodfield/calendarbox.js.map +0 -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 { useIMask } from 'react-imask';\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 { TOKEN_ISO_FORMAT, NAVIGATION_KEYS, TOKEN_MASK, TOKEN_PTBR_FORMAT } from '../helpers';\nimport { Triggers } from './triggers';\nimport { CalendarBox } from './calendarbox';\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, shouldCloseOnSelect = true,\n showPredefinedPeriodsButton = true, showClearDateButton = true, placeholder = TOKEN_PTBR_FORMAT, returnValueType = 'default',\n tooltip, tooltipPosition, tooltipWidth, disabled, readOnly, ...rest\n } = props;\n const [selectedDate, setSelectedDate] = React.useState<SelectedDateType>({ \n inicial: null, final: null, \n });\n const [calendarBoxOpen, setCalendarBoxOpen] = React.useState(false);\n const [activeDescendant, setActiveDescendant] = React.useState<string>(\n moment().format(TOKEN_ISO_FORMAT),\n );\n const [calendarDisplayDate, setCalendarDisplayDate] = React.useState<Moment>(moment());\n const calendarRef = React.useRef<HTMLDivElement | null>(null);\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 const dateContainerRef = React.useRef<HTMLDivElement | null>(null);\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 value: initialMaskedValue, \n setValue: setInitialMaskValue, \n unmaskedValue: initialUnmaskedValue,\n } = useIMask(\n { mask: TOKEN_MASK, lazy: false, placeholderChar: '_' },\n {\n ref: initialInputRef,\n defaultValue: selectedDate.inicial?.format(TOKEN_PTBR_FORMAT),\n onComplete: (value) => {\n const date = moment(value, TOKEN_PTBR_FORMAT);\n if (date.isValid()) {\n handleChangeUpdateDateState({ date, inputType: 'initial', typing: true });\n }\n },\n },\n );\n\n const { \n value: finalMaskedValue, \n setValue: setFinalMaskValue, \n unmaskedValue: finalUnmaskedValue,\n } = useIMask(\n { mask: TOKEN_MASK, lazy: false, placeholderChar: '_' },\n {\n ref: finalInputRef,\n defaultValue: selectedDate.final?.format(TOKEN_PTBR_FORMAT),\n onComplete: (value) => {\n const date = moment(value, TOKEN_PTBR_FORMAT);\n if (date.isValid()) {\n handleChangeUpdateDateState({ date, inputType: 'final', typing: true });\n }\n },\n },\n );\n\n const hasLabel = !_.isEmpty(props?.label);\n const hasHintMessages = Boolean(props.hint?.length);\n const hasValidationErrors = Boolean(errors?.length);\n\n const handleChangeSelectedDate = (object: SelectedDateType) => \n setSelectedDate(object);\n const handleChangeCalendarBoxState = (value: boolean) => \n setCalendarBoxOpen(value);\n const handleChangeActiveDescendant = (value: string) => \n setActiveDescendant(value);\n const handleChangeCalendarDisplayDate = (value: Moment) => \n setCalendarDisplayDate(value);\n const handleChangePreviousMonth = () =>\n setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().subtract(1, 'month'));\n const handleChangeNextMonth = () =>\n setCalendarDisplayDate(prevDisplayDate => prevDisplayDate.clone().add(1, 'month'));\n const handleNavigateWithDays = (offset: number) => {\n setCalendarDisplayDate((prevDisplayDate) => {\n const daySelected = prevDisplayDate.clone().add(offset, 'day');\n handleChangeActiveDescendant(daySelected.format(TOKEN_ISO_FORMAT));\n return daySelected;\n });\n };\n const handleNavigateWithWeeks = (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 handleChangeActiveDescendant(daySelected.format(TOKEN_ISO_FORMAT));\n return daySelected;\n });\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 handleChangeCalendarBoxState(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(TOKEN_ISO_FORMAT) : inicial?.toISOString(),\n [finalName]: returnValueType === 'default' ? final?.format(TOKEN_ISO_FORMAT) : 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(TOKEN_ISO_FORMAT) : inicial?.toISOString(),\n [finalName]: returnValueType === 'default' ? final?.format(TOKEN_ISO_FORMAT) : final?.toISOString(),\n } as any,\n },\n } as React.ChangeEvent<HTMLInputElement>);\n if (shouldCloseOnSelect) handleChangeCalendarBoxState(false);\n break;\n }\n default:\n break;\n }\n setCalendarDisplayDate(rawDate.clone());\n };\n\n const handleChangeUpdateDateStateWithPredefinedPeriod = (period: DatePeriodTypes) => {\n const localOnChange = (initialDate: Moment, finalDate: Moment) => {\n const valueToUpdate = {\n [initialName]: returnValueType === 'default' ? initialDate.format(TOKEN_ISO_FORMAT) : initialDate.toISOString(),\n [finalName]: returnValueType === 'default' ? finalDate.format(TOKEN_ISO_FORMAT) : 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 switch (period) {\n case 'today': {\n const date = moment();\n localOnChange(date, date);\n break;\n }\n case 'week': {\n const startOfWeek = moment().startOf('week');\n const endOfWeek = moment().endOf('week');\n localOnChange(startOfWeek, endOfWeek);\n break;\n }\n case 'lastweek': {\n const startOfLastWeek = moment().add(-1, 'week').startOf('week');\n const endOfLastWeek = moment().add(-1, 'week').endOf('week');\n localOnChange(startOfLastWeek, endOfLastWeek);\n break;\n }\n case 'last15': {\n const startOfLastFifteenDays = moment().add(-14, 'd');\n const endOfLastFifteenDays = moment();\n localOnChange(startOfLastFifteenDays, endOfLastFifteenDays);\n break;\n }\n case 'month': {\n const startOfMonth = moment().startOf('month');\n const endOfMonth = moment().endOf('month');\n localOnChange(startOfMonth, endOfMonth);\n break;\n }\n case 'lastmonth': {\n const startOfMonth = moment().add(-1, 'month').startOf('month');\n const endOfMonth = moment().add(-1, 'month').endOf('month');\n localOnChange(startOfMonth, endOfMonth);\n break;\n }\n default:\n break;\n }\n finalInputRef?.current?.focus?.();\n if (shouldCloseOnSelect) handleChangeCalendarBoxState(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) handleChangeCalendarBoxState(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (_.size(initialUnmaskedValue) !== 8) {\n const date = moment(selectedDate.inicial, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setInitialMaskValue(date.format(TOKEN_PTBR_FORMAT)); }\n }\n }\n if (inputType === 'final') {\n if (event.relatedTarget?.id !== initialInputName) handleChangeCalendarBoxState(false);\n if (calendarBoxOpen) {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(selectedDate.final ?? moment());\n }\n if (_.size(finalUnmaskedValue) !== 8) {\n const date = moment(selectedDate.final, TOKEN_ISO_FORMAT);\n if (date.isValid()) { setFinalMaskValue(date.format(TOKEN_PTBR_FORMAT)); }\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 setCalendarBoxOpen(true);\n }\n if (inputType === 'initial') {\n handleChangeActiveDescendant((selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(selectedDate.inicial ?? moment());\n }\n if (inputType === 'final') {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n setCalendarDisplayDate(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 const rawDate = moment(_.toString(activeDescendant), TOKEN_ISO_FORMAT);\n handleChangeUpdateDateState({ date: rawDate, inputType });\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 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: handleChangeNextMonth();\n break;\n case Keys.pageDown: handleChangePreviousMonth();\n break;\n case Keys.home: handleNavigateWithWeeks('start');\n break;\n case Keys.end: handleNavigateWithWeeks('end');\n break;\n case Keys.escape: handleChangeCalendarBoxState(false);\n break;\n default:\n break;\n }\n }\n };\n\n React.useEffect(() => {\n if (props?.value) {\n const objectValue = props.value as Partial<{ [x: string]: string | undefined }>;\n const initialDate = moment(_.toString(objectValue[initialName]), TOKEN_ISO_FORMAT);\n const finalDate = moment(_.toString(objectValue[finalName]), TOKEN_ISO_FORMAT);\n setSelectedDate(() => ({\n inicial: initialDate.isValid() ? initialDate : null,\n final: finalDate.isValid() ? finalDate : null,\n }));\n setInitialMaskValue(initialDate.format(TOKEN_PTBR_FORMAT));\n setFinalMaskValue(finalDate.format(TOKEN_PTBR_FORMAT));\n }\n }, [props?.value]);\n\n const contextValues = ({\n isReadOnly: Boolean(readOnly), isDisabled: Boolean(readOnly), undigitable, skeletonize, \n dateContainerRef, calendarBoxOpen, activeDescendant, selectedDate, \n initialInputId: initialInputName, finalInputId: finalInputName, initialInputRef, \n finalInputRef, showCalendarButton, calendarDisplayDate, hasValidationErrors, \n openCalendarOnFocus, showPredefinedPeriodsButton, showClearDateButton, \n handleChangeSelectedDate, handleChangePreviousMonth, handleChangeNextMonth, \n handleChangeCalendarBoxState, handleChangeActiveDescendant, handleChangeCalendarDisplayDate, \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={handleOnKeyDown}\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={placeholder}\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={placeholder}\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(<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-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","shouldCloseOnSelect","t15","showPredefinedPeriodsButton","t16","showClearDateButton","t17","placeholder","t18","returnValueType","t19","tooltip","tooltipPosition","tooltipWidth","disabled","readOnly","rest","undefined","TOKEN_PTBR_FORMAT","t20","Symbol","for","inicial","final","selectedDate","setSelectedDate","useState","calendarBoxOpen","setCalendarBoxOpen","t21","moment","format","TOKEN_ISO_FORMAT","activeDescendant","setActiveDescendant","t22","calendarDisplayDate","setCalendarDisplayDate","calendarRef","useRef","inputRootRef","finalInputRef","initialInputRef","dateContainerRef","t23","name","String","concat","initialInputName","t24","finalInputName","t25","mask","TOKEN_MASK","lazy","placeholderChar","t26","value","initialMaskedValue","setValue","setInitialMaskValue","unmaskedValue","initialUnmaskedValue","useIMask","ref","defaultValue","onComplete","date","isValid","handleChangeUpdateDateState","inputType","typing","t27","t28","finalMaskedValue","setFinalMaskValue","finalUnmaskedValue","value_0","date_0","t29","_","isEmpty","hasLabel","hasHintMessages","Boolean","hint","length","hasValidationErrors","t30","object","handleChangeSelectedDate","t31","value_1","handleChangeCalendarBoxState","t32","value_2","handleChangeActiveDescendant","t33","value_3","handleChangeCalendarDisplayDate","t34","_temp","handleChangePreviousMonth","t35","_temp2","handleChangeNextMonth","t36","offset","prevDisplayDate_1","daySelected","prevDisplayDate","clone","add","handleNavigateWithDays","t37","when","prevDisplayDate_2","daySelected_0","endOf","startOf","handleNavigateWithWeeks","t38","objectValue","isValidInitialValue","isValidFinalValue","verifyPeriodSelectedIsValid","t39","onChange","target","_temp3","handleOnClickClearSelectedPeriod","params","date_1","rawDate","verifyDateRangeOrder","_temp4","bb185","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","t40","period","localOnChange","initialDate_0","finalDate_0","valueToUpdate","initialDate","finalDate","updatedState_1","bb304","date_2","startOfWeek","endOfWeek","startOfLastWeek","endOfLastWeek","startOfLastFifteenDays","endOfLastFifteenDays","startOfMonth_0","endOfMonth_0","startOfMonth","endOfMonth","handleChangeUpdateDateStateWithPredefinedPeriod","t41","event","inputType_0","onBlur","relatedTarget","id","size","date_3","date_4","handleOnBlurMaskInput","t42","event_0","inputType_1","onFocus","handleOnFocusMaskInput","t43","event_1","inputType_2","onKeyDown","key","shiftKey","altKey","Keys","enter","preventDefault","rawDate_0","toString","handleOnKeyDownMaskInput","t44","event_2","onPaste","handleOnPaste","t45","event_3","onBeforeInput","handleOnBeforeInput","t46","event_4","NAVIGATION_KEYS","includes","bb466","arrowLeft","arrowRight","arrowUp","arrowDown","pageUp","pageDown","home","end","escape","handleOnKeyDown","t47","objectValue_0","initialDate_1","finalDate_1","t48","t49","useEffect","t50","t51","t52","t53","isReadOnly","isDisabled","initialInputId","finalInputId","hasValidPeriodSelected","contextValues","t54","required","BaseDate.Label","t55","omit","t56","initialRef","t57","mergeRefs","t58","event_5","t59","event_6","t60","event_7","t61","t62","_temp5","t63","BaseDate","t64","t65","finalRef","t66","t67","t68","event_9","t69","event_10","t70","event_11","t71","Input","t72","t73","createPortal","document","body","t74","t75","map","_temp6","t76","BaseDate.Root","BaseDate.Container","BaseDate.Input","displayName","subtract","prevDisplayDate_0","isAfter","event_8","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,\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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"}
|
|
@@ -6,7 +6,7 @@ import '../../../assets/styles/button.css';/* empty css
|
|
|
6
6
|
import { Triggers as Triggers$1 } from "../base/index.js";
|
|
7
7
|
import List from "../../../list/index.js";
|
|
8
8
|
import { useDatePeriodFieldContext } from "./context.js";
|
|
9
|
-
import { PERIOD_OPTIONS_LIST, TOKEN_ISO_FORMAT } from "../helpers.js";
|
|
9
|
+
import { PERIOD_OPTIONS_LIST, TOKEN_ISO_FORMAT, getPredefinedPeriodRange } from "../helpers.js";
|
|
10
10
|
import Item from "../../../list/Item.js";
|
|
11
11
|
const Triggers = () => {
|
|
12
12
|
const {
|
|
@@ -22,23 +22,35 @@ const Triggers = () => {
|
|
|
22
22
|
showPredefinedPeriodsButton,
|
|
23
23
|
showClearDateButton,
|
|
24
24
|
hasValidPeriodSelected,
|
|
25
|
-
|
|
25
|
+
handleSetCalendarBoxOpen,
|
|
26
|
+
minDate,
|
|
27
|
+
maxDate,
|
|
26
28
|
handleChangeActiveDescendant,
|
|
27
29
|
handleChangeCalendarDisplayDate,
|
|
28
30
|
handleOnClickClearSelectedPeriod,
|
|
29
31
|
handleChangeUpdateDateStateWithPredefinedPeriod
|
|
30
32
|
} = useDatePeriodFieldContext();
|
|
31
33
|
const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;
|
|
34
|
+
const isPeriodOutOfBounds = (period) => {
|
|
35
|
+
const {
|
|
36
|
+
initialDate,
|
|
37
|
+
finalDate
|
|
38
|
+
} = getPredefinedPeriodRange(period);
|
|
39
|
+
if (minDate && finalDate.isBefore(minDate)) return true;
|
|
40
|
+
return Boolean(maxDate && initialDate.isAfter(maxDate));
|
|
41
|
+
};
|
|
32
42
|
const handleOnClickTriggerSelectPredefinedPeriods = (event, periodSelected) => {
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
43
|
+
const isBlocked = !shouldHavePermitClickOnTrigger || periodSelected && isPeriodOutOfBounds(periodSelected);
|
|
44
|
+
if (isBlocked) {
|
|
45
|
+
event?.preventDefault?.();
|
|
46
|
+
} else if (periodSelected) {
|
|
47
|
+
handleChangeUpdateDateStateWithPredefinedPeriod(periodSelected);
|
|
36
48
|
}
|
|
37
49
|
};
|
|
38
50
|
const handleOnClickTriggerCalendar = (event_0) => {
|
|
39
51
|
if (!shouldHavePermitClickOnTrigger) event_0.preventDefault();
|
|
40
52
|
else {
|
|
41
|
-
|
|
53
|
+
handleSetCalendarBoxOpen(!calendarBoxOpen);
|
|
42
54
|
if (!calendarBoxOpen) {
|
|
43
55
|
switch (document.activeElement?.id) {
|
|
44
56
|
case initialInputRef.current?.id: {
|
|
@@ -62,11 +74,11 @@ const Triggers = () => {
|
|
|
62
74
|
};
|
|
63
75
|
return /* @__PURE__ */ jsx(Triggers$1, { clearButtonTestId: "test-date-period-field-trigger-clean-selected-period", calendarButtonTestId: "test-date-period-field-trigger-open-calendar", isDisabled, isReadOnly, skeletonize, inputFieldId: initialInputId, calendarBoxOpen, showClearButton: showClearDateButton, showCalendarButton, hasValidDateSelection: false, hasValidPeriodSelected, onClearSelectedDate: handleOnClickClearSelectedPeriod, onClickTriggerCalendar: handleOnClickTriggerCalendar, children: /* @__PURE__ */ jsx(Button, { "data-testid": "test-date-period-field-trigger-select-predefined-periods", className: "select-predefined-periods", dropdown: true, transparent: true, boxShadow: false, showIconDropdown: false, visible: showPredefinedPeriodsButton, type: "button", title: "Selecionar Periodos Pré Definidos", tabIndex: -1, disabled: isDisabled, "aria-label": "Selecionar Periodos Pré Definidos", "aria-controls": initialInputId, "aria-readonly": isReadOnly, "data-state-read-only": isReadOnly, "data-state-visible": showPredefinedPeriodsButton, iconName: "more1", dropdownAlign: "right", onMouseDown: (event_1) => {
|
|
64
76
|
event_1.preventDefault();
|
|
65
|
-
}, children: /* @__PURE__ */ jsx(List, { condensed: true, children: PERIOD_OPTIONS_LIST.map((
|
|
77
|
+
}, children: /* @__PURE__ */ jsx(List, { condensed: true, children: PERIOD_OPTIONS_LIST.map((period_0) => /* @__PURE__ */ jsx(Item, { itemId: period_0.id, text: period_0.label, disabled: isPeriodOutOfBounds(period_0.id), onMouseDown: (event_2) => {
|
|
66
78
|
event_2?.preventDefault?.();
|
|
67
79
|
}, onClick: (event_3) => {
|
|
68
|
-
handleOnClickTriggerSelectPredefinedPeriods(event_3,
|
|
69
|
-
} },
|
|
80
|
+
handleOnClickTriggerSelectPredefinedPeriods(event_3, period_0.id);
|
|
81
|
+
} }, period_0.id)) }) }) });
|
|
70
82
|
};
|
|
71
83
|
Triggers.displayName = "DatePeriodFieldTriggers";
|
|
72
84
|
export {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"triggers.js","sources":["../../../../src/lib/inputs2/date/dateperiodfield/triggers.tsx"],"sourcesContent":["import moment from 'moment';\nimport { MouseEvent } from 'react';\nimport Button from '../../../buttons';\nimport * as BaseDate from '../base';\nimport List, { ListItem } from '../../../list';\nimport type { DatePeriodTypes } from './types';\nimport { useDatePeriodFieldContext } from './context';\nimport { PERIOD_OPTIONS_LIST, TOKEN_ISO_FORMAT } from '../helpers';\n\nconst Triggers = () => {\n const {\n initialInputId, initialInputRef, finalInputRef, isReadOnly, isDisabled, selectedDate, \n calendarBoxOpen, showCalendarButton, skeletonize, showPredefinedPeriodsButton,\n showClearDateButton, hasValidPeriodSelected,
|
|
1
|
+
{"version":3,"file":"triggers.js","sources":["../../../../src/lib/inputs2/date/dateperiodfield/triggers.tsx"],"sourcesContent":["import moment from 'moment';\nimport { MouseEvent } from 'react';\nimport Button from '../../../buttons';\nimport * as BaseDate from '../base';\nimport List, { ListItem } from '../../../list';\nimport type { DatePeriodTypes } from './types';\nimport { useDatePeriodFieldContext } from './context';\nimport { getPredefinedPeriodRange, PERIOD_OPTIONS_LIST, TOKEN_ISO_FORMAT } from '../helpers';\n\nconst Triggers = () => {\n const {\n initialInputId, initialInputRef, finalInputRef, isReadOnly, isDisabled, selectedDate, \n calendarBoxOpen, showCalendarButton, skeletonize, showPredefinedPeriodsButton,\n showClearDateButton, hasValidPeriodSelected, handleSetCalendarBoxOpen, minDate, maxDate,\n handleChangeActiveDescendant, handleChangeCalendarDisplayDate, handleOnClickClearSelectedPeriod,\n handleChangeUpdateDateStateWithPredefinedPeriod,\n } = useDatePeriodFieldContext();\n const shouldHavePermitClickOnTrigger = !isReadOnly && !isDisabled;\n\n // Um preset que sobrepõe o intervalo em parte ainda é útil — entrega o pedaço válido.\n // Sem nenhuma sobreposição não há o que recortar, e o atalho fica desabilitado.\n const isPeriodOutOfBounds = (period: DatePeriodTypes) => {\n const { initialDate, finalDate } = getPredefinedPeriodRange(period);\n if (minDate && finalDate.isBefore(minDate)) return true;\n return Boolean(maxDate && initialDate.isAfter(maxDate));\n };\n\n const handleOnClickTriggerSelectPredefinedPeriods = (\n event: any, periodSelected?: DatePeriodTypes,\n ) => {\n const isBlocked = !shouldHavePermitClickOnTrigger ||\n (periodSelected && isPeriodOutOfBounds(periodSelected));\n if (isBlocked) {\n event?.preventDefault?.();\n } else if (periodSelected) {\n handleChangeUpdateDateStateWithPredefinedPeriod(periodSelected);\n }\n };\n\n const handleOnClickTriggerCalendar = (event: MouseEvent<HTMLButtonElement>) => {\n if (!shouldHavePermitClickOnTrigger) event.preventDefault();\n else {\n handleSetCalendarBoxOpen(!calendarBoxOpen);\n if (!calendarBoxOpen) {\n switch (document.activeElement?.id) {\n case initialInputRef.current?.id: {\n handleChangeActiveDescendant(\n (selectedDate.inicial ?? moment()).format(TOKEN_ISO_FORMAT),\n );\n handleChangeCalendarDisplayDate(selectedDate.inicial ?? moment());\n initialInputRef.current?.focus();\n break;\n }\n case finalInputRef.current?.id: {\n handleChangeActiveDescendant((selectedDate.final ?? moment()).format(TOKEN_ISO_FORMAT));\n handleChangeCalendarDisplayDate(selectedDate.final ?? moment());\n finalInputRef.current?.focus();\n break;\n }\n default: initialInputRef.current?.focus();\n break;\n }\n }\n }\n };\n\n return (\n <BaseDate.Triggers\n clearButtonTestId=\"test-date-period-field-trigger-clean-selected-period\"\n calendarButtonTestId=\"test-date-period-field-trigger-open-calendar\"\n isDisabled={isDisabled}\n isReadOnly={isReadOnly}\n skeletonize={skeletonize}\n inputFieldId={initialInputId}\n calendarBoxOpen={calendarBoxOpen}\n showClearButton={showClearDateButton}\n showCalendarButton={showCalendarButton}\n hasValidDateSelection={false}\n hasValidPeriodSelected={hasValidPeriodSelected}\n onClearSelectedDate={handleOnClickClearSelectedPeriod}\n onClickTriggerCalendar={handleOnClickTriggerCalendar}>\n <Button\n data-testid=\"test-date-period-field-trigger-select-predefined-periods\"\n className=\"select-predefined-periods\"\n dropdown\n transparent\n boxShadow={false}\n showIconDropdown={false}\n visible={showPredefinedPeriodsButton}\n type=\"button\"\n title=\"Selecionar Periodos Pré Definidos\"\n tabIndex={-1}\n disabled={isDisabled}\n aria-label=\"Selecionar Periodos Pré Definidos\"\n aria-controls={initialInputId}\n aria-readonly={isReadOnly}\n data-state-read-only={isReadOnly}\n data-state-visible={showPredefinedPeriodsButton}\n iconName=\"more1\"\n dropdownAlign=\"right\"\n onMouseDown={(event) => { event.preventDefault(); }}>\n <List condensed>\n {PERIOD_OPTIONS_LIST.map(period => (\n <ListItem\n key={period.id}\n itemId={period.id}\n text={period.label}\n disabled={isPeriodOutOfBounds(period.id)}\n onMouseDown={(event) => { event?.preventDefault?.(); }}\n onClick={(event) => {\n handleOnClickTriggerSelectPredefinedPeriods(event, period.id); \n }} />\n ))}\n </List>\n </Button>\n </BaseDate.Triggers>\n );\n};\n\nTriggers.displayName = 'DatePeriodFieldTriggers';\n\nexport { Triggers };\n"],"names":["Triggers","initialInputId","initialInputRef","finalInputRef","isReadOnly","isDisabled","selectedDate","calendarBoxOpen","showCalendarButton","skeletonize","showPredefinedPeriodsButton","showClearDateButton","hasValidPeriodSelected","handleSetCalendarBoxOpen","minDate","maxDate","handleChangeActiveDescendant","handleChangeCalendarDisplayDate","handleOnClickClearSelectedPeriod","handleChangeUpdateDateStateWithPredefinedPeriod","useDatePeriodFieldContext","shouldHavePermitClickOnTrigger","isPeriodOutOfBounds","period","initialDate","finalDate","getPredefinedPeriodRange","isBefore","Boolean","isAfter","handleOnClickTriggerSelectPredefinedPeriods","event","periodSelected","isBlocked","preventDefault","handleOnClickTriggerCalendar","document","activeElement","id","current","inicial","moment","format","TOKEN_ISO_FORMAT","focus","final","BaseDate.Triggers","PERIOD_OPTIONS_LIST","map","ListItem","label","displayName"],"mappings":";;;;;;;;;;AASA,MAAMA,WAAWA,MAAM;AACrB,QAAM;AAAA,IACJC;AAAAA,IAAgBC;AAAAA,IAAiBC;AAAAA,IAAeC;AAAAA,IAAYC;AAAAA,IAAYC;AAAAA,IACxEC;AAAAA,IAAiBC;AAAAA,IAAoBC;AAAAA,IAAaC;AAAAA,IAClDC;AAAAA,IAAqBC;AAAAA,IAAwBC;AAAAA,IAA0BC;AAAAA,IAASC;AAAAA,IAChFC;AAAAA,IAA8BC;AAAAA,IAAiCC;AAAAA,IAC/DC;AAAAA,EAAAA,IACEC,0BAAAA;AACJ,QAAMC,iCAAiC,CAACjB,cAAc,CAACC;AAIvD,QAAMiB,sBAAsBA,CAACC,WAA4B;AACvD,UAAM;AAAA,MAAEC;AAAAA,MAAaC;AAAAA,IAAAA,IAAcC,yBAAyBH,MAAM;AAClE,QAAIT,WAAWW,UAAUE,SAASb,OAAO,EAAG,QAAO;AACnD,WAAOc,QAAQb,WAAWS,YAAYK,QAAQd,OAAO,CAAC;AAAA,EACxD;AAEA,QAAMe,8CAA8CA,CAClDC,OAAYC,mBACT;AACH,UAAMC,YAAY,CAACZ,kCAChBW,kBAAkBV,oBAAoBU,cAAc;AACvD,QAAIC,WAAW;AACbF,aAAOG,iBAAAA;AAAAA,IACT,WAAWF,gBAAgB;AACzBb,sDAAgDa,cAAc;AAAA,IAChE;AAAA,EACF;AAEA,QAAMG,+BAA+BA,CAACJ,YAAyC;AAC7E,QAAI,CAACV,+BAAgCU,SAAMG,eAAAA;AAAAA,SACtC;AACHrB,+BAAyB,CAACN,eAAe;AACzC,UAAI,CAACA,iBAAiB;AACpB,gBAAQ6B,SAASC,eAAeC,IAAAA;AAAAA,UAC9B,KAAKpC,gBAAgBqC,SAASD,IAAI;AAChCtB,0CACGV,aAAakC,WAAWC,MAAAA,GAAUC,OAAOC,gBAAgB,CAC5D;AACA1B,4CAAgCX,aAAakC,WAAWC,OAAQ;AAChEvC,4BAAgBqC,SAASK,MAAAA;AACzB;AAAA,UACF;AAAA,UACA,KAAKzC,cAAcoC,SAASD,IAAI;AAC9BtB,0CAA8BV,aAAauC,SAASJ,MAAAA,GAAUC,OAAOC,gBAAgB,CAAC;AACtF1B,4CAAgCX,aAAauC,SAASJ,OAAQ;AAC9DtC,0BAAcoC,SAASK,MAAAA;AACvB;AAAA,UACF;AAAA,UACA;AAAS1C,4BAAgBqC,SAASK,MAAAA;AAChC;AAAA,QAAA;AAAA,MAEN;AAAA,IACF;AAAA,EACF;AAEA,SACE,oBAACE,YAAA,EACC,mBAAkB,wDAClB,sBAAqB,gDACrB,YACA,YACA,aACA,cAAc7C,gBACd,iBACA,iBAAiBU,qBACjB,oBACA,uBAAuB,OACvB,wBACA,qBAAqBO,kCACrB,wBAAwBiB,8BACxB,UAAA,oBAAC,QAAA,EACC,eAAY,4DACZ,WAAU,6BACV,UAAQ,MACR,aAAW,MACX,WAAW,OACX,kBAAkB,OAClB,SAASzB,6BACT,MAAK,UACL,OAAM,qCACN,UAAU,IACV,UAAUL,YACV,cAAW,qCACX,iBAAeJ,gBACf,iBAAeG,YACf,wBAAsBA,YACtB,sBAAoBM,6BACpB,UAAS,SACT,eAAc,SACd,aAAcqB,CAAAA,YAAU;AAAEA,YAAMG,eAAAA;AAAAA,EAAkB,GAClD,8BAAC,MAAA,EAAK,WAAS,MACZa,UAAAA,oBAAoBC,IAAIzB,CAAAA,aACvB,oBAAC0B,MAAA,EAEC,QAAQ1B,SAAOe,IACf,MAAMf,SAAO2B,OACb,UAAU5B,oBAAoBC,SAAOe,EAAE,GACvC,aAAcP,CAAAA,YAAU;AAAEA,aAAOG,iBAAAA;AAAAA,EAAoB,GACrD,SAAUH,CAAAA,YAAU;AAClBD,gDAA4CC,SAAOR,SAAOe,EAAE;AAAA,EAC9D,KAPKf,SAAOe,GAQf,EAAA,CACH,GACF,GACF;AAEJ;AAEAtC,SAASmD,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
|
export type DatePeriodTypes = 'today' | 'week' | 'lastweek' | 'last15' | 'month' | 'lastmonth';
|
|
10
10
|
export type PeriodOptions = {
|
|
11
11
|
id: DatePeriodTypes;
|
|
@@ -47,6 +47,9 @@ export interface DatePeriodFieldBaseProps extends InputHTMLProps, ITooltipCommon
|
|
|
47
47
|
showClearDateButton?: boolean;
|
|
48
48
|
showPredefinedPeriodsButton?: boolean;
|
|
49
49
|
returnValueType?: DateValueReturnType;
|
|
50
|
+
variant?: DateVariant;
|
|
51
|
+
min?: string;
|
|
52
|
+
max?: string;
|
|
50
53
|
textAlign?: TextAlign;
|
|
51
54
|
hintPosition?: HintPosition;
|
|
52
55
|
themePopover?: ColorTheme;
|
|
@@ -57,15 +60,13 @@ export interface DatePeriodFieldProps extends DatePeriodFieldBaseProps {
|
|
|
57
60
|
permissionAttr?: PermissionAttr;
|
|
58
61
|
onDeniedActions?: OnDenied;
|
|
59
62
|
}
|
|
60
|
-
export interface DatePeriodContextProps {
|
|
63
|
+
export interface DatePeriodContextProps extends DateSharedContextProps {
|
|
61
64
|
initialInputId: string;
|
|
62
65
|
finalInputId: string;
|
|
63
|
-
activeDescendant: string;
|
|
64
66
|
isReadOnly: boolean;
|
|
65
67
|
isDisabled: boolean;
|
|
66
68
|
undigitable: boolean;
|
|
67
69
|
skeletonize: boolean;
|
|
68
|
-
calendarBoxOpen: boolean;
|
|
69
70
|
showCalendarButton: boolean;
|
|
70
71
|
openCalendarOnFocus: boolean;
|
|
71
72
|
hasValidationErrors: boolean;
|
|
@@ -73,29 +74,12 @@ export interface DatePeriodContextProps {
|
|
|
73
74
|
hasValidPeriodSelected: boolean;
|
|
74
75
|
showPredefinedPeriodsButton: boolean;
|
|
75
76
|
selectedDate: SelectedDateType;
|
|
76
|
-
|
|
77
|
+
minDate?: Moment;
|
|
78
|
+
maxDate?: Moment;
|
|
77
79
|
initialInputRef: RefObject<HTMLInputElement | null>;
|
|
78
80
|
finalInputRef: RefObject<HTMLInputElement | null>;
|
|
79
|
-
dateContainerRef: RefObject<HTMLDivElement | null>;
|
|
80
81
|
handleChangeUpdateDateState: (params: UpdateDateStateParams) => void;
|
|
81
|
-
handleChangeNextMonth: () => void;
|
|
82
|
-
handleChangePreviousMonth: () => void;
|
|
83
|
-
handleChangeCalendarBoxState: (value: boolean) => void;
|
|
84
|
-
handleChangeActiveDescendant: (value: string) => void;
|
|
85
|
-
handleChangeCalendarDisplayDate: (value: Moment) => void;
|
|
86
82
|
handleOnClickClearSelectedPeriod: () => void;
|
|
87
83
|
handleChangeUpdateDateStateWithPredefinedPeriod: (period: DatePeriodTypes) => void;
|
|
88
84
|
}
|
|
89
|
-
export declare enum Keys {
|
|
90
|
-
arrowLeft = "ArrowLeft",
|
|
91
|
-
arrowRight = "ArrowRight",
|
|
92
|
-
arrowUp = "ArrowUp",
|
|
93
|
-
arrowDown = "ArrowDown",
|
|
94
|
-
pageUp = "PageUp",
|
|
95
|
-
pageDown = "PageDown",
|
|
96
|
-
home = "Home",
|
|
97
|
-
end = "End",
|
|
98
|
-
escape = "Escape",
|
|
99
|
-
enter = "Enter"
|
|
100
|
-
}
|
|
101
85
|
export {};
|
|
@@ -1,10 +1,27 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { default as _ } from 'lodash';
|
|
2
|
+
import { default as moment, Moment } from 'moment';
|
|
2
3
|
import { PeriodOptions } from './dateperiodfield/types';
|
|
3
|
-
|
|
4
|
+
import { DateVariant } from './types';
|
|
4
5
|
export declare const TOKEN_ISO_FORMAT = "YYYY-MM-DD";
|
|
5
6
|
export declare const TOKEN_PTBR_FORMAT = "DD/MM/YYYY";
|
|
7
|
+
export declare const TOKEN_ISO_DATETIME_FORMAT = "YYYY-MM-DDTHH:mm";
|
|
8
|
+
export declare const TOKEN_PTBR_DATETIME_FORMAT = "DD/MM/YYYY HH:mm";
|
|
9
|
+
export declare const ACCEPTED_BOUNDARY_FORMATS: string[];
|
|
10
|
+
export declare const ACCEPTED_VALUE_FORMATS: (string | moment.MomentBuiltinFormat)[];
|
|
11
|
+
export declare const getDateFormats: (variant: DateVariant) => {
|
|
12
|
+
isoFormat: string;
|
|
13
|
+
ptbrFormat: string;
|
|
14
|
+
digits: number;
|
|
15
|
+
};
|
|
16
|
+
export declare const parseDateValue: (value: unknown, variant: DateVariant) => Moment;
|
|
17
|
+
export declare const parseBoundary: (value?: string) => Moment | undefined;
|
|
18
|
+
export declare const clampDateToBounds: (date: Moment, min?: Moment, max?: Moment) => Moment;
|
|
19
|
+
export declare const isDayOutOfBounds: (day: Moment, min?: Moment, max?: Moment) => boolean;
|
|
20
|
+
export declare const getPredefinedPeriodRange: (period: PeriodOptions["id"]) => {
|
|
21
|
+
initialDate: moment.Moment;
|
|
22
|
+
finalDate: moment.Moment;
|
|
23
|
+
};
|
|
6
24
|
export declare const options: string[];
|
|
7
25
|
export declare const NAVIGATION_KEYS: string[];
|
|
8
26
|
export declare const PERIOD_OPTIONS_LIST: PeriodOptions[];
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const generateCalendarWeeks: ((monthSelected: Moment) => Moment[][]) & import('lodash').MemoizedFunction;
|
|
27
|
+
export declare const generateCalendarWeeks: ((monthSelected: Moment) => Moment[][]) & _.MemoizedFunction;
|
|
@@ -1,10 +1,61 @@
|
|
|
1
|
-
import "../../
|
|
1
|
+
import _ from "../../_virtual/lodash.js";
|
|
2
|
+
import hooks from "../../node_modules/moment/dist/moment.js";
|
|
2
3
|
import memoize from "../../_virtual/memoize.js";
|
|
3
4
|
import { OPTIONS_ON_DENIED } from "../../permissionValidations.js";
|
|
4
5
|
import { Keys } from "./types.js";
|
|
5
|
-
|
|
6
|
+
import "../../node_modules/moment/dist/locale/pt-br.js";
|
|
7
|
+
hooks.locale("pt-br");
|
|
6
8
|
const TOKEN_ISO_FORMAT = "YYYY-MM-DD";
|
|
7
9
|
const TOKEN_PTBR_FORMAT = "DD/MM/YYYY";
|
|
10
|
+
const TOKEN_ISO_DATETIME_FORMAT = "YYYY-MM-DDTHH:mm";
|
|
11
|
+
const TOKEN_PTBR_DATETIME_FORMAT = "DD/MM/YYYY HH:mm";
|
|
12
|
+
const ACCEPTED_BOUNDARY_FORMATS = [TOKEN_ISO_FORMAT, TOKEN_ISO_DATETIME_FORMAT];
|
|
13
|
+
const ACCEPTED_VALUE_FORMATS = [...ACCEPTED_BOUNDARY_FORMATS, hooks.ISO_8601];
|
|
14
|
+
const getDateFormats = (variant) => variant === "datetime" ? {
|
|
15
|
+
isoFormat: TOKEN_ISO_DATETIME_FORMAT,
|
|
16
|
+
ptbrFormat: TOKEN_PTBR_DATETIME_FORMAT,
|
|
17
|
+
digits: 12
|
|
18
|
+
} : {
|
|
19
|
+
isoFormat: TOKEN_ISO_FORMAT,
|
|
20
|
+
ptbrFormat: TOKEN_PTBR_FORMAT,
|
|
21
|
+
digits: 8
|
|
22
|
+
};
|
|
23
|
+
const parseDateValue = (value, variant) => variant === "datetime" ? hooks(_.toString(value), ACCEPTED_VALUE_FORMATS, true) : hooks(_.toString(value), TOKEN_ISO_FORMAT);
|
|
24
|
+
const parseBoundary = (value) => {
|
|
25
|
+
if (!value) return void 0;
|
|
26
|
+
const boundary = hooks(value, ACCEPTED_BOUNDARY_FORMATS, true);
|
|
27
|
+
return boundary.isValid() ? boundary : void 0;
|
|
28
|
+
};
|
|
29
|
+
const clampDateToBounds = (date, min, max) => {
|
|
30
|
+
if (min && date.isBefore(min)) return min.clone();
|
|
31
|
+
if (max && date.isAfter(max)) return max.clone();
|
|
32
|
+
return date;
|
|
33
|
+
};
|
|
34
|
+
const isDayOutOfBounds = (day, min, max) => {
|
|
35
|
+
if (min && day.isBefore(min, "day")) return true;
|
|
36
|
+
return Boolean(max && day.isAfter(max, "day"));
|
|
37
|
+
};
|
|
38
|
+
const getPredefinedPeriodRange = (period) => {
|
|
39
|
+
const range = (start, end) => ({
|
|
40
|
+
initialDate: start.startOf("day"),
|
|
41
|
+
finalDate: end.endOf("day")
|
|
42
|
+
});
|
|
43
|
+
switch (period) {
|
|
44
|
+
case "today":
|
|
45
|
+
return range(hooks(), hooks());
|
|
46
|
+
case "week":
|
|
47
|
+
return range(hooks().startOf("week"), hooks().endOf("week"));
|
|
48
|
+
case "lastweek":
|
|
49
|
+
return range(hooks().add(-1, "week").startOf("week"), hooks().add(-1, "week").endOf("week"));
|
|
50
|
+
case "last15":
|
|
51
|
+
return range(hooks().add(-14, "d"), hooks());
|
|
52
|
+
case "month":
|
|
53
|
+
return range(hooks().startOf("month"), hooks().endOf("month"));
|
|
54
|
+
case "lastmonth":
|
|
55
|
+
default:
|
|
56
|
+
return range(hooks().add(-1, "month").startOf("month"), hooks().add(-1, "month").endOf("month"));
|
|
57
|
+
}
|
|
58
|
+
};
|
|
8
59
|
const options = [OPTIONS_ON_DENIED.disabled, OPTIONS_ON_DENIED.unvisible, OPTIONS_ON_DENIED.readOnly, OPTIONS_ON_DENIED.hideContent];
|
|
9
60
|
const NAVIGATION_KEYS = [Keys.arrowLeft, Keys.arrowRight, Keys.arrowUp, Keys.arrowDown, Keys.pageUp, Keys.pageDown, Keys.home, Keys.end, Keys.escape, Keys.enter];
|
|
10
61
|
const PERIOD_OPTIONS_LIST = [{
|
|
@@ -42,12 +93,21 @@ const generateCalendarWeeks = memoize((monthSelected) => {
|
|
|
42
93
|
return weeks;
|
|
43
94
|
}, (monthSelected) => monthSelected.format("YYYY-MM"));
|
|
44
95
|
export {
|
|
96
|
+
ACCEPTED_BOUNDARY_FORMATS,
|
|
97
|
+
ACCEPTED_VALUE_FORMATS,
|
|
45
98
|
NAVIGATION_KEYS,
|
|
46
99
|
PERIOD_OPTIONS_LIST,
|
|
100
|
+
TOKEN_ISO_DATETIME_FORMAT,
|
|
47
101
|
TOKEN_ISO_FORMAT,
|
|
48
|
-
|
|
102
|
+
TOKEN_PTBR_DATETIME_FORMAT,
|
|
49
103
|
TOKEN_PTBR_FORMAT,
|
|
104
|
+
clampDateToBounds,
|
|
50
105
|
generateCalendarWeeks,
|
|
51
|
-
|
|
106
|
+
getDateFormats,
|
|
107
|
+
getPredefinedPeriodRange,
|
|
108
|
+
isDayOutOfBounds,
|
|
109
|
+
options,
|
|
110
|
+
parseBoundary,
|
|
111
|
+
parseDateValue
|
|
52
112
|
};
|
|
53
113
|
//# sourceMappingURL=helpers.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"helpers.js","sources":["../../../src/lib/inputs2/date/helpers.ts"],"sourcesContent":["import moment, { type Moment } from 'moment';\nimport memoize from 'lodash/memoize';\nimport { OPTIONS_ON_DENIED } from '../../permissionValidations';\nimport type { PeriodOptions } from './dateperiodfield/types';\nimport { Keys } from './types';\n\
|
|
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","start","end","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","memoize","monthSelected","startOfCalendar","endOfCalendar","weeks","currentWeek","isSameOrBefore","week","days","push","format"],"mappings":";;;;;;AAUAA,MAAOC,OAAO,OAAO;AAEd,MAAMC,mBAAmB;AACzB,MAAMC,oBAAoB;AAC1B,MAAMC,4BAA4B;AAClC,MAAMC,6BAA6B;AACnC,MAAMC,4BAA4B,CAACJ,kBAAkBE,yBAAyB;AAC9E,MAAMG,yBAAyB,CAAC,GAAGD,2BAA2BN,MAAOQ,QAAQ;AAC7E,MAAMC,iBAAiBA,CAACC,YAA0BA,YAAY,aACjE;AAAA,EAAEC,WAAWP;AAAAA,EAA2BQ,YAAYP;AAAAA,EAA4BQ,QAAQ;AAAG,IAC3F;AAAA,EAAEF,WAAWT;AAAAA,EAAkBU,YAAYT;AAAAA,EAAmBU,QAAQ;AAAE;AAGrE,MAAMC,iBAAiBA,CAACC,OAAgBL,YAC7CA,YAAY,aACRV,MAAOgB,EAAEC,SAASF,KAAK,GAAGR,wBAAwB,IAAI,IACtDP,MAAOgB,EAAEC,SAASF,KAAK,GAAGb,gBAAgB;AAIzC,MAAMgB,gBAAgBA,CAACH,UAAuC;AACnE,MAAI,CAACA,MAAO,QAAOI;AACnB,QAAMC,WAAWpB,MAAOe,OAAOT,2BAA2B,IAAI;AAC9D,SAAOc,SAASC,YAAYD,WAAWD;AACzC;AACO,MAAMG,oBAAoBA,CAACC,MAAcC,KAAcC,QAAyB;AACrF,MAAID,OAAOD,KAAKG,SAASF,GAAG,EAAG,QAAOA,IAAIG,MAAAA;AAC1C,MAAIF,OAAOF,KAAKK,QAAQH,GAAG,EAAG,QAAOA,IAAIE,MAAAA;AACzC,SAAOJ;AACT;AACO,MAAMM,mBAAmBA,CAACC,KAAaN,KAAcC,QAA0B;AACpF,MAAID,OAAOM,IAAIJ,SAASF,KAAK,KAAK,EAAG,QAAO;AAC5C,SAAOO,QAAQN,OAAOK,IAAIF,QAAQH,KAAK,KAAK,CAAC;AAC/C;AACO,MAAMO,2BAA2BA,CAACC,WAAgC;AACvE,QAAMC,QAAQA,CAACC,OAAeC,SAAiB;AAAA,IAC7CC,aAAaF,MAAMG,QAAQ,KAAK;AAAA,IAAGC,WAAWH,IAAII,MAAM,KAAK;AAAA,EAAA;AAE/D,UAAQP,QAAAA;AAAAA,IACN,KAAK;AAAS,aAAOC,MAAMlC,SAAUA,OAAQ;AAAA,IAC7C,KAAK;AAAQ,aAAOkC,MAAMlC,MAAAA,EAASsC,QAAQ,MAAM,GAAGtC,MAAAA,EAASwC,MAAM,MAAM,CAAC;AAAA,IAC1E,KAAK;AAAY,aAAON,MACtBlC,QAASyC,IAAI,IAAI,MAAM,EAAEH,QAAQ,MAAM,GAAGtC,MAAAA,EAASyC,IAAI,IAAI,MAAM,EAAED,MAAM,MAAM,CACjF;AAAA,IACA,KAAK;AAAU,aAAON,MAAMlC,QAASyC,IAAI,KAAK,GAAG,GAAGzC,OAAQ;AAAA,IAC5D,KAAK;AAAS,aAAOkC,MAAMlC,MAAAA,EAASsC,QAAQ,OAAO,GAAGtC,MAAAA,EAASwC,MAAM,OAAO,CAAC;AAAA,IAC7E,KAAK;AAAA,IACL;AAAS,aAAON,MACdlC,QAASyC,IAAI,IAAI,OAAO,EAAEH,QAAQ,OAAO,GAAGtC,MAAAA,EAASyC,IAAI,IAAI,OAAO,EAAED,MAAM,OAAO,CACrF;AAAA,EAAA;AAEJ;AACO,MAAME,UAAU,CACrBC,kBAAkBC,UAClBD,kBAAkBE,WAClBF,kBAAkBG,UAClBH,kBAAkBI,WAAW;AAExB,MAAMC,kBAA4B,CACvCC,KAAKC,WAAWD,KAAKE,YAAYF,KAAKG,SAASH,KAAKI,WACpDJ,KAAKK,QAAQL,KAAKM,UAAUN,KAAKO,MAAMP,KAAKb,KAAKa,KAAKQ,QACtDR,KAAKS,KAAK;AAEL,MAAMC,sBAAuC,CAClD;AAAA,EAAEC,IAAI;AAAA,EAASC,OAAO;AAAO,GAC7B;AAAA,EAAED,IAAI;AAAA,EAAQC,OAAO;AAAe,GACpC;AAAA,EAAED,IAAI;AAAA,EAAYC,OAAO;AAAgB,GACzC;AAAA,EAAED,IAAI;AAAA,EAAUC,OAAO;AAAkB,GACzC;AAAA,EAAED,IAAI;AAAA,EAASC,OAAO;AAAY,GAClC;AAAA,EAAED,IAAI;AAAA,EAAaC,OAAO;AAAa,CAAC;AAEnC,MAAMC,wBAAwBC,QAAQ,CAACC,kBAAsC;AAClF,QAAMC,kBAAkBD,cAAcrC,MAAAA,EAAQW,QAAQ,OAAO,EAAEA,QAAQ,MAAM;AAC7E,QAAM4B,gBAAgBF,cAAcrC,MAAAA,EAAQa,MAAM,OAAO,EAAEA,MAAM,MAAM;AACvE,QAAM2B,QAAoB,CAAA;AAC1B,QAAMC,cAAcH,gBAAgBtC,MAAAA;AACpC,SAAOyC,YAAYC,eAAeH,eAAe,KAAK,GAAG;AACvD,UAAMI,OAAiB,CAAA;AACvB,aAASC,OAAO,GAAGA,OAAO,GAAGA,QAAQ;AACnCD,WAAKE,KAAKJ,YAAYzC,OAAO;AAC7ByC,kBAAY3B,IAAI,GAAG,KAAK;AAAA,IAC1B;AACA0B,UAAMK,KAAKF,IAAI;AAAA,EACjB;AACA,SAAOH;AACT,GAAG,CAACH,kBAA0BA,cAAcS,OAAO,SAAS,CAAC;"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
1
|
import { CSSProperties, RefObject } from 'react';
|
|
2
|
-
export declare const useCalendarPosition: (calendarBoxOpen: boolean, containerRef: RefObject<HTMLDivElement | null>) => {
|
|
2
|
+
export declare const useCalendarPosition: (calendarBoxOpen: boolean, containerRef: RefObject<HTMLDivElement | null>, calendarBoxRef: RefObject<HTMLDivElement | null>) => {
|
|
3
3
|
calendarBoxStyles: CSSProperties;
|
|
4
4
|
};
|