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