@skbkontur/react-ui 4.23.0 → 4.25.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/CHANGELOG.md +25 -0
- package/cjs/components/Calendar/Calendar.d.ts +40 -5
- package/cjs/components/Calendar/Calendar.js +92 -36
- package/cjs/components/Calendar/Calendar.js.map +1 -1
- package/cjs/components/Calendar/Calendar.md +42 -1
- package/cjs/components/Calendar/Calendar.styles.js +1 -1
- package/cjs/components/Calendar/Calendar.styles.js.map +1 -1
- package/cjs/components/Calendar/CalendarContext.d.ts +12 -0
- package/cjs/components/Calendar/CalendarContext.js +16 -0
- package/cjs/components/Calendar/CalendarContext.js.map +1 -0
- package/cjs/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/cjs/components/Calendar/CalendarDateShape.js +13 -3
- package/cjs/components/Calendar/CalendarDateShape.js.map +1 -1
- package/cjs/components/Calendar/CalendarDay.d.ts +12 -0
- package/cjs/components/Calendar/CalendarDay.js +77 -0
- package/cjs/components/Calendar/CalendarDay.js.map +1 -0
- package/cjs/components/Calendar/CalendarDay.md +70 -0
- package/cjs/components/Calendar/CalendarUtils.d.ts +2 -1
- package/cjs/components/Calendar/CalendarUtils.js +4 -6
- package/cjs/components/Calendar/CalendarUtils.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.d.ts +4 -12
- package/cjs/components/Calendar/DayCellView.js +20 -43
- package/cjs/components/Calendar/DayCellView.js.map +1 -1
- package/cjs/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/cjs/components/Calendar/DayCellView.styles.js +17 -24
- package/cjs/components/Calendar/DayCellView.styles.js.map +1 -1
- package/cjs/components/Calendar/Month.d.ts +0 -10
- package/cjs/components/Calendar/Month.js +33 -86
- package/cjs/components/Calendar/Month.js.map +1 -1
- package/cjs/components/Calendar/MonthView.d.ts +3 -2
- package/cjs/components/Calendar/MonthView.js +47 -37
- package/cjs/components/Calendar/MonthView.js.map +1 -1
- package/cjs/components/Calendar/MonthView.styles.d.ts +3 -0
- package/cjs/components/Calendar/MonthView.styles.js +45 -7
- package/cjs/components/Calendar/MonthView.styles.js.map +1 -1
- package/cjs/components/Calendar/MonthViewModel.js +24 -6
- package/cjs/components/Calendar/MonthViewModel.js.map +1 -1
- package/cjs/components/Calendar/config.js +12 -6
- package/cjs/components/Calendar/config.js.map +1 -1
- package/cjs/components/Calendar/index.d.ts +1 -0
- package/cjs/components/Calendar/index.js +2 -1
- package/cjs/components/Calendar/index.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.d.ts +4 -1
- package/cjs/components/DatePicker/DatePicker.js +71 -44
- package/cjs/components/DatePicker/DatePicker.js.map +1 -1
- package/cjs/components/DatePicker/DatePicker.md +36 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js +2 -1
- package/cjs/components/DatePicker/DatePickerHelpers.js.map +1 -1
- package/cjs/components/DatePicker/MobilePicker.d.ts +10 -0
- package/cjs/components/DatePicker/MobilePicker.js +118 -0
- package/cjs/components/DatePicker/MobilePicker.js.map +1 -0
- package/cjs/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js +8 -0
- package/cjs/components/DatePicker/MobilePicker.styles.js.map +1 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js +19 -0
- package/cjs/components/DatePicker/getMobilePickerTheme.js.map +1 -0
- package/cjs/components/Input/Input.js +1 -1
- package/cjs/components/Input/Input.js.map +1 -1
- package/cjs/components/Input/Input.styles.d.ts +1 -1
- package/cjs/components/Input/Input.styles.js +3 -2
- package/cjs/components/Input/Input.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/cjs/components/Input/InputLayout/InputLayout.styles.js +3 -2
- package/cjs/components/Input/InputLayout/InputLayout.styles.js.map +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js +1 -1
- package/cjs/components/Input/InputLayout/InputLayoutAsideIcon.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.d.ts +2 -0
- package/cjs/internal/DateSelect/DateSelect.js +50 -4
- package/cjs/internal/DateSelect/DateSelect.js.map +1 -1
- package/cjs/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/cjs/internal/DateSelect/DateSelect.styles.js +15 -1
- package/cjs/internal/DateSelect/DateSelect.styles.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/en.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/en.js.map +1 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js +2 -1
- package/cjs/internal/DateSelect/locale/locales/ru.js.map +1 -1
- package/cjs/internal/DateSelect/locale/types.d.ts +1 -0
- package/cjs/internal/InputLikeText/InputLikeText.js +1 -1
- package/cjs/internal/InputLikeText/InputLikeText.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopup.js +8 -2
- package/cjs/internal/MobilePopup/MobilePopup.js.map +1 -1
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js +32 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js +15 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.js.map +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js +1 -0
- package/cjs/internal/MobilePopup/MobilePopupFooter/index.js.map +1 -0
- package/cjs/internal/NativeDateInput/utils.js +3 -2
- package/cjs/internal/NativeDateInput/utils.js.map +1 -1
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js +9 -6
- package/cjs/internal/ThemePlayground/ThemeContextPlayground.js.map +1 -1
- package/cjs/internal/ThemePlayground/constants.js +2 -1
- package/cjs/internal/ThemePlayground/constants.js.map +1 -1
- package/cjs/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/cjs/internal/themes/DarkTheme.d.ts +2 -0
- package/cjs/internal/themes/DarkTheme.js +6 -1
- package/cjs/internal/themes/DarkTheme.js.map +1 -1
- package/cjs/internal/themes/DefaultTheme.d.ts +18 -0
- package/cjs/internal/themes/DefaultTheme.js +32 -4
- package/cjs/internal/themes/DefaultTheme.js.map +1 -1
- package/cjs/lib/date/InternalDate.d.ts +2 -0
- package/cjs/lib/date/InternalDate.js +8 -1
- package/cjs/lib/date/InternalDate.js.map +1 -1
- package/cjs/lib/date/InternalDateTransformer.d.ts +3 -0
- package/cjs/lib/date/InternalDateTransformer.js +23 -0
- package/cjs/lib/date/InternalDateTransformer.js.map +1 -1
- package/cjs/lib/date/InternalDateValidator.js +2 -1
- package/cjs/lib/date/InternalDateValidator.js.map +1 -1
- package/cjs/lib/date/comparison.d.ts +6 -0
- package/cjs/lib/date/comparison.js +44 -0
- package/cjs/lib/date/comparison.js.map +1 -0
- package/cjs/lib/locale/constants.d.ts +3 -0
- package/cjs/lib/locale/constants.js +6 -2
- package/cjs/lib/locale/constants.js.map +1 -1
- package/cjs/lib/theming/ThemeContext.md +3 -1
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js +50 -0
- package/cjs/lib/theming/themes/Theme2022DarkUpdate2024.js.map +1 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js +75 -0
- package/cjs/lib/theming/themes/Theme2022Update2024.js.map +1 -0
- package/components/Calendar/Calendar/Calendar.js +81 -64
- package/components/Calendar/Calendar/Calendar.js.map +1 -1
- package/components/Calendar/Calendar.d.ts +40 -5
- package/components/Calendar/Calendar.md +42 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js +1 -1
- package/components/Calendar/Calendar.styles/Calendar.styles.js.map +1 -1
- package/components/Calendar/CalendarContext/CalendarContext.js +2 -0
- package/components/Calendar/CalendarContext/CalendarContext.js.map +1 -0
- package/components/Calendar/CalendarContext/package.json +6 -0
- package/components/Calendar/CalendarContext.d.ts +12 -0
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js +23 -1
- package/components/Calendar/CalendarDateShape/CalendarDateShape.js.map +1 -1
- package/components/Calendar/CalendarDateShape.d.ts +4 -2
- package/components/Calendar/CalendarDay/CalendarDay.js +62 -0
- package/components/Calendar/CalendarDay/CalendarDay.js.map +1 -0
- package/components/Calendar/CalendarDay/package.json +6 -0
- package/components/Calendar/CalendarDay.d.ts +12 -0
- package/components/Calendar/CalendarDay.md +70 -0
- package/components/Calendar/CalendarUtils/CalendarUtils.js +5 -4
- package/components/Calendar/CalendarUtils/CalendarUtils.js.map +1 -1
- package/components/Calendar/CalendarUtils.d.ts +2 -1
- package/components/Calendar/DayCellView/DayCellView.js +32 -46
- package/components/Calendar/DayCellView/DayCellView.js.map +1 -1
- package/components/Calendar/DayCellView.d.ts +4 -12
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js +10 -13
- package/components/Calendar/DayCellView.styles/DayCellView.styles.js.map +1 -1
- package/components/Calendar/DayCellView.styles.d.ts +2 -5
- package/components/Calendar/Month/Month.js +45 -80
- package/components/Calendar/Month/Month.js.map +1 -1
- package/components/Calendar/Month.d.ts +0 -10
- package/components/Calendar/MonthView/MonthView.js +49 -44
- package/components/Calendar/MonthView/MonthView.js.map +1 -1
- package/components/Calendar/MonthView.d.ts +3 -2
- package/components/Calendar/MonthView.styles/MonthView.styles.js +20 -6
- package/components/Calendar/MonthView.styles/MonthView.styles.js.map +1 -1
- package/components/Calendar/MonthView.styles.d.ts +3 -0
- package/components/Calendar/MonthViewModel/MonthViewModel.js +9 -6
- package/components/Calendar/MonthViewModel/MonthViewModel.js.map +1 -1
- package/components/Calendar/config/config.js +6 -4
- package/components/Calendar/config/config.js.map +1 -1
- package/components/Calendar/index/index.js +2 -1
- package/components/Calendar/index/index.js.map +1 -1
- package/components/Calendar/index.d.ts +1 -0
- package/components/DatePicker/DatePicker/DatePicker.js +60 -38
- package/components/DatePicker/DatePicker/DatePicker.js.map +1 -1
- package/components/DatePicker/DatePicker.d.ts +4 -1
- package/components/DatePicker/DatePicker.md +36 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js +2 -1
- package/components/DatePicker/DatePickerHelpers/DatePickerHelpers.js.map +1 -1
- package/components/DatePicker/MobilePicker/MobilePicker.js +91 -0
- package/components/DatePicker/MobilePicker/MobilePicker.js.map +1 -0
- package/components/DatePicker/MobilePicker/package.json +6 -0
- package/components/DatePicker/MobilePicker.d.ts +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js +10 -0
- package/components/DatePicker/MobilePicker.styles/MobilePicker.styles.js.map +1 -0
- package/components/DatePicker/MobilePicker.styles/package.json +6 -0
- package/components/DatePicker/MobilePicker.styles.d.ts +3 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js +14 -0
- package/components/DatePicker/getMobilePickerTheme/getMobilePickerTheme.js.map +1 -0
- package/components/DatePicker/getMobilePickerTheme/package.json +6 -0
- package/components/DatePicker/getMobilePickerTheme.d.ts +2 -0
- package/components/Input/Input/Input.js +1 -1
- package/components/Input/Input/Input.js.map +1 -1
- package/components/Input/Input.styles/Input.styles.js +2 -2
- package/components/Input/Input.styles/Input.styles.js.map +1 -1
- package/components/Input/Input.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js +2 -2
- package/components/Input/InputLayout/InputLayout.styles/InputLayout.styles.js.map +1 -1
- package/components/Input/InputLayout/InputLayout.styles.d.ts +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js +1 -1
- package/components/Input/InputLayout/InputLayoutAsideIcon/InputLayoutAsideIcon.js.map +1 -1
- package/internal/DateSelect/DateSelect/DateSelect.js +56 -4
- package/internal/DateSelect/DateSelect/DateSelect.js.map +1 -1
- package/internal/DateSelect/DateSelect.d.ts +2 -0
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js +4 -1
- package/internal/DateSelect/DateSelect.styles/DateSelect.styles.js.map +1 -1
- package/internal/DateSelect/DateSelect.styles.d.ts +1 -0
- package/internal/DateSelect/locale/locales/en/en.js +2 -1
- package/internal/DateSelect/locale/locales/en/en.js.map +1 -1
- package/internal/DateSelect/locale/locales/ru/ru.js +2 -1
- package/internal/DateSelect/locale/locales/ru/ru.js.map +1 -1
- package/internal/DateSelect/locale/types.d.ts +1 -0
- package/internal/InputLikeText/InputLikeText/InputLikeText.js +1 -1
- package/internal/InputLikeText/InputLikeText/InputLikeText.js.map +1 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js +2 -1
- package/internal/MobilePopup/MobilePopup/MobilePopup.js.map +1 -1
- package/internal/MobilePopup/MobilePopup.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js +37 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/MobilePopupFooter.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.d.ts +7 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js +11 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/MobilePopupFooter.styles.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/MobilePopupFooter.styles.d.ts +4 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/index.js.map +1 -0
- package/internal/MobilePopup/MobilePopupFooter/index/package.json +6 -0
- package/internal/MobilePopup/MobilePopupFooter/index.d.ts +1 -0
- package/internal/MobilePopup/MobilePopupFooter/package.json +6 -0
- package/internal/NativeDateInput/utils/utils.js +2 -1
- package/internal/NativeDateInput/utils/utils.js.map +1 -1
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js +8 -5
- package/internal/ThemePlayground/ThemeContextPlayground/ThemeContextPlayground.js.map +1 -1
- package/internal/ThemePlayground/constants/constants.js +3 -0
- package/internal/ThemePlayground/constants/constants.js.map +1 -1
- package/internal/ThemeShowcase/VariablesCollector.d.ts +1 -1
- package/internal/themes/DarkTheme/DarkTheme.js +2 -0
- package/internal/themes/DarkTheme/DarkTheme.js.map +1 -1
- package/internal/themes/DarkTheme.d.ts +2 -0
- package/internal/themes/DefaultTheme/DefaultTheme.js +32 -1
- package/internal/themes/DefaultTheme/DefaultTheme.js.map +1 -1
- package/internal/themes/DefaultTheme.d.ts +18 -0
- package/lib/date/InternalDate/InternalDate.js +7 -1
- package/lib/date/InternalDate/InternalDate.js.map +1 -1
- package/lib/date/InternalDate.d.ts +2 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js +30 -0
- package/lib/date/InternalDateTransformer/InternalDateTransformer.js.map +1 -1
- package/lib/date/InternalDateTransformer.d.ts +3 -0
- package/lib/date/InternalDateValidator/InternalDateValidator.js +6 -1
- package/lib/date/InternalDateValidator/InternalDateValidator.js.map +1 -1
- package/lib/date/comparison/comparison.js +45 -0
- package/lib/date/comparison/comparison.js.map +1 -0
- package/lib/date/comparison/package.json +6 -0
- package/lib/date/comparison.d.ts +6 -0
- package/lib/locale/constants/constants.js +4 -1
- package/lib/locale/constants/constants.js.map +1 -1
- package/lib/locale/constants.d.ts +3 -0
- package/lib/theming/ThemeContext.md +3 -1
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js +33 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/Theme2022DarkUpdate2024.js.map +1 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024/package.json +6 -0
- package/lib/theming/themes/Theme2022DarkUpdate2024.d.ts +30 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js +50 -0
- package/lib/theming/themes/Theme2022Update2024/Theme2022Update2024.js.map +1 -0
- package/lib/theming/themes/Theme2022Update2024/package.json +6 -0
- package/lib/theming/themes/Theme2022Update2024.d.ts +46 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["MonthViewModel.ts"],"names":["getCurrentYear","month","year","Math","ceil","floor","getCurrentMonth","MonthViewModel","getHeight","theme","
|
|
1
|
+
{"version":3,"sources":["MonthViewModel.ts"],"names":["getCurrentYear","month","year","Math","ceil","floor","getCurrentMonth","MonthViewModel","getHeight","theme","DAY_HEIGHT","MONTH_TITLE_OFFSET_HEIGHT","MONTH_BOTTOM_MARGIN","CALENDAR_GRID_ROW_SPACING","getMonthHeight","daysCount","offset","currentYear","currentMonth","getMonthsDays","getMonthOffset","isLastInYear","isFirstInYear","days","Array","from","length","_","i","isWeekend","DayCellViewModel","create","dayHeight","titleHeight","marginBottom","rowSpacing","weeks","Date","getDate","day","getDay"],"mappings":"uEAAA;;;AAGA;AACA;AACA;;AAEA,IAAMA,cAAc,GAAG,SAAjBA,cAAiB,CAACC,KAAD,EAAgBC,IAAhB,EAAiC;AACtD,MAAID,KAAK,GAAG,CAAZ,EAAe;AACb,WAAOC,IAAI,GAAGC,IAAI,CAACC,IAAL,CAAU,CAACH,KAAD,GAAS,EAAnB,CAAd;AACD;;AAED,MAAIA,KAAK,GAAG,EAAZ,EAAgB;AACd,WAAOC,IAAI,GAAGC,IAAI,CAACE,KAAL,CAAWJ,KAAK,GAAG,EAAnB,CAAd;AACD;;AAED,SAAOC,IAAP;AACD,CAVD;;AAYA,IAAMI,eAAe,GAAG,SAAlBA,eAAkB,CAACL,KAAD,EAAmB;AACzC,MAAIA,KAAK,GAAG,CAAZ,EAAe;AACb,WAAO,KAAMA,KAAK,GAAG,EAArB;AACD;;AAED,MAAIA,KAAK,GAAG,EAAZ,EAAgB;AACd,WAAOA,KAAK,GAAG,EAAf;AACD;;AAED,SAAOA,KAAP;AACD,CAVD,C;;AAYaM,c;;;;;;;;;;;;;;;;;;;AAmBJC,EAAAA,S,GAAP,mBAAiBC,KAAjB,EAAuC;AACrC;AACE,6BAAYA,KAAZ,CADF,CAAQC,UAAR,gBAAQA,UAAR,CAAoBC,yBAApB,gBAAoBA,yBAApB,CAA+CC,mBAA/C,gBAA+CA,mBAA/C,CAAoEC,yBAApE,gBAAoEA,yBAApE;AAEA,WAAOC,cAAc;AACnB,SAAKC,SADc;AAEnB,SAAKC,MAFc;AAGnBN,IAAAA,UAHmB;AAInBC,IAAAA,yBAJmB;AAKnBC,IAAAA,mBALmB;AAMnBC,IAAAA,yBANmB,CAArB;;AAQD,G;;AAED,0BAAoBZ,KAApB,EAAmCC,IAAnC,EAAiD;AAC/C,QAAMe,WAAW,GAAGjB,cAAc,CAACC,KAAD,EAAQC,IAAR,CAAlC;AACA,QAAMgB,YAAY,GAAGZ,eAAe,CAACL,KAAD,CAApC;;AAEA,QAAMc,SAAS,GAAGI,aAAa,CAACD,YAAD,EAAeD,WAAf,CAA/B;AACA,QAAMD,MAAM,GAAGI,cAAc,CAACF,YAAD,EAAeD,WAAf,CAA7B;AACA,SAAKF,SAAL,GAAiBA,SAAjB;AACA,SAAKC,MAAL,GAAcA,MAAd;AACA,SAAKf,KAAL,GAAaiB,YAAb;AACA,SAAKhB,IAAL,GAAYe,WAAZ;AACA,SAAKI,YAAL,GAAoBH,YAAY,KAAK,EAArC;AACA,SAAKI,aAAL,GAAqBJ,YAAY,KAAK,CAAtC;AACA,SAAKK,IAAL,GAAYC,KAAK,CAACC,IAAN,CAAW,EAAEC,MAAM,EAAEX,SAAV,EAAX,EAAkC,UAACY,CAAD,EAAIC,CAAJ,EAAU;AACtD,UAAMC,SAAS,GAAG,CAACD,CAAC,GAAGR,cAAc,CAACF,YAAD,EAAeD,WAAf,CAAnB,IAAkD,CAAlD,IAAuD,CAAzE;AACA,aAAOa,mCAAiBC,MAAjB,CAAwBH,CAAC,GAAG,CAA5B,EAA+BV,YAA/B,EAA6CD,WAA7C,EAA0DY,SAA1D,CAAP;AACD,KAHW,CAAZ;AAID,G,kEAhDUtB,c,CACGwB,M,GAAS,gBAAK,UAAC9B,KAAD,EAAgBC,IAAhB,UAAiD,IAAIK,cAAJ,CAAmBN,KAAnB,EAA0BC,IAA1B,CAAjD,EAAL,C;;;AAkDzB,IAAMY,cAAc,GAAG;AACrB;AACEC,SADF;AAEEC,MAFF;AAGEgB,SAHF;AAIEC,WAJF;AAKEC,YALF;AAMEC,UANF;AAOK;AACH,MAAMC,KAAK,GAAGjC,IAAI,CAACC,IAAL,CAAU,CAACW,SAAS,GAAGC,MAAb,IAAuB,CAAjC,CAAd;AACA,SAAOoB,KAAK,GAAGJ,SAAR,GAAoBC,WAApB,GAAkCC,YAAlC,GAAiDC,UAAU,GAAG,CAA9D,GAAkEA,UAAU,IAAIC,KAAK,GAAG,CAAZ,CAAnF;AACD,CAXoB,CAAvB;;AAaA,IAAMjB,aAAa,GAAG,gBAAK,UAAClB,KAAD,EAAgBC,IAAhB,UAAiC,IAAImC,IAAJ,CAASnC,IAAT,EAAe,0CAAsBD,KAAtB,CAAf,EAA6C,CAA7C,EAAgDqC,OAAhD,EAAjC,EAAL,CAAtB;;AAEA,IAAMlB,cAAc,GAAG,gBAAK,UAACnB,KAAD,EAAgBC,IAAhB,EAAiC;AAC3D,MAAMqC,GAAG,GAAG,IAAIF,IAAJ,CAASnC,IAAT,EAAeD,KAAf,EAAsB,CAAtB,EAAyBuC,MAAzB,KAAoC,CAAhD;AACA,MAAID,GAAG,KAAK,CAAC,CAAb,EAAgB;AACd,WAAO,CAAP;AACD;AACD,SAAOA,GAAP;AACD,CANsB,CAAvB","sourcesContent":["import { memo } from '../../lib/memo';\nimport { Theme } from '../../lib/theming/Theme';\n\nimport { getMonthInHumanFormat } from './CalendarUtils';\nimport { themeConfig } from './config';\nimport { DayCellViewModel } from './DayCellViewModel';\n\nconst getCurrentYear = (month: number, year: number) => {\n if (month < 0) {\n return year - Math.ceil(-month / 12);\n }\n\n if (month > 11) {\n return year + Math.floor(month / 12);\n }\n\n return year;\n};\n\nconst getCurrentMonth = (month: number) => {\n if (month < 0) {\n return 12 + (month % 12);\n }\n\n if (month > 11) {\n return month % 12;\n }\n\n return month;\n};\n\nexport class MonthViewModel {\n public static create = memo((month: number, year: number): MonthViewModel => new MonthViewModel(month, year));\n\n public readonly daysCount: number;\n\n public readonly offset: number;\n\n public readonly month: number;\n\n public readonly year: number;\n\n public readonly days: DayCellViewModel[];\n\n // FIXME: shouldbe readonly\n public isLastInYear: boolean;\n\n // FIXME: shouldbe readonly\n public isFirstInYear: boolean;\n\n public getHeight(theme: Theme): number {\n const { DAY_HEIGHT, MONTH_TITLE_OFFSET_HEIGHT, MONTH_BOTTOM_MARGIN, CALENDAR_GRID_ROW_SPACING } =\n themeConfig(theme);\n return getMonthHeight(\n this.daysCount,\n this.offset,\n DAY_HEIGHT,\n MONTH_TITLE_OFFSET_HEIGHT,\n MONTH_BOTTOM_MARGIN,\n CALENDAR_GRID_ROW_SPACING,\n );\n }\n\n private constructor(month: number, year: number) {\n const currentYear = getCurrentYear(month, year);\n const currentMonth = getCurrentMonth(month);\n\n const daysCount = getMonthsDays(currentMonth, currentYear);\n const offset = getMonthOffset(currentMonth, currentYear);\n this.daysCount = daysCount;\n this.offset = offset;\n this.month = currentMonth;\n this.year = currentYear;\n this.isLastInYear = currentMonth === 11;\n this.isFirstInYear = currentMonth === 0;\n this.days = Array.from({ length: daysCount }, (_, i) => {\n const isWeekend = (i + getMonthOffset(currentMonth, currentYear)) % 7 >= 5;\n return DayCellViewModel.create(i + 1, currentMonth, currentYear, isWeekend);\n });\n }\n}\n\nconst getMonthHeight = memo(\n (\n daysCount: number,\n offset: number,\n dayHeight: number,\n titleHeight: number,\n marginBottom: number,\n rowSpacing: number,\n ) => {\n const weeks = Math.ceil((daysCount + offset) / 7);\n return weeks * dayHeight + titleHeight + marginBottom + rowSpacing * 2 + rowSpacing * (weeks - 1);\n },\n);\nconst getMonthsDays = memo((month: number, year: number) => new Date(year, getMonthInHumanFormat(month), 0).getDate());\n\nconst getMonthOffset = memo((month: number, year: number) => {\n const day = new Date(year, month, 1).getDay() - 1;\n if (day === -1) {\n return 6;\n }\n return day;\n});\n"]}
|
|
@@ -7,20 +7,24 @@ monthTitleLineHeight,
|
|
|
7
7
|
monthTitlePaddingTop,
|
|
8
8
|
monthTitlePaddingBottom,
|
|
9
9
|
monthTitleMarginBottom,
|
|
10
|
-
|
|
10
|
+
cellWidth,
|
|
11
|
+
cellHeight,
|
|
11
12
|
wrapperHeight,
|
|
12
13
|
monthMarginBottom,
|
|
13
|
-
maxMonthsToAppendOnScroll
|
|
14
|
+
maxMonthsToAppendOnScroll,
|
|
15
|
+
calendarGridRowSpacing)
|
|
14
16
|
{
|
|
15
17
|
var monthTitleHeight =
|
|
16
18
|
parseInt(monthTitleLineHeight) + parseInt(monthTitlePaddingTop) + parseInt(monthTitlePaddingBottom);
|
|
17
19
|
return {
|
|
18
|
-
|
|
20
|
+
DAY_WIDTH: parseInt(cellWidth),
|
|
21
|
+
DAY_HEIGHT: parseInt(cellHeight),
|
|
19
22
|
MONTH_TITLE_HEIGHT: monthTitleHeight,
|
|
20
23
|
MONTH_TITLE_OFFSET_HEIGHT: monthTitleHeight + parseInt(monthTitleMarginBottom) + 1, // + 1px separator line
|
|
21
24
|
WRAPPER_HEIGHT: parseInt(wrapperHeight),
|
|
22
25
|
MONTH_BOTTOM_MARGIN: parseInt(monthMarginBottom),
|
|
23
|
-
MAX_MONTHS_TO_APPEND_ON_SCROLL: parseInt(maxMonthsToAppendOnScroll)
|
|
26
|
+
MAX_MONTHS_TO_APPEND_ON_SCROLL: parseInt(maxMonthsToAppendOnScroll),
|
|
27
|
+
CALENDAR_GRID_ROW_SPACING: parseInt(calendarGridRowSpacing) };
|
|
24
28
|
|
|
25
29
|
});
|
|
26
30
|
|
|
@@ -31,7 +35,9 @@ var themeConfig = function themeConfig(t) {return (
|
|
|
31
35
|
t.calendarMonthTitlePaddingTop,
|
|
32
36
|
t.calendarMonthTitlePaddingBottom,
|
|
33
37
|
t.calendarMonthTitleMarginBottom,
|
|
34
|
-
t.
|
|
38
|
+
t.calendarCellWidth,
|
|
39
|
+
t.calendarCellHeight,
|
|
35
40
|
t.calendarWrapperHeight,
|
|
36
41
|
t.calendarMonthMarginBottom,
|
|
37
|
-
t.calendarMaxMonthsToAppendOnScroll
|
|
42
|
+
t.calendarMaxMonthsToAppendOnScroll,
|
|
43
|
+
t.calendarGridRowSpacing));};exports.themeConfig = themeConfig;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["config.ts"],"names":["getConfig","monthTitleLineHeight","monthTitlePaddingTop","monthTitlePaddingBottom","monthTitleMarginBottom","
|
|
1
|
+
{"version":3,"sources":["config.ts"],"names":["getConfig","monthTitleLineHeight","monthTitlePaddingTop","monthTitlePaddingBottom","monthTitleMarginBottom","cellWidth","cellHeight","wrapperHeight","monthMarginBottom","maxMonthsToAppendOnScroll","calendarGridRowSpacing","monthTitleHeight","parseInt","DAY_WIDTH","DAY_HEIGHT","MONTH_TITLE_HEIGHT","MONTH_TITLE_OFFSET_HEIGHT","WRAPPER_HEIGHT","MONTH_BOTTOM_MARGIN","MAX_MONTHS_TO_APPEND_ON_SCROLL","CALENDAR_GRID_ROW_SPACING","themeConfig","t","calendarMonthTitleLineHeight","calendarMonthTitlePaddingTop","calendarMonthTitlePaddingBottom","calendarMonthTitleMarginBottom","calendarCellWidth","calendarCellHeight","calendarWrapperHeight","calendarMonthMarginBottom","calendarMaxMonthsToAppendOnScroll"],"mappings":";AACA;;AAEA,IAAMA,SAAS,GAAG;AAChB;AACEC,oBADF;AAEEC,oBAFF;AAGEC,uBAHF;AAIEC,sBAJF;AAKEC,SALF;AAMEC,UANF;AAOEC,aAPF;AAQEC,iBARF;AASEC,yBATF;AAUEC,sBAVF;AAWK;AACH,MAAMC,gBAAgB;AACpBC,EAAAA,QAAQ,CAACX,oBAAD,CAAR,GAAiCW,QAAQ,CAACV,oBAAD,CAAzC,GAAkEU,QAAQ,CAACT,uBAAD,CAD5E;AAEA,SAAO;AACLU,IAAAA,SAAS,EAAED,QAAQ,CAACP,SAAD,CADd;AAELS,IAAAA,UAAU,EAAEF,QAAQ,CAACN,UAAD,CAFf;AAGLS,IAAAA,kBAAkB,EAAEJ,gBAHf;AAILK,IAAAA,yBAAyB,EAAEL,gBAAgB,GAAGC,QAAQ,CAACR,sBAAD,CAA3B,GAAsD,CAJ5E,EAI+E;AACpFa,IAAAA,cAAc,EAAEL,QAAQ,CAACL,aAAD,CALnB;AAMLW,IAAAA,mBAAmB,EAAEN,QAAQ,CAACJ,iBAAD,CANxB;AAOLW,IAAAA,8BAA8B,EAAEP,QAAQ,CAACH,yBAAD,CAPnC;AAQLW,IAAAA,yBAAyB,EAAER,QAAQ,CAACF,sBAAD,CAR9B,EAAP;;AAUD,CAzBe,CAAlB;;;AA4BO,IAAMW,WAAW,GAAG,SAAdA,WAAc,CAACC,CAAD;AACzBtB,IAAAA,SAAS;AACPsB,IAAAA,CAAC,CAACC,4BADK;AAEPD,IAAAA,CAAC,CAACE,4BAFK;AAGPF,IAAAA,CAAC,CAACG,+BAHK;AAIPH,IAAAA,CAAC,CAACI,8BAJK;AAKPJ,IAAAA,CAAC,CAACK,iBALK;AAMPL,IAAAA,CAAC,CAACM,kBANK;AAOPN,IAAAA,CAAC,CAACO,qBAPK;AAQPP,IAAAA,CAAC,CAACQ,yBARK;AASPR,IAAAA,CAAC,CAACS,iCATK;AAUPT,IAAAA,CAAC,CAACZ,sBAVK,CADgB,GAApB,C","sourcesContent":["import { Theme } from '../../lib/theming/Theme';\nimport { memo } from '../../lib/memo';\n\nconst getConfig = memo(\n (\n monthTitleLineHeight: string,\n monthTitlePaddingTop: string,\n monthTitlePaddingBottom: string,\n monthTitleMarginBottom: string,\n cellWidth: string,\n cellHeight: string,\n wrapperHeight: string,\n monthMarginBottom: string,\n maxMonthsToAppendOnScroll: string,\n calendarGridRowSpacing: string,\n ) => {\n const monthTitleHeight =\n parseInt(monthTitleLineHeight) + parseInt(monthTitlePaddingTop) + parseInt(monthTitlePaddingBottom);\n return {\n DAY_WIDTH: parseInt(cellWidth),\n DAY_HEIGHT: parseInt(cellHeight),\n MONTH_TITLE_HEIGHT: monthTitleHeight,\n MONTH_TITLE_OFFSET_HEIGHT: monthTitleHeight + parseInt(monthTitleMarginBottom) + 1, // + 1px separator line\n WRAPPER_HEIGHT: parseInt(wrapperHeight),\n MONTH_BOTTOM_MARGIN: parseInt(monthMarginBottom),\n MAX_MONTHS_TO_APPEND_ON_SCROLL: parseInt(maxMonthsToAppendOnScroll),\n CALENDAR_GRID_ROW_SPACING: parseInt(calendarGridRowSpacing),\n };\n },\n);\n\nexport const themeConfig = (t: Theme) =>\n getConfig(\n t.calendarMonthTitleLineHeight,\n t.calendarMonthTitlePaddingTop,\n t.calendarMonthTitlePaddingBottom,\n t.calendarMonthTitleMarginBottom,\n t.calendarCellWidth,\n t.calendarCellHeight,\n t.calendarWrapperHeight,\n t.calendarMonthMarginBottom,\n t.calendarMaxMonthsToAppendOnScroll,\n t.calendarGridRowSpacing,\n );\n"]}
|
|
@@ -1,2 +1,3 @@
|
|
|
1
1
|
"use strict";exports.__esModule = true;var _Calendar = require("./Calendar");Object.keys(_Calendar).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _Calendar[key]) return;exports[key] = _Calendar[key];});
|
|
2
|
-
var _CalendarDateShape = require("./CalendarDateShape");Object.keys(_CalendarDateShape).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _CalendarDateShape[key]) return;exports[key] = _CalendarDateShape[key];});
|
|
2
|
+
var _CalendarDateShape = require("./CalendarDateShape");Object.keys(_CalendarDateShape).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _CalendarDateShape[key]) return;exports[key] = _CalendarDateShape[key];});
|
|
3
|
+
var _CalendarDay = require("./CalendarDay");Object.keys(_CalendarDay).forEach(function (key) {if (key === "default" || key === "__esModule") return;if (key in exports && exports[key] === _CalendarDay[key]) return;exports[key] = _CalendarDay[key];});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["index.tsx"],"names":[],"mappings":"uCAAA;AACA","sourcesContent":["export * from './Calendar';\nexport * from './CalendarDateShape';\n"]}
|
|
1
|
+
{"version":3,"sources":["index.tsx"],"names":[],"mappings":"uCAAA;AACA;AACA","sourcesContent":["export * from './Calendar';\nexport * from './CalendarDateShape';\nexport * from './CalendarDay';\n"]}
|
|
@@ -6,7 +6,7 @@ import { CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrappe
|
|
|
6
6
|
import { CalendarDateShape, CalendarProps } from '../Calendar';
|
|
7
7
|
import { SizeProp } from '../../lib/types/props';
|
|
8
8
|
export declare const MIN_WIDTH = 120;
|
|
9
|
-
export interface DatePickerProps extends Pick<DropdownContainerProps, 'menuPos'>, Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>, CommonProps {
|
|
9
|
+
export interface DatePickerProps extends Pick<DropdownContainerProps, 'menuPos'>, Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>, CommonProps {
|
|
10
10
|
autoFocus?: boolean;
|
|
11
11
|
disabled?: boolean;
|
|
12
12
|
/**
|
|
@@ -91,6 +91,8 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
|
|
|
91
91
|
onMouseLeave: PropTypes.Requireable<(...args: any[]) => any>;
|
|
92
92
|
onMouseOver: PropTypes.Requireable<(...args: any[]) => any>;
|
|
93
93
|
isHoliday: PropTypes.Requireable<(...args: any[]) => any>;
|
|
94
|
+
renderDay: PropTypes.Requireable<(...args: any[]) => any>;
|
|
95
|
+
onMonthChange: PropTypes.Requireable<(...args: any[]) => any>;
|
|
94
96
|
};
|
|
95
97
|
static defaultProps: DefaultProps;
|
|
96
98
|
private getProps;
|
|
@@ -105,6 +107,7 @@ export declare class DatePicker extends React.PureComponent<DatePickerProps, Dat
|
|
|
105
107
|
private input;
|
|
106
108
|
private focused;
|
|
107
109
|
private setRootNode;
|
|
110
|
+
private isMobileLayout;
|
|
108
111
|
componentDidMount(): void;
|
|
109
112
|
componentDidUpdate(): void;
|
|
110
113
|
/**
|
|
@@ -27,9 +27,11 @@ var _ThemeContext = require("../../lib/theming/ThemeContext");
|
|
|
27
27
|
var _Button = require("../Button");
|
|
28
28
|
var _CalendarUtils = require("../Calendar/CalendarUtils");
|
|
29
29
|
|
|
30
|
+
var _decorator = require("../ResponsiveLayout/decorator");
|
|
30
31
|
|
|
31
32
|
var _DatePicker = require("./DatePicker.styles");
|
|
32
|
-
var _locale2 = require("./locale");
|
|
33
|
+
var _locale2 = require("./locale");
|
|
34
|
+
var _MobilePicker = require("./MobilePicker");var _dec, _class, _class2, _temp;
|
|
33
35
|
|
|
34
36
|
var INPUT_PASS_PROPS = {
|
|
35
37
|
autoFocus: true,
|
|
@@ -102,7 +104,12 @@ var DatePickerDataTids = {
|
|
|
102
104
|
|
|
103
105
|
|
|
104
106
|
|
|
105
|
-
|
|
107
|
+
|
|
108
|
+
DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLocaleHelper), (0, _decorator.responsiveLayout)(_class = (0, _rootNode.rootNode)(_class = _dec(_class = (_temp = _class2 = /*#__PURE__*/function (_React$PureComponent) {(0, _inheritsLoose2.default)(DatePicker, _React$PureComponent);function DatePicker() {var _this;for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {args[_key] = arguments[_key];}_this = _React$PureComponent.call.apply(_React$PureComponent, [this].concat(args)) || this;_this.
|
|
109
|
+
|
|
110
|
+
|
|
111
|
+
|
|
112
|
+
|
|
106
113
|
|
|
107
114
|
|
|
108
115
|
|
|
@@ -263,6 +270,7 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
263
270
|
|
|
264
271
|
|
|
265
272
|
|
|
273
|
+
|
|
266
274
|
|
|
267
275
|
|
|
268
276
|
renderMain = function (props) {
|
|
@@ -270,48 +278,67 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
270
278
|
|
|
271
279
|
var _this$getProps = _this.getProps(),minDate = _this$getProps.minDate,maxDate = _this$getProps.maxDate;
|
|
272
280
|
|
|
273
|
-
|
|
274
|
-
picker = /*#__PURE__*/
|
|
275
|
-
_react.default.createElement(_locale.LocaleContext.Provider, {
|
|
276
|
-
value: {
|
|
277
|
-
locale: {
|
|
278
|
-
Calendar: {
|
|
279
|
-
months: _this.locale.months,
|
|
280
|
-
dayCellChooseDateAriaLabel: _this.locale.dayCellChooseDateAriaLabel,
|
|
281
|
-
selectMonthAriaLabel: _this.locale.selectMonthAriaLabel,
|
|
282
|
-
selectYearAriaLabel: _this.locale.selectYearAriaLabel,
|
|
283
|
-
selectChosenAriaLabel: _this.locale.selectChosenAriaLabel } } } }, /*#__PURE__*/
|
|
284
|
-
|
|
285
|
-
|
|
281
|
+
var isMobile = _this.isMobileLayout;
|
|
286
282
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
291
|
-
|
|
292
|
-
|
|
293
|
-
|
|
294
|
-
|
|
295
|
-
|
|
296
|
-
|
|
297
|
-
|
|
298
|
-
|
|
299
|
-
|
|
300
|
-
|
|
301
|
-
|
|
302
|
-
|
|
303
|
-
|
|
304
|
-
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
283
|
+
if (_this.state.opened) {
|
|
284
|
+
if (isMobile) {
|
|
285
|
+
picker = /*#__PURE__*/
|
|
286
|
+
_react.default.createElement(_MobilePicker.MobilePicker, {
|
|
287
|
+
value: _this.props.value,
|
|
288
|
+
minDate: _this.parseValueToDate(minDate),
|
|
289
|
+
maxDate: _this.parseValueToDate(maxDate),
|
|
290
|
+
onValueChange: _this.props.onValueChange,
|
|
291
|
+
enableTodayLink: _this.props.enableTodayLink,
|
|
292
|
+
isHoliday: _this.props.isHoliday,
|
|
293
|
+
onCloseRequest: _this.handleBlur,
|
|
294
|
+
renderDay: props.renderDay,
|
|
295
|
+
onMonthChange: props.onMonthChange });
|
|
296
|
+
|
|
297
|
+
|
|
298
|
+
} else {
|
|
299
|
+
picker = /*#__PURE__*/
|
|
300
|
+
_react.default.createElement(_locale.LocaleContext.Provider, {
|
|
301
|
+
value: {
|
|
302
|
+
locale: {
|
|
303
|
+
Calendar: {
|
|
304
|
+
months: _this.locale.months,
|
|
305
|
+
dayCellChooseDateAriaLabel: _this.locale.dayCellChooseDateAriaLabel,
|
|
306
|
+
selectMonthAriaLabel: _this.locale.selectMonthAriaLabel,
|
|
307
|
+
selectYearAriaLabel: _this.locale.selectYearAriaLabel,
|
|
308
|
+
selectChosenAriaLabel: _this.locale.selectChosenAriaLabel } } } }, /*#__PURE__*/
|
|
309
|
+
|
|
310
|
+
|
|
311
|
+
|
|
312
|
+
|
|
313
|
+
_react.default.createElement(_DropdownContainer.DropdownContainer, {
|
|
314
|
+
menuPos: _this.props.menuPos,
|
|
315
|
+
"data-tid": DatePickerDataTids.root,
|
|
316
|
+
getParent: _this.getParent,
|
|
317
|
+
offsetY: parseInt(_this.theme.datePickerMenuOffsetY),
|
|
318
|
+
align: _this.props.menuAlign }, /*#__PURE__*/
|
|
319
|
+
|
|
320
|
+
_react.default.createElement("div", {
|
|
321
|
+
"data-tid": DatePickerDataTids.pickerRoot,
|
|
322
|
+
className: _DatePicker.styles.calendarWrapper(_this.theme),
|
|
323
|
+
onMouseDown: function onMouseDown(e) {return e.preventDefault();} }, /*#__PURE__*/
|
|
324
|
+
|
|
325
|
+
_react.default.createElement(_Calendar.Calendar, {
|
|
326
|
+
ref: function ref(c) {return _this.calendar = c;},
|
|
327
|
+
maxDate: _this.parseValueToDate(maxDate),
|
|
328
|
+
minDate: _this.parseValueToDate(minDate),
|
|
329
|
+
onValueChange: _this.handleValueChange,
|
|
330
|
+
isHoliday: _this.props.isHoliday,
|
|
331
|
+
value: _this.parseValueToDate(_this.props.value),
|
|
332
|
+
renderDay: _this.props.renderDay,
|
|
333
|
+
onMonthChange: _this.props.onMonthChange }),
|
|
334
|
+
|
|
335
|
+
_this.props.enableTodayLink && _this.renderTodayLink(), ' ')));
|
|
309
336
|
|
|
310
337
|
|
|
311
338
|
|
|
312
339
|
|
|
340
|
+
}
|
|
313
341
|
}
|
|
314
|
-
|
|
315
342
|
return /*#__PURE__*/(
|
|
316
343
|
_react.default.createElement("label", {
|
|
317
344
|
className: _DatePicker.styles.root(),
|
|
@@ -329,25 +356,25 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
329
356
|
withIcon: true,
|
|
330
357
|
minDate: minDate,
|
|
331
358
|
maxDate: maxDate,
|
|
332
|
-
onBlur: _this.handleBlur,
|
|
359
|
+
onBlur: isMobile ? undefined : _this.handleBlur,
|
|
333
360
|
onFocus: _this.handleFocus,
|
|
334
361
|
onValueChange: _this.props.onValueChange,
|
|
335
362
|
"data-tid": DatePickerDataTids.input })),
|
|
336
363
|
|
|
337
|
-
_this.state.canUseMobileNativeDatePicker
|
|
364
|
+
_this.state.canUseMobileNativeDatePicker ? /*#__PURE__*/
|
|
338
365
|
_react.default.createElement(_NativeDateInput.NativeDateInput, {
|
|
339
366
|
onValueChange: _this.props.onValueChange,
|
|
340
367
|
value: _this.props.value || '',
|
|
341
368
|
minDate: minDate,
|
|
342
369
|
maxDate: maxDate,
|
|
343
|
-
disabled: _this.props.disabled })
|
|
370
|
+
disabled: _this.props.disabled }) :
|
|
344
371
|
|
|
345
372
|
|
|
346
|
-
|
|
373
|
+
picker));
|
|
347
374
|
|
|
348
375
|
|
|
349
|
-
};_this.
|
|
350
376
|
|
|
377
|
+
};_this.
|
|
351
378
|
|
|
352
379
|
|
|
353
380
|
|
|
@@ -475,4 +502,4 @@ DatePicker = (_dec = (0, _decorators.locale)('DatePicker', _locale2.DatePickerLo
|
|
|
475
502
|
* Минимальная дата в календаре.
|
|
476
503
|
*/minDate: _propTypes.default.string.isRequired, /**
|
|
477
504
|
* Строка формата `dd.mm.yyyy`
|
|
478
|
-
*/value: _propTypes.default.string, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, isHoliday: _propTypes.default.func }, _class2.defaultProps = { minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE }, _class2.validate = function (value, range) {if (range === void 0) {range = {};}if (!value) {return false;}var _range = range,_range$minDate = _range.minDate,minDate = _range$minDate === void 0 ? _constants.MIN_FULLDATE : _range$minDate,_range$maxDate = _range.maxDate,maxDate = _range$maxDate === void 0 ? _constants.MAX_FULLDATE : _range$maxDate;var internalDate = new _InternalDate.InternalDate({ order: _types.InternalDateOrder.DMY, separator: _types.InternalDateSeparator.Dot }).setRangeStart(new _InternalDate.InternalDate({ value: minDate })).setRangeEnd(new _InternalDate.InternalDate({ value: maxDate })).parseValue(value);return internalDate.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Number, _types.InternalDateValidateCheck.Native, _types.InternalDateValidateCheck.Limits, _types.InternalDateValidateCheck.Range] });}, _temp)) || _class) || _class);exports.DatePicker = DatePicker;
|
|
505
|
+
*/value: _propTypes.default.string, warning: _propTypes.default.bool, width: _propTypes.default.oneOfType([_propTypes.default.number, _propTypes.default.string]), onBlur: _propTypes.default.func, onValueChange: _propTypes.default.func.isRequired, onFocus: _propTypes.default.func, onKeyDown: _propTypes.default.func, onMouseEnter: _propTypes.default.func, onMouseLeave: _propTypes.default.func, onMouseOver: _propTypes.default.func, isHoliday: _propTypes.default.func, renderDay: _propTypes.default.func, onMonthChange: _propTypes.default.func }, _class2.defaultProps = { minDate: _constants.MIN_FULLDATE, maxDate: _constants.MAX_FULLDATE }, _class2.validate = function (value, range) {if (range === void 0) {range = {};}if (!value) {return false;}var _range = range,_range$minDate = _range.minDate,minDate = _range$minDate === void 0 ? _constants.MIN_FULLDATE : _range$minDate,_range$maxDate = _range.maxDate,maxDate = _range$maxDate === void 0 ? _constants.MAX_FULLDATE : _range$maxDate;var internalDate = new _InternalDate.InternalDate({ order: _types.InternalDateOrder.DMY, separator: _types.InternalDateSeparator.Dot }).setRangeStart(new _InternalDate.InternalDate({ value: minDate })).setRangeEnd(new _InternalDate.InternalDate({ value: maxDate })).parseValue(value);return internalDate.validate({ checks: [_types.InternalDateValidateCheck.NotNull, _types.InternalDateValidateCheck.Number, _types.InternalDateValidateCheck.Native, _types.InternalDateValidateCheck.Limits, _types.InternalDateValidateCheck.Range] });}, _temp)) || _class) || _class) || _class);exports.DatePicker = DatePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DatePicker.tsx"],"names":["INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","DatePickerLocaleHelper","rootNode","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","locale","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","styles","calendarWrapper","e","preventDefault","c","parseValueToDate","handleValueChange","isHoliday","value","enableTodayLink","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","handleBlur","handleFocus","onValueChange","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","isMobile","focus","componentDidUpdate","render","ThemeFactory","create","calendarBottomSeparatorBorder","setRootNode","undefined","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n private setRootNode!: TSetRootNode;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n if (this.state.opened) {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n\n return (\n <label\n className={styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker && (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n )}\n {!this.state.canUseMobileNativeDatePicker && picker}\n </label>\n );\n };\n\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n}\n"]}
|
|
1
|
+
{"version":3,"sources":["DatePicker.tsx"],"names":["INPUT_PASS_PROPS","autoFocus","disabled","warning","error","size","onKeyDown","MIN_WIDTH","DatePickerDataTids","root","input","label","pickerRoot","pickerTodayWrapper","DatePicker","DatePickerLocaleHelper","responsiveLayout","rootNode","getProps","defaultProps","calendar","state","opened","canUseMobileNativeDatePicker","today","focused","renderMain","props","picker","minDate","maxDate","isMobile","isMobileLayout","value","parseValueToDate","onValueChange","enableTodayLink","isHoliday","handleBlur","renderDay","onMonthChange","locale","Calendar","months","dayCellChooseDateAriaLabel","selectMonthAriaLabel","selectYearAriaLabel","selectChosenAriaLabel","menuPos","getParent","parseInt","theme","datePickerMenuOffsetY","menuAlign","styles","calendarWrapper","e","preventDefault","c","handleValueChange","renderTodayLink","getRootStyle","onMouseEnter","onMouseLeave","onMouseOver","getInputRef","undefined","handleFocus","handleSelectToday","handleSelect","month","year","scrollToMonth","width","minWidth","ref","setState","onFocus","close","onBlur","blur","componentDidMount","useMobileNativeDatePicker","focus","componentDidUpdate","render","ThemeFactory","create","calendarBottomSeparatorBorder","setRootNode","date","InternalDate","validate","checks","InternalDateValidateCheck","NotNull","Native","toString","withPad","order","separator","setComponents","InternalDateGetter","getTodayComponents","withSeparator","margin","todayAriaLabel","todayLinkWrapper","React","PureComponent","__KONTUR_REACT_UI__","displayName","propTypes","PropTypes","bool","string","isRequired","oneOf","oneOfType","number","func","MIN_FULLDATE","MAX_FULLDATE","range","internalDate","InternalDateOrder","DMY","InternalDateSeparator","Dot","setRangeStart","setRangeEnd","parseValue","Number","Limits","Range"],"mappings":"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","sourcesContent":["import PropTypes from 'prop-types';\nimport React from 'react';\n\nimport { LocaleContext } from '../../lib/locale';\nimport { locale } from '../../lib/locale/decorators';\nimport { InternalDateGetter } from '../../lib/date/InternalDateGetter';\nimport { ArrowAUpIcon16Light } from '../../internal/icons2022/ArrowAUpIcon/ArrowAUp16Light';\nimport { isTheme2022 } from '../../lib/theming/ThemeHelpers';\nimport { cx } from '../../lib/theming/Emotion';\nimport { ThemeFactory } from '../../lib/theming/ThemeFactory';\nimport { InternalDate } from '../../lib/date/InternalDate';\nimport { MAX_FULLDATE, MIN_FULLDATE } from '../../lib/date/constants';\nimport { InternalDateOrder, InternalDateSeparator, InternalDateValidateCheck } from '../../lib/date/types';\nimport { Nullable } from '../../typings/utility-types';\nimport { DateInput } from '../DateInput';\nimport { DropdownContainer, DropdownContainerProps } from '../../internal/DropdownContainer';\nimport { filterProps } from '../../lib/filterProps';\nimport { CommonWrapper, CommonProps, CommonWrapperRestProps } from '../../internal/CommonWrapper';\nimport { isMobile } from '../../lib/client';\nimport { NativeDateInput } from '../../internal/NativeDateInput';\nimport { getRootNode, rootNode, TSetRootNode } from '../../lib/rootNode';\nimport { isNonNullable } from '../../lib/utils';\nimport { createPropsGetter } from '../../lib/createPropsGetter';\nimport { Calendar, CalendarDateShape, CalendarProps } from '../Calendar';\nimport { ThemeContext } from '../../lib/theming/ThemeContext';\nimport { Theme } from '../../lib/theming/Theme';\nimport { Button } from '../Button';\nimport { getTodayDate } from '../Calendar/CalendarUtils';\nimport { SizeProp } from '../../lib/types/props';\nimport { responsiveLayout } from '../ResponsiveLayout/decorator';\n\nimport { styles } from './DatePicker.styles';\nimport { DatePickerLocale, DatePickerLocaleHelper } from './locale';\nimport { MobilePicker } from './MobilePicker';\n\nconst INPUT_PASS_PROPS = {\n autoFocus: true,\n disabled: true,\n warning: true,\n error: true,\n size: true,\n onKeyDown: true,\n};\n\nexport const MIN_WIDTH = 120;\n\nexport interface DatePickerProps\n extends Pick<DropdownContainerProps, 'menuPos'>,\n Pick<CalendarProps, 'isHoliday' | 'minDate' | 'maxDate' | 'renderDay' | 'onMonthChange'>,\n CommonProps {\n autoFocus?: boolean;\n disabled?: boolean;\n /**\n * Отвечает за отображение кнопки \"Сегодня\".\n */\n enableTodayLink?: boolean;\n /**\n * Состояние валидации при ошибке.\n */\n error?: boolean;\n menuAlign?: 'left' | 'right';\n size?: SizeProp;\n value?: string | null;\n /**\n * Состояние валидации при предупреждении.\n */\n warning?: boolean;\n width?: number | string;\n onBlur?: () => void;\n /**\n * Вызывается при изменении `value`\n *\n * @param value - строка в формате `dd.mm.yyyy`.\n */\n onValueChange: (value: string) => void;\n onFocus?: () => void;\n onKeyDown?: (e: React.KeyboardEvent<any>) => void;\n onMouseEnter?: (e: React.MouseEvent<any>) => void;\n onMouseLeave?: (e: React.MouseEvent<any>) => void;\n onMouseOver?: (e: React.MouseEvent<any>) => void;\n /**\n * Использовать на мобильных устройствах нативный календарь для выбора дат.\n *\n * - На iOS нативный календарь не умеет работать с minDate и maxDate\n */\n useMobileNativeDatePicker?: boolean;\n}\n\nexport interface DatePickerState {\n opened: boolean;\n canUseMobileNativeDatePicker: boolean;\n today: CalendarDateShape;\n}\n\nexport const DatePickerDataTids = {\n root: 'DatePicker__root',\n input: 'DatePicker__input',\n label: 'DatePicker__label',\n pickerRoot: 'Picker__root',\n pickerTodayWrapper: 'Picker__todayWrapper',\n} as const;\n\ntype DefaultProps = Required<Pick<DatePickerProps, 'minDate' | 'maxDate'>>;\n\n@responsiveLayout\n@rootNode\n@locale('DatePicker', DatePickerLocaleHelper)\nexport class DatePicker extends React.PureComponent<DatePickerProps, DatePickerState> {\n public static __KONTUR_REACT_UI__ = 'DatePicker';\n public static displayName = 'DatePicker';\n\n public static propTypes = {\n autoFocus: PropTypes.bool,\n\n disabled: PropTypes.bool,\n\n /**\n * Включает кнопку сегодня в календаре\n */\n enableTodayLink: PropTypes.bool,\n\n error: PropTypes.bool,\n\n /**\n * Максимальная дата в календаре.\n */\n maxDate: PropTypes.string.isRequired,\n\n menuAlign: PropTypes.oneOf(['left', 'right']),\n\n /**\n * Минимальная дата в календаре.\n */\n minDate: PropTypes.string.isRequired,\n\n /**\n * Строка формата `dd.mm.yyyy`\n */\n value: PropTypes.string,\n\n warning: PropTypes.bool,\n\n width: PropTypes.oneOfType([PropTypes.number, PropTypes.string]),\n\n onBlur: PropTypes.func,\n\n onValueChange: PropTypes.func.isRequired,\n\n onFocus: PropTypes.func,\n\n onKeyDown: PropTypes.func,\n\n onMouseEnter: PropTypes.func,\n\n onMouseLeave: PropTypes.func,\n\n onMouseOver: PropTypes.func,\n\n isHoliday: PropTypes.func,\n\n renderDay: PropTypes.func,\n\n onMonthChange: PropTypes.func,\n };\n\n public static defaultProps: DefaultProps = {\n minDate: MIN_FULLDATE,\n maxDate: MAX_FULLDATE,\n };\n\n private getProps = createPropsGetter(DatePicker.defaultProps);\n private theme!: Theme;\n private calendar: Calendar | null = null;\n private readonly locale!: DatePickerLocale;\n\n public static validate = (value: Nullable<string>, range: { minDate?: string; maxDate?: string } = {}) => {\n if (!value) {\n return false;\n }\n\n const { minDate = MIN_FULLDATE, maxDate = MAX_FULLDATE } = range;\n const internalDate = new InternalDate({\n order: InternalDateOrder.DMY,\n separator: InternalDateSeparator.Dot,\n })\n .setRangeStart(new InternalDate({ value: minDate }))\n .setRangeEnd(new InternalDate({ value: maxDate }))\n .parseValue(value);\n\n return internalDate.validate({\n checks: [\n InternalDateValidateCheck.NotNull,\n InternalDateValidateCheck.Number,\n InternalDateValidateCheck.Native,\n InternalDateValidateCheck.Limits,\n InternalDateValidateCheck.Range,\n ],\n });\n };\n\n public state: DatePickerState = { opened: false, canUseMobileNativeDatePicker: false, today: getTodayDate() };\n\n private input: DateInput | null = null;\n private focused = false;\n private setRootNode!: TSetRootNode;\n private isMobileLayout!: boolean;\n\n public componentDidMount() {\n if (this.props.useMobileNativeDatePicker && isMobile) {\n this.setState({\n canUseMobileNativeDatePicker: true,\n });\n }\n if (this.props.autoFocus) {\n this.focus();\n }\n }\n\n public componentDidUpdate() {\n const { disabled } = this.props;\n const { opened } = this.state;\n if (disabled && opened) {\n this.close();\n }\n }\n\n /**\n * @public\n */\n public blur() {\n if (this.input) {\n this.input.blur();\n }\n this.handleBlur();\n }\n\n /**\n * @public\n */\n public focus() {\n if (this.props.disabled) {\n return;\n }\n if (this.input) {\n this.input.focus();\n }\n this.handleFocus();\n }\n\n /**\n * Закрывает выпадашку выбора дня\n * @public\n */\n public close() {\n this.setState({ opened: false });\n }\n\n public render() {\n return (\n <ThemeContext.Consumer>\n {(theme) => {\n this.theme = theme;\n\n return (\n <ThemeContext.Provider value={ThemeFactory.create({ calendarBottomSeparatorBorder: 'none' }, theme)}>\n <CommonWrapper rootNodeRef={this.setRootNode} {...this.props}>\n {this.renderMain}\n </CommonWrapper>\n </ThemeContext.Provider>\n );\n }}\n </ThemeContext.Consumer>\n );\n }\n\n public renderMain = (props: CommonWrapperRestProps<DatePickerProps>) => {\n let picker = null;\n\n const { minDate, maxDate } = this.getProps();\n\n const isMobile = this.isMobileLayout;\n\n if (this.state.opened) {\n if (isMobile) {\n picker = (\n <MobilePicker\n value={this.props.value}\n minDate={this.parseValueToDate(minDate)}\n maxDate={this.parseValueToDate(maxDate)}\n onValueChange={this.props.onValueChange}\n enableTodayLink={this.props.enableTodayLink}\n isHoliday={this.props.isHoliday}\n onCloseRequest={this.handleBlur}\n renderDay={props.renderDay}\n onMonthChange={props.onMonthChange}\n />\n );\n } else {\n picker = (\n <LocaleContext.Provider\n value={{\n locale: {\n Calendar: {\n months: this.locale.months,\n dayCellChooseDateAriaLabel: this.locale.dayCellChooseDateAriaLabel,\n selectMonthAriaLabel: this.locale.selectMonthAriaLabel,\n selectYearAriaLabel: this.locale.selectYearAriaLabel,\n selectChosenAriaLabel: this.locale.selectChosenAriaLabel,\n },\n },\n }}\n >\n <DropdownContainer\n menuPos={this.props.menuPos}\n data-tid={DatePickerDataTids.root}\n getParent={this.getParent}\n offsetY={parseInt(this.theme.datePickerMenuOffsetY)}\n align={this.props.menuAlign}\n >\n <div\n data-tid={DatePickerDataTids.pickerRoot}\n className={styles.calendarWrapper(this.theme)}\n onMouseDown={(e) => e.preventDefault()}\n >\n <Calendar\n ref={(c) => (this.calendar = c)}\n maxDate={this.parseValueToDate(maxDate)}\n minDate={this.parseValueToDate(minDate)}\n onValueChange={this.handleValueChange}\n isHoliday={this.props.isHoliday}\n value={this.parseValueToDate(this.props.value)}\n renderDay={this.props.renderDay}\n onMonthChange={this.props.onMonthChange}\n />\n {this.props.enableTodayLink && this.renderTodayLink()}{' '}\n </div>\n </DropdownContainer>\n </LocaleContext.Provider>\n );\n }\n }\n return (\n <label\n className={styles.root()}\n style={this.getRootStyle()}\n onMouseEnter={this.props.onMouseEnter}\n onMouseLeave={this.props.onMouseLeave}\n onMouseOver={this.props.onMouseOver}\n data-tid={DatePickerDataTids.label}\n >\n <DateInput\n {...filterProps(props, INPUT_PASS_PROPS)}\n ref={this.getInputRef}\n value={this.props.value || ''}\n width=\"100%\"\n withIcon\n minDate={minDate}\n maxDate={maxDate}\n onBlur={isMobile ? undefined : this.handleBlur}\n onFocus={this.handleFocus}\n onValueChange={this.props.onValueChange}\n data-tid={DatePickerDataTids.input}\n />\n {this.state.canUseMobileNativeDatePicker ? (\n <NativeDateInput\n onValueChange={this.props.onValueChange}\n value={this.props.value || ''}\n minDate={minDate}\n maxDate={maxDate}\n disabled={this.props.disabled}\n />\n ) : (\n picker\n )}\n </label>\n );\n };\n private parseValueToDate(value?: Nullable<string>): string | undefined {\n if (value === undefined || value === null) {\n return undefined;\n }\n\n const date = new InternalDate({ value });\n if (date.validate({ checks: [InternalDateValidateCheck.NotNull, InternalDateValidateCheck.Native] })) {\n return date.toString({ withPad: true });\n }\n\n return undefined;\n }\n\n private renderTodayLink() {\n const { order, separator } = this.locale;\n const today = new InternalDate({ order, separator })\n .setComponents(InternalDateGetter.getTodayComponents())\n .toString({ withPad: true, withSeparator: true });\n\n if (isTheme2022(this.theme)) {\n return (\n <div style={{ margin: 8 }}>\n <Button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n width=\"100%\"\n onClick={this.handleSelectToday(today)}\n icon={<ArrowAUpIcon16Light />}\n >\n {this.locale.today}\n </Button>\n </div>\n );\n }\n\n return (\n <button\n aria-label={this.locale.todayAriaLabel}\n data-tid={DatePickerDataTids.pickerTodayWrapper}\n className={cx({\n [styles.todayLinkWrapper(this.theme)]: true,\n })}\n onClick={this.handleSelectToday(today)}\n tabIndex={-1}\n >\n {`${this.locale.today} ${today}`}\n </button>\n );\n }\n\n private handleSelectToday = (today: string) => () => {\n this.handleSelect(today);\n\n if (this.calendar) {\n const { month, year } = this.state.today;\n this.calendar.scrollToMonth(month, year);\n }\n };\n\n public getParent = () => {\n return getRootNode(this);\n };\n\n private getRootStyle = () => {\n const { width } = this.props;\n return isNonNullable(width) ? { width } : { minWidth: MIN_WIDTH };\n };\n\n private getInputRef = (ref: DateInput | null) => {\n this.input = ref;\n };\n\n private handleFocus = () => {\n if (this.focused) {\n return;\n }\n\n this.focused = true;\n\n this.setState({ opened: true });\n\n if (this.props.onFocus) {\n this.props.onFocus();\n }\n };\n\n private handleBlur = () => {\n if (!this.focused) {\n return;\n }\n\n this.focused = false;\n this.close();\n\n if (this.props.onBlur) {\n this.props.onBlur();\n }\n };\n\n private handleValueChange = (value: string) => {\n this.handleSelect(value);\n this.blur();\n };\n\n private handleSelect = (value: string | null) => {\n if (!value) {\n return null;\n }\n\n if (this.props.onValueChange) {\n this.props.onValueChange(value);\n }\n };\n}\n"]}
|
|
@@ -60,6 +60,7 @@ let removeTooltip = () => setTooltip(false);
|
|
|
60
60
|
```
|
|
61
61
|
|
|
62
62
|
Очистить значение в `DatePicker`'е можно с помощью пустой строки, `null` или `undefined`
|
|
63
|
+
|
|
63
64
|
```jsx harmony
|
|
64
65
|
import { Button, Group } from '@skbkontur/react-ui';
|
|
65
66
|
|
|
@@ -131,7 +132,7 @@ const isHoliday = (day, isWeekend) => {
|
|
|
131
132
|
<details><summary>`data.gov.ru`</summary>
|
|
132
133
|
|
|
133
134
|
Docs:
|
|
134
|
-
https://data.gov.ru/api-portala-otkrytyh-dannyh-rf-polnoe-rukovodstvo
|
|
135
|
+
<https://data.gov.ru/api-portala-otkrytyh-dannyh-rf-polnoe-rukovodstvo>
|
|
135
136
|
|
|
136
137
|
Request:
|
|
137
138
|
|
|
@@ -273,6 +274,36 @@ class DatePickerFormatting extends React.Component {
|
|
|
273
274
|
<DatePickerFormatting />;
|
|
274
275
|
```
|
|
275
276
|
|
|
277
|
+
### Период дат
|
|
278
|
+
Подбробный пример в [Calendar](#/Components/Calendar)
|
|
279
|
+
|
|
280
|
+
```jsx harmony
|
|
281
|
+
const [value, setValue] = React.useState('12.05.2022');
|
|
282
|
+
|
|
283
|
+
<DatePicker
|
|
284
|
+
value={value}
|
|
285
|
+
onValueChange={setValue}
|
|
286
|
+
periodStartDate="16.05.2022"
|
|
287
|
+
periodEndDate="20.05.2022"
|
|
288
|
+
/>;
|
|
289
|
+
```
|
|
290
|
+
|
|
291
|
+
### Кастомный рендер дня
|
|
292
|
+
Подбробный пример в [Calendar](#/Components/Calendar)
|
|
293
|
+
|
|
294
|
+
```jsx harmony
|
|
295
|
+
const [value, setValue] = React.useState('12.05.2022');
|
|
296
|
+
|
|
297
|
+
const renderDay = (date, defaultProps, RenderDefault) => {
|
|
298
|
+
const isEven = defaultProps.children % 2 === 0;
|
|
299
|
+
|
|
300
|
+
return <RenderDefault {...defaultProps} isDisabled={isEven} />;
|
|
301
|
+
};
|
|
302
|
+
|
|
303
|
+
|
|
304
|
+
<DatePicker value={value} onValueChange={setValue} renderDay={renderDay} />;
|
|
305
|
+
```
|
|
306
|
+
|
|
276
307
|
#### Локали по умолчанию
|
|
277
308
|
|
|
278
309
|
```typescript static
|
|
@@ -338,3 +369,7 @@ const en_GB = {
|
|
|
338
369
|
dayCellChooseDateAriaLabel: 'Choose date',
|
|
339
370
|
};
|
|
340
371
|
```
|
|
372
|
+
|
|
373
|
+
### Адаптивность
|
|
374
|
+
|
|
375
|
+
На мобильных устройствах есть несколько вариантов. По умолчанию откроется адаптивная версия в попапе. Но можно открывать нативный календарь, если передать проп `useMobileNativeDatePicker`.
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";exports.__esModule = true;exports.formatDate = formatDate;
|
|
2
|
+
var _CalendarUtils = require("../Calendar/CalendarUtils");
|
|
2
3
|
|
|
3
4
|
function formatDate(_ref) {var date = _ref.date,month = _ref.month,year = _ref.year;
|
|
4
|
-
var _map = [date, month
|
|
5
|
+
var _map = [date, (0, _CalendarUtils.getMonthInHumanFormat)(month), year].map(function (x) {return x.toString();}),d = _map[0],m = _map[1],y = _map[2];
|
|
5
6
|
return d.padStart(2, '0') + "." + m.padStart(2, '0') + "." + y.padStart(4, '0');
|
|
6
7
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["DatePickerHelpers.tsx"],"names":["formatDate","date","month","year","map","x","toString","d","m","y","padStart"],"mappings":";;AAEO,SAASA,UAAT,OAAsE,KAAhDC,IAAgD,QAAhDA,IAAgD,CAA1CC,KAA0C,QAA1CA,KAA0C,CAAnCC,IAAmC,QAAnCA,IAAmC;AAC3E,aAAkB,CAACF,IAAD,
|
|
1
|
+
{"version":3,"sources":["DatePickerHelpers.tsx"],"names":["formatDate","date","month","year","map","x","toString","d","m","y","padStart"],"mappings":";AACA;;AAEO,SAASA,UAAT,OAAsE,KAAhDC,IAAgD,QAAhDA,IAAgD,CAA1CC,KAA0C,QAA1CA,KAA0C,CAAnCC,IAAmC,QAAnCA,IAAmC;AAC3E,aAAkB,CAACF,IAAD,EAAO,0CAAsBC,KAAtB,CAAP,EAAqCC,IAArC,EAA2CC,GAA3C,CAA+C,UAACC,CAAD,UAAOA,CAAC,CAACC,QAAF,EAAP,EAA/C,CAAlB,CAAOC,CAAP,WAAUC,CAAV,WAAaC,CAAb;AACA,SAAUF,CAAC,CAACG,QAAF,CAAW,CAAX,EAAc,GAAd,CAAV,SAAgCF,CAAC,CAACE,QAAF,CAAW,CAAX,EAAc,GAAd,CAAhC,SAAsDD,CAAC,CAACC,QAAF,CAAW,CAAX,EAAc,GAAd,CAAtD;AACD","sourcesContent":["import { CalendarDateShape } from '../../components/Calendar/CalendarDateShape';\nimport { getMonthInHumanFormat } from '../Calendar/CalendarUtils';\n\nexport function formatDate({ date, month, year }: CalendarDateShape): string {\n const [d, m, y] = [date, getMonthInHumanFormat(month), year].map((x) => x.toString());\n return `${d.padStart(2, '0')}.${m.padStart(2, '0')}.${y.padStart(4, '0')}`;\n}\n"]}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import { DatePickerProps } from './DatePicker';
|
|
3
|
+
export declare const MobilePickerDataTids: {
|
|
4
|
+
readonly input: "MobilePicker__input";
|
|
5
|
+
readonly today: "MobilePicker__today";
|
|
6
|
+
};
|
|
7
|
+
export interface MobilePickerProps extends Pick<DatePickerProps, 'error' | 'warning' | 'value' | 'minDate' | 'maxDate' | 'onValueChange' | 'isHoliday' | 'enableTodayLink' | 'renderDay' | 'onMonthChange'> {
|
|
8
|
+
onCloseRequest?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare const MobilePicker: React.FC<MobilePickerProps>;
|