@pega/cosmos-react-core 4.0.0-dev.15.2 → 4.0.0-dev.15.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/lib/components/Button/index.d.ts +1 -1
- package/lib/components/Button/index.d.ts.map +1 -1
- package/lib/components/Button/index.js +1 -1
- package/lib/components/Button/index.js.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.js +6 -5
- package/lib/components/DateTime/Picker/Calendar.js.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.d.ts +0 -1
- package/lib/components/DateTime/Picker/Calendar.styles.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/Calendar.styles.js +1 -4
- package/lib/components/DateTime/Picker/Calendar.styles.js.map +1 -1
- package/lib/components/DateTime/Picker/DatePicker.d.ts.map +1 -1
- package/lib/components/DateTime/Picker/DatePicker.js +2 -2
- package/lib/components/DateTime/Picker/DatePicker.js.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.d.ts +2 -0
- package/lib/components/FieldGroup/FieldGroupList.d.ts.map +1 -1
- package/lib/components/FieldGroup/FieldGroupList.js +6 -7
- package/lib/components/FieldGroup/FieldGroupList.js.map +1 -1
- package/lib/components/File/FileItem.js +2 -2
- package/lib/components/File/FileItem.js.map +1 -1
- package/lib/components/ListToolbar/ListToolbar.js +1 -1
- package/lib/components/ListToolbar/ListToolbar.js.map +1 -1
- package/lib/components/MenuButton/MenuButton.js +1 -1
- package/lib/components/MenuButton/MenuButton.js.map +1 -1
- package/lib/components/Popover/Popover.styles.js +2 -2
- package/lib/components/Popover/Popover.styles.js.map +1 -1
- package/lib/components/SkipLinks/SkipLinks.d.ts.map +1 -1
- package/lib/components/SkipLinks/SkipLinks.js +1 -2
- package/lib/components/SkipLinks/SkipLinks.js.map +1 -1
- package/lib/hooks/useI18n.d.ts +2 -1
- package/lib/hooks/useI18n.d.ts.map +1 -1
- package/lib/i18n/default.d.ts +2 -1
- package/lib/i18n/default.d.ts.map +1 -1
- package/lib/i18n/default.js +2 -1
- package/lib/i18n/default.js.map +1 -1
- package/lib/i18n/i18n.d.ts +2 -1
- package/lib/i18n/i18n.d.ts.map +1 -1
- package/lib/utils/focusHeadingOrContainer.d.ts +1 -0
- package/lib/utils/focusHeadingOrContainer.d.ts.map +1 -1
- package/lib/utils/focusHeadingOrContainer.js +1 -0
- package/lib/utils/focusHeadingOrContainer.js.map +1 -1
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AACnC,OAAO,EAAE,WAAW,EAAE,MAAM,UAAU,CAAC;AACvC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { default } from './Button';\nexport { ButtonProps } from './Button';\nexport { StyledButton } from './Button';\n"]}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/components/Button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,UAAU,CAAC;AAEnC,OAAO,EAAE,YAAY,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC","sourcesContent":["export { default } from './Button';\nexport { ButtonProps } from './Button';\nexport { StyledButton, StyledButtonLink } from './Button';\n"]}
|
|
@@ -5,8 +5,9 @@ import { CALENDAR_TYPES } from '../Input/local';
|
|
|
5
5
|
import { getCalendarTypeFromLocale, getDateOfISOWeek, getWeek, parseToDate, toUTCDateString } from '../Input/utils';
|
|
6
6
|
import { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n } from '../../../hooks';
|
|
7
7
|
import { cap } from '../../../utils';
|
|
8
|
+
import VisuallyHiddenText from '../../VisuallyHiddenText';
|
|
8
9
|
import { getDaysOfMonth, getLocalizedDays, getWeeksOfMonth } from './utils';
|
|
9
|
-
import { StyledColumnLabel,
|
|
10
|
+
import { StyledColumnLabel, StyledPick, StyledDay, StyledCalendar, StyledWeekGrid, StyledWeekLabel, StyledWeekNumber } from './Calendar.styles';
|
|
10
11
|
const ariaOpts = { day: 'numeric', month: 'long', year: 'numeric' };
|
|
11
12
|
const Calendar = forwardRef(({ selected, current = selected ? new Date(selected.getTime()) : new Date(), selectedRange, showHighlight, mode = 'date', showWeekNumber, calendarType: calendar = CALENDAR_TYPES.ISO_8601, onSelect, onFocus, disabled, min: minProp, max: maxProp }, ref) => {
|
|
12
13
|
const { locale } = useConfiguration();
|
|
@@ -124,7 +125,7 @@ const Calendar = forwardRef(({ selected, current = selected ? new Date(selected.
|
|
|
124
125
|
type: 'dateTimeField'
|
|
125
126
|
});
|
|
126
127
|
const weeks = getWeeksOfMonth(current, calendarType).map(weekNo => {
|
|
127
|
-
return (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledWeekNumber, "aria-hidden": 'true', children: weekNo.toString() }, weekNo), _jsx(
|
|
128
|
+
return (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledWeekNumber, "aria-hidden": 'true', children: weekNo.toString() }, weekNo), _jsx(VisuallyHiddenText, { children: `${displayNames.of('weekOfYear')} ${weekNo.toString()} ${current
|
|
128
129
|
.getUTCFullYear()
|
|
129
130
|
.toString()}` })] }));
|
|
130
131
|
});
|
|
@@ -138,8 +139,8 @@ const Calendar = forwardRef(({ selected, current = selected ? new Date(selected.
|
|
|
138
139
|
onSelect?.(dateOfISOWeek);
|
|
139
140
|
}, children: [`${cap(displayNames.of('weekOfYear'))} `, weekNo.toString()] }, weekNo));
|
|
140
141
|
});
|
|
141
|
-
const weekLabel = mode === 'date' ? (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledWeekLabel, forwardedAs: 'abbr', title: cap(displayNames.of('weekOfYear')), "aria-hidden": 'true', children: cap(displayNamesShort.of('weekOfYear')) }), _jsx(
|
|
142
|
-
const headerLabels = names.map(([name, abbr]) => (_jsxs("th", { role: 'columnheader', children: [_jsx(Text, { as: StyledColumnLabel, forwardedAs: 'abbr', title: name, "aria-hidden": 'true', children: abbr }, name), _jsx(
|
|
142
|
+
const weekLabel = mode === 'date' ? (_jsxs(_Fragment, { children: [_jsx(Text, { as: StyledWeekLabel, forwardedAs: 'abbr', title: cap(displayNames.of('weekOfYear')), "aria-hidden": 'true', children: cap(displayNamesShort.of('weekOfYear')) }), _jsx(VisuallyHiddenText, { children: displayNames.of('weekOfYear') })] })) : (_jsx(Text, { as: StyledWeekLabel, children: cap(displayNames.of('weekOfYear')) }));
|
|
143
|
+
const headerLabels = names.map(([name, abbr]) => (_jsxs("th", { role: 'columnheader', children: [_jsx(Text, { as: StyledColumnLabel, forwardedAs: 'abbr', title: name, "aria-hidden": 'true', children: abbr }, name), _jsx(VisuallyHiddenText, { children: name })] }, name)));
|
|
143
144
|
const splitToWeeks = (resultArray, item, index) => {
|
|
144
145
|
const chunkIndex = Math.floor(index / 7);
|
|
145
146
|
if (!resultArray[chunkIndex]) {
|
|
@@ -167,7 +168,7 @@ const Calendar = forwardRef(({ selected, current = selected ? new Date(selected.
|
|
|
167
168
|
month: 'long',
|
|
168
169
|
year: 'numeric',
|
|
169
170
|
timeZone: 'UTC'
|
|
170
|
-
}), onKeyDown: onKeyDown, "aria-hidden": mode === 'week' ? true : undefined, role: 'grid', children: [_jsx("thead", { children: _jsxs("tr", { children: [showWeekLabel && _jsx("th", { children: weekLabel }), headerLabels] }) }), _jsx("tbody", { children: cells })] }), _jsx(
|
|
171
|
+
}), onKeyDown: onKeyDown, "aria-hidden": mode === 'week' ? true : undefined, role: 'grid', children: [_jsx("thead", { children: _jsxs("tr", { children: [showWeekLabel && _jsx("th", { children: weekLabel }), headerLabels] }) }), _jsx("tbody", { children: cells })] }), _jsx(VisuallyHiddenText, { "aria-live": 'polite', role: 'alert', children: t('calendar_assist') })] }));
|
|
171
172
|
});
|
|
172
173
|
export default Calendar;
|
|
173
174
|
//# sourceMappingURL=Calendar.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.tsx"],"names":[],"mappings":";AAAA,OAAO,EACL,OAAO,EAGP,QAAQ,EACR,UAAU,EAGV,SAAS,EACT,WAAW,EACZ,MAAM,OAAO,CAAC;AAEf,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,EACL,yBAAyB,EACzB,gBAAgB,EAChB,OAAO,EACP,WAAW,EACX,eAAe,EAChB,MAAM,gBAAgB,CAAC;AACxB,OAAO,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,cAAc,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AAG/F,OAAO,EAAE,GAAG,EAAE,MAAM,gBAAgB,CAAC;AAErC,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAC5E,OAAO,EACL,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,SAAS,EACT,cAAc,EACd,cAAc,EACd,eAAe,EACf,gBAAgB,EACjB,MAAM,mBAAmB,CAAC;AAwC3B,MAAM,QAAQ,GAAG,EAAE,GAAG,EAAE,SAAS,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAW,CAAC;AAE7E,MAAM,QAAQ,GAAoD,UAAU,CAC1E,CACE,EACE,QAAQ,EACR,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,EAC9D,aAAa,EACb,aAAa,EACb,IAAI,GAAG,MAAM,EACb,cAAc,EACd,YAAY,EAAE,QAAQ,GAAG,cAAc,CAAC,QAAQ,EAChD,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,GAAG,EAAE,OAAO,EACZ,GAAG,EAAE,OAAO,EACmB,EACjC,GAA0B,EAC1B,EAAE;IACF,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IAEtC,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IACvD,MAAM,GAAG,GAAG,OAAO,CAAC,CAAC,CAAC,WAAW,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC;IAEtD,IAAI,GAAG,YAAY,IAAI;QAAE,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAC1F,IAAI,GAAG,YAAY,IAAI;QAAE,GAAG,CAAC,aAAa,CAAC,GAAG,CAAC,aAAa,EAAE,GAAG,GAAG,CAAC,iBAAiB,EAAE,CAAC,CAAC;IAE1F,MAAM,aAAa,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,cAAc,CAAC;IAC/D,MAAM,CAAC,UAAU,EAAE,aAAa,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IACtD,SAAS,CAAC,GAAG,EAAE;QACb,aAAa,CAAC,OAAO,CAAC,CAAC;IACzB,CAAC,EAAE,CAAC,OAAO,CAAC,cAAc,EAAE,EAAE,OAAO,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC;IAEtD,MAAM,YAAY,GAAG,OAAO,CAC1B,GAAG,EAAE,CAAC,QAAQ,IAAI,yBAAyB,CAAC,MAAM,CAAC,EACnD,CAAC,MAAM,EAAE,QAAQ,CAAC,CACnB,CAAC;IAEF,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,GAAG,QAAQ,EAAQ,CAAC;IAEnE,MAAM,SAAS,GAAG,WAAW,CAC3B,CAAC,CAA6B,EAAE,EAAE;QAChC,IACE,CAAC,IAAI,KAAK,MAAM;YACd,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,EAAE,WAAW,EAAE,YAAY,CAAC;YACrD,CAAC,CAAC,CAAC,SAAS,EAAE,WAAW,CAAC,CAC3B,CAAC,QAAQ,CAAC,CAAC,CAAC,GAAG,CAAC,EACjB;YACA,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,QAAQ,CAAC,CAAC,GAAG,EAAE;gBACb,KAAK,SAAS;oBACZ,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,WAAW;oBACd,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,YAAY;oBACf,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnD,MAAM;gBACR,KAAK,WAAW;oBACd,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,UAAU,EAAE,GAAG,CAAC,CAAC,CAAC;oBACnD,MAAM;gBACR,QAAQ;aACT;YACD,IAAI,UAAU,GAAG,GAAG,IAAI,UAAU,GAAG,GAAG;gBAAE,OAAO;YACjD,aAAa,CAAC,UAAU,CAAC,CAAC;YAC1B,OAAO,EAAE,CAAC,UAAU,CAAC,CAAC;YACtB,oBAAoB,CAAC,UAAU,CAAC,CAAC;SAClC;QACD,IAAI,CAAC,CAAC,GAAG,KAAK,OAAO,EAAE;YACrB,CAAC,CAAC,cAAc,EAAE,CAAC;YACnB,QAAQ,EAAE,CAAC,UAAU,CAAC,CAAC;SACxB;IACH,CAAC,EACD,CAAC,IAAI,EAAE,UAAU,EAAE,OAAO,EAAE,QAAQ,CAAC,CACtC,CAAC;IAEF,MAAM,YAAY,GAAG,kBAAkB,CAAmB,GAAG,CAAC,CAAC;IAC/D,MAAM,QAAQ,GAAG,cAAc,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC;IAEhD,MAAM,KAAK,GAAG,eAAe,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAE1C,MAAM,UAAU,GAAG,CAAC,GAAS,EAAE,EAAE;QAC/B,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,GAAG,CAAC,CAAC;QAC9B,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;QAE7E,OAAO,MAAM,CAAC,GAAG,CAAC,GAAG,GAAG,CAAC,OAAO,EAAE,IAAI,GAAG,CAAC,OAAO,EAAE,GAAG,OAAO,CAAC,OAAO,EAAE,CAAC;IAC1E,CAAC,CAAC;IAEF,MAAM,UAAU,GAAG,CAAC,GAAS,EAAE,EAAE;QAC/B,OAAO;YACL,QAAQ,IAAI,eAAe,CAAC,QAAQ,CAAC;YACrC,aAAa,EAAE,SAAS,IAAI,eAAe,CAAC,aAAa,EAAE,SAAS,CAAC;YACrE,aAAa,EAAE,OAAO,IAAI,eAAe,CAAC,aAAa,EAAE,OAAO,CAAC;SAClE,CAAC,QAAQ,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAC;IACnC,CAAC,CAAC;IAEF,MAAM,cAAc,GAAG,CAAC,GAAS,EAAE,EAAE;QACnC,OAAO,CACL,QAAQ;YACR,eAAe,CAAC,GAAG,CAAC;gBAClB,eAAe,CAAC,gBAAgB,CAAC,OAAO,CAAC,QAAQ,EAAE,YAAY,CAAC,EAAE,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC,CAC7F,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAS,EAAE,EAAE;QAC9B,OAAO,eAAe,CAAC,GAAG,CAAC,KAAK,eAAe,CAAC,UAAU,CAAC,CAAC;IAC9D,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,GAAS,EAAE,EAAE;QAClC,OAAO,CACL,eAAe,CAAC,GAAG,CAAC;YACpB,eAAe,CACb,gBAAgB,CAAC,OAAO,CAAC,UAAU,EAAE,YAAY,CAAC,EAAE,UAAU,CAAC,WAAW,EAAE,CAAC,CAC9E,CACF,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAS,EAAE,EAAE;QAC9B,OAAO,CACL,aAAa;YACb,aAAa,CAAC,SAAS;YACvB,aAAa,CAAC,OAAO;YACrB,GAAG,IAAI,aAAa,CAAC,SAAS;YAC9B,GAAG,IAAI,aAAa,CAAC,OAAO,CAC7B,CAAC;IACJ,CAAC,CAAC;IAEF,MAAM,aAAa,GAAG,CAAC,GAAS,EAAE,EAAE;QAClC,IAAI,CAAC,aAAa,IAAI,CAAC,aAAa,IAAI,CAAC,iBAAiB;YAAE,OAAO,KAAK,CAAC;QACzE,MAAM,2BAA2B,GAAG,CAAC,iBAA0C,EAAE,EAAE;YACjF,MAAM,aAAa,GAAG,aAAa,CAAC,iBAAiB,CAAC,CAAC;YACvD,IAAI,CAAC,aAAa;gBAAE,OAAO,KAAK,CAAC;YACjC,OAAO,CAAC,CAAC,CACP,aAAa;gBACb,CAAC,CAAC,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,iBAAiB,CAAC;oBACjD,CAAC,GAAG,IAAI,aAAa,IAAI,GAAG,IAAI,iBAAiB,CAAC,CAAC,CACtD,CAAC;QACJ,CAAC,CAAC;QACF,OAAO,2BAA2B,CAAC,WAAW,CAAC,IAAI,2BAA2B,CAAC,SAAS,CAAC,CAAC;IAC5F,CAAC,CAAC;IAEF,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,QAAQ;YACV,YAAY,CAAC,OAAO,EAAE,aAAa,CAAoB,sBAAsB,CAAC,EAAE,KAAK,EAAE,CAAC;IAC5F,CAAC,EAAE,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;IAE3B,MAAM,IAAI,GAAG,cAAc,CAAC,OAAO,EAAE,YAAY,IAAI,cAAc,CAAC,QAAQ,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE;QACtF,OAAO,CACL,KAAC,SAAS,IAER,QAAQ,EAAE,SAAS,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EACjC,QAAQ,EAAE,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,GAAG,CAAC,EACxD,OAAO,EAAE,eAAe,CAAC,GAAG,CAAC,KAAK,KAAK,EACvC,WAAW,EAAE,SAAS,CAAC,GAAG,CAAC,IAAI,aAAa,CAAC,GAAG,CAAC,mBAClC,UAAU,CAAC,GAAG,CAAC,IAAI,SAAS,kBAC7B,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAClD,mBAAmB,EAAE,GAAG,CAAC,WAAW,EAAE,KAAK,OAAO,CAAC,WAAW,EAAE,gBACpD,eAAe,CAAC,GAAG,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EACvE,WAAW,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,EACxE,UAAU,EAAE,aAAa,CAAC,CAAC,CAAC,GAAG,EAAE,CAAC,oBAAoB,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,SAAS,EAC7E,OAAO,EAAE,GAAG,EAAE;gBACZ,aAAa,CAAC,GAAG,CAAC,CAAC;gBACnB,OAAO,EAAE,CAAC,GAAG,CAAC,CAAC;gBACf,QAAQ,EAAE,CAAC,GAAG,CAAC,CAAC;YAClB,CAAC,YAEA,GAAG,CAAC,UAAU,EAAE,IAjBZ,GAAG,CAAC,OAAO,EAAE,CAkBR,CACb,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,KAAK,GAAG,OAAO,CAAC,GAAG,EAAE,CAAC,gBAAgB,CAAC,YAAY,EAAE,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC,CAAC;IAE5F,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,YAAY,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACjD,KAAK,EAAE,MAAM;QACb,IAAI,EAAE,eAAe;KACtB,CAA8B,CAAC;IAChC,MAAM,iBAAiB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,MAAM,EAAE;QACtD,KAAK,EAAE,OAAO;QACd,IAAI,EAAE,eAAe;KACtB,CAA8B,CAAC;IAEhC,MAAM,KAAK,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QAChE,OAAO,CACL,8BACE,KAAC,IAAI,IAAC,EAAE,EAAE,gBAAgB,iBAA2B,MAAM,YACxD,MAAM,CAAC,QAAQ,EAAE,IADa,MAAM,CAEhC,EACP,KAAC,gBAAgB,cACd,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,OAAO;yBAC9D,cAAc,EAAE;yBAChB,QAAQ,EAAE,EAAE,GACE,IAClB,CACJ,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,eAAe,CAAC,OAAO,EAAE,YAAY,CAAC,CAAC,GAAG,CAAC,MAAM,CAAC,EAAE;QACvE,MAAM,aAAa,GAAG,gBAAgB,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,EAAE,CAAC,CAAC;QACzE,MAAM,aAAa,GAAG,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC;QAC9C,aAAa,CAAC,OAAO,CAAC,aAAa,CAAC,OAAO,EAAE,GAAG,CAAC,CAAC,CAAC;QACnD,OAAO,CACL,MAAC,UAAU,IAET,QAAQ,EAAE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAC/C,QAAQ,EAAE,QAAQ,IAAI,IAAI,KAAK,MAAM,IAAI,UAAU,CAAC,aAAa,CAAC,mBACnD,cAAc,CAAC,aAAa,CAAC,IAAI,SAAS,gBAC7C,GAAG,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,IAAI,MAAM,CAAC,QAAQ,EAAE,IAAI,eAAe,CAClF,aAAa,EACb,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CACtC,MAAM,eAAe,CAAC,aAAa,EAAE,IAAI,CAAC,cAAc,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC,EAAE,kBAChE,aAAa,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,SAAS,EAC/D,WAAW,EAAE,GAAG,EAAE;gBAChB,aAAa,CAAC,aAAa,CAAC,CAAC;gBAC7B,OAAO,EAAE,CAAC,aAAa,CAAC,CAAC;gBACzB,QAAQ,EAAE,CAAC,aAAa,CAAC,CAAC;YAC5B,CAAC,aAEA,GAAG,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAG,EACxC,MAAM,CAAC,QAAQ,EAAE,KAhBb,MAAM,CAiBA,CACd,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GACb,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,CAChB,8BACE,KAAC,IAAI,IACH,EAAE,EAAE,eAAe,EACnB,WAAW,EAAC,MAAM,EAClB,KAAK,EAAE,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,iBAC7B,MAAM,YAEjB,GAAG,CAAC,iBAAiB,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GACnC,EACP,KAAC,gBAAgB,cAAE,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,GAAoB,IACnE,CACJ,CAAC,CAAC,CAAC,CACF,KAAC,IAAI,IAAC,EAAE,EAAE,eAAe,YAAG,GAAG,CAAC,YAAY,CAAC,EAAE,CAAC,YAAY,CAAC,CAAC,GAAQ,CACvE,CAAC;IAEJ,MAAM,YAAY,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC,CAC/C,cAAI,IAAI,EAAC,cAAc,aACrB,KAAC,IAAI,IAAC,EAAE,EAAE,iBAAiB,EAAE,WAAW,EAAC,MAAM,EAAY,KAAK,EAAE,IAAI,iBAAc,MAAM,YACvF,IAAI,IAD8C,IAAI,CAElD,EACP,KAAC,gBAAgB,cAAE,IAAI,GAAoB,KAJhB,IAAI,CAK5B,CACN,CAAC,CAAC;IAEH,MAAM,YAAY,GAAG,CAAC,WAA4B,EAAE,IAAiB,EAAE,KAAa,EAAE,EAAE;QACtF,MAAM,UAAU,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,GAAG,CAAC,CAAC,CAAC;QAEzC,IAAI,CAAC,WAAW,CAAC,UAAU,CAAC,EAAE;YAC5B,WAAW,CAAC,UAAU,CAAC,GAAG,EAAmB,CAAC;SAC/C;QAED,WAAW,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACnC,OAAO,WAAW,CAAC;IACrB,CAAC,CAAC;IAEF,MAAM,KAAK,GAAG,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAC9D,MAAM,SAAS,GAAG,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC;QACvE,OAAO;QACL,oDAAoD;QACpD,yBACG,aAAa,IAAI,aAAI,KAAK,EAAC,KAAK,YAAE,SAAS,GAAM,EACjD,IAAI,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,QAAQ,EAAE,EAAE;oBAC1B,oDAAoD;oBACpD,OAAO,uBAA6B,GAAG,IAAvB,OAAO,QAAQ,EAAE,CAAY,CAAC;gBAChD,CAAC,CAAC,KALK,QAAQ,KAAK,EAAE,CAMnB,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,UAAU,GAAG,YAAY,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;QAClD,OAAO;QACL,oDAAoD;QACpD,uBACE,uBAAK,IAAI,GAAM,IADR,QAAQ,KAAK,EAAE,CAEnB,CACN,CAAC;IACJ,CAAC,CAAC,CAAC;IAEH,MAAM,SAAS,GAAG,CAChB,MAAC,cAAc,IAAC,IAAI,EAAC,MAAM,EAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,YAAY,aACjE,0BACE,uBACE,uBAAK,SAAS,GAAM,GACjB,GACC,EACR,0BAAQ,UAAU,GAAS,IACZ,CAClB,CAAC;IAEF,OAAO,CACL,8BACG,IAAI,KAAK,MAAM,IAAI,SAAS,EAC7B,MAAC,cAAc,IACb,GAAG,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,SAAS,gBACnC,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE;oBACzC,KAAK,EAAE,MAAM;oBACb,IAAI,EAAE,SAAS;oBACf,QAAQ,EAAE,KAAK;iBAChB,CAAC,EACF,SAAS,EAAE,SAAS,iBACP,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,SAAS,EAC/C,IAAI,EAAC,MAAM,aAEX,0BACE,yBACG,aAAa,IAAI,uBAAK,SAAS,GAAM,EACrC,YAAY,IACV,GACC,EACR,0BAAQ,KAAK,GAAS,IACP,EACjB,KAAC,gBAAgB,iBAAW,QAAQ,EAAC,IAAI,EAAC,OAAO,YAC9C,CAAC,CAAC,iBAAiB,CAAC,GACJ,IAClB,CACJ,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import {\n useMemo,\n FunctionComponent,\n KeyboardEvent,\n useState,\n forwardRef,\n PropsWithoutRef,\n Ref,\n useEffect,\n useCallback\n} from 'react';\n\nimport Text from '../../Text';\nimport { CALENDAR_TYPES } from '../Input/local';\nimport {\n getCalendarTypeFromLocale,\n getDateOfISOWeek,\n getWeek,\n parseToDate,\n toUTCDateString\n} from '../Input/utils';\nimport { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n } from '../../../hooks';\nimport { ForwardProps } from '../../../types';\nimport { FormControlProps } from '../../FormControl';\nimport { cap } from '../../../utils';\n\nimport { getDaysOfMonth, getLocalizedDays, getWeeksOfMonth } from './utils';\nimport {\n StyledColumnLabel,\n ScreenReaderOnly,\n StyledPick,\n StyledDay,\n StyledCalendar,\n StyledWeekGrid,\n StyledWeekLabel,\n StyledWeekNumber\n} from './Calendar.styles';\n\nexport interface CalendarProps {\n /**\n * Sets DOM id for the control and associates label element via 'for' attribute.\n * If an id is not pass, a random id will be generated for any render.\n */\n id?: FormControlProps['id'];\n /** Defines default date that will be selected initially when the Calendar is visible. */\n selected?: Date;\n /**\n * Defines currently visible month.\n * @default new Date()\n */\n current?: Date;\n /** Defines dates range with start date and end date that can be set by the user. */\n selectedRange?: { startDate: Date | undefined; endDate: Date | undefined };\n /** Defines if days should be highlighted for range selection */\n showHighlight?: boolean;\n /** Defines if week numbers should be displayed in calendar */\n showWeekNumber?: boolean;\n /**\n * The mode of the calendar that will be rendered, ie. whether single date or week are selectable.\n * @default 'date'\n */\n mode?: 'date' | 'week';\n /** Callback fired when new day is selected. */\n onSelect?: (date: Date) => void;\n /** Callback fired when user focuses new day. */\n onFocus?: (date: Date) => void;\n /** Sets the type of calendar to be used. This will be determined by locale if no value is provided. */\n calendarType?: string;\n /** Defines minimum available value that can be selected by the user. */\n min?: string | number | Date;\n /** Defines maximum available value that can be selected by the user. */\n max?: string | number | Date;\n /** Set the calendar to disabled state, ie. non-interactive. */\n disabled?: boolean;\n}\n\nconst ariaOpts = { day: 'numeric', month: 'long', year: 'numeric' } as const;\n\nconst Calendar: FunctionComponent<CalendarProps & ForwardProps> = forwardRef(\n (\n {\n selected,\n current = selected ? new Date(selected.getTime()) : new Date(),\n selectedRange,\n showHighlight,\n mode = 'date',\n showWeekNumber,\n calendarType: calendar = CALENDAR_TYPES.ISO_8601,\n onSelect,\n onFocus,\n disabled,\n min: minProp,\n max: maxProp\n }: PropsWithoutRef<CalendarProps>,\n ref: Ref<HTMLTableElement>\n ) => {\n const { locale } = useConfiguration();\n\n const min = minProp ? parseToDate(minProp) : -Infinity;\n const max = maxProp ? parseToDate(maxProp) : Infinity;\n\n if (min instanceof Date) min.setUTCMinutes(min.getUTCMinutes() - min.getTimezoneOffset());\n if (max instanceof Date) max.setUTCMinutes(max.getUTCMinutes() - max.getTimezoneOffset());\n\n const showWeekLabel = mode === 'week' ? false : showWeekNumber;\n const [focusedDay, setFocusedDay] = useState(current);\n useEffect(() => {\n setFocusedDay(current);\n }, [current.getUTCFullYear(), current.getUTCMonth()]);\n\n const calendarType = useMemo(\n () => calendar ?? getCalendarTypeFromLocale(locale),\n [locale, calendar]\n );\n\n const [highlightBoundary, setHighlightBoundary] = useState<Date>();\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (\n (mode === 'date'\n ? ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\n : ['ArrowUp', 'ArrowDown']\n ).includes(e.key)\n ) {\n e.preventDefault();\n const newFocused = new Date(focusedDay);\n switch (e.key) {\n case 'ArrowUp':\n newFocused.setUTCDate(focusedDay.getUTCDate() - 7);\n break;\n case 'ArrowDown':\n newFocused.setUTCDate(focusedDay.getUTCDate() + 7);\n break;\n case 'ArrowRight':\n newFocused.setUTCDate(focusedDay.getUTCDate() + 1);\n break;\n case 'ArrowLeft':\n newFocused.setUTCDate(focusedDay.getUTCDate() - 1);\n break;\n default:\n }\n if (newFocused < min || newFocused > max) return;\n setFocusedDay(newFocused);\n onFocus?.(newFocused);\n setHighlightBoundary(newFocused);\n }\n if (e.key === 'Enter') {\n e.preventDefault();\n onSelect?.(focusedDay);\n }\n },\n [mode, focusedDay, onFocus, onSelect]\n );\n\n const containerRef = useConsolidatedRef<HTMLTableElement>(ref);\n const hasFocus = useFocusWithin([containerRef]);\n\n const today = toUTCDateString(new Date());\n\n const isDisabled = (day: Date) => {\n const maxDate = new Date(max);\n maxDate.setUTCMinutes(maxDate.getUTCMinutes() - maxDate.getTimezoneOffset());\n\n return Number(min) > day.getTime() || day.getTime() > maxDate.getTime();\n };\n\n const isSelected = (day: Date) => {\n return [\n selected && toUTCDateString(selected),\n selectedRange?.startDate && toUTCDateString(selectedRange?.startDate),\n selectedRange?.endDate && toUTCDateString(selectedRange?.endDate)\n ].includes(toUTCDateString(day));\n };\n\n const isWeekSelected = (day: Date) => {\n return (\n selected &&\n toUTCDateString(day) ===\n toUTCDateString(getDateOfISOWeek(getWeek(selected, calendarType), selected.getFullYear()))\n );\n };\n\n const isFocused = (day: Date) => {\n return toUTCDateString(day) === toUTCDateString(focusedDay);\n };\n\n const isWeekFocused = (day: Date) => {\n return (\n toUTCDateString(day) ===\n toUTCDateString(\n getDateOfISOWeek(getWeek(focusedDay, calendarType), focusedDay.getFullYear())\n )\n );\n };\n\n const isInRange = (day: Date) => {\n return (\n selectedRange &&\n selectedRange.startDate &&\n selectedRange.endDate &&\n day >= selectedRange.startDate &&\n day <= selectedRange.endDate\n );\n };\n\n const isHighlighted = (day: Date) => {\n if (!selectedRange || !showHighlight || !highlightBoundary) return false;\n const betweenHighlightAndBoundary = (rangeBoundaryType: 'startDate' | 'endDate') => {\n const rangeBoundary = selectedRange[rangeBoundaryType];\n if (!rangeBoundary) return false;\n return !!(\n rangeBoundary &&\n ((day >= rangeBoundary && day <= highlightBoundary) ||\n (day <= rangeBoundary && day >= highlightBoundary))\n );\n };\n return betweenHighlightAndBoundary('startDate') || betweenHighlightAndBoundary('endDate');\n };\n\n useEffect(() => {\n if (hasFocus)\n containerRef.current?.querySelector<HTMLButtonElement>('button[tabindex=\"0\"]')?.focus();\n }, [hasFocus, focusedDay]);\n\n const days = getDaysOfMonth(current, calendarType ?? CALENDAR_TYPES.ISO_8601).map(day => {\n return (\n <StyledDay\n key={day.getTime()}\n tabIndex={isFocused(day) ? 0 : -1}\n disabled={disabled || mode === 'week' || isDisabled(day)}\n current={toUTCDateString(day) === today}\n highlighted={isInRange(day) || isHighlighted(day)}\n aria-selected={isSelected(day) || undefined}\n aria-current={isSelected(day) ? 'date' : undefined}\n dayInNexOrPrevMonth={day.getUTCMonth() !== current.getUTCMonth()}\n aria-label={toUTCDateString(day, Intl.DateTimeFormat(locale, ariaOpts))}\n onMouseOver={showHighlight ? () => setHighlightBoundary(day) : undefined}\n onMouseOut={showHighlight ? () => setHighlightBoundary(undefined) : undefined}\n onClick={() => {\n setFocusedDay(day);\n onFocus?.(day);\n onSelect?.(day);\n }}\n >\n {day.getUTCDate()}\n </StyledDay>\n );\n });\n\n const names = useMemo(() => getLocalizedDays(calendarType, locale), [locale, calendarType]);\n\n const t = useI18n();\n\n const displayNames = new Intl.DisplayNames(locale, {\n style: 'long',\n type: 'dateTimeField'\n }) as Intl.DateTimeDisplayNames;\n const displayNamesShort = new Intl.DisplayNames(locale, {\n style: 'short',\n type: 'dateTimeField'\n }) as Intl.DateTimeDisplayNames;\n\n const weeks = getWeeksOfMonth(current, calendarType).map(weekNo => {\n return (\n <>\n <Text as={StyledWeekNumber} key={weekNo} aria-hidden='true'>\n {weekNo.toString()}\n </Text>\n <ScreenReaderOnly>\n {`${displayNames.of('weekOfYear')} ${weekNo.toString()} ${current\n .getUTCFullYear()\n .toString()}`}\n </ScreenReaderOnly>\n </>\n );\n });\n\n const weeksButtons = getWeeksOfMonth(current, calendarType).map(weekNo => {\n const dateOfISOWeek = getDateOfISOWeek(weekNo, current.getUTCFullYear());\n const lastDayOfWeek = new Date(dateOfISOWeek);\n lastDayOfWeek.setDate(dateOfISOWeek.getDate() + 6);\n return (\n <StyledPick\n key={weekNo}\n tabIndex={isWeekFocused(dateOfISOWeek) ? 0 : -1}\n disabled={disabled || mode === 'date' || isDisabled(dateOfISOWeek)}\n aria-selected={isWeekSelected(dateOfISOWeek) || undefined}\n aria-label={`${displayNames.of('weekOfYear')} ${weekNo.toString()} ${toUTCDateString(\n dateOfISOWeek,\n Intl.DateTimeFormat(locale, ariaOpts)\n )} - ${toUTCDateString(lastDayOfWeek, Intl.DateTimeFormat(locale, ariaOpts))}`}\n aria-current={isWeekFocused(dateOfISOWeek) ? 'date' : undefined}\n onMouseDown={() => {\n setFocusedDay(dateOfISOWeek);\n onFocus?.(dateOfISOWeek);\n onSelect?.(dateOfISOWeek);\n }}\n >\n {`${cap(displayNames.of('weekOfYear'))} `}\n {weekNo.toString()}\n </StyledPick>\n );\n });\n\n const weekLabel =\n mode === 'date' ? (\n <>\n <Text\n as={StyledWeekLabel}\n forwardedAs='abbr'\n title={cap(displayNames.of('weekOfYear'))}\n aria-hidden='true'\n >\n {cap(displayNamesShort.of('weekOfYear'))}\n </Text>\n <ScreenReaderOnly>{displayNames.of('weekOfYear')}</ScreenReaderOnly>\n </>\n ) : (\n <Text as={StyledWeekLabel}>{cap(displayNames.of('weekOfYear'))}</Text>\n );\n\n const headerLabels = names.map(([name, abbr]) => (\n <th role='columnheader' key={name}>\n <Text as={StyledColumnLabel} forwardedAs='abbr' key={name} title={name} aria-hidden='true'>\n {abbr}\n </Text>\n <ScreenReaderOnly>{name}</ScreenReaderOnly>\n </th>\n ));\n\n const splitToWeeks = (resultArray: JSX.Element[][], item: JSX.Element, index: number) => {\n const chunkIndex = Math.floor(index / 7);\n\n if (!resultArray[chunkIndex]) {\n resultArray[chunkIndex] = [] as JSX.Element[];\n }\n\n resultArray[chunkIndex].push(item);\n return resultArray;\n };\n\n const cells = days.reduce(splitToWeeks, []).map((week, index) => {\n const rowHeader = mode === 'week' ? weeksButtons[index] : weeks[index];\n return (\n // eslint-disable-next-line react/no-array-index-key\n <tr key={`week-${index}`}>\n {showWeekLabel && <th scope='row'>{rowHeader}</th>}\n {week.map((day, dayIndex) => {\n // eslint-disable-next-line react/no-array-index-key\n return <td key={`day-${dayIndex}`}>{day}</td>;\n })}\n </tr>\n );\n });\n\n const weeksCells = weeksButtons.map((week, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <tr key={`week-${index}`}>\n <td>{week}</td>\n </tr>\n );\n });\n\n const weeksGrid = (\n <StyledWeekGrid role='grid' onKeyDown={onKeyDown} ref={containerRef}>\n <thead>\n <tr>\n <th>{weekLabel}</th>\n </tr>\n </thead>\n <tbody>{weeksCells}</tbody>\n </StyledWeekGrid>\n );\n\n return (\n <>\n {mode === 'week' && weeksGrid}\n <StyledCalendar\n ref={mode === 'date' ? containerRef : undefined}\n aria-label={current.toLocaleString(locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n })}\n onKeyDown={onKeyDown}\n aria-hidden={mode === 'week' ? true : undefined}\n role='grid'\n >\n <thead>\n <tr>\n {showWeekLabel && <th>{weekLabel}</th>}\n {headerLabels}\n </tr>\n </thead>\n <tbody>{cells}</tbody>\n </StyledCalendar>\n <ScreenReaderOnly aria-live='polite' role='alert'>\n {t('calendar_assist')}\n </ScreenReaderOnly>\n </>\n );\n }\n);\n\nexport default Calendar;\n"]}
|
|
1
|
+
{"version":3,"file":"Calendar.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.tsx"],"names":[],"mappings":"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","sourcesContent":["import {\n useMemo,\n FunctionComponent,\n KeyboardEvent,\n useState,\n forwardRef,\n PropsWithoutRef,\n Ref,\n useEffect,\n useCallback\n} from 'react';\n\nimport Text from '../../Text';\nimport { CALENDAR_TYPES } from '../Input/local';\nimport {\n getCalendarTypeFromLocale,\n getDateOfISOWeek,\n getWeek,\n parseToDate,\n toUTCDateString\n} from '../Input/utils';\nimport { useConfiguration, useConsolidatedRef, useFocusWithin, useI18n } from '../../../hooks';\nimport { ForwardProps } from '../../../types';\nimport { FormControlProps } from '../../FormControl';\nimport { cap } from '../../../utils';\nimport VisuallyHiddenText from '../../VisuallyHiddenText';\n\nimport { getDaysOfMonth, getLocalizedDays, getWeeksOfMonth } from './utils';\nimport {\n StyledColumnLabel,\n StyledPick,\n StyledDay,\n StyledCalendar,\n StyledWeekGrid,\n StyledWeekLabel,\n StyledWeekNumber\n} from './Calendar.styles';\n\nexport interface CalendarProps {\n /**\n * Sets DOM id for the control and associates label element via 'for' attribute.\n * If an id is not pass, a random id will be generated for any render.\n */\n id?: FormControlProps['id'];\n /** Defines default date that will be selected initially when the Calendar is visible. */\n selected?: Date;\n /**\n * Defines currently visible month.\n * @default new Date()\n */\n current?: Date;\n /** Defines dates range with start date and end date that can be set by the user. */\n selectedRange?: { startDate: Date | undefined; endDate: Date | undefined };\n /** Defines if days should be highlighted for range selection */\n showHighlight?: boolean;\n /** Defines if week numbers should be displayed in calendar */\n showWeekNumber?: boolean;\n /**\n * The mode of the calendar that will be rendered, ie. whether single date or week are selectable.\n * @default 'date'\n */\n mode?: 'date' | 'week';\n /** Callback fired when new day is selected. */\n onSelect?: (date: Date) => void;\n /** Callback fired when user focuses new day. */\n onFocus?: (date: Date) => void;\n /** Sets the type of calendar to be used. This will be determined by locale if no value is provided. */\n calendarType?: string;\n /** Defines minimum available value that can be selected by the user. */\n min?: string | number | Date;\n /** Defines maximum available value that can be selected by the user. */\n max?: string | number | Date;\n /** Set the calendar to disabled state, ie. non-interactive. */\n disabled?: boolean;\n}\n\nconst ariaOpts = { day: 'numeric', month: 'long', year: 'numeric' } as const;\n\nconst Calendar: FunctionComponent<CalendarProps & ForwardProps> = forwardRef(\n (\n {\n selected,\n current = selected ? new Date(selected.getTime()) : new Date(),\n selectedRange,\n showHighlight,\n mode = 'date',\n showWeekNumber,\n calendarType: calendar = CALENDAR_TYPES.ISO_8601,\n onSelect,\n onFocus,\n disabled,\n min: minProp,\n max: maxProp\n }: PropsWithoutRef<CalendarProps>,\n ref: Ref<HTMLTableElement>\n ) => {\n const { locale } = useConfiguration();\n\n const min = minProp ? parseToDate(minProp) : -Infinity;\n const max = maxProp ? parseToDate(maxProp) : Infinity;\n\n if (min instanceof Date) min.setUTCMinutes(min.getUTCMinutes() - min.getTimezoneOffset());\n if (max instanceof Date) max.setUTCMinutes(max.getUTCMinutes() - max.getTimezoneOffset());\n\n const showWeekLabel = mode === 'week' ? false : showWeekNumber;\n const [focusedDay, setFocusedDay] = useState(current);\n useEffect(() => {\n setFocusedDay(current);\n }, [current.getUTCFullYear(), current.getUTCMonth()]);\n\n const calendarType = useMemo(\n () => calendar ?? getCalendarTypeFromLocale(locale),\n [locale, calendar]\n );\n\n const [highlightBoundary, setHighlightBoundary] = useState<Date>();\n\n const onKeyDown = useCallback(\n (e: KeyboardEvent<HTMLElement>) => {\n if (\n (mode === 'date'\n ? ['ArrowUp', 'ArrowDown', 'ArrowLeft', 'ArrowRight']\n : ['ArrowUp', 'ArrowDown']\n ).includes(e.key)\n ) {\n e.preventDefault();\n const newFocused = new Date(focusedDay);\n switch (e.key) {\n case 'ArrowUp':\n newFocused.setUTCDate(focusedDay.getUTCDate() - 7);\n break;\n case 'ArrowDown':\n newFocused.setUTCDate(focusedDay.getUTCDate() + 7);\n break;\n case 'ArrowRight':\n newFocused.setUTCDate(focusedDay.getUTCDate() + 1);\n break;\n case 'ArrowLeft':\n newFocused.setUTCDate(focusedDay.getUTCDate() - 1);\n break;\n default:\n }\n if (newFocused < min || newFocused > max) return;\n setFocusedDay(newFocused);\n onFocus?.(newFocused);\n setHighlightBoundary(newFocused);\n }\n if (e.key === 'Enter') {\n e.preventDefault();\n onSelect?.(focusedDay);\n }\n },\n [mode, focusedDay, onFocus, onSelect]\n );\n\n const containerRef = useConsolidatedRef<HTMLTableElement>(ref);\n const hasFocus = useFocusWithin([containerRef]);\n\n const today = toUTCDateString(new Date());\n\n const isDisabled = (day: Date) => {\n const maxDate = new Date(max);\n maxDate.setUTCMinutes(maxDate.getUTCMinutes() - maxDate.getTimezoneOffset());\n\n return Number(min) > day.getTime() || day.getTime() > maxDate.getTime();\n };\n\n const isSelected = (day: Date) => {\n return [\n selected && toUTCDateString(selected),\n selectedRange?.startDate && toUTCDateString(selectedRange?.startDate),\n selectedRange?.endDate && toUTCDateString(selectedRange?.endDate)\n ].includes(toUTCDateString(day));\n };\n\n const isWeekSelected = (day: Date) => {\n return (\n selected &&\n toUTCDateString(day) ===\n toUTCDateString(getDateOfISOWeek(getWeek(selected, calendarType), selected.getFullYear()))\n );\n };\n\n const isFocused = (day: Date) => {\n return toUTCDateString(day) === toUTCDateString(focusedDay);\n };\n\n const isWeekFocused = (day: Date) => {\n return (\n toUTCDateString(day) ===\n toUTCDateString(\n getDateOfISOWeek(getWeek(focusedDay, calendarType), focusedDay.getFullYear())\n )\n );\n };\n\n const isInRange = (day: Date) => {\n return (\n selectedRange &&\n selectedRange.startDate &&\n selectedRange.endDate &&\n day >= selectedRange.startDate &&\n day <= selectedRange.endDate\n );\n };\n\n const isHighlighted = (day: Date) => {\n if (!selectedRange || !showHighlight || !highlightBoundary) return false;\n const betweenHighlightAndBoundary = (rangeBoundaryType: 'startDate' | 'endDate') => {\n const rangeBoundary = selectedRange[rangeBoundaryType];\n if (!rangeBoundary) return false;\n return !!(\n rangeBoundary &&\n ((day >= rangeBoundary && day <= highlightBoundary) ||\n (day <= rangeBoundary && day >= highlightBoundary))\n );\n };\n return betweenHighlightAndBoundary('startDate') || betweenHighlightAndBoundary('endDate');\n };\n\n useEffect(() => {\n if (hasFocus)\n containerRef.current?.querySelector<HTMLButtonElement>('button[tabindex=\"0\"]')?.focus();\n }, [hasFocus, focusedDay]);\n\n const days = getDaysOfMonth(current, calendarType ?? CALENDAR_TYPES.ISO_8601).map(day => {\n return (\n <StyledDay\n key={day.getTime()}\n tabIndex={isFocused(day) ? 0 : -1}\n disabled={disabled || mode === 'week' || isDisabled(day)}\n current={toUTCDateString(day) === today}\n highlighted={isInRange(day) || isHighlighted(day)}\n aria-selected={isSelected(day) || undefined}\n aria-current={isSelected(day) ? 'date' : undefined}\n dayInNexOrPrevMonth={day.getUTCMonth() !== current.getUTCMonth()}\n aria-label={toUTCDateString(day, Intl.DateTimeFormat(locale, ariaOpts))}\n onMouseOver={showHighlight ? () => setHighlightBoundary(day) : undefined}\n onMouseOut={showHighlight ? () => setHighlightBoundary(undefined) : undefined}\n onClick={() => {\n setFocusedDay(day);\n onFocus?.(day);\n onSelect?.(day);\n }}\n >\n {day.getUTCDate()}\n </StyledDay>\n );\n });\n\n const names = useMemo(() => getLocalizedDays(calendarType, locale), [locale, calendarType]);\n\n const t = useI18n();\n\n const displayNames = new Intl.DisplayNames(locale, {\n style: 'long',\n type: 'dateTimeField'\n }) as Intl.DateTimeDisplayNames;\n const displayNamesShort = new Intl.DisplayNames(locale, {\n style: 'short',\n type: 'dateTimeField'\n }) as Intl.DateTimeDisplayNames;\n\n const weeks = getWeeksOfMonth(current, calendarType).map(weekNo => {\n return (\n <>\n <Text as={StyledWeekNumber} key={weekNo} aria-hidden='true'>\n {weekNo.toString()}\n </Text>\n <VisuallyHiddenText>\n {`${displayNames.of('weekOfYear')} ${weekNo.toString()} ${current\n .getUTCFullYear()\n .toString()}`}\n </VisuallyHiddenText>\n </>\n );\n });\n\n const weeksButtons = getWeeksOfMonth(current, calendarType).map(weekNo => {\n const dateOfISOWeek = getDateOfISOWeek(weekNo, current.getUTCFullYear());\n const lastDayOfWeek = new Date(dateOfISOWeek);\n lastDayOfWeek.setDate(dateOfISOWeek.getDate() + 6);\n return (\n <StyledPick\n key={weekNo}\n tabIndex={isWeekFocused(dateOfISOWeek) ? 0 : -1}\n disabled={disabled || mode === 'date' || isDisabled(dateOfISOWeek)}\n aria-selected={isWeekSelected(dateOfISOWeek) || undefined}\n aria-label={`${displayNames.of('weekOfYear')} ${weekNo.toString()} ${toUTCDateString(\n dateOfISOWeek,\n Intl.DateTimeFormat(locale, ariaOpts)\n )} - ${toUTCDateString(lastDayOfWeek, Intl.DateTimeFormat(locale, ariaOpts))}`}\n aria-current={isWeekFocused(dateOfISOWeek) ? 'date' : undefined}\n onMouseDown={() => {\n setFocusedDay(dateOfISOWeek);\n onFocus?.(dateOfISOWeek);\n onSelect?.(dateOfISOWeek);\n }}\n >\n {`${cap(displayNames.of('weekOfYear'))} `}\n {weekNo.toString()}\n </StyledPick>\n );\n });\n\n const weekLabel =\n mode === 'date' ? (\n <>\n <Text\n as={StyledWeekLabel}\n forwardedAs='abbr'\n title={cap(displayNames.of('weekOfYear'))}\n aria-hidden='true'\n >\n {cap(displayNamesShort.of('weekOfYear'))}\n </Text>\n <VisuallyHiddenText>{displayNames.of('weekOfYear')}</VisuallyHiddenText>\n </>\n ) : (\n <Text as={StyledWeekLabel}>{cap(displayNames.of('weekOfYear'))}</Text>\n );\n\n const headerLabels = names.map(([name, abbr]) => (\n <th role='columnheader' key={name}>\n <Text as={StyledColumnLabel} forwardedAs='abbr' key={name} title={name} aria-hidden='true'>\n {abbr}\n </Text>\n <VisuallyHiddenText>{name}</VisuallyHiddenText>\n </th>\n ));\n\n const splitToWeeks = (resultArray: JSX.Element[][], item: JSX.Element, index: number) => {\n const chunkIndex = Math.floor(index / 7);\n\n if (!resultArray[chunkIndex]) {\n resultArray[chunkIndex] = [] as JSX.Element[];\n }\n\n resultArray[chunkIndex].push(item);\n return resultArray;\n };\n\n const cells = days.reduce(splitToWeeks, []).map((week, index) => {\n const rowHeader = mode === 'week' ? weeksButtons[index] : weeks[index];\n return (\n // eslint-disable-next-line react/no-array-index-key\n <tr key={`week-${index}`}>\n {showWeekLabel && <th scope='row'>{rowHeader}</th>}\n {week.map((day, dayIndex) => {\n // eslint-disable-next-line react/no-array-index-key\n return <td key={`day-${dayIndex}`}>{day}</td>;\n })}\n </tr>\n );\n });\n\n const weeksCells = weeksButtons.map((week, index) => {\n return (\n // eslint-disable-next-line react/no-array-index-key\n <tr key={`week-${index}`}>\n <td>{week}</td>\n </tr>\n );\n });\n\n const weeksGrid = (\n <StyledWeekGrid role='grid' onKeyDown={onKeyDown} ref={containerRef}>\n <thead>\n <tr>\n <th>{weekLabel}</th>\n </tr>\n </thead>\n <tbody>{weeksCells}</tbody>\n </StyledWeekGrid>\n );\n\n return (\n <>\n {mode === 'week' && weeksGrid}\n <StyledCalendar\n ref={mode === 'date' ? containerRef : undefined}\n aria-label={current.toLocaleString(locale, {\n month: 'long',\n year: 'numeric',\n timeZone: 'UTC'\n })}\n onKeyDown={onKeyDown}\n aria-hidden={mode === 'week' ? true : undefined}\n role='grid'\n >\n <thead>\n <tr>\n {showWeekLabel && <th>{weekLabel}</th>}\n {headerLabels}\n </tr>\n </thead>\n <tbody>{cells}</tbody>\n </StyledCalendar>\n <VisuallyHiddenText aria-live='polite' role='alert'>\n {t('calendar_assist')}\n </VisuallyHiddenText>\n </>\n );\n }\n);\n\nexport default Calendar;\n"]}
|
|
@@ -1,6 +1,5 @@
|
|
|
1
1
|
export declare const StyledPick: import("styled-components").StyledComponent<import("react").FunctionComponent<import("../../Button").ButtonProps & import("../../..").ForwardProps>, import("styled-components").DefaultTheme, {}, never>;
|
|
2
2
|
export declare const StyledColumnLabel: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
|
|
3
|
-
export declare const ScreenReaderOnly: import("styled-components").StyledComponent<"span", import("styled-components").DefaultTheme, {}, never>;
|
|
4
3
|
export declare const StyledDay: import("styled-components").StyledComponent<import("react").FunctionComponent<import("../../Button").ButtonProps & import("../../..").ForwardProps>, import("styled-components").DefaultTheme, {
|
|
5
4
|
current: boolean;
|
|
6
5
|
highlighted: boolean;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,2MAoCrB,CAAC;AAIH,eAAO,MAAM,iBAAiB,0GAI7B,CAAC;AAIF,eAAO,MAAM,
|
|
1
|
+
{"version":3,"file":"Calendar.styles.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,UAAU,2MAoCrB,CAAC;AAIH,eAAO,MAAM,iBAAiB,0GAI7B,CAAC;AAIF,eAAO,MAAM,SAAS;aACX,OAAO;iBACH,OAAO;yBACC,OAAO;SAuC5B,CAAC;AAIH,eAAO,MAAM,eAAe,0GAc1B,CAAC;AAIH,eAAO,MAAM,gBAAgB,0GA8B3B,CAAC;AAIH,eAAO,MAAM,cAAc,2GAoBzB,CAAC;AAIH,eAAO,MAAM,cAAc,2GA2CzB,CAAC"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import styled, { css } from 'styled-components';
|
|
2
|
-
import {
|
|
2
|
+
import { mix, readableColor, rgba, transparentize } from 'polished';
|
|
3
3
|
import { defaultThemeProp } from '../../../theme';
|
|
4
4
|
import { tryCatch } from '../../../utils';
|
|
5
5
|
import Button from '../../Button';
|
|
@@ -33,9 +33,6 @@ export const StyledColumnLabel = styled.span `
|
|
|
33
33
|
font-size: 0.75rem;
|
|
34
34
|
`;
|
|
35
35
|
StyledColumnLabel.defaultProps = defaultThemeProp;
|
|
36
|
-
export const ScreenReaderOnly = styled.span `
|
|
37
|
-
${hideVisually}
|
|
38
|
-
`;
|
|
39
36
|
export const StyledDay = styled(StyledPick)(props => {
|
|
40
37
|
const { theme: { base: { palette: { interactive }, 'disabled-opacity': disabledOpacity }, components: { 'form-control': { 'foreground-color': foreground } } }, current, highlighted, dayInNexOrPrevMonth } = props;
|
|
41
38
|
const highlightedBgColor = tryCatch(() => rgba(interactive, 0.1));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Calendar.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAChD,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"Calendar.styles.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/Calendar.styles.ts"],"names":[],"mappings":"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","sourcesContent":["import styled, { css } from 'styled-components';\nimport { mix, readableColor, rgba, transparentize } from 'polished';\n\nimport { defaultThemeProp } from '../../../theme';\nimport { tryCatch } from '../../../utils';\nimport Button from '../../Button';\n\nexport const StyledPick = styled(Button)(props => {\n const {\n theme: {\n base: {\n 'border-radius': borderRadius,\n palette: { interactive, dark },\n spacing\n },\n components: {\n card: { background },\n 'form-control': { 'foreground-color': foreground }\n }\n }\n } = props;\n\n const textColor = tryCatch(() => readableColor(interactive));\n const disabledBackground = tryCatch(() => transparentize(0.5, mix(0.8, background, dark)));\n\n return css`\n height: 2.625rem;\n border-radius: calc(0.5 * ${borderRadius});\n padding: 0 ${spacing};\n background-color: transparent;\n border-color: transparent;\n color: ${foreground};\n\n &[aria-selected]:enabled {\n background-color: ${interactive};\n color: ${textColor};\n }\n\n &:disabled {\n background-color: ${disabledBackground};\n border-radius: 0;\n }\n `;\n});\n\nStyledPick.defaultProps = defaultThemeProp;\n\nexport const StyledColumnLabel = styled.span`\n text-align: center;\n margin: 0 auto;\n font-size: 0.75rem;\n`;\n\nStyledColumnLabel.defaultProps = defaultThemeProp;\n\nexport const StyledDay = styled(StyledPick)<{\n current: boolean;\n highlighted: boolean;\n dayInNexOrPrevMonth: boolean;\n}>(props => {\n const {\n theme: {\n base: {\n palette: { interactive },\n 'disabled-opacity': disabledOpacity\n },\n components: {\n 'form-control': { 'foreground-color': foreground }\n }\n },\n current,\n highlighted,\n dayInNexOrPrevMonth\n } = props;\n\n const highlightedBgColor = tryCatch(() => rgba(interactive, 0.1));\n\n return css`\n background-color: ${highlighted ? highlightedBgColor : 'transparent'};\n border: transparent;\n color: ${foreground};\n\n ${highlighted &&\n css`\n border-radius: 0;\n `}\n\n ${dayInNexOrPrevMonth &&\n css`\n opacity: ${disabledOpacity};\n `}\n\n ${current &&\n css`\n font-weight: bold;\n `}\n `;\n});\n\nStyledDay.defaultProps = defaultThemeProp;\n\nexport const StyledWeekLabel = styled(StyledColumnLabel)(props => {\n const {\n theme: {\n base: { spacing, breakpoints }\n }\n } = props;\n\n return css`\n margin-inline-end: 0;\n\n @media (min-width: ${breakpoints.sm}) {\n margin-inline-end: ${spacing};\n }\n `;\n});\n\nStyledWeekLabel.defaultProps = defaultThemeProp;\n\nexport const StyledWeekNumber = styled.span(props => {\n const {\n theme: {\n base: {\n breakpoints,\n spacing,\n 'disabled-opacity': disabledOpacity,\n palette: { dark }\n },\n components: {\n card: { background: cardBackground }\n }\n }\n } = props;\n\n const background = tryCatch(() => transparentize(0.5, mix(0.8, cardBackground, dark)));\n\n return css`\n line-height: 2.625rem;\n padding: 0;\n margin-inline-end: 0;\n background-color: ${background};\n display: inline-block;\n opacity: ${disabledOpacity};\n\n @media (min-width: ${breakpoints.sm}) {\n padding: 0 ${spacing};\n margin-inline-end: ${spacing};\n }\n `;\n});\n\nStyledWeekNumber.defaultProps = defaultThemeProp;\n\nexport const StyledWeekGrid = styled.table(props => {\n const {\n theme: {\n base: { spacing }\n }\n } = props;\n return css`\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n thead {\n th {\n padding-bottom: ${spacing};\n }\n }\n ${StyledPick} {\n margin-inline-end: ${spacing};\n }\n `;\n});\n\nStyledWeekGrid.defaultProps = defaultThemeProp;\n\nexport const StyledCalendar = styled.table(props => {\n const {\n theme: {\n base: { 'border-radius': borderRadius, spacing }\n }\n } = props;\n return css`\n table-layout: fixed;\n border-collapse: collapse;\n border-spacing: 0;\n\n th {\n max-width: 2.625rem;\n }\n\n thead {\n th {\n padding-bottom: ${spacing};\n }\n }\n\n td {\n width: 2.625rem;\n max-width: 2.625rem;\n\n ${StyledDay} {\n width: 100%;\n }\n }\n\n tr {\n &:first-child {\n ${StyledWeekNumber} {\n border-radius: calc(0.5 * ${borderRadius}) calc(0.5 * ${borderRadius}) 0 0;\n }\n }\n &:last-child {\n ${StyledWeekNumber} {\n border-radius: 0 0 calc(0.5 * ${borderRadius}) calc(0.5 * ${borderRadius});\n }\n }\n }\n `;\n});\n\nStyledCalendar.defaultProps = defaultThemeProp;\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,MAAM,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"DatePicker.d.ts","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,MAAM,OAAO,CAAC;AAevE,OAAO,eAAe,MAAM,oBAAoB,CAAC;AAMjD,QAAA,MAAM,UAAU,EAAE,iBAAiB,CAAC,eAAe,CA+JlD,CAAC;AAEF,eAAe,UAAU,CAAC"}
|
|
@@ -10,8 +10,8 @@ import { useConfiguration, useDirection, useI18n } from '../../../hooks';
|
|
|
10
10
|
import { getCalendarTypeFromLocale, parseToDate } from '../Input/utils';
|
|
11
11
|
import { CALENDAR_TYPES } from '../Input/local';
|
|
12
12
|
import TimeInput from '../Input/TimeInput';
|
|
13
|
+
import VisuallyHiddenText from '../../VisuallyHiddenText';
|
|
13
14
|
import Calendar from './Calendar';
|
|
14
|
-
import { ScreenReaderOnly } from './Calendar.styles';
|
|
15
15
|
import { isValidDate, toDateTimeString } from './utils';
|
|
16
16
|
import { StyledDatePicker, StyledMonthPicker } from './DatePicker.styles';
|
|
17
17
|
registerIcon(caretLeftIcon, caretRightIcon);
|
|
@@ -59,7 +59,7 @@ const DatePicker = ({ selected: initial, onChange, min, max, mode = 'date', show
|
|
|
59
59
|
newCurrent = minDate;
|
|
60
60
|
}
|
|
61
61
|
setCurrent(newCurrent);
|
|
62
|
-
}, min: min, max: max }), _jsx(
|
|
62
|
+
}, min: min, max: max }), _jsx(VisuallyHiddenText, { "aria-live": 'polite', role: 'alert', children: current.toLocaleString(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' }) }), _jsx(Button, { variant: 'simple', icon: true, onClick: () => {
|
|
63
63
|
const newCurrent = new Date(current);
|
|
64
64
|
newCurrent.setUTCMonth(newCurrent.getUTCMonth() + 1);
|
|
65
65
|
setCurrent(newCurrent);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.tsx"],"names":[],"mappings":"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","sourcesContent":["import { FunctionComponent, useState, useEffect, useRef } from 'react';\n\nimport Flex from '../../Flex';\nimport MonthInput from '../Input/MonthInput';\nimport Button from '../../Button';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as caretLeftIcon from '../../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../../Icon/icons/caret-right.icon';\nimport { useConfiguration, useDirection, useI18n } from '../../../hooks';\nimport { getCalendarTypeFromLocale, parseToDate } from '../Input/utils';\nimport { CALENDAR_TYPES } from '../Input/local';\nimport TimeInput from '../Input/TimeInput';\n\nimport Calendar from './Calendar';\nimport DatePickerProps from './DatePicker.types';\nimport { ScreenReaderOnly } from './Calendar.styles';\nimport { isValidDate, toDateTimeString } from './utils';\nimport { StyledDatePicker, StyledMonthPicker } from './DatePicker.styles';\n\nregisterIcon(caretLeftIcon, caretRightIcon);\n\nconst DatePicker: FunctionComponent<DatePickerProps> = ({\n selected: initial,\n onChange,\n min,\n max,\n mode = 'date',\n showWeekNumber,\n withSeconds,\n pickerInterval,\n clockFormat,\n ...restProps\n}: DatePickerProps) => {\n const { locale } = useConfiguration();\n const t = useI18n();\n\n const [selected, setSelected] = useState(initial);\n const [current, setCurrent] = useState(selected && isValidDate(selected) ? selected : new Date());\n\n useEffect(() => {\n if (toDateTimeString(initial, mode) !== toDateTimeString(selected, mode)) {\n setSelected(initial);\n setCurrent(initial || new Date());\n }\n }, [toDateTimeString(initial, mode)]);\n\n const calendarRef = useRef<HTMLTableElement>(null);\n useEffect(() => {\n // need to postpone focusing to make sure onFocusWithin has been attached\n setTimeout(() => {\n calendarRef.current?.querySelector<HTMLElement>('button[tabindex=\"0\"]:enabled')?.focus();\n });\n }, []);\n\n const calendarType = getCalendarTypeFromLocale(locale);\n const { start, end } = useDirection();\n\n return (\n <StyledDatePicker aria-label={t('calendar')} role='region' {...restProps}>\n <Flex as={StyledMonthPicker} container={{ justify: 'between', alignItems: 'center' }}>\n <Button\n variant='simple'\n icon\n onClick={() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() - 1);\n setCurrent(newCurrent);\n }}\n disabled={(() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCDate(1);\n\n return Boolean(min && min > newCurrent);\n })()}\n aria-label={t('picker_prev_month')}\n >\n <Icon name={`caret-${start}`} />\n </Button>\n <MonthInput\n value={current}\n required\n role='group'\n aria-label={t('picker_jump_to_month_and_year')}\n onChange={({ valueAsTimestamp }) => {\n let newCurrent = new Date(valueAsTimestamp!);\n newCurrent.setUTCDate(current.getUTCDate());\n\n if (max) {\n const maxDate = parseToDate(max);\n maxDate.setUTCMinutes(maxDate.getUTCMinutes() - maxDate.getTimezoneOffset());\n if (newCurrent > maxDate) newCurrent = maxDate;\n }\n\n if (min) {\n const minDate = parseToDate(min);\n minDate.setUTCMinutes(minDate.getUTCMinutes() - minDate.getTimezoneOffset());\n if (newCurrent < minDate) newCurrent = minDate;\n }\n\n setCurrent(newCurrent);\n }}\n min={min}\n max={max}\n />\n <ScreenReaderOnly aria-live='polite' role='alert'>\n {current.toLocaleString(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' })}\n </ScreenReaderOnly>\n <Button\n variant='simple'\n icon\n onClick={() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() + 1);\n setCurrent(newCurrent);\n }}\n disabled={(() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() + 1);\n newCurrent.setUTCDate(0);\n\n return Boolean(max && max < newCurrent);\n })()}\n aria-label={t('picker_next_month')}\n >\n <Icon name={`caret-${end}`} />\n </Button>\n </Flex>\n <Flex container={{ wrap: 'nowrap' }} dir='ltr'>\n <Calendar\n ref={calendarRef}\n selected={selected && isValidDate(selected) ? selected : undefined}\n current={current}\n calendarType={mode === 'date' ? calendarType : CALENDAR_TYPES.ISO_8601}\n showWeekNumber={showWeekNumber}\n mode={mode === 'datetime' ? 'date' : mode}\n onFocus={setCurrent}\n onSelect={selectedDate => {\n const newDate = new Date(selectedDate);\n\n if (selected) {\n newDate.setUTCHours(selected.getUTCHours());\n newDate.setUTCMinutes(selected.getUTCMinutes());\n newDate.setUTCSeconds(selected.getUTCSeconds());\n }\n\n setCurrent(newDate);\n setSelected(newDate);\n onChange?.(newDate);\n }}\n min={min}\n max={max}\n />\n </Flex>\n\n {mode === 'datetime' && (\n <TimeInput\n label={t('time_text')}\n value={selected}\n pickerInterval={pickerInterval}\n withSeconds={withSeconds}\n clockFormat={clockFormat}\n onChange={selectedTime => {\n if (selectedTime.state || !selectedTime.valueAsISOString) {\n return;\n }\n const newDate = selected ? new Date(selected) : new Date();\n const selectedTimeDateObject = new Date(selectedTime.valueAsISOString);\n newDate.setUTCHours(selectedTimeDateObject.getUTCHours());\n newDate.setUTCMinutes(selectedTimeDateObject.getUTCMinutes());\n newDate.setUTCSeconds(selectedTimeDateObject.getUTCSeconds());\n\n setSelected(newDate);\n onChange?.(newDate);\n }}\n min={min}\n max={max}\n />\n )}\n </StyledDatePicker>\n );\n};\n\nexport default DatePicker;\n"]}
|
|
1
|
+
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../../../../src/components/DateTime/Picker/DatePicker.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,QAAQ,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAC;AAEvE,OAAO,IAAI,MAAM,YAAY,CAAC;AAC9B,OAAO,UAAU,MAAM,qBAAqB,CAAC;AAC7C,OAAO,MAAM,MAAM,cAAc,CAAC;AAClC,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAChD,OAAO,KAAK,aAAa,MAAM,kCAAkC,CAAC;AAClE,OAAO,KAAK,cAAc,MAAM,mCAAmC,CAAC;AACpE,OAAO,EAAE,gBAAgB,EAAE,YAAY,EAAE,OAAO,EAAE,MAAM,gBAAgB,CAAC;AACzE,OAAO,EAAE,yBAAyB,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AACxE,OAAO,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAChD,OAAO,SAAS,MAAM,oBAAoB,CAAC;AAC3C,OAAO,kBAAkB,MAAM,0BAA0B,CAAC;AAE1D,OAAO,QAAQ,MAAM,YAAY,CAAC;AAElC,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AACxD,OAAO,EAAE,gBAAgB,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAE1E,YAAY,CAAC,aAAa,EAAE,cAAc,CAAC,CAAC;AAE5C,MAAM,UAAU,GAAuC,CAAC,EACtD,QAAQ,EAAE,OAAO,EACjB,QAAQ,EACR,GAAG,EACH,GAAG,EACH,IAAI,GAAG,MAAM,EACb,cAAc,EACd,WAAW,EACX,cAAc,EACd,WAAW,EACX,GAAG,SAAS,EACI,EAAE,EAAE;IACpB,MAAM,EAAE,MAAM,EAAE,GAAG,gBAAgB,EAAE,CAAC;IACtC,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,CAAC,QAAQ,EAAE,WAAW,CAAC,GAAG,QAAQ,CAAC,OAAO,CAAC,CAAC;IAClD,MAAM,CAAC,OAAO,EAAE,UAAU,CAAC,GAAG,QAAQ,CAAC,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC,CAAC;IAElG,SAAS,CAAC,GAAG,EAAE;QACb,IAAI,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,KAAK,gBAAgB,CAAC,QAAQ,EAAE,IAAI,CAAC,EAAE;YACxE,WAAW,CAAC,OAAO,CAAC,CAAC;YACrB,UAAU,CAAC,OAAO,IAAI,IAAI,IAAI,EAAE,CAAC,CAAC;SACnC;IACH,CAAC,EAAE,CAAC,gBAAgB,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC,CAAC,CAAC;IAEtC,MAAM,WAAW,GAAG,MAAM,CAAmB,IAAI,CAAC,CAAC;IACnD,SAAS,CAAC,GAAG,EAAE;QACb,yEAAyE;QACzE,UAAU,CAAC,GAAG,EAAE;YACd,WAAW,CAAC,OAAO,EAAE,aAAa,CAAc,8BAA8B,CAAC,EAAE,KAAK,EAAE,CAAC;QAC3F,CAAC,CAAC,CAAC;IACL,CAAC,EAAE,EAAE,CAAC,CAAC;IAEP,MAAM,YAAY,GAAG,yBAAyB,CAAC,MAAM,CAAC,CAAC;IACvD,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,YAAY,EAAE,CAAC;IAEtC,OAAO,CACL,MAAC,gBAAgB,kBAAa,CAAC,CAAC,UAAU,CAAC,EAAE,IAAI,EAAC,QAAQ,KAAK,SAAS,aACtE,MAAC,IAAI,IAAC,EAAE,EAAE,iBAAiB,EAAE,SAAS,EAAE,EAAE,OAAO,EAAE,SAAS,EAAE,UAAU,EAAE,QAAQ,EAAE,aAClF,KAAC,MAAM,IACL,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;4BACZ,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;4BACrD,UAAU,CAAC,UAAU,CAAC,CAAC;wBACzB,CAAC,EACD,QAAQ,EAAE,CAAC,GAAG,EAAE;4BACd,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrC,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;4BAEzB,OAAO,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC;wBAC1C,CAAC,CAAC,EAAE,gBACQ,CAAC,CAAC,mBAAmB,CAAC,YAElC,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,KAAK,EAAE,GAAI,GACzB,EACT,KAAC,UAAU,IACT,KAAK,EAAE,OAAO,EACd,QAAQ,QACR,IAAI,EAAC,OAAO,gBACA,CAAC,CAAC,+BAA+B,CAAC,EAC9C,QAAQ,EAAE,CAAC,EAAE,gBAAgB,EAAE,EAAE,EAAE;4BACjC,IAAI,UAAU,GAAG,IAAI,IAAI,CAAC,gBAAiB,CAAC,CAAC;4BAC7C,UAAU,CAAC,UAAU,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC;4BAE5C,IAAI,GAAG,EAAE;gCACP,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;gCAC7E,IAAI,UAAU,GAAG,OAAO;oCAAE,UAAU,GAAG,OAAO,CAAC;6BAChD;4BAED,IAAI,GAAG,EAAE;gCACP,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;gCACjC,OAAO,CAAC,aAAa,CAAC,OAAO,CAAC,aAAa,EAAE,GAAG,OAAO,CAAC,iBAAiB,EAAE,CAAC,CAAC;gCAC7E,IAAI,UAAU,GAAG,OAAO;oCAAE,UAAU,GAAG,OAAO,CAAC;6BAChD;4BAED,UAAU,CAAC,UAAU,CAAC,CAAC;wBACzB,CAAC,EACD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,GACR,EACF,KAAC,kBAAkB,iBAAW,QAAQ,EAAC,IAAI,EAAC,OAAO,YAChD,OAAO,CAAC,cAAc,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC,GACjE,EACrB,KAAC,MAAM,IACL,OAAO,EAAC,QAAQ,EAChB,IAAI,QACJ,OAAO,EAAE,GAAG,EAAE;4BACZ,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;4BACrD,UAAU,CAAC,UAAU,CAAC,CAAC;wBACzB,CAAC,EACD,QAAQ,EAAE,CAAC,GAAG,EAAE;4BACd,MAAM,UAAU,GAAG,IAAI,IAAI,CAAC,OAAO,CAAC,CAAC;4BACrC,UAAU,CAAC,WAAW,CAAC,UAAU,CAAC,WAAW,EAAE,GAAG,CAAC,CAAC,CAAC;4BACrD,UAAU,CAAC,UAAU,CAAC,CAAC,CAAC,CAAC;4BAEzB,OAAO,OAAO,CAAC,GAAG,IAAI,GAAG,GAAG,UAAU,CAAC,CAAC;wBAC1C,CAAC,CAAC,EAAE,gBACQ,CAAC,CAAC,mBAAmB,CAAC,YAElC,KAAC,IAAI,IAAC,IAAI,EAAE,SAAS,GAAG,EAAE,GAAI,GACvB,IACJ,EACP,KAAC,IAAI,IAAC,SAAS,EAAE,EAAE,IAAI,EAAE,QAAQ,EAAE,EAAE,GAAG,EAAC,KAAK,YAC5C,KAAC,QAAQ,IACP,GAAG,EAAE,WAAW,EAChB,QAAQ,EAAE,QAAQ,IAAI,WAAW,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,SAAS,EAClE,OAAO,EAAE,OAAO,EAChB,YAAY,EAAE,IAAI,KAAK,MAAM,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,QAAQ,EACtE,cAAc,EAAE,cAAc,EAC9B,IAAI,EAAE,IAAI,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,IAAI,EACzC,OAAO,EAAE,UAAU,EACnB,QAAQ,EAAE,YAAY,CAAC,EAAE;wBACvB,MAAM,OAAO,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,CAAC;wBAEvC,IAAI,QAAQ,EAAE;4BACZ,OAAO,CAAC,WAAW,CAAC,QAAQ,CAAC,WAAW,EAAE,CAAC,CAAC;4BAC5C,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;4BAChD,OAAO,CAAC,aAAa,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC,CAAC;yBACjD;wBAED,UAAU,CAAC,OAAO,CAAC,CAAC;wBACpB,WAAW,CAAC,OAAO,CAAC,CAAC;wBACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;oBACtB,CAAC,EACD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,GACR,GACG,EAEN,IAAI,KAAK,UAAU,IAAI,CACtB,KAAC,SAAS,IACR,KAAK,EAAE,CAAC,CAAC,WAAW,CAAC,EACrB,KAAK,EAAE,QAAQ,EACf,cAAc,EAAE,cAAc,EAC9B,WAAW,EAAE,WAAW,EACxB,WAAW,EAAE,WAAW,EACxB,QAAQ,EAAE,YAAY,CAAC,EAAE;oBACvB,IAAI,YAAY,CAAC,KAAK,IAAI,CAAC,YAAY,CAAC,gBAAgB,EAAE;wBACxD,OAAO;qBACR;oBACD,MAAM,OAAO,GAAG,QAAQ,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;oBAC3D,MAAM,sBAAsB,GAAG,IAAI,IAAI,CAAC,YAAY,CAAC,gBAAgB,CAAC,CAAC;oBACvE,OAAO,CAAC,WAAW,CAAC,sBAAsB,CAAC,WAAW,EAAE,CAAC,CAAC;oBAC1D,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC,CAAC;oBAC9D,OAAO,CAAC,aAAa,CAAC,sBAAsB,CAAC,aAAa,EAAE,CAAC,CAAC;oBAE9D,WAAW,CAAC,OAAO,CAAC,CAAC;oBACrB,QAAQ,EAAE,CAAC,OAAO,CAAC,CAAC;gBACtB,CAAC,EACD,GAAG,EAAE,GAAG,EACR,GAAG,EAAE,GAAG,GACR,CACH,IACgB,CACpB,CAAC;AACJ,CAAC,CAAC;AAEF,eAAe,UAAU,CAAC","sourcesContent":["import { FunctionComponent, useState, useEffect, useRef } from 'react';\n\nimport Flex from '../../Flex';\nimport MonthInput from '../Input/MonthInput';\nimport Button from '../../Button';\nimport Icon, { registerIcon } from '../../Icon';\nimport * as caretLeftIcon from '../../Icon/icons/caret-left.icon';\nimport * as caretRightIcon from '../../Icon/icons/caret-right.icon';\nimport { useConfiguration, useDirection, useI18n } from '../../../hooks';\nimport { getCalendarTypeFromLocale, parseToDate } from '../Input/utils';\nimport { CALENDAR_TYPES } from '../Input/local';\nimport TimeInput from '../Input/TimeInput';\nimport VisuallyHiddenText from '../../VisuallyHiddenText';\n\nimport Calendar from './Calendar';\nimport DatePickerProps from './DatePicker.types';\nimport { isValidDate, toDateTimeString } from './utils';\nimport { StyledDatePicker, StyledMonthPicker } from './DatePicker.styles';\n\nregisterIcon(caretLeftIcon, caretRightIcon);\n\nconst DatePicker: FunctionComponent<DatePickerProps> = ({\n selected: initial,\n onChange,\n min,\n max,\n mode = 'date',\n showWeekNumber,\n withSeconds,\n pickerInterval,\n clockFormat,\n ...restProps\n}: DatePickerProps) => {\n const { locale } = useConfiguration();\n const t = useI18n();\n\n const [selected, setSelected] = useState(initial);\n const [current, setCurrent] = useState(selected && isValidDate(selected) ? selected : new Date());\n\n useEffect(() => {\n if (toDateTimeString(initial, mode) !== toDateTimeString(selected, mode)) {\n setSelected(initial);\n setCurrent(initial || new Date());\n }\n }, [toDateTimeString(initial, mode)]);\n\n const calendarRef = useRef<HTMLTableElement>(null);\n useEffect(() => {\n // need to postpone focusing to make sure onFocusWithin has been attached\n setTimeout(() => {\n calendarRef.current?.querySelector<HTMLElement>('button[tabindex=\"0\"]:enabled')?.focus();\n });\n }, []);\n\n const calendarType = getCalendarTypeFromLocale(locale);\n const { start, end } = useDirection();\n\n return (\n <StyledDatePicker aria-label={t('calendar')} role='region' {...restProps}>\n <Flex as={StyledMonthPicker} container={{ justify: 'between', alignItems: 'center' }}>\n <Button\n variant='simple'\n icon\n onClick={() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() - 1);\n setCurrent(newCurrent);\n }}\n disabled={(() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCDate(1);\n\n return Boolean(min && min > newCurrent);\n })()}\n aria-label={t('picker_prev_month')}\n >\n <Icon name={`caret-${start}`} />\n </Button>\n <MonthInput\n value={current}\n required\n role='group'\n aria-label={t('picker_jump_to_month_and_year')}\n onChange={({ valueAsTimestamp }) => {\n let newCurrent = new Date(valueAsTimestamp!);\n newCurrent.setUTCDate(current.getUTCDate());\n\n if (max) {\n const maxDate = parseToDate(max);\n maxDate.setUTCMinutes(maxDate.getUTCMinutes() - maxDate.getTimezoneOffset());\n if (newCurrent > maxDate) newCurrent = maxDate;\n }\n\n if (min) {\n const minDate = parseToDate(min);\n minDate.setUTCMinutes(minDate.getUTCMinutes() - minDate.getTimezoneOffset());\n if (newCurrent < minDate) newCurrent = minDate;\n }\n\n setCurrent(newCurrent);\n }}\n min={min}\n max={max}\n />\n <VisuallyHiddenText aria-live='polite' role='alert'>\n {current.toLocaleString(locale, { month: 'long', year: 'numeric', timeZone: 'UTC' })}\n </VisuallyHiddenText>\n <Button\n variant='simple'\n icon\n onClick={() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() + 1);\n setCurrent(newCurrent);\n }}\n disabled={(() => {\n const newCurrent = new Date(current);\n newCurrent.setUTCMonth(newCurrent.getUTCMonth() + 1);\n newCurrent.setUTCDate(0);\n\n return Boolean(max && max < newCurrent);\n })()}\n aria-label={t('picker_next_month')}\n >\n <Icon name={`caret-${end}`} />\n </Button>\n </Flex>\n <Flex container={{ wrap: 'nowrap' }} dir='ltr'>\n <Calendar\n ref={calendarRef}\n selected={selected && isValidDate(selected) ? selected : undefined}\n current={current}\n calendarType={mode === 'date' ? calendarType : CALENDAR_TYPES.ISO_8601}\n showWeekNumber={showWeekNumber}\n mode={mode === 'datetime' ? 'date' : mode}\n onFocus={setCurrent}\n onSelect={selectedDate => {\n const newDate = new Date(selectedDate);\n\n if (selected) {\n newDate.setUTCHours(selected.getUTCHours());\n newDate.setUTCMinutes(selected.getUTCMinutes());\n newDate.setUTCSeconds(selected.getUTCSeconds());\n }\n\n setCurrent(newDate);\n setSelected(newDate);\n onChange?.(newDate);\n }}\n min={min}\n max={max}\n />\n </Flex>\n\n {mode === 'datetime' && (\n <TimeInput\n label={t('time_text')}\n value={selected}\n pickerInterval={pickerInterval}\n withSeconds={withSeconds}\n clockFormat={clockFormat}\n onChange={selectedTime => {\n if (selectedTime.state || !selectedTime.valueAsISOString) {\n return;\n }\n const newDate = selected ? new Date(selected) : new Date();\n const selectedTimeDateObject = new Date(selectedTime.valueAsISOString);\n newDate.setUTCHours(selectedTimeDateObject.getUTCHours());\n newDate.setUTCMinutes(selectedTimeDateObject.getUTCMinutes());\n newDate.setUTCSeconds(selectedTimeDateObject.getUTCSeconds());\n\n setSelected(newDate);\n onChange?.(newDate);\n }}\n min={min}\n max={max}\n />\n )}\n </StyledDatePicker>\n );\n};\n\nexport default DatePicker;\n"]}
|
|
@@ -4,6 +4,8 @@ import { FieldGroupProps } from './FieldGroup';
|
|
|
4
4
|
export interface FieldGroupListItemProps extends FieldGroupProps {
|
|
5
5
|
/** The ID of the field group list item */
|
|
6
6
|
id: string;
|
|
7
|
+
/** Item level onDelete callback. */
|
|
8
|
+
onDelete?: (id: string) => void;
|
|
7
9
|
}
|
|
8
10
|
export interface FieldGroupListProps {
|
|
9
11
|
items: FieldGroupListItemProps[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldGroupList.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAmB,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAI7E,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"FieldGroupList.d.ts","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAA+B,GAAG,EAAE,MAAM,OAAO,CAAC;AAG5E,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAO3C,OAAmB,EAAE,eAAe,EAAoB,MAAM,cAAc,CAAC;AAI7E,MAAM,WAAW,uBAAwB,SAAQ,eAAe;IAC9D,0CAA0C;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,oCAAoC;IACpC,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACjC;AAED,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,uBAAuB,EAAE,CAAC;IACjC,KAAK,CAAC,EAAE,MAAM,IAAI,CAAC;IACnB,QAAQ,CAAC,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;IAChC,GAAG,CAAC,EAAE,GAAG,CAAC,cAAc,CAAC,CAAC;CAC3B;AAeD,eAAO,MAAM,cAAc,qJAW1B,CAAC;AAaF,QAAA,MAAM,cAAc,EAAE,iBAAiB,CAAC,mBAAmB,GAAG,YAAY,CAsDzE,CAAC;AAEF,eAAe,cAAc,CAAC"}
|
|
@@ -32,19 +32,18 @@ const StyledAddButton = styled(Button)(({ theme }) => css `
|
|
|
32
32
|
StyledAddButton.defaultProps = defaultThemeProp;
|
|
33
33
|
const FieldGroupList = forwardRef(({ items, onAdd, onDelete, ...restProps }, ref) => {
|
|
34
34
|
const t = useI18n();
|
|
35
|
-
return (_jsxs(StyledFieldGroupList, { ref: ref, ...restProps, children: [items.map(({ id, children, name, headingTag, ...restItemProps }) => {
|
|
36
|
-
return (_jsx(StyledListItem, { name: name, headingTag: headingTag, ...restItemProps, actions: onDelete
|
|
35
|
+
return (_jsxs(StyledFieldGroupList, { ref: ref, ...restProps, children: [items.map(({ id, children, name, headingTag, onDelete: itemOnDelete, ...restItemProps }) => {
|
|
36
|
+
return (_jsx(StyledListItem, { name: name, headingTag: headingTag, ...restItemProps, actions: onDelete || itemOnDelete
|
|
37
37
|
? [
|
|
38
38
|
{
|
|
39
39
|
id: 'delete',
|
|
40
40
|
text: t('delete'),
|
|
41
41
|
icon: 'trash',
|
|
42
42
|
iconOnly: true,
|
|
43
|
-
onClick:
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
: undefined
|
|
43
|
+
onClick: () => {
|
|
44
|
+
itemOnDelete?.(id);
|
|
45
|
+
onDelete?.(id);
|
|
46
|
+
}
|
|
48
47
|
}
|
|
49
48
|
]
|
|
50
49
|
: undefined, children: children }, id));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FieldGroupList.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAwB,MAAM,OAAO,CAAC;AAC5E,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,UAAU,EAAE,EAAmB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE7E,YAAY,CAAC,QAAQ,CAAC,CAAC;
|
|
1
|
+
{"version":3,"file":"FieldGroupList.js","sourceRoot":"","sources":["../../../src/components/FieldGroup/FieldGroupList.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAqB,UAAU,EAAwB,MAAM,OAAO,CAAC;AAC5E,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,MAAM,MAAM,WAAW,CAAC;AAC/B,OAAO,IAAI,EAAE,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAC7C,OAAO,KAAK,QAAQ,MAAM,yBAAyB,CAAC;AACpD,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AACtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,UAAU,EAAE,EAAmB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAE7E,YAAY,CAAC,QAAQ,CAAC,CAAC;AAgBvB,MAAM,oBAAoB,GAAG,MAAM,CAAC,GAAG,CACrC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,GAAG,CAAA;4BACqB,KAAK,CAAC,IAAI,CAAC,OAAO;;QAEtC,gBAAgB;;;KAGnB,CACJ,CAAC;AAEF,oBAAoB,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAErD,MAAM,CAAC,MAAM,cAAc,GAAG,MAAM,CAAC,UAAU,CAAC,CAC9C,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,GAAG,CAAA;iBACU,KAAK,CAAC,IAAI,CAAC,OAAO,eAAe,KAAK,CAAC,IAAI,CAAC,OAAO;uCAC7B,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;mCACrC,KAAK,CAAC,IAAI,CAAC,OAAO;;;;;KAKhD,CACJ,CAAC;AAEF,cAAc,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE/C,MAAM,eAAe,GAAG,MAAM,CAAC,MAAM,CAAC,CACpC,CAAC,EAAE,KAAK,EAAE,EAAE,EAAE,CACZ,GAAG,CAAA;oBACa,KAAK,CAAC,IAAI,CAAC,OAAO;KACjC,CACJ,CAAC;AAEF,eAAe,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAEhD,MAAM,cAAc,GAA0D,UAAU,CACtF,CACE,EAAE,KAAK,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,SAAS,EAAwC,EAC9E,GAA+B,EAC/B,EAAE;IACF,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,OAAO,CACL,MAAC,oBAAoB,IAAC,GAAG,EAAE,GAAG,KAAM,SAAS,aAC1C,KAAK,CAAC,GAAG,CACR,CAAC,EACC,EAAE,EACF,QAAQ,EACR,IAAI,EACJ,UAAU,EACV,QAAQ,EAAE,YAAY,EACtB,GAAG,aAAa,EACQ,EAAE,EAAE;gBAC5B,OAAO,CACL,KAAC,cAAc,IAEb,IAAI,EAAE,IAAI,EACV,UAAU,EAAE,UAAU,KAClB,aAAa,EACjB,OAAO,EACL,QAAQ,IAAI,YAAY;wBACtB,CAAC,CAAC;4BACE;gCACE,EAAE,EAAE,QAAQ;gCACZ,IAAI,EAAE,CAAC,CAAC,QAAQ,CAAC;gCACjB,IAAI,EAAE,OAAO;gCACb,QAAQ,EAAE,IAAI;gCACd,OAAO,EAAE,GAAG,EAAE;oCACZ,YAAY,EAAE,CAAC,EAAE,CAAC,CAAC;oCACnB,QAAQ,EAAE,CAAC,EAAE,CAAC,CAAC;gCACjB,CAAC;6BACF;yBACF;wBACH,CAAC,CAAC,SAAS,YAGd,QAAQ,IArBJ,EAAE,CAsBQ,CAClB,CAAC;YACJ,CAAC,CACF,EACA,KAAK,IAAI,CACR,MAAC,eAAe,IAAC,OAAO,EAAC,MAAM,EAAC,OAAO,EAAE,KAAK,aAC5C,KAAC,IAAI,IAAC,IAAI,EAAC,MAAM,GAAG,OAAE,CAAC,CAAC,KAAK,CAAC,IACd,CACnB,IACoB,CACxB,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,cAAc,CAAC","sourcesContent":["import { FunctionComponent, forwardRef, PropsWithoutRef, Ref } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ForwardProps } from '../../types';\nimport Button from '../Button';\nimport Icon, { registerIcon } from '../Icon';\nimport * as plusIcon from '../Icon/icons/plus.icon';\nimport { useI18n } from '../../hooks';\nimport { defaultThemeProp } from '../../theme';\n\nimport FieldGroup, { FieldGroupProps, StyledFieldGroup } from './FieldGroup';\n\nregisterIcon(plusIcon);\n\nexport interface FieldGroupListItemProps extends FieldGroupProps {\n /** The ID of the field group list item */\n id: string;\n /** Item level onDelete callback. */\n onDelete?: (id: string) => void;\n}\n\nexport interface FieldGroupListProps {\n items: FieldGroupListItemProps[];\n onAdd?: () => void;\n onDelete?: (id: string) => void;\n ref?: Ref<HTMLDivElement>;\n}\n\nconst StyledFieldGroupList = styled.div(\n ({ theme }) =>\n css`\n margin-block-start: ${theme.base.spacing};\n\n ${StyledFieldGroup} {\n margin-block-start: 0;\n }\n `\n);\n\nStyledFieldGroupList.defaultProps = defaultThemeProp;\n\nexport const StyledListItem = styled(FieldGroup)(\n ({ theme }) =>\n css`\n padding: ${theme.base.spacing} 0 calc(2 * ${theme.base.spacing});\n border-bottom: 0.0625rem solid ${theme.base.palette['border-line']};\n margin-block-end: calc(2 * ${theme.base.spacing});\n\n legend {\n margin-block-end: 0;\n }\n `\n);\n\nStyledListItem.defaultProps = defaultThemeProp;\n\nconst StyledAddButton = styled(Button)(\n ({ theme }) =>\n css`\n margin-top: ${theme.base.spacing};\n `\n);\n\nStyledAddButton.defaultProps = defaultThemeProp;\n\nconst FieldGroupList: FunctionComponent<FieldGroupListProps & ForwardProps> = forwardRef(\n (\n { items, onAdd, onDelete, ...restProps }: PropsWithoutRef<FieldGroupListProps>,\n ref: FieldGroupListProps['ref']\n ) => {\n const t = useI18n();\n\n return (\n <StyledFieldGroupList ref={ref} {...restProps}>\n {items.map(\n ({\n id,\n children,\n name,\n headingTag,\n onDelete: itemOnDelete,\n ...restItemProps\n }: FieldGroupListItemProps) => {\n return (\n <StyledListItem\n key={id}\n name={name}\n headingTag={headingTag}\n {...restItemProps}\n actions={\n onDelete || itemOnDelete\n ? [\n {\n id: 'delete',\n text: t('delete'),\n icon: 'trash',\n iconOnly: true,\n onClick: () => {\n itemOnDelete?.(id);\n onDelete?.(id);\n }\n }\n ]\n : undefined\n }\n >\n {children}\n </StyledListItem>\n );\n }\n )}\n {onAdd && (\n <StyledAddButton variant='link' onClick={onAdd}>\n <Icon name='plus' /> {t('add')}\n </StyledAddButton>\n )}\n </StyledFieldGroupList>\n );\n }\n);\n\nexport default FieldGroupList;\n"]}
|
|
@@ -2,7 +2,7 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
2
2
|
import { forwardRef, useCallback, useState } from 'react';
|
|
3
3
|
import styled, { css } from 'styled-components';
|
|
4
4
|
import { defaultThemeProp } from '../../theme';
|
|
5
|
-
import Button, {
|
|
5
|
+
import Button, { StyledButtonLink } from '../Button';
|
|
6
6
|
import Grid from '../Grid';
|
|
7
7
|
import { useI18n } from '../../hooks';
|
|
8
8
|
import { getKindFromMimeType, getMimeTypeFromFile } from './utils';
|
|
@@ -20,7 +20,7 @@ const StyledFileItem = styled.div(({ theme: { base, components } }) => {
|
|
|
20
20
|
width: ${components.input.height};
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
> ${StyledFileVisual} + ${
|
|
23
|
+
> ${StyledFileVisual} + ${StyledButtonLink} {
|
|
24
24
|
margin-inline-start: 0;
|
|
25
25
|
border: 0.0625rem solid ${base.palette['border-line']};
|
|
26
26
|
background-color: ${base.palette['primary-background']};
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAA4B,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,MAAM,EAAE,EAAE,
|
|
1
|
+
{"version":3,"file":"FileItem.js","sourceRoot":"","sources":["../../../src/components/File/FileItem.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,UAAU,EAA4B,WAAW,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AACpF,OAAO,MAAM,EAAE,EAAE,GAAG,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,EAAE,gBAAgB,EAAE,MAAM,aAAa,CAAC;AAC/C,OAAO,MAAM,EAAE,EAAE,gBAAgB,EAAE,MAAM,WAAW,CAAC;AACrD,OAAO,IAAI,MAAM,SAAS,CAAC;AAC3B,OAAO,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAEtC,OAAO,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AACnE,OAAO,UAAU,EAAE,EAAmB,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAiB7E,MAAM,cAAc,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,EAAE,EAAE;IACpE,OAAO,GAAG,CAAA;gCACoB,IAAI,CAAC,eAAe,CAAC;;QAE7C,gBAAgB;;;;;gBAKR,UAAU,CAAC,KAAK,CAAC,MAAM;eACxB,UAAU,CAAC,KAAK,CAAC,MAAM;;;QAG9B,gBAAgB,MAAM,gBAAgB;;gCAEd,IAAI,CAAC,OAAO,CAAC,aAAa,CAAC;0BACjC,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC;;mBAEzC,IAAI,CAAC,OAAO;;;;;;;;;;GAU5B,CAAC;AACJ,CAAC,CAAC,CAAC;AAEH,cAAc,CAAC,YAAY,GAAG,gBAAgB,CAAC;AAE/C,MAAM,QAAQ,GAAqC,UAAU,CAC3D,CAAC,KAAqC,EAAE,GAAyB,EAAE,EAAE;IACnE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,SAAS,EAAE,SAAS,EAAE,UAAU,EAAE,GAAG,SAAS,EAAE,GAAG,KAAK,CAAC;IAE5E,MAAM,CAAC,cAAc,EAAE,iBAAiB,CAAC,GAAG,QAAQ,CAAC,KAAK,CAAC,CAAC;IAC5D,MAAM,CAAC,GAAG,OAAO,EAAE,CAAC;IAEpB,MAAM,eAAe,GAAG,WAAW,CAAC,GAAG,EAAE;QACvC,UAAU,EAAE,CAAC,GAAG,CAAC,CAAC;IACpB,CAAC,EAAE,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC,CAAC;IAEtB,MAAM,IAAI,GAAG,mBAAmB,CAAC,GAAG,CAAC,CAAC;IACtC,MAAM,IAAI,GAAG,IAAI,IAAI,GAAG,CAAC;IAEzB,OAAO,CACL,MAAC,IAAI,IAAC,EAAE,EAAE,cAAc,EAAE,SAAS,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,EAAE,GAAG,EAAE,GAAG,aACjE,KAAC,UAAU,IACT,IAAI,EAAE,mBAAmB,CAAC,IAAI,IAAI,EAAE,CAAC,EACrC,SAAS,EAAE,cAAc,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS,EACjD,gBAAgB,EAAE,GAAG,EAAE;oBACrB,iBAAiB,CAAC,IAAI,CAAC,CAAC;gBAC1B,CAAC,EACD,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,GAAG,EAAE,CAAC,SAAS,EAAE,CAAC,GAAG,CAAC,gBACnB,GAAG,CAAC,CAAC,SAAS,CAAC,KAAK,IAAI,EAAE,GACtC,EACF,KAAC,MAAM,OACD,SAAS,EACb,OAAO,EAAC,MAAM,EACd,QAAQ,EAAE,CAAC,UAAU,EACrB,OAAO,EAAE,eAAe,gBACZ,GAAG,CAAC,CAAC,UAAU,CAAC,KAAK,IAAI,EAAE,YAEtC,IAAI,GACE,IACJ,CACR,CAAC;AACJ,CAAC,CACF,CAAC;AAEF,eAAe,QAAQ,CAAC","sourcesContent":["import { forwardRef, PropsWithoutRef, FC, Ref, useCallback, useState } from 'react';\nimport styled, { css } from 'styled-components';\n\nimport { ForwardProps, BaseProps } from '../../types';\nimport { defaultThemeProp } from '../../theme';\nimport Button, { StyledButtonLink } from '../Button';\nimport Grid from '../Grid';\nimport { useI18n } from '../../hooks';\n\nimport { getKindFromMimeType, getMimeTypeFromFile } from './utils';\nimport FileVisual, { FileVisualProps, StyledFileVisual } from './FileVisual';\n\nexport interface FileItemProps extends BaseProps {\n /** Name of the file. */\n name: string;\n /** Url of the file. */\n url: string;\n /** A string to be used as an image src for a attachment thumbnail. Falls back to a provided icon or the default attachment icon. */\n thumbnail?: FileVisualProps['thumbnail'];\n /** When passed, it will make the icon/thumbnail region actionable. Passes file url as the parameter. */\n onPreview?: (url: FileItemProps['url']) => void;\n /** When passed, it will make the name region actionable. Passes file url as the parameter. */\n onDownload?: (url: FileItemProps['url']) => void;\n /** Ref for the wrapping element. */\n ref?: Ref<HTMLButtonElement>;\n}\n\nconst StyledFileItem = styled.div(({ theme: { base, components } }) => {\n return css`\n border-radius: calc(0.5 * ${base['border-radius']});\n\n > ${StyledFileVisual} {\n border-start-start-radius: inherit;\n border-end-start-radius: inherit;\n border-start-end-radius: 0;\n border-end-end-radius: 0;\n height: ${components.input.height};\n width: ${components.input.height};\n }\n\n > ${StyledFileVisual} + ${StyledButtonLink} {\n margin-inline-start: 0;\n border: 0.0625rem solid ${base.palette['border-line']};\n background-color: ${base.palette['primary-background']};\n opacity: 1;\n padding: 0 ${base.spacing};\n border-inline-start: 0;\n border-start-start-radius: 0;\n border-end-start-radius: 0;\n border-start-end-radius: inherit;\n border-end-end-radius: inherit;\n white-space: nowrap;\n overflow: hidden;\n text-overflow: ellipsis;\n }\n `;\n});\n\nStyledFileItem.defaultProps = defaultThemeProp;\n\nconst FileItem: FC<FileItemProps & ForwardProps> = forwardRef(\n (props: PropsWithoutRef<FileItemProps>, ref: FileItemProps['ref']) => {\n const { name, url, thumbnail, onPreview, onDownload, ...restProps } = props;\n\n const [thumbnailError, setThumbnailError] = useState(false);\n const t = useI18n();\n\n const onDownloadClick = useCallback(() => {\n onDownload?.(url);\n }, [url, onDownload]);\n\n const type = getMimeTypeFromFile(url);\n const text = name || url;\n\n return (\n <Grid as={StyledFileItem} container={{ cols: 'auto 1fr' }} ref={ref}>\n <FileVisual\n type={getKindFromMimeType(type ?? '')}\n thumbnail={thumbnailError ? undefined : thumbnail}\n onThumbnailError={() => {\n setThumbnailError(true);\n }}\n disabled={!onPreview}\n onClick={() => onPreview?.(url)}\n aria-label={`${t('preview')}: ${text}`}\n />\n <Button\n {...restProps}\n variant='text'\n disabled={!onDownload}\n onClick={onDownloadClick}\n aria-label={`${t('download')}: ${text}`}\n >\n {text}\n </Button>\n </Grid>\n );\n }\n);\n\nexport default FileItem;\n"]}
|
|
@@ -84,7 +84,7 @@ const ListToolbar = forwardRef(({ testId, name, headingTag = 'h3', viewSelector,
|
|
|
84
84
|
setIsSearchOpen(true);
|
|
85
85
|
setTimeout(() => searchInputRef.current?.focus());
|
|
86
86
|
}, onKeyDown: (e) => {
|
|
87
|
-
if (e.target !== searchInputRef.current && e.key === 'Enter') {
|
|
87
|
+
if (e.target !== searchInputRef.current && (e.key === 'Enter' || e.key === ' ')) {
|
|
88
88
|
setIsSearchOpen(true);
|
|
89
89
|
setTimeout(() => {
|
|
90
90
|
searchInputRef.current?.focus();
|