@popsure/dirty-swan 0.49.1 → 0.49.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -67,21 +67,22 @@ var defaultPlaceholders = {
67
67
  yearFormat: "YYYY",
68
68
  error: "Please enter a valid date"
69
69
  };
70
- var isDateValid = function (date, yearBoundaries) {
70
+ var isDateValid = function (date, yearBoundaries, dateObject) {
71
71
  var _a = yearBoundaries.min, min = _a === void 0 ? 0 : _a, _b = yearBoundaries.max, max = _b === void 0 ? 0 : _b;
72
72
  if (!date) {
73
- return { isValid: false, field: 'all' };
73
+ return { isValid: false, errorType: 'default' };
74
74
  }
75
+ var isValidYear = (dateObject === null || dateObject === void 0 ? void 0 : dateObject.year) && String(dateObject === null || dateObject === void 0 ? void 0 : dateObject.year).length === 4;
75
76
  if (max && dayjs(date).isAfter(max + "-01-01", 'year')) {
76
- return { isValid: false, field: 'year' };
77
+ return { isValid: false, errorType: isValidYear ? 'afterMax' : 'default' };
77
78
  }
78
79
  if (min && dayjs(date).isBefore(min + "-01-01", 'year')) {
79
- return { isValid: false, field: 'year' };
80
+ return { isValid: false, errorType: isValidYear ? 'beforeMin' : 'default' };
80
81
  }
81
- var isDateValid = dayjs(date, COLLECTABLE_DATE_FORMAT, true).isValid();
82
+ var isValidDate = dayjs(date, COLLECTABLE_DATE_FORMAT, true).isValid();
82
83
  return {
83
- isValid: isDateValid,
84
- field: isDateValid ? undefined : 'all',
84
+ isValid: isValidDate,
85
+ errorType: 'default'
85
86
  };
86
87
  };
87
88
  var DateSelector = function (_a) {
@@ -95,9 +96,9 @@ var DateSelector = function (_a) {
95
96
  useEffect(function () {
96
97
  var calendarDateValue = value ? isoStringtoCalendarDate(value) : undefined;
97
98
  if (value !== calendarDateValue && (calendarDateValue === null || calendarDateValue === void 0 ? void 0 : calendarDateValue.day) && (calendarDateValue === null || calendarDateValue === void 0 ? void 0 : calendarDateValue.month) && (calendarDateValue === null || calendarDateValue === void 0 ? void 0 : calendarDateValue.year)) {
98
- var _a = isDateValid(value, yearBoundaries), isValid = _a.isValid, field = _a.field;
99
+ var _a = isDateValid(value, yearBoundaries, calendarDateValue), isValid = _a.isValid, errorType = _a.errorType;
99
100
  setInternalValue(calendarDateValue);
100
- setHasError(isValid ? undefined : field);
101
+ setHasError(isValid ? undefined : errorType);
101
102
  setIsDirty(true);
102
103
  }
103
104
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -111,13 +112,16 @@ var DateSelector = function (_a) {
111
112
  month: tempValue.month || 0,
112
113
  year: tempValue.year || 0,
113
114
  });
114
- var _b = isDateValid(formattedDate, yearBoundaries), isValid = _b.isValid, field = _b.field;
115
- if (dayjs(formattedDate, COLLECTABLE_DATE_FORMAT, true).isValid()) {
115
+ var _b = isDateValid(formattedDate, yearBoundaries, tempValue), isValid = _b.isValid, errorType = _b.errorType;
116
+ var isDateInValidFormat = dayjs(formattedDate, COLLECTABLE_DATE_FORMAT, true).isValid();
117
+ if (isDateInValidFormat) {
116
118
  setIsDirty(true);
117
119
  }
118
- setHasError(isValid ? undefined : field);
119
- onChange(isValid ? formattedDate : "");
120
+ setHasError(isValid ? undefined : errorType);
120
121
  setIsCalendarOpen(false);
122
+ if (isDateInValidFormat || isDirty) {
123
+ onChange(isValid ? formattedDate : "");
124
+ }
121
125
  };
122
126
  var handleOnKeyDown = function (event, index) {
123
127
  var _a, _b, _c;
@@ -172,7 +176,7 @@ var DateSelector = function (_a) {
172
176
  };
173
177
  var getInputProps = function (key, index) {
174
178
  var _a, _b;
175
- return (__assign({ 'data-cy': "date-selector-" + key, 'data-testid': "date-selector-" + key, className: styles[key + "Input"], id: key, name: key, maxLength: key === 'year' ? 4 : 2, required: true, label: placeholders === null || placeholders === void 0 ? void 0 : placeholders[key], placeholder: (_a = placeholders === null || placeholders === void 0 ? void 0 : placeholders[key + "Format"]) !== null && _a !== void 0 ? _a : "", labelInsideInput: true, value: (_b = internalValue[key]) !== null && _b !== void 0 ? _b : '', error: (hasError && [key, 'all'].includes(hasError)) && isDirty, type: "text", inputMode: "numeric", ref: function (el) { itemsRef.current[index] = el; }, onKeyUp: function (event) { return handleOnKeyUp(event, index); }, onKeyDown: function (event) { return handleOnKeyDown(event, index); }, onChange: function (_a) {
179
+ return (__assign({ 'data-cy': "date-selector-" + key, 'data-testid': "date-selector-" + key, className: styles[key + "Input"], id: key, name: key, maxLength: key === 'year' ? 4 : 2, required: true, label: placeholders === null || placeholders === void 0 ? void 0 : placeholders[key], placeholder: (_a = placeholders === null || placeholders === void 0 ? void 0 : placeholders[key + "Format"]) !== null && _a !== void 0 ? _a : "", labelInsideInput: true, value: (_b = internalValue[key]) !== null && _b !== void 0 ? _b : '', error: hasError && isDirty, type: "text", inputMode: "numeric", ref: function (el) { itemsRef.current[index] = el; }, onKeyUp: function (event) { return handleOnKeyUp(event, index); }, onKeyDown: function (event) { return handleOnKeyDown(event, index); }, onChange: function (_a) {
176
180
  var target = _a.target;
177
181
  return handleOnChange(key, target.value);
178
182
  } }, (inputProps === null || inputProps === void 0 ? void 0 : inputProps(key)) || {}));
@@ -181,7 +185,11 @@ var DateSelector = function (_a) {
181
185
  jsx(Input, __assign({}, getInputProps('month', 1)), void 0)] }), void 0),
182
186
  jsx(Input, __assign({}, getInputProps('year', 2)), void 0)] }), void 0),
183
187
  jsx(Calendar, { dateFormat: COLLECTABLE_DATE_FORMAT, yearBoundaries: yearBoundaries, displayCalendar: displayCalendar, dayjsLocale: dayjsLocale, firstDayOfWeek: firstDayOfWeek, isOpen: isCalendarOpen, setCalendarOpen: setIsCalendarOpen, value: value, onChange: onChange }, void 0)] }), void 0),
184
- hasError && isDirty && (jsx("p", __assign({ className: "p-p--small tc-red-500 w100 mt8" }, { children: placeholders.error }), void 0))] }, void 0));
188
+ hasError && isDirty && (jsx("p", __assign({ className: classNames(hasError && isDirty ? 'd-block' : 'd-none', "p-p--small tc-red-500 w100 mt8"), "data-testid": "date-error-message" }, { children: {
189
+ default: placeholders.error,
190
+ afterMax: placeholders.errorAfterMaxYear || "Please choose a date before " + (yearBoundaries.max + 1),
191
+ beforeMin: placeholders.errorBeforeMinYear || "Please choose a date after " + (yearBoundaries.min - 1),
192
+ }[hasError || "default"] }), void 0))] }, void 0));
185
193
  };
186
194
 
