react-native-bikram-sambat 0.1.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/LICENSE +21 -0
- package/README.md +340 -0
- package/lib/commonjs/accessibility/index.js +25 -0
- package/lib/commonjs/accessibility/index.js.map +1 -0
- package/lib/commonjs/accessibility/labels.js +20 -0
- package/lib/commonjs/accessibility/labels.js.map +1 -0
- package/lib/commonjs/calendar/calendar-types.js +6 -0
- package/lib/commonjs/calendar/calendar-types.js.map +1 -0
- package/lib/commonjs/calendar/get-calendar-month-grid.js +114 -0
- package/lib/commonjs/calendar/get-calendar-month-grid.js.map +1 -0
- package/lib/commonjs/calendar/index.js +13 -0
- package/lib/commonjs/calendar/index.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarDay.js +137 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarDay.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarGrid.js +116 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarGrid.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarHeader.js +114 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarHeader.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarWeekdays.js +44 -0
- package/lib/commonjs/components/NepaliCalendar/CalendarWeekdays.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/NepaliCalendar.js +288 -0
- package/lib/commonjs/components/NepaliCalendar/NepaliCalendar.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/index.js +13 -0
- package/lib/commonjs/components/NepaliCalendar/index.js.map +1 -0
- package/lib/commonjs/components/NepaliCalendar/types.js +6 -0
- package/lib/commonjs/components/NepaliCalendar/types.js.map +1 -0
- package/lib/commonjs/components/NepaliDatePicker/DatePickerModal.js +185 -0
- package/lib/commonjs/components/NepaliDatePicker/DatePickerModal.js.map +1 -0
- package/lib/commonjs/components/NepaliDatePicker/NepaliDatePicker.js +148 -0
- package/lib/commonjs/components/NepaliDatePicker/NepaliDatePicker.js.map +1 -0
- package/lib/commonjs/components/NepaliDatePicker/index.js +20 -0
- package/lib/commonjs/components/NepaliDatePicker/index.js.map +1 -0
- package/lib/commonjs/components/NepaliDatePicker/types.js +6 -0
- package/lib/commonjs/components/NepaliDatePicker/types.js.map +1 -0
- package/lib/commonjs/components/NepaliRangePicker/NepaliRangePicker.js +187 -0
- package/lib/commonjs/components/NepaliRangePicker/NepaliRangePicker.js.map +1 -0
- package/lib/commonjs/components/NepaliRangePicker/RangePickerModal.js +275 -0
- package/lib/commonjs/components/NepaliRangePicker/RangePickerModal.js.map +1 -0
- package/lib/commonjs/components/NepaliRangePicker/index.js +57 -0
- package/lib/commonjs/components/NepaliRangePicker/index.js.map +1 -0
- package/lib/commonjs/components/NepaliRangePicker/range-utils.js +70 -0
- package/lib/commonjs/components/NepaliRangePicker/range-utils.js.map +1 -0
- package/lib/commonjs/components/NepaliRangePicker/types.js +6 -0
- package/lib/commonjs/components/NepaliRangePicker/types.js.map +1 -0
- package/lib/commonjs/core/arithmetic.js +36 -0
- package/lib/commonjs/core/arithmetic.js.map +1 -0
- package/lib/commonjs/core/bsData.js +89 -0
- package/lib/commonjs/core/bsData.js.map +1 -0
- package/lib/commonjs/core/conversion.js +53 -0
- package/lib/commonjs/core/conversion.js.map +1 -0
- package/lib/commonjs/core/dateKey.js +31 -0
- package/lib/commonjs/core/dateKey.js.map +1 -0
- package/lib/commonjs/core/epochDay.js +47 -0
- package/lib/commonjs/core/epochDay.js.map +1 -0
- package/lib/commonjs/core/format/format.js +86 -0
- package/lib/commonjs/core/format/format.js.map +1 -0
- package/lib/commonjs/core/format/index.js +20 -0
- package/lib/commonjs/core/format/index.js.map +1 -0
- package/lib/commonjs/core/format/parse.js +41 -0
- package/lib/commonjs/core/format/parse.js.map +1 -0
- package/lib/commonjs/core/format/tokens.js +9 -0
- package/lib/commonjs/core/format/tokens.js.map +1 -0
- package/lib/commonjs/core/index.js +116 -0
- package/lib/commonjs/core/index.js.map +1 -0
- package/lib/commonjs/core/locale/en.js +15 -0
- package/lib/commonjs/core/locale/en.js.map +1 -0
- package/lib/commonjs/core/locale/index.js +20 -0
- package/lib/commonjs/core/locale/index.js.map +1 -0
- package/lib/commonjs/core/locale/ne.js +15 -0
- package/lib/commonjs/core/locale/ne.js.map +1 -0
- package/lib/commonjs/core/locale/types.js +2 -0
- package/lib/commonjs/core/locale/types.js.map +1 -0
- package/lib/commonjs/core/numerals/index.js +19 -0
- package/lib/commonjs/core/numerals/index.js.map +1 -0
- package/lib/commonjs/core/numerals/nepali-numerals.js +28 -0
- package/lib/commonjs/core/numerals/nepali-numerals.js.map +1 -0
- package/lib/commonjs/core/types.js +2 -0
- package/lib/commonjs/core/types.js.map +1 -0
- package/lib/commonjs/core/validation.js +125 -0
- package/lib/commonjs/core/validation.js.map +1 -0
- package/lib/commonjs/core/validation.test.js +248 -0
- package/lib/commonjs/core/validation.test.js.map +1 -0
- package/lib/commonjs/exports.test.js +133 -0
- package/lib/commonjs/exports.test.js.map +1 -0
- package/lib/commonjs/index.js +94 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/package.json +1 -0
- package/lib/commonjs/phase2.test.js +446 -0
- package/lib/commonjs/phase2.test.js.map +1 -0
- package/lib/commonjs/phase3.test.js +91 -0
- package/lib/commonjs/phase3.test.js.map +1 -0
- package/lib/commonjs/phase4.test.js +89 -0
- package/lib/commonjs/phase4.test.js.map +1 -0
- package/lib/commonjs/phase5.test.js +246 -0
- package/lib/commonjs/phase5.test.js.map +1 -0
- package/lib/commonjs/phase7.test.js +284 -0
- package/lib/commonjs/phase7.test.js.map +1 -0
- package/lib/commonjs/range-helpers.test.js +182 -0
- package/lib/commonjs/range-helpers.test.js.map +1 -0
- package/lib/commonjs/theme/create-theme.js +37 -0
- package/lib/commonjs/theme/create-theme.js.map +1 -0
- package/lib/commonjs/theme/default-theme.js +99 -0
- package/lib/commonjs/theme/default-theme.js.map +1 -0
- package/lib/commonjs/theme/index.js +26 -0
- package/lib/commonjs/theme/index.js.map +1 -0
- package/lib/commonjs/theme/types.js +6 -0
- package/lib/commonjs/theme/types.js.map +1 -0
- package/lib/commonjs/utils/date-helpers.js +106 -0
- package/lib/commonjs/utils/date-helpers.js.map +1 -0
- package/lib/commonjs/utils/index.js +49 -0
- package/lib/commonjs/utils/index.js.map +1 -0
- package/lib/module/accessibility/index.js +4 -0
- package/lib/module/accessibility/index.js.map +1 -0
- package/lib/module/accessibility/labels.js +15 -0
- package/lib/module/accessibility/labels.js.map +1 -0
- package/lib/module/calendar/calendar-types.js +4 -0
- package/lib/module/calendar/calendar-types.js.map +1 -0
- package/lib/module/calendar/get-calendar-month-grid.js +111 -0
- package/lib/module/calendar/get-calendar-month-grid.js.map +1 -0
- package/lib/module/calendar/index.js +4 -0
- package/lib/module/calendar/index.js.map +1 -0
- package/lib/module/components/NepaliCalendar/CalendarDay.js +132 -0
- package/lib/module/components/NepaliCalendar/CalendarDay.js.map +1 -0
- package/lib/module/components/NepaliCalendar/CalendarGrid.js +111 -0
- package/lib/module/components/NepaliCalendar/CalendarGrid.js.map +1 -0
- package/lib/module/components/NepaliCalendar/CalendarHeader.js +109 -0
- package/lib/module/components/NepaliCalendar/CalendarHeader.js.map +1 -0
- package/lib/module/components/NepaliCalendar/CalendarWeekdays.js +39 -0
- package/lib/module/components/NepaliCalendar/CalendarWeekdays.js.map +1 -0
- package/lib/module/components/NepaliCalendar/NepaliCalendar.js +283 -0
- package/lib/module/components/NepaliCalendar/NepaliCalendar.js.map +1 -0
- package/lib/module/components/NepaliCalendar/index.js +4 -0
- package/lib/module/components/NepaliCalendar/index.js.map +1 -0
- package/lib/module/components/NepaliCalendar/types.js +4 -0
- package/lib/module/components/NepaliCalendar/types.js.map +1 -0
- package/lib/module/components/NepaliDatePicker/DatePickerModal.js +180 -0
- package/lib/module/components/NepaliDatePicker/DatePickerModal.js.map +1 -0
- package/lib/module/components/NepaliDatePicker/NepaliDatePicker.js +143 -0
- package/lib/module/components/NepaliDatePicker/NepaliDatePicker.js.map +1 -0
- package/lib/module/components/NepaliDatePicker/index.js +5 -0
- package/lib/module/components/NepaliDatePicker/index.js.map +1 -0
- package/lib/module/components/NepaliDatePicker/types.js +4 -0
- package/lib/module/components/NepaliDatePicker/types.js.map +1 -0
- package/lib/module/components/NepaliRangePicker/NepaliRangePicker.js +182 -0
- package/lib/module/components/NepaliRangePicker/NepaliRangePicker.js.map +1 -0
- package/lib/module/components/NepaliRangePicker/RangePickerModal.js +270 -0
- package/lib/module/components/NepaliRangePicker/RangePickerModal.js.map +1 -0
- package/lib/module/components/NepaliRangePicker/index.js +6 -0
- package/lib/module/components/NepaliRangePicker/index.js.map +1 -0
- package/lib/module/components/NepaliRangePicker/range-utils.js +61 -0
- package/lib/module/components/NepaliRangePicker/range-utils.js.map +1 -0
- package/lib/module/components/NepaliRangePicker/types.js +4 -0
- package/lib/module/components/NepaliRangePicker/types.js.map +1 -0
- package/lib/module/core/arithmetic.js +29 -0
- package/lib/module/core/arithmetic.js.map +1 -0
- package/lib/module/core/bsData.js +82 -0
- package/lib/module/core/bsData.js.map +1 -0
- package/lib/module/core/conversion.js +48 -0
- package/lib/module/core/conversion.js.map +1 -0
- package/lib/module/core/dateKey.js +26 -0
- package/lib/module/core/dateKey.js.map +1 -0
- package/lib/module/core/epochDay.js +39 -0
- package/lib/module/core/epochDay.js.map +1 -0
- package/lib/module/core/format/format.js +82 -0
- package/lib/module/core/format/format.js.map +1 -0
- package/lib/module/core/format/index.js +5 -0
- package/lib/module/core/format/index.js.map +1 -0
- package/lib/module/core/format/parse.js +37 -0
- package/lib/module/core/format/parse.js.map +1 -0
- package/lib/module/core/format/tokens.js +5 -0
- package/lib/module/core/format/tokens.js.map +1 -0
- package/lib/module/core/index.js +13 -0
- package/lib/module/core/index.js.map +1 -0
- package/lib/module/core/locale/en.js +11 -0
- package/lib/module/core/locale/en.js.map +1 -0
- package/lib/module/core/locale/index.js +5 -0
- package/lib/module/core/locale/index.js.map +1 -0
- package/lib/module/core/locale/ne.js +11 -0
- package/lib/module/core/locale/ne.js.map +1 -0
- package/lib/module/core/locale/types.js +2 -0
- package/lib/module/core/locale/types.js.map +1 -0
- package/lib/module/core/numerals/index.js +4 -0
- package/lib/module/core/numerals/index.js.map +1 -0
- package/lib/module/core/numerals/nepali-numerals.js +23 -0
- package/lib/module/core/numerals/nepali-numerals.js.map +1 -0
- package/lib/module/core/types.js +2 -0
- package/lib/module/core/types.js.map +1 -0
- package/lib/module/core/validation.js +115 -0
- package/lib/module/core/validation.js.map +1 -0
- package/lib/module/core/validation.test.js +248 -0
- package/lib/module/core/validation.test.js.map +1 -0
- package/lib/module/exports.test.js +133 -0
- package/lib/module/exports.test.js.map +1 -0
- package/lib/module/index.js +11 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/package.json +1 -0
- package/lib/module/phase2.test.js +446 -0
- package/lib/module/phase2.test.js.map +1 -0
- package/lib/module/phase3.test.js +91 -0
- package/lib/module/phase3.test.js.map +1 -0
- package/lib/module/phase4.test.js +89 -0
- package/lib/module/phase4.test.js.map +1 -0
- package/lib/module/phase5.test.js +246 -0
- package/lib/module/phase5.test.js.map +1 -0
- package/lib/module/phase7.test.js +284 -0
- package/lib/module/phase7.test.js.map +1 -0
- package/lib/module/range-helpers.test.js +182 -0
- package/lib/module/range-helpers.test.js.map +1 -0
- package/lib/module/theme/create-theme.js +33 -0
- package/lib/module/theme/create-theme.js.map +1 -0
- package/lib/module/theme/default-theme.js +95 -0
- package/lib/module/theme/default-theme.js.map +1 -0
- package/lib/module/theme/index.js +5 -0
- package/lib/module/theme/index.js.map +1 -0
- package/lib/module/theme/types.js +4 -0
- package/lib/module/theme/types.js.map +1 -0
- package/lib/module/utils/date-helpers.js +96 -0
- package/lib/module/utils/date-helpers.js.map +1 -0
- package/lib/module/utils/index.js +4 -0
- package/lib/module/utils/index.js.map +1 -0
- package/lib/typescript/src/accessibility/index.d.ts +2 -0
- package/lib/typescript/src/accessibility/index.d.ts.map +1 -0
- package/lib/typescript/src/accessibility/labels.d.ts +6 -0
- package/lib/typescript/src/accessibility/labels.d.ts.map +1 -0
- package/lib/typescript/src/calendar/calendar-types.d.ts +23 -0
- package/lib/typescript/src/calendar/calendar-types.d.ts.map +1 -0
- package/lib/typescript/src/calendar/get-calendar-month-grid.d.ts +3 -0
- package/lib/typescript/src/calendar/get-calendar-month-grid.d.ts.map +1 -0
- package/lib/typescript/src/calendar/index.d.ts +3 -0
- package/lib/typescript/src/calendar/index.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarDay.d.ts +23 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarDay.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarGrid.d.ts +25 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarGrid.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarHeader.d.ts +17 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarHeader.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarWeekdays.d.ts +11 -0
- package/lib/typescript/src/components/NepaliCalendar/CalendarWeekdays.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/NepaliCalendar.d.ts +4 -0
- package/lib/typescript/src/components/NepaliCalendar/NepaliCalendar.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/index.d.ts +3 -0
- package/lib/typescript/src/components/NepaliCalendar/index.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliCalendar/types.d.ts +52 -0
- package/lib/typescript/src/components/NepaliCalendar/types.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliDatePicker/DatePickerModal.d.ts +4 -0
- package/lib/typescript/src/components/NepaliDatePicker/DatePickerModal.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliDatePicker/NepaliDatePicker.d.ts +4 -0
- package/lib/typescript/src/components/NepaliDatePicker/NepaliDatePicker.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliDatePicker/index.d.ts +4 -0
- package/lib/typescript/src/components/NepaliDatePicker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliDatePicker/types.d.ts +50 -0
- package/lib/typescript/src/components/NepaliDatePicker/types.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliRangePicker/NepaliRangePicker.d.ts +4 -0
- package/lib/typescript/src/components/NepaliRangePicker/NepaliRangePicker.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliRangePicker/RangePickerModal.d.ts +4 -0
- package/lib/typescript/src/components/NepaliRangePicker/RangePickerModal.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliRangePicker/index.d.ts +5 -0
- package/lib/typescript/src/components/NepaliRangePicker/index.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliRangePicker/range-utils.d.ts +13 -0
- package/lib/typescript/src/components/NepaliRangePicker/range-utils.d.ts.map +1 -0
- package/lib/typescript/src/components/NepaliRangePicker/types.d.ts +61 -0
- package/lib/typescript/src/components/NepaliRangePicker/types.d.ts.map +1 -0
- package/lib/typescript/src/core/arithmetic.d.ts +6 -0
- package/lib/typescript/src/core/arithmetic.d.ts.map +1 -0
- package/lib/typescript/src/core/bsData.d.ts +39 -0
- package/lib/typescript/src/core/bsData.d.ts.map +1 -0
- package/lib/typescript/src/core/conversion.d.ts +4 -0
- package/lib/typescript/src/core/conversion.d.ts.map +1 -0
- package/lib/typescript/src/core/dateKey.d.ts +4 -0
- package/lib/typescript/src/core/dateKey.d.ts.map +1 -0
- package/lib/typescript/src/core/epochDay.d.ts +7 -0
- package/lib/typescript/src/core/epochDay.d.ts.map +1 -0
- package/lib/typescript/src/core/format/format.d.ts +8 -0
- package/lib/typescript/src/core/format/format.d.ts.map +1 -0
- package/lib/typescript/src/core/format/index.d.ts +5 -0
- package/lib/typescript/src/core/format/index.d.ts.map +1 -0
- package/lib/typescript/src/core/format/parse.d.ts +7 -0
- package/lib/typescript/src/core/format/parse.d.ts.map +1 -0
- package/lib/typescript/src/core/format/tokens.d.ts +4 -0
- package/lib/typescript/src/core/format/tokens.d.ts.map +1 -0
- package/lib/typescript/src/core/index.d.ts +11 -0
- package/lib/typescript/src/core/index.d.ts.map +1 -0
- package/lib/typescript/src/core/locale/en.d.ts +3 -0
- package/lib/typescript/src/core/locale/en.d.ts.map +1 -0
- package/lib/typescript/src/core/locale/index.d.ts +4 -0
- package/lib/typescript/src/core/locale/index.d.ts.map +1 -0
- package/lib/typescript/src/core/locale/ne.d.ts +3 -0
- package/lib/typescript/src/core/locale/ne.d.ts.map +1 -0
- package/lib/typescript/src/core/locale/types.d.ts +11 -0
- package/lib/typescript/src/core/locale/types.d.ts.map +1 -0
- package/lib/typescript/src/core/numerals/index.d.ts +2 -0
- package/lib/typescript/src/core/numerals/index.d.ts.map +1 -0
- package/lib/typescript/src/core/numerals/nepali-numerals.d.ts +3 -0
- package/lib/typescript/src/core/numerals/nepali-numerals.d.ts.map +1 -0
- package/lib/typescript/src/core/types.d.ts +14 -0
- package/lib/typescript/src/core/types.d.ts.map +1 -0
- package/lib/typescript/src/core/validation.d.ts +17 -0
- package/lib/typescript/src/core/validation.d.ts.map +1 -0
- package/lib/typescript/src/index.d.ts +9 -0
- package/lib/typescript/src/index.d.ts.map +1 -0
- package/lib/typescript/src/theme/create-theme.d.ts +6 -0
- package/lib/typescript/src/theme/create-theme.d.ts.map +1 -0
- package/lib/typescript/src/theme/default-theme.d.ts +4 -0
- package/lib/typescript/src/theme/default-theme.d.ts.map +1 -0
- package/lib/typescript/src/theme/index.d.ts +4 -0
- package/lib/typescript/src/theme/index.d.ts.map +1 -0
- package/lib/typescript/src/theme/types.d.ts +43 -0
- package/lib/typescript/src/theme/types.d.ts.map +1 -0
- package/lib/typescript/src/utils/date-helpers.d.ts +27 -0
- package/lib/typescript/src/utils/date-helpers.d.ts.map +1 -0
- package/lib/typescript/src/utils/index.d.ts +2 -0
- package/lib/typescript/src/utils/index.d.ts.map +1 -0
- package/package.json +85 -0
- package/src/accessibility/index.ts +5 -0
- package/src/accessibility/labels.ts +22 -0
- package/src/calendar/calendar-types.ts +25 -0
- package/src/calendar/get-calendar-month-grid.ts +125 -0
- package/src/calendar/index.ts +2 -0
- package/src/components/NepaliCalendar/CalendarDay.tsx +198 -0
- package/src/components/NepaliCalendar/CalendarGrid.tsx +159 -0
- package/src/components/NepaliCalendar/CalendarHeader.tsx +126 -0
- package/src/components/NepaliCalendar/CalendarWeekdays.tsx +49 -0
- package/src/components/NepaliCalendar/NepaliCalendar.tsx +279 -0
- package/src/components/NepaliCalendar/index.ts +6 -0
- package/src/components/NepaliCalendar/types.ts +62 -0
- package/src/components/NepaliDatePicker/DatePickerModal.tsx +220 -0
- package/src/components/NepaliDatePicker/NepaliDatePicker.tsx +171 -0
- package/src/components/NepaliDatePicker/index.ts +3 -0
- package/src/components/NepaliDatePicker/types.ts +70 -0
- package/src/components/NepaliRangePicker/NepaliRangePicker.tsx +206 -0
- package/src/components/NepaliRangePicker/RangePickerModal.tsx +336 -0
- package/src/components/NepaliRangePicker/index.ts +11 -0
- package/src/components/NepaliRangePicker/range-utils.ts +75 -0
- package/src/components/NepaliRangePicker/types.ts +84 -0
- package/src/core/arithmetic.ts +34 -0
- package/src/core/bsData.ts +115 -0
- package/src/core/conversion.ts +73 -0
- package/src/core/dateKey.ts +31 -0
- package/src/core/epochDay.ts +49 -0
- package/src/core/format/format.ts +108 -0
- package/src/core/format/index.ts +4 -0
- package/src/core/format/parse.ts +68 -0
- package/src/core/format/tokens.ts +35 -0
- package/src/core/index.ts +10 -0
- package/src/core/locale/en.ts +23 -0
- package/src/core/locale/index.ts +3 -0
- package/src/core/locale/ne.ts +31 -0
- package/src/core/locale/types.ts +12 -0
- package/src/core/numerals/index.ts +1 -0
- package/src/core/numerals/nepali-numerals.ts +27 -0
- package/src/core/types.ts +15 -0
- package/src/core/validation.test.ts +207 -0
- package/src/core/validation.ts +141 -0
- package/src/exports.test.ts +135 -0
- package/src/index.ts +8 -0
- package/src/phase2.test.ts +424 -0
- package/src/phase3.test.ts +83 -0
- package/src/phase4.test.ts +86 -0
- package/src/phase5.test.ts +257 -0
- package/src/phase7.test.ts +307 -0
- package/src/range-helpers.test.ts +153 -0
- package/src/theme/create-theme.ts +29 -0
- package/src/theme/default-theme.ts +99 -0
- package/src/theme/index.ts +3 -0
- package/src/theme/types.ts +44 -0
- package/src/utils/date-helpers.ts +146 -0
- package/src/utils/index.ts +9 -0
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { adDateToEpochDay } from './epochDay';
|
|
4
|
+
// TODO(verified-data): Replace this tiny anchor window with a sourced,
|
|
5
|
+
// verified BS month-length table before claiming full calendar accuracy.
|
|
6
|
+
// This placeholder exists only to prove the conversion architecture.
|
|
7
|
+
export const BS_CALENDAR_DATA = {
|
|
8
|
+
anchorBS: {
|
|
9
|
+
calendar: 'BS',
|
|
10
|
+
year: 2081,
|
|
11
|
+
month: 1,
|
|
12
|
+
day: 1
|
|
13
|
+
},
|
|
14
|
+
anchorAD: {
|
|
15
|
+
calendar: 'AD',
|
|
16
|
+
year: 2024,
|
|
17
|
+
month: 4,
|
|
18
|
+
day: 13
|
|
19
|
+
},
|
|
20
|
+
monthLengthsByYear: {
|
|
21
|
+
2081: [31, 31, 32, 31, 31, 31, 30, 29, 30, 29, 30, 30]
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
export const BS_YEAR_OFFSETS = createBSYearOffsets(BS_CALENDAR_DATA);
|
|
25
|
+
export function createBSYearOffsets(data) {
|
|
26
|
+
assertSupportedAnchor(data);
|
|
27
|
+
let startEpochDay = adDateToEpochDay(data.anchorAD);
|
|
28
|
+
let expectedYear = data.anchorBS.year;
|
|
29
|
+
return Object.entries(data.monthLengthsByYear).map(([year, monthLengths]) => ({
|
|
30
|
+
year: Number(year),
|
|
31
|
+
monthLengths
|
|
32
|
+
})).sort((a, b) => a.year - b.year).map(({
|
|
33
|
+
year,
|
|
34
|
+
monthLengths
|
|
35
|
+
}) => {
|
|
36
|
+
if (year !== expectedYear) {
|
|
37
|
+
throw new Error(`BS month data must start at ${data.anchorBS.year} and be contiguous.`);
|
|
38
|
+
}
|
|
39
|
+
assertMonthLengths(year, monthLengths);
|
|
40
|
+
const totalDays = monthLengths.reduce((sum, days) => sum + days, 0);
|
|
41
|
+
const offset = {
|
|
42
|
+
year,
|
|
43
|
+
startEpochDay,
|
|
44
|
+
totalDays
|
|
45
|
+
};
|
|
46
|
+
startEpochDay += totalDays;
|
|
47
|
+
expectedYear += 1;
|
|
48
|
+
return offset;
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
export function getSupportedBSYearRange() {
|
|
52
|
+
const years = Object.keys(BS_CALENDAR_DATA.monthLengthsByYear).map(Number);
|
|
53
|
+
return {
|
|
54
|
+
min: Math.min(...years),
|
|
55
|
+
max: Math.max(...years)
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
export const SUPPORTED_BS_START_YEAR = getSupportedBSYearRange().min;
|
|
59
|
+
export const SUPPORTED_BS_END_YEAR = getSupportedBSYearRange().max;
|
|
60
|
+
export function getSupportedBSRange() {
|
|
61
|
+
const range = getSupportedBSYearRange();
|
|
62
|
+
return {
|
|
63
|
+
start: range.min,
|
|
64
|
+
end: range.max
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
function assertSupportedAnchor(data) {
|
|
68
|
+
if (data.anchorBS.month !== 1 || data.anchorBS.day !== 1) {
|
|
69
|
+
throw new Error(`BS calendar data anchor must be the first day of a BS year.`);
|
|
70
|
+
}
|
|
71
|
+
}
|
|
72
|
+
function assertMonthLengths(year, monthLengths) {
|
|
73
|
+
if (monthLengths.length !== 12) {
|
|
74
|
+
throw new Error(`BS year ${year} must contain 12 month lengths.`);
|
|
75
|
+
}
|
|
76
|
+
monthLengths.forEach((days, monthIndex) => {
|
|
77
|
+
if (!Number.isInteger(days) || days < 1) {
|
|
78
|
+
throw new Error(`BS year ${year} month ${monthIndex + 1} has an invalid length.`);
|
|
79
|
+
}
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=bsData.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["adDateToEpochDay","BS_CALENDAR_DATA","anchorBS","calendar","year","month","day","anchorAD","monthLengthsByYear","BS_YEAR_OFFSETS","createBSYearOffsets","data","assertSupportedAnchor","startEpochDay","expectedYear","Object","entries","map","monthLengths","Number","sort","a","b","Error","assertMonthLengths","totalDays","reduce","sum","days","offset","getSupportedBSYearRange","years","keys","min","Math","max","SUPPORTED_BS_START_YEAR","SUPPORTED_BS_END_YEAR","getSupportedBSRange","range","start","end","length","forEach","monthIndex","isInteger"],"sourceRoot":"../../../src","sources":["core/bsData.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { adDateToEpochDay, epochDayToADDate } from './epochDay';
|
|
4
|
+
import { BS_CALENDAR_DATA, BS_YEAR_OFFSETS, getSupportedBSYearRange } from './bsData';
|
|
5
|
+
import { isValidADDate, isValidBSDate } from './validation';
|
|
6
|
+
export function toBS(date) {
|
|
7
|
+
if (!isValidADDate(date)) {
|
|
8
|
+
throw new RangeError(`Invalid AD date.`);
|
|
9
|
+
}
|
|
10
|
+
const epochDay = adDateToEpochDay(date);
|
|
11
|
+
const yearOffset = BS_YEAR_OFFSETS.find(offset => epochDay >= offset.startEpochDay && epochDay < offset.startEpochDay + offset.totalDays);
|
|
12
|
+
if (!yearOffset) {
|
|
13
|
+
throwUnsupportedRange();
|
|
14
|
+
}
|
|
15
|
+
const monthLengths = BS_CALENDAR_DATA.monthLengthsByYear[yearOffset.year];
|
|
16
|
+
let dayOfYear = epochDay - yearOffset.startEpochDay;
|
|
17
|
+
for (let monthIndex = 0; monthIndex < monthLengths.length; monthIndex += 1) {
|
|
18
|
+
const monthLength = monthLengths[monthIndex];
|
|
19
|
+
if (dayOfYear < monthLength) {
|
|
20
|
+
return {
|
|
21
|
+
calendar: 'BS',
|
|
22
|
+
year: yearOffset.year,
|
|
23
|
+
month: monthIndex + 1,
|
|
24
|
+
day: dayOfYear + 1
|
|
25
|
+
};
|
|
26
|
+
}
|
|
27
|
+
dayOfYear -= monthLength;
|
|
28
|
+
}
|
|
29
|
+
throw new Error(`Failed to convert AD date to BS date.`);
|
|
30
|
+
}
|
|
31
|
+
export function toAD(date) {
|
|
32
|
+
if (!isValidBSDate(date)) {
|
|
33
|
+
throw new RangeError(`Invalid BS date or unsupported BS year.`);
|
|
34
|
+
}
|
|
35
|
+
const yearOffset = BS_YEAR_OFFSETS.find(offset => offset.year === date.year);
|
|
36
|
+
if (!yearOffset) {
|
|
37
|
+
throwUnsupportedRange();
|
|
38
|
+
}
|
|
39
|
+
const monthLengths = BS_CALENDAR_DATA.monthLengthsByYear[date.year];
|
|
40
|
+
const daysBeforeMonth = monthLengths.slice(0, date.month - 1).reduce((sum, days) => sum + days, 0);
|
|
41
|
+
const epochDay = yearOffset.startEpochDay + daysBeforeMonth + date.day - 1;
|
|
42
|
+
return epochDayToADDate(epochDay);
|
|
43
|
+
}
|
|
44
|
+
function throwUnsupportedRange() {
|
|
45
|
+
const range = getSupportedBSYearRange();
|
|
46
|
+
throw new RangeError(`Conversion is limited to BS years ${range.min}-${range.max} until verified month data is added.`);
|
|
47
|
+
}
|
|
48
|
+
//# sourceMappingURL=conversion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["adDateToEpochDay","epochDayToADDate","BS_CALENDAR_DATA","BS_YEAR_OFFSETS","getSupportedBSYearRange","isValidADDate","isValidBSDate","toBS","date","RangeError","epochDay","yearOffset","find","offset","startEpochDay","totalDays","throwUnsupportedRange","monthLengths","monthLengthsByYear","year","dayOfYear","monthIndex","length","monthLength","calendar","month","day","Error","toAD","daysBeforeMonth","slice","reduce","sum","days","range","min","max"],"sourceRoot":"../../../src","sources":["core/conversion.ts"],"mappings":";;AACA,SAASA,gBAAgB,EAAEC,gBAAgB,QAAQ,YAAY;AAC/D,SACEC,gBAAgB,EAChBC,eAAe,EACfC,uBAAuB,QAClB,UAAU;AACjB,SAASC,aAAa,EAAEC,aAAa,QAAQ,cAAc;AAE3D,OAAO,SAASC,IAAIA,CAACC,IAAiB,EAAe;EACnD,IAAI,CAACH,aAAa,CAACG,IAAI,CAAC,EAAE;IACxB,MAAM,IAAIC,UAAU,CAAC,kBAAkB,CAAC;EAC1C;EAEA,MAAMC,QAAQ,GAAGV,gBAAgB,CAACQ,IAAI,CAAC;EACvC,MAAMG,UAAU,GAAGR,eAAe,CAACS,IAAI,CACpCC,MAAM,IACLH,QAAQ,IAAIG,MAAM,CAACC,aAAa,IAChCJ,QAAQ,GAAGG,MAAM,CAACC,aAAa,GAAGD,MAAM,CAACE,SAC7C,CAAC;EAED,IAAI,CAACJ,UAAU,EAAE;IACfK,qBAAqB,CAAC,CAAC;EACzB;EAEA,MAAMC,YAAY,GAAGf,gBAAgB,CAACgB,kBAAkB,CAACP,UAAU,CAACQ,IAAI,CAAC;EACzE,IAAIC,SAAS,GAAGV,QAAQ,GAAGC,UAAU,CAACG,aAAa;EAEnD,KAAK,IAAIO,UAAU,GAAG,CAAC,EAAEA,UAAU,GAAGJ,YAAY,CAACK,MAAM,EAAED,UAAU,IAAI,CAAC,EAAE;IAC1E,MAAME,WAAW,GAAGN,YAAY,CAACI,UAAU,CAAC;IAE5C,IAAID,SAAS,GAAGG,WAAW,EAAE;MAC3B,OAAO;QACLC,QAAQ,EAAE,IAAI;QACdL,IAAI,EAAER,UAAU,CAACQ,IAAI;QACrBM,KAAK,EAAEJ,UAAU,GAAG,CAAC;QACrBK,GAAG,EAAEN,SAAS,GAAG;MACnB,CAAC;IACH;IAEAA,SAAS,IAAIG,WAAW;EAC1B;EAEA,MAAM,IAAII,KAAK,CAAC,uCAAuC,CAAC;AAC1D;AAEA,OAAO,SAASC,IAAIA,CAACpB,IAAiB,EAAe;EACnD,IAAI,CAACF,aAAa,CAACE,IAAI,CAAC,EAAE;IACxB,MAAM,IAAIC,UAAU,CAAC,yCAAyC,CAAC;EACjE;EAEA,MAAME,UAAU,GAAGR,eAAe,CAACS,IAAI,CAAEC,MAAM,IAAKA,MAAM,CAACM,IAAI,KAAKX,IAAI,CAACW,IAAI,CAAC;EAE9E,IAAI,CAACR,UAAU,EAAE;IACfK,qBAAqB,CAAC,CAAC;EACzB;EAEA,MAAMC,YAAY,GAAGf,gBAAgB,CAACgB,kBAAkB,CAACV,IAAI,CAACW,IAAI,CAAC;EACnE,MAAMU,eAAe,GAAGZ,YAAY,CACjCa,KAAK,CAAC,CAAC,EAAEtB,IAAI,CAACiB,KAAK,GAAG,CAAC,CAAC,CACxBM,MAAM,CAAC,CAACC,GAAG,EAAEC,IAAI,KAAKD,GAAG,GAAGC,IAAI,EAAE,CAAC,CAAC;EACvC,MAAMvB,QAAQ,GAAGC,UAAU,CAACG,aAAa,GAAGe,eAAe,GAAGrB,IAAI,CAACkB,GAAG,GAAG,CAAC;EAE1E,OAAOzB,gBAAgB,CAACS,QAAQ,CAAC;AACnC;AAEA,SAASM,qBAAqBA,CAAA,EAAU;EACtC,MAAMkB,KAAK,GAAG9B,uBAAuB,CAAC,CAAC;EAEvC,MAAM,IAAIK,UAAU,CAClB,qCAAqCyB,KAAK,CAACC,GAAG,IAAID,KAAK,CAACE,GAAG,sCAC7D,CAAC;AACH","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { isValidBSDate } from './validation';
|
|
4
|
+
function pad2(value) {
|
|
5
|
+
return String(value).padStart(2, '0');
|
|
6
|
+
}
|
|
7
|
+
export function createBSDateKey(date) {
|
|
8
|
+
if (!isValidBSDate(date)) {
|
|
9
|
+
throw new RangeError(`Cannot create a BS date key from an invalid date.`);
|
|
10
|
+
}
|
|
11
|
+
return `${date.year}-${pad2(date.month)}-${pad2(date.day)}`;
|
|
12
|
+
}
|
|
13
|
+
export function parseBSDateKey(key) {
|
|
14
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(key);
|
|
15
|
+
if (!match) {
|
|
16
|
+
return null;
|
|
17
|
+
}
|
|
18
|
+
const date = {
|
|
19
|
+
calendar: 'BS',
|
|
20
|
+
year: Number(match[1]),
|
|
21
|
+
month: Number(match[2]),
|
|
22
|
+
day: Number(match[3])
|
|
23
|
+
};
|
|
24
|
+
return isValidBSDate(date) ? date : null;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=dateKey.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["isValidBSDate","pad2","value","String","padStart","createBSDateKey","date","RangeError","year","month","day","parseBSDateKey","key","match","exec","calendar","Number"],"sourceRoot":"../../../src","sources":["core/dateKey.ts"],"mappings":";;AACA,SAASA,aAAa,QAAQ,cAAc;AAE5C,SAASC,IAAIA,CAACC,KAAa,EAAU;EACnC,OAAOC,MAAM,CAACD,KAAK,CAAC,CAACE,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC;AACvC;AAEA,OAAO,SAASC,eAAeA,CAACC,IAAiB,EAAa;EAC5D,IAAI,CAACN,aAAa,CAACM,IAAI,CAAC,EAAE;IACxB,MAAM,IAAIC,UAAU,CAAC,mDAAmD,CAAC;EAC3E;EAEA,OAAO,GAAGD,IAAI,CAACE,IAAI,IAAIP,IAAI,CAACK,IAAI,CAACG,KAAK,CAAC,IAAIR,IAAI,CAACK,IAAI,CAACI,GAAG,CAAC,EAAE;AAC7D;AAEA,OAAO,SAASC,cAAcA,CAACC,GAAW,EAAsB;EAC9D,MAAMC,KAAK,GAAG,2BAA2B,CAACC,IAAI,CAACF,GAAG,CAAC;EAEnD,IAAI,CAACC,KAAK,EAAE;IACV,OAAO,IAAI;EACb;EAEA,MAAMP,IAAiB,GAAG;IACxBS,QAAQ,EAAE,IAAI;IACdP,IAAI,EAAEQ,MAAM,CAACH,KAAK,CAAC,CAAC,CAAC,CAAC;IACtBJ,KAAK,EAAEO,MAAM,CAACH,KAAK,CAAC,CAAC,CAAC,CAAC;IACvBH,GAAG,EAAEM,MAAM,CAACH,KAAK,CAAC,CAAC,CAAC;EACtB,CAAC;EAED,OAAOb,aAAa,CAACM,IAAI,CAAC,GAAGA,IAAI,GAAG,IAAI;AAC1C","ignoreList":[]}
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const MS_PER_DAY = 86_400_000;
|
|
4
|
+
export function adDateToEpochDay(date) {
|
|
5
|
+
return Math.floor(utcMillisForADDate(date) / MS_PER_DAY);
|
|
6
|
+
}
|
|
7
|
+
export function epochDayToADDate(epochDay) {
|
|
8
|
+
if (!Number.isInteger(epochDay)) {
|
|
9
|
+
throw new RangeError(`Epoch day must be an integer.`);
|
|
10
|
+
}
|
|
11
|
+
const value = new Date(epochDay * MS_PER_DAY);
|
|
12
|
+
return {
|
|
13
|
+
calendar: 'AD',
|
|
14
|
+
year: value.getUTCFullYear(),
|
|
15
|
+
month: value.getUTCMonth() + 1,
|
|
16
|
+
day: value.getUTCDate()
|
|
17
|
+
};
|
|
18
|
+
}
|
|
19
|
+
export function jsDateToEpochDay(date) {
|
|
20
|
+
return Math.floor(utcMillisForADDate({
|
|
21
|
+
calendar: 'AD',
|
|
22
|
+
year: date.getUTCFullYear(),
|
|
23
|
+
month: date.getUTCMonth() + 1,
|
|
24
|
+
day: date.getUTCDate()
|
|
25
|
+
}) / MS_PER_DAY);
|
|
26
|
+
}
|
|
27
|
+
export function epochDayToJSDate(epochDay) {
|
|
28
|
+
if (!Number.isInteger(epochDay)) {
|
|
29
|
+
throw new RangeError(`Epoch day must be an integer.`);
|
|
30
|
+
}
|
|
31
|
+
return new Date(epochDay * MS_PER_DAY);
|
|
32
|
+
}
|
|
33
|
+
export function utcMillisForADDate(date) {
|
|
34
|
+
const value = new Date(0);
|
|
35
|
+
value.setUTCFullYear(date.year, date.month - 1, date.day);
|
|
36
|
+
value.setUTCHours(0, 0, 0, 0);
|
|
37
|
+
return value.getTime();
|
|
38
|
+
}
|
|
39
|
+
//# sourceMappingURL=epochDay.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["MS_PER_DAY","adDateToEpochDay","date","Math","floor","utcMillisForADDate","epochDayToADDate","epochDay","Number","isInteger","RangeError","value","Date","calendar","year","getUTCFullYear","month","getUTCMonth","day","getUTCDate","jsDateToEpochDay","epochDayToJSDate","setUTCFullYear","setUTCHours","getTime"],"sourceRoot":"../../../src","sources":["core/epochDay.ts"],"mappings":";;AAEA,MAAMA,UAAU,GAAG,UAAU;AAE7B,OAAO,SAASC,gBAAgBA,CAACC,IAAiB,EAAU;EAC1D,OAAOC,IAAI,CAACC,KAAK,CAACC,kBAAkB,CAACH,IAAI,CAAC,GAAGF,UAAU,CAAC;AAC1D;AAEA,OAAO,SAASM,gBAAgBA,CAACC,QAAgB,EAAe;EAC9D,IAAI,CAACC,MAAM,CAACC,SAAS,CAACF,QAAQ,CAAC,EAAE;IAC/B,MAAM,IAAIG,UAAU,CAAC,+BAA+B,CAAC;EACvD;EAEA,MAAMC,KAAK,GAAG,IAAIC,IAAI,CAACL,QAAQ,GAAGP,UAAU,CAAC;EAE7C,OAAO;IACLa,QAAQ,EAAE,IAAI;IACdC,IAAI,EAAEH,KAAK,CAACI,cAAc,CAAC,CAAC;IAC5BC,KAAK,EAAEL,KAAK,CAACM,WAAW,CAAC,CAAC,GAAG,CAAC;IAC9BC,GAAG,EAAEP,KAAK,CAACQ,UAAU,CAAC;EACxB,CAAC;AACH;AAEA,OAAO,SAASC,gBAAgBA,CAAClB,IAAU,EAAU;EACnD,OAAOC,IAAI,CAACC,KAAK,CACfC,kBAAkB,CAAC;IACjBQ,QAAQ,EAAE,IAAI;IACdC,IAAI,EAAEZ,IAAI,CAACa,cAAc,CAAC,CAAC;IAC3BC,KAAK,EAAEd,IAAI,CAACe,WAAW,CAAC,CAAC,GAAG,CAAC;IAC7BC,GAAG,EAAEhB,IAAI,CAACiB,UAAU,CAAC;EACvB,CAAC,CAAC,GAAGnB,UACP,CAAC;AACH;AAEA,OAAO,SAASqB,gBAAgBA,CAACd,QAAgB,EAAQ;EACvD,IAAI,CAACC,MAAM,CAACC,SAAS,CAACF,QAAQ,CAAC,EAAE;IAC/B,MAAM,IAAIG,UAAU,CAAC,+BAA+B,CAAC;EACvD;EAEA,OAAO,IAAIE,IAAI,CAACL,QAAQ,GAAGP,UAAU,CAAC;AACxC;AAEA,OAAO,SAASK,kBAAkBA,CAACH,IAAiB,EAAU;EAC5D,MAAMS,KAAK,GAAG,IAAIC,IAAI,CAAC,CAAC,CAAC;EACzBD,KAAK,CAACW,cAAc,CAACpB,IAAI,CAACY,IAAI,EAAEZ,IAAI,CAACc,KAAK,GAAG,CAAC,EAAEd,IAAI,CAACgB,GAAG,CAAC;EACzDP,KAAK,CAACY,WAAW,CAAC,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,CAAC;EAE7B,OAAOZ,KAAK,CAACa,OAAO,CAAC,CAAC;AACxB","ignoreList":[]}
|
|
@@ -0,0 +1,82 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { EN_LOCALE, NE_LOCALE } from '../locale';
|
|
4
|
+
import { toNepaliNumerals } from '../numerals';
|
|
5
|
+
import { toAD } from '../conversion';
|
|
6
|
+
import { isValidBSDate } from '../validation';
|
|
7
|
+
import { getSupportedBSYearRange } from '../bsData';
|
|
8
|
+
import { FORMAT_TOKENS, NUMERIC_TOKENS } from './tokens';
|
|
9
|
+
function resolveLocale(locale) {
|
|
10
|
+
if (!locale) return EN_LOCALE;
|
|
11
|
+
if (typeof locale === 'string') {
|
|
12
|
+
return locale === 'ne' ? NE_LOCALE : EN_LOCALE;
|
|
13
|
+
}
|
|
14
|
+
return locale;
|
|
15
|
+
}
|
|
16
|
+
function pad2(value) {
|
|
17
|
+
return String(value).padStart(2, '0');
|
|
18
|
+
}
|
|
19
|
+
function formatToken(date, token, locale) {
|
|
20
|
+
switch (token) {
|
|
21
|
+
case 'yyyy':
|
|
22
|
+
return String(date.year);
|
|
23
|
+
case 'yy':
|
|
24
|
+
return String(date.year).slice(-2);
|
|
25
|
+
case 'MMMM':
|
|
26
|
+
return locale.months[date.month - 1];
|
|
27
|
+
case 'MMM':
|
|
28
|
+
return locale.monthsShort[date.month - 1];
|
|
29
|
+
case 'MM':
|
|
30
|
+
return pad2(date.month);
|
|
31
|
+
case 'M':
|
|
32
|
+
return String(date.month);
|
|
33
|
+
case 'EEEE':
|
|
34
|
+
return locale.weekdays[getUTCDay(date)];
|
|
35
|
+
case 'EEE':
|
|
36
|
+
case 'E':
|
|
37
|
+
return locale.weekdaysShort[getUTCDay(date)];
|
|
38
|
+
case 'dd':
|
|
39
|
+
return pad2(date.day);
|
|
40
|
+
case 'd':
|
|
41
|
+
return String(date.day);
|
|
42
|
+
default:
|
|
43
|
+
return token;
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
function getUTCDay(date) {
|
|
47
|
+
const ad = toAD(date);
|
|
48
|
+
const utcDate = new Date(Date.UTC(ad.year, ad.month - 1, ad.day));
|
|
49
|
+
return utcDate.getUTCDay();
|
|
50
|
+
}
|
|
51
|
+
export function formatBS(date, pattern, options) {
|
|
52
|
+
if (!isValidBSDate(date)) {
|
|
53
|
+
const range = getSupportedBSYearRange();
|
|
54
|
+
const dateStr = `${date.year}-${String(date.month).padStart(2, '0')}-${String(date.day).padStart(2, '0')}`;
|
|
55
|
+
throw new RangeError(`Cannot format invalid BS date ${dateStr}. Supported BS range is ${range.min}–${range.max}.`);
|
|
56
|
+
}
|
|
57
|
+
const locale = resolveLocale(options?.locale);
|
|
58
|
+
const numerals = options?.numerals;
|
|
59
|
+
let result = '';
|
|
60
|
+
let i = 0;
|
|
61
|
+
while (i < pattern.length) {
|
|
62
|
+
let matched = false;
|
|
63
|
+
for (const token of FORMAT_TOKENS) {
|
|
64
|
+
if (pattern.slice(i, i + token.length) === token) {
|
|
65
|
+
let value = formatToken(date, token, locale);
|
|
66
|
+
if (numerals === 'devanagari' && NUMERIC_TOKENS.has(token)) {
|
|
67
|
+
value = toNepaliNumerals(value);
|
|
68
|
+
}
|
|
69
|
+
result += value;
|
|
70
|
+
i += token.length;
|
|
71
|
+
matched = true;
|
|
72
|
+
break;
|
|
73
|
+
}
|
|
74
|
+
}
|
|
75
|
+
if (!matched) {
|
|
76
|
+
result += pattern[i];
|
|
77
|
+
i += 1;
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
return result;
|
|
81
|
+
}
|
|
82
|
+
//# sourceMappingURL=format.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EN_LOCALE","NE_LOCALE","toNepaliNumerals","toAD","isValidBSDate","getSupportedBSYearRange","FORMAT_TOKENS","NUMERIC_TOKENS","resolveLocale","locale","pad2","value","String","padStart","formatToken","date","token","year","slice","months","month","monthsShort","weekdays","getUTCDay","weekdaysShort","day","ad","utcDate","Date","UTC","formatBS","pattern","options","range","dateStr","RangeError","min","max","numerals","result","i","length","matched","has"],"sourceRoot":"../../../../src","sources":["core/format/format.ts"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["formatBS","parseBS"],"sourceRoot":"../../../../src","sources":["core/format/index.ts"],"mappings":";;AAEA,SAASA,QAAQ,QAAQ,UAAU;AACnC,SAASC,OAAO,QAAQ,SAAS","ignoreList":[]}
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { toLatinNumerals } from '../numerals';
|
|
4
|
+
import { isValidBSDate } from '../validation';
|
|
5
|
+
const SUPPORTED_PATTERNS = ['yyyy-MM-dd'];
|
|
6
|
+
function isSupportedPattern(pattern) {
|
|
7
|
+
return SUPPORTED_PATTERNS.includes(pattern);
|
|
8
|
+
}
|
|
9
|
+
function parseWithPattern(value, pattern, numerals) {
|
|
10
|
+
const normalized = numerals === 'devanagari' ? toLatinNumerals(value) : value;
|
|
11
|
+
if (pattern === 'yyyy-MM-dd') {
|
|
12
|
+
const match = /^(\d{4})-(\d{2})-(\d{2})$/.exec(normalized);
|
|
13
|
+
if (!match) return null;
|
|
14
|
+
return {
|
|
15
|
+
calendar: 'BS',
|
|
16
|
+
year: Number(match[1]),
|
|
17
|
+
month: Number(match[2]),
|
|
18
|
+
day: Number(match[3])
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
return null;
|
|
22
|
+
}
|
|
23
|
+
export function parseBS(value, pattern, options) {
|
|
24
|
+
if (!isSupportedPattern(pattern)) {
|
|
25
|
+
throw new Error(`Unsupported parse pattern "${pattern}". Phase 2 only supports "yyyy-MM-dd".`);
|
|
26
|
+
}
|
|
27
|
+
const numerals = options?.numerals;
|
|
28
|
+
const result = parseWithPattern(value, pattern, numerals);
|
|
29
|
+
if (!result) {
|
|
30
|
+
throw new Error(`Failed to parse "${value}" with pattern "${pattern}". Expected 4-digit year, 2-digit month, and 2-digit day separated by hyphens.`);
|
|
31
|
+
}
|
|
32
|
+
if (!isValidBSDate(result)) {
|
|
33
|
+
throw new RangeError(`Parsed date ${result.year}-${String(result.month).padStart(2, '0')}-${String(result.day).padStart(2, '0')} is not a valid BS date or falls outside the supported data range.`);
|
|
34
|
+
}
|
|
35
|
+
return result;
|
|
36
|
+
}
|
|
37
|
+
//# sourceMappingURL=parse.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["toLatinNumerals","isValidBSDate","SUPPORTED_PATTERNS","isSupportedPattern","pattern","includes","parseWithPattern","value","numerals","normalized","match","exec","calendar","year","Number","month","day","parseBS","options","Error","result","RangeError","String","padStart"],"sourceRoot":"../../../../src","sources":["core/format/parse.ts"],"mappings":";;AAEA,SAASA,eAAe,QAAQ,aAAa;AAC7C,SAASC,aAAa,QAAQ,eAAe;AAM7C,MAAMC,kBAAkB,GAAG,CAAC,YAAY,CAAU;AAIlD,SAASC,kBAAkBA,CAACC,OAAe,EAA+B;EACxE,OAAOF,kBAAkB,CAACG,QAAQ,CAACD,OAA2B,CAAC;AACjE;AAEA,SAASE,gBAAgBA,CACvBC,KAAa,EACbH,OAAyB,EACzBI,QAAmC,EACf;EACpB,MAAMC,UAAU,GAAGD,QAAQ,KAAK,YAAY,GAAGR,eAAe,CAACO,KAAK,CAAC,GAAGA,KAAK;EAE7E,IAAIH,OAAO,KAAK,YAAY,EAAE;IAC5B,MAAMM,KAAK,GAAG,2BAA2B,CAACC,IAAI,CAACF,UAAU,CAAC;IAE1D,IAAI,CAACC,KAAK,EAAE,OAAO,IAAI;IAEvB,OAAO;MACLE,QAAQ,EAAE,IAAI;MACdC,IAAI,EAAEC,MAAM,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;MACtBK,KAAK,EAAED,MAAM,CAACJ,KAAK,CAAC,CAAC,CAAC,CAAC;MACvBM,GAAG,EAAEF,MAAM,CAACJ,KAAK,CAAC,CAAC,CAAC;IACtB,CAAC;EACH;EAEA,OAAO,IAAI;AACb;AAEA,OAAO,SAASO,OAAOA,CACrBV,KAAa,EACbH,OAAe,EACfc,OAAwB,EACX;EACb,IAAI,CAACf,kBAAkB,CAACC,OAAO,CAAC,EAAE;IAChC,MAAM,IAAIe,KAAK,CACb,8BAA8Bf,OAAO,wCACvC,CAAC;EACH;EAEA,MAAMI,QAAQ,GAAGU,OAAO,EAAEV,QAAQ;EAClC,MAAMY,MAAM,GAAGd,gBAAgB,CAACC,KAAK,EAAEH,OAAO,EAAEI,QAAQ,CAAC;EAEzD,IAAI,CAACY,MAAM,EAAE;IACX,MAAM,IAAID,KAAK,CACb,oBAAoBZ,KAAK,mBAAmBH,OAAO,gFACrD,CAAC;EACH;EAEA,IAAI,CAACH,aAAa,CAACmB,MAAM,CAAC,EAAE;IAC1B,MAAM,IAAIC,UAAU,CAClB,eAAeD,MAAM,CAACP,IAAI,IAAIS,MAAM,CAACF,MAAM,CAACL,KAAK,CAAC,CAACQ,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,IAAID,MAAM,CAACF,MAAM,CAACJ,GAAG,CAAC,CAACO,QAAQ,CAAC,CAAC,EAAE,GAAG,CAAC,oEAC5G,CAAC;EACH;EAEA,OAAOH,MAAM;AACf","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["FORMAT_TOKENS","NUMERIC_TOKENS","Set"],"sourceRoot":"../../../../src","sources":["core/format/tokens.ts"],"mappings":";;AAaA,OAAO,MAAMA,aAAqC,GAAG,CACnD,MAAM,EACN,IAAI,EACJ,MAAM,EACN,KAAK,EACL,IAAI,EACJ,GAAG,EACH,MAAM,EACN,KAAK,EACL,GAAG,EACH,IAAI,EACJ,GAAG,CACJ;AAED,OAAO,MAAMC,cAAwC,GAAG,IAAIC,GAAG,CAAC,CAC9D,MAAM,EACN,IAAI,EACJ,IAAI,EACJ,GAAG,EACH,IAAI,EACJ,GAAG,CACJ,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export * from './types';
|
|
4
|
+
export * from './epochDay';
|
|
5
|
+
export * from './bsData';
|
|
6
|
+
export * from './conversion';
|
|
7
|
+
export * from './dateKey';
|
|
8
|
+
export * from './validation';
|
|
9
|
+
export * from './arithmetic';
|
|
10
|
+
export * from './numerals';
|
|
11
|
+
export * from './locale';
|
|
12
|
+
export * from './format';
|
|
13
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["core/index.ts"],"mappings":";;AAAA,cAAc,SAAS;AACvB,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,cAAc;AAC5B,cAAc,WAAW;AACzB,cAAc,cAAc;AAC5B,cAAc,cAAc;AAC5B,cAAc,YAAY;AAC1B,cAAc,UAAU;AACxB,cAAc,UAAU","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const EN_LOCALE = {
|
|
4
|
+
code: 'en',
|
|
5
|
+
months: ['Baisakh', 'Jestha', 'Ashadh', 'Shrawan', 'Bhadra', 'Ashwin', 'Kartik', 'Mangsir', 'Poush', 'Magh', 'Falgun', 'Chaitra'],
|
|
6
|
+
monthsShort: ['Bai', 'Jes', 'Ash', 'Shr', 'Bha', 'Asw', 'Kar', 'Man', 'Pou', 'Mag', 'Fal', 'Cha'],
|
|
7
|
+
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
8
|
+
weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
9
|
+
today: 'Today'
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=en.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EN_LOCALE","code","months","monthsShort","weekdays","weekdaysShort","today"],"sourceRoot":"../../../../src","sources":["core/locale/en.ts"],"mappings":";;AAEA,OAAO,MAAMA,SAAyB,GAAG;EACvCC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,CACN,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,OAAO,EACP,MAAM,EACN,QAAQ,EACR,SAAS,CACV;EACDC,WAAW,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EACjGC,QAAQ,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,WAAW,EAAE,UAAU,EAAE,QAAQ,EAAE,UAAU,CAAC;EACxFC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,EAAE,KAAK,CAAC;EAChEC,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["EN_LOCALE","NE_LOCALE"],"sourceRoot":"../../../../src","sources":["core/locale/index.ts"],"mappings":";;AACA,SAASA,SAAS,QAAQ,MAAM;AAChC,SAASC,SAAS,QAAQ,MAAM","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export const NE_LOCALE = {
|
|
4
|
+
code: 'ne',
|
|
5
|
+
months: ['बैशाख', 'जेठ', 'असार', 'श्रावण', 'भाद्र', 'आश्विन', 'कार्तिक', 'मंसिर', 'पौष', 'माघ', 'फाल्गुन', 'चैत्र'],
|
|
6
|
+
monthsShort: ['बै', 'जे', 'अ', 'श्रा', 'भा', 'आ', 'का', 'मं', 'पौ', 'मा', 'फा', 'चै'],
|
|
7
|
+
weekdays: ['आइतबार', 'सोमबार', 'मंगलबार', 'बुधबार', 'बिहीबार', 'शुक्रबार', 'शनिबार'],
|
|
8
|
+
weekdaysShort: ['आइत', 'सोम', 'मंगल', 'बुध', 'बिही', 'शुक्र', 'शनि'],
|
|
9
|
+
today: 'आज'
|
|
10
|
+
};
|
|
11
|
+
//# sourceMappingURL=ne.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["NE_LOCALE","code","months","monthsShort","weekdays","weekdaysShort","today"],"sourceRoot":"../../../../src","sources":["core/locale/ne.ts"],"mappings":";;AAEA,OAAO,MAAMA,SAAyB,GAAG;EACvCC,IAAI,EAAE,IAAI;EACVC,MAAM,EAAE,CACN,OAAO,EACP,KAAK,EACL,MAAM,EACN,QAAQ,EACR,OAAO,EACP,QAAQ,EACR,SAAS,EACT,OAAO,EACP,KAAK,EACL,KAAK,EACL,SAAS,EACT,OAAO,CACR;EACDC,WAAW,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,CAAC;EACrFC,QAAQ,EAAE,CACR,QAAQ,EACR,QAAQ,EACR,SAAS,EACT,QAAQ,EACR,SAAS,EACT,UAAU,EACV,QAAQ,CACT;EACDC,aAAa,EAAE,CAAC,KAAK,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,CAAC;EACpEC,KAAK,EAAE;AACT,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../../src","sources":["core/locale/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["toNepaliNumerals","toLatinNumerals"],"sourceRoot":"../../../../src","sources":["core/numerals/index.ts"],"mappings":";;AAAA,SAASA,gBAAgB,EAAEC,eAAe,QAAQ,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
const DEVANAGARI_DIGITS = ['०', '१', '२', '३', '४', '५', '६', '७', '८', '९'];
|
|
4
|
+
const LATIN_DIGITS = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9'];
|
|
5
|
+
export function toNepaliNumerals(value) {
|
|
6
|
+
const str = typeof value === 'number' ? String(value) : value;
|
|
7
|
+
return str.replace(/[0-9]/g, digit => DEVANAGARI_DIGITS[Number(digit)]);
|
|
8
|
+
}
|
|
9
|
+
export function toLatinNumerals(value) {
|
|
10
|
+
const str = typeof value === 'number' ? String(value) : value;
|
|
11
|
+
let result = '';
|
|
12
|
+
for (let i = 0; i < str.length; i++) {
|
|
13
|
+
const char = str[i];
|
|
14
|
+
const index = DEVANAGARI_DIGITS.indexOf(char);
|
|
15
|
+
if (index !== -1) {
|
|
16
|
+
result += LATIN_DIGITS[index];
|
|
17
|
+
} else {
|
|
18
|
+
result += char;
|
|
19
|
+
}
|
|
20
|
+
}
|
|
21
|
+
return result;
|
|
22
|
+
}
|
|
23
|
+
//# sourceMappingURL=nepali-numerals.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["DEVANAGARI_DIGITS","LATIN_DIGITS","toNepaliNumerals","value","str","String","replace","digit","Number","toLatinNumerals","result","i","length","char","index","indexOf"],"sourceRoot":"../../../../src","sources":["core/numerals/nepali-numerals.ts"],"mappings":";;AAAA,MAAMA,iBAAiB,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAC5E,MAAMC,YAAY,GAAG,CAAC,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,EAAE,GAAG,CAAC;AAEvE,OAAO,SAASC,gBAAgBA,CAACC,KAAsB,EAAU;EAC/D,MAAMC,GAAG,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAE7D,OAAOC,GAAG,CAACE,OAAO,CAAC,QAAQ,EAAGC,KAAK,IAAKP,iBAAiB,CAACQ,MAAM,CAACD,KAAK,CAAC,CAAC,CAAC;AAC3E;AAEA,OAAO,SAASE,eAAeA,CAACN,KAAsB,EAAU;EAC9D,MAAMC,GAAG,GAAG,OAAOD,KAAK,KAAK,QAAQ,GAAGE,MAAM,CAACF,KAAK,CAAC,GAAGA,KAAK;EAE7D,IAAIO,MAAM,GAAG,EAAE;EAEf,KAAK,IAAIC,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGP,GAAG,CAACQ,MAAM,EAAED,CAAC,EAAE,EAAE;IACnC,MAAME,IAAI,GAAGT,GAAG,CAACO,CAAC,CAAC;IACnB,MAAMG,KAAK,GAAGd,iBAAiB,CAACe,OAAO,CAACF,IAAI,CAAC;IAE7C,IAAIC,KAAK,KAAK,CAAC,CAAC,EAAE;MAChBJ,MAAM,IAAIT,YAAY,CAACa,KAAK,CAAC;IAC/B,CAAC,MAAM;MACLJ,MAAM,IAAIG,IAAI;IAChB;EACF;EAEA,OAAOH,MAAM;AACf","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["core/types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1,115 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { BS_CALENDAR_DATA, getSupportedBSYearRange } from './bsData';
|
|
4
|
+
import { utcMillisForADDate } from './epochDay';
|
|
5
|
+
export function getBSMonthLength(year, month) {
|
|
6
|
+
const monthLengths = BS_CALENDAR_DATA.monthLengthsByYear[year];
|
|
7
|
+
if (!monthLengths) {
|
|
8
|
+
const range = getSupportedBSYearRange();
|
|
9
|
+
throw new RangeError(`BS year ${year} is outside the supported data range (${range.min}–${range.max}).`);
|
|
10
|
+
}
|
|
11
|
+
if (!Number.isInteger(month) || month < 1 || month > 12) {
|
|
12
|
+
throw new RangeError(`BS month must be an integer from 1 to 12.`);
|
|
13
|
+
}
|
|
14
|
+
return monthLengths[month - 1];
|
|
15
|
+
}
|
|
16
|
+
export function isValidBSDate(date) {
|
|
17
|
+
if (date.calendar !== 'BS' || !Number.isInteger(date.year) || !Number.isInteger(date.month) || !Number.isInteger(date.day) || date.month < 1 || date.month > 12) {
|
|
18
|
+
return false;
|
|
19
|
+
}
|
|
20
|
+
const range = getSupportedBSYearRange();
|
|
21
|
+
if (date.year < range.min || date.year > range.max) {
|
|
22
|
+
return false;
|
|
23
|
+
}
|
|
24
|
+
const monthLengths = BS_CALENDAR_DATA.monthLengthsByYear[date.year];
|
|
25
|
+
if (!monthLengths) {
|
|
26
|
+
return false;
|
|
27
|
+
}
|
|
28
|
+
return date.day >= 1 && date.day <= monthLengths[date.month - 1];
|
|
29
|
+
}
|
|
30
|
+
export function isBSDateInSupportedRange(date) {
|
|
31
|
+
if (date.calendar !== 'BS' || !Number.isInteger(date.year) || !Number.isInteger(date.month) || !Number.isInteger(date.day)) {
|
|
32
|
+
return false;
|
|
33
|
+
}
|
|
34
|
+
const range = getSupportedBSYearRange();
|
|
35
|
+
return date.year >= range.min && date.year <= range.max;
|
|
36
|
+
}
|
|
37
|
+
export function clampBSDateToSupportedRange(date) {
|
|
38
|
+
const range = getSupportedBSYearRange();
|
|
39
|
+
if (date.year < range.min) {
|
|
40
|
+
return {
|
|
41
|
+
calendar: 'BS',
|
|
42
|
+
year: range.min,
|
|
43
|
+
month: 1,
|
|
44
|
+
day: 1
|
|
45
|
+
};
|
|
46
|
+
}
|
|
47
|
+
if (date.year > range.max) {
|
|
48
|
+
return {
|
|
49
|
+
calendar: 'BS',
|
|
50
|
+
year: range.max,
|
|
51
|
+
month: 12,
|
|
52
|
+
day: 30
|
|
53
|
+
};
|
|
54
|
+
}
|
|
55
|
+
const monthLengths = BS_CALENDAR_DATA.monthLengthsByYear[date.year];
|
|
56
|
+
if (!monthLengths) {
|
|
57
|
+
return {
|
|
58
|
+
calendar: 'BS',
|
|
59
|
+
year: range.min,
|
|
60
|
+
month: 1,
|
|
61
|
+
day: 1
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
const clampedMonth = Math.max(1, Math.min(12, date.month));
|
|
65
|
+
const maxDay = monthLengths[clampedMonth - 1];
|
|
66
|
+
const clampedDay = Math.max(1, Math.min(maxDay, date.day));
|
|
67
|
+
return {
|
|
68
|
+
calendar: 'BS',
|
|
69
|
+
year: date.year,
|
|
70
|
+
month: clampedMonth,
|
|
71
|
+
day: clampedDay
|
|
72
|
+
};
|
|
73
|
+
}
|
|
74
|
+
export function getDefaultSupportedBSDate() {
|
|
75
|
+
const range = getSupportedBSYearRange();
|
|
76
|
+
return {
|
|
77
|
+
calendar: 'BS',
|
|
78
|
+
year: range.min,
|
|
79
|
+
month: 1,
|
|
80
|
+
day: 1
|
|
81
|
+
};
|
|
82
|
+
}
|
|
83
|
+
export function getSafeCalendarMonth(input) {
|
|
84
|
+
const range = getSupportedBSYearRange();
|
|
85
|
+
if (input?.value && isBSDateInSupportedRange(input.value)) {
|
|
86
|
+
return {
|
|
87
|
+
year: input.value.year,
|
|
88
|
+
month: input.value.month
|
|
89
|
+
};
|
|
90
|
+
}
|
|
91
|
+
if (input?.defaultValue && isBSDateInSupportedRange(input.defaultValue)) {
|
|
92
|
+
return {
|
|
93
|
+
year: input.defaultValue.year,
|
|
94
|
+
month: input.defaultValue.month
|
|
95
|
+
};
|
|
96
|
+
}
|
|
97
|
+
if (input?.year != null && input?.month != null && input.year >= range.min && input.year <= range.max && input.month >= 1 && input.month <= 12) {
|
|
98
|
+
return {
|
|
99
|
+
year: input.year,
|
|
100
|
+
month: input.month
|
|
101
|
+
};
|
|
102
|
+
}
|
|
103
|
+
return {
|
|
104
|
+
year: range.min,
|
|
105
|
+
month: 1
|
|
106
|
+
};
|
|
107
|
+
}
|
|
108
|
+
export function isValidADDate(date) {
|
|
109
|
+
if (date.calendar !== 'AD' || !Number.isInteger(date.year) || !Number.isInteger(date.month) || !Number.isInteger(date.day) || date.month < 1 || date.month > 12 || date.day < 1) {
|
|
110
|
+
return false;
|
|
111
|
+
}
|
|
112
|
+
const value = new Date(utcMillisForADDate(date));
|
|
113
|
+
return value.getUTCFullYear() === date.year && value.getUTCMonth() + 1 === date.month && value.getUTCDate() === date.day;
|
|
114
|
+
}
|
|
115
|
+
//# sourceMappingURL=validation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["BS_CALENDAR_DATA","getSupportedBSYearRange","utcMillisForADDate","getBSMonthLength","year","month","monthLengths","monthLengthsByYear","range","RangeError","min","max","Number","isInteger","isValidBSDate","date","calendar","day","isBSDateInSupportedRange","clampBSDateToSupportedRange","clampedMonth","Math","maxDay","clampedDay","getDefaultSupportedBSDate","getSafeCalendarMonth","input","value","defaultValue","isValidADDate","Date","getUTCFullYear","getUTCMonth","getUTCDate"],"sourceRoot":"../../../src","sources":["core/validation.ts"],"mappings":"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","ignoreList":[]}
|