@transferwise/components 0.0.0-experimental-602fe37 → 0.0.0-experimental-1fbd7b1
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/build/calendarInput/CalendarInput.js +7 -2
- package/build/calendarInput/CalendarInput.js.map +1 -1
- package/build/calendarInput/CalendarInput.mjs +7 -2
- package/build/calendarInput/CalendarInput.mjs.map +1 -1
- package/build/calendarInput/monthCalendar/MonthCalendar.js.map +1 -1
- package/build/calendarInput/monthCalendar/MonthCalendar.mjs.map +1 -1
- package/build/calendarInput/monthCalendar/table/MonthCalendarTable.js.map +1 -1
- package/build/calendarInput/monthCalendar/table/MonthCalendarTable.mjs.map +1 -1
- package/build/calendarInput/yearCalendar/YearCalendar.js.map +1 -1
- package/build/calendarInput/yearCalendar/YearCalendar.mjs.map +1 -1
- package/build/calendarInput/yearCalendar/table/YearCalendarTable.js.map +1 -1
- package/build/calendarInput/yearCalendar/table/YearCalendarTable.mjs.map +1 -1
- package/build/dateLookup/DateLookup.js +3 -1
- package/build/dateLookup/DateLookup.js.map +1 -1
- package/build/dateLookup/DateLookup.mjs +3 -1
- package/build/dateLookup/DateLookup.mjs.map +1 -1
- package/build/types/calendarInput/CalendarInput.d.ts +2 -1
- package/build/types/calendarInput/CalendarInput.d.ts.map +1 -1
- package/build/types/calendarInput/monthCalendar/MonthCalendar.d.ts +1 -1
- package/build/types/calendarInput/monthCalendar/MonthCalendar.d.ts.map +1 -1
- package/build/types/calendarInput/monthCalendar/table/MonthCalendarTable.d.ts +1 -1
- package/build/types/calendarInput/monthCalendar/table/MonthCalendarTable.d.ts.map +1 -1
- package/build/types/calendarInput/yearCalendar/YearCalendar.d.ts +1 -1
- package/build/types/calendarInput/yearCalendar/YearCalendar.d.ts.map +1 -1
- package/build/types/calendarInput/yearCalendar/table/YearCalendarTable.d.ts +1 -1
- package/build/types/calendarInput/yearCalendar/table/YearCalendarTable.d.ts.map +1 -1
- package/build/types/dateLookup/DateLookup.d.ts.map +1 -1
- package/package.json +3 -3
- package/src/calendarInput/CalendarInput.tsx +4 -2
- package/src/calendarInput/monthCalendar/MonthCalendar.tsx +1 -1
- package/src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx +1 -1
- package/src/calendarInput/yearCalendar/YearCalendar.tsx +1 -1
- package/src/calendarInput/yearCalendar/table/YearCalendarTable.tsx +1 -1
- package/src/dateLookup/DateLookup.tsx +2 -1
|
@@ -41,6 +41,7 @@ const CalendarInput = ({
|
|
|
41
41
|
min: minProp = null,
|
|
42
42
|
max: maxProp = null,
|
|
43
43
|
monthFormat: monthFormat$1 = monthFormat.MonthFormat.LONG,
|
|
44
|
+
placeholder,
|
|
44
45
|
onChange,
|
|
45
46
|
onSelect
|
|
46
47
|
}) => {
|
|
@@ -133,7 +134,9 @@ const CalendarInput = ({
|
|
|
133
134
|
min: min,
|
|
134
135
|
max: max,
|
|
135
136
|
viewYear: viewYear,
|
|
136
|
-
placeholder
|
|
137
|
+
...(placeholder != null && {
|
|
138
|
+
placeholder
|
|
139
|
+
}),
|
|
137
140
|
onSelect: switchToDays,
|
|
138
141
|
onLabelClick: switchToYears,
|
|
139
142
|
onViewDateUpdate: handleViewDateUpdate
|
|
@@ -142,7 +145,9 @@ const CalendarInput = ({
|
|
|
142
145
|
min: min,
|
|
143
146
|
max: max,
|
|
144
147
|
viewYear: viewYear,
|
|
145
|
-
placeholder
|
|
148
|
+
...(placeholder != null && {
|
|
149
|
+
placeholder
|
|
150
|
+
}),
|
|
146
151
|
onSelect: switchToMonths,
|
|
147
152
|
onViewDateUpdate: handleViewDateUpdate
|
|
148
153
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarInput.js","sources":["../../src/calendarInput/CalendarInput.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, KeyboardEvent } from 'react';\n\nimport { MonthFormat } from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface CalendarInputProps {\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n monthFormat?: `${MonthFormat}`;\n onChange: (date: Date | null) => void;\n onSelect?: (date: Date) => void;\n}\n\nconst CalendarInput = ({\n value,\n min: minProp = null,\n max: maxProp = null,\n monthFormat = MonthFormat.LONG,\n onChange,\n onSelect,\n}: CalendarInputProps) => {\n const selectedDate = getStartOfDay(value);\n const min = getStartOfDay(minProp);\n const max = getStartOfDay(maxProp);\n\n useEffect(() => {\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n onChange(moveToWithinRange(selectedDate, min, max));\n }\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime(), onChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const dateView = returnDateView(selectedDate, min, max);\n const [viewMonth, setViewMonth] = useState(dateView.getMonth());\n const [viewYear, setViewYear] = useState(dateView.getFullYear());\n const [mode, setMode] = useState<'day' | 'month' | 'year'>('day');\n\n useEffect(() => {\n const view = returnDateView(selectedDate, min, max);\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setViewMonth(view.getMonth());\n\n setViewYear(view.getFullYear());\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime()]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleViewDateUpdate = useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n ({ month, year }: { month?: number; year?: number }) => {\n if (month !== undefined) setViewMonth(month);\n if (year !== undefined) setViewYear(year);\n },\n [],\n );\n\n const switchToDays = useCallback(() => setMode('day'), []);\n const switchToMonths = useCallback(() => setMode('month'), []);\n const switchToYears = useCallback(() => setMode('year'), []);\n\n const handleSelectedDateUpdate = useCallback(\n (date: Date) => {\n if (onSelect) {\n onSelect(date);\n } else {\n onChange(date);\n }\n },\n [onChange, onSelect],\n );\n\n const adjustDate = useCallback(\n (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n onChange(date);\n }\n },\n [selectedDate, min, max, mode, onChange],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n adjustDate(-1, -1, -1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n adjustDate(-7, -4, -4);\n event.preventDefault();\n break;\n case 'ArrowRight':\n adjustDate(1, 1, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n adjustDate(7, 4, 4);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [adjustDate],\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onKeyDown={handleKeyDown}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={handleSelectedDateUpdate}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder=\"\"\n onSelect={switchToDays}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder=\"\"\n onSelect={switchToMonths}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n </div>\n );\n};\n\nexport default CalendarInput;\n"],"names":["CalendarInput","value","min","minProp","max","maxProp","monthFormat","MonthFormat","LONG","onChange","onSelect","selectedDate","getStartOfDay","useEffect","isWithinRange","moveToWithinRange","getTime","dateView","returnDateView","viewMonth","setViewMonth","useState","getMonth","viewYear","setViewYear","getFullYear","mode","setMode","view","handleViewDateUpdate","useCallback","month","year","undefined","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","date","adjustDate","daysToAdd","monthsToAdd","yearsToAdd","Date","getDate","handleKeyDown","event","key","preventDefault","_jsxs","onKeyDown","children","_jsx","DayCalendar","onLabelClick","onViewDateUpdate","MonthCalendar","placeholder","YearCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarInput.js","sources":["../../src/calendarInput/CalendarInput.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, KeyboardEvent } from 'react';\n\nimport { MonthFormat } from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface CalendarInputProps {\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n monthFormat?: `${MonthFormat}`;\n placeholder?: string;\n onChange: (date: Date | null) => void;\n onSelect?: (date: Date) => void;\n}\n\nconst CalendarInput = ({\n value,\n min: minProp = null,\n max: maxProp = null,\n monthFormat = MonthFormat.LONG,\n placeholder,\n onChange,\n onSelect,\n}: CalendarInputProps) => {\n const selectedDate = getStartOfDay(value);\n const min = getStartOfDay(minProp);\n const max = getStartOfDay(maxProp);\n\n useEffect(() => {\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n onChange(moveToWithinRange(selectedDate, min, max));\n }\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime(), onChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const dateView = returnDateView(selectedDate, min, max);\n const [viewMonth, setViewMonth] = useState(dateView.getMonth());\n const [viewYear, setViewYear] = useState(dateView.getFullYear());\n const [mode, setMode] = useState<'day' | 'month' | 'year'>('day');\n\n useEffect(() => {\n const view = returnDateView(selectedDate, min, max);\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setViewMonth(view.getMonth());\n\n setViewYear(view.getFullYear());\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime()]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleViewDateUpdate = useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n ({ month, year }: { month?: number; year?: number }) => {\n if (month !== undefined) setViewMonth(month);\n if (year !== undefined) setViewYear(year);\n },\n [],\n );\n\n const switchToDays = useCallback(() => setMode('day'), []);\n const switchToMonths = useCallback(() => setMode('month'), []);\n const switchToYears = useCallback(() => setMode('year'), []);\n\n const handleSelectedDateUpdate = useCallback(\n (date: Date) => {\n if (onSelect) {\n onSelect(date);\n } else {\n onChange(date);\n }\n },\n [onChange, onSelect],\n );\n\n const adjustDate = useCallback(\n (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n onChange(date);\n }\n },\n [selectedDate, min, max, mode, onChange],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n adjustDate(-1, -1, -1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n adjustDate(-7, -4, -4);\n event.preventDefault();\n break;\n case 'ArrowRight':\n adjustDate(1, 1, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n adjustDate(7, 4, 4);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [adjustDate],\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onKeyDown={handleKeyDown}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={handleSelectedDateUpdate}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n {...(placeholder != null && { placeholder })}\n onSelect={switchToDays}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n {...(placeholder != null && { placeholder })}\n onSelect={switchToMonths}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n </div>\n );\n};\n\nexport default CalendarInput;\n"],"names":["CalendarInput","value","min","minProp","max","maxProp","monthFormat","MonthFormat","LONG","placeholder","onChange","onSelect","selectedDate","getStartOfDay","useEffect","isWithinRange","moveToWithinRange","getTime","dateView","returnDateView","viewMonth","setViewMonth","useState","getMonth","viewYear","setViewYear","getFullYear","mode","setMode","view","handleViewDateUpdate","useCallback","month","year","undefined","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","date","adjustDate","daysToAdd","monthsToAdd","yearsToAdd","Date","getDate","handleKeyDown","event","key","preventDefault","_jsxs","onKeyDown","children","_jsx","DayCalendar","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar"],"mappings":"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"}
|
|
@@ -37,6 +37,7 @@ const CalendarInput = ({
|
|
|
37
37
|
min: minProp = null,
|
|
38
38
|
max: maxProp = null,
|
|
39
39
|
monthFormat = MonthFormat.LONG,
|
|
40
|
+
placeholder,
|
|
40
41
|
onChange,
|
|
41
42
|
onSelect
|
|
42
43
|
}) => {
|
|
@@ -129,7 +130,9 @@ const CalendarInput = ({
|
|
|
129
130
|
min: min,
|
|
130
131
|
max: max,
|
|
131
132
|
viewYear: viewYear,
|
|
132
|
-
placeholder
|
|
133
|
+
...(placeholder != null && {
|
|
134
|
+
placeholder
|
|
135
|
+
}),
|
|
133
136
|
onSelect: switchToDays,
|
|
134
137
|
onLabelClick: switchToYears,
|
|
135
138
|
onViewDateUpdate: handleViewDateUpdate
|
|
@@ -138,7 +141,9 @@ const CalendarInput = ({
|
|
|
138
141
|
min: min,
|
|
139
142
|
max: max,
|
|
140
143
|
viewYear: viewYear,
|
|
141
|
-
placeholder
|
|
144
|
+
...(placeholder != null && {
|
|
145
|
+
placeholder
|
|
146
|
+
}),
|
|
142
147
|
onSelect: switchToMonths,
|
|
143
148
|
onViewDateUpdate: handleViewDateUpdate
|
|
144
149
|
})]
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarInput.mjs","sources":["../../src/calendarInput/CalendarInput.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, KeyboardEvent } from 'react';\n\nimport { MonthFormat } from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface CalendarInputProps {\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n monthFormat?: `${MonthFormat}`;\n onChange: (date: Date | null) => void;\n onSelect?: (date: Date) => void;\n}\n\nconst CalendarInput = ({\n value,\n min: minProp = null,\n max: maxProp = null,\n monthFormat = MonthFormat.LONG,\n onChange,\n onSelect,\n}: CalendarInputProps) => {\n const selectedDate = getStartOfDay(value);\n const min = getStartOfDay(minProp);\n const max = getStartOfDay(maxProp);\n\n useEffect(() => {\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n onChange(moveToWithinRange(selectedDate, min, max));\n }\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime(), onChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const dateView = returnDateView(selectedDate, min, max);\n const [viewMonth, setViewMonth] = useState(dateView.getMonth());\n const [viewYear, setViewYear] = useState(dateView.getFullYear());\n const [mode, setMode] = useState<'day' | 'month' | 'year'>('day');\n\n useEffect(() => {\n const view = returnDateView(selectedDate, min, max);\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setViewMonth(view.getMonth());\n\n setViewYear(view.getFullYear());\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime()]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleViewDateUpdate = useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n ({ month, year }: { month?: number; year?: number }) => {\n if (month !== undefined) setViewMonth(month);\n if (year !== undefined) setViewYear(year);\n },\n [],\n );\n\n const switchToDays = useCallback(() => setMode('day'), []);\n const switchToMonths = useCallback(() => setMode('month'), []);\n const switchToYears = useCallback(() => setMode('year'), []);\n\n const handleSelectedDateUpdate = useCallback(\n (date: Date) => {\n if (onSelect) {\n onSelect(date);\n } else {\n onChange(date);\n }\n },\n [onChange, onSelect],\n );\n\n const adjustDate = useCallback(\n (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n onChange(date);\n }\n },\n [selectedDate, min, max, mode, onChange],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n adjustDate(-1, -1, -1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n adjustDate(-7, -4, -4);\n event.preventDefault();\n break;\n case 'ArrowRight':\n adjustDate(1, 1, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n adjustDate(7, 4, 4);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [adjustDate],\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onKeyDown={handleKeyDown}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={handleSelectedDateUpdate}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder=\"\"\n onSelect={switchToDays}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder=\"\"\n onSelect={switchToMonths}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n </div>\n );\n};\n\nexport default CalendarInput;\n"],"names":["CalendarInput","value","min","minProp","max","maxProp","monthFormat","MonthFormat","LONG","onChange","onSelect","selectedDate","getStartOfDay","useEffect","isWithinRange","moveToWithinRange","getTime","dateView","returnDateView","viewMonth","setViewMonth","useState","getMonth","viewYear","setViewYear","getFullYear","mode","setMode","view","handleViewDateUpdate","useCallback","month","year","undefined","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","date","adjustDate","daysToAdd","monthsToAdd","yearsToAdd","Date","getDate","handleKeyDown","event","key","preventDefault","_jsxs","onKeyDown","children","_jsx","DayCalendar","onLabelClick","onViewDateUpdate","MonthCalendar","placeholder","YearCalendar"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"CalendarInput.mjs","sources":["../../src/calendarInput/CalendarInput.tsx"],"sourcesContent":["import { useState, useCallback, useEffect, KeyboardEvent } from 'react';\n\nimport { MonthFormat } from '../common';\nimport { isWithinRange, moveToWithinRange, returnDateView } from '../common/dateUtils';\nimport DayCalendar from './dayCalendar';\nimport { getStartOfDay } from './getStartOfDay';\nimport MonthCalendar from './monthCalendar';\nimport YearCalendar from './yearCalendar';\n\nexport interface CalendarInputProps {\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n monthFormat?: `${MonthFormat}`;\n placeholder?: string;\n onChange: (date: Date | null) => void;\n onSelect?: (date: Date) => void;\n}\n\nconst CalendarInput = ({\n value,\n min: minProp = null,\n max: maxProp = null,\n monthFormat = MonthFormat.LONG,\n placeholder,\n onChange,\n onSelect,\n}: CalendarInputProps) => {\n const selectedDate = getStartOfDay(value);\n const min = getStartOfDay(minProp);\n const max = getStartOfDay(maxProp);\n\n useEffect(() => {\n if (selectedDate && !isWithinRange(selectedDate, min, max)) {\n onChange(moveToWithinRange(selectedDate, min, max));\n }\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime(), onChange]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const dateView = returnDateView(selectedDate, min, max);\n const [viewMonth, setViewMonth] = useState(dateView.getMonth());\n const [viewYear, setViewYear] = useState(dateView.getFullYear());\n const [mode, setMode] = useState<'day' | 'month' | 'year'>('day');\n\n useEffect(() => {\n const view = returnDateView(selectedDate, min, max);\n // eslint-disable-next-line react-hooks/set-state-in-effect\n setViewMonth(view.getMonth());\n\n setViewYear(view.getFullYear());\n }, [selectedDate?.getTime(), min?.getTime(), max?.getTime()]); // eslint-disable-line react-hooks/exhaustive-deps\n\n const handleViewDateUpdate = useCallback(\n // eslint-disable-next-line react-hooks/preserve-manual-memoization\n ({ month, year }: { month?: number; year?: number }) => {\n if (month !== undefined) setViewMonth(month);\n if (year !== undefined) setViewYear(year);\n },\n [],\n );\n\n const switchToDays = useCallback(() => setMode('day'), []);\n const switchToMonths = useCallback(() => setMode('month'), []);\n const switchToYears = useCallback(() => setMode('year'), []);\n\n const handleSelectedDateUpdate = useCallback(\n (date: Date) => {\n if (onSelect) {\n onSelect(date);\n } else {\n onChange(date);\n }\n },\n [onChange, onSelect],\n );\n\n const adjustDate = useCallback(\n (daysToAdd: number, monthsToAdd: number, yearsToAdd: number) => {\n let date: Date | null;\n if (selectedDate) {\n date = new Date(\n mode === 'year' ? selectedDate.getFullYear() + yearsToAdd : selectedDate.getFullYear(),\n mode === 'month' ? selectedDate.getMonth() + monthsToAdd : selectedDate.getMonth(),\n mode === 'day' ? selectedDate.getDate() + daysToAdd : selectedDate.getDate(),\n );\n } else {\n date = getStartOfDay(new Date());\n }\n date &&= moveToWithinRange(date, min, max);\n if (date?.getTime() !== selectedDate?.getTime()) {\n onChange(date);\n }\n },\n [selectedDate, min, max, mode, onChange],\n );\n\n const handleKeyDown = useCallback(\n (event: KeyboardEvent<HTMLDivElement>) => {\n switch (event.key) {\n case 'ArrowLeft':\n adjustDate(-1, -1, -1);\n event.preventDefault();\n break;\n case 'ArrowUp':\n adjustDate(-7, -4, -4);\n event.preventDefault();\n break;\n case 'ArrowRight':\n adjustDate(1, 1, 1);\n event.preventDefault();\n break;\n case 'ArrowDown':\n adjustDate(7, 4, 4);\n event.preventDefault();\n break;\n default:\n break;\n }\n },\n [adjustDate],\n );\n\n return (\n // eslint-disable-next-line jsx-a11y/no-static-element-interactions\n <div onKeyDown={handleKeyDown}>\n {mode === 'day' && (\n <DayCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewMonth={viewMonth}\n viewYear={viewYear}\n monthFormat={monthFormat}\n onSelect={handleSelectedDateUpdate}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'month' && (\n <MonthCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n {...(placeholder != null && { placeholder })}\n onSelect={switchToDays}\n onLabelClick={switchToYears}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n {mode === 'year' && (\n <YearCalendar\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n {...(placeholder != null && { placeholder })}\n onSelect={switchToMonths}\n onViewDateUpdate={handleViewDateUpdate}\n />\n )}\n </div>\n );\n};\n\nexport default CalendarInput;\n"],"names":["CalendarInput","value","min","minProp","max","maxProp","monthFormat","MonthFormat","LONG","placeholder","onChange","onSelect","selectedDate","getStartOfDay","useEffect","isWithinRange","moveToWithinRange","getTime","dateView","returnDateView","viewMonth","setViewMonth","useState","getMonth","viewYear","setViewYear","getFullYear","mode","setMode","view","handleViewDateUpdate","useCallback","month","year","undefined","switchToDays","switchToMonths","switchToYears","handleSelectedDateUpdate","date","adjustDate","daysToAdd","monthsToAdd","yearsToAdd","Date","getDate","handleKeyDown","event","key","preventDefault","_jsxs","onKeyDown","children","_jsx","DayCalendar","onLabelClick","onViewDateUpdate","MonthCalendar","YearCalendar"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendar.js","sources":["../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport MonthCalendarTable from './table';\n\ninterface MonthCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"MonthCalendar.js","sources":["../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport MonthCalendarTable from './table';\n\ninterface MonthCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: () => void;\n onLabelClick: () => void;\n onViewDateUpdate: (date: { year?: number; month?: number }) => void;\n}\n\nclass MonthCalendar extends PureComponent<MonthCalendarProps> {\n onMonthSelect = (month: number) => {\n this.props.onViewDateUpdate({ month });\n this.props.onSelect();\n };\n\n selectPreviousYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 1 });\n };\n\n selectNextYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 1 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n intl: { locale, formatMessage },\n placeholder,\n onLabelClick,\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.year)}\n label={formatDate(new Date(viewYear, 0), locale, { year: 'numeric' })}\n onLabelClick={onLabelClick}\n onPreviousClick={this.selectPreviousYear}\n onNextClick={this.selectNextYear}\n />\n <MonthCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onMonthSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(MonthCalendar);\n"],"names":["MonthCalendar","PureComponent","onMonthSelect","month","props","onViewDateUpdate","onSelect","selectPreviousYear","year","viewYear","selectNextYear","render","selectedDate","min","max","intl","locale","formatMessage","placeholder","onLabelClick","_jsxs","_Fragment","children","_jsx","DateHeader","dateMode","messages","label","formatDate","Date","onPreviousClick","onNextClick","MonthCalendarTable","injectIntl"],"mappings":";;;;;;;;;;;;sBAoBA,MAAMA,aAAc,SAAQC,mBAAiC,CAAA;EAC3DC,aAAa,GAAIC,KAAa,IAAI;AAChC,IAAA,IAAI,CAACC,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA;AAAK,KAAE,CAAC;AACtC,IAAA,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE;EACvB,CAAC;EAEDC,kBAAkB,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACH,KAAK,CAACC,gBAAgB,CAAC;AAAEG,MAAAA,IAAI,EAAE,IAAI,CAACJ,KAAK,CAACK,QAAQ,GAAG;AAAC,KAAE,CAAC;EAChE,CAAC;EAEDC,cAAc,GAAGA,MAAK;AACpB,IAAA,IAAI,CAACN,KAAK,CAACC,gBAAgB,CAAC;AAAEG,MAAAA,IAAI,EAAE,IAAI,CAACJ,KAAK,CAACK,QAAQ,GAAG;AAAC,KAAE,CAAC;EAChE,CAAC;AAEDE,EAAAA,MAAMA,GAAA;IACJ,MAAM;MACJC,YAAY;MACZC,GAAG;MACHC,GAAG;MACHL,QAAQ;AACRM,MAAAA,IAAI,EAAE;QAAEC,MAAM;AAAEC,QAAAA;OAAe;MAC/BC,WAAW;AACXC,MAAAA;KACD,GAAG,IAAI,CAACf,KAAK;IACd,oBACEgB,eAAA,CAAAC,mBAAA,EAAA;MAAAC,QAAA,EAAA,cACEC,cAAA,CAACC,kBAAU,EAAA;AACTC,QAAAA,QAAQ,EAAER,aAAa,CAACS,8BAAQ,CAAClB,IAAI,CAAE;AACvCmB,QAAAA,KAAK,EAAEC,qBAAU,CAAC,IAAIC,IAAI,CAACpB,QAAQ,EAAE,CAAC,CAAC,EAAEO,MAAM,EAAE;AAAER,UAAAA,IAAI,EAAE;AAAS,SAAE,CAAE;AACtEW,QAAAA,YAAY,EAAEA,YAAa;QAC3BW,eAAe,EAAE,IAAI,CAACvB,kBAAmB;QACzCwB,WAAW,EAAE,IAAI,CAACrB;AAAe,OAAA,CAEnC,eAAAa,cAAA,CAACS,0BAAkB,EAAA;AACjBpB,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,GAAG,EAAEA,GAAI;AACTC,QAAAA,GAAG,EAAEA,GAAI;AACTL,QAAAA,QAAQ,EAAEA,QAAS;AACnBS,QAAAA,WAAW,EAAEA,WAAY;QACzBZ,QAAQ,EAAE,IAAI,CAACJ;AAAc,OAAA,CAEjC;AAAA,KAAA,CAAG;AAEP,EAAA;AACD;AAED,oBAAe+B,oBAAU,CAACjC,eAAa,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendar.mjs","sources":["../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport MonthCalendarTable from './table';\n\ninterface MonthCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"MonthCalendar.mjs","sources":["../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport MonthCalendarTable from './table';\n\ninterface MonthCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: () => void;\n onLabelClick: () => void;\n onViewDateUpdate: (date: { year?: number; month?: number }) => void;\n}\n\nclass MonthCalendar extends PureComponent<MonthCalendarProps> {\n onMonthSelect = (month: number) => {\n this.props.onViewDateUpdate({ month });\n this.props.onSelect();\n };\n\n selectPreviousYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 1 });\n };\n\n selectNextYear = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 1 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n intl: { locale, formatMessage },\n placeholder,\n onLabelClick,\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.year)}\n label={formatDate(new Date(viewYear, 0), locale, { year: 'numeric' })}\n onLabelClick={onLabelClick}\n onPreviousClick={this.selectPreviousYear}\n onNextClick={this.selectNextYear}\n />\n <MonthCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onMonthSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(MonthCalendar);\n"],"names":["MonthCalendar","PureComponent","onMonthSelect","month","props","onViewDateUpdate","onSelect","selectPreviousYear","year","viewYear","selectNextYear","render","selectedDate","min","max","intl","locale","formatMessage","placeholder","onLabelClick","_jsxs","_Fragment","children","_jsx","DateHeader","dateMode","messages","label","formatDate","Date","onPreviousClick","onNextClick","MonthCalendarTable","injectIntl"],"mappings":";;;;;;;;AAoBA,MAAMA,aAAc,SAAQC,aAAiC,CAAA;EAC3DC,aAAa,GAAIC,KAAa,IAAI;AAChC,IAAA,IAAI,CAACC,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA;AAAK,KAAE,CAAC;AACtC,IAAA,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE;EACvB,CAAC;EAEDC,kBAAkB,GAAGA,MAAK;AACxB,IAAA,IAAI,CAACH,KAAK,CAACC,gBAAgB,CAAC;AAAEG,MAAAA,IAAI,EAAE,IAAI,CAACJ,KAAK,CAACK,QAAQ,GAAG;AAAC,KAAE,CAAC;EAChE,CAAC;EAEDC,cAAc,GAAGA,MAAK;AACpB,IAAA,IAAI,CAACN,KAAK,CAACC,gBAAgB,CAAC;AAAEG,MAAAA,IAAI,EAAE,IAAI,CAACJ,KAAK,CAACK,QAAQ,GAAG;AAAC,KAAE,CAAC;EAChE,CAAC;AAEDE,EAAAA,MAAMA,GAAA;IACJ,MAAM;MACJC,YAAY;MACZC,GAAG;MACHC,GAAG;MACHL,QAAQ;AACRM,MAAAA,IAAI,EAAE;QAAEC,MAAM;AAAEC,QAAAA;OAAe;MAC/BC,WAAW;AACXC,MAAAA;KACD,GAAG,IAAI,CAACf,KAAK;IACd,oBACEgB,IAAA,CAAAC,QAAA,EAAA;MAAAC,QAAA,EAAA,cACEC,GAAA,CAACC,UAAU,EAAA;AACTC,QAAAA,QAAQ,EAAER,aAAa,CAACS,QAAQ,CAAClB,IAAI,CAAE;AACvCmB,QAAAA,KAAK,EAAEC,UAAU,CAAC,IAAIC,IAAI,CAACpB,QAAQ,EAAE,CAAC,CAAC,EAAEO,MAAM,EAAE;AAAER,UAAAA,IAAI,EAAE;AAAS,SAAE,CAAE;AACtEW,QAAAA,YAAY,EAAEA,YAAa;QAC3BW,eAAe,EAAE,IAAI,CAACvB,kBAAmB;QACzCwB,WAAW,EAAE,IAAI,CAACrB;AAAe,OAAA,CAEnC,eAAAa,GAAA,CAACS,kBAAkB,EAAA;AACjBpB,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,GAAG,EAAEA,GAAI;AACTC,QAAAA,GAAG,EAAEA,GAAI;AACTL,QAAAA,QAAQ,EAAEA,QAAS;AACnBS,QAAAA,WAAW,EAAEA,WAAY;QACzBZ,QAAQ,EAAE,IAAI,CAACJ;AAAc,OAAA,CAEjC;AAAA,KAAA,CAAG;AAEP,EAAA;AACD;AAED,sBAAe+B,UAAU,CAACjC,aAAa,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarTable.js","sources":["../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface MonthCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"MonthCalendarTable.js","sources":["../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface MonthCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: (date: number) => void;\n}\n\nconst ROWS = 3;\nconst COLS = 4;\nconst MONTH_ONLY_FORMAT: Intl.DateTimeFormatOptions = { month: 'short' };\n\nconst MonthCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: MonthCalendarTableProps) => {\n const { locale } = useIntl();\n\n const getLink = (month: number) => {\n return (\n <TableLink\n item={month}\n type=\"month\"\n title={formatDate(new Date(viewYear, month), locale, MONTH_ONLY_FORMAT)}\n active={isActive(month)}\n disabled={isDisabled(month)}\n today={viewYear === new Date().getFullYear() && month === new Date().getMonth()}\n autofocus={autofocusMonth === month}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (month: number) => {\n return !!(month === selectedDate?.getMonth() && viewYear === selectedDate?.getFullYear());\n };\n\n const isThisMonth = (month: number) => {\n return viewYear === new Date().getFullYear() && month === new Date().getMonth();\n };\n\n const isDisabled = (month: number) => {\n const date = new Date(viewYear, month);\n return !!(\n (min && date < new Date(min.getFullYear(), min.getMonth())) ||\n (max && date > new Date(max.getFullYear(), max.getMonth()))\n );\n };\n\n const autofocusMonth = (() => {\n const months = Array.from({ length: ROWS * COLS }, (_, index) => index);\n return getFocusableTime({ isActive, isNow: isThisMonth, isDisabled, timeSpan: months });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar np-text-body-default-bold m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default MonthCalendarTable;\n"],"names":["ROWS","COLS","MONTH_ONLY_FORMAT","month","MonthCalendarTable","selectedDate","min","max","viewYear","placeholder","onSelect","locale","useIntl","getLink","_jsx","TableLink","item","type","title","formatDate","Date","active","isActive","disabled","isDisabled","today","getFullYear","getMonth","autofocus","autofocusMonth","onClick","isThisMonth","date","months","Array","from","length","_","index","getFocusableTime","isNow","timeSpan","_jsxs","className","children","colSpan","rowIndex","colIndex"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarTable.mjs","sources":["../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface MonthCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"MonthCalendarTable.mjs","sources":["../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface MonthCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: (date: number) => void;\n}\n\nconst ROWS = 3;\nconst COLS = 4;\nconst MONTH_ONLY_FORMAT: Intl.DateTimeFormatOptions = { month: 'short' };\n\nconst MonthCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: MonthCalendarTableProps) => {\n const { locale } = useIntl();\n\n const getLink = (month: number) => {\n return (\n <TableLink\n item={month}\n type=\"month\"\n title={formatDate(new Date(viewYear, month), locale, MONTH_ONLY_FORMAT)}\n active={isActive(month)}\n disabled={isDisabled(month)}\n today={viewYear === new Date().getFullYear() && month === new Date().getMonth()}\n autofocus={autofocusMonth === month}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (month: number) => {\n return !!(month === selectedDate?.getMonth() && viewYear === selectedDate?.getFullYear());\n };\n\n const isThisMonth = (month: number) => {\n return viewYear === new Date().getFullYear() && month === new Date().getMonth();\n };\n\n const isDisabled = (month: number) => {\n const date = new Date(viewYear, month);\n return !!(\n (min && date < new Date(min.getFullYear(), min.getMonth())) ||\n (max && date > new Date(max.getFullYear(), max.getMonth()))\n );\n };\n\n const autofocusMonth = (() => {\n const months = Array.from({ length: ROWS * COLS }, (_, index) => index);\n return getFocusableTime({ isActive, isNow: isThisMonth, isDisabled, timeSpan: months });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar np-text-body-default-bold m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default MonthCalendarTable;\n"],"names":["ROWS","COLS","MONTH_ONLY_FORMAT","month","MonthCalendarTable","selectedDate","min","max","viewYear","placeholder","onSelect","locale","useIntl","getLink","_jsx","TableLink","item","type","title","formatDate","Date","active","isActive","disabled","isDisabled","today","getFullYear","getMonth","autofocus","autofocusMonth","onClick","isThisMonth","date","months","Array","from","length","_","index","getFocusableTime","isNow","timeSpan","_jsxs","className","children","colSpan","rowIndex","colIndex"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendar.js","sources":["../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport YearCalendarTable from './table';\n\ninterface YearCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"YearCalendar.js","sources":["../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport YearCalendarTable from './table';\n\ninterface YearCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: () => void;\n onViewDateUpdate: (date: { year: number }) => void;\n}\n\nclass YearCalendar extends PureComponent<YearCalendarProps> {\n onYearSelect = (year: number) => {\n this.props.onViewDateUpdate({ year });\n this.props.onSelect();\n };\n\n selectPreviousYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 20 });\n };\n\n selectNextYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 20 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n intl: { formatMessage },\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.twentyYears)}\n onPreviousClick={this.selectPreviousYears}\n onNextClick={this.selectNextYears}\n />\n <YearCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onYearSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(YearCalendar);\n"],"names":["YearCalendar","PureComponent","onYearSelect","year","props","onViewDateUpdate","onSelect","selectPreviousYears","viewYear","selectNextYears","render","selectedDate","min","max","placeholder","intl","formatMessage","_jsxs","_Fragment","children","_jsx","DateHeader","dateMode","messages","twentyYears","onPreviousClick","onNextClick","YearCalendarTable","injectIntl"],"mappings":";;;;;;;;;;;qBAkBA,MAAMA,YAAa,SAAQC,mBAAgC,CAAA;EACzDC,YAAY,GAAIC,IAAY,IAAI;AAC9B,IAAA,IAAI,CAACC,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA;AAAI,KAAE,CAAC;AACrC,IAAA,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE;EACvB,CAAC;EAEDC,mBAAmB,GAAGA,MAAK;AACzB,IAAA,IAAI,CAACH,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA,IAAI,EAAE,IAAI,CAACC,KAAK,CAACI,QAAQ,GAAG;AAAE,KAAE,CAAC;EACjE,CAAC;EAEDC,eAAe,GAAGA,MAAK;AACrB,IAAA,IAAI,CAACL,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA,IAAI,EAAE,IAAI,CAACC,KAAK,CAACI,QAAQ,GAAG;AAAE,KAAE,CAAC;EACjE,CAAC;AAEDE,EAAAA,MAAMA,GAAA;IACJ,MAAM;MACJC,YAAY;MACZC,GAAG;MACHC,GAAG;MACHL,QAAQ;MACRM,WAAW;AACXC,MAAAA,IAAI,EAAE;AAAEC,QAAAA;AAAa;KACtB,GAAG,IAAI,CAACZ,KAAK;IACd,oBACEa,eAAA,CAAAC,mBAAA,EAAA;MAAAC,QAAA,EAAA,cACEC,cAAA,CAACC,kBAAU,EAAA;AACTC,QAAAA,QAAQ,EAAEN,aAAa,CAACO,8BAAQ,CAACC,WAAW,CAAE;QAC9CC,eAAe,EAAE,IAAI,CAAClB,mBAAoB;QAC1CmB,WAAW,EAAE,IAAI,CAACjB;AAAgB,OAAA,CAEpC,eAAAW,cAAA,CAACO,yBAAiB,EAAA;AAChBhB,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,GAAG,EAAEA,GAAI;AACTC,QAAAA,GAAG,EAAEA,GAAI;AACTL,QAAAA,QAAQ,EAAEA,QAAS;AACnBM,QAAAA,WAAW,EAAEA,WAAY;QACzBR,QAAQ,EAAE,IAAI,CAACJ;AAAa,OAAA,CAEhC;AAAA,KAAA,CAAG;AAEP,EAAA;AACD;AAED,mBAAe0B,oBAAU,CAAC5B,cAAY,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendar.mjs","sources":["../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport YearCalendarTable from './table';\n\ninterface YearCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"YearCalendar.mjs","sources":["../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"sourcesContent":["import { PureComponent } from 'react';\nimport { injectIntl, WrappedComponentProps } from 'react-intl';\n\nimport messages from '../CalendarInput.messages';\nimport DateHeader from '../dateHeader';\n\nimport YearCalendarTable from './table';\n\ninterface YearCalendarProps extends WrappedComponentProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: () => void;\n onViewDateUpdate: (date: { year: number }) => void;\n}\n\nclass YearCalendar extends PureComponent<YearCalendarProps> {\n onYearSelect = (year: number) => {\n this.props.onViewDateUpdate({ year });\n this.props.onSelect();\n };\n\n selectPreviousYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear - 20 });\n };\n\n selectNextYears = () => {\n this.props.onViewDateUpdate({ year: this.props.viewYear + 20 });\n };\n\n render() {\n const {\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n intl: { formatMessage },\n } = this.props;\n return (\n <>\n <DateHeader\n dateMode={formatMessage(messages.twentyYears)}\n onPreviousClick={this.selectPreviousYears}\n onNextClick={this.selectNextYears}\n />\n <YearCalendarTable\n selectedDate={selectedDate}\n min={min}\n max={max}\n viewYear={viewYear}\n placeholder={placeholder}\n onSelect={this.onYearSelect}\n />\n </>\n );\n }\n}\n\nexport default injectIntl(YearCalendar);\n"],"names":["YearCalendar","PureComponent","onYearSelect","year","props","onViewDateUpdate","onSelect","selectPreviousYears","viewYear","selectNextYears","render","selectedDate","min","max","placeholder","intl","formatMessage","_jsxs","_Fragment","children","_jsx","DateHeader","dateMode","messages","twentyYears","onPreviousClick","onNextClick","YearCalendarTable","injectIntl"],"mappings":";;;;;;;AAkBA,MAAMA,YAAa,SAAQC,aAAgC,CAAA;EACzDC,YAAY,GAAIC,IAAY,IAAI;AAC9B,IAAA,IAAI,CAACC,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA;AAAI,KAAE,CAAC;AACrC,IAAA,IAAI,CAACC,KAAK,CAACE,QAAQ,EAAE;EACvB,CAAC;EAEDC,mBAAmB,GAAGA,MAAK;AACzB,IAAA,IAAI,CAACH,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA,IAAI,EAAE,IAAI,CAACC,KAAK,CAACI,QAAQ,GAAG;AAAE,KAAE,CAAC;EACjE,CAAC;EAEDC,eAAe,GAAGA,MAAK;AACrB,IAAA,IAAI,CAACL,KAAK,CAACC,gBAAgB,CAAC;AAAEF,MAAAA,IAAI,EAAE,IAAI,CAACC,KAAK,CAACI,QAAQ,GAAG;AAAE,KAAE,CAAC;EACjE,CAAC;AAEDE,EAAAA,MAAMA,GAAA;IACJ,MAAM;MACJC,YAAY;MACZC,GAAG;MACHC,GAAG;MACHL,QAAQ;MACRM,WAAW;AACXC,MAAAA,IAAI,EAAE;AAAEC,QAAAA;AAAa;KACtB,GAAG,IAAI,CAACZ,KAAK;IACd,oBACEa,IAAA,CAAAC,QAAA,EAAA;MAAAC,QAAA,EAAA,cACEC,GAAA,CAACC,UAAU,EAAA;AACTC,QAAAA,QAAQ,EAAEN,aAAa,CAACO,QAAQ,CAACC,WAAW,CAAE;QAC9CC,eAAe,EAAE,IAAI,CAAClB,mBAAoB;QAC1CmB,WAAW,EAAE,IAAI,CAACjB;AAAgB,OAAA,CAEpC,eAAAW,GAAA,CAACO,iBAAiB,EAAA;AAChBhB,QAAAA,YAAY,EAAEA,YAAa;AAC3BC,QAAAA,GAAG,EAAEA,GAAI;AACTC,QAAAA,GAAG,EAAEA,GAAI;AACTL,QAAAA,QAAQ,EAAEA,QAAS;AACnBM,QAAAA,WAAW,EAAEA,WAAY;QACzBR,QAAQ,EAAE,IAAI,CAACJ;AAAa,OAAA,CAEhC;AAAA,KAAA,CAAG;AAEP,EAAA;AACD;AAED,qBAAe0B,UAAU,CAAC5B,YAAY,CAAC;;;;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendarTable.js","sources":["../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface YearCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"YearCalendarTable.js","sources":["../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface YearCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: (year: number) => void;\n}\n\nconst ROWS = 5;\nconst COLS = 4;\nconst YEAR_ONLY_FORMAT: Intl.DateTimeFormatOptions = { year: 'numeric' };\n\nconst YearCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: YearCalendarTableProps) => {\n const { locale } = useIntl();\n const startYear = viewYear - (viewYear % 20);\n const getLink = (year: number) => {\n return (\n <TableLink\n item={year}\n type=\"year\"\n title={formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT)}\n active={isActive(year)}\n disabled={isDisabled(year)}\n today={isThisYear(year)}\n autofocus={autofocusYear === year}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (year: number) => {\n return !!(year === selectedDate?.getFullYear());\n };\n\n const isThisYear = (year: number) => {\n return year === new Date().getFullYear();\n };\n\n const isDisabled = (year: number) => {\n return !!((min && year < min.getFullYear()) || (max && year > max.getFullYear()));\n };\n\n const autofocusYear = (() => {\n const years = Array.from({ length: ROWS * COLS }, (_, index) => startYear + index);\n return getFocusableTime({ isActive, isNow: isThisYear, isDisabled, timeSpan: years });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(startYear + rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default YearCalendarTable;\n"],"names":["ROWS","COLS","YEAR_ONLY_FORMAT","year","YearCalendarTable","selectedDate","min","max","viewYear","placeholder","onSelect","locale","useIntl","startYear","getLink","_jsx","TableLink","item","type","title","formatDate","Date","active","isActive","disabled","isDisabled","today","isThisYear","autofocus","autofocusYear","onClick","getFullYear","years","Array","from","length","_","index","getFocusableTime","isNow","timeSpan","_jsxs","className","children","colSpan","rowIndex","colIndex"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendarTable.mjs","sources":["../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface YearCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder
|
|
1
|
+
{"version":3,"file":"YearCalendarTable.mjs","sources":["../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"sourcesContent":["import { formatDate } from '@transferwise/formatting';\nimport { useIntl } from 'react-intl';\n\nimport { getFocusableTime } from '../../getFocusableTime/getFocusableTime';\nimport TableLink from '../../tableLink';\n\ninterface YearCalendarTableProps {\n selectedDate: Date | null;\n min: Date | null;\n max: Date | null;\n viewYear: number;\n placeholder?: string;\n onSelect: (year: number) => void;\n}\n\nconst ROWS = 5;\nconst COLS = 4;\nconst YEAR_ONLY_FORMAT: Intl.DateTimeFormatOptions = { year: 'numeric' };\n\nconst YearCalendarTable = ({\n selectedDate,\n min,\n max,\n viewYear,\n placeholder,\n onSelect,\n}: YearCalendarTableProps) => {\n const { locale } = useIntl();\n const startYear = viewYear - (viewYear % 20);\n const getLink = (year: number) => {\n return (\n <TableLink\n item={year}\n type=\"year\"\n title={formatDate(new Date(year, 0), locale, YEAR_ONLY_FORMAT)}\n active={isActive(year)}\n disabled={isDisabled(year)}\n today={isThisYear(year)}\n autofocus={autofocusYear === year}\n onClick={onSelect}\n />\n );\n };\n\n const isActive = (year: number) => {\n return !!(year === selectedDate?.getFullYear());\n };\n\n const isThisYear = (year: number) => {\n return year === new Date().getFullYear();\n };\n\n const isDisabled = (year: number) => {\n return !!((min && year < min.getFullYear()) || (max && year > max.getFullYear()));\n };\n\n const autofocusYear = (() => {\n const years = Array.from({ length: ROWS * COLS }, (_, index) => startYear + index);\n return getFocusableTime({ isActive, isNow: isThisYear, isDisabled, timeSpan: years });\n })();\n\n return (\n <table className=\"table table-condensed table-bordered tw-date-lookup-calendar m-b-0\">\n <thead className=\"sr-only\">\n <tr>\n <th colSpan={COLS}>{placeholder}</th>\n </tr>\n </thead>\n <tbody>\n {Array.from({ length: ROWS }, (_, rowIndex) => (\n <tr key={rowIndex}>\n {Array.from({ length: COLS }, (_, colIndex) => (\n <td key={colIndex}>{getLink(startYear + rowIndex * COLS + colIndex)}</td>\n ))}\n </tr>\n ))}\n </tbody>\n </table>\n );\n};\n\nexport default YearCalendarTable;\n"],"names":["ROWS","COLS","YEAR_ONLY_FORMAT","year","YearCalendarTable","selectedDate","min","max","viewYear","placeholder","onSelect","locale","useIntl","startYear","getLink","_jsx","TableLink","item","type","title","formatDate","Date","active","isActive","disabled","isDisabled","today","isThisYear","autofocus","autofocusYear","onClick","getFullYear","years","Array","from","length","_","index","getFocusableTime","isNow","timeSpan","_jsxs","className","children","colSpan","rowIndex","colIndex"],"mappings":"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"}
|
|
@@ -146,7 +146,8 @@ class DateLookup extends React.PureComponent {
|
|
|
146
146
|
value,
|
|
147
147
|
min,
|
|
148
148
|
max,
|
|
149
|
-
monthFormat
|
|
149
|
+
monthFormat,
|
|
150
|
+
placeholder
|
|
150
151
|
} = this.props;
|
|
151
152
|
return /*#__PURE__*/jsxRuntime.jsx("div", {
|
|
152
153
|
className: "p-a-1",
|
|
@@ -155,6 +156,7 @@ class DateLookup extends React.PureComponent {
|
|
|
155
156
|
min: min,
|
|
156
157
|
max: max,
|
|
157
158
|
monthFormat: monthFormat,
|
|
159
|
+
placeholder: placeholder,
|
|
158
160
|
onChange: this.handleDateChange,
|
|
159
161
|
onSelect: this.handleDateSelect
|
|
160
162
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateLookup.js","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\nimport CalendarInput from '../calendarInput';\nimport {\n Size,\n MonthFormat,\n Position,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n originalDate: Date | null;\n open: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n originalDate: null,\n open: false,\n };\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n }\n\n componentWillUnmount() {\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowDown':\n if (!open) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n handleDateChange = (date: Date | null) => {\n this.setState(\n (state) => {\n const originalDate = state.originalDate ?? this.props.value;\n return { originalDate };\n },\n () => {\n this.props.onChange(date);\n },\n );\n };\n\n handleDateSelect = (date: Date) => {\n this.props.onChange(date);\n this.close();\n this.focusOn('.btn');\n };\n\n getCalendar = () => {\n const { value, min, max, monthFormat } = this.props;\n return (\n <div className=\"p-a-1\">\n <CalendarInput\n value={value}\n min={min}\n max={max}\n monthFormat={monthFormat}\n onChange={this.handleDateChange}\n onSelect={this.handleDateSelect}\n />\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className={clsx('input-group', disabled && 'disabled')}\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={value}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","constructor","props","state","originalDate","open","componentDidUpdate","previousProps","getTime","focusOn","componentWillUnmount","setState","onFocus","discard","onChange","close","onBlur","handleKeyDown","event","key","preventDefault","preferredElement","fallbackElement","current","querySelector","focus","handleDateChange","date","handleDateSelect","getCalendar","_jsx","className","children","CalendarInput","onSelect","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","clsx","onKeyDown","_jsxs","OverlayIdProvider","DateTrigger","selectedDate","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateLookup.js","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\nimport CalendarInput from '../calendarInput';\nimport {\n Size,\n MonthFormat,\n Position,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n originalDate: Date | null;\n open: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n originalDate: null,\n open: false,\n };\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n }\n\n componentWillUnmount() {\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowDown':\n if (!open) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n handleDateChange = (date: Date | null) => {\n this.setState(\n (state) => {\n const originalDate = state.originalDate ?? this.props.value;\n return { originalDate };\n },\n () => {\n this.props.onChange(date);\n },\n );\n };\n\n handleDateSelect = (date: Date) => {\n this.props.onChange(date);\n this.close();\n this.focusOn('.btn');\n };\n\n getCalendar = () => {\n const { value, min, max, monthFormat, placeholder } = this.props;\n return (\n <div className=\"p-a-1\">\n <CalendarInput\n value={value}\n min={min}\n max={max}\n monthFormat={monthFormat}\n placeholder={placeholder}\n onChange={this.handleDateChange}\n onSelect={this.handleDateSelect}\n />\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className={clsx('input-group', disabled && 'disabled')}\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={value}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","constructor","props","state","originalDate","open","componentDidUpdate","previousProps","getTime","focusOn","componentWillUnmount","setState","onFocus","discard","onChange","close","onBlur","handleKeyDown","event","key","preventDefault","preferredElement","fallbackElement","current","querySelector","focus","handleDateChange","date","handleDateSelect","getCalendar","_jsx","className","children","CalendarInput","onSelect","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","clsx","onKeyDown","_jsxs","OverlayIdProvider","DateTrigger","selectedDate","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
@@ -142,7 +142,8 @@ class DateLookup extends PureComponent {
|
|
|
142
142
|
value,
|
|
143
143
|
min,
|
|
144
144
|
max,
|
|
145
|
-
monthFormat
|
|
145
|
+
monthFormat,
|
|
146
|
+
placeholder
|
|
146
147
|
} = this.props;
|
|
147
148
|
return /*#__PURE__*/jsx("div", {
|
|
148
149
|
className: "p-a-1",
|
|
@@ -151,6 +152,7 @@ class DateLookup extends PureComponent {
|
|
|
151
152
|
min: min,
|
|
152
153
|
max: max,
|
|
153
154
|
monthFormat: monthFormat,
|
|
155
|
+
placeholder: placeholder,
|
|
154
156
|
onChange: this.handleDateChange,
|
|
155
157
|
onSelect: this.handleDateSelect
|
|
156
158
|
})
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateLookup.mjs","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\nimport CalendarInput from '../calendarInput';\nimport {\n Size,\n MonthFormat,\n Position,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n originalDate: Date | null;\n open: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n originalDate: null,\n open: false,\n };\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n }\n\n componentWillUnmount() {\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowDown':\n if (!open) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n handleDateChange = (date: Date | null) => {\n this.setState(\n (state) => {\n const originalDate = state.originalDate ?? this.props.value;\n return { originalDate };\n },\n () => {\n this.props.onChange(date);\n },\n );\n };\n\n handleDateSelect = (date: Date) => {\n this.props.onChange(date);\n this.close();\n this.focusOn('.btn');\n };\n\n getCalendar = () => {\n const { value, min, max, monthFormat } = this.props;\n return (\n <div className=\"p-a-1\">\n <CalendarInput\n value={value}\n min={min}\n max={max}\n monthFormat={monthFormat}\n onChange={this.handleDateChange}\n onSelect={this.handleDateSelect}\n />\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className={clsx('input-group', disabled && 'disabled')}\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={value}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","constructor","props","state","originalDate","open","componentDidUpdate","previousProps","getTime","focusOn","componentWillUnmount","setState","onFocus","discard","onChange","close","onBlur","handleKeyDown","event","key","preventDefault","preferredElement","fallbackElement","current","querySelector","focus","handleDateChange","date","handleDateSelect","getCalendar","_jsx","className","children","CalendarInput","onSelect","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","clsx","onKeyDown","_jsxs","OverlayIdProvider","DateTrigger","selectedDate","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DateLookup.mjs","sources":["../../src/dateLookup/DateLookup.tsx"],"sourcesContent":["import { clsx } from 'clsx';\nimport { createRef, PureComponent, KeyboardEvent } from 'react';\nimport CalendarInput from '../calendarInput';\nimport {\n Size,\n MonthFormat,\n Position,\n type SizeSmall,\n type SizeMedium,\n type SizeLarge,\n} from '../common';\nimport ResponsivePanel from '../common/responsivePanel';\nimport { WithInputAttributesProps, withInputAttributes } from '../inputs/contexts';\nimport { OverlayIdProvider } from '../provider/overlay/OverlayIdProvider';\nimport DateTrigger from './dateTrigger';\n\nexport interface DateLookupProps {\n id?: string;\n value: Date | null;\n min?: Date | null;\n max?: Date | null;\n size?: SizeSmall | SizeMedium | SizeLarge;\n placeholder?: string;\n label?: string;\n 'aria-labelledby'?: string;\n monthFormat?: `${MonthFormat}`;\n disabled?: boolean;\n clearable?: boolean;\n onChange: (date: Date | null) => void;\n onFocus?: () => void;\n onBlur?: () => void;\n}\n\ntype DateLookupPropsWithInputAttributes = DateLookupProps & Partial<WithInputAttributesProps>;\n\ninterface DateLookupState {\n originalDate: Date | null;\n open: boolean;\n}\n\nclass DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateLookupState> {\n declare props: DateLookupPropsWithInputAttributes &\n Required<Pick<DateLookupPropsWithInputAttributes, keyof typeof DateLookup.defaultProps>>;\n\n static defaultProps = {\n value: null,\n min: null,\n max: null,\n size: Size.MEDIUM,\n placeholder: '',\n label: '',\n monthFormat: MonthFormat.LONG,\n disabled: false,\n clearable: false,\n } satisfies Partial<DateLookupPropsWithInputAttributes>;\n\n element = createRef<HTMLDivElement>();\n\n constructor(props: DateLookup['props']) {\n super(props);\n this.state = {\n originalDate: null,\n open: false,\n };\n }\n\n componentDidUpdate(previousProps: DateLookupPropsWithInputAttributes) {\n if (this.props.value?.getTime() !== previousProps.value?.getTime() && this.state.open) {\n this.focusOn('.active');\n }\n }\n\n componentWillUnmount() {\n this.setState = () => {};\n }\n\n open = () => {\n const { onFocus } = this.props;\n\n this.setState({ open: true });\n if (onFocus) {\n onFocus();\n }\n };\n\n discard = () => {\n const { originalDate } = this.state;\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n };\n\n close = () => {\n const { onBlur } = this.props;\n this.setState({ open: false, originalDate: null });\n if (onBlur) {\n onBlur();\n }\n };\n\n handleKeyDown = (event: KeyboardEvent<HTMLDivElement>) => {\n const { open, originalDate } = this.state;\n switch (event.key) {\n case 'ArrowLeft':\n case 'ArrowUp':\n case 'ArrowRight':\n case 'ArrowDown':\n if (!open) {\n this.open();\n event.preventDefault();\n }\n break;\n case 'Escape':\n if (originalDate !== null) {\n this.props.onChange(originalDate);\n }\n this.close();\n event.preventDefault();\n break;\n default:\n break;\n }\n };\n\n focusOn = (preferredElement: string, fallbackElement?: string) => {\n const element = this.element.current?.querySelector(preferredElement) as HTMLElement | null;\n if (element) {\n element.focus();\n } else if (fallbackElement) {\n this.focusOn(fallbackElement);\n }\n };\n\n handleDateChange = (date: Date | null) => {\n this.setState(\n (state) => {\n const originalDate = state.originalDate ?? this.props.value;\n return { originalDate };\n },\n () => {\n this.props.onChange(date);\n },\n );\n };\n\n handleDateSelect = (date: Date) => {\n this.props.onChange(date);\n this.close();\n this.focusOn('.btn');\n };\n\n getCalendar = () => {\n const { value, min, max, monthFormat, placeholder } = this.props;\n return (\n <div className=\"p-a-1\">\n <CalendarInput\n value={value}\n min={min}\n max={max}\n monthFormat={monthFormat}\n placeholder={placeholder}\n onChange={this.handleDateChange}\n onSelect={this.handleDateSelect}\n />\n </div>\n );\n };\n\n handleClear = () => {\n this.props.onChange(null);\n this.focusOn('.np-date-trigger');\n };\n\n render() {\n const { open } = this.state;\n\n const {\n inputAttributes,\n id: idProp,\n 'aria-labelledby': ariaLabelledByProp,\n size,\n placeholder,\n label,\n monthFormat,\n disabled,\n clearable,\n value,\n } = this.props;\n const id = idProp ?? inputAttributes?.id;\n const ariaLabelledBy = ariaLabelledByProp ?? inputAttributes?.['aria-labelledby'];\n\n return (\n <div\n ref={this.element}\n aria-labelledby={id}\n aria-invalid={inputAttributes?.['aria-invalid']}\n aria-describedby={inputAttributes?.['aria-describedby']}\n className={clsx('input-group', disabled && 'disabled')}\n onKeyDown={this.handleKeyDown}\n >\n <OverlayIdProvider open={open}>\n <DateTrigger\n id={id}\n ariaLabelledBy={ariaLabelledBy}\n selectedDate={value}\n size={size}\n placeholder={placeholder}\n label={label}\n monthFormat={monthFormat}\n disabled={disabled || false}\n onClick={this.open}\n onClear={!disabled && clearable && value ? this.handleClear : undefined}\n />\n <ResponsivePanel\n anchorRef={this.element}\n open={open}\n className=\"tw-date-lookup-menu\"\n position={Position.BOTTOM}\n considerHeight\n onClose={this.discard}\n >\n {this.getCalendar()}\n </ResponsivePanel>\n </OverlayIdProvider>\n </div>\n );\n }\n}\n\nexport const DateLookupWithoutInputAttributes = DateLookup;\n\nconst WrappedDateLookup = withInputAttributes(\n DateLookup as React.ComponentType<DateLookupPropsWithInputAttributes>,\n { nonLabelable: true },\n);\nWrappedDateLookup.displayName = 'DateLookup';\n\nexport default WrappedDateLookup;\n"],"names":["DateLookup","PureComponent","defaultProps","value","min","max","size","Size","MEDIUM","placeholder","label","monthFormat","MonthFormat","LONG","disabled","clearable","element","createRef","constructor","props","state","originalDate","open","componentDidUpdate","previousProps","getTime","focusOn","componentWillUnmount","setState","onFocus","discard","onChange","close","onBlur","handleKeyDown","event","key","preventDefault","preferredElement","fallbackElement","current","querySelector","focus","handleDateChange","date","handleDateSelect","getCalendar","_jsx","className","children","CalendarInput","onSelect","handleClear","render","inputAttributes","id","idProp","ariaLabelledByProp","ariaLabelledBy","ref","clsx","onKeyDown","_jsxs","OverlayIdProvider","DateTrigger","selectedDate","onClick","onClear","undefined","ResponsivePanel","anchorRef","position","Position","BOTTOM","considerHeight","onClose","WrappedDateLookup","withInputAttributes","nonLabelable","displayName"],"mappings":"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"}
|
|
@@ -4,9 +4,10 @@ export interface CalendarInputProps {
|
|
|
4
4
|
min?: Date | null;
|
|
5
5
|
max?: Date | null;
|
|
6
6
|
monthFormat?: `${MonthFormat}`;
|
|
7
|
+
placeholder?: string;
|
|
7
8
|
onChange: (date: Date | null) => void;
|
|
8
9
|
onSelect?: (date: Date) => void;
|
|
9
10
|
}
|
|
10
|
-
declare const CalendarInput: ({ value, min: minProp, max: maxProp, monthFormat, onChange, onSelect, }: CalendarInputProps) => import("react").JSX.Element;
|
|
11
|
+
declare const CalendarInput: ({ value, min: minProp, max: maxProp, monthFormat, placeholder, onChange, onSelect, }: CalendarInputProps) => import("react").JSX.Element;
|
|
11
12
|
export default CalendarInput;
|
|
12
13
|
//# sourceMappingURL=CalendarInput.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CalendarInput.d.ts","sourceRoot":"","sources":["../../../src/calendarInput/CalendarInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAC/B,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACjC;AAED,QAAA,MAAM,aAAa,GAAI,
|
|
1
|
+
{"version":3,"file":"CalendarInput.d.ts","sourceRoot":"","sources":["../../../src/calendarInput/CalendarInput.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AAOxC,MAAM,WAAW,kBAAkB;IACjC,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,WAAW,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAC/B,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACjC;AAED,QAAA,MAAM,aAAa,GAAI,sFAQpB,kBAAkB,gCAuIpB,CAAC;AAEF,eAAe,aAAa,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendar.d.ts","sourceRoot":"","sources":["../../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAO/D,UAAU,kBAAmB,SAAQ,qBAAqB;IACxD,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthCalendar.d.ts","sourceRoot":"","sources":["../../../../src/calendarInput/monthCalendar/MonthCalendar.tsx"],"names":[],"mappings":"AAEA,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAO/D,UAAU,kBAAmB,SAAQ,qBAAqB;IACxD,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,YAAY,EAAE,MAAM,IAAI,CAAC;IACzB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACrE;;;;AAgDD,wBAAyC"}
|
|
@@ -3,7 +3,7 @@ interface MonthCalendarTableProps {
|
|
|
3
3
|
min: Date | null;
|
|
4
4
|
max: Date | null;
|
|
5
5
|
viewYear: number;
|
|
6
|
-
placeholder
|
|
6
|
+
placeholder?: string;
|
|
7
7
|
onSelect: (date: number) => void;
|
|
8
8
|
}
|
|
9
9
|
declare const MonthCalendarTable: ({ selectedDate, min, max, viewYear, placeholder, onSelect, }: MonthCalendarTableProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MonthCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/calendarInput/monthCalendar/table/MonthCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,uBAAuB;IAC/B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAMD,QAAA,MAAM,kBAAkB,GAAI,8DAOzB,uBAAuB,gCAyDzB,CAAC;AAEF,eAAe,kBAAkB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendar.d.ts","sourceRoot":"","sources":["../../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAO/D,UAAU,iBAAkB,SAAQ,qBAAqB;IACvD,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"YearCalendar.d.ts","sourceRoot":"","sources":["../../../../src/calendarInput/yearCalendar/YearCalendar.tsx"],"names":[],"mappings":"AACA,OAAO,EAAc,qBAAqB,EAAE,MAAM,YAAY,CAAC;AAO/D,UAAU,iBAAkB,SAAQ,qBAAqB;IACvD,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,EAAE,CAAC,IAAI,EAAE;QAAE,IAAI,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;CACpD;;;;AA6CD,wBAAwC"}
|
|
@@ -3,7 +3,7 @@ interface YearCalendarTableProps {
|
|
|
3
3
|
min: Date | null;
|
|
4
4
|
max: Date | null;
|
|
5
5
|
viewYear: number;
|
|
6
|
-
placeholder
|
|
6
|
+
placeholder?: string;
|
|
7
7
|
onSelect: (year: number) => void;
|
|
8
8
|
}
|
|
9
9
|
declare const YearCalendarTable: ({ selectedDate, min, max, viewYear, placeholder, onSelect, }: YearCalendarTableProps) => import("react").JSX.Element;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"YearCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"YearCalendarTable.d.ts","sourceRoot":"","sources":["../../../../../src/calendarInput/yearCalendar/table/YearCalendarTable.tsx"],"names":[],"mappings":"AAMA,UAAU,sBAAsB;IAC9B,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,GAAG,EAAE,IAAI,GAAG,IAAI,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;CAClC;AAMD,QAAA,MAAM,iBAAiB,GAAI,8DAOxB,sBAAsB,gCAqDxB,CAAC;AAEF,eAAe,iBAAiB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DateLookup.d.ts","sourceRoot":"","sources":["../../../src/dateLookup/DateLookup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EACL,IAAI,EACJ,WAAW,EAEX,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAuB,MAAM,oBAAoB,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,KAAK,kCAAkC,GAAG,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAE9F,UAAU,eAAe;IACvB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,cAAM,UAAW,SAAQ,aAAa,CAAC,kCAAkC,EAAE,eAAe,CAAC;IACjF,KAAK,EAAE,kCAAkC,GAC/C,QAAQ,CAAC,IAAI,CAAC,kCAAkC,EAAE,MAAM,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3F,MAAM,CAAC,YAAY;;;;;;;;;;MAUqC;IAExD,OAAO,4CAA+B;gBAE1B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;IAQtC,kBAAkB,CAAC,aAAa,EAAE,kCAAkC;IAMpE,oBAAoB;IAIpB,IAAI,aAOF;IAEF,OAAO,aAML;IAEF,KAAK,aAMH;IAEF,aAAa,GAAI,OAAO,aAAa,CAAC,cAAc,CAAC,UAsBnD;IAEF,OAAO,GAAI,kBAAkB,MAAM,EAAE,kBAAkB,MAAM,UAO3D;IAEF,gBAAgB,GAAI,MAAM,IAAI,GAAG,IAAI,UAUnC;IAEF,gBAAgB,GAAI,MAAM,IAAI,UAI5B;IAEF,WAAW,
|
|
1
|
+
{"version":3,"file":"DateLookup.d.ts","sourceRoot":"","sources":["../../../src/dateLookup/DateLookup.tsx"],"names":[],"mappings":"AACA,OAAO,EAAa,aAAa,EAAE,aAAa,EAAE,MAAM,OAAO,CAAC;AAEhE,OAAO,EACL,IAAI,EACJ,WAAW,EAEX,KAAK,SAAS,EACd,KAAK,UAAU,EACf,KAAK,SAAS,EACf,MAAM,WAAW,CAAC;AAEnB,OAAO,EAAE,wBAAwB,EAAuB,MAAM,oBAAoB,CAAC;AAInF,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,IAAI,GAAG,IAAI,CAAC;IACnB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,GAAG,CAAC,EAAE,IAAI,GAAG,IAAI,CAAC;IAClB,IAAI,CAAC,EAAE,SAAS,GAAG,UAAU,GAAG,SAAS,CAAC;IAC1C,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,WAAW,CAAC,EAAE,GAAG,WAAW,EAAE,CAAC;IAC/B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,EAAE,CAAC,IAAI,EAAE,IAAI,GAAG,IAAI,KAAK,IAAI,CAAC;IACtC,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,MAAM,CAAC,EAAE,MAAM,IAAI,CAAC;CACrB;AAED,KAAK,kCAAkC,GAAG,eAAe,GAAG,OAAO,CAAC,wBAAwB,CAAC,CAAC;AAE9F,UAAU,eAAe;IACvB,YAAY,EAAE,IAAI,GAAG,IAAI,CAAC;IAC1B,IAAI,EAAE,OAAO,CAAC;CACf;AAED,cAAM,UAAW,SAAQ,aAAa,CAAC,kCAAkC,EAAE,eAAe,CAAC;IACjF,KAAK,EAAE,kCAAkC,GAC/C,QAAQ,CAAC,IAAI,CAAC,kCAAkC,EAAE,MAAM,OAAO,UAAU,CAAC,YAAY,CAAC,CAAC,CAAC;IAE3F,MAAM,CAAC,YAAY;;;;;;;;;;MAUqC;IAExD,OAAO,4CAA+B;gBAE1B,KAAK,EAAE,UAAU,CAAC,OAAO,CAAC;IAQtC,kBAAkB,CAAC,aAAa,EAAE,kCAAkC;IAMpE,oBAAoB;IAIpB,IAAI,aAOF;IAEF,OAAO,aAML;IAEF,KAAK,aAMH;IAEF,aAAa,GAAI,OAAO,aAAa,CAAC,cAAc,CAAC,UAsBnD;IAEF,OAAO,GAAI,kBAAkB,MAAM,EAAE,kBAAkB,MAAM,UAO3D;IAEF,gBAAgB,GAAI,MAAM,IAAI,GAAG,IAAI,UAUnC;IAEF,gBAAgB,GAAI,MAAM,IAAI,UAI5B;IAEF,WAAW,oCAeT;IAEF,WAAW,aAGT;IAEF,MAAM;CAsDP;AAED,eAAO,MAAM,gCAAgC,mBAAa,CAAC;AAE3D,QAAA,MAAM,iBAAiB;;;CAGtB,CAAC;AAGF,eAAe,iBAAiB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@transferwise/components",
|
|
3
|
-
"version": "0.0.0-experimental-
|
|
3
|
+
"version": "0.0.0-experimental-1fbd7b1",
|
|
4
4
|
"description": "Neptune React components",
|
|
5
5
|
"license": "Apache-2.0",
|
|
6
6
|
"repository": {
|
|
@@ -93,8 +93,8 @@
|
|
|
93
93
|
"storybook-addon-test-codegen": "^3.0.1",
|
|
94
94
|
"@transferwise/less-config": "3.1.2",
|
|
95
95
|
"@transferwise/neptune-css": "14.28.0",
|
|
96
|
-
"@wise/
|
|
97
|
-
"@wise/
|
|
96
|
+
"@wise/components-theming": "1.10.2",
|
|
97
|
+
"@wise/wds-configs": "0.0.0"
|
|
98
98
|
},
|
|
99
99
|
"peerDependencies": {
|
|
100
100
|
"@transferwise/icons": "^3 || ^4",
|
|
@@ -12,6 +12,7 @@ export interface CalendarInputProps {
|
|
|
12
12
|
min?: Date | null;
|
|
13
13
|
max?: Date | null;
|
|
14
14
|
monthFormat?: `${MonthFormat}`;
|
|
15
|
+
placeholder?: string;
|
|
15
16
|
onChange: (date: Date | null) => void;
|
|
16
17
|
onSelect?: (date: Date) => void;
|
|
17
18
|
}
|
|
@@ -21,6 +22,7 @@ const CalendarInput = ({
|
|
|
21
22
|
min: minProp = null,
|
|
22
23
|
max: maxProp = null,
|
|
23
24
|
monthFormat = MonthFormat.LONG,
|
|
25
|
+
placeholder,
|
|
24
26
|
onChange,
|
|
25
27
|
onSelect,
|
|
26
28
|
}: CalendarInputProps) => {
|
|
@@ -139,7 +141,7 @@ const CalendarInput = ({
|
|
|
139
141
|
min={min}
|
|
140
142
|
max={max}
|
|
141
143
|
viewYear={viewYear}
|
|
142
|
-
placeholder
|
|
144
|
+
{...(placeholder != null && { placeholder })}
|
|
143
145
|
onSelect={switchToDays}
|
|
144
146
|
onLabelClick={switchToYears}
|
|
145
147
|
onViewDateUpdate={handleViewDateUpdate}
|
|
@@ -151,7 +153,7 @@ const CalendarInput = ({
|
|
|
151
153
|
min={min}
|
|
152
154
|
max={max}
|
|
153
155
|
viewYear={viewYear}
|
|
154
|
-
placeholder
|
|
156
|
+
{...(placeholder != null && { placeholder })}
|
|
155
157
|
onSelect={switchToMonths}
|
|
156
158
|
onViewDateUpdate={handleViewDateUpdate}
|
|
157
159
|
/>
|
|
@@ -12,7 +12,7 @@ interface MonthCalendarProps extends WrappedComponentProps {
|
|
|
12
12
|
min: Date | null;
|
|
13
13
|
max: Date | null;
|
|
14
14
|
viewYear: number;
|
|
15
|
-
placeholder
|
|
15
|
+
placeholder?: string;
|
|
16
16
|
onSelect: () => void;
|
|
17
17
|
onLabelClick: () => void;
|
|
18
18
|
onViewDateUpdate: (date: { year?: number; month?: number }) => void;
|
|
@@ -151,7 +151,7 @@ class DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateL
|
|
|
151
151
|
};
|
|
152
152
|
|
|
153
153
|
getCalendar = () => {
|
|
154
|
-
const { value, min, max, monthFormat } = this.props;
|
|
154
|
+
const { value, min, max, monthFormat, placeholder } = this.props;
|
|
155
155
|
return (
|
|
156
156
|
<div className="p-a-1">
|
|
157
157
|
<CalendarInput
|
|
@@ -159,6 +159,7 @@ class DateLookup extends PureComponent<DateLookupPropsWithInputAttributes, DateL
|
|
|
159
159
|
min={min}
|
|
160
160
|
max={max}
|
|
161
161
|
monthFormat={monthFormat}
|
|
162
|
+
placeholder={placeholder}
|
|
162
163
|
onChange={this.handleDateChange}
|
|
163
164
|
onSelect={this.handleDateSelect}
|
|
164
165
|
/>
|