UNPKG

3.39 kBSource Map (JSON)View Raw
1{"version":3,"file":"utils.js","sources":["../src/components/DateRangePicker/utils.js"],"sourcesContent":["import dayjs from 'dayjs'\n\nexport function handleDateSelect({ date, startDate, endDate }) {\n // clicking on start date resets it, so it can be re-picked\n if (startDate && dayjs(date).isSame(startDate, 'day')) {\n return {\n startDate: null,\n }\n }\n // clicking on end date resets it, so it can be re-picked\n if (endDate && dayjs(date).isSame(endDate, 'day')) {\n return {\n endDate: null,\n }\n }\n\n const isValidStartDate = !endDate || !dayjs(date).isAfter(endDate)\n const isValidEndDate = !startDate || !dayjs(date).isBefore(startDate)\n // if we have startDate, then `date` is the end date\n const isValidDate = startDate ? isValidEndDate : isValidStartDate\n\n // both dates are selected - if a date is clicked and it's before\n // start date, it should be the new start date\n // (this way the start date does not have to be reset before setting)\n // (the converse case for end date is handled implicitly below, because\n // after both dates are selected, any selected date will be candidate for\n // new end date)\n if (\n startDate &&\n endDate &&\n isValidStartDate &&\n dayjs(date).isBefore(startDate, 'day')\n ) {\n return {\n startDate: date,\n }\n }\n\n // one date is selected, but the clicked date is not corresponding\n // (start selected, but clicked a date before start, and vice-versa)\n // in this case, reverse the range\n if (!startDate && endDate && dayjs(date).isAfter(endDate)) {\n return {\n startDate: endDate,\n endDate: date,\n }\n }\n if (!endDate && startDate && dayjs(date).isBefore(startDate)) {\n return {\n startDate: date,\n endDate: startDate,\n }\n }\n\n if (isValidDate) {\n return {\n [startDate ? 'endDate' : 'startDate']: date,\n }\n }\n}\n"],"names":["handleDateSelect","date","startDate","endDate","dayjs","isSame","isValidStartDate","isAfter","isValidEndDate","isBefore","isValidDate"],"mappings":";;;;;;;;AAEO,SAASA,gBAAT,OAAwD;AAAA,MAA5BC,IAA4B,QAA5BA,IAA4B;AAAA,MAAtBC,SAAsB,QAAtBA,SAAsB;AAAA,MAAXC,OAAW,QAAXA,OAAW;;AAC7D;AACA,MAAID,SAAS,IAAIE,eAAK,CAACH,IAAD,CAAL,CAAYI,MAAZ,CAAmBH,SAAnB,EAA8B,KAA9B,CAAjB,EAAuD;AACrD,WAAO;AACLA,MAAAA,SAAS,EAAE;AADN,KAAP;AAGD,GAN4D;;;AAQ7D,MAAIC,OAAO,IAAIC,eAAK,CAACH,IAAD,CAAL,CAAYI,MAAZ,CAAmBF,OAAnB,EAA4B,KAA5B,CAAf,EAAmD;AACjD,WAAO;AACLA,MAAAA,OAAO,EAAE;AADJ,KAAP;AAGD;;AAED,MAAMG,gBAAgB,GAAG,CAACH,OAAD,IAAY,CAACC,eAAK,CAACH,IAAD,CAAL,CAAYM,OAAZ,CAAoBJ,OAApB,CAAtC;AACA,MAAMK,cAAc,GAAG,CAACN,SAAD,IAAc,CAACE,eAAK,CAACH,IAAD,CAAL,CAAYQ,QAAZ,CAAqBP,SAArB,CAAtC,CAf6D;;AAiB7D,MAAMQ,WAAW,GAAGR,SAAS,GAAGM,cAAH,GAAoBF,gBAAjD,CAjB6D;AAoB7D;AACA;AACA;AACA;AACA;;AACA,MACEJ,SAAS,IACTC,OADA,IAEAG,gBAFA,IAGAF,eAAK,CAACH,IAAD,CAAL,CAAYQ,QAAZ,CAAqBP,SAArB,EAAgC,KAAhC,CAJF,EAKE;AACA,WAAO;AACLA,MAAAA,SAAS,EAAED;AADN,KAAP;AAGD,GAlC4D;AAqC7D;AACA;;;AACA,MAAI,CAACC,SAAD,IAAcC,OAAd,IAAyBC,eAAK,CAACH,IAAD,CAAL,CAAYM,OAAZ,CAAoBJ,OAApB,CAA7B,EAA2D;AACzD,WAAO;AACLD,MAAAA,SAAS,EAAEC,OADN;AAELA,MAAAA,OAAO,EAAEF;AAFJ,KAAP;AAID;;AACD,MAAI,CAACE,OAAD,IAAYD,SAAZ,IAAyBE,eAAK,CAACH,IAAD,CAAL,CAAYQ,QAAZ,CAAqBP,SAArB,CAA7B,EAA8D;AAC5D,WAAO;AACLA,MAAAA,SAAS,EAAED,IADN;AAELE,MAAAA,OAAO,EAAED;AAFJ,KAAP;AAID;;AAED,MAAIQ,WAAJ,EAAiB;AACf,gDACGR,SAAS,GAAG,SAAH,GAAe,WAD3B,EACyCD,IADzC;AAGD;AACF;;;;"}
\No newline at end of file