@acusti/date-picker 0.10.0 → 0.11.0
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/README.md +3 -3
- package/dist/DatePicker.d.ts +1 -1
- package/dist/index.js +868 -4
- package/dist/index.js.map +1 -1
- package/package.json +21 -13
- package/dist/DatePicker.js +0 -108
- package/dist/DatePicker.js.flow +0 -31
- package/dist/DatePicker.js.map +0 -1
- package/dist/MonthCalendar.js +0 -105
- package/dist/MonthCalendar.js.flow +0 -20
- package/dist/MonthCalendar.js.map +0 -1
- package/dist/index.js.flow +0 -10
- package/dist/styles/date-picker.js +0 -62
- package/dist/styles/date-picker.js.map +0 -1
- package/dist/styles/month-calendar.js +0 -154
- package/dist/styles/month-calendar.js.map +0 -1
- package/dist/utils.js +0 -49
- package/dist/utils.js.flow +0 -20
- package/dist/utils.js.map +0 -1
- package/dist/utils.test.d.ts +0 -1
- package/dist/utils.test.js +0 -88
- package/dist/utils.test.js.flow +0 -6
- package/dist/utils.test.js.map +0 -1
- package/src/DatePicker.tsx +0 -203
- package/src/MonthCalendar.tsx +0 -195
- package/src/index.ts +0 -3
- package/src/styles/date-picker.ts +0 -62
- package/src/styles/month-calendar.ts +0 -154
- package/src/utils.test.ts +0 -163
- package/src/utils.ts +0 -53
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,UAAU,EAAE,MAAM,iBAAiB,CAAC;AACxD,OAAO,EAAE,OAAO,IAAI,aAAa,EAAE,MAAM,oBAAoB,CAAC;AAC9D,cAAc,YAAY,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/styles/month-calendar.ts","../src/utils.ts","../src/MonthCalendar.tsx","../src/styles/date-picker.ts","../src/DatePicker.tsx"],"sourcesContent":["export const ROOT_CLASS_NAME = 'uktmonthcalendar';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n flex-direction: column;\n flex: 1 1 auto;\n box-sizing: border-box;\n max-width: 325px;\n}\n\n.${ROOT_CLASS_NAME}-month-title {\n display: flex;\n align-items: center;\n justify-content: center;\n flex: 0 0 auto;\n box-sizing: border-box;\n padding-bottom: 25px;\n}\n\nh3.${ROOT_CLASS_NAME}-month-title-text {\n font-size: 18px;\n line-height: 23px;\n font-weight: 600;\n color: #000;\n margin: 0px;\n text-align: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week {\n flex: 0 0 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n box-sizing: border-box;\n padding-bottom: 12px;\n}\n\n.${ROOT_CLASS_NAME}-month-week .week-day-item {\n flex: 1 1 auto;\n display: flex;\n justify-content: center;\n align-items: center;\n}\n\n.${ROOT_CLASS_NAME}-month-week span.week-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #9a9a9a;\n}\n\n.${ROOT_CLASS_NAME}-month-days {\n flex: 1 1 auto;\n display: flex;\n flex-direction: column;\n}\n\n.${ROOT_CLASS_NAME}-month-row {\n flex: 1 1 auto;\n display: grid;\n grid-column-gap: 0px;\n grid-template-columns: repeat(auto-fit, minmax(46px, 1fr));\n grid-auto-flow: dense;\n margin-bottom: 1px;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item {\n display: flex;\n justify-content: center;\n align-items: center;\n position: relative;\n height: 46px;\n width: 46px;\n cursor: pointer;\n border: none;\n background-color: transparent;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:disabled {\n cursor: auto;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-selected {\n background-color: #f8f8f8;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date {\n background-color: #f8f8f8;\n border-top-left-radius: 50%;\n border-bottom-left-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.start-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.start-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date {\n background-color: #f8f8f8;\n border-top-right-radius: 50%;\n border-bottom-right-radius: 50%;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.end-date:after {\n background-color: #000;\n opacity: 1;\n visibility: visible;\n}\n.${ROOT_CLASS_NAME}-month-day-item.end-date span.month-day-item-text {\n color: #fff;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:hover:after {\n opacity: 1;\n visibility: visible;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item:after {\n content: \"\";\n position: absolute;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n pointer-events: none;\n border-radius: 50%;\n border: 1px solid #000;\n width: 43px;\n height: 43px;\n transition: opacity 0.25s ease-in-out;\n opacity: 0;\n visibility: hidden;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item.is-empty:after {\n content: none;\n}\n\n.${ROOT_CLASS_NAME}-month-day-item span.month-day-item-text {\n text-align: center;\n font-size: 13px;\n line-height: 21px;\n margin: 0px;\n color: #000;\n position: relative;\n z-index: 1;\n}\n`;\n","// The following utils work on a “month” as a unique numerical value\n// representing the number of months since the unix epoch (jan 1970)\nconst START_YEAR = 1970;\nconst MONTH_NAMES = [\n 'January',\n 'February',\n 'March',\n 'April',\n 'May',\n 'June',\n 'July',\n 'August',\n 'September',\n 'October',\n 'November',\n 'December',\n];\n\nconst getYearFromDate = (date: Date, asUTC?: boolean) =>\n (asUTC ? date.getUTCFullYear() : date.getFullYear()) - START_YEAR;\n\nexport const getMonthFromDate = (date: Date, asUTC?: boolean) => {\n const yearAsMonths = getYearFromDate(date, asUTC) * 12;\n return yearAsMonths + (asUTC ? date.getUTCMonth() : date.getMonth());\n};\n\nexport const getYearFromMonth = (month: number) => Math.floor(month / 12) + START_YEAR;\n\nexport const getMonthNameFromMonth = (month: number): string => {\n let index = month % 12;\n if (Number.isNaN(index)) return '';\n if (index < 0) index = 12 + index;\n return MONTH_NAMES[index];\n};\n\nexport const getMonthAbbreviationFromMonth = (month: number) => {\n const monthName = getMonthNameFromMonth(month);\n if (monthName === 'September') return 'Sept';\n return monthName.substring(0, 3);\n};\n\nexport const getDateFromMonthAndDay = (month: number, day: number, asUTC?: boolean) => {\n const monthIn12 = month < 0 ? (12 - Math.abs(month % 12)) % 12 : month % 12;\n const year = getYearFromMonth(month);\n return asUTC\n ? new Date(Date.UTC(year, monthIn12, day))\n : new Date(year, monthIn12, day);\n};\n\nexport const getLastDateFromMonth = (month: number, asUTC?: boolean) => {\n // day 0 of the next month is the last day of the current month\n return getDateFromMonthAndDay(month + 1, 0, asUTC);\n};\n","import { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport * as React from 'react';\n\nimport { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';\nimport {\n getDateFromMonthAndDay,\n getLastDateFromMonth,\n getMonthFromDate,\n getMonthNameFromMonth,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | null | number | string;\n dateEndPreview?: null | string;\n dateStart?: Date | null | number | string;\n isRange?: boolean;\n month: number; // a unique numerical value representing the number of months since jan 1970\n onChange?: (date: string) => void;\n onChangeEndPreview?: (date: string) => void;\n title?: string;\n};\n\ntype DateRangeDays = [null | number, null | number, null | number];\n\nconst { Fragment } = React;\n\nconst DAYS = Array(7).fill(null);\n\nexport default function MonthCalendar({\n className,\n dateEnd,\n dateEndPreview,\n dateStart,\n isRange,\n month,\n onChange,\n onChangeEndPreview,\n title,\n}: Props) {\n const year = getYearFromMonth(month);\n title = title ?? `${getMonthNameFromMonth(month)} ${year}`;\n const firstDate = getDateFromMonthAndDay(month, 1);\n const lastDate = getLastDateFromMonth(month);\n const totalDays = lastDate.getDate();\n const firstDay = firstDate.getDay();\n const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore\n const daySpaces = totalDays + firstDay + spacesAfterLastDay;\n\n const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay]: DateRangeDays = [\n dateStart,\n dateEnd,\n dateEndPreview,\n ].reduce(\n (acc: DateRangeDays, date, index) => {\n if (date != null && !(date instanceof Date)) {\n date = new Date(date);\n }\n if (date == null || Number.isNaN(date.getTime())) return acc;\n\n const dateMonth = getMonthFromDate(date);\n if (dateMonth < month) acc[index] = -1;\n else if (dateMonth > month) acc[index] = totalDays + 1;\n else acc[index] = date.getDate();\n if (index === 1) {\n const startDay = acc[index - 1];\n const endDay = acc[index];\n // Ensure that end date is after start date and swap them if not\n if (startDay != null && endDay != null && startDay > endDay) {\n acc[index - 1] = endDay;\n acc[index] = startDay;\n }\n }\n\n return acc;\n },\n [null, null, null],\n );\n\n const handleClickDay = (event: React.SyntheticEvent<HTMLElement>) => {\n const { date } = event.currentTarget.dataset;\n if (date && onChange) onChange(date);\n };\n\n const handleMouseEnterDay = (event: React.SyntheticEvent<HTMLElement>) => {\n if (isRange && onChangeEndPreview) {\n const { date } = event.currentTarget.dataset;\n if (date) onChangeEndPreview(date);\n }\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/MonthCalendar\">{STYLES}</Style>\n <div className={clsx(ROOT_CLASS_NAME, className)}>\n <div className={`${ROOT_CLASS_NAME}-month-title`}>\n <h3 className={`${ROOT_CLASS_NAME}-month-title-text`}>{title}</h3>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-week`}>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Su</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Mo</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Tu</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">We</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Th</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Fr</span>\n </div>\n <div className=\"week-day-item\">\n <span className=\"week-day-item-text\">Sa</span>\n </div>\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-days`}>\n {Array(Math.floor(daySpaces / 7))\n .fill(null)\n .map((_, weekIndex) => (\n <div\n className={`${ROOT_CLASS_NAME}-month-row`}\n key={`MonthRow-${weekIndex}`}\n >\n {DAYS.map((__, dayIndex) => {\n dayIndex += weekIndex * 7;\n const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore\n const isEmpty =\n dayNumber < 1 || dayNumber > totalDays;\n const date = isEmpty\n ? null\n : getDateFromMonthAndDay(month, dayNumber);\n const isAfterDateRangeStart =\n dateRangeStartDay != null &&\n dayNumber > dateRangeStartDay;\n const isBeforeDateRangeEnd =\n (dateRangeEndDay == null &&\n dateRangeEndPreviewDay != null &&\n dayNumber < dateRangeEndPreviewDay) ||\n (dateRangeEndDay != null &&\n dayNumber < dateRangeEndDay);\n\n return (\n <button\n className={clsx(\n `${ROOT_CLASS_NAME}-month-day-item`,\n {\n 'end-date':\n !isEmpty &&\n dayNumber === dateRangeEndDay,\n 'is-empty': isEmpty,\n 'is-selected':\n !isEmpty &&\n isAfterDateRangeStart &&\n isBeforeDateRangeEnd,\n 'start-date':\n !isEmpty &&\n dayNumber === dateRangeStartDay,\n },\n )}\n data-date={date?.toISOString()}\n disabled={isEmpty}\n key={`MonthDayItem-${dayNumber}`}\n onClick={handleClickDay}\n onMouseEnter={handleMouseEnterDay}\n type=\"button\"\n >\n {isEmpty ? null : (\n <span className=\"month-day-item-text\">\n {dayNumber}\n </span>\n )}\n </button>\n );\n })}\n </div>\n ))}\n </div>\n </div>\n </Fragment>\n );\n}\n","export const ROOT_CLASS_NAME = 'uktdatepicker';\n\nexport const STYLES = `\n.${ROOT_CLASS_NAME} {\n display: flex;\n box-sizing: border-box;\n padding: 40px 60px 60px;\n flex: 1 1 auto;\n position: relative;\n max-width: 450px;\n}\n\n.${ROOT_CLASS_NAME}.two-up {\n max-width: 820px;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow-wrap {\n position: absolute;\n top: 30px;\n left: 0px;\n display: flex;\n justify-content: space-between;\n height: 0px;\n width: 100%;\n padding: 0px 60px;\n box-sizing: border-box;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow {\n width: 35px;\n height: 35px;\n text-align: center;\n cursor: pointer;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.disabled {\n color: #ccc;\n cursor: default;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow:active {\n transform: translateY(1px);\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"‹\";\n font-size: 24px;\n line-height: 35px;\n font-weight: bold;\n}\n\n.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {\n content: \"›\";\n}\n\n.${ROOT_CLASS_NAME}-month-container {\n display: flex;\n flex: 1 1 auto;\n justify-content: space-between;\n}\n`;\n","/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */\nimport { Style } from '@acusti/styling';\nimport clsx from 'clsx';\nimport * as React from 'react';\n\nimport MonthCalendar from './MonthCalendar.js';\nimport { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';\nimport {\n getMonthAbbreviationFromMonth,\n getMonthFromDate,\n getYearFromMonth,\n} from './utils.js';\n\nexport type Props = {\n className?: string;\n dateEnd?: Date | number | string;\n dateStart?: Date | number | string;\n initialMonth?: number;\n isRange?: boolean;\n isTwoUp?: boolean;\n monthLimitFirst?: number;\n monthLimitLast?: number;\n onChange: (payload: { dateEnd?: null | string; dateStart: string }) => void;\n /**\n * Boolean to specify that date picker should initially render with the\n * end date’s month visible. The default behavior is to initially render\n * with the start date’s month visible.\n */\n showEndInitially?: boolean;\n useMonthAbbreviations?: boolean;\n};\n\nconst { Fragment, useEffect, useRef, useState } = React;\n\nconst getAbbreviatedMonthTitle = (month: number) =>\n `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;\n\nexport default function DatePicker({\n className,\n dateEnd: _dateEnd,\n dateStart: _dateStart,\n initialMonth,\n isRange: _isRange,\n isTwoUp,\n monthLimitFirst,\n monthLimitLast: _monthLimitLast,\n onChange,\n showEndInitially,\n useMonthAbbreviations,\n}: Props) {\n const isRange = _isRange ?? _dateEnd != null;\n // In two-up view we see 1 more month, so monthLimitLast needs to be 1 less\n const monthLimitLast =\n isTwoUp && _monthLimitLast != null ? _monthLimitLast - 1 : _monthLimitLast;\n const dateEndFromProps =\n _dateEnd != null && typeof _dateEnd !== 'string'\n ? new Date(_dateEnd).toISOString()\n : _dateEnd;\n const dateStartFromProps =\n _dateStart != null && typeof _dateStart !== 'string'\n ? new Date(_dateStart).toISOString()\n : _dateStart;\n const [dateEnd, setDateEnd] = useState<null | string>(dateEndFromProps ?? null);\n const [dateStart, setDateStart] = useState<null | string>(dateStartFromProps ?? null);\n const updatingDateEndRef = useRef(false);\n\n useEffect(() => {\n if (dateEndFromProps == null) return;\n setDateEnd(dateEndFromProps);\n }, [dateEndFromProps]);\n\n useEffect(() => {\n if (dateStartFromProps == null) return;\n setDateStart(dateStartFromProps);\n }, [dateStartFromProps]);\n\n if (initialMonth == null) {\n // if no valid initial date, initially show present month as date end\n const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);\n // use date from props if set\n const initialDate = useDateEnd ? dateEnd : dateStart;\n initialMonth = getMonthFromDate(\n initialDate == null ? new Date() : new Date(initialDate),\n );\n if (useDateEnd && isTwoUp) {\n initialMonth -= 1;\n }\n }\n\n const [dateEndPreview, setDateEndPreview] = useState<null | string>(null);\n const [month, setMonth] = useState<number>(initialMonth);\n\n const delta = isTwoUp ? 2 : 1;\n\n const handleClickLeftArrow = () => {\n setMonth((existingMonth: number) =>\n Math.max(existingMonth - delta, monthLimitFirst ?? -Infinity),\n );\n };\n\n const handleClickRightArrow = () => {\n setMonth((existingMonth: number) =>\n Math.min(existingMonth + delta, monthLimitLast ?? Infinity),\n );\n };\n\n const handleChange = (date: string) => {\n // If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd\n if (\n isRange &&\n dateStart != null &&\n (updatingDateEndRef.current || dateEnd == null)\n ) {\n // Ensure that dateEnd is after dateStart; if not, swap them\n if (date < dateStart) {\n setDateStart(date);\n setDateEnd(dateStart);\n onChange({ dateEnd: dateStart, dateStart: date });\n } else {\n setDateEnd(date);\n onChange({ dateEnd: date, dateStart });\n }\n updatingDateEndRef.current = false;\n } else {\n setDateStart(date);\n setDateEnd(null);\n if (isRange) {\n onChange({ dateEnd: null, dateStart: date });\n updatingDateEndRef.current = true;\n } else {\n onChange({ dateStart: date });\n }\n }\n };\n\n const handleChangeEndPreview = (date: string) => {\n setDateEndPreview(date);\n };\n\n return (\n <Fragment>\n <Style href=\"@acusti/date-picker/DatePicker\">{STYLES}</Style>\n <div\n className={clsx(ROOT_CLASS_NAME, className, {\n 'two-up': isTwoUp,\n })}\n >\n <div className={`${ROOT_CLASS_NAME}-range-arrow-wrap`}>\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {\n disabled: monthLimitFirst != null && month <= monthLimitFirst,\n })}\n onClick={handleClickLeftArrow}\n />\n <div\n className={clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {\n disabled: monthLimitLast != null && month >= monthLimitLast,\n })}\n onClick={handleClickRightArrow}\n />\n </div>\n <div className={`${ROOT_CLASS_NAME}-month-container`}>\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month)\n : undefined\n }\n />\n {isTwoUp ? (\n <MonthCalendar\n dateEnd={dateEnd}\n dateEndPreview={dateEndPreview}\n dateStart={dateStart}\n isRange={isRange}\n month={month + 1}\n onChange={handleChange}\n onChangeEndPreview={handleChangeEndPreview}\n title={\n useMonthAbbreviations\n ? getAbbreviatedMonthTitle(month + 1)\n : undefined\n }\n />\n ) : null}\n </div>\n </div>\n </Fragment>\n );\n}\n"],"names":["ROOT_CLASS_NAME","STYLES","START_YEAR","MONTH_NAMES","getYearFromDate","date","asUTC","getUTCFullYear","getFullYear","getMonthFromDate","yearAsMonths","getUTCMonth","getMonth","getYearFromMonth","month","Math","floor","getMonthNameFromMonth","index","Number","isNaN","getMonthAbbreviationFromMonth","monthName","substring","getDateFromMonthAndDay","day","monthIn12","abs","year","Date","UTC","getLastDateFromMonth","Fragment","React","DAYS","Array","fill","MonthCalendar","t0","$","_c","className","dateEnd","dateEndPreview","dateStart","isRange","onChange","onChangeEndPreview","title","firstDay","t1","t2","totalDays","firstDate","lastDate","getDate","getDay","spacesAfterLastDay","daySpaces","t3","t4","acc","getTime","dateMonth","startDay","endDay","reduce","dateRangeStartDay","dateRangeEndDay","dateRangeEndPreviewDay","event","date_0","currentTarget","dataset","handleClickDay","t5","event_0","date_1","handleMouseEnterDay","t6","Symbol","for","t7","clsx","t8","t9","t10","t11","t12","t13","t14","t15","t16","t17","t18","_","weekIndex","map","__","dayIndex","dayNumber","isEmpty","date_2","isAfterDateRangeStart","isBeforeDateRangeEnd","toISOString","t19","useEffect","useRef","useState","getAbbreviatedMonthTitle","DatePicker","_dateEnd","_dateStart","initialMonth","_isRange","isTwoUp","monthLimitFirst","monthLimitLast","_monthLimitLast","showEndInitially","useMonthAbbreviations","dateEndFromProps","dateStartFromProps","setDateEnd","setDateStart","updatingDateEndRef","useDateEnd","Boolean","initialDate","setDateEndPreview","setMonth","delta","existingMonth","max","Infinity","handleClickLeftArrow","existingMonth_0","min","handleClickRightArrow","current","handleChange","handleChangeEndPreview","disabled","t20","undefined","t21","t22","t23","t24"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,14 +1,18 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@acusti/date-picker",
|
|
3
|
-
"version": "0.
|
|
3
|
+
"version": "0.11.0",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"sideEffects": false,
|
|
6
|
-
"exports":
|
|
6
|
+
"exports": {
|
|
7
|
+
".": {
|
|
8
|
+
"types": "./dist/index.d.ts",
|
|
9
|
+
"default": "./dist/index.js"
|
|
10
|
+
}
|
|
11
|
+
},
|
|
7
12
|
"main": "./dist/index.js",
|
|
8
13
|
"types": "./dist/index.d.ts",
|
|
9
14
|
"files": [
|
|
10
|
-
"dist"
|
|
11
|
-
"src"
|
|
15
|
+
"dist"
|
|
12
16
|
],
|
|
13
17
|
"description": "React component that renders a date picker with support for date ranges",
|
|
14
18
|
"keywords": [
|
|
@@ -24,11 +28,11 @@
|
|
|
24
28
|
"input",
|
|
25
29
|
"ssr",
|
|
26
30
|
"typescript",
|
|
27
|
-
"ts"
|
|
28
|
-
"flow"
|
|
31
|
+
"ts"
|
|
29
32
|
],
|
|
30
33
|
"scripts": {
|
|
31
|
-
"test": "vitest"
|
|
34
|
+
"test": "vitest",
|
|
35
|
+
"build": "vite build"
|
|
32
36
|
},
|
|
33
37
|
"repository": {
|
|
34
38
|
"type": "git",
|
|
@@ -45,19 +49,23 @@
|
|
|
45
49
|
"@testing-library/dom": "^10.4.0",
|
|
46
50
|
"@testing-library/react": "^16.3.0",
|
|
47
51
|
"@testing-library/user-event": "^14.6.1",
|
|
48
|
-
"@types/react": "^19.1.
|
|
49
|
-
"
|
|
52
|
+
"@types/react": "^19.1.6",
|
|
53
|
+
"@vitejs/plugin-react": "^4.5.0",
|
|
54
|
+
"babel-plugin-react-compiler": "rc",
|
|
55
|
+
"happy-dom": "^17.4.7",
|
|
50
56
|
"react": "^19.0.0",
|
|
51
57
|
"react-dom": "^19.0.0",
|
|
52
58
|
"typescript": "5.8.3",
|
|
53
|
-
"
|
|
59
|
+
"unplugin-dts": "^1.0.0-beta.0",
|
|
60
|
+
"vite": "^6.3.5",
|
|
61
|
+
"vitest": "^3.1.4"
|
|
54
62
|
},
|
|
55
63
|
"dependencies": {
|
|
56
|
-
"@acusti/styling": "^
|
|
64
|
+
"@acusti/styling": "^2.0.0",
|
|
57
65
|
"clsx": "^2"
|
|
58
66
|
},
|
|
59
67
|
"peerDependencies": {
|
|
60
|
-
"react": "^19",
|
|
61
|
-
"react-dom": "^19"
|
|
68
|
+
"react": "^19 || ~0.0.0-experimental < 0.0.0-f",
|
|
69
|
+
"react-dom": "^19 || ~0.0.0-experimental < 0.0.0-f"
|
|
62
70
|
}
|
|
63
71
|
}
|
package/dist/DatePicker.js
DELETED
|
@@ -1,108 +0,0 @@
|
|
|
1
|
-
/* eslint-disable jsx-a11y/click-events-have-key-events, jsx-a11y/no-static-element-interactions */
|
|
2
|
-
import { Style } from '@acusti/styling';
|
|
3
|
-
import clsx from 'clsx';
|
|
4
|
-
import * as React from 'react';
|
|
5
|
-
import MonthCalendar from './MonthCalendar.js';
|
|
6
|
-
import { ROOT_CLASS_NAME, STYLES } from './styles/date-picker.js';
|
|
7
|
-
import { getMonthAbbreviationFromMonth, getMonthFromDate, getYearFromMonth, } from './utils.js';
|
|
8
|
-
const { Fragment, useCallback, useEffect, useRef, useState } = React;
|
|
9
|
-
const getAbbreviatedMonthTitle = (month) => `${getMonthAbbreviationFromMonth(month)} ${getYearFromMonth(month)}`;
|
|
10
|
-
export default function DatePicker({ className, dateEnd: _dateEnd, dateStart: _dateStart, initialMonth, isRange = _dateEnd != null, isTwoUp, monthLimitFirst, monthLimitLast, onChange, showEndInitially, useMonthAbbreviations, }) {
|
|
11
|
-
const dateEndFromProps = _dateEnd != null && typeof _dateEnd !== 'string'
|
|
12
|
-
? new Date(_dateEnd).toISOString()
|
|
13
|
-
: _dateEnd;
|
|
14
|
-
const dateStartFromProps = _dateStart != null && typeof _dateStart !== 'string'
|
|
15
|
-
? new Date(_dateStart).toISOString()
|
|
16
|
-
: _dateStart;
|
|
17
|
-
const [dateEnd, setDateEnd] = useState(dateEndFromProps !== null && dateEndFromProps !== void 0 ? dateEndFromProps : null);
|
|
18
|
-
const [dateStart, setDateStart] = useState(dateStartFromProps !== null && dateStartFromProps !== void 0 ? dateStartFromProps : null);
|
|
19
|
-
const updatingDateEndRef = useRef(false);
|
|
20
|
-
useEffect(() => {
|
|
21
|
-
if (dateEndFromProps == null)
|
|
22
|
-
return;
|
|
23
|
-
setDateEnd(dateEndFromProps);
|
|
24
|
-
}, [dateEndFromProps]);
|
|
25
|
-
useEffect(() => {
|
|
26
|
-
if (dateStartFromProps == null)
|
|
27
|
-
return;
|
|
28
|
-
setDateStart(dateStartFromProps);
|
|
29
|
-
}, [dateStartFromProps]);
|
|
30
|
-
if (initialMonth == null) {
|
|
31
|
-
// if no valid initial date, initially show present month as date end
|
|
32
|
-
const useDateEnd = dateStart == null || Boolean(showEndInitially && dateEnd);
|
|
33
|
-
// use date from props if set
|
|
34
|
-
const initialDate = useDateEnd ? dateEnd : dateStart;
|
|
35
|
-
initialMonth = getMonthFromDate(initialDate == null ? new Date() : new Date(initialDate));
|
|
36
|
-
if (useDateEnd && isTwoUp) {
|
|
37
|
-
initialMonth -= 1;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
const [dateEndPreview, setDateEndPreview] = useState(null);
|
|
41
|
-
const [month, setMonth] = useState(initialMonth);
|
|
42
|
-
// In two-up view we see 1 more month, so monthLimitLast needs to be 1 less
|
|
43
|
-
if (isTwoUp && monthLimitLast != null) {
|
|
44
|
-
monthLimitLast -= 1;
|
|
45
|
-
}
|
|
46
|
-
const handleClickLeftArrow = useCallback(() => {
|
|
47
|
-
setMonth((existingMonth) => monthLimitFirst == null || existingMonth > monthLimitFirst
|
|
48
|
-
? existingMonth - 1
|
|
49
|
-
: existingMonth);
|
|
50
|
-
}, [monthLimitFirst]);
|
|
51
|
-
const handleClickRightArrow = useCallback(() => {
|
|
52
|
-
setMonth((existingMonth) => monthLimitLast == null || existingMonth < monthLimitLast
|
|
53
|
-
? existingMonth + 1
|
|
54
|
-
: existingMonth);
|
|
55
|
-
}, [monthLimitLast]);
|
|
56
|
-
const handleChange = useCallback((date) => {
|
|
57
|
-
// If we last set the dateStart or we have a dateStart but no dateEnd, set dateEnd
|
|
58
|
-
if (isRange &&
|
|
59
|
-
dateStart != null &&
|
|
60
|
-
(updatingDateEndRef.current || dateEnd == null)) {
|
|
61
|
-
// Ensure that dateEnd is after dateStart; if not, swap them
|
|
62
|
-
if (date < dateStart) {
|
|
63
|
-
setDateStart(date);
|
|
64
|
-
setDateEnd(dateStart);
|
|
65
|
-
onChange({ dateEnd: dateStart, dateStart: date });
|
|
66
|
-
}
|
|
67
|
-
else {
|
|
68
|
-
setDateEnd(date);
|
|
69
|
-
onChange({ dateEnd: date, dateStart });
|
|
70
|
-
}
|
|
71
|
-
updatingDateEndRef.current = false;
|
|
72
|
-
}
|
|
73
|
-
else {
|
|
74
|
-
setDateStart(date);
|
|
75
|
-
setDateEnd(null);
|
|
76
|
-
if (isRange) {
|
|
77
|
-
onChange({ dateEnd: null, dateStart: date });
|
|
78
|
-
updatingDateEndRef.current = true;
|
|
79
|
-
}
|
|
80
|
-
else {
|
|
81
|
-
onChange({ dateStart: date });
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
}, [dateEnd, dateStart, isRange, onChange]);
|
|
85
|
-
const handleChangeEndPreview = useCallback((date) => {
|
|
86
|
-
setDateEndPreview(date);
|
|
87
|
-
}, []);
|
|
88
|
-
return (React.createElement(Fragment, null,
|
|
89
|
-
React.createElement(Style, { href: "@acusti/date-picker/DatePicker" }, STYLES),
|
|
90
|
-
React.createElement("div", { className: clsx(ROOT_CLASS_NAME, className, {
|
|
91
|
-
'two-up': isTwoUp,
|
|
92
|
-
}) },
|
|
93
|
-
React.createElement("div", { className: `${ROOT_CLASS_NAME}-range-arrow-wrap` },
|
|
94
|
-
React.createElement("div", { className: clsx(`${ROOT_CLASS_NAME}-range-arrow left-arrow`, {
|
|
95
|
-
disabled: monthLimitFirst != null && month <= monthLimitFirst,
|
|
96
|
-
}), onClick: handleClickLeftArrow }),
|
|
97
|
-
React.createElement("div", { className: clsx(`${ROOT_CLASS_NAME}-range-arrow right-arrow`, {
|
|
98
|
-
disabled: monthLimitLast != null && month >= monthLimitLast,
|
|
99
|
-
}), onClick: handleClickRightArrow })),
|
|
100
|
-
React.createElement("div", { className: `${ROOT_CLASS_NAME}-month-container` },
|
|
101
|
-
React.createElement(MonthCalendar, { dateEnd: dateEnd, dateEndPreview: dateEndPreview, dateStart: dateStart, isRange: isRange, month: month, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: useMonthAbbreviations
|
|
102
|
-
? getAbbreviatedMonthTitle(month)
|
|
103
|
-
: undefined }),
|
|
104
|
-
isTwoUp ? (React.createElement(MonthCalendar, { dateEnd: dateEnd, dateEndPreview: dateEndPreview, dateStart: dateStart, isRange: isRange, month: month + 1, onChange: handleChange, onChangeEndPreview: handleChangeEndPreview, title: useMonthAbbreviations
|
|
105
|
-
? getAbbreviatedMonthTitle(month + 1)
|
|
106
|
-
: undefined })) : null))));
|
|
107
|
-
}
|
|
108
|
-
//# sourceMappingURL=DatePicker.js.map
|
package/dist/DatePicker.js.flow
DELETED
|
@@ -1,31 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for DatePicker
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import * as React from "react";
|
|
9
|
-
export type Props = {|
|
|
10
|
-
className?: string,
|
|
11
|
-
dateEnd?: Date | number | string,
|
|
12
|
-
dateStart?: Date | number | string,
|
|
13
|
-
initialMonth?: number,
|
|
14
|
-
isRange?: boolean,
|
|
15
|
-
isTwoUp?: boolean,
|
|
16
|
-
monthLimitFirst?: number,
|
|
17
|
-
monthLimitLast?: number,
|
|
18
|
-
onChange: (payload: {|
|
|
19
|
-
dateEnd?: null | string,
|
|
20
|
-
dateStart: string,
|
|
21
|
-
|}) => void,
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* Boolean to specify that date picker should initially render with the
|
|
25
|
-
* end date’s month visible. The default behavior is to initially render
|
|
26
|
-
* with the start date’s month visible.
|
|
27
|
-
*/
|
|
28
|
-
showEndInitially?: boolean,
|
|
29
|
-
useMonthAbbreviations?: boolean,
|
|
30
|
-
|};
|
|
31
|
-
declare export default function DatePicker(x: Props): React.Node;
|
package/dist/DatePicker.js.map
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DatePicker.js","sourceRoot":"","sources":["../src/DatePicker.tsx"],"names":[],"mappings":"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"}
|
package/dist/MonthCalendar.js
DELETED
|
@@ -1,105 +0,0 @@
|
|
|
1
|
-
import { Style } from '@acusti/styling';
|
|
2
|
-
import clsx from 'clsx';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { ROOT_CLASS_NAME, STYLES } from './styles/month-calendar.js';
|
|
5
|
-
import { getDateFromMonthAndDay, getLastDateFromMonth, getMonthFromDate, getMonthNameFromMonth, getYearFromMonth, } from './utils.js';
|
|
6
|
-
const { Fragment, useCallback } = React;
|
|
7
|
-
const DAYS = Array(7).fill(null);
|
|
8
|
-
export default function MonthCalendar({ className, dateEnd, dateEndPreview, dateStart, isRange, month, onChange, onChangeEndPreview, title, }) {
|
|
9
|
-
const year = getYearFromMonth(month);
|
|
10
|
-
title = title !== null && title !== void 0 ? title : `${getMonthNameFromMonth(month)} ${year}`;
|
|
11
|
-
const firstDate = getDateFromMonthAndDay(month, 1);
|
|
12
|
-
const lastDate = getLastDateFromMonth(month);
|
|
13
|
-
const totalDays = lastDate.getDate();
|
|
14
|
-
const firstDay = firstDate.getDay();
|
|
15
|
-
const spacesAfterLastDay = 7 - (lastDate.getDay() % 7); // prettier-ignore
|
|
16
|
-
const daySpaces = totalDays + firstDay + spacesAfterLastDay;
|
|
17
|
-
const [dateRangeStartDay, dateRangeEndDay, dateRangeEndPreviewDay] = [
|
|
18
|
-
dateStart,
|
|
19
|
-
dateEnd,
|
|
20
|
-
dateEndPreview,
|
|
21
|
-
].reduce((acc, date, index) => {
|
|
22
|
-
if (date != null && !(date instanceof Date)) {
|
|
23
|
-
date = new Date(date);
|
|
24
|
-
}
|
|
25
|
-
if (date == null || Number.isNaN(date.getTime()))
|
|
26
|
-
return acc;
|
|
27
|
-
const dateMonth = getMonthFromDate(date);
|
|
28
|
-
if (dateMonth < month)
|
|
29
|
-
acc[index] = -1;
|
|
30
|
-
else if (dateMonth > month)
|
|
31
|
-
acc[index] = totalDays + 1;
|
|
32
|
-
else
|
|
33
|
-
acc[index] = date.getDate();
|
|
34
|
-
if (index === 1) {
|
|
35
|
-
const startDay = acc[index - 1];
|
|
36
|
-
const endDay = acc[index];
|
|
37
|
-
// Ensure that end date is after start date and swap them if not
|
|
38
|
-
if (startDay != null && endDay != null && startDay > endDay) {
|
|
39
|
-
acc[index - 1] = endDay;
|
|
40
|
-
acc[index] = startDay;
|
|
41
|
-
}
|
|
42
|
-
}
|
|
43
|
-
return acc;
|
|
44
|
-
}, [null, null, null]);
|
|
45
|
-
const handleClickDay = useCallback((event) => {
|
|
46
|
-
const { date } = event.currentTarget.dataset;
|
|
47
|
-
if (date && onChange)
|
|
48
|
-
onChange(date);
|
|
49
|
-
}, [onChange]);
|
|
50
|
-
const handleMouseEnterDay = useCallback((event) => {
|
|
51
|
-
if (isRange && onChangeEndPreview) {
|
|
52
|
-
const { date } = event.currentTarget.dataset;
|
|
53
|
-
if (date)
|
|
54
|
-
onChangeEndPreview(date);
|
|
55
|
-
}
|
|
56
|
-
}, [isRange, onChangeEndPreview]);
|
|
57
|
-
return (React.createElement(Fragment, null,
|
|
58
|
-
React.createElement(Style, { href: "@acusti/date-picker/MonthCalendar" }, STYLES),
|
|
59
|
-
React.createElement("div", { className: clsx(ROOT_CLASS_NAME, className) },
|
|
60
|
-
React.createElement("div", { className: `${ROOT_CLASS_NAME}-month-title` },
|
|
61
|
-
React.createElement("h3", { className: `${ROOT_CLASS_NAME}-month-title-text` }, title)),
|
|
62
|
-
React.createElement("div", { className: `${ROOT_CLASS_NAME}-month-week` },
|
|
63
|
-
React.createElement("div", { className: "week-day-item" },
|
|
64
|
-
React.createElement("span", { className: "week-day-item-text" }, "Su")),
|
|
65
|
-
React.createElement("div", { className: "week-day-item" },
|
|
66
|
-
React.createElement("span", { className: "week-day-item-text" }, "Mo")),
|
|
67
|
-
React.createElement("div", { className: "week-day-item" },
|
|
68
|
-
React.createElement("span", { className: "week-day-item-text" }, "Tu")),
|
|
69
|
-
React.createElement("div", { className: "week-day-item" },
|
|
70
|
-
React.createElement("span", { className: "week-day-item-text" }, "We")),
|
|
71
|
-
React.createElement("div", { className: "week-day-item" },
|
|
72
|
-
React.createElement("span", { className: "week-day-item-text" }, "Th")),
|
|
73
|
-
React.createElement("div", { className: "week-day-item" },
|
|
74
|
-
React.createElement("span", { className: "week-day-item-text" }, "Fr")),
|
|
75
|
-
React.createElement("div", { className: "week-day-item" },
|
|
76
|
-
React.createElement("span", { className: "week-day-item-text" }, "Sa"))),
|
|
77
|
-
React.createElement("div", { className: `${ROOT_CLASS_NAME}-month-days` }, Array(Math.floor(daySpaces / 7))
|
|
78
|
-
.fill(null)
|
|
79
|
-
.map((_, weekIndex) => (React.createElement("div", { className: `${ROOT_CLASS_NAME}-month-row`, key: `MonthRow-${weekIndex}` }, DAYS.map((__, dayIndex) => {
|
|
80
|
-
dayIndex += weekIndex * 7;
|
|
81
|
-
const dayNumber = (dayIndex - firstDay) + 1; // prettier-ignore
|
|
82
|
-
const isEmpty = dayNumber < 1 || dayNumber > totalDays;
|
|
83
|
-
const date = isEmpty
|
|
84
|
-
? null
|
|
85
|
-
: getDateFromMonthAndDay(month, dayNumber);
|
|
86
|
-
const isAfterDateRangeStart = dateRangeStartDay != null &&
|
|
87
|
-
dayNumber > dateRangeStartDay;
|
|
88
|
-
const isBeforeDateRangeEnd = (dateRangeEndDay == null &&
|
|
89
|
-
dateRangeEndPreviewDay != null &&
|
|
90
|
-
dayNumber < dateRangeEndPreviewDay) ||
|
|
91
|
-
(dateRangeEndDay != null &&
|
|
92
|
-
dayNumber < dateRangeEndDay);
|
|
93
|
-
return (React.createElement("button", { className: clsx(`${ROOT_CLASS_NAME}-month-day-item`, {
|
|
94
|
-
'end-date': !isEmpty &&
|
|
95
|
-
dayNumber === dateRangeEndDay,
|
|
96
|
-
'is-empty': isEmpty,
|
|
97
|
-
'is-selected': !isEmpty &&
|
|
98
|
-
isAfterDateRangeStart &&
|
|
99
|
-
isBeforeDateRangeEnd,
|
|
100
|
-
'start-date': !isEmpty &&
|
|
101
|
-
dayNumber === dateRangeStartDay,
|
|
102
|
-
}), "data-date": date === null || date === void 0 ? void 0 : date.toISOString(), disabled: isEmpty, key: `MonthDayItem-${dayNumber}`, onClick: handleClickDay, onMouseEnter: handleMouseEnterDay, type: "button" }, isEmpty ? null : (React.createElement("span", { className: "month-day-item-text" }, dayNumber))));
|
|
103
|
-
}))))))));
|
|
104
|
-
}
|
|
105
|
-
//# sourceMappingURL=MonthCalendar.js.map
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for MonthCalendar
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
import * as React from "react";
|
|
9
|
-
export type Props = {|
|
|
10
|
-
className?: string,
|
|
11
|
-
dateEnd?: Date | null | number | string,
|
|
12
|
-
dateEndPreview?: null | string,
|
|
13
|
-
dateStart?: Date | null | number | string,
|
|
14
|
-
isRange?: boolean,
|
|
15
|
-
month: number,
|
|
16
|
-
onChange?: (date: string) => void,
|
|
17
|
-
onChangeEndPreview?: (date: string) => void,
|
|
18
|
-
title?: string,
|
|
19
|
-
|};
|
|
20
|
-
declare export default function MonthCalendar(x: Props): React.Node;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"MonthCalendar.js","sourceRoot":"","sources":["../src/MonthCalendar.tsx"],"names":[],"mappings":"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"}
|
package/dist/index.js.flow
DELETED
|
@@ -1,10 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Flowtype definitions for index
|
|
3
|
-
* Generated by Flowgen from a Typescript Definition
|
|
4
|
-
* Flowgen v1.21.0
|
|
5
|
-
* @flow
|
|
6
|
-
*/
|
|
7
|
-
|
|
8
|
-
declare export { default as DatePicker } from "./DatePicker.js";
|
|
9
|
-
declare export { default as MonthCalendar } from "./MonthCalendar.js";
|
|
10
|
-
declare export * from "./utils.js";
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
export const ROOT_CLASS_NAME = 'uktdatepicker';
|
|
2
|
-
export const STYLES = `
|
|
3
|
-
.${ROOT_CLASS_NAME} {
|
|
4
|
-
display: flex;
|
|
5
|
-
box-sizing: border-box;
|
|
6
|
-
padding: 40px 60px 60px;
|
|
7
|
-
flex: 1 1 auto;
|
|
8
|
-
position: relative;
|
|
9
|
-
max-width: 450px;
|
|
10
|
-
}
|
|
11
|
-
|
|
12
|
-
.${ROOT_CLASS_NAME}.two-up {
|
|
13
|
-
max-width: 820px;
|
|
14
|
-
}
|
|
15
|
-
|
|
16
|
-
.${ROOT_CLASS_NAME}-range-arrow-wrap {
|
|
17
|
-
position: absolute;
|
|
18
|
-
top: 30px;
|
|
19
|
-
left: 0px;
|
|
20
|
-
display: flex;
|
|
21
|
-
justify-content: space-between;
|
|
22
|
-
height: 0px;
|
|
23
|
-
width: 100%;
|
|
24
|
-
padding: 0px 60px;
|
|
25
|
-
box-sizing: border-box;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.${ROOT_CLASS_NAME}-range-arrow {
|
|
29
|
-
width: 35px;
|
|
30
|
-
height: 35px;
|
|
31
|
-
text-align: center;
|
|
32
|
-
cursor: pointer;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
.${ROOT_CLASS_NAME}-range-arrow.disabled {
|
|
36
|
-
color: #ccc;
|
|
37
|
-
cursor: default;
|
|
38
|
-
}
|
|
39
|
-
|
|
40
|
-
.${ROOT_CLASS_NAME}-range-arrow:active {
|
|
41
|
-
transform: translateY(1px);
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
.${ROOT_CLASS_NAME}-range-arrow.left-arrow:after,
|
|
45
|
-
.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {
|
|
46
|
-
content: "‹";
|
|
47
|
-
font-size: 24px;
|
|
48
|
-
line-height: 35px;
|
|
49
|
-
font-weight: bold;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
.${ROOT_CLASS_NAME}-range-arrow.right-arrow:after {
|
|
53
|
-
content: "›";
|
|
54
|
-
}
|
|
55
|
-
|
|
56
|
-
.${ROOT_CLASS_NAME}-month-container {
|
|
57
|
-
display: flex;
|
|
58
|
-
flex: 1 1 auto;
|
|
59
|
-
justify-content: space-between;
|
|
60
|
-
}
|
|
61
|
-
`;
|
|
62
|
-
//# sourceMappingURL=date-picker.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sourceRoot":"","sources":["../../src/styles/date-picker.ts"],"names":[],"mappings":"AAAA,MAAM,CAAC,MAAM,eAAe,GAAG,eAAe,CAAC;AAE/C,MAAM,CAAC,MAAM,MAAM,GAAG;GACnB,eAAe;;;;;;;;;GASf,eAAe;;;;GAIf,eAAe;;;;;;;;;;;;GAYf,eAAe;;;;;;;GAOf,eAAe;;;;;GAKf,eAAe;;;;GAIf,eAAe;GACf,eAAe;;;;;;;GAOf,eAAe;;;;GAIf,eAAe;;;;;CAKjB,CAAC"}
|