react-native-bikram-sambat 0.1.3 → 0.1.5
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 +19 -0
- package/README.md +44 -211
- package/lib/commonjs/accessibility/index.js +1 -1
- package/lib/commonjs/accessibility/labels.js +3 -4
- package/lib/commonjs/accessibility/labels.js.map +1 -1
- package/lib/commonjs/calendar/get-calendar-month-grid.js +5 -5
- package/lib/commonjs/calendar/index.js +1 -1
- package/lib/commonjs/components/NepaliCalendar/CalendarDay.js +10 -43
- package/lib/commonjs/components/NepaliCalendar/CalendarDay.js.map +1 -1
- package/lib/commonjs/components/NepaliCalendar/CalendarGrid.js +8 -25
- package/lib/commonjs/components/NepaliCalendar/CalendarGrid.js.map +1 -1
- package/lib/commonjs/components/NepaliCalendar/CalendarHeader.js +26 -14
- package/lib/commonjs/components/NepaliCalendar/CalendarHeader.js.map +1 -1
- package/lib/commonjs/components/NepaliCalendar/NepaliCalendar.js +119 -87
- package/lib/commonjs/components/NepaliCalendar/NepaliCalendar.js.map +1 -1
- package/lib/commonjs/components/NepaliCalendar/index.js +1 -1
- package/lib/commonjs/core/arithmetic.js +3 -3
- package/lib/commonjs/core/bsData.js +107 -8
- package/lib/commonjs/core/bsData.js.map +1 -1
- package/lib/commonjs/core/conversion.js +4 -4
- package/lib/commonjs/core/conversion.js.map +1 -1
- package/lib/commonjs/core/dateKey.js +1 -1
- package/lib/commonjs/core/format/format.js +9 -9
- package/lib/commonjs/core/format/format.js.map +1 -1
- package/lib/commonjs/core/format/index.js +2 -2
- package/lib/commonjs/core/format/parse.js +3 -3
- package/lib/commonjs/core/format/parse.js.map +1 -1
- package/lib/commonjs/core/index.js +19 -19
- package/lib/commonjs/core/index.js.map +1 -1
- package/lib/commonjs/core/locale/index.js +2 -2
- package/lib/commonjs/core/numerals/index.js +1 -1
- package/lib/commonjs/core/validation.js +4 -3
- package/lib/commonjs/core/validation.js.map +1 -1
- package/lib/commonjs/index.js +24 -46
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/theme/create-theme.js +1 -1
- package/lib/commonjs/theme/default-theme.js +2 -22
- package/lib/commonjs/theme/default-theme.js.map +1 -1
- package/lib/commonjs/theme/index.js +2 -2
- package/lib/commonjs/utils/date-helpers.js +4 -12
- package/lib/commonjs/utils/date-helpers.js.map +1 -1
- package/lib/commonjs/utils/index.js +1 -1
- package/lib/module/accessibility/index.js +1 -1
- package/lib/module/accessibility/index.js.map +1 -1
- package/lib/module/accessibility/labels.js +2 -3
- package/lib/module/accessibility/labels.js.map +1 -1
- package/lib/module/calendar/get-calendar-month-grid.js +6 -6
- package/lib/module/calendar/get-calendar-month-grid.js.map +1 -1
- package/lib/module/calendar/index.js +1 -1
- package/lib/module/calendar/index.js.map +1 -1
- package/lib/module/components/NepaliCalendar/CalendarDay.js +9 -42
- package/lib/module/components/NepaliCalendar/CalendarDay.js.map +1 -1
- package/lib/module/components/NepaliCalendar/CalendarGrid.js +8 -25
- package/lib/module/components/NepaliCalendar/CalendarGrid.js.map +1 -1
- package/lib/module/components/NepaliCalendar/CalendarHeader.js +22 -10
- package/lib/module/components/NepaliCalendar/CalendarHeader.js.map +1 -1
- package/lib/module/components/NepaliCalendar/NepaliCalendar.js +102 -70
- package/lib/module/components/NepaliCalendar/NepaliCalendar.js.map +1 -1
- package/lib/module/components/NepaliCalendar/index.js +1 -1
- package/lib/module/components/NepaliCalendar/index.js.map +1 -1
- package/lib/module/core/arithmetic.js +3 -3
- package/lib/module/core/arithmetic.js.map +1 -1
- package/lib/module/core/bsData.js +107 -8
- package/lib/module/core/bsData.js.map +1 -1
- package/lib/module/core/conversion.js +4 -4
- package/lib/module/core/conversion.js.map +1 -1
- package/lib/module/core/dateKey.js +1 -1
- package/lib/module/core/dateKey.js.map +1 -1
- package/lib/module/core/format/format.js +6 -6
- package/lib/module/core/format/format.js.map +1 -1
- package/lib/module/core/format/index.js +2 -2
- package/lib/module/core/format/index.js.map +1 -1
- package/lib/module/core/format/parse.js +2 -2
- package/lib/module/core/format/parse.js.map +1 -1
- package/lib/module/core/index.js +10 -10
- package/lib/module/core/index.js.map +1 -1
- package/lib/module/core/locale/index.js +2 -2
- package/lib/module/core/locale/index.js.map +1 -1
- package/lib/module/core/numerals/index.js +1 -1
- package/lib/module/core/numerals/index.js.map +1 -1
- package/lib/module/core/validation.js +4 -3
- package/lib/module/core/validation.js.map +1 -1
- package/lib/module/index.js +6 -8
- package/lib/module/index.js.map +1 -1
- package/lib/module/package.json +1 -0
- package/lib/module/theme/create-theme.js +1 -1
- package/lib/module/theme/create-theme.js.map +1 -1
- package/lib/module/theme/default-theme.js +2 -22
- package/lib/module/theme/default-theme.js.map +1 -1
- package/lib/module/theme/index.js +2 -2
- package/lib/module/theme/index.js.map +1 -1
- package/lib/module/utils/date-helpers.js +2 -10
- package/lib/module/utils/date-helpers.js.map +1 -1
- package/lib/module/utils/index.js +1 -1
- package/lib/module/utils/index.js.map +1 -1
- package/lib/typescript/src/accessibility/labels.d.ts +1 -1
- package/lib/typescript/src/accessibility/labels.d.ts.map +1 -1
- package/lib/typescript/src/components/NepaliCalendar/CalendarDay.d.ts +1 -5
- package/lib/typescript/src/components/NepaliCalendar/CalendarDay.d.ts.map +1 -1
- package/lib/typescript/src/components/NepaliCalendar/CalendarGrid.d.ts +1 -4
- package/lib/typescript/src/components/NepaliCalendar/CalendarGrid.d.ts.map +1 -1
- package/lib/typescript/src/components/NepaliCalendar/CalendarHeader.d.ts +1 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarHeader.d.ts.map +1 -1
- package/lib/typescript/src/components/NepaliCalendar/NepaliCalendar.d.ts +1 -1
- package/lib/typescript/src/components/NepaliCalendar/NepaliCalendar.d.ts.map +1 -1
- package/lib/typescript/src/components/NepaliCalendar/types.d.ts +6 -10
- package/lib/typescript/src/components/NepaliCalendar/types.d.ts.map +1 -1
- package/lib/typescript/src/core/bsData.d.ts.map +1 -1
- package/lib/typescript/src/core/validation.d.ts.map +1 -1
- package/lib/typescript/src/index.d.ts +0 -2
- package/lib/typescript/src/index.d.ts.map +1 -1
- package/lib/typescript/src/theme/default-theme.d.ts.map +1 -1
- package/lib/typescript/src/theme/types.d.ts +0 -10
- package/lib/typescript/src/theme/types.d.ts.map +1 -1
- package/lib/typescript/src/utils/date-helpers.d.ts +0 -4
- package/lib/typescript/src/utils/date-helpers.d.ts.map +1 -1
- package/package.json +4 -8
- package/src/accessibility/labels.ts +0 -2
- package/src/components/NepaliCalendar/CalendarDay.tsx +6 -65
- package/src/components/NepaliCalendar/CalendarGrid.tsx +12 -32
- package/src/components/NepaliCalendar/CalendarHeader.tsx +18 -2
- package/src/components/NepaliCalendar/NepaliCalendar.tsx +128 -56
- package/src/components/NepaliCalendar/types.ts +3 -12
- package/src/core/bsData.ts +105 -6
- package/src/core/conversion.ts +1 -1
- package/src/core/validation.ts +7 -1
- package/src/index.ts +0 -2
- package/src/theme/default-theme.ts +0 -20
- package/src/theme/types.ts +0 -10
- package/src/utils/date-helpers.ts +0 -12
- package/lib/commonjs/components/NepaliDatePicker/DatePickerModal.js +0 -185
- package/lib/commonjs/components/NepaliDatePicker/DatePickerModal.js.map +0 -1
- package/lib/commonjs/components/NepaliDatePicker/NepaliDatePicker.js +0 -148
- package/lib/commonjs/components/NepaliDatePicker/NepaliDatePicker.js.map +0 -1
- package/lib/commonjs/components/NepaliDatePicker/index.js +0 -20
- package/lib/commonjs/components/NepaliDatePicker/index.js.map +0 -1
- package/lib/commonjs/components/NepaliDatePicker/types.js +0 -6
- package/lib/commonjs/components/NepaliDatePicker/types.js.map +0 -1
- package/lib/commonjs/components/NepaliRangePicker/NepaliRangePicker.js +0 -187
- package/lib/commonjs/components/NepaliRangePicker/NepaliRangePicker.js.map +0 -1
- package/lib/commonjs/components/NepaliRangePicker/RangePickerModal.js +0 -275
- package/lib/commonjs/components/NepaliRangePicker/RangePickerModal.js.map +0 -1
- package/lib/commonjs/components/NepaliRangePicker/index.js +0 -57
- package/lib/commonjs/components/NepaliRangePicker/index.js.map +0 -1
- package/lib/commonjs/components/NepaliRangePicker/range-utils.js +0 -70
- package/lib/commonjs/components/NepaliRangePicker/range-utils.js.map +0 -1
- package/lib/commonjs/components/NepaliRangePicker/types.js +0 -6
- package/lib/commonjs/components/NepaliRangePicker/types.js.map +0 -1
- package/lib/module/components/NepaliDatePicker/DatePickerModal.js +0 -180
- package/lib/module/components/NepaliDatePicker/DatePickerModal.js.map +0 -1
- package/lib/module/components/NepaliDatePicker/NepaliDatePicker.js +0 -143
- package/lib/module/components/NepaliDatePicker/NepaliDatePicker.js.map +0 -1
- package/lib/module/components/NepaliDatePicker/index.js +0 -5
- package/lib/module/components/NepaliDatePicker/index.js.map +0 -1
- package/lib/module/components/NepaliDatePicker/types.js +0 -4
- package/lib/module/components/NepaliDatePicker/types.js.map +0 -1
- package/lib/module/components/NepaliRangePicker/NepaliRangePicker.js +0 -182
- package/lib/module/components/NepaliRangePicker/NepaliRangePicker.js.map +0 -1
- package/lib/module/components/NepaliRangePicker/RangePickerModal.js +0 -270
- package/lib/module/components/NepaliRangePicker/RangePickerModal.js.map +0 -1
- package/lib/module/components/NepaliRangePicker/index.js +0 -6
- package/lib/module/components/NepaliRangePicker/index.js.map +0 -1
- package/lib/module/components/NepaliRangePicker/range-utils.js +0 -61
- package/lib/module/components/NepaliRangePicker/range-utils.js.map +0 -1
- package/lib/module/components/NepaliRangePicker/types.js +0 -4
- package/lib/module/components/NepaliRangePicker/types.js.map +0 -1
- package/lib/typescript/src/components/NepaliDatePicker/DatePickerModal.d.ts +0 -4
- package/lib/typescript/src/components/NepaliDatePicker/DatePickerModal.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliDatePicker/NepaliDatePicker.d.ts +0 -4
- package/lib/typescript/src/components/NepaliDatePicker/NepaliDatePicker.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliDatePicker/index.d.ts +0 -4
- package/lib/typescript/src/components/NepaliDatePicker/index.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliDatePicker/types.d.ts +0 -50
- package/lib/typescript/src/components/NepaliDatePicker/types.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliRangePicker/NepaliRangePicker.d.ts +0 -4
- package/lib/typescript/src/components/NepaliRangePicker/NepaliRangePicker.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliRangePicker/RangePickerModal.d.ts +0 -4
- package/lib/typescript/src/components/NepaliRangePicker/RangePickerModal.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliRangePicker/index.d.ts +0 -5
- package/lib/typescript/src/components/NepaliRangePicker/index.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliRangePicker/range-utils.d.ts +0 -13
- package/lib/typescript/src/components/NepaliRangePicker/range-utils.d.ts.map +0 -1
- package/lib/typescript/src/components/NepaliRangePicker/types.d.ts +0 -61
- package/lib/typescript/src/components/NepaliRangePicker/types.d.ts.map +0 -1
- package/src/components/NepaliDatePicker/DatePickerModal.tsx +0 -220
- package/src/components/NepaliDatePicker/NepaliDatePicker.tsx +0 -171
- package/src/components/NepaliDatePicker/index.ts +0 -3
- package/src/components/NepaliDatePicker/types.ts +0 -70
- package/src/components/NepaliRangePicker/NepaliRangePicker.tsx +0 -206
- package/src/components/NepaliRangePicker/RangePickerModal.tsx +0 -336
- package/src/components/NepaliRangePicker/index.ts +0 -11
- package/src/components/NepaliRangePicker/range-utils.ts +0 -75
- package/src/components/NepaliRangePicker/types.ts +0 -84
|
@@ -2,7 +2,6 @@ import type { ReactNode } from 'react';
|
|
|
2
2
|
import type { BSDateValue } from '../../core/types';
|
|
3
3
|
import type { LocaleCode, CalendarLocale, NumeralSystem } from '../../core/locale';
|
|
4
4
|
import type { CalendarTheme } from '../../theme/types';
|
|
5
|
-
import type { DateRangeValue } from '../NepaliRangePicker/types';
|
|
6
5
|
export type CalendarMarkedDate = {
|
|
7
6
|
type?: 'dot' | 'holiday' | 'event' | 'disabled';
|
|
8
7
|
label?: string;
|
|
@@ -14,20 +13,13 @@ export type CalendarDayRenderProps = {
|
|
|
14
13
|
date: BSDateValue;
|
|
15
14
|
dateKey: string;
|
|
16
15
|
day: number;
|
|
17
|
-
selected: boolean;
|
|
18
16
|
today: boolean;
|
|
19
17
|
disabled: boolean;
|
|
20
18
|
inCurrentMonth: boolean;
|
|
21
19
|
marked?: CalendarMarkedDate;
|
|
22
|
-
onPress
|
|
23
|
-
rangeStart?: boolean;
|
|
24
|
-
rangeEnd?: boolean;
|
|
25
|
-
inRange?: boolean;
|
|
20
|
+
onPress?: () => void;
|
|
26
21
|
};
|
|
27
22
|
export type NepaliCalendarProps = {
|
|
28
|
-
value?: BSDateValue | null;
|
|
29
|
-
defaultValue?: BSDateValue;
|
|
30
|
-
onChange?: (date: BSDateValue) => void;
|
|
31
23
|
year?: number;
|
|
32
24
|
month?: number;
|
|
33
25
|
defaultYear?: number;
|
|
@@ -41,12 +33,16 @@ export type NepaliCalendarProps = {
|
|
|
41
33
|
theme?: Partial<CalendarTheme>;
|
|
42
34
|
colorScheme?: 'light' | 'dark' | 'system';
|
|
43
35
|
disabledDates?: string[] | ((date: BSDateValue) => boolean);
|
|
36
|
+
onDayPress?: (date: BSDateValue) => void;
|
|
44
37
|
onMonthChange?: (value: {
|
|
45
38
|
year: number;
|
|
46
39
|
month: number;
|
|
47
40
|
}) => void;
|
|
41
|
+
onYearChange?: (value: {
|
|
42
|
+
year: number;
|
|
43
|
+
month: number;
|
|
44
|
+
}) => void;
|
|
48
45
|
renderDay?: (props: CalendarDayRenderProps) => ReactNode;
|
|
49
|
-
rangeValue?: DateRangeValue;
|
|
50
46
|
testID?: string;
|
|
51
47
|
};
|
|
52
48
|
//# sourceMappingURL=types.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/NepaliCalendar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/components/NepaliCalendar/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kBAAkB,CAAC;AACpD,OAAO,KAAK,EAAE,UAAU,EAAE,cAAc,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AACnF,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAEvD,MAAM,MAAM,kBAAkB,GAAG;IAC/B,IAAI,CAAC,EAAE,KAAK,GAAG,SAAS,GAAG,OAAO,GAAG,UAAU,CAAC;IAChD,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,sBAAsB,GAAG;IACnC,IAAI,EAAE,WAAW,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,OAAO,CAAC;IACf,QAAQ,EAAE,OAAO,CAAC;IAClB,cAAc,EAAE,OAAO,CAAC;IACxB,MAAM,CAAC,EAAE,kBAAkB,CAAC;IAC5B,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;CACtB,CAAC;AAEF,MAAM,MAAM,mBAAmB,GAAG;IAChC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IAEtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IAEtB,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,CAAC;IACrC,QAAQ,CAAC,EAAE,aAAa,CAAC;IAEzB,YAAY,CAAC,EAAE,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;IAEzC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAEjD,KAAK,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAC/B,WAAW,CAAC,EAAE,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC;IAE1C,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC;IAE5D,UAAU,CAAC,EAAE,CAAC,IAAI,EAAE,WAAW,KAAK,IAAI,CAAC;IACzC,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IACjE,YAAY,CAAC,EAAE,CAAC,KAAK,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAA;KAAE,KAAK,IAAI,CAAC;IAEhE,SAAS,CAAC,EAAE,CAAC,KAAK,EAAE,sBAAsB,KAAK,SAAS,CAAC;IAEzD,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bsData.d.ts","sourceRoot":"","sources":["../../../../src/core/bsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxD,MAAM,MAAM,kBAAkB,GAAG,SAAS;IACxC,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;
|
|
1
|
+
{"version":3,"file":"bsData.d.ts","sourceRoot":"","sources":["../../../../src/core/bsData.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAGxD,MAAM,MAAM,kBAAkB,GAAG,SAAS;IACxC,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;IACN,MAAM;CACP,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC;IAC/B,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC,CAAC;CAC3E,CAAC;AAEF,MAAM,MAAM,YAAY,GAAG;IACzB,QAAQ,CAAC,IAAI,EAAE,MAAM,CAAC;IACtB,QAAQ,CAAC,aAAa,EAAE,MAAM,CAAC;IAC/B,QAAQ,CAAC,SAAS,EAAE,MAAM,CAAC;CAC5B,CAAC;AAIF,eAAO,MAAM,gBAAgB,EAAE,cA0G9B,CAAC;AAEF,eAAO,MAAM,eAAe,EAAE,SAAS,YAAY,EACZ,CAAC;AAExC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,cAAc,GAAG,SAAS,YAAY,EAAE,CA4BjF;AAED,wBAAgB,uBAAuB,IAAI;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAOtE;AAED,eAAO,MAAM,uBAAuB,QAAgC,CAAC;AACrE,eAAO,MAAM,qBAAqB,QAAgC,CAAC;AAEnE,wBAAgB,mBAAmB,IAAI;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,CAGpE"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAepE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAyBxD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAYnE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,
|
|
1
|
+
{"version":3,"file":"validation.d.ts","sourceRoot":"","sources":["../../../../src/core/validation.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAIxD,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,GAAG,MAAM,CAepE;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAyBxD;AAED,wBAAgB,wBAAwB,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAYnE;AAED,wBAAgB,2BAA2B,CAAC,IAAI,EAAE,WAAW,GAAG,WAAW,CA2B1E;AAED,wBAAgB,yBAAyB,IAAI,WAAW,CAGvD;AAED,wBAAgB,oBAAoB,CAAC,KAAK,CAAC,EAAE;IAC3C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,GAAG;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,CAuBlC;AAED,wBAAgB,aAAa,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAoBxD"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
export * from './core';
|
|
2
2
|
export * from './calendar';
|
|
3
3
|
export * from './components/NepaliCalendar';
|
|
4
|
-
export * from './components/NepaliDatePicker';
|
|
5
|
-
export * from './components/NepaliRangePicker';
|
|
6
4
|
export * from './theme';
|
|
7
5
|
export * from './accessibility';
|
|
8
6
|
export * from './utils';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,QAAQ,CAAC;AACvB,cAAc,YAAY,CAAC;AAC3B,cAAc,6BAA6B,CAAC;AAC5C,cAAc,SAAS,CAAC;AACxB,cAAc,iBAAiB,CAAC;AAChC,cAAc,SAAS,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"default-theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/default-theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiB7C,eAAO,MAAM,WAAW,EAAE,
|
|
1
|
+
{"version":3,"file":"default-theme.d.ts","sourceRoot":"","sources":["../../../../src/theme/default-theme.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,SAAS,CAAC;AAiB7C,eAAO,MAAM,WAAW,EAAE,aA6BzB,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,aA6BxB,CAAC"}
|
|
@@ -12,16 +12,6 @@ export type CalendarTheme = {
|
|
|
12
12
|
outsideMonthText: string;
|
|
13
13
|
border: string;
|
|
14
14
|
marker: string;
|
|
15
|
-
overlay: string;
|
|
16
|
-
modalBackground: string;
|
|
17
|
-
fieldBackground: string;
|
|
18
|
-
fieldBorder: string;
|
|
19
|
-
placeholderText: string;
|
|
20
|
-
rangeBackground: string;
|
|
21
|
-
rangeText: string;
|
|
22
|
-
rangeStartBackground: string;
|
|
23
|
-
rangeEndBackground: string;
|
|
24
|
-
danger: string;
|
|
25
15
|
};
|
|
26
16
|
radius: {
|
|
27
17
|
day: number;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/theme/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AAE9C,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE;QACN,UAAU,EAAE,MAAM,CAAC;QACnB,OAAO,EAAE,MAAM,CAAC;QAChB,IAAI,EAAE,MAAM,CAAC;QACb,SAAS,EAAE,MAAM,CAAC;QAClB,OAAO,EAAE,MAAM,CAAC;QAChB,WAAW,EAAE,MAAM,CAAC;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,YAAY,EAAE,MAAM,CAAC;QACrB,gBAAgB,EAAE,MAAM,CAAC;QACzB,MAAM,EAAE,MAAM,CAAC;QACf,MAAM,EAAE,MAAM,CAAC;KAChB,CAAC;IACF,MAAM,EAAE;QACN,GAAG,EAAE,MAAM,CAAC;QACZ,QAAQ,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,OAAO,EAAE;QACP,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;QACX,EAAE,EAAE,MAAM,CAAC;KACZ,CAAC;IACF,UAAU,EAAE;QACV,MAAM,EAAE,SAAS,CAAC;QAClB,OAAO,EAAE,SAAS,CAAC;QACnB,GAAG,EAAE,SAAS,CAAC;KAChB,CAAC;CACH,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,OAAO,GAAG,MAAM,GAAG,QAAQ,CAAC"}
|
|
@@ -9,13 +9,9 @@ export declare function isDateDisabled(date: BSDateValue, options: {
|
|
|
9
9
|
dateKey: string;
|
|
10
10
|
}): boolean;
|
|
11
11
|
export declare function createDateAccessibilityLabel(date: BSDateValue, locale: CalendarLocale, options: {
|
|
12
|
-
selected?: boolean;
|
|
13
12
|
today?: boolean;
|
|
14
13
|
disabled?: boolean;
|
|
15
14
|
outsideMonth?: boolean;
|
|
16
|
-
rangeStart?: boolean;
|
|
17
|
-
rangeEnd?: boolean;
|
|
18
|
-
inRange?: boolean;
|
|
19
15
|
markedLabel?: string;
|
|
20
16
|
}): string;
|
|
21
17
|
export declare function warnInvalidDateInDev(message: string, value: unknown): void;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-helpers.d.ts","sourceRoot":"","sources":["../../../../src/utils/date-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,EACpC,QAAQ,CAAC,EAAE,aAAa,GACvB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACrC,YAAY,EAAE,WAAW,GAAG,SAAS,GACpC,WAAW,CAUb;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAeT;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;IACP,
|
|
1
|
+
{"version":3,"file":"date-helpers.d.ts","sourceRoot":"","sources":["../../../../src/utils/date-helpers.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAGjD,OAAO,KAAK,EAAE,UAAU,EAAE,aAAa,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAEhF,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACpC,OAAO,EAAE,MAAM,EACf,MAAM,CAAC,EAAE,UAAU,GAAG,cAAc,EACpC,QAAQ,CAAC,EAAE,aAAa,GACvB,MAAM,GAAG,IAAI,CAUf;AAED,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,WAAW,GAAG,IAAI,GAAG,SAAS,EACrC,YAAY,EAAE,WAAW,GAAG,SAAS,GACpC,WAAW,CAUb;AAED,wBAAgB,cAAc,CAC5B,IAAI,EAAE,WAAW,EACjB,OAAO,EAAE;IACP,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,OAAO,CAAC,EAAE,WAAW,CAAC;IACtB,aAAa,CAAC,EAAE,MAAM,EAAE,GAAG,CAAC,CAAC,IAAI,EAAE,WAAW,KAAK,OAAO,CAAC,CAAC;IAC5D,OAAO,EAAE,MAAM,CAAC;CACjB,GACA,OAAO,CAeT;AAQD,wBAAgB,4BAA4B,CAC1C,IAAI,EAAE,WAAW,EACjB,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE;IACP,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB,GACA,MAAM,CAsBR;AAED,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,MAAM,EACf,KAAK,EAAE,OAAO,GACb,IAAI,CAIN;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,WAAW,EAClB,KAAK,EAAE;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,GAAG,EAAE,MAAM,CAAA;CAAE,GAClC,IAAI,CAON;AAED,wBAAgB,eAAe,CAC7B,OAAO,EAAE,WAAW,GAAG,SAAS,EAChC,OAAO,EAAE,WAAW,GAAG,SAAS,GAC/B,IAAI,CAQN"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "react-native-bikram-sambat",
|
|
3
|
-
"version": "0.1.
|
|
4
|
-
"description": "React Native Bikram Sambat calendar
|
|
3
|
+
"version": "0.1.5",
|
|
4
|
+
"description": "React Native Bikram Sambat calendar UI with AD to BS, BS to AD, and TypeScript date utilities.",
|
|
5
5
|
"main": "./lib/commonjs/index.js",
|
|
6
6
|
"module": "./lib/module/index.js",
|
|
7
7
|
"types": "./lib/typescript/src/index.d.ts",
|
|
@@ -50,16 +50,12 @@
|
|
|
50
50
|
"bikram-sambat-calendar",
|
|
51
51
|
"nepali-calendar",
|
|
52
52
|
"nepali-date",
|
|
53
|
-
"nepali-date-picker",
|
|
54
|
-
"nepali date picker",
|
|
55
53
|
"bs-date",
|
|
56
54
|
"ad-bs",
|
|
57
55
|
"ad-to-bs",
|
|
58
56
|
"bs-to-ad",
|
|
59
57
|
"date-converter",
|
|
60
58
|
"calendar",
|
|
61
|
-
"datepicker",
|
|
62
|
-
"date-picker",
|
|
63
59
|
"nepal",
|
|
64
60
|
"nepali",
|
|
65
61
|
"typescript",
|
|
@@ -93,11 +89,11 @@
|
|
|
93
89
|
"typescript": "^5.5.4"
|
|
94
90
|
},
|
|
95
91
|
"scripts": {
|
|
96
|
-
"build": "
|
|
92
|
+
"build": "node ./scripts/build.cjs",
|
|
97
93
|
"typecheck": "tsc --noEmit",
|
|
98
94
|
"test": "jest",
|
|
99
95
|
"clean": "rimraf lib",
|
|
100
|
-
"prepack": "
|
|
96
|
+
"prepack": "node ./scripts/build.cjs",
|
|
101
97
|
"pack:dry": "npm pack --dry-run"
|
|
102
98
|
},
|
|
103
99
|
"react-native-builder-bob": {
|
|
@@ -5,14 +5,12 @@ import { formatBS } from '../core/format';
|
|
|
5
5
|
export function getDayAccessibilityLabel(
|
|
6
6
|
date: BSDateValue,
|
|
7
7
|
locale: CalendarLocale,
|
|
8
|
-
selected: boolean,
|
|
9
8
|
today: boolean,
|
|
10
9
|
disabled: boolean
|
|
11
10
|
): string {
|
|
12
11
|
const dateStr = formatBS(date, 'yyyy MMMM d', { locale });
|
|
13
12
|
|
|
14
13
|
if (disabled) return `${dateStr}, disabled`;
|
|
15
|
-
if (selected) return `${dateStr}, selected`;
|
|
16
14
|
if (today) return `${dateStr}, today`;
|
|
17
15
|
|
|
18
16
|
return dateStr;
|
|
@@ -8,24 +8,19 @@ import type { CalendarMarkedDate } from './types';
|
|
|
8
8
|
type CalendarDayProps = {
|
|
9
9
|
date: BSDateValue;
|
|
10
10
|
day: number;
|
|
11
|
-
selected: boolean;
|
|
12
11
|
today: boolean;
|
|
13
12
|
disabled: boolean;
|
|
14
13
|
inCurrentMonth: boolean;
|
|
15
14
|
marked?: CalendarMarkedDate;
|
|
16
15
|
numerals: 'latin' | 'devanagari';
|
|
17
16
|
theme: CalendarTheme;
|
|
18
|
-
onPress
|
|
19
|
-
rangeStart?: boolean;
|
|
20
|
-
rangeEnd?: boolean;
|
|
21
|
-
inRange?: boolean;
|
|
17
|
+
onPress?: () => void;
|
|
22
18
|
locale?: import('../../core/locale').CalendarLocale;
|
|
23
19
|
};
|
|
24
20
|
|
|
25
21
|
export const CalendarDay = memo(function CalendarDay({
|
|
26
22
|
date,
|
|
27
23
|
day,
|
|
28
|
-
selected,
|
|
29
24
|
today,
|
|
30
25
|
disabled,
|
|
31
26
|
inCurrentMonth,
|
|
@@ -33,9 +28,6 @@ export const CalendarDay = memo(function CalendarDay({
|
|
|
33
28
|
numerals,
|
|
34
29
|
theme,
|
|
35
30
|
onPress,
|
|
36
|
-
rangeStart,
|
|
37
|
-
rangeEnd,
|
|
38
|
-
inRange,
|
|
39
31
|
locale,
|
|
40
32
|
}: CalendarDayProps) {
|
|
41
33
|
const displayDay = useMemo(
|
|
@@ -43,50 +35,22 @@ export const CalendarDay = memo(function CalendarDay({
|
|
|
43
35
|
[day, numerals]
|
|
44
36
|
);
|
|
45
37
|
|
|
46
|
-
const
|
|
38
|
+
const isPressable = Boolean(onPress) && !disabled;
|
|
47
39
|
|
|
48
40
|
const textColor = useMemo(() => {
|
|
49
41
|
if (disabled) return theme.colors.disabledText;
|
|
50
|
-
if (isRangeEndpoint) return theme.colors.primaryText;
|
|
51
|
-
if (inRange) return theme.colors.rangeText;
|
|
52
|
-
if (selected) return theme.colors.primaryText;
|
|
53
42
|
if (!inCurrentMonth) return theme.colors.outsideMonthText;
|
|
54
43
|
if (marked?.textColor) return marked.textColor;
|
|
55
44
|
return theme.colors.text;
|
|
56
45
|
}, [
|
|
57
46
|
disabled,
|
|
58
|
-
isRangeEndpoint,
|
|
59
|
-
inRange,
|
|
60
|
-
selected,
|
|
61
47
|
inCurrentMonth,
|
|
62
48
|
marked?.textColor,
|
|
63
49
|
theme.colors.disabledText,
|
|
64
|
-
theme.colors.primaryText,
|
|
65
|
-
theme.colors.rangeText,
|
|
66
50
|
theme.colors.outsideMonthText,
|
|
67
51
|
theme.colors.text,
|
|
68
52
|
]);
|
|
69
53
|
|
|
70
|
-
const backgroundColor = useMemo(() => {
|
|
71
|
-
if (isRangeEndpoint) {
|
|
72
|
-
return rangeStart
|
|
73
|
-
? theme.colors.rangeStartBackground
|
|
74
|
-
: theme.colors.rangeEndBackground;
|
|
75
|
-
}
|
|
76
|
-
if (inRange) return theme.colors.rangeBackground;
|
|
77
|
-
if (selected) return theme.colors.primary;
|
|
78
|
-
return undefined;
|
|
79
|
-
}, [
|
|
80
|
-
isRangeEndpoint,
|
|
81
|
-
rangeStart,
|
|
82
|
-
inRange,
|
|
83
|
-
selected,
|
|
84
|
-
theme.colors.rangeStartBackground,
|
|
85
|
-
theme.colors.rangeEndBackground,
|
|
86
|
-
theme.colors.rangeBackground,
|
|
87
|
-
theme.colors.primary,
|
|
88
|
-
]);
|
|
89
|
-
|
|
90
54
|
const accessibilityLabel = useMemo(() => {
|
|
91
55
|
const parts: string[] = [];
|
|
92
56
|
|
|
@@ -101,10 +65,6 @@ export const CalendarDay = memo(function CalendarDay({
|
|
|
101
65
|
parts.push(`${date.year}/${date.month}/${day}`);
|
|
102
66
|
}
|
|
103
67
|
|
|
104
|
-
if (rangeStart) parts.push('range start');
|
|
105
|
-
if (rangeEnd) parts.push('range end');
|
|
106
|
-
if (inRange && !rangeStart && !rangeEnd) parts.push('in selected range');
|
|
107
|
-
if (selected && !inRange) parts.push('selected');
|
|
108
68
|
if (today) parts.push('today');
|
|
109
69
|
if (disabled) parts.push('disabled');
|
|
110
70
|
if (!inCurrentMonth) parts.push('outside month');
|
|
@@ -115,10 +75,6 @@ export const CalendarDay = memo(function CalendarDay({
|
|
|
115
75
|
date,
|
|
116
76
|
day,
|
|
117
77
|
locale,
|
|
118
|
-
rangeStart,
|
|
119
|
-
rangeEnd,
|
|
120
|
-
inRange,
|
|
121
|
-
selected,
|
|
122
78
|
today,
|
|
123
79
|
disabled,
|
|
124
80
|
inCurrentMonth,
|
|
@@ -127,25 +83,21 @@ export const CalendarDay = memo(function CalendarDay({
|
|
|
127
83
|
|
|
128
84
|
const containerStyle = [
|
|
129
85
|
styles.dayContainer,
|
|
130
|
-
|
|
131
|
-
today && !isRangeEndpoint && !selected && !inRange && {
|
|
86
|
+
today && {
|
|
132
87
|
borderWidth: 1,
|
|
133
88
|
borderColor: theme.colors.todayBorder,
|
|
134
89
|
},
|
|
135
90
|
disabled && styles.dayDisabled,
|
|
136
|
-
inRange && !isRangeEndpoint && styles.dayInRange,
|
|
137
|
-
rangeStart && styles.dayRangeStart,
|
|
138
|
-
rangeEnd && styles.dayRangeEnd,
|
|
139
91
|
];
|
|
140
92
|
|
|
141
93
|
return (
|
|
142
94
|
<Pressable
|
|
143
95
|
style={containerStyle}
|
|
144
96
|
onPress={onPress}
|
|
145
|
-
disabled={
|
|
146
|
-
accessibilityRole=
|
|
97
|
+
disabled={!isPressable}
|
|
98
|
+
accessibilityRole={isPressable ? 'button' : undefined}
|
|
147
99
|
accessibilityLabel={accessibilityLabel}
|
|
148
|
-
accessibilityState={{ disabled
|
|
100
|
+
accessibilityState={{ disabled: disabled || !isPressable }}
|
|
149
101
|
>
|
|
150
102
|
<Text style={[styles.dayText, { color: textColor }]}>{displayDay}</Text>
|
|
151
103
|
{marked && !disabled && (
|
|
@@ -169,17 +121,6 @@ const styles = StyleSheet.create({
|
|
|
169
121
|
borderRadius: 20,
|
|
170
122
|
position: 'relative',
|
|
171
123
|
},
|
|
172
|
-
dayInRange: {
|
|
173
|
-
borderRadius: 0,
|
|
174
|
-
},
|
|
175
|
-
dayRangeStart: {
|
|
176
|
-
borderTopLeftRadius: 20,
|
|
177
|
-
borderBottomLeftRadius: 20,
|
|
178
|
-
},
|
|
179
|
-
dayRangeEnd: {
|
|
180
|
-
borderTopRightRadius: 20,
|
|
181
|
-
borderBottomRightRadius: 20,
|
|
182
|
-
},
|
|
183
124
|
dayText: {
|
|
184
125
|
fontSize: 15,
|
|
185
126
|
textAlign: 'center',
|
|
@@ -1,18 +1,14 @@
|
|
|
1
1
|
import React, { memo, useCallback, useMemo } from 'react';
|
|
2
2
|
import { View, StyleSheet } from 'react-native';
|
|
3
3
|
import type { BSDateValue } from '../../core/types';
|
|
4
|
-
import { compareBS } from '../../core';
|
|
5
4
|
import type { CalendarMonthGrid } from '../../calendar';
|
|
6
5
|
import type { CalendarTheme } from '../../theme/types';
|
|
7
6
|
import type { CalendarLocale } from '../../core/locale';
|
|
8
7
|
import type { CalendarMarkedDate, CalendarDayRenderProps } from './types';
|
|
9
|
-
import type { DateRangeValue } from '../NepaliRangePicker/types';
|
|
10
|
-
import { isRangeStart, isRangeEnd, isDateInRange } from '../NepaliRangePicker/range-utils';
|
|
11
8
|
import { CalendarDay } from './CalendarDay';
|
|
12
9
|
|
|
13
10
|
type CalendarGridProps = {
|
|
14
11
|
grid: CalendarMonthGrid;
|
|
15
|
-
value: BSDateValue | null;
|
|
16
12
|
today: BSDateValue | null;
|
|
17
13
|
minDate: BSDateValue | undefined;
|
|
18
14
|
maxDate: BSDateValue | undefined;
|
|
@@ -20,23 +16,20 @@ type CalendarGridProps = {
|
|
|
20
16
|
theme: CalendarTheme;
|
|
21
17
|
markedDates: Record<string, CalendarMarkedDate> | undefined;
|
|
22
18
|
disabledDates: string[] | ((date: BSDateValue) => boolean) | undefined;
|
|
23
|
-
|
|
19
|
+
onDayPress: ((date: BSDateValue) => void) | undefined;
|
|
24
20
|
renderDay: ((props: CalendarDayRenderProps) => React.ReactNode) | undefined;
|
|
25
|
-
rangeValue?: DateRangeValue;
|
|
26
21
|
locale?: CalendarLocale;
|
|
27
22
|
};
|
|
28
23
|
|
|
29
24
|
export const CalendarGrid = memo(function CalendarGrid({
|
|
30
25
|
grid,
|
|
31
|
-
value,
|
|
32
26
|
today,
|
|
33
27
|
numerals,
|
|
34
28
|
theme,
|
|
35
29
|
markedDates,
|
|
36
30
|
disabledDates,
|
|
37
|
-
|
|
31
|
+
onDayPress,
|
|
38
32
|
renderDay,
|
|
39
|
-
rangeValue,
|
|
40
33
|
locale,
|
|
41
34
|
}: CalendarGridProps) {
|
|
42
35
|
const isDateDisabledByList = useCallback(
|
|
@@ -55,14 +48,15 @@ export const CalendarGrid = memo(function CalendarGrid({
|
|
|
55
48
|
);
|
|
56
49
|
|
|
57
50
|
const rows = useMemo(() => {
|
|
58
|
-
const hasRange = rangeValue?.start != null;
|
|
59
|
-
|
|
60
51
|
return grid.weeks.map((week, weekIndex) => (
|
|
61
52
|
<View key={weekIndex} style={styles.weekRow}>
|
|
62
53
|
{week.map((cell) => {
|
|
63
54
|
const dateKey = cell.key;
|
|
64
|
-
const
|
|
65
|
-
|
|
55
|
+
const isTodayCell =
|
|
56
|
+
today !== null &&
|
|
57
|
+
cell.date.year === today.year &&
|
|
58
|
+
cell.date.month === today.month &&
|
|
59
|
+
cell.date.day === today.day;
|
|
66
60
|
const marked = markedDates?.[dateKey];
|
|
67
61
|
const explicitlyDisabled = marked?.disabled ?? false;
|
|
68
62
|
const disabled =
|
|
@@ -70,13 +64,9 @@ export const CalendarGrid = memo(function CalendarGrid({
|
|
|
70
64
|
cell.isDisabled ||
|
|
71
65
|
isDateDisabledByList(cell.date, dateKey);
|
|
72
66
|
|
|
73
|
-
const rangeStart = hasRange && isRangeStart(cell.date, rangeValue!);
|
|
74
|
-
const rangeEnd = hasRange && isRangeEnd(cell.date, rangeValue!);
|
|
75
|
-
const inRange = hasRange && isDateInRange(cell.date, rangeValue!);
|
|
76
|
-
|
|
77
67
|
const handlePress = () => {
|
|
78
|
-
if (!disabled) {
|
|
79
|
-
|
|
68
|
+
if (!disabled && onDayPress) {
|
|
69
|
+
onDayPress(cell.date);
|
|
80
70
|
}
|
|
81
71
|
};
|
|
82
72
|
|
|
@@ -84,15 +74,11 @@ export const CalendarGrid = memo(function CalendarGrid({
|
|
|
84
74
|
date: cell.date,
|
|
85
75
|
dateKey,
|
|
86
76
|
day: cell.day,
|
|
87
|
-
selected: isSelected,
|
|
88
77
|
today: isTodayCell,
|
|
89
78
|
disabled,
|
|
90
79
|
inCurrentMonth: cell.inCurrentMonth,
|
|
91
80
|
marked,
|
|
92
|
-
onPress: handlePress,
|
|
93
|
-
rangeStart,
|
|
94
|
-
rangeEnd,
|
|
95
|
-
inRange,
|
|
81
|
+
onPress: onDayPress ? handlePress : undefined,
|
|
96
82
|
};
|
|
97
83
|
|
|
98
84
|
if (renderDay) {
|
|
@@ -108,17 +94,13 @@ export const CalendarGrid = memo(function CalendarGrid({
|
|
|
108
94
|
<CalendarDay
|
|
109
95
|
date={cell.date}
|
|
110
96
|
day={cell.day}
|
|
111
|
-
selected={isSelected}
|
|
112
97
|
today={isTodayCell}
|
|
113
98
|
disabled={disabled}
|
|
114
99
|
inCurrentMonth={cell.inCurrentMonth}
|
|
115
100
|
marked={marked}
|
|
116
101
|
numerals={numerals}
|
|
117
102
|
theme={theme}
|
|
118
|
-
onPress={handlePress}
|
|
119
|
-
rangeStart={rangeStart}
|
|
120
|
-
rangeEnd={rangeEnd}
|
|
121
|
-
inRange={inRange}
|
|
103
|
+
onPress={onDayPress ? handlePress : undefined}
|
|
122
104
|
locale={locale}
|
|
123
105
|
/>
|
|
124
106
|
</View>
|
|
@@ -128,15 +110,13 @@ export const CalendarGrid = memo(function CalendarGrid({
|
|
|
128
110
|
));
|
|
129
111
|
}, [
|
|
130
112
|
grid.weeks,
|
|
131
|
-
value,
|
|
132
113
|
today,
|
|
133
114
|
numerals,
|
|
134
115
|
theme,
|
|
135
116
|
markedDates,
|
|
136
117
|
isDateDisabledByList,
|
|
137
|
-
|
|
118
|
+
onDayPress,
|
|
138
119
|
renderDay,
|
|
139
|
-
rangeValue,
|
|
140
120
|
locale,
|
|
141
121
|
]);
|
|
142
122
|
|
|
@@ -18,6 +18,7 @@ type CalendarHeaderProps = {
|
|
|
18
18
|
theme: CalendarTheme;
|
|
19
19
|
onPrevMonth: () => void;
|
|
20
20
|
onNextMonth: () => void;
|
|
21
|
+
onYearPress: () => void;
|
|
21
22
|
canGoPrev: boolean;
|
|
22
23
|
canGoNext: boolean;
|
|
23
24
|
};
|
|
@@ -55,6 +56,7 @@ export const CalendarHeader = memo(function CalendarHeader({
|
|
|
55
56
|
theme,
|
|
56
57
|
onPrevMonth,
|
|
57
58
|
onNextMonth,
|
|
59
|
+
onYearPress,
|
|
58
60
|
canGoPrev,
|
|
59
61
|
canGoNext,
|
|
60
62
|
}: CalendarHeaderProps) {
|
|
@@ -80,7 +82,16 @@ export const CalendarHeader = memo(function CalendarHeader({
|
|
|
80
82
|
<Text style={[styles.navText, { color: theme.colors.text }]}>‹</Text>
|
|
81
83
|
</Pressable>
|
|
82
84
|
|
|
83
|
-
<
|
|
85
|
+
<Pressable
|
|
86
|
+
style={styles.titleButton}
|
|
87
|
+
onPress={onYearPress}
|
|
88
|
+
accessibilityRole="button"
|
|
89
|
+
accessibilityLabel={`Select year, ${title}`}
|
|
90
|
+
>
|
|
91
|
+
<Text style={[styles.title, { color: theme.colors.text }]}>
|
|
92
|
+
{title}
|
|
93
|
+
</Text>
|
|
94
|
+
</Pressable>
|
|
84
95
|
|
|
85
96
|
<Pressable
|
|
86
97
|
style={[styles.navButton, !canGoNext && styles.navButtonDisabled]}
|
|
@@ -106,9 +117,14 @@ const styles = StyleSheet.create({
|
|
|
106
117
|
title: {
|
|
107
118
|
fontSize: 18,
|
|
108
119
|
fontWeight: '600',
|
|
109
|
-
flex: 1,
|
|
110
120
|
textAlign: 'center',
|
|
111
121
|
},
|
|
122
|
+
titleButton: {
|
|
123
|
+
flex: 1,
|
|
124
|
+
minHeight: 40,
|
|
125
|
+
alignItems: 'center',
|
|
126
|
+
justifyContent: 'center',
|
|
127
|
+
},
|
|
112
128
|
navButton: {
|
|
113
129
|
width: 40,
|
|
114
130
|
height: 40,
|