187
195
  export { DateSelector };
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../../../../node_modules/dayjs/plugin/localeData.js","../../../../node_modules/dayjs/plugin/customParseFormat.js","../../../../../src/lib/util/zeroFill.ts","../../../../../src/lib/util/calendarDate/index.ts","../../../../../src/lib/components/dateSelector/index.tsx"],"sourcesContent":["!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.substr(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_customParseFormat=e()}(this,(function(){\"use strict\";var t={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},e=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^\\s\\d-_:/()]+/,o={},s=function(t){return(t=+t)+(t>68?1900:2e3)};var a=function(t){return function(e){this[t]=+e}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if(\"Z\"===t)return 0;var e=t.match(/([+-]|\\d\\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:\"+\"===e[0]?-n:n}(t)}],u=function(t){var e=o[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?\"pm\":\"PM\");return n},d={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(t){var e=o.ordinal,n=t.match(/\\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\\[|\\]/g,\"\")===t&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(t){var e=u(\"months\"),n=(u(\"monthsShort\")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=u(\"months\").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(t){this.year=s(t)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var o=r&&r.toUpperCase();return n||i[r]||t[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),a=s.length,f=0;f<a;f+=1){var u=s[f],h=d[u],c=h&&h[0],l=h&&h[1];s[f]=l?{regex:c,parser:l}:u.replace(/^\\[|\\]$/g,\"\")}return function(t){for(var e={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,u=t.substr(r),h=o.exec(u)[0];f.call(e,h),t=t.replace(h,\"\")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(s=t.parseTwoDigitYear);var r=e.prototype,i=r.parse;r.parse=function(t){var e=t.date,r=t.utc,s=t.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],u=!0===s[3],h=f||u,d=s[2];u&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(t,e,n){try{if([\"x\",\"X\"].indexOf(e)>-1)return new Date((\"X\"===e?1e3:1)*t);var r=c(e)(t),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,u=r.seconds,h=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=u||0,g=h||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(t){return new Date(\"\")}}(e,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),h&&e!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,t)}}}));","export function zerofill(input: number, size: number = 2) {\n let toReturn = String(input);\n while (toReturn.length < size) {\n toReturn = '0' + toReturn;\n }\n return toReturn;\n}\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { CalendarDate } from '@popsure/public-models';\n\nimport { zerofill } from '../../util/zeroFill';\n\ndayjs.extend(customParseFormat);\n\nexport function calendarDateToISODate(calendarDate: CalendarDate) {\n return `${calendarDate.year}-${zerofill(calendarDate.month)}-${zerofill(\n calendarDate.day\n )}`;\n}\n\nexport function isoStringtoCalendarDate(\n input: string\n): CalendarDate | undefined {\n const date = dayjs(input, 'YYYY-MM-DD');\n const dateValidity = dayjs(input, 'YYYY-MM-DD', true).isValid();\n\n if (dateValidity === false) {\n return;\n }\n\n const year = date.year();\n const month = date.get('month');\n const day = date.date();\n\n return { year, month: month + 1, day };\n}\n","import { useState, useEffect, ChangeEvent, useRef, KeyboardEvent } from 'react';\nimport dayjs from 'dayjs';\nimport localeData from 'dayjs/plugin/localeData';\nimport { CalendarDate } from '@popsure/public-models';\n\nimport {\n calendarDateToISODate,\n isoStringtoCalendarDate,\n} from '../../util/calendarDate';\n\nimport styles from './style.module.scss';\nimport { Input, InputProps } from '../input';\nimport classNames from 'classnames';\nimport { Calendar } from './components/Calendar';\n\ndayjs.extend(localeData);\nconst COLLECTABLE_DATE_FORMAT = 'YYYY-MM-DD';\ntype FormatPlaceholder = 'dayFormat' | 'monthFormat' | 'yearFormat';\n\ninterface DateSelectorInputProps extends InputProps {\n 'data-cy': string;\n 'data-testid': string;\n ref: (el: HTMLInputElement) => void;\n}\n\nexport interface DateSelectorProps {\n value?: string;\n onChange: (date: string) => void;\n yearBoundaries: { min: number; max: number };\n displayCalendar?: boolean;\n dayjsLocale?: ILocale;\n placeholders?: {\n day?: string;\n dayFormat?: string;\n month?: string;\n monthFormat?: string;\n year?: string;\n yearFormat?: string;\n error?: string;\n };\n firstDayOfWeek?: number;\n inputProps?: (key: keyof CalendarDate) => Partial<DateSelectorInputProps>;\n}\n\nconst defaultPlaceholders: DateSelectorProps[\"placeholders\"] = {\n day: \"Day\",\n dayFormat: \"DD\",\n month: \"Month\",\n monthFormat: \"MM\",\n year: \"Year\",\n yearFormat: \"YYYY\",\n error: \"Please enter a valid date\"\n}\n\ntype ErrorField = 'all' | 'day' | 'month' | 'year' | undefined;\n\nconst isDateValid = (\n date: string | undefined,\n yearBoundaries: DateSelectorProps[\"yearBoundaries\"]\n): {\n isValid: boolean;\n field?: ErrorField;\n} => {\n const { min = 0, max = 0 } = yearBoundaries;\n\n if (!date) {\n return { isValid: false, field: 'all' };\n }\n\n if (max && dayjs(date).isAfter(`${max}-01-01`, 'year')) { \n return { isValid: false, field: 'year' };\n }\n \n if (min && dayjs(date).isBefore(`${min}-01-01`, 'year')) { \n return { isValid: false, field: 'year' };\n }\n \n const isDateValid = dayjs(date, COLLECTABLE_DATE_FORMAT, true).isValid();\n\n return {\n isValid: isDateValid,\n field: isDateValid ? undefined : 'all',\n };\n}\n\nexport const DateSelector = ({\n value,\n onChange,\n placeholders: placeholdersProps,\n yearBoundaries,\n displayCalendar,\n dayjsLocale,\n firstDayOfWeek = 0,\n inputProps,\n}: DateSelectorProps) => {\n const placeholders = {\n ...defaultPlaceholders,\n ...placeholdersProps\n }\n\n const itemsRef = useRef<HTMLInputElement[]>([]);\n const [isDirty, setIsDirty] = useState(false);\n const [hasError, setHasError] = useState<ErrorField>();\n const [isCalendarOpen, setIsCalendarOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<Partial<CalendarDate>>({});\n\n useEffect(() => {\n const calendarDateValue = value ? isoStringtoCalendarDate(value) : undefined;\n\n if(value !== calendarDateValue && calendarDateValue?.day && calendarDateValue?.month && calendarDateValue?.year) {\n const { isValid, field } = isDateValid(value, yearBoundaries)\n setInternalValue(calendarDateValue)\n setHasError(isValid ? undefined : field);\n setIsDirty(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]); \n\n\n const handleOnChange = (key: keyof CalendarDate, v?: string) => {\n const tempValue = { ...internalValue, [key]: v || undefined };\n setInternalValue(tempValue);\n\n const formattedDate = calendarDateToISODate({\n day: tempValue.day || 0,\n month: tempValue.month || 0,\n year: tempValue.year || 0,\n })\n \n const { isValid, field } = isDateValid(formattedDate, yearBoundaries);\n\n if (dayjs(formattedDate, COLLECTABLE_DATE_FORMAT, true).isValid()) {\n setIsDirty(true);\n }\n\n setHasError(isValid ? undefined : field);\n onChange(isValid ? formattedDate : \"\");\n setIsCalendarOpen(false);\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n const currentInput = itemsRef.current?.[index];\n const inputSelectionStart = currentInput?.selectionStart;\n const inputSelectionEnd = currentInput?.selectionEnd;\n\n if (\n // is not day input\n index > 0 &&\n // has clicked backspace or arrow left\n ['Backspace', \"ArrowLeft\"].includes(event.key) && \n // is focused at the first character of the input\n inputSelectionStart === 0 && inputSelectionEnd === 0\n ) {\n const prevInput = itemsRef.current?.[index - 1];\n\n event.preventDefault();\n prevInput?.focus();\n prevInput?.setSelectionRange(0, 3);\n }\n\n if (\n // is not year input\n index < 2\n // has clicked arrow right\n && event.key === \"ArrowRight\"\n // is focused at the last character of the input value\n && inputSelectionStart === currentInput.value.length\n ) {\n const nextInput = itemsRef.current?.[index + 1];\n \n event.preventDefault();\n nextInput?.focus();\n nextInput?.setSelectionRange(0, index === 1 ? 4 : 3);\n }\n }\n\n const handleOnKeyUp = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n const currentInput = itemsRef.current?.[index];\n const inputSelectionStart = currentInput?.selectionStart;\n\n if (\n // is not year input\n index < 2\n // is a number key\n && /^\\d+$/.test(event.key)\n && (\n // is focused at the last character of the input value\n inputSelectionStart === currentInput.maxLength \n // or month value is over 1 or day value is over 3\n || Number(currentInput.value) > (index === 1 ? 1 : 3)\n )\n ) {\n const nextInput = itemsRef.current?.[index + 1];\n \n event.preventDefault();\n event.stopPropagation();\n \n nextInput?.focus();\n nextInput?.setSelectionRange(0, index === 1 ? 4 : 3);\n }\n }\n\n const getInputProps = (key: keyof CalendarDate, index: number): DateSelectorInputProps => ({\n 'data-cy': `date-selector-${key}`,\n 'data-testid': `date-selector-${key}`,\n className: styles[`${key}Input`],\n id: key,\n name: key,\n maxLength: key === 'year' ? 4 : 2,\n required: true,\n label: placeholders?.[key],\n placeholder: placeholders?.[`${key}Format` as FormatPlaceholder] ?? \"\",\n labelInsideInput: true,\n value: internalValue[key] ?? '',\n error: (hasError && [key, 'all'].includes(hasError)) && isDirty,\n type: \"text\", \n inputMode: \"numeric\",\n ref: (el: HTMLInputElement) => { itemsRef.current[index] = el }, \n onKeyUp: (event: KeyboardEvent<HTMLInputElement>) => handleOnKeyUp(event, index),\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => handleOnKeyDown(event, index),\n onChange: ({ target }: ChangeEvent<HTMLInputElement>) => handleOnChange(key, target.value),\n ...inputProps?.(key) || {},\n });\n\n return (\n <div>\n <div className=\"d-flex ai-center\">\n <div className={classNames(styles.container, \"d-flex gap8\")}>\n <div className={\"d-flex gap8 jc-between\"}>\n <Input {...getInputProps('day', 0)} />\n\n <Input {...getInputProps('month', 1)} />\n </div>\n\n <Input {...getInputProps('year', 2)} />\n </div>\n\n <Calendar\n dateFormat={COLLECTABLE_DATE_FORMAT}\n yearBoundaries={yearBoundaries}\n displayCalendar={displayCalendar}\n dayjsLocale={dayjsLocale}\n firstDayOfWeek={firstDayOfWeek}\n isOpen={isCalendarOpen}\n setCalendarOpen={setIsCalendarOpen}\n value={value}\n onChange={onChange}\n />\n </div>\n\n {hasError && isDirty && (\n <p className=\"p-p--small tc-red-500 w100 mt8\">\n {placeholders.error}\n </p>\n )}\n </div>\n );\n};\n"],"names":["this","_jsxs","_jsx"],"mappings":"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AC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CA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AE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CA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"}
1
+ {"version":3,"file":"index.js","sources":["../../../../node_modules/dayjs/plugin/localeData.js","../../../../node_modules/dayjs/plugin/customParseFormat.js","../../../../../src/lib/util/zeroFill.ts","../../../../../src/lib/util/calendarDate/index.ts","../../../../../src/lib/components/dateSelector/index.tsx"],"sourcesContent":["!function(n,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(n=\"undefined\"!=typeof globalThis?globalThis:n||self).dayjs_plugin_localeData=e()}(this,(function(){\"use strict\";return function(n,e,t){var r=e.prototype,o=function(n){return n&&(n.indexOf?n:n.s)},u=function(n,e,t,r,u){var i=n.name?n:n.$locale(),a=o(i[e]),s=o(i[t]),f=a||s.map((function(n){return n.substr(0,r)}));if(!u)return f;var d=i.weekStart;return f.map((function(n,e){return f[(e+(d||0))%7]}))},i=function(){return t.Ls[t.locale()]},a=function(n,e){return n.formats[e]||function(n){return n.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(n,e,t){return e||t.slice(1)}))}(n.formats[e.toUpperCase()])},s=function(){var n=this;return{months:function(e){return e?e.format(\"MMMM\"):u(n,\"months\")},monthsShort:function(e){return e?e.format(\"MMM\"):u(n,\"monthsShort\",\"months\",3)},firstDayOfWeek:function(){return n.$locale().weekStart||0},weekdays:function(e){return e?e.format(\"dddd\"):u(n,\"weekdays\")},weekdaysMin:function(e){return e?e.format(\"dd\"):u(n,\"weekdaysMin\",\"weekdays\",2)},weekdaysShort:function(e){return e?e.format(\"ddd\"):u(n,\"weekdaysShort\",\"weekdays\",3)},longDateFormat:function(e){return a(n.$locale(),e)},meridiem:this.$locale().meridiem,ordinal:this.$locale().ordinal}};r.localeData=function(){return s.bind(this)()},t.localeData=function(){var n=i();return{firstDayOfWeek:function(){return n.weekStart||0},weekdays:function(){return t.weekdays()},weekdaysShort:function(){return t.weekdaysShort()},weekdaysMin:function(){return t.weekdaysMin()},months:function(){return t.months()},monthsShort:function(){return t.monthsShort()},longDateFormat:function(e){return a(n,e)},meridiem:n.meridiem,ordinal:n.ordinal}},t.months=function(){return u(i(),\"months\")},t.monthsShort=function(){return u(i(),\"monthsShort\",\"months\",3)},t.weekdays=function(n){return u(i(),\"weekdays\",null,null,n)},t.weekdaysShort=function(n){return u(i(),\"weekdaysShort\",\"weekdays\",3,n)},t.weekdaysMin=function(n){return u(i(),\"weekdaysMin\",\"weekdays\",2,n)}}}));","!function(t,e){\"object\"==typeof exports&&\"undefined\"!=typeof module?module.exports=e():\"function\"==typeof define&&define.amd?define(e):(t=\"undefined\"!=typeof globalThis?globalThis:t||self).dayjs_plugin_customParseFormat=e()}(this,(function(){\"use strict\";var t={LTS:\"h:mm:ss A\",LT:\"h:mm A\",L:\"MM/DD/YYYY\",LL:\"MMMM D, YYYY\",LLL:\"MMMM D, YYYY h:mm A\",LLLL:\"dddd, MMMM D, YYYY h:mm A\"},e=/(\\[[^[]*\\])|([-:/.()\\s]+)|(A|a|YYYY|YY?|MM?M?M?|Do|DD?|hh?|HH?|mm?|ss?|S{1,3}|z|ZZ?)/g,n=/\\d\\d/,r=/\\d\\d?/,i=/\\d*[^\\s\\d-_:/()]+/,o={},s=function(t){return(t=+t)+(t>68?1900:2e3)};var a=function(t){return function(e){this[t]=+e}},f=[/[+-]\\d\\d:?(\\d\\d)?|Z/,function(t){(this.zone||(this.zone={})).offset=function(t){if(!t)return 0;if(\"Z\"===t)return 0;var e=t.match(/([+-]|\\d\\d)/g),n=60*e[1]+(+e[2]||0);return 0===n?0:\"+\"===e[0]?-n:n}(t)}],u=function(t){var e=o[t];return e&&(e.indexOf?e:e.s.concat(e.f))},h=function(t,e){var n,r=o.meridiem;if(r){for(var i=1;i<=24;i+=1)if(t.indexOf(r(i,0,e))>-1){n=i>12;break}}else n=t===(e?\"pm\":\"PM\");return n},d={A:[i,function(t){this.afternoon=h(t,!1)}],a:[i,function(t){this.afternoon=h(t,!0)}],S:[/\\d/,function(t){this.milliseconds=100*+t}],SS:[n,function(t){this.milliseconds=10*+t}],SSS:[/\\d{3}/,function(t){this.milliseconds=+t}],s:[r,a(\"seconds\")],ss:[r,a(\"seconds\")],m:[r,a(\"minutes\")],mm:[r,a(\"minutes\")],H:[r,a(\"hours\")],h:[r,a(\"hours\")],HH:[r,a(\"hours\")],hh:[r,a(\"hours\")],D:[r,a(\"day\")],DD:[n,a(\"day\")],Do:[i,function(t){var e=o.ordinal,n=t.match(/\\d+/);if(this.day=n[0],e)for(var r=1;r<=31;r+=1)e(r).replace(/\\[|\\]/g,\"\")===t&&(this.day=r)}],M:[r,a(\"month\")],MM:[n,a(\"month\")],MMM:[i,function(t){var e=u(\"months\"),n=(u(\"monthsShort\")||e.map((function(t){return t.substr(0,3)}))).indexOf(t)+1;if(n<1)throw new Error;this.month=n%12||n}],MMMM:[i,function(t){var e=u(\"months\").indexOf(t)+1;if(e<1)throw new Error;this.month=e%12||e}],Y:[/[+-]?\\d+/,a(\"year\")],YY:[n,function(t){this.year=s(t)}],YYYY:[/\\d{4}/,a(\"year\")],Z:f,ZZ:f};function c(n){var r,i;r=n,i=o&&o.formats;for(var s=(n=r.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g,(function(e,n,r){var o=r&&r.toUpperCase();return n||i[r]||t[r]||i[o].replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g,(function(t,e,n){return e||n.slice(1)}))}))).match(e),a=s.length,f=0;f<a;f+=1){var u=s[f],h=d[u],c=h&&h[0],l=h&&h[1];s[f]=l?{regex:c,parser:l}:u.replace(/^\\[|\\]$/g,\"\")}return function(t){for(var e={},n=0,r=0;n<a;n+=1){var i=s[n];if(\"string\"==typeof i)r+=i.length;else{var o=i.regex,f=i.parser,u=t.substr(r),h=o.exec(u)[0];f.call(e,h),t=t.replace(h,\"\")}}return function(t){var e=t.afternoon;if(void 0!==e){var n=t.hours;e?n<12&&(t.hours+=12):12===n&&(t.hours=0),delete t.afternoon}}(e),e}}return function(t,e,n){n.p.customParseFormat=!0,t&&t.parseTwoDigitYear&&(s=t.parseTwoDigitYear);var r=e.prototype,i=r.parse;r.parse=function(t){var e=t.date,r=t.utc,s=t.args;this.$u=r;var a=s[1];if(\"string\"==typeof a){var f=!0===s[2],u=!0===s[3],h=f||u,d=s[2];u&&(d=s[2]),o=this.$locale(),!f&&d&&(o=n.Ls[d]),this.$d=function(t,e,n){try{if([\"x\",\"X\"].indexOf(e)>-1)return new Date((\"X\"===e?1e3:1)*t);var r=c(e)(t),i=r.year,o=r.month,s=r.day,a=r.hours,f=r.minutes,u=r.seconds,h=r.milliseconds,d=r.zone,l=new Date,m=s||(i||o?1:l.getDate()),M=i||l.getFullYear(),Y=0;i&&!o||(Y=o>0?o-1:l.getMonth());var p=a||0,v=f||0,D=u||0,g=h||0;return d?new Date(Date.UTC(M,Y,m,p,v,D,g+60*d.offset*1e3)):n?new Date(Date.UTC(M,Y,m,p,v,D,g)):new Date(M,Y,m,p,v,D,g)}catch(t){return new Date(\"\")}}(e,a,r),this.init(),d&&!0!==d&&(this.$L=this.locale(d).$L),h&&e!=this.format(a)&&(this.$d=new Date(\"\")),o={}}else if(a instanceof Array)for(var l=a.length,m=1;m<=l;m+=1){s[1]=a[m-1];var M=n.apply(this,s);if(M.isValid()){this.$d=M.$d,this.$L=M.$L,this.init();break}m===l&&(this.$d=new Date(\"\"))}else i.call(this,t)}}}));","export function zerofill(input: number, size: number = 2) {\n let toReturn = String(input);\n while (toReturn.length < size) {\n toReturn = '0' + toReturn;\n }\n return toReturn;\n}\n","import dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { CalendarDate } from '@popsure/public-models';\n\nimport { zerofill } from '../../util/zeroFill';\n\ndayjs.extend(customParseFormat);\n\nexport function calendarDateToISODate(calendarDate: CalendarDate) {\n return `${calendarDate.year}-${zerofill(calendarDate.month)}-${zerofill(\n calendarDate.day\n )}`;\n}\n\nexport function isoStringtoCalendarDate(\n input: string\n): CalendarDate | undefined {\n const date = dayjs(input, 'YYYY-MM-DD');\n const dateValidity = dayjs(input, 'YYYY-MM-DD', true).isValid();\n\n if (dateValidity === false) {\n return;\n }\n\n const year = date.year();\n const month = date.get('month');\n const day = date.date();\n\n return { year, month: month + 1, day };\n}\n","import { useState, useEffect, ChangeEvent, useRef, KeyboardEvent } from 'react';\nimport dayjs from 'dayjs';\nimport localeData from 'dayjs/plugin/localeData';\nimport { CalendarDate } from '@popsure/public-models';\n\nimport {\n calendarDateToISODate,\n isoStringtoCalendarDate,\n} from '../../util/calendarDate';\n\nimport styles from './style.module.scss';\nimport { Input, InputProps } from '../input';\nimport classNames from 'classnames';\nimport { Calendar } from './components/Calendar';\n\ndayjs.extend(localeData);\nconst COLLECTABLE_DATE_FORMAT = 'YYYY-MM-DD';\ntype FormatPlaceholder = 'dayFormat' | 'monthFormat' | 'yearFormat';\n\ninterface DateSelectorInputProps extends InputProps {\n 'data-cy': string;\n 'data-testid': string;\n ref: (el: HTMLInputElement) => void;\n}\n\nexport interface DateSelectorProps {\n value?: string;\n onChange: (date: string) => void;\n yearBoundaries: { min: number; max: number };\n displayCalendar?: boolean;\n dayjsLocale?: ILocale;\n placeholders?: {\n day?: string;\n dayFormat?: string;\n month?: string;\n monthFormat?: string;\n year?: string;\n yearFormat?: string;\n error?: string;\n errorBeforeMinYear?: string;\n errorAfterMaxYear?: string;\n };\n firstDayOfWeek?: number;\n inputProps?: (key: keyof CalendarDate) => Partial<DateSelectorInputProps>;\n}\n\nconst defaultPlaceholders: DateSelectorProps[\"placeholders\"] = {\n day: \"Day\",\n dayFormat: \"DD\",\n month: \"Month\",\n monthFormat: \"MM\",\n year: \"Year\",\n yearFormat: \"YYYY\",\n error: \"Please enter a valid date\"\n}\n\ntype ErrorType = 'afterMax' | 'beforeMin' | 'default';\n\nconst isDateValid = (\n date: string | undefined,\n yearBoundaries: DateSelectorProps[\"yearBoundaries\"],\n dateObject: Partial<CalendarDate>,\n): {\n isValid: boolean;\n errorType?: ErrorType;\n} => {\n const { min = 0, max = 0 } = yearBoundaries;\n \n if (!date) {\n return { isValid: false, errorType: 'default' };\n }\n\n const isValidYear = dateObject?.year && String(dateObject?.year).length === 4;\n\n if (max && dayjs(date).isAfter(`${max}-01-01`, 'year')) { \n return { isValid: false, errorType: isValidYear ? 'afterMax' : 'default' };\n }\n \n if (min && dayjs(date).isBefore(`${min}-01-01`, 'year')) { \n return { isValid: false, errorType: isValidYear ? 'beforeMin' : 'default' };\n }\n \n const isValidDate = dayjs(date, COLLECTABLE_DATE_FORMAT, true).isValid();\n\n return {\n isValid: isValidDate,\n errorType: 'default'\n };\n}\n\nexport const DateSelector = ({\n value,\n onChange,\n placeholders: placeholdersProps,\n yearBoundaries,\n displayCalendar,\n dayjsLocale,\n firstDayOfWeek = 0,\n inputProps,\n}: DateSelectorProps) => {\n const placeholders = {\n ...defaultPlaceholders,\n ...placeholdersProps\n }\n\n const itemsRef = useRef<HTMLInputElement[]>([]);\n const [isDirty, setIsDirty] = useState(false);\n const [hasError, setHasError] = useState<ErrorType>();\n const [isCalendarOpen, setIsCalendarOpen] = useState(false);\n const [internalValue, setInternalValue] = useState<Partial<CalendarDate>>({});\n\n useEffect(() => {\n const calendarDateValue = value ? isoStringtoCalendarDate(value) : undefined;\n\n if(value !== calendarDateValue && calendarDateValue?.day && calendarDateValue?.month && calendarDateValue?.year) {\n const { isValid, errorType } = isDateValid(value, yearBoundaries, calendarDateValue)\n setInternalValue(calendarDateValue)\n setHasError(isValid ? undefined : errorType);\n setIsDirty(true);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [value]); \n\n\n const handleOnChange = (key: keyof CalendarDate, v?: string) => {\n const tempValue = { ...internalValue, [key]: v || undefined };\n setInternalValue(tempValue);\n\n const formattedDate = calendarDateToISODate({\n day: tempValue.day || 0,\n month: tempValue.month || 0,\n year: tempValue.year || 0,\n })\n \n const { isValid, errorType } = isDateValid(formattedDate, yearBoundaries, tempValue);\n const isDateInValidFormat = dayjs(formattedDate, COLLECTABLE_DATE_FORMAT, true).isValid();\n \n if (isDateInValidFormat) {\n setIsDirty(true);\n }\n\n setHasError(isValid ? undefined : errorType);\n setIsCalendarOpen(false);\n\n if (isDateInValidFormat || isDirty) {\n onChange(isValid ? formattedDate : \"\");\n }\n };\n\n const handleOnKeyDown = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n const currentInput = itemsRef.current?.[index];\n const inputSelectionStart = currentInput?.selectionStart;\n const inputSelectionEnd = currentInput?.selectionEnd;\n\n if (\n // is not day input\n index > 0 &&\n // has clicked backspace or arrow left\n ['Backspace', \"ArrowLeft\"].includes(event.key) && \n // is focused at the first character of the input\n inputSelectionStart === 0 && inputSelectionEnd === 0\n ) {\n const prevInput = itemsRef.current?.[index - 1];\n\n event.preventDefault();\n prevInput?.focus();\n prevInput?.setSelectionRange(0, 3);\n }\n\n if (\n // is not year input\n index < 2\n // has clicked arrow right\n && event.key === \"ArrowRight\"\n // is focused at the last character of the input value\n && inputSelectionStart === currentInput.value.length\n ) {\n const nextInput = itemsRef.current?.[index + 1];\n \n event.preventDefault();\n nextInput?.focus();\n nextInput?.setSelectionRange(0, index === 1 ? 4 : 3);\n }\n }\n\n const handleOnKeyUp = (event: KeyboardEvent<HTMLInputElement>, index: number) => {\n const currentInput = itemsRef.current?.[index];\n const inputSelectionStart = currentInput?.selectionStart;\n\n if (\n // is not year input\n index < 2\n // is a number key\n && /^\\d+$/.test(event.key)\n && (\n // is focused at the last character of the input value\n inputSelectionStart === currentInput.maxLength \n // or month value is over 1 or day value is over 3\n || Number(currentInput.value) > (index === 1 ? 1 : 3)\n )\n ) {\n const nextInput = itemsRef.current?.[index + 1];\n \n event.preventDefault();\n event.stopPropagation();\n \n nextInput?.focus();\n nextInput?.setSelectionRange(0, index === 1 ? 4 : 3);\n }\n }\n\n const getInputProps = (key: keyof CalendarDate, index: number): DateSelectorInputProps => ({\n 'data-cy': `date-selector-${key}`,\n 'data-testid': `date-selector-${key}`,\n className: styles[`${key}Input`],\n id: key,\n name: key,\n maxLength: key === 'year' ? 4 : 2,\n required: true,\n label: placeholders?.[key],\n placeholder: placeholders?.[`${key}Format` as FormatPlaceholder] ?? \"\",\n labelInsideInput: true,\n value: internalValue[key] ?? '',\n error: hasError && isDirty,\n type: \"text\", \n inputMode: \"numeric\",\n ref: (el: HTMLInputElement) => { itemsRef.current[index] = el }, \n onKeyUp: (event: KeyboardEvent<HTMLInputElement>) => handleOnKeyUp(event, index),\n onKeyDown: (event: KeyboardEvent<HTMLInputElement>) => handleOnKeyDown(event, index),\n onChange: ({ target }: ChangeEvent<HTMLInputElement>) => handleOnChange(key, target.value),\n ...inputProps?.(key) || {},\n });\n\n return (\n <div>\n <div className=\"d-flex ai-center\">\n <div className={classNames(styles.container, \"d-flex gap8\")}>\n <div className={\"d-flex gap8 jc-between\"}>\n <Input {...getInputProps('day', 0)} />\n\n <Input {...getInputProps('month', 1)} />\n </div>\n\n <Input {...getInputProps('year', 2)} />\n </div>\n\n <Calendar\n dateFormat={COLLECTABLE_DATE_FORMAT}\n yearBoundaries={yearBoundaries}\n displayCalendar={displayCalendar}\n dayjsLocale={dayjsLocale}\n firstDayOfWeek={firstDayOfWeek}\n isOpen={isCalendarOpen}\n setCalendarOpen={setIsCalendarOpen}\n value={value}\n onChange={onChange}\n />\n </div>\n\n {hasError && isDirty && (\n <p \n className={classNames(\n hasError && isDirty ? 'd-block' : 'd-none',\n \"p-p--small tc-red-500 w100 mt8\"\n )}\n data-testid=\"date-error-message\"\n >\n {{\n default: placeholders.error,\n afterMax: placeholders.errorAfterMaxYear || `Please choose a date before ${yearBoundaries.max + 1}`,\n beforeMin: placeholders.errorBeforeMinYear || `Please choose a date after ${yearBoundaries.min - 1}`,\n }[hasError || \"default\"]}\n </p>\n )}\n </div>\n );\n};\n"],"names":["this","_jsxs","_jsx"],"mappings":"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AC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,EAAE,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,YAAY,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,aAAa,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,SAAS,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,EAAE,EAAE,EAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,mCAAmC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,gCAAgC,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,UAAU,CAAC,EAAE,EAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,MAAM,CAAC,KAAI,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,GAAG,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,UAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,iBAAiB,GAAG,CAAC,CAAC,CAAC,CAAC,iBAAiB,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,QAAQ,EAAE,OAAO,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,CAAC,GAAG,GAAG,CAAC,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,OAAO,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,OAAO,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAE,CAAC,KAAK,GAAG,CAAC,YAAY,KAAK,CAAC,IAAI,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,EAAE,CAAC,IAAI,IAAI,CAAC,EAAE,CAAC,EAAC,CAAC,KAAK,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,EAAC,EAAC,CAAC,CAAC,EAAE;;;;;SCAhpH,QAAQ,CAAC,KAAa,EAAE,IAAgB;IAAhB,qBAAA,EAAA,QAAgB;IACtD,IAAI,QAAQ,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7B,OAAO,QAAQ,CAAC,MAAM,GAAG,IAAI,EAAE;QAC7B,QAAQ,GAAG,GAAG,GAAG,QAAQ,CAAC;KAC3B;IACD,OAAO,QAAQ,CAAC;AAClB;;ACAA,KAAK,CAAC,MAAM,CAAC,iBAAiB,CAAC,CAAC;SAEhB,qBAAqB,CAAC,YAA0B;IAC9D,OAAU,YAAY,CAAC,IAAI,SAAI,QAAQ,CAAC,YAAY,CAAC,KAAK,CAAC,SAAI,QAAQ,CACrE,YAAY,CAAC,GAAG,CACf,CAAC;AACN,CAAC;SAEe,uBAAuB,CACrC,KAAa;IAEb,IAAM,IAAI,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,CAAC,CAAC;IACxC,IAAM,YAAY,GAAG,KAAK,CAAC,KAAK,EAAE,YAAY,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAEhE,IAAI,YAAY,KAAK,KAAK,EAAE;QAC1B,OAAO;KACR;IAED,IAAM,IAAI,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IACzB,IAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;IAChC,IAAM,GAAG,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;IAExB,OAAO,EAAE,IAAI,MAAA,EAAE,KAAK,EAAE,KAAK,GAAG,CAAC,EAAE,GAAG,KAAA,EAAE,CAAC;AACzC;;;;;;ACdA,KAAK,CAAC,MAAM,CAAC,UAAU,CAAC,CAAC;AACzB,IAAM,uBAAuB,GAAG,YAAY,CAAC;AA8B7C,IAAM,mBAAmB,GAAsC;IAC7D,GAAG,EAAE,KAAK;IACV,SAAS,EAAE,IAAI;IACf,KAAK,EAAE,OAAO;IACd,WAAW,EAAE,IAAI;IACjB,IAAI,EAAE,MAAM;IACZ,UAAU,EAAE,MAAM;IAClB,KAAK,EAAE,2BAA2B;CACnC,CAAA;AAID,IAAM,WAAW,GAAG,UAClB,IAAwB,EACxB,cAAmD,EACnD,UAAiC;IAKzB,IAAA,KAAqB,cAAc,IAA5B,EAAP,GAAG,mBAAG,CAAC,KAAA,EAAE,KAAY,cAAc,IAAnB,EAAP,GAAG,mBAAG,CAAC,KAAA,CAAoB;IAE5C,IAAI,CAAC,IAAI,EAAE;QACT,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,SAAS,EAAE,CAAC;KACjD;IAED,IAAM,WAAW,GAAG,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,KAAI,MAAM,CAAC,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAE,IAAI,CAAC,CAAC,MAAM,KAAK,CAAC,CAAC;IAE9E,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,OAAO,CAAI,GAAG,WAAQ,EAAE,MAAM,CAAC,EAAE;QACtD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,UAAU,GAAG,SAAS,EAAE,CAAC;KAC5E;IAED,IAAI,GAAG,IAAI,KAAK,CAAC,IAAI,CAAC,CAAC,QAAQ,CAAI,GAAG,WAAQ,EAAE,MAAM,CAAC,EAAE;QACvD,OAAO,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,WAAW,GAAG,WAAW,GAAG,SAAS,EAAE,CAAC;KAC7E;IAED,IAAM,WAAW,GAAG,KAAK,CAAC,IAAI,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;IAEzE,OAAO;QACL,OAAO,EAAE,WAAW;QACpB,SAAS,EAAE,SAAS;KACrB,CAAC;AACJ,CAAC,CAAA;IAEY,YAAY,GAAG,UAAC,EAST;QARlB,KAAK,WAAA,EACL,QAAQ,cAAA,EACM,iBAAiB,kBAAA,EAC/B,cAAc,oBAAA,EACd,eAAe,qBAAA,EACf,WAAW,iBAAA,EACX,sBAAkB,EAAlB,cAAc,mBAAG,CAAC,KAAA,EAClB,UAAU,gBAAA;IAEV,IAAM,YAAY,yBACb,mBAAmB,GACnB,iBAAiB,CACrB,CAAA;IAED,IAAM,QAAQ,GAAG,MAAM,CAAqB,EAAE,CAAC,CAAC;IAC1C,IAAA,KAAwB,QAAQ,CAAC,KAAK,CAAC,EAAtC,OAAO,QAAA,EAAE,UAAU,QAAmB,CAAC;IACxC,IAAA,KAA0B,QAAQ,EAAa,EAA9C,QAAQ,QAAA,EAAE,WAAW,QAAyB,CAAC;IAChD,IAAA,KAAsC,QAAQ,CAAC,KAAK,CAAC,EAApD,cAAc,QAAA,EAAE,iBAAiB,QAAmB,CAAC;IACtD,IAAA,KAAoC,QAAQ,CAAwB,EAAE,CAAC,EAAtE,aAAa,QAAA,EAAE,gBAAgB,QAAuC,CAAC;IAE9E,SAAS,CAAC;QACR,IAAM,iBAAiB,GAAG,KAAK,GAAG,uBAAuB,CAAC,KAAK,CAAC,GAAG,SAAS,CAAC;QAE7E,IAAG,KAAK,KAAK,iBAAiB,KAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,GAAG,CAAA,KAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,KAAK,CAAA,KAAI,iBAAiB,aAAjB,iBAAiB,uBAAjB,iBAAiB,CAAE,IAAI,CAAA,EAAE;YACzG,IAAA,KAAyB,WAAW,CAAC,KAAK,EAAE,cAAc,EAAE,iBAAiB,CAAC,EAA5E,OAAO,aAAA,EAAE,SAAS,eAA0D,CAAA;YACpF,gBAAgB,CAAC,iBAAiB,CAAC,CAAA;YACnC,WAAW,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;YAC7C,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;;KAEF,EAAE,CAAC,KAAK,CAAC,CAAC,CAAC;IAGZ,IAAM,cAAc,GAAG,UAAC,GAAuB,EAAE,CAAU;;QACzD,IAAM,SAAS,yBAAQ,aAAa,gBAAG,GAAG,IAAG,CAAC,IAAI,SAAS,MAAE,CAAC;QAC9D,gBAAgB,CAAC,SAAS,CAAC,CAAC;QAE5B,IAAM,aAAa,GAAI,qBAAqB,CAAC;YAC3C,GAAG,EAAE,SAAS,CAAC,GAAG,IAAI,CAAC;YACvB,KAAK,EAAE,SAAS,CAAC,KAAK,IAAI,CAAC;YAC3B,IAAI,EAAE,SAAS,CAAC,IAAI,IAAI,CAAC;SAC1B,CAAC,CAAA;QAEI,IAAA,KAAyB,WAAW,CAAC,aAAa,EAAE,cAAc,EAAE,SAAS,CAAC,EAA5E,OAAO,aAAA,EAAE,SAAS,eAA0D,CAAC;QACrF,IAAM,mBAAmB,GAAG,KAAK,CAAC,aAAa,EAAE,uBAAuB,EAAE,IAAI,CAAC,CAAC,OAAO,EAAE,CAAC;QAE1F,IAAI,mBAAmB,EAAE;YACvB,UAAU,CAAC,IAAI,CAAC,CAAC;SAClB;QAED,WAAW,CAAC,OAAO,GAAG,SAAS,GAAG,SAAS,CAAC,CAAC;QAC7C,iBAAiB,CAAC,KAAK,CAAC,CAAC;QAEzB,IAAI,mBAAmB,IAAI,OAAO,EAAE;YAClC,QAAQ,CAAC,OAAO,GAAG,aAAa,GAAG,EAAE,CAAC,CAAC;SACxC;KACF,CAAC;IAEF,IAAM,eAAe,GAAG,UAAC,KAAsC,EAAE,KAAa;;QAC5E,IAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAG,KAAK,CAAC,CAAC;QAC/C,IAAM,mBAAmB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,CAAC;QACzD,IAAM,iBAAiB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,YAAY,CAAC;QAErD;;QAEE,KAAK,GAAG,CAAC;;YAET,CAAC,WAAW,EAAE,WAAW,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC;;YAE9C,mBAAmB,KAAK,CAAC,IAAI,iBAAiB,KAAK,CAAC,EACpD;YACA,IAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAEhD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAE,CAAC;YACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;SACpC;QAED;;QAEI,KAAK,GAAG,CAAC;;eAEN,KAAK,CAAC,GAAG,KAAK,YAAY;;eAE1B,mBAAmB,KAAK,YAAY,CAAC,KAAK,CAAC,MAAM,EACpD;YACF,IAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAEhD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAE,CAAC;YACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACtD;KACF,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,KAAsC,EAAE,KAAa;;QAC1E,IAAM,YAAY,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAG,KAAK,CAAC,CAAC;QAC/C,IAAM,mBAAmB,GAAG,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAE,cAAc,CAAC;QAEzD;;QAEI,KAAK,GAAG,CAAC;;eAEN,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC;;;YAGxB,mBAAmB,KAAK,YAAY,CAAC,SAAS;;mBAE3C,MAAM,CAAC,YAAY,CAAC,KAAK,CAAC,IAAI,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CACtD,EACD;YACF,IAAM,SAAS,GAAG,MAAA,QAAQ,CAAC,OAAO,0CAAG,KAAK,GAAG,CAAC,CAAC,CAAC;YAEhD,KAAK,CAAC,cAAc,EAAE,CAAC;YACvB,KAAK,CAAC,eAAe,EAAE,CAAC;YAExB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,KAAK,EAAE,CAAC;YACnB,SAAS,aAAT,SAAS,uBAAT,SAAS,CAAE,iBAAiB,CAAC,CAAC,EAAE,KAAK,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC,CAAC;SACtD;KACF,CAAA;IAED,IAAM,aAAa,GAAG,UAAC,GAAuB,EAAE,KAAa;;QAA6B,mBACxF,SAAS,EAAE,mBAAiB,GAAK,EACjC,aAAa,EAAE,mBAAiB,GAAK,EACrC,SAAS,EAAE,MAAM,CAAI,GAAG,UAAO,CAAC,EAChC,EAAE,EAAE,GAAG,EACP,IAAI,EAAE,GAAG,EACT,SAAS,EAAE,GAAG,KAAK,MAAM,GAAG,CAAC,GAAG,CAAC,EACjC,QAAQ,EAAE,IAAI,EACd,KAAK,EAAE,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAG,GAAG,CAAC,EAC1B,WAAW,EAAE,MAAA,YAAY,aAAZ,YAAY,uBAAZ,YAAY,CAAM,GAAG,WAA6B,CAAC,mCAAI,EAAE,EACtE,gBAAgB,EAAE,IAAI,EACtB,KAAK,EAAE,MAAA,aAAa,CAAC,GAAG,CAAC,mCAAI,EAAE,EAC/B,KAAK,EAAE,QAAQ,IAAI,OAAO,EAC1B,IAAI,EAAE,MAAM,EACZ,SAAS,EAAE,SAAS,EACpB,GAAG,EAAE,UAAC,EAAoB,IAAO,QAAQ,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,EAAE,CAAA,EAAE,EAC/D,OAAO,EAAE,UAAC,KAAsC,IAAK,OAAA,aAAa,CAAC,KAAK,EAAE,KAAK,CAAC,GAAA,EAChF,SAAS,EAAE,UAAC,KAAsC,IAAK,OAAA,eAAe,CAAC,KAAK,EAAE,KAAK,CAAC,GAAA,EACpF,QAAQ,EAAE,UAAC,EAAyC;oBAAvC,MAAM,YAAA;gBAAsC,OAAA,cAAc,CAAC,GAAG,EAAE,MAAM,CAAC,KAAK,CAAC;aAAA,IACvF,CAAA,UAAU,aAAV,UAAU,uBAAV,UAAU,CAAG,GAAG,CAAC,KAAI,EAAE,GAC1B;KAAA,CAAC;IAEH,QACEC,yBACEA,uBAAK,SAAS,EAAC,kBAAkB,iBAC/BA,uBAAK,SAAS,EAAE,UAAU,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,iBACzDA,uBAAK,SAAS,EAAE,wBAAwB,iBACtCC,IAAC,KAAK,eAAK,aAAa,CAAC,KAAK,EAAE,CAAC,CAAC,UAAI;oCAEtCA,IAAC,KAAK,eAAK,aAAa,CAAC,OAAO,EAAE,CAAC,CAAC,UAAI,aACpC;4BAENA,IAAC,KAAK,eAAK,aAAa,CAAC,MAAM,EAAE,CAAC,CAAC,UAAI,aACnC;oBAENA,IAAC,QAAQ,IACP,UAAU,EAAE,uBAAuB,EACnC,cAAc,EAAE,cAAc,EAC9B,eAAe,EAAE,eAAe,EAChC,WAAW,EAAE,WAAW,EACxB,cAAc,EAAE,cAAc,EAC9B,MAAM,EAAE,cAAc,EACtB,eAAe,EAAE,iBAAiB,EAClC,KAAK,EAAE,KAAK,EACZ,QAAQ,EAAE,QAAQ,WAClB,aACE;YAEL,QAAQ,IAAI,OAAO,KAClBA,oBACE,SAAS,EAAE,UAAU,CACnB,QAAQ,IAAI,OAAO,GAAG,SAAS,GAAG,QAAQ,EAC1C,gCAAgC,CACjC,iBACW,oBAAoB,gBAE/B;oBACC,OAAO,EAAE,YAAY,CAAC,KAAK;oBAC3B,QAAQ,EAAE,YAAY,CAAC,iBAAiB,IAAI,kCAA+B,cAAc,CAAC,GAAG,GAAG,CAAC,CAAE;oBACnG,SAAS,EAAE,YAAY,CAAC,kBAAkB,IAAI,iCAA8B,cAAc,CAAC,GAAG,GAAG,CAAC,CAAE;iBACrG,CAAC,QAAQ,IAAI,SAAS,CAAC,YACtB,CACL,YACG,EACN;AACJ;;;;"}
@@ -76,7 +76,7 @@ describe('DateSelector component', function () {
76
76
  }
77
77
  });
