linear-react-components-ui 2.1.0-beta.1 → 2.1.0-beta.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- 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 +599 -215
- 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 +645 -751
- 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 +25 -4
- package/lib/inputs2/date/helpers.js +79 -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 +22 -0
- package/lib/inputs2/date/hooks/useDateMask.js +215 -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, 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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"}
|
|
@@ -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":"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"}
|
|
@@ -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,31 @@
|
|
|
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 getMaskSegments: ((format: string) => {
|
|
18
|
+
start: number;
|
|
19
|
+
end: number;
|
|
20
|
+
}[]) & _.MemoizedFunction;
|
|
21
|
+
export declare const parseBoundary: (value?: string) => Moment | undefined;
|
|
22
|
+
export declare const clampDateToBounds: (date: Moment, min?: Moment, max?: Moment) => Moment;
|
|
23
|
+
export declare const isDayOutOfBounds: (day: Moment, min?: Moment, max?: Moment) => boolean;
|
|
24
|
+
export declare const getPredefinedPeriodRange: (period: PeriodOptions["id"]) => {
|
|
25
|
+
initialDate: moment.Moment;
|
|
26
|
+
finalDate: moment.Moment;
|
|
27
|
+
};
|
|
6
28
|
export declare const options: string[];
|
|
7
29
|
export declare const NAVIGATION_KEYS: string[];
|
|
8
30
|
export declare const PERIOD_OPTIONS_LIST: PeriodOptions[];
|
|
9
|
-
export declare const
|
|
10
|
-
export declare const generateCalendarWeeks: ((monthSelected: Moment) => Moment[][]) & import('lodash').MemoizedFunction;
|
|
31
|
+
export declare const generateCalendarWeeks: ((monthSelected: Moment) => Moment[][]) & _.MemoizedFunction;
|
|
@@ -1,10 +1,75 @@
|
|
|
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 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
|
+
});
|
|
38
|
+
const parseBoundary = (value) => {
|
|
39
|
+
if (!value) return void 0;
|
|
40
|
+
const boundary = hooks(value, ACCEPTED_BOUNDARY_FORMATS, true);
|
|
41
|
+
return boundary.isValid() ? boundary : void 0;
|
|
42
|
+
};
|
|
43
|
+
const clampDateToBounds = (date, min, max) => {
|
|
44
|
+
if (min && date.isBefore(min)) return min.clone();
|
|
45
|
+
if (max && date.isAfter(max)) return max.clone();
|
|
46
|
+
return date;
|
|
47
|
+
};
|
|
48
|
+
const isDayOutOfBounds = (day, min, max) => {
|
|
49
|
+
if (min && day.isBefore(min, "day")) return true;
|
|
50
|
+
return Boolean(max && day.isAfter(max, "day"));
|
|
51
|
+
};
|
|
52
|
+
const getPredefinedPeriodRange = (period) => {
|
|
53
|
+
const range = (start, end) => ({
|
|
54
|
+
initialDate: start.startOf("day"),
|
|
55
|
+
finalDate: end.endOf("day")
|
|
56
|
+
});
|
|
57
|
+
switch (period) {
|
|
58
|
+
case "today":
|
|
59
|
+
return range(hooks(), hooks());
|
|
60
|
+
case "week":
|
|
61
|
+
return range(hooks().startOf("week"), hooks().endOf("week"));
|
|
62
|
+
case "lastweek":
|
|
63
|
+
return range(hooks().add(-1, "week").startOf("week"), hooks().add(-1, "week").endOf("week"));
|
|
64
|
+
case "last15":
|
|
65
|
+
return range(hooks().add(-14, "d"), hooks());
|
|
66
|
+
case "month":
|
|
67
|
+
return range(hooks().startOf("month"), hooks().endOf("month"));
|
|
68
|
+
case "lastmonth":
|
|
69
|
+
default:
|
|
70
|
+
return range(hooks().add(-1, "month").startOf("month"), hooks().add(-1, "month").endOf("month"));
|
|
71
|
+
}
|
|
72
|
+
};
|
|
8
73
|
const options = [OPTIONS_ON_DENIED.disabled, OPTIONS_ON_DENIED.unvisible, OPTIONS_ON_DENIED.readOnly, OPTIONS_ON_DENIED.hideContent];
|
|
9
74
|
const NAVIGATION_KEYS = [Keys.arrowLeft, Keys.arrowRight, Keys.arrowUp, Keys.arrowDown, Keys.pageUp, Keys.pageDown, Keys.home, Keys.end, Keys.escape, Keys.enter];
|
|
10
75
|
const PERIOD_OPTIONS_LIST = [{
|
|
@@ -42,12 +107,22 @@ const generateCalendarWeeks = memoize((monthSelected) => {
|
|
|
42
107
|
return weeks;
|
|
43
108
|
}, (monthSelected) => monthSelected.format("YYYY-MM"));
|
|
44
109
|
export {
|
|
110
|
+
ACCEPTED_BOUNDARY_FORMATS,
|
|
111
|
+
ACCEPTED_VALUE_FORMATS,
|
|
45
112
|
NAVIGATION_KEYS,
|
|
46
113
|
PERIOD_OPTIONS_LIST,
|
|
114
|
+
TOKEN_ISO_DATETIME_FORMAT,
|
|
47
115
|
TOKEN_ISO_FORMAT,
|
|
48
|
-
|
|
116
|
+
TOKEN_PTBR_DATETIME_FORMAT,
|
|
49
117
|
TOKEN_PTBR_FORMAT,
|
|
118
|
+
clampDateToBounds,
|
|
50
119
|
generateCalendarWeeks,
|
|
51
|
-
|
|
120
|
+
getDateFormats,
|
|
121
|
+
getMaskSegments,
|
|
122
|
+
getPredefinedPeriodRange,
|
|
123
|
+
isDayOutOfBounds,
|
|
124
|
+
options,
|
|
125
|
+
parseBoundary,
|
|
126
|
+
parseDateValue
|
|
52
127
|
};
|
|
53
128
|
//# 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\nexport const
|
|
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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"}
|