78
78
  }); });
79
- it('should call onChange empty when invalid date', function () { return __awaiter(void 0, void 0, void 0, function () {
79
+ it('should not call onChange when there is an invalid date that has not been completely filled', function () { return __awaiter(void 0, void 0, void 0, function () {
80
80
  var callback, _a, getByLabelText, user;
81
81
  return __generator(this, function (_b) {
82
82
  switch (_b.label) {
@@ -87,11 +87,45 @@ describe('DateSelector component', function () {
87
87
  case 1:
88
88
  _b.sent();
89
89
  expect(getByLabelText('Day')).toHaveValue('5');
90
- expect(callback).toHaveBeenCalledWith('');
90
+ expect(callback).not.toHaveBeenCalled();
91
+ return [4 /*yield*/, user.type(getByLabelText('Month'), '4')];
92
+ case 2:
93
+ _b.sent();
94
+ expect(getByLabelText('Month')).toHaveValue('4');
95
+ expect(callback).not.toHaveBeenCalled();
96
+ return [4 /*yield*/, user.type(getByLabelText('Year'), '2020')];
97
+ case 3:
98
+ _b.sent();
99
+ expect(getByLabelText('Year')).toHaveValue('2020');
100
+ expect(callback).toHaveBeenCalledWith("2020-04-05");
91
101
  return [2 /*return*/];
92
102
  }
93
103
  });
94
104
  }); });
105
+ it('should show error boundaries error for min date onChange empty when year out of boundaries', function () { return __awaiter(void 0, void 0, void 0, function () {
106
+ var callback, date, getByTestId;
107
+ return __generator(this, function (_a) {
108
+ callback = jest.fn();
109
+ date = '2010-01-01';
110
+ getByTestId = setup(date, callback).getByTestId;
111
+ expect(getByTestId('date-error-message')).toBeVisible();
112
+ expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date after 2019');
113
+ expect(callback).not.toHaveBeenCalled();
114
+ return [2 /*return*/];
115
+ });
116
+ }); });
117
+ it('should show error boundaries error for ,ax date onChange empty when year out of boundaries', function () { return __awaiter(void 0, void 0, void 0, function () {
118
+ var callback, date, getByTestId;
119
+ return __generator(this, function (_a) {
120
+ callback = jest.fn();
121
+ date = '2100-01-01';
122
+ getByTestId = setup(date, callback).getByTestId;
123
+ expect(getByTestId('date-error-message')).toBeVisible();
124
+ expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date before 2026');
125
+ expect(callback).not.toHaveBeenCalled();
126
+ return [2 /*return*/];
127
+ });
128
+ }); });
95
129
  it('should call onChange empty when year out of boundaries', function () { return __awaiter(void 0, void 0, void 0, function () {
96
130
  var callback, date, _a, getByLabelText, user;
97
131
  return __generator(this, function (_b) {
@@ -1 +1 @@
1
- {"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/dateSelector/index.test.tsx"],"sourcesContent":["import { render } from '../../util/testUtils';\n\nimport { DateSelector } from '.';\n\nconst setup = (date?: string, onChange: (date: string) => void = () => {}) => {\n return render(\n <DateSelector\n value={date}\n yearBoundaries={{ min: 2020, max: 2025 }}\n onChange={onChange}\n displayCalendar\n />\n );\n};\n\ndescribe('DateSelector component', () => {\n it('should show the value inside the inputs', () => {\n const date = '2024-01-01';\n const { getByLabelText } = setup(date);\n\n expect(getByLabelText('Day')).toHaveValue('1');\n expect(getByLabelText('Month')).toHaveValue('1');\n expect(getByLabelText('Year')).toHaveValue('2024');\n });\n\n it('should call onChange with the value changed', async () => {\n const callback = jest.fn();\n const { getByLabelText, user } = setup(undefined, callback);\n\n await user.type(getByLabelText('Day'), '5');\n await user.type(getByLabelText('Month'), '7');\n await user.type(getByLabelText('Year'), '2023');\n\n expect(getByLabelText('Day')).toHaveValue('5');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-07-05');\n });\n\n it('should call onChange with the value changed with initial value', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}3');\n await user.type(getByLabelText('Month'), '{backspace}7');\n await user.type(getByLabelText('Year'), '{backspace}3');\n\n expect(getByLabelText('Day')).toHaveValue('3');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-07-03');\n });\n\n it('should call onChange empty when invalid date', async () => {\n const callback = jest.fn();\n const { getByLabelText, user } = setup(undefined, callback);\n\n await user.type(getByLabelText('Day'), '5');\n\n expect(getByLabelText('Day')).toHaveValue('5');\n expect(callback).toHaveBeenCalledWith('');\n });\n\n it('should call onChange empty when year out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Year'), '{backspace}{backspace}30');\n\n expect(getByLabelText('Year')).toHaveValue('2030');\n expect(callback).toHaveBeenCalledWith('');\n });\n\n it('should call onChange when year in boundaries after being out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2030-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Year'), '{backspace}{backspace}23');\n\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-01-01');\n });\n\n it('should call onChange with the value changed', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}3');\n await user.type(getByLabelText('Month'), '{backspace}7');\n await user.type(getByLabelText('Year'), '{backspace}3');\n\n expect(getByLabelText('Day')).toHaveValue('3');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(callback).toHaveBeenCalledWith('2023-07-03');\n });\n\n it('should navigate inputs from day to month when day is over 3', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}45');\n\n expect(getByLabelText('Day')).toHaveValue('4');\n expect(getByLabelText('Month')).toHaveValue('5');\n expect(callback).toHaveBeenCalledWith('2024-05-04');\n });\n\n describe('Calendar button', () => {\n it('should return the selected date when clicking on the calendar', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const expectedDate = '2024-01-17';\n const { getByLabelText, getByTestId, user } = setup(date, callback);\n const button = getByTestId('calendar-button');\n\n await user.click(button);\n\n const calendarCell = getByLabelText(/17 2024/);\n\n await user.click(calendarCell);\n\n expect(callback).toHaveBeenCalledWith(expectedDate);\n\n expect(calendarCell).not.toBeVisible();\n });\n\n it('should close the calendar when clicking outside', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, getByTestId, user } = setup(date, callback);\n const button = getByTestId('calendar-button');\n\n await user.click(button);\n\n const calendarCell = getByLabelText(/17 2024/);\n expect(calendarCell).toBeVisible();\n\n // click outside the calendar\n await user.click(document.body);\n\n expect(callback).not.toHaveBeenCalled();\n\n expect(calendarCell).not.toBeVisible();\n });\n });\n});\n"],"names":["render","_jsx"],"mappings":"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"}
1
+ {"version":3,"file":"index.test.js","sources":["../../../../../src/lib/components/dateSelector/index.test.tsx"],"sourcesContent":["import { render } from '../../util/testUtils';\n\nimport { DateSelector } from '.';\n\nconst setup = (date?: string, onChange: (date: string) => void = () => {}) => {\n return render(\n <DateSelector\n value={date}\n yearBoundaries={{ min: 2020, max: 2025 }}\n onChange={onChange}\n displayCalendar\n />\n );\n};\n\ndescribe('DateSelector component', () => {\n it('should show the value inside the inputs', () => {\n const date = '2024-01-01';\n const { getByLabelText } = setup(date);\n\n expect(getByLabelText('Day')).toHaveValue('1');\n expect(getByLabelText('Month')).toHaveValue('1');\n expect(getByLabelText('Year')).toHaveValue('2024');\n });\n\n it('should call onChange with the value changed', async () => {\n const callback = jest.fn();\n const { getByLabelText, user } = setup(undefined, callback);\n\n await user.type(getByLabelText('Day'), '5');\n await user.type(getByLabelText('Month'), '7');\n await user.type(getByLabelText('Year'), '2023');\n\n expect(getByLabelText('Day')).toHaveValue('5');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-07-05');\n });\n\n it('should call onChange with the value changed with initial value', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}3');\n await user.type(getByLabelText('Month'), '{backspace}7');\n await user.type(getByLabelText('Year'), '{backspace}3');\n\n expect(getByLabelText('Day')).toHaveValue('3');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-07-03');\n });\n\n it('should not call onChange when there is an invalid date that has not been completely filled', async () => {\n const callback = jest.fn();\n const { getByLabelText, user } = setup(undefined, callback);\n\n await user.type(getByLabelText('Day'), '5');\n\n expect(getByLabelText('Day')).toHaveValue('5');\n expect(callback).not.toHaveBeenCalled();\n\n await user.type(getByLabelText('Month'), '4');\n\n expect(getByLabelText('Month')).toHaveValue('4');\n expect(callback).not.toHaveBeenCalled();\n\n await user.type(getByLabelText('Year'), '2020');\n\n expect(getByLabelText('Year')).toHaveValue('2020');\n expect(callback).toHaveBeenCalledWith(\"2020-04-05\");\n });\n\n it('should show error boundaries error for min date onChange empty when year out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2010-01-01';\n const { getByTestId } = setup(date, callback);\n\n expect(getByTestId('date-error-message')).toBeVisible();\n expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date after 2019');\n expect(callback).not.toHaveBeenCalled();\n });\n\n it('should show error boundaries error for ,ax date onChange empty when year out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2100-01-01';\n const { getByTestId } = setup(date, callback);\n\n expect(getByTestId('date-error-message')).toBeVisible();\n expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date before 2026');\n expect(callback).not.toHaveBeenCalled();\n });\n\n it('should call onChange empty when year out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Year'), '{backspace}{backspace}30');\n\n expect(getByLabelText('Year')).toHaveValue('2030');\n expect(callback).toHaveBeenCalledWith('');\n });\n\n it('should call onChange when year in boundaries after being out of boundaries', async () => {\n const callback = jest.fn();\n const date = '2030-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Year'), '{backspace}{backspace}23');\n\n expect(getByLabelText('Year')).toHaveValue('2023');\n expect(callback).toHaveBeenCalledWith('2023-01-01');\n });\n\n it('should call onChange with the value changed', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}3');\n await user.type(getByLabelText('Month'), '{backspace}7');\n await user.type(getByLabelText('Year'), '{backspace}3');\n\n expect(getByLabelText('Day')).toHaveValue('3');\n expect(getByLabelText('Month')).toHaveValue('7');\n expect(callback).toHaveBeenCalledWith('2023-07-03');\n });\n\n it('should navigate inputs from day to month when day is over 3', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, user } = setup(date, callback);\n\n await user.type(getByLabelText('Day'), '{backspace}45');\n\n expect(getByLabelText('Day')).toHaveValue('4');\n expect(getByLabelText('Month')).toHaveValue('5');\n expect(callback).toHaveBeenCalledWith('2024-05-04');\n });\n\n describe('Calendar button', () => {\n it('should return the selected date when clicking on the calendar', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const expectedDate = '2024-01-17';\n const { getByLabelText, getByTestId, user } = setup(date, callback);\n const button = getByTestId('calendar-button');\n\n await user.click(button);\n\n const calendarCell = getByLabelText(/17 2024/);\n\n await user.click(calendarCell);\n\n expect(callback).toHaveBeenCalledWith(expectedDate);\n\n expect(calendarCell).not.toBeVisible();\n });\n\n it('should close the calendar when clicking outside', async () => {\n const callback = jest.fn();\n const date = '2024-01-01';\n const { getByLabelText, getByTestId, user } = setup(date, callback);\n const button = getByTestId('calendar-button');\n\n await user.click(button);\n\n const calendarCell = getByLabelText(/17 2024/);\n expect(calendarCell).toBeVisible();\n\n // click outside the calendar\n await user.click(document.body);\n\n expect(callback).not.toHaveBeenCalled();\n\n expect(calendarCell).not.toBeVisible();\n });\n });\n});\n"],"names":["render","_jsx"],"mappings":"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"}
@@ -4,7 +4,6 @@ export declare const useComparisonTable: ({ onSelectionChanged, }: {
4
4
  onSelectionChanged?: ((selectedIndex: number) => void) | undefined;
5
5
  }) => {
6
6
  headerWidth: number;
7
- headerId: string;
8
7
  contentContainerRef: import("react").MutableRefObject<HTMLDivElement | null>;
9
8
  selectedSection: string;
10
9
  setSelectedSection: import("react").Dispatch<import("react").SetStateAction<string>>;
@@ -22,6 +22,8 @@ export interface DateSelectorProps {
22
22
  year?: string;
23
23
  yearFormat?: string;
24
24
  error?: string;
25
+ errorBeforeMinYear?: string;
26
+ errorAfterMaxYear?: string;
25
27
  };
26
28
  firstDayOfWeek?: number;
27
29
  inputProps?: (key: keyof CalendarDate) => Partial<DateSelectorInputProps>;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@popsure/dirty-swan",
3
- "version": "0.49.1",
3
+ "version": "0.49.2",
4
4
  "author": "Vincent Audoire <vincent@getpopsure.com>",
5
5
  "license": "MIT",
6
6
  "private": false,
@@ -36,7 +36,7 @@
36
36
  "react-dropzone": "^14.2.2",
37
37
  "react-hot-toast": "^2.4.1",
38
38
  "react-markdown": "^8.0.3",
39
- "react-scroll-sync": "^0.11.0",
39
+ "react-scroll-sync": "^0.11.2",
40
40
  "remark-directive": "^2.0.1",
41
41
  "sass": "^1.35.1",
42
42
  "signature_pad": "^3.0.0-beta.3"
@@ -98,7 +98,7 @@
98
98
  "@types/react-autosuggest": "^10.1.4",
99
99
  "@types/react-day-picker": "^5.3.0",
100
100
  "@types/react-dom": "^17.0.8",
101
- "@types/react-scroll-sync": "^0.8.2",
101
+ "@types/react-scroll-sync": "^0.9.0",
102
102
  "@types/sass": "^1.16.0",
103
103
  "babel-core": "^6.26.3",
104
104
  "babel-runtime": "^6.26.0",
@@ -25,9 +25,9 @@ const TableArrows = (props: TableArrowsProps) => {
25
25
  styles.arrow,
26
26
  {
27
27
  [styles.active]: active.left,
28
+ [styles.noPointerEvents]: !active.left,
28
29
  }
29
30
  )}
30
- disabled={!active.left}
31
31
  >
32
32
  <ArrowIcon />
33
33
  </button>
@@ -39,9 +39,9 @@ const TableArrows = (props: TableArrowsProps) => {
39
39
  styles.arrow,
40
40
  {
41
41
  [styles.active]: active.right,
42
+ [styles.noPointerEvents]: !active.right,
42
43
  }
43
44
  )}
44
- disabled={!active.right}
45
45
  >
46
46
  <ArrowIcon />
47
47
  </button>
@@ -42,12 +42,6 @@
42
42
  background-color: $ds-grey-200;
43
43
  cursor: not-allowed;
44
44
  }
45
- &:disabled {
46
- opacity: 1;
47
- &:hover {
48
- background-color: $ds-grey-200;
49
- }
50
- }
51
45
  }
52
46
 
53
47
  .active {
@@ -59,3 +53,7 @@
59
53
  cursor: pointer;
60
54
  }
61
55
  }
56
+
57
+ .noPointerEvents {
58
+ pointer-events: none;
59
+ }
@@ -2,7 +2,6 @@ import debounce from 'lodash.debounce';
2
2
  import { useCallback, useEffect, useRef, useState } from 'react';
3
3
 
4
4
  import { ArrowValues } from '../components/TableArrows';
5
- import generateId from '../../../util/generateId';
6
5
 
7
6
  export const useComparisonTable = ({
8
7
  onSelectionChanged,
@@ -11,7 +10,6 @@ export const useComparisonTable = ({
11
10
  }) => {
12
11
  const [showMore, setShowMore] = useState<boolean>(false);
13
12
  const [headerWidth, setHeaderWidth] = useState(1400);
14
- const [headerId, setHeaderId] = useState('');
15
13
  const [selectedTabIndex, setSelectedTabIndex] = useState(0);
16
14
  const [selectedSection, setSelectedSection] = useState('');
17
15
 
@@ -126,22 +124,6 @@ export const useComparisonTable = ({
126
124
  setShowMore(!showMore);
127
125
  };
128
126
 
129
- useEffect(() => {
130
- if (headerRef.current) {
131
- return;
132
- }
133
-
134
- const headerById = document.getElementById(headerId);
135
-
136
- if (headerById) {
137
- scrollContainerCallbackRef(headerById);
138
- }
139
- }, [headerId, scrollContainerCallbackRef]);
140
-
141
- useEffect(() => {
142
- setHeaderId(generateId());
143
- }, []);
144
-
145
127
  useEffect(() => {
146
128
  onSelectionChanged?.(selectedTabIndex);
147
129
  // eslint-disable-next-line react-hooks/exhaustive-deps
@@ -149,7 +131,6 @@ export const useComparisonTable = ({
149
131
 
150
132
  return {
151
133
  headerWidth,
152
- headerId,
153
134
  contentContainerRef,
154
135
  selectedSection,
155
136
  setSelectedSection,
@@ -100,7 +100,6 @@ const ComparisonTable = <T extends { id: number }>(
100
100
  handleArrowsClick,
101
101
  toggleMoreRows,
102
102
  showMore,
103
- headerId,
104
103
  } = useComparisonTable({ onSelectionChanged });
105
104
 
106
105
  const cssVariablesStyle = {
@@ -116,7 +115,7 @@ const ComparisonTable = <T extends { id: number }>(
116
115
  } as React.CSSProperties;
117
116
 
118
117
  return (
119
- <ScrollSync onSync={scrollContainerCallbackRef}>
118
+ <ScrollSync>
120
119
  <div
121
120
  style={cssVariablesStyle}
122
121
  className={classNames({
@@ -127,8 +126,8 @@ const ComparisonTable = <T extends { id: number }>(
127
126
  <div
128
127
  className={classNames(baseStyles.header, classNameOverrides?.header)}
129
128
  >
130
- <ScrollSyncPane>
131
- <div id={headerId} className={classNames(baseStyles.container)}>
129
+ <ScrollSyncPane innerRef={scrollContainerCallbackRef}>
130
+ <div className={classNames(baseStyles.container)}>
132
131
  <div className={classNames(baseStyles['overflow-container'])}>
133
132
  <div className={baseStyles['group-container']}>
134
133
  <TableArrows
@@ -52,14 +52,44 @@ describe('DateSelector component', () => {
52
52
  expect(callback).toHaveBeenCalledWith('2023-07-03');
53
53
  });
54
54
 
55
- it('should call onChange empty when invalid date', async () => {
55
+ it('should not call onChange when there is an invalid date that has not been completely filled', async () => {
56
56
  const callback = jest.fn();
57
57
  const { getByLabelText, user } = setup(undefined, callback);
58
58
 
59
59
  await user.type(getByLabelText('Day'), '5');
60
60
 
61
61
  expect(getByLabelText('Day')).toHaveValue('5');
62
- expect(callback).toHaveBeenCalledWith('');
62
+ expect(callback).not.toHaveBeenCalled();
63
+
64
+ await user.type(getByLabelText('Month'), '4');
65
+
66
+ expect(getByLabelText('Month')).toHaveValue('4');
67
+ expect(callback).not.toHaveBeenCalled();
68
+
69
+ await user.type(getByLabelText('Year'), '2020');
70
+
71
+ expect(getByLabelText('Year')).toHaveValue('2020');
72
+ expect(callback).toHaveBeenCalledWith("2020-04-05");
73
+ });
74
+
75
+ it('should show error boundaries error for min date onChange empty when year out of boundaries', async () => {
76
+ const callback = jest.fn();
77
+ const date = '2010-01-01';
78
+ const { getByTestId } = setup(date, callback);
79
+
80
+ expect(getByTestId('date-error-message')).toBeVisible();
81
+ expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date after 2019');
82
+ expect(callback).not.toHaveBeenCalled();
83
+ });
84
+
85
+ it('should show error boundaries error for ,ax date onChange empty when year out of boundaries', async () => {
86
+ const callback = jest.fn();
87
+ const date = '2100-01-01';
88
+ const { getByTestId } = setup(date, callback);
89
+
90
+ expect(getByTestId('date-error-message')).toBeVisible();
91
+ expect(getByTestId('date-error-message')).toHaveTextContent('Please choose a date before 2026');
92
+ expect(callback).not.toHaveBeenCalled();
63
93
  });
64
94
 
65
95
  it('should call onChange empty when year out of boundaries', async () => {