bangla-stdlib 1.0.0 → 1.0.1

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/dist/index.d.cts CHANGED
@@ -2867,7 +2867,7 @@ declare function getDaysBetween(from: number, to: number): number;
2867
2867
  /**
2868
2868
  * Gets the Bangla season name from a Date object.
2869
2869
  *
2870
- * This function determines the current Bengali season based on the month of the given date.
2870
+ * This function determines the current Bengali season based on the Bengali month of the given date.
2871
2871
  * It follows the traditional Bengali calendar system which divides the year into six seasons.
2872
2872
  *
2873
2873
  * **Bengali Seasons (ঋতু):**
@@ -2884,22 +2884,22 @@ declare function getDaysBetween(from: number, to: number): number;
2884
2884
  * @example
2885
2885
  * Basic usage:
2886
2886
  * ```typescript
2887
- * const date1 = new Date('2024-01-15'); // Bengali month 1 (Boishakh)
2887
+ * const date1 = new Date('2024-04-15'); // Bengali month 1 (Boishakh)
2888
2888
  * getSeason(date1); // 'গ্রীষ্ম'
2889
2889
  *
2890
- * const date2 = new Date('2024-07-15'); // Bengali month 3-4 (Monsoon period)
2890
+ * const date2 = new Date('2024-07-15'); // Bengali month 4 (Monsoon period)
2891
2891
  * getSeason(date2); // 'বর্ষা'
2892
2892
  * ```
2893
2893
  *
2894
2894
  * @example
2895
2895
  * All seasons throughout the year:
2896
2896
  * ```typescript
2897
- * getSeason(new Date('2024-01-15')); // 'গ্রীষ্ম' (Summer)
2898
- * getSeason(new Date('2024-03-15')); // 'বর্ষা' (Monsoon)
2899
- * getSeason(new Date('2024-06-15')); // 'শরৎ' (Autumn)
2900
- * getSeason(new Date('2024-08-15')); // 'হেমন্ত' (Late Autumn)
2901
- * getSeason(new Date('2024-09-15')); // 'শীত' (Winter)
2902
- * getSeason(new Date('2024-11-15')); // 'বসন্ত' (Spring)
2897
+ * getSeason(new Date('2024-04-15')); // 'গ্রীষ্ম' (Summer - Boishakh)
2898
+ * getSeason(new Date('2024-07-15')); // 'বর্ষা' (Monsoon - Srabon)
2899
+ * getSeason(new Date('2024-10-15')); // 'শরৎ' (Autumn - Kartik)
2900
+ * getSeason(new Date('2024-11-15')); // 'হেমন্ত' (Late Autumn - Agrahayan)
2901
+ * getSeason(new Date('2024-01-07')); // 'শীত' (Winter - Poush)
2902
+ * getSeason(new Date('2024-03-15')); // 'বসন্ত' (Spring - Falgun)
2903
2903
  * ```
2904
2904
  *
2905
2905
  * @example
@@ -4385,7 +4385,7 @@ declare function toBengali(date: Date): {
4385
4385
  * // converted should equal original date
4386
4386
  * ```
4387
4387
  */
4388
- declare function fromBengali(bengaliDate: {
4388
+ declare function fromBengali(b: {
4389
4389
  year: number;
4390
4390
  month: number;
4391
4391
  day: number;
@@ -5177,6 +5177,10 @@ declare function batchToBengali(dates: Date[]): Array<{
5177
5177
  month: number;
5178
5178
  day: number;
5179
5179
  }>;
5180
+ /**
5181
+ * Gets the month lengths for a given Bengali year.
5182
+ */
5183
+ declare function getBengaliMonthLengths(year: number): number[];
5180
5184
 
5181
5185
  /**
5182
5186
  * Formats a Bangladeshi phone number with various formatting options.
@@ -6065,4 +6069,4 @@ declare function hasBengaliConsonants(text: string): boolean;
6065
6069
  */
6066
6070
  declare function hasBengaliVowels(text: string): boolean;
6067
6071
 
6068
- export { BANGLA_DIGITS, BANGLA_MONTHS, BANGLA_SEASONS, BANGLA_WEEKDAYS, type BatchConversionResult, ENGLISH_DIGITS, type FormatNumberOptions, type OperatorInfo, type ParsedPhoneNumber, addCountryCode, addDays, addDaysToBengaliDate, addMinutesToTime, addTax, applyDiscount, batchFormatCurrency, batchFormatDates, batchFromBanglaNumber, batchParseDates, batchToBanglaMonth, batchToBanglaNumber, batchToBengali, batchToOrdinal, calculatePercentage, canParseBengaliDate, compareBengaliDates, compareCurrency, compareDates, compareMonths, compareOrdinals, compareTimes, convertToWordsAndDigits, countBengaliCharacters, countBengaliDigits, createOrdinalList, divideCurrency, extractBengaliChars, formatAndConvert, formatBengaliDate, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPhone, formatTime, formatToday, formatWithUnits, fromBanglaMonth, fromBanglaNumber, fromBanglaWeekday, fromBengali, getAbsoluteAmount, getAllBanglaWeekdays, getAllMonths, getAllOperatorCodes, getAllOperators, getAllSeasons, getBengaliDate, getBengaliDateDifference, getBengaliMonthDays, getBengaliPercentage, getCurrentBengaliDate, getCurrentSeason, getCurrentTimeBangla, getDaysBetween, getDaysDifference, getFirstDayOfBengaliMonth, getLastDayOfBengaliMonth, getMonthFromIndex, getMonthIndex, getMonthMapping, getMonthName, getMonthRange, getNextBanglaWeekday, getNextMonth, getNextOrdinal, getNextSeason, getNextWeekday, getOperator, getOrdinalSequence, getOrdinalType, getPreviousBanglaWeekday, getPreviousMonth, getPreviousOrdinal, getPreviousSeason, getPreviousWeekday, getRanking, getSeason, getSeasonByIndex, getSeasonFromMonth, getSeasonIndex, getSeasonInfo, getSeasonMonths, getSpecialOrdinals, getTimePeriod, getWeekdayName, hasBengaliConsonants, hasBengaliDigits, hasBengaliMonth, hasBengaliVowels, hasCountryCode, hasOnlyBengaliDigits, hasSeconds, hasSpecialOrdinal, hasTakaSymbol, hasTakaWord, isBanglaCurrency, isBanglaDigit, isBanglaOrdinal, isBanglaText, isBanglaWeekend, isBengaliDateInRange, isBengaliLeapYear, isCurrencyInRange, isDateInRange, isFuture, isInSpecialOrdinalRange, isMixedContent, isMonthInRange, isMonthInSeason, isNegativeAmount, isNumberInRange, isPast, isPositiveAmount, isPrimarilyBengali, isSameDay, isSameNumber, isSameSeason, isTimeInRange, isToday, isValidBanglaMonth, isValidBanglaNumber, isValidBanglaWeekday, isValidBengaliDate, isValidBengaliDateString, isValidBengaliDay, isValidBengaliMonth, isValidBengaliYear, isValidCurrency, isValidDate, isValidDateForSeason, isValidDateForWeekday, isValidMonth, isValidMonthNumber, isValidNumber, isValidNumberForOrdinal, isValidNumberForWords, isValidOperatorCode, isValidOrdinal, isValidPhoneFormat, isValidSeasonName, isValidTimeInput, isValidTimeString, isValidWeekdayNumber, isWeekend, isZeroAmount, multiplyCurrency, negateAmount, normalizePhoneNumber, normalizeWhitespace, parseAndConvertToBangla, parseAndConvertToMonth, parseAndConvertToOrdinal, parseAndFormat, parseAndFormatCurrency, parseCurrency, parseDate, parsePhoneNumber, parseTime, parseWeekdayInput, relativeDay, relativeTime, removeBengaliChars, removeCountryCode, roundCurrency, safeFormatCurrency, safeFormatDate, safeFormatPhone, safeFormatTime, safeFromBanglaMonth, safeFromBanglaNumber, safeFromBanglaWeekday, safeFromBengali, safeGetSeason, safeGetSeasonFromMonth, safeParseCurrency, safeParseDate, safeRelativeTime, safeToBanglaMonth, safeToBanglaNumber, safeToBanglaWeekday, safeToBengali, safeToOrdinal, sanitizeBanglaMonth, sanitizeBengaliDate, sanitizeBengaliText, sanitizeCurrencyInput, sanitizeDate, sanitizeMonthNumber, sanitizeNumberInput, sanitizeOrdinalInput, sanitizePhoneNumber, sanitizeTimeInput, sanitizeWeekdayInput, secondsToTime, splitAmount, splitBengaliContent, subtractCurrency, sumCurrency, timeDifferenceMinutes, timeToSeconds, toBanglaMonth, toBanglaNumber, toBanglaWeekday, toBengali, toOrdinal, toWords, truncateDecimals, validateBangla, validatePhone };
6072
+ export { BANGLA_DIGITS, BANGLA_MONTHS, BANGLA_SEASONS, BANGLA_WEEKDAYS, type BatchConversionResult, ENGLISH_DIGITS, type FormatNumberOptions, type OperatorInfo, type ParsedPhoneNumber, addCountryCode, addDays, addDaysToBengaliDate, addMinutesToTime, addTax, applyDiscount, batchFormatCurrency, batchFormatDates, batchFromBanglaNumber, batchParseDates, batchToBanglaMonth, batchToBanglaNumber, batchToBengali, batchToOrdinal, calculatePercentage, canParseBengaliDate, compareBengaliDates, compareCurrency, compareDates, compareMonths, compareOrdinals, compareTimes, convertToWordsAndDigits, countBengaliCharacters, countBengaliDigits, createOrdinalList, divideCurrency, extractBengaliChars, formatAndConvert, formatBengaliDate, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPhone, formatTime, formatToday, formatWithUnits, fromBanglaMonth, fromBanglaNumber, fromBanglaWeekday, fromBengali, getAbsoluteAmount, getAllBanglaWeekdays, getAllMonths, getAllOperatorCodes, getAllOperators, getAllSeasons, getBengaliDate, getBengaliDateDifference, getBengaliMonthDays, getBengaliMonthLengths, getBengaliPercentage, getCurrentBengaliDate, getCurrentSeason, getCurrentTimeBangla, getDaysBetween, getDaysDifference, getFirstDayOfBengaliMonth, getLastDayOfBengaliMonth, getMonthFromIndex, getMonthIndex, getMonthMapping, getMonthName, getMonthRange, getNextBanglaWeekday, getNextMonth, getNextOrdinal, getNextSeason, getNextWeekday, getOperator, getOrdinalSequence, getOrdinalType, getPreviousBanglaWeekday, getPreviousMonth, getPreviousOrdinal, getPreviousSeason, getPreviousWeekday, getRanking, getSeason, getSeasonByIndex, getSeasonFromMonth, getSeasonIndex, getSeasonInfo, getSeasonMonths, getSpecialOrdinals, getTimePeriod, getWeekdayName, hasBengaliConsonants, hasBengaliDigits, hasBengaliMonth, hasBengaliVowels, hasCountryCode, hasOnlyBengaliDigits, hasSeconds, hasSpecialOrdinal, hasTakaSymbol, hasTakaWord, isBanglaCurrency, isBanglaDigit, isBanglaOrdinal, isBanglaText, isBanglaWeekend, isBengaliDateInRange, isBengaliLeapYear, isCurrencyInRange, isDateInRange, isFuture, isInSpecialOrdinalRange, isMixedContent, isMonthInRange, isMonthInSeason, isNegativeAmount, isNumberInRange, isPast, isPositiveAmount, isPrimarilyBengali, isSameDay, isSameNumber, isSameSeason, isTimeInRange, isToday, isValidBanglaMonth, isValidBanglaNumber, isValidBanglaWeekday, isValidBengaliDate, isValidBengaliDateString, isValidBengaliDay, isValidBengaliMonth, isValidBengaliYear, isValidCurrency, isValidDate, isValidDateForSeason, isValidDateForWeekday, isValidMonth, isValidMonthNumber, isValidNumber, isValidNumberForOrdinal, isValidNumberForWords, isValidOperatorCode, isValidOrdinal, isValidPhoneFormat, isValidSeasonName, isValidTimeInput, isValidTimeString, isValidWeekdayNumber, isWeekend, isZeroAmount, multiplyCurrency, negateAmount, normalizePhoneNumber, normalizeWhitespace, parseAndConvertToBangla, parseAndConvertToMonth, parseAndConvertToOrdinal, parseAndFormat, parseAndFormatCurrency, parseCurrency, parseDate, parsePhoneNumber, parseTime, parseWeekdayInput, relativeDay, relativeTime, removeBengaliChars, removeCountryCode, roundCurrency, safeFormatCurrency, safeFormatDate, safeFormatPhone, safeFormatTime, safeFromBanglaMonth, safeFromBanglaNumber, safeFromBanglaWeekday, safeFromBengali, safeGetSeason, safeGetSeasonFromMonth, safeParseCurrency, safeParseDate, safeRelativeTime, safeToBanglaMonth, safeToBanglaNumber, safeToBanglaWeekday, safeToBengali, safeToOrdinal, sanitizeBanglaMonth, sanitizeBengaliDate, sanitizeBengaliText, sanitizeCurrencyInput, sanitizeDate, sanitizeMonthNumber, sanitizeNumberInput, sanitizeOrdinalInput, sanitizePhoneNumber, sanitizeTimeInput, sanitizeWeekdayInput, secondsToTime, splitAmount, splitBengaliContent, subtractCurrency, sumCurrency, timeDifferenceMinutes, timeToSeconds, toBanglaMonth, toBanglaNumber, toBanglaWeekday, toBengali, toOrdinal, toWords, truncateDecimals, validateBangla, validatePhone };
package/dist/index.d.ts CHANGED
@@ -2867,7 +2867,7 @@ declare function getDaysBetween(from: number, to: number): number;
2867
2867
  /**
2868
2868
  * Gets the Bangla season name from a Date object.
2869
2869
  *
2870
- * This function determines the current Bengali season based on the month of the given date.
2870
+ * This function determines the current Bengali season based on the Bengali month of the given date.
2871
2871
  * It follows the traditional Bengali calendar system which divides the year into six seasons.
2872
2872
  *
2873
2873
  * **Bengali Seasons (ঋতু):**
@@ -2884,22 +2884,22 @@ declare function getDaysBetween(from: number, to: number): number;
2884
2884
  * @example
2885
2885
  * Basic usage:
2886
2886
  * ```typescript
2887
- * const date1 = new Date('2024-01-15'); // Bengali month 1 (Boishakh)
2887
+ * const date1 = new Date('2024-04-15'); // Bengali month 1 (Boishakh)
2888
2888
  * getSeason(date1); // 'গ্রীষ্ম'
2889
2889
  *
2890
- * const date2 = new Date('2024-07-15'); // Bengali month 3-4 (Monsoon period)
2890
+ * const date2 = new Date('2024-07-15'); // Bengali month 4 (Monsoon period)
2891
2891
  * getSeason(date2); // 'বর্ষা'
2892
2892
  * ```
2893
2893
  *
2894
2894
  * @example
2895
2895
  * All seasons throughout the year:
2896
2896
  * ```typescript
2897
- * getSeason(new Date('2024-01-15')); // 'গ্রীষ্ম' (Summer)
2898
- * getSeason(new Date('2024-03-15')); // 'বর্ষা' (Monsoon)
2899
- * getSeason(new Date('2024-06-15')); // 'শরৎ' (Autumn)
2900
- * getSeason(new Date('2024-08-15')); // 'হেমন্ত' (Late Autumn)
2901
- * getSeason(new Date('2024-09-15')); // 'শীত' (Winter)
2902
- * getSeason(new Date('2024-11-15')); // 'বসন্ত' (Spring)
2897
+ * getSeason(new Date('2024-04-15')); // 'গ্রীষ্ম' (Summer - Boishakh)
2898
+ * getSeason(new Date('2024-07-15')); // 'বর্ষা' (Monsoon - Srabon)
2899
+ * getSeason(new Date('2024-10-15')); // 'শরৎ' (Autumn - Kartik)
2900
+ * getSeason(new Date('2024-11-15')); // 'হেমন্ত' (Late Autumn - Agrahayan)
2901
+ * getSeason(new Date('2024-01-07')); // 'শীত' (Winter - Poush)
2902
+ * getSeason(new Date('2024-03-15')); // 'বসন্ত' (Spring - Falgun)
2903
2903
  * ```
2904
2904
  *
2905
2905
  * @example
@@ -4385,7 +4385,7 @@ declare function toBengali(date: Date): {
4385
4385
  * // converted should equal original date
4386
4386
  * ```
4387
4387
  */
4388
- declare function fromBengali(bengaliDate: {
4388
+ declare function fromBengali(b: {
4389
4389
  year: number;
4390
4390
  month: number;
4391
4391
  day: number;
@@ -5177,6 +5177,10 @@ declare function batchToBengali(dates: Date[]): Array<{
5177
5177
  month: number;
5178
5178
  day: number;
5179
5179
  }>;
5180
+ /**
5181
+ * Gets the month lengths for a given Bengali year.
5182
+ */
5183
+ declare function getBengaliMonthLengths(year: number): number[];
5180
5184
 
5181
5185
  /**
5182
5186
  * Formats a Bangladeshi phone number with various formatting options.
@@ -6065,4 +6069,4 @@ declare function hasBengaliConsonants(text: string): boolean;
6065
6069
  */
6066
6070
  declare function hasBengaliVowels(text: string): boolean;
6067
6071
 
6068
- export { BANGLA_DIGITS, BANGLA_MONTHS, BANGLA_SEASONS, BANGLA_WEEKDAYS, type BatchConversionResult, ENGLISH_DIGITS, type FormatNumberOptions, type OperatorInfo, type ParsedPhoneNumber, addCountryCode, addDays, addDaysToBengaliDate, addMinutesToTime, addTax, applyDiscount, batchFormatCurrency, batchFormatDates, batchFromBanglaNumber, batchParseDates, batchToBanglaMonth, batchToBanglaNumber, batchToBengali, batchToOrdinal, calculatePercentage, canParseBengaliDate, compareBengaliDates, compareCurrency, compareDates, compareMonths, compareOrdinals, compareTimes, convertToWordsAndDigits, countBengaliCharacters, countBengaliDigits, createOrdinalList, divideCurrency, extractBengaliChars, formatAndConvert, formatBengaliDate, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPhone, formatTime, formatToday, formatWithUnits, fromBanglaMonth, fromBanglaNumber, fromBanglaWeekday, fromBengali, getAbsoluteAmount, getAllBanglaWeekdays, getAllMonths, getAllOperatorCodes, getAllOperators, getAllSeasons, getBengaliDate, getBengaliDateDifference, getBengaliMonthDays, getBengaliPercentage, getCurrentBengaliDate, getCurrentSeason, getCurrentTimeBangla, getDaysBetween, getDaysDifference, getFirstDayOfBengaliMonth, getLastDayOfBengaliMonth, getMonthFromIndex, getMonthIndex, getMonthMapping, getMonthName, getMonthRange, getNextBanglaWeekday, getNextMonth, getNextOrdinal, getNextSeason, getNextWeekday, getOperator, getOrdinalSequence, getOrdinalType, getPreviousBanglaWeekday, getPreviousMonth, getPreviousOrdinal, getPreviousSeason, getPreviousWeekday, getRanking, getSeason, getSeasonByIndex, getSeasonFromMonth, getSeasonIndex, getSeasonInfo, getSeasonMonths, getSpecialOrdinals, getTimePeriod, getWeekdayName, hasBengaliConsonants, hasBengaliDigits, hasBengaliMonth, hasBengaliVowels, hasCountryCode, hasOnlyBengaliDigits, hasSeconds, hasSpecialOrdinal, hasTakaSymbol, hasTakaWord, isBanglaCurrency, isBanglaDigit, isBanglaOrdinal, isBanglaText, isBanglaWeekend, isBengaliDateInRange, isBengaliLeapYear, isCurrencyInRange, isDateInRange, isFuture, isInSpecialOrdinalRange, isMixedContent, isMonthInRange, isMonthInSeason, isNegativeAmount, isNumberInRange, isPast, isPositiveAmount, isPrimarilyBengali, isSameDay, isSameNumber, isSameSeason, isTimeInRange, isToday, isValidBanglaMonth, isValidBanglaNumber, isValidBanglaWeekday, isValidBengaliDate, isValidBengaliDateString, isValidBengaliDay, isValidBengaliMonth, isValidBengaliYear, isValidCurrency, isValidDate, isValidDateForSeason, isValidDateForWeekday, isValidMonth, isValidMonthNumber, isValidNumber, isValidNumberForOrdinal, isValidNumberForWords, isValidOperatorCode, isValidOrdinal, isValidPhoneFormat, isValidSeasonName, isValidTimeInput, isValidTimeString, isValidWeekdayNumber, isWeekend, isZeroAmount, multiplyCurrency, negateAmount, normalizePhoneNumber, normalizeWhitespace, parseAndConvertToBangla, parseAndConvertToMonth, parseAndConvertToOrdinal, parseAndFormat, parseAndFormatCurrency, parseCurrency, parseDate, parsePhoneNumber, parseTime, parseWeekdayInput, relativeDay, relativeTime, removeBengaliChars, removeCountryCode, roundCurrency, safeFormatCurrency, safeFormatDate, safeFormatPhone, safeFormatTime, safeFromBanglaMonth, safeFromBanglaNumber, safeFromBanglaWeekday, safeFromBengali, safeGetSeason, safeGetSeasonFromMonth, safeParseCurrency, safeParseDate, safeRelativeTime, safeToBanglaMonth, safeToBanglaNumber, safeToBanglaWeekday, safeToBengali, safeToOrdinal, sanitizeBanglaMonth, sanitizeBengaliDate, sanitizeBengaliText, sanitizeCurrencyInput, sanitizeDate, sanitizeMonthNumber, sanitizeNumberInput, sanitizeOrdinalInput, sanitizePhoneNumber, sanitizeTimeInput, sanitizeWeekdayInput, secondsToTime, splitAmount, splitBengaliContent, subtractCurrency, sumCurrency, timeDifferenceMinutes, timeToSeconds, toBanglaMonth, toBanglaNumber, toBanglaWeekday, toBengali, toOrdinal, toWords, truncateDecimals, validateBangla, validatePhone };
6072
+ export { BANGLA_DIGITS, BANGLA_MONTHS, BANGLA_SEASONS, BANGLA_WEEKDAYS, type BatchConversionResult, ENGLISH_DIGITS, type FormatNumberOptions, type OperatorInfo, type ParsedPhoneNumber, addCountryCode, addDays, addDaysToBengaliDate, addMinutesToTime, addTax, applyDiscount, batchFormatCurrency, batchFormatDates, batchFromBanglaNumber, batchParseDates, batchToBanglaMonth, batchToBanglaNumber, batchToBengali, batchToOrdinal, calculatePercentage, canParseBengaliDate, compareBengaliDates, compareCurrency, compareDates, compareMonths, compareOrdinals, compareTimes, convertToWordsAndDigits, countBengaliCharacters, countBengaliDigits, createOrdinalList, divideCurrency, extractBengaliChars, formatAndConvert, formatBengaliDate, formatCurrency, formatDate, formatNumber, formatOrdinal, formatPhone, formatTime, formatToday, formatWithUnits, fromBanglaMonth, fromBanglaNumber, fromBanglaWeekday, fromBengali, getAbsoluteAmount, getAllBanglaWeekdays, getAllMonths, getAllOperatorCodes, getAllOperators, getAllSeasons, getBengaliDate, getBengaliDateDifference, getBengaliMonthDays, getBengaliMonthLengths, getBengaliPercentage, getCurrentBengaliDate, getCurrentSeason, getCurrentTimeBangla, getDaysBetween, getDaysDifference, getFirstDayOfBengaliMonth, getLastDayOfBengaliMonth, getMonthFromIndex, getMonthIndex, getMonthMapping, getMonthName, getMonthRange, getNextBanglaWeekday, getNextMonth, getNextOrdinal, getNextSeason, getNextWeekday, getOperator, getOrdinalSequence, getOrdinalType, getPreviousBanglaWeekday, getPreviousMonth, getPreviousOrdinal, getPreviousSeason, getPreviousWeekday, getRanking, getSeason, getSeasonByIndex, getSeasonFromMonth, getSeasonIndex, getSeasonInfo, getSeasonMonths, getSpecialOrdinals, getTimePeriod, getWeekdayName, hasBengaliConsonants, hasBengaliDigits, hasBengaliMonth, hasBengaliVowels, hasCountryCode, hasOnlyBengaliDigits, hasSeconds, hasSpecialOrdinal, hasTakaSymbol, hasTakaWord, isBanglaCurrency, isBanglaDigit, isBanglaOrdinal, isBanglaText, isBanglaWeekend, isBengaliDateInRange, isBengaliLeapYear, isCurrencyInRange, isDateInRange, isFuture, isInSpecialOrdinalRange, isMixedContent, isMonthInRange, isMonthInSeason, isNegativeAmount, isNumberInRange, isPast, isPositiveAmount, isPrimarilyBengali, isSameDay, isSameNumber, isSameSeason, isTimeInRange, isToday, isValidBanglaMonth, isValidBanglaNumber, isValidBanglaWeekday, isValidBengaliDate, isValidBengaliDateString, isValidBengaliDay, isValidBengaliMonth, isValidBengaliYear, isValidCurrency, isValidDate, isValidDateForSeason, isValidDateForWeekday, isValidMonth, isValidMonthNumber, isValidNumber, isValidNumberForOrdinal, isValidNumberForWords, isValidOperatorCode, isValidOrdinal, isValidPhoneFormat, isValidSeasonName, isValidTimeInput, isValidTimeString, isValidWeekdayNumber, isWeekend, isZeroAmount, multiplyCurrency, negateAmount, normalizePhoneNumber, normalizeWhitespace, parseAndConvertToBangla, parseAndConvertToMonth, parseAndConvertToOrdinal, parseAndFormat, parseAndFormatCurrency, parseCurrency, parseDate, parsePhoneNumber, parseTime, parseWeekdayInput, relativeDay, relativeTime, removeBengaliChars, removeCountryCode, roundCurrency, safeFormatCurrency, safeFormatDate, safeFormatPhone, safeFormatTime, safeFromBanglaMonth, safeFromBanglaNumber, safeFromBanglaWeekday, safeFromBengali, safeGetSeason, safeGetSeasonFromMonth, safeParseCurrency, safeParseDate, safeRelativeTime, safeToBanglaMonth, safeToBanglaNumber, safeToBanglaWeekday, safeToBengali, safeToOrdinal, sanitizeBanglaMonth, sanitizeBengaliDate, sanitizeBengaliText, sanitizeCurrencyInput, sanitizeDate, sanitizeMonthNumber, sanitizeNumberInput, sanitizeOrdinalInput, sanitizePhoneNumber, sanitizeTimeInput, sanitizeWeekdayInput, secondsToTime, splitAmount, splitBengaliContent, subtractCurrency, sumCurrency, timeDifferenceMinutes, timeToSeconds, toBanglaMonth, toBanglaNumber, toBanglaWeekday, toBengali, toOrdinal, toWords, truncateDecimals, validateBangla, validatePhone };
package/dist/index.js CHANGED
@@ -1,2 +1,2 @@
1
- var Er=Object.defineProperty;var n=(r,e)=>Er(r,"name",{value:e,configurable:!0});var C=["\u09E6","\u09E7","\u09E8","\u09E9","\u09EA","\u09EB","\u09EC","\u09ED","\u09EE","\u09EF"],F=["0","1","2","3","4","5","6","7","8","9"];var E=["\u09AC\u09C8\u09B6\u09BE\u0996","\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0","\u0986\u09B7\u09BE\u09A2\u09BC","\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3","\u09AD\u09BE\u09A6\u09CD\u09B0","\u0986\u09B6\u09CD\u09AC\u09BF\u09A8","\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995","\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3","\u09AA\u09CC\u09B7","\u09AE\u09BE\u0998","\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8","\u099A\u09C8\u09A4\u09CD\u09B0"];var $=["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"];var b=["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"];function f(r){if(r==null)throw new TypeError("Invalid input");let e=String(r).trim();if(e==="")throw new Error("Empty input");if(/[eE]/.test(e))throw new Error("Scientific notation not supported");if(typeof r=="number"){if(!Number.isFinite(r))throw new TypeError("Input must be a finite number");if(Number.isInteger(r)&&Math.abs(r)>=1e5){let s=Math.abs(r),a=Math.log10(s);if(Number.isInteger(a)&&a>=5)throw new Error("Scientific notation not supported")}if(Number.isInteger(r)&&!Number.isSafeInteger(r))throw new TypeError("Input must be a safe integer")}if(/[০-৯]/.test(e))throw new Error("Input already contains Bangla digits");let t=!1,o=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];if(a==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(a==="-"){if(s!==0)throw new Error("Invalid minus position");i+="-";continue}let u=F.indexOf(a);if(u!==-1){o=!0,i+=C[u];continue}throw new Error(`Invalid character in number: ${a}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}return i}n(f,"toBanglaNumber");function D(r){if(typeof r!="string")throw new TypeError("Input must be a string");let e=r.trim();if(e==="")throw new Error("Empty input");let t=!1,o=!1,i="";for(let a=0;a<e.length;a++){let u=e[a];if(u==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(u==="-"){if(a!==0)throw new Error("Invalid minus position");i+="-";continue}let l=C.indexOf(u);if(l!==-1){o=!0,i+=F[l];continue}throw new Error(`Invalid Bangla digit: ${u}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}let s=Number(i);if(!Number.isFinite(s))throw new TypeError("Failed to parse Bangla number");return s}n(D,"fromBanglaNumber");function _(r){if(r===0)return"\u09B6\u09C2\u09A8\u09CD\u09AF";if(r<0)return"\u098B\u09A3\u09BE\u09A4\u09CD\u09AE\u0995 "+_(-r);if(r<100)return H(r);if(r<1e3)return v(r);if(r<1e5)return Q(r);if(r<1e7)return rr(r);if(r<1e9)return er(r);if(r<1e11)return Mr(r);throw new Error("Number too large to convert to words")}n(_,"toWords");function H(r){let e=["","\u098F\u0995","\u09A6\u09C1\u0987","\u09A4\u09BF\u09A8","\u099A\u09BE\u09B0","\u09AA\u09BE\u0981\u099A","\u099B\u09AF\u09BC","\u09B8\u09BE\u09A4","\u0986\u099F","\u09A8\u09AF\u09BC","\u09A6\u09B6","\u098F\u0997\u09BE\u09B0\u09CB","\u09AC\u09BE\u09B0\u09CB","\u09A4\u09C7\u09B0\u09CB","\u099A\u09CC\u09A6\u09CD\u09A6","\u09AA\u09A8\u09C7\u09B0\u09CB","\u09B7\u09CB\u09B2","\u09B8\u09A4\u09C7\u09B0\u09CB","\u0986\u09A0\u09BE\u09B0\u09CB","\u098A\u09A8\u09BF\u09B6","\u09AC\u09BF\u09B6"],t=["","","\u0995\u09C1\u09A1\u09BC\u09BF","\u09A4\u09BF\u09B0\u09BF\u09B6","\u099A\u09B2\u09CD\u09B2\u09BF\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6","\u09B7\u09BE\u099F","\u09B8\u09A4\u09CD\u09A4\u09B0","\u0986\u09B6\u09BF","\u09A8\u09AC\u09CD\u09AC\u0987"];if(r===0)return"";if(r<20)return e[r];if(r===23)return"\u09A4\u09C7\u0987\u09B6";if(r===34)return"\u099A\u09CC\u09A4\u09CD\u09B0\u09BF\u09B6";if(r===56)return"\u099B\u09BE\u09AA\u09CD\u09AA\u09BE\u09A8\u09CD\u09A8";let o=Math.floor(r/10),i=r%10;return i===0?t[o]:t[o]+" "+e[i]}n(H,"convertBelowHundred");function v(r){let e=Math.floor(r/100),t=r%100,o="";return e>0&&(e===1?o="\u098F\u0995\u09B6\u09A4":o=H(e)+"\u09B6\u09A4"),t>0&&(o+=(o?" ":"")+H(t)),o}n(v,"convertBelowThousand");function Q(r){let e=Math.floor(r/1e3),t=r%1e3,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0":o=v(e)+" \u09B9\u09BE\u099C\u09BE\u09B0"),t>0&&(o+=(o?" ":"")+v(t)),o}n(Q,"convertBelowLakh");function rr(r){let e=Math.floor(r/1e5),t=r%1e5,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B2\u0995\u09CD\u09B7":o=v(e)+" \u09B2\u0995\u09CD\u09B7"),t>0&&(o+=(o?" ":"")+Q(t)),o}n(rr,"convertBelowCrore");function er(r){let e=Math.floor(r/1e7),t=r%1e7,o="";return e>0&&(e===1?o="\u098F\u0995 \u0995\u09CB\u099F\u09BF":o=v(e)+" \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+rr(t)),o}n(er,"convertBelowArab");function Mr(r){let e=Math.floor(r/1e9),t=r%1e9,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF":o=v(e)+" \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+er(t)),o}n(Mr,"convertBelowKharab");function de(r,e={}){let{precision:t=2,useBanglaDigits:o=!0}=e;if(r===0)return o?"\u09E6":"0";let i=Math.abs(r),s=r<0?"-":"",a,u;if(i>=1e7)a=i/1e7,u="\u0995\u09CB\u099F\u09BF";else if(i>=1e5)a=i/1e5,u="\u09B2\u0995\u09CD\u09B7";else if(i>=1e3)a=i/1e3,u="\u09B9\u09BE\u099C\u09BE\u09B0";else{let g=o?f(i):i.toString();return s+g}let l=Number(a.toFixed(t)),m=o?f(l):l.toString();return s+m+" "+u}n(de,"formatWithUnits");function nr(r,e={}){let{useBanglaDigits:t=!0,separator:o=","}=e,i=typeof r=="string"?r:r.toString(),[s,a]=i.split("."),u=s;t&&(u=f(s));let l=Sr(u,o);if(a!==void 0){let m=t?f(a):a;return`${l}.${m}`}return l}n(nr,"formatNumber");function Sr(r,e){let t=r.startsWith("-"),o=t?r.slice(1):r;if(o.length<=3)return r;let s=o.slice(-3),a=o.slice(0,-3),u=[];for(let m=a.length;m>0;m-=2){let g=Math.max(0,m-2);u.unshift(a.slice(g,m))}let l=`${u.join(e)}${e}${s}`;return t?`-${l}`:l}n(Sr,"formatIntegerPart");function Ne(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if(C.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(Ne,"isValidBanglaNumber");function Ie(r){if(r==null)return!1;let e=String(r).trim();if(e===""||/[eE]/.test(e))return!1;if(typeof r=="number"){if(!Number.isFinite(r)||Number.isInteger(r)&&!Number.isSafeInteger(r))return!1;if(Number.isInteger(r)&&Math.abs(r)>=1e5){let i=Math.abs(r),s=Math.log10(i);if(Number.isInteger(s)&&s>=5)return!1}}if(/[০-৯]/.test(e))return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if(F.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(Ie,"isValidNumber");function Ee(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=-99999999999&&r<=99999999999}n(Ee,"isValidNumberForWords");function Me(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>0}n(Me,"isValidNumberForOrdinal");function tr(r){if(typeof r!="string")return"";let e=r.trim();return e=e.replace(/,/g,""),e=e.replace(/৳/g,""),e.trim()}n(tr,"sanitizeNumberInput");function ve(r){let e=[],t=[];for(let o of r)try{let i=f(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(ve,"batchToBanglaNumber");function Oe(r){let e=[],t=[];for(let o of r)try{let i=D(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(Oe,"batchFromBanglaNumber");function Pe(r,e=""){try{return f(r)}catch{return e}}n(Pe,"safeToBanglaNumber");function Le(r,e=0){try{return D(r)}catch{return e}}n(Le,"safeFromBanglaNumber");function Ye(r){let e=tr(r);return f(e)}n(Ye,"parseAndConvertToBangla");function Ge(r,e=!0,t=","){return nr(r,{useBanglaDigits:e,separator:t})}n(Ge,"formatAndConvert");function ke(r){return{words:_(r),digits:f(r)}}n(ke,"convertToWordsAndDigits");function Ve(r,e,t){return Number.isFinite(r)?r>=e&&r<=t:!1}n(Ve,"isNumberInRange");function ze(r,e=2){let t=Math.pow(10,e);return Math.trunc(r*t)/t}n(ze,"truncateDecimals");function G(r,e={}){let{includeSymbol:t=!0,includeWord:o=!1}=e,i=typeof r=="string"?parseFloat(r):r;if(Number.isNaN(i))throw new Error("Invalid amount");let s=f(i.toFixed(2)),a=[];return t&&a.push("\u09F3"),a.push(s),o&&a.push("\u099F\u09BE\u0995\u09BE"),a.join(" ")}n(G,"formatCurrency");function U(r){let e=r.replace(/৳/g,"").replace(/টাকা/g,"").trim();return e=e.replace(/\s+/g,""),D(e)}n(U,"parseCurrency");function c(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)}n(c,"isValidCurrency");function Tr(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return e.includes("\u09F3")||e.includes("\u099F\u09BE\u0995\u09BE")?!0:/[০-৯]/.test(e)}n(Tr,"isBanglaCurrency");function sn(r){return c(r)&&r>0}n(sn,"isPositiveAmount");function an(r){return c(r)&&r<0}n(an,"isNegativeAmount");function un(r){return c(r)&&r===0}n(un,"isZeroAmount");function or(r){if(typeof r=="number")return isNaN(r)||!isFinite(r)?null:r;if(typeof r=="string"){let e=r.trim();if(e==="")return null;if(Tr(e))return e;let t=parseFloat(e);return isNaN(t)?null:t}return null}n(or,"sanitizeCurrencyInput");function fn(r,e,t){return!c(r)||!c(e)||!c(t)||e>t?!1:r>=e&&r<=t}n(fn,"isCurrencyInRange");function mn(r){return typeof r!="string"?!1:r.includes("\u09F3")}n(mn,"hasTakaSymbol");function ln(r){return typeof r!="string"?!1:r.includes("\u099F\u09BE\u0995\u09BE")}n(ln,"hasTakaWord");function hn(r,e={},t=""){try{let o=typeof r=="string"?parseFloat(r):r;return c(o)?G(r,e):t}catch{return t}}n(hn,"safeFormatCurrency");function xn(r,e=0){try{let t=U(r);return c(t)?t:e}catch{return e}}n(xn,"safeParseCurrency");function yn(r,e={}){return r.filter(t=>c(t)).map(t=>G(t,e))}n(yn,"batchFormatCurrency");function M(r,e=2){if(!c(r))throw new Error("Invalid currency amount");let t=Math.pow(10,e);return Math.round(r*t)/t}n(M,"roundCurrency");function Ar(r){let t=r.filter(o=>c(o)).reduce((o,i)=>o+i,0);return M(t,2)}n(Ar,"sumCurrency");function ir(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");return M(r-e,2)}n(ir,"subtractCurrency");function wn(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or factor");return M(r*e,2)}n(wn,"multiplyCurrency");function Wr(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or divisor");if(e===0)throw new Error("Cannot divide by zero");return M(r/e,2)}n(Wr,"divideCurrency");function sr(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or percentage");return M(r*e/100,2)}n(sr,"calculatePercentage");function Dn(r,e){let t=sr(r,e);return ir(r,t)}n(Dn,"applyDiscount");function Bn(r,e){let t=sr(r,e);return M(r+t,2)}n(Bn,"addTax");function Nn(r,e){if(!c(r))throw new Error("Invalid currency amount");if(!Number.isInteger(e)||e<1)throw new Error("Parts must be a positive integer");let t=Wr(r,e),o=Array(e-1).fill(t),i=Ar(o),s=ir(r,i);return o.push(s),o}n(Nn,"splitAmount");function In(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");let t=M(r,2),o=M(e,2);return t<o?-1:t>o?1:0}n(In,"compareCurrency");function En(r){if(!c(r))throw new Error("Invalid currency amount");return Math.abs(r)}n(En,"getAbsoluteAmount");function Mn(r){if(!c(r))throw new Error("Invalid currency amount");return-r}n(Mn,"negateAmount");function Sn(r,e={}){let t=or(r);if(t===null)throw new Error("Invalid currency input");if(typeof t=="string"){let o=U(t);return G(o,e)}return G(t,e)}n(Sn,"parseAndFormatCurrency");function h(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return E[r-1]}n(h,"toBanglaMonth");function B(r){let e=E.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla month name: ${r}`);return e+1}n(B,"fromBanglaMonth");function ar(r){let e=r.getMonth()+1;return h(e)}n(ar,"getMonthName");function p(r){return r instanceof Date&&!isNaN(r.getTime())}n(p,"isValidDate");function ur(r){if(typeof r!="string"||r.trim()==="")return!1;let e=r.trim().replace(/\s+/g," ");if(/^\d{4}[\-\/]\d{1,2}[\-\/]\d{1,2}$/.test(e))return!1;let t=/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/,o=/^(\d{1,2}|[০-৯]{1,2})[\/\-](\d{1,2}|[০-৯]{1,2})[\/\-](\d{2,4}|[০-৯]{2,4})$/;return t.test(e)||o.test(e)}n(ur,"isValidBengaliDateString");function Hn(r){return typeof r!="string"?!1:/[০-৯]/.test(r)}n(Hn,"hasBengaliDigits");function _n(r){return typeof r!="string"?!1:/(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)/.test(r)}n(_n,"hasBengaliMonth");function Un(r){return p(r)?r:null}n(Un,"sanitizeDate");function I(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(I,"isValidMonthNumber");function N(r){if(typeof r!="string")return!1;let e=r.trim();return E.includes(e)}n(N,"isValidBanglaMonth");function fr(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1||e>12?null:e}n(fr,"sanitizeMonthNumber");function Zn(r){if(typeof r!="string")return null;let e=r.trim();return e===""||!N(e)?null:e}n(Zn,"sanitizeBanglaMonth");function ot(r,e=""){try{return I(r)?h(r):e}catch{return e}}n(ot,"safeToBanglaMonth");function it(r,e=0){try{return N(r)?B(r):e}catch{return e}}n(it,"safeFromBanglaMonth");function st(){return[...E]}n(st,"getAllMonths");function at(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===12?1:r+1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===12?1:e+1;return h(t)}}n(at,"getNextMonth");function ut(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===1?12:r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===1?12:e-1;return h(t)}}n(ut,"getPreviousMonth");function Cr(r,e){let t=typeof r=="number",o,i;if(t){if(!I(r)||!I(e))throw new Error("Invalid month numbers");o=r,i=e}else{if(!N(r)||!N(e))throw new Error("Invalid Bangla month names");o=B(r),i=B(e)}let s=[],a=o;for(;t?s.push(a):s.push(h(a)),!(a===i||(a=a===12?1:a+1,s.length>12)););return s}n(Cr,"getMonthRange");function ft(r,e,t){try{return Cr(e,t).includes(r)}catch{return!1}}n(ft,"isMonthInRange");function mt(r,e){let t,o;if(typeof r=="number"){if(!I(r))throw new Error("Invalid month1");t=r}else{if(!N(r))throw new Error("Invalid month1");t=B(r)}if(typeof e=="number"){if(!I(e))throw new Error("Invalid month2");o=e}else{if(!N(e))throw new Error("Invalid month2");o=B(e)}return t<o?-1:t>o?1:0}n(mt,"compareMonths");function lt(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");return B(r)-1}}n(lt,"getMonthIndex");function ct(r){if(!Number.isInteger(r)||r<0||r>11)throw new Error("Index must be between 0 and 11");return r+1}n(ct,"getMonthFromIndex");function gt(r){if(typeof r=="string"&&N(r.trim()))return r.trim();let e=fr(r);if(e===null)throw new Error("Invalid month input");return h(e)}n(gt,"parseAndConvertToMonth");function pt(r){return r.filter(e=>I(e)).map(e=>h(e))}n(pt,"batchToBanglaMonth");function bt(){let r={};for(let e=1;e<=12;e++)r[e]=h(e);return r}n(bt,"getMonthMapping");function O(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return $[r]}n(O,"toBanglaWeekday");function V(r){let e=$.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla weekday name: ${r}`);return e}n(V,"fromBanglaWeekday");function mr(r){let e=r.getDay();return O(e)}n(mr,"getWeekdayName");function vt(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=0&&r<=6}n(vt,"isValidWeekdayNumber");function Ot(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:$.includes(e)}n(Ot,"isValidBanglaWeekday");function Pt(r){return r instanceof Date?!isNaN(r.getTime()):!1}n(Pt,"isValidDateForWeekday");function lr(r){return typeof r!="string"?"":r.trim()}n(lr,"sanitizeWeekdayInput");function Fr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return r===5||r===6}n(Fr,"isWeekend");function zt(r){let e=V(r);return Fr(e)}n(zt,"isBanglaWeekend");function $r(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r+1)%7}n($r,"getNextWeekday");function vr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r-1+7)%7}n(vr,"getPreviousWeekday");function Rt(r){let e=$r(r);return O(e)}n(Rt,"getNextBanglaWeekday");function Ht(r){let e=vr(r);return O(e)}n(Ht,"getPreviousBanglaWeekday");function _t(r){let e=lr(r);return V(e)}n(_t,"parseWeekdayInput");function Ut(r,e=""){try{return O(r)}catch{return e}}n(Ut,"safeToBanglaWeekday");function jt(r,e=-1){try{return V(r)}catch{return e}}n(jt,"safeFromBanglaWeekday");function Kt(){return["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]}n(Kt,"getAllBanglaWeekdays");function qt(r,e){if(r<0||r>6||e<0||e>6)throw new Error("Weekday numbers must be between 0 and 6");return(e-r+7)%7}n(qt,"getDaysBetween");function j(r,e={}){let{includeWeekday:t=!1,includeYear:o=!0,format:i="long"}=e,s=[];if(t){let m=mr(r);s.push(m)}let a=f(r.getDate()),u=ar(r),l=o?f(r.getFullYear()):null;return i==="short"?s.push(`${a} ${u}`):s.push(a,u),l&&s.push(l),s.join(" ")}n(j,"formatDate");function cr(r){let e=r.trim().replace(/\s+/g," "),t=e.match(/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/);if(t){let i=t[1],s=t[2],a=t[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=B(s),m=a?/[০-৯]/.test(a)?D(a):parseInt(a,10):new Date().getFullYear();return new Date(m,l-1,u)}let o=e.match(/^(\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)$/);if(o){let i=o[1],s=o[2],a=o[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=/[০-৯]/.test(s)?D(s):parseInt(s,10),m=/[০-৯]/.test(a)?D(a):parseInt(a,10);return new Date(m,l-1,u)}throw new Error(`Unable to parse date string: ${r}`)}n(cr,"parseDate");function Or(r,e,t=""){try{return p(r)?j(r,e):t}catch{return t}}n(Or,"safeFormatDate");function Pr(r,e){try{return cr(r)}catch{return e||new Date}}n(Pr,"safeParseDate");function ho(r){return j(new Date,r)}n(ho,"formatToday");function xo(r,e){return r.map(t=>Or(t,e))}n(xo,"batchFormatDates");function yo(r){return r.map(e=>Pr(e))}n(yo,"batchParseDates");function wo(r){return ur(r)}n(wo,"canParseBengaliDate");function gr(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=r.getTime(),o=e.getTime();return t<o?-1:t>o?1:0}n(gr,"compareDates");function Do(r){if(!p(r))return!1;let e=new Date;return r.getDate()===e.getDate()&&r.getMonth()===e.getMonth()&&r.getFullYear()===e.getFullYear()}n(Do,"isToday");function Bo(r){return p(r)?r.getTime()<Date.now():!1}n(Bo,"isPast");function No(r){return p(r)?r.getTime()>Date.now():!1}n(No,"isFuture");function Io(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=e.getTime()-r.getTime();return Math.floor(t/(1e3*60*60*24))}n(Io,"getDaysDifference");function Eo(r,e){if(!p(r))throw new Error("Invalid date");let t=new Date(r);return t.setDate(t.getDate()+e),t}n(Eo,"addDays");function Mo(r,e,t){return!p(r)||!p(e)||!p(t)?!1:gr(r,e)>=0&&gr(r,t)<=0}n(Mo,"isDateInRange");function z(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return r>=1&&r<=2?b[0]:r>=3&&r<=5?b[1]:r>=6&&r<=7?b[2]:r===8?b[3]:r>=9&&r<=10?b[4]:b[5]}n(z,"getSeasonFromMonth");function k(r){let e=r.getMonth()+1;return z(e)}n(k,"getSeason");function Vo(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=1&&r<=12}n(Vo,"isValidMonth");function zo(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:b.includes(e)}n(zo,"isValidSeasonName");function Ro(r){return r instanceof Date?!isNaN(r.getTime()):!1}n(Ro,"isValidDateForSeason");function qo(){return["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"]}n(qo,"getAllSeasons");function pr(r){let t={\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE:[1,2],\u09AC\u09B0\u09CD\u09B7\u09BE:[3,4,5],"\u09B6\u09B0\u09CE":[6,7],\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4:[8],\u09B6\u09C0\u09A4:[9,10],\u09AC\u09B8\u09A8\u09CD\u09A4:[11,12]}[r];if(!t)throw new Error(`Invalid season name: ${r}`);return t}n(pr,"getSeasonMonths");function K(r){return b.indexOf(r)}n(K,"getSeasonIndex");function Zo(r){if(r<0||r>5)throw new Error("Season index must be between 0 and 5");return b[r]}n(Zo,"getSeasonByIndex");function Xo(r,e){if(r<1||r>12)return!1;try{return pr(e).includes(r)}catch{return!1}}n(Xo,"isMonthInSeason");function Jo(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e+1)%6;return b[t]}n(Jo,"getNextSeason");function Qo(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e-1+6)%6;return b[t]}n(Qo,"getPreviousSeason");function ri(r,e=""){if(!(r instanceof Date)||isNaN(r.getTime()))return e;try{return k(r)}catch{return e}}n(ri,"safeGetSeason");function ei(r,e=""){try{return z(r)}catch{return e}}n(ei,"safeGetSeasonFromMonth");function ni(){return k(new Date)}n(ni,"getCurrentSeason");function ti(r,e){let t=k(r),o=k(e);return t===o}n(ti,"isSameSeason");function oi(r){let e=K(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=pr(r),o={1:"\u09AC\u09C8\u09B6\u09BE\u0996",2:"\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0",3:"\u0986\u09B7\u09BE\u09A2\u09BC",4:"\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3",5:"\u09AD\u09BE\u09A6\u09CD\u09B0",6:"\u0986\u09B6\u09CD\u09AC\u09BF\u09A8",7:"\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995",8:"\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3",9:"\u09AA\u09CC\u09B7",10:"\u09AE\u09BE\u0998",11:"\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8",12:"\u099A\u09C8\u09A4\u09CD\u09B0"},i=t.map(s=>o[s]);return{name:r,months:t,index:e,monthNames:i}}n(oi,"getSeasonInfo");function x(r){if(r<1)throw new Error("Number must be greater than 0");let e={1:"\u09AA\u09CD\u09B0\u09A5\u09AE",2:"\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC",3:"\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC",4:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A5",5:"\u09AA\u099E\u09CD\u099A\u09AE",6:"\u09B7\u09B7\u09CD\u09A0",7:"\u09B8\u09AA\u09CD\u09A4\u09AE",8:"\u0985\u09B7\u09CD\u099F\u09AE",9:"\u09A8\u09AC\u09AE",10:"\u09A6\u09B6\u09AE",11:"\u098F\u0995\u09BE\u09A6\u09B6",12:"\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6",13:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6",14:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6",15:"\u09AA\u099E\u09CD\u099A\u09A6\u09B6",16:"\u09B7\u09CB\u09A1\u09BC\u09B6",17:"\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6",18:"\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6",19:"\u098A\u09A8\u09AC\u09BF\u0982\u09B6",20:"\u09AC\u09BF\u0982\u09B6",21:"\u098F\u0995\u09AC\u09BF\u0982\u09B6",22:"\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6",23:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6",24:"\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6",25:"\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6",30:"\u09A4\u09CD\u09B0\u09BF\u0982\u09B6",40:"\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6",50:"\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE",60:"\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE",70:"\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE",80:"\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE",90:"\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE",100:"\u09B6\u09A4\u09A4\u09AE"};return e[r]?e[r]:`${f(r)}\u09A4\u09AE`}n(x,"toOrdinal");function d(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)&&Number.isInteger(r)&&r>=1}n(d,"isValidOrdinal");function bi(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return["\u09AA\u09CD\u09B0\u09A5\u09AE","\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC","\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC","\u099A\u09A4\u09C1\u09B0\u09CD\u09A5","\u09AA\u099E\u09CD\u099A\u09AE","\u09B7\u09B7\u09CD\u09A0","\u09B8\u09AA\u09CD\u09A4\u09AE","\u0985\u09B7\u09CD\u099F\u09AE","\u09A8\u09AC\u09AE","\u09A6\u09B6\u09AE","\u098F\u0995\u09BE\u09A6\u09B6","\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6","\u09AA\u099E\u09CD\u099A\u09A6\u09B6","\u09B7\u09CB\u09A1\u09BC\u09B6","\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6","\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6","\u098A\u09A8\u09AC\u09BF\u0982\u09B6","\u09AC\u09BF\u0982\u09B6","\u098F\u0995\u09AC\u09BF\u0982\u09B6","\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09BF\u0982\u09B6","\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE","\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE","\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE","\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE","\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE","\u09B6\u09A4\u09A4\u09AE"].includes(e)?!0:e.endsWith("\u09A4\u09AE")}n(bi,"isBanglaOrdinal");function di(r){return d(r)?[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].includes(r):!1}n(di,"hasSpecialOrdinal");function br(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1?null:e}n(br,"sanitizeOrdinalInput");function hi(r){return d(r)&&r>=1&&r<=100}n(hi,"isInSpecialOrdinalRange");function Bi(r,e=""){try{return d(r)?x(r):e}catch{return e}}n(Bi,"safeToOrdinal");function Ni(r){return r.filter(e=>d(e)).map(e=>x(e))}n(Ni,"batchToOrdinal");function Ii(r){let e=br(r);if(e===null)throw new Error("Invalid input for ordinal conversion");return x(e)}n(Ii,"parseAndConvertToOrdinal");function Ei(){return[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].map(e=>({number:e,ordinal:x(e)}))}n(Ei,"getSpecialOrdinals");function Mi(r,e){if(!d(r)||!d(e))throw new Error("Start and end must be positive integers");if(r>e)throw new Error("Start must be less than or equal to end");let t=[];for(let o=r;o<=e;o++)t.push(x(o));return t}n(Mi,"getOrdinalSequence");function Si(r,e={}){let{separator:t=" ",showNumber:o=!0}=e,i=x(r);return o?`${r}${t}${i}`:i}n(Si,"formatOrdinal");function Ti(r){if(!d(r))throw new Error("Number must be a valid positive integer");let e=x(r);return e.endsWith("\u09A4\u09AE")&&/[০-৯]/.test(e)?"suffix":"special"}n(Ti,"getOrdinalType");function Ai(r,e){let t=x(r);return e?`${t} ${e}`:t}n(Ai,"getRanking");function Wi(r,e){if(!d(r)||!d(e))throw new Error("Both numbers must be valid positive integers");return r<e?-1:r>e?1:0}n(Wi,"compareOrdinals");function Ci(r){if(!d(r))throw new Error("Current must be a valid positive integer");return x(r+1)}n(Ci,"getNextOrdinal");function Fi(r){if(!d(r))throw new Error("Current must be a valid positive integer");if(r===1)throw new Error("No previous ordinal for 1 (\u09AA\u09CD\u09B0\u09A5\u09AE is the first)");return x(r-1)}n(Fi,"getPreviousOrdinal");function $i(r,e=1){if(!d(e))throw new Error("startFrom must be a valid positive integer");return r.map((t,o)=>{let i=e+o;return{position:i,ordinal:x(i),item:t}})}n($i,"createOrdinalList");function q(r,e={}){let{includeSeconds:t=!1,use12Hour:o=!1}=e,i,s,a;if(typeof r=="string"){let w=r.split(":");if(i=parseInt(w[0],10),s=parseInt(w[1],10),a=w[2]?parseInt(w[2],10):0,Number.isNaN(i)||Number.isNaN(s))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss")}else i=r.getHours(),s=r.getMinutes(),a=r.getSeconds();let u=i,l="";o&&(i===0?(u=12,l="\u09B0\u09BE\u09A4"):i<12?l="\u09B8\u0995\u09BE\u09B2":i===12?l="\u09A6\u09C1\u09AA\u09C1\u09B0":(u=i-12,l="\u09AC\u09BF\u0995\u09BE\u09B2"));let m=f(u.toString().padStart(2,"0")),g=f(s.toString().padStart(2,"0")),Y=[m,g];if(t){let w=f(a.toString().padStart(2,"0"));Y.push(w)}let A=Y.join(":");return l?`${A} ${l}`:A}n(q,"formatTime");function dr(r,e=new Date){let t=r.getTime()-e.getTime(),o=Math.floor(t/1e3),i=Math.floor(o/60),s=Math.floor(i/60),a=Math.abs(s),u=new Date(e);u.setHours(0,0,0,0);let l=new Date(r);l.setHours(0,0,0,0);let m=Math.floor((l.getTime()-u.getTime())/(1e3*60*60*24));if(a<24)return o===0?"\u098F\u0996\u09A8":Math.abs(o)<60?o<0?`${f(Math.abs(o))} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u0986\u0997\u09C7`:`${f(o)} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u09AA\u09B0\u09C7`:Math.abs(i)<60?i<0?`${f(Math.abs(i))} \u09AE\u09BF\u09A8\u09BF\u099F \u0986\u0997\u09C7`:`${f(i)} \u09AE\u09BF\u09A8\u09BF\u099F \u09AA\u09B0\u09C7`:s<0?`${f(Math.abs(s))} \u0998\u09A3\u09CD\u099F\u09BE \u0986\u0997\u09C7`:`${f(s)} \u0998\u09A3\u09CD\u099F\u09BE \u09AA\u09B0\u09C7`;if(m===-1)return"\u0997\u09A4\u0995\u09BE\u09B2";if(m===1)return"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2";if(m===-2)return"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1";if(m===2)return"\u09AA\u09B0\u09B6\u09C1";if(m<0){if(Math.abs(m)<7)return`${f(Math.abs(m))} \u09A6\u09BF\u09A8 \u0986\u0997\u09C7`;if(Math.abs(m)<30){let g=Math.floor(Math.abs(m)/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u0986\u0997\u09C7`}else if(Math.abs(m)<365){let g=Math.floor(Math.abs(m)/30);return`${f(g)} \u09AE\u09BE\u09B8 \u0986\u0997\u09C7`}else{let g=Math.floor(Math.abs(m)/365);return`${f(g)} \u09AC\u099B\u09B0 \u0986\u0997\u09C7`}}else{if(m<7)return`${f(m)} \u09A6\u09BF\u09A8 \u09AA\u09B0\u09C7`;if(m<30){let g=Math.floor(m/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u09AA\u09B0\u09C7`}else if(m<365){let g=Math.floor(m/30);return`${f(g)} \u09AE\u09BE\u09B8 \u09AA\u09B0\u09C7`}else{let g=Math.floor(m/365);return`${f(g)} \u09AC\u099B\u09B0 \u09AA\u09B0\u09C7`}}}n(dr,"relativeTime");function Hi(r,e=new Date){let t=new Date(e);t.setHours(0,0,0,0);let o=new Date(r);o.setHours(0,0,0,0);let i=Math.floor((o.getTime()-t.getTime())/(1e3*60*60*24));return i===0?"\u0986\u099C":i===-1?"\u0997\u09A4\u0995\u09BE\u09B2":i===1?"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2":i===-2?"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1":i===2?"\u09AA\u09B0\u09B6\u09C1":""}n(Hi,"relativeDay");function hr(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,o=e.match(t);if(!o)return!1;let i=parseInt(o[1],10),s=parseInt(o[2],10),a=o[3]?parseInt(o[3],10):0;return!(i<0||i>23||s<0||s>59||a<0||a>59)}n(hr,"isValidTimeString");function Ki(r){return p(r)||hr(r)}n(Ki,"isValidTimeInput");function qi(r){return hr(r)?r.trim().split(":").length===3:!1}n(qi,"hasSeconds");function xr(r){return typeof r!="string"?"":r.trim()}n(xr,"sanitizeTimeInput");function yr(r){let t=xr(r).split(":"),o=parseInt(t[0],10),i=parseInt(t[1],10),s=t[2]?parseInt(t[2],10):0;if(Number.isNaN(o)||Number.isNaN(i))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss");if(o<0||o>23)throw new Error("Hours must be between 0 and 23");if(i<0||i>59)throw new Error("Minutes must be between 0 and 59");if(s<0||s>59)throw new Error("Seconds must be between 0 and 59");return{hours:o,minutes:i,seconds:s}}n(yr,"parseTime");function S(r){let{hours:e,minutes:t,seconds:o}=yr(r);return e*3600+t*60+o}n(S,"timeToSeconds");function Lr(r){if(r<0||r>=86400)throw new Error("Seconds must be between 0 and 86399");let e=Math.floor(r/3600),t=Math.floor(r%3600/60),o=r%60;return`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}n(Lr,"secondsToTime");function es(r,e){let t=S(r),o=S(e);return t<o?-1:t>o?1:0}n(es,"compareTimes");function ns(r,e,t){let o=S(r),i=S(e),s=S(t);return o>=i&&o<=s}n(ns,"isTimeInRange");function ts(r,e){let o=S(r)+e*60;return o=(o%86400+86400)%86400,Lr(o)}n(ts,"addMinutesToTime");function os(r,e){let t=S(r),o=S(e);return Math.floor((o-t)/60)}n(os,"timeDifferenceMinutes");function is(r,e={},t=""){try{return q(r,e)}catch{return t}}n(is,"safeFormatTime");function ss(r,e=new Date,t=""){try{return dr(r,e)}catch{return t}}n(ss,"safeRelativeTime");function as(r){let e;if(typeof r=="string"){let{hours:t}=yr(r);e=t}else e=r.getHours();return e>=0&&e<6?"\u09B0\u09BE\u09A4":e>=6&&e<12?"\u09B8\u0995\u09BE\u09B2":e>=12&&e<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":e>=15&&e<18?"\u09AC\u09BF\u0995\u09BE\u09B2":e>=18&&e<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}n(as,"getTimePeriod");function us(r={}){return q(new Date,r)}n(us,"getCurrentTimeBangla");function fs(r,e){return r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate()}n(fs,"isSameDay");function T(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),t=e.getUTCFullYear(),o=e.getUTCMonth()+1,i=e.getUTCDate(),s=4,u=o<s||o===s&&i<14,l=t-(u?594:593),m=new Date(Date.UTC(u?t-1:t,3,14)),g=Math.floor((e.getTime()-m.getTime())/864e5);g<0&&(g=0);let Y=Yr(l),A=g,w=1;for(let J of Y){if(A<J)break;A-=J,w++}return w>12&&(w=12,A=Y[11]-1),{year:l,month:w,day:A+1}}n(T,"toBengali");function Yr(r){return[31,31,31,31,31,30,30,30,30,30,Gr(r+593)?30:29,30]}n(Yr,"getBengaliMonthLengths");function Gr(r){return r%4===0&&r%100!==0||r%400===0}n(Gr,"isGregorianLeapYear");function P(r){let{year:e,month:t,day:o}=r,i=e+593,s=new Date(Date.UTC(i,3,14)),a=kr(e),u=0;for(let l=0;l<t-1;l++)u+=a[l];return u+=o-1,new Date(s.getTime()+u*864e5)}n(P,"fromBengali");function kr(r){return[31,31,31,31,31,30,30,30,30,30,Vr(r+593)?30:29,30]}n(kr,"getBengaliMonthLengths");function Vr(r){return r%4===0&&r%100!==0||r%400===0}n(Vr,"isGregorianLeapYear");function wr(r,e={}){let{includeYear:t=!0,includeWeekday:o=!1}=e,i=T(r);return[...o?[["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"][r.getDay()]]:[],f(i.day),h(i.month),...t?[f(i.year)]:[]].join(" ")}n(wr,"getBengaliDate");function W(r){return typeof r=="number"&&Number.isInteger(r)&&r>0&&isFinite(r)}n(W,"isValidBengaliYear");function L(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(L,"isValidBengaliMonth");function zr(r,e,t){if(typeof r!="number"||!Number.isInteger(r)||r<1||!L(e)||!W(t))return!1;let o=Rr(t);return r<=o[e-1]}n(zr,"isValidBengaliDay");function y(r){if(!r||typeof r!="object")return!1;let{year:e,month:t,day:o}=r;return W(e)&&L(t)&&zr(o,t,e)}n(y,"isValidBengaliDate");function Ms(r){return y(r)?r:null}n(Ms,"sanitizeBengaliDate");function Rr(r){let e=r+593;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&e%100!==0||e%400===0?30:29,30]}n(Rr,"getBengaliMonthLengths");function Hr(r,e){try{return!(r instanceof Date)||isNaN(r.getTime())?e||T(new Date):T(r)}catch{return e||T(new Date)}}n(Hr,"safeToBengali");function $s(r,e){try{return y(r)?P(r):e||new Date}catch{return e||new Date}}n($s,"safeFromBengali");function _r(r,e){return!L(r)||!W(e)?0:Ur(e)[r-1]}n(_r,"getBengaliMonthDays");function vs(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=P(r),o=new Date(t.getTime()+e*864e5);return T(o)}n(vs,"addDaysToBengaliDate");function Os(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");let t=P(r),o=P(e);return Math.floor((o.getTime()-t.getTime())/864e5)}n(Os,"getBengaliDateDifference");function Dr(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");return r.year!==e.year?r.year<e.year?-1:1:r.month!==e.month?r.month<e.month?-1:1:r.day!==e.day?r.day<e.day?-1:1:0}n(Dr,"compareBengaliDates");function Ps(r,e,t){return!y(r)||!y(e)||!y(t)?!1:Dr(r,e)>=0&&Dr(r,t)<=0}n(Ps,"isBengaliDateInRange");function Ls(r,e){if(!L(r)||!W(e))throw new Error("Invalid month or year");return{year:e,month:r,day:1}}n(Ls,"getFirstDayOfBengaliMonth");function Ys(r,e){if(!L(r)||!W(e))throw new Error("Invalid month or year");let t=_r(r,e);return{year:e,month:r,day:t}}n(Ys,"getLastDayOfBengaliMonth");function Gs(r){if(!W(r))return!1;let e=r+593;return e%4===0&&e%100!==0||e%400===0}n(Gs,"isBengaliLeapYear");function ks(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=P(r);return wr(t,e)}n(ks,"formatBengaliDate");function Vs(){return T(new Date)}n(Vs,"getCurrentBengaliDate");function zs(r){return r.map(e=>Hr(e))}n(zs,"batchToBengali");function Ur(r){let e=r+593;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&e%100!==0||e%400===0?30:29,30]}n(Ur,"getBengaliMonthLengths");function Z(r,e={}){let{includeCountryCode:t=!1,useBanglaDigits:o=!1,format:i="spaced"}=e,s=r.replace(/\D/g,""),a=s;if(s.startsWith("880")?a=s.slice(3):s.startsWith("+880")&&(a=s.slice(4)),a.length!==10&&a.length!==11)throw new Error("Invalid Bangladeshi phone number length");let u="";return a.length===11?u=`${a.slice(0,3)} ${a.slice(3,7)} ${a.slice(7)}`:u=`0${a.slice(0,2)} ${a.slice(2,6)} ${a.slice(6)}`,i==="dashed"?u=u.replace(/\s/g,"-"):i==="compact"&&(u=u.replace(/\s/g,"")),t&&(u="+880 "+u),o&&(u=f(u.replace(/\s|-/g,"")),i==="spaced"?u=`${u.slice(0,3)} ${u.slice(3,7)} ${u.slice(7)}`:i==="dashed"&&(u=`${u.slice(0,3)}-${u.slice(3,7)}-${u.slice(7)}`),t&&(u="+\u09EE\u09EE\u09E6 "+u)),u}n(Z,"formatPhone");function X(r){let e=r.replace(/\D/g,""),t=e;if(e.startsWith("880")?t=e.slice(3):e.startsWith("+880")&&(t=e.slice(4)),t.length!==10&&t.length!==11||!t.startsWith("01")&&t.length===11||t.length===10&&!t.startsWith("1"))return!1;let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2);return["013","014","015","016","017","018","019"].includes(o)}n(X,"validatePhone");function ra(r){return["013","014","015","016","017","018","019"].includes(r)}n(ra,"isValidOperatorCode");function ea(r){let e=r.trim();return e.startsWith("+880")||e.startsWith("880")}n(ea,"hasCountryCode");function Br(r){if(typeof r!="string")return"";let e=r.trim(),t=e.startsWith("+");return e=e.replace(/\D/g,""),t&&(e="+"+e),e}n(Br,"sanitizePhoneNumber");function na(r){return typeof r!="string"?!1:/^[\d\s\-()+ ]+$/.test(r.trim())}n(na,"isValidPhoneFormat");function aa(r){if(!X(r))return null;let e=r.replace(/\D/g,""),t=e;e.startsWith("880")&&(t=e.slice(3));let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2),s={"013":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"014":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},"015":{name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},"016":{name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},"017":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"018":{name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},"019":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}}[o];return s?{code:o,...s}:null}n(aa,"getOperator");function jr(r){if(!X(r))throw new Error("Invalid phone number");let e=r,t=r.replace(/\D/g,""),o=t,i="880";t.startsWith("880")&&(o=t.slice(3)),o.length===10&&(o="0"+o);let s=o.slice(0,3),a=o.slice(3);return{original:e,countryCode:i,operatorCode:s,number:a,fullNumber:o}}n(jr,"parsePhoneNumber");function R(r){return jr(r).fullNumber}n(R,"normalizePhoneNumber");function ua(r,e="plus"){let o=R(r).slice(1);return e==="plus"?`+880${o}`:`880${o}`}n(ua,"addCountryCode");function fa(r){return R(r)}n(fa,"removeCountryCode");function ma(r,e={},t=""){try{return Z(r,e)}catch{return t}}n(ma,"safeFormatPhone");function la(r,e){try{let t=R(r),o=R(e);return t===o}catch{return!1}}n(la,"isSameNumber");function ca(){return["013","014","015","016","017","018","019"]}n(ca,"getAllOperatorCodes");function ga(){return[{code:"013",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"014",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},{code:"015",name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},{code:"016",name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},{code:"017",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"018",name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},{code:"019",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}]}n(ga,"getAllOperators");function pa(r,e={}){let t=Br(r);return Z(t,e)}n(pa,"parseAndFormat");function Da(r){return/^[\u0980-\u09FF\s]+$/.test(r)}n(Da,"validateBangla");function Nr(r){return/[০-৯]/.test(r)}n(Nr,"isBanglaDigit");function Ma(r){return/[\u0980-\u09FF]/.test(r)}n(Ma,"isBanglaText");function Kr(r){let e=r.match(/[\u0980-\u09FF]/g);return e?e.length:0}n(Kr,"countBengaliCharacters");function Wa(r){let e=r.match(/[০-৯]/g);return e?e.length:0}n(Wa,"countBengaliDigits");function Ca(r){let e=/[\u0980-\u09FF]/.test(r),t=/[a-zA-Z0-9]/.test(r);return e&&t}n(Ca,"isMixedContent");function Ir(r,e=!1){return e?r.replace(/[^\u0980-\u09FF\s]/g,"").trim():r.replace(/[^\u0980-\u09FF]/g,"")}n(Ir,"extractBengaliChars");function qr(r){return r.replace(/[\u0980-\u09FF]/g,"")}n(qr,"removeBengaliChars");function Zr(r){let e=r.replace(/\s/g,"");if(e.length===0)return 0;let t=Kr(r);return Math.round(t/e.length*100)}n(Zr,"getBengaliPercentage");function Fa(r){return Zr(r)>50}n(Fa,"isPrimarilyBengali");function $a(r,e=!0,t=""){let o=Ir(r,e);return o.length>0?o:t}n($a,"sanitizeBengaliText");function va(r){return/\d|[০-৯]/.test(r)?!/\d/.test(r)&&Nr(r):!1}n(va,"hasOnlyBengaliDigits");function Oa(r){return r.replace(/\s+/g," ").trim()}n(Oa,"normalizeWhitespace");function Pa(r){return{bengali:Ir(r,!0).trim(),nonBengali:qr(r).trim()}}n(Pa,"splitBengaliContent");function La(r){return/[ক-হড়ঢ়য়ৎ]/.test(r)}n(La,"hasBengaliConsonants");function Ya(r){return/[অ-ঔা-ৌ]/.test(r)}n(Ya,"hasBengaliVowels");export{C as BANGLA_DIGITS,E as BANGLA_MONTHS,b as BANGLA_SEASONS,$ as BANGLA_WEEKDAYS,F as ENGLISH_DIGITS,ua as addCountryCode,Eo as addDays,vs as addDaysToBengaliDate,ts as addMinutesToTime,Bn as addTax,Dn as applyDiscount,yn as batchFormatCurrency,xo as batchFormatDates,Oe as batchFromBanglaNumber,yo as batchParseDates,pt as batchToBanglaMonth,ve as batchToBanglaNumber,zs as batchToBengali,Ni as batchToOrdinal,sr as calculatePercentage,wo as canParseBengaliDate,Dr as compareBengaliDates,In as compareCurrency,gr as compareDates,mt as compareMonths,Wi as compareOrdinals,es as compareTimes,ke as convertToWordsAndDigits,Kr as countBengaliCharacters,Wa as countBengaliDigits,$i as createOrdinalList,Wr as divideCurrency,Ir as extractBengaliChars,Ge as formatAndConvert,ks as formatBengaliDate,G as formatCurrency,j as formatDate,nr as formatNumber,Si as formatOrdinal,Z as formatPhone,q as formatTime,ho as formatToday,de as formatWithUnits,B as fromBanglaMonth,D as fromBanglaNumber,V as fromBanglaWeekday,P as fromBengali,En as getAbsoluteAmount,Kt as getAllBanglaWeekdays,st as getAllMonths,ca as getAllOperatorCodes,ga as getAllOperators,qo as getAllSeasons,wr as getBengaliDate,Os as getBengaliDateDifference,_r as getBengaliMonthDays,Zr as getBengaliPercentage,Vs as getCurrentBengaliDate,ni as getCurrentSeason,us as getCurrentTimeBangla,qt as getDaysBetween,Io as getDaysDifference,Ls as getFirstDayOfBengaliMonth,Ys as getLastDayOfBengaliMonth,ct as getMonthFromIndex,lt as getMonthIndex,bt as getMonthMapping,ar as getMonthName,Cr as getMonthRange,Rt as getNextBanglaWeekday,at as getNextMonth,Ci as getNextOrdinal,Jo as getNextSeason,$r as getNextWeekday,aa as getOperator,Mi as getOrdinalSequence,Ti as getOrdinalType,Ht as getPreviousBanglaWeekday,ut as getPreviousMonth,Fi as getPreviousOrdinal,Qo as getPreviousSeason,vr as getPreviousWeekday,Ai as getRanking,k as getSeason,Zo as getSeasonByIndex,z as getSeasonFromMonth,K as getSeasonIndex,oi as getSeasonInfo,pr as getSeasonMonths,Ei as getSpecialOrdinals,as as getTimePeriod,mr as getWeekdayName,La as hasBengaliConsonants,Hn as hasBengaliDigits,_n as hasBengaliMonth,Ya as hasBengaliVowels,ea as hasCountryCode,va as hasOnlyBengaliDigits,qi as hasSeconds,di as hasSpecialOrdinal,mn as hasTakaSymbol,ln as hasTakaWord,Tr as isBanglaCurrency,Nr as isBanglaDigit,bi as isBanglaOrdinal,Ma as isBanglaText,zt as isBanglaWeekend,Ps as isBengaliDateInRange,Gs as isBengaliLeapYear,fn as isCurrencyInRange,Mo as isDateInRange,No as isFuture,hi as isInSpecialOrdinalRange,Ca as isMixedContent,ft as isMonthInRange,Xo as isMonthInSeason,an as isNegativeAmount,Ve as isNumberInRange,Bo as isPast,sn as isPositiveAmount,Fa as isPrimarilyBengali,fs as isSameDay,la as isSameNumber,ti as isSameSeason,ns as isTimeInRange,Do as isToday,N as isValidBanglaMonth,Ne as isValidBanglaNumber,Ot as isValidBanglaWeekday,y as isValidBengaliDate,ur as isValidBengaliDateString,zr as isValidBengaliDay,L as isValidBengaliMonth,W as isValidBengaliYear,c as isValidCurrency,p as isValidDate,Ro as isValidDateForSeason,Pt as isValidDateForWeekday,Vo as isValidMonth,I as isValidMonthNumber,Ie as isValidNumber,Me as isValidNumberForOrdinal,Ee as isValidNumberForWords,ra as isValidOperatorCode,d as isValidOrdinal,na as isValidPhoneFormat,zo as isValidSeasonName,Ki as isValidTimeInput,hr as isValidTimeString,vt as isValidWeekdayNumber,Fr as isWeekend,un as isZeroAmount,wn as multiplyCurrency,Mn as negateAmount,R as normalizePhoneNumber,Oa as normalizeWhitespace,Ye as parseAndConvertToBangla,gt as parseAndConvertToMonth,Ii as parseAndConvertToOrdinal,pa as parseAndFormat,Sn as parseAndFormatCurrency,U as parseCurrency,cr as parseDate,jr as parsePhoneNumber,yr as parseTime,_t as parseWeekdayInput,Hi as relativeDay,dr as relativeTime,qr as removeBengaliChars,fa as removeCountryCode,M as roundCurrency,hn as safeFormatCurrency,Or as safeFormatDate,ma as safeFormatPhone,is as safeFormatTime,it as safeFromBanglaMonth,Le as safeFromBanglaNumber,jt as safeFromBanglaWeekday,$s as safeFromBengali,ri as safeGetSeason,ei as safeGetSeasonFromMonth,xn as safeParseCurrency,Pr as safeParseDate,ss as safeRelativeTime,ot as safeToBanglaMonth,Pe as safeToBanglaNumber,Ut as safeToBanglaWeekday,Hr as safeToBengali,Bi as safeToOrdinal,Zn as sanitizeBanglaMonth,Ms as sanitizeBengaliDate,$a as sanitizeBengaliText,or as sanitizeCurrencyInput,Un as sanitizeDate,fr as sanitizeMonthNumber,tr as sanitizeNumberInput,br as sanitizeOrdinalInput,Br as sanitizePhoneNumber,xr as sanitizeTimeInput,lr as sanitizeWeekdayInput,Lr as secondsToTime,Nn as splitAmount,Pa as splitBengaliContent,ir as subtractCurrency,Ar as sumCurrency,os as timeDifferenceMinutes,S as timeToSeconds,h as toBanglaMonth,f as toBanglaNumber,O as toBanglaWeekday,T as toBengali,x as toOrdinal,_ as toWords,ze as truncateDecimals,Da as validateBangla,X as validatePhone};
1
+ var Tr=Object.defineProperty;var n=(r,e)=>Tr(r,"name",{value:e,configurable:!0});var F=["\u09E6","\u09E7","\u09E8","\u09E9","\u09EA","\u09EB","\u09EC","\u09ED","\u09EE","\u09EF"],$=["0","1","2","3","4","5","6","7","8","9"];var E=["\u09AC\u09C8\u09B6\u09BE\u0996","\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0","\u0986\u09B7\u09BE\u09A2\u09BC","\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3","\u09AD\u09BE\u09A6\u09CD\u09B0","\u0986\u09B6\u09CD\u09AC\u09BF\u09A8","\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995","\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3","\u09AA\u09CC\u09B7","\u09AE\u09BE\u0998","\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8","\u099A\u09C8\u09A4\u09CD\u09B0"];var v=["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"];var b=["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"];function f(r){if(r==null)throw new TypeError("Invalid input");let e=String(r).trim();if(e==="")throw new Error("Empty input");if(/[eE]/.test(e))throw new Error("Scientific notation not supported");if(typeof r=="number"){if(!Number.isFinite(r))throw new TypeError("Input must be a finite number");if(Number.isInteger(r)&&Math.abs(r)>=1e5){let s=Math.abs(r),a=Math.log10(s);if(Number.isInteger(a)&&a>=5)throw new Error("Scientific notation not supported")}if(Number.isInteger(r)&&!Number.isSafeInteger(r))throw new TypeError("Input must be a safe integer")}if(/[০-৯]/.test(e))throw new Error("Input already contains Bangla digits");let t=!1,o=!1,i="";for(let s=0;s<e.length;s++){let a=e[s];if(a==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(a==="-"){if(s!==0)throw new Error("Invalid minus position");i+="-";continue}let u=$.indexOf(a);if(u!==-1){o=!0,i+=F[u];continue}throw new Error(`Invalid character in number: ${a}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}return i}n(f,"toBanglaNumber");function D(r){if(typeof r!="string")throw new TypeError("Input must be a string");let e=r.trim();if(e==="")throw new Error("Empty input");let t=!1,o=!1,i="";for(let a=0;a<e.length;a++){let u=e[a];if(u==="."){if(t)throw new Error("Multiple decimal points");t=!0,i+=".";continue}if(u==="-"){if(a!==0)throw new Error("Invalid minus position");i+="-";continue}let l=F.indexOf(u);if(l!==-1){o=!0,i+=$[l];continue}throw new Error(`Invalid Bangla digit: ${u}`)}if(!o)throw new Error("No digits found");if(t){if(e.startsWith(".")||e.startsWith("-."))throw new Error("Decimal must have leading digit");if(e.endsWith("."))throw new Error("Decimal must have trailing digit")}let s=Number(i);if(!Number.isFinite(s))throw new TypeError("Failed to parse Bangla number");return s}n(D,"fromBanglaNumber");function q(r){if(r===0)return"\u09B6\u09C2\u09A8\u09CD\u09AF";if(r<0)return"\u098B\u09A3\u09BE\u09A4\u09CD\u09AE\u0995 "+q(-r);if(r<100)return K(r);if(r<1e3)return O(r);if(r<1e5)return nr(r);if(r<1e7)return tr(r);if(r<1e9)return or(r);if(r<1e11)return Ar(r);throw new Error("Number too large to convert to words")}n(q,"toWords");function K(r){let e=["","\u098F\u0995","\u09A6\u09C1\u0987","\u09A4\u09BF\u09A8","\u099A\u09BE\u09B0","\u09AA\u09BE\u0981\u099A","\u099B\u09AF\u09BC","\u09B8\u09BE\u09A4","\u0986\u099F","\u09A8\u09AF\u09BC","\u09A6\u09B6","\u098F\u0997\u09BE\u09B0\u09CB","\u09AC\u09BE\u09B0\u09CB","\u09A4\u09C7\u09B0\u09CB","\u099A\u09CC\u09A6\u09CD\u09A6","\u09AA\u09A8\u09C7\u09B0\u09CB","\u09B7\u09CB\u09B2","\u09B8\u09A4\u09C7\u09B0\u09CB","\u0986\u09A0\u09BE\u09B0\u09CB","\u098A\u09A8\u09BF\u09B6","\u09AC\u09BF\u09B6"],t=["","","\u0995\u09C1\u09A1\u09BC\u09BF","\u09A4\u09BF\u09B0\u09BF\u09B6","\u099A\u09B2\u09CD\u09B2\u09BF\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6","\u09B7\u09BE\u099F","\u09B8\u09A4\u09CD\u09A4\u09B0","\u0986\u09B6\u09BF","\u09A8\u09AC\u09CD\u09AC\u0987"];if(r===0)return"";if(r<20)return e[r];if(r===23)return"\u09A4\u09C7\u0987\u09B6";if(r===34)return"\u099A\u09CC\u09A4\u09CD\u09B0\u09BF\u09B6";if(r===56)return"\u099B\u09BE\u09AA\u09CD\u09AA\u09BE\u09A8\u09CD\u09A8";let o=Math.floor(r/10),i=r%10;return i===0?t[o]:t[o]+" "+e[i]}n(K,"convertBelowHundred");function O(r){let e=Math.floor(r/100),t=r%100,o="";return e>0&&(e===1?o="\u098F\u0995\u09B6\u09A4":o=K(e)+"\u09B6\u09A4"),t>0&&(o+=(o?" ":"")+K(t)),o}n(O,"convertBelowThousand");function nr(r){let e=Math.floor(r/1e3),t=r%1e3,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0":o=O(e)+" \u09B9\u09BE\u099C\u09BE\u09B0"),t>0&&(o+=(o?" ":"")+O(t)),o}n(nr,"convertBelowLakh");function tr(r){let e=Math.floor(r/1e5),t=r%1e5,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B2\u0995\u09CD\u09B7":o=O(e)+" \u09B2\u0995\u09CD\u09B7"),t>0&&(o+=(o?" ":"")+nr(t)),o}n(tr,"convertBelowCrore");function or(r){let e=Math.floor(r/1e7),t=r%1e7,o="";return e>0&&(e===1?o="\u098F\u0995 \u0995\u09CB\u099F\u09BF":o=O(e)+" \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+tr(t)),o}n(or,"convertBelowArab");function Ar(r){let e=Math.floor(r/1e9),t=r%1e9,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF":o=O(e)+" \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF"),t>0&&(o+=(o?" ":"")+or(t)),o}n(Ar,"convertBelowKharab");function ge(r,e={}){let{precision:t=2,useBanglaDigits:o=!0}=e;if(r===0)return o?"\u09E6":"0";let i=Math.abs(r),s=r<0?"-":"",a,u;if(i>=1e7)a=i/1e7,u="\u0995\u09CB\u099F\u09BF";else if(i>=1e5)a=i/1e5,u="\u09B2\u0995\u09CD\u09B7";else if(i>=1e3)a=i/1e3,u="\u09B9\u09BE\u099C\u09BE\u09B0";else{let g=o?f(i):i.toString();return s+g}let l=Number(a.toFixed(t)),m=o?f(l):l.toString();return s+m+" "+u}n(ge,"formatWithUnits");function ir(r,e={}){let{useBanglaDigits:t=!0,separator:o=","}=e,i=typeof r=="string"?r:r.toString(),[s,a]=i.split("."),u=s;t&&(u=f(s));let l=Wr(u,o);if(a!==void 0){let m=t?f(a):a;return`${l}.${m}`}return l}n(ir,"formatNumber");function Wr(r,e){let t=r.startsWith("-"),o=t?r.slice(1):r;if(o.length<=3)return r;let s=o.slice(-3),a=o.slice(0,-3),u=[];for(let m=a.length;m>0;m-=2){let g=Math.max(0,m-2);u.unshift(a.slice(g,m))}let l=`${u.join(e)}${e}${s}`;return t?`-${l}`:l}n(Wr,"formatIntegerPart");function we(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if(F.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(we,"isValidBanglaNumber");function De(r){if(r==null)return!1;let e=String(r).trim();if(e===""||/[eE]/.test(e))return!1;if(typeof r=="number"){if(!Number.isFinite(r)||Number.isInteger(r)&&!Number.isSafeInteger(r))return!1;if(Number.isInteger(r)&&Math.abs(r)>=1e5){let i=Math.abs(r),s=Math.log10(i);if(Number.isInteger(s)&&s>=5)return!1}}if(/[০-৯]/.test(e))return!1;let t=!1,o=!1;for(let i=0;i<e.length;i++){let s=e[i];if(s==="."){if(t)return!1;t=!0;continue}if(s==="-"){if(i!==0)return!1;continue}if($.indexOf(s)!==-1){o=!0;continue}return!1}return!(!o||t&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}n(De,"isValidNumber");function Be(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=-99999999999&&r<=99999999999}n(Be,"isValidNumberForWords");function Ne(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>0}n(Ne,"isValidNumberForOrdinal");function sr(r){if(typeof r!="string")return"";let e=r.trim();return e=e.replace(/,/g,""),e=e.replace(/৳/g,""),e.trim()}n(sr,"sanitizeNumberInput");function Ce(r){let e=[],t=[];for(let o of r)try{let i=f(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(Ce,"batchToBanglaNumber");function Fe(r){let e=[],t=[];for(let o of r)try{let i=D(o);e.push({input:o,output:i})}catch(i){t.push({input:o,error:i instanceof Error?i.message:String(i)})}return{success:e,errors:t}}n(Fe,"batchFromBanglaNumber");function $e(r,e=""){try{return f(r)}catch{return e}}n($e,"safeToBanglaNumber");function ve(r,e=0){try{return D(r)}catch{return e}}n(ve,"safeFromBanglaNumber");function Oe(r){let e=sr(r);return f(e)}n(Oe,"parseAndConvertToBangla");function Pe(r,e=!0,t=","){return ir(r,{useBanglaDigits:e,separator:t})}n(Pe,"formatAndConvert");function ke(r){return{words:q(r),digits:f(r)}}n(ke,"convertToWordsAndDigits");function Le(r,e,t){return Number.isFinite(r)?r>=e&&r<=t:!1}n(Le,"isNumberInRange");function Ve(r,e=2){let t=Math.pow(10,e);return Math.trunc(r*t)/t}n(Ve,"truncateDecimals");function z(r,e={}){let{includeSymbol:t=!0,includeWord:o=!1}=e,i=typeof r=="string"?parseFloat(r):r;if(Number.isNaN(i))throw new Error("Invalid amount");let s=f(i.toFixed(2)),a=[];return t&&a.push("\u09F3"),a.push(s),o&&a.push("\u099F\u09BE\u0995\u09BE"),a.join(" ")}n(z,"formatCurrency");function X(r){let e=r.replace(/৳/g,"").replace(/টাকা/g,"").trim();return e=e.replace(/\s+/g,""),D(e)}n(X,"parseCurrency");function c(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)}n(c,"isValidCurrency");function Cr(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return e.includes("\u09F3")||e.includes("\u099F\u09BE\u0995\u09BE")?!0:/[০-৯]/.test(e)}n(Cr,"isBanglaCurrency");function nn(r){return c(r)&&r>0}n(nn,"isPositiveAmount");function tn(r){return c(r)&&r<0}n(tn,"isNegativeAmount");function on(r){return c(r)&&r===0}n(on,"isZeroAmount");function ar(r){if(typeof r=="number")return isNaN(r)||!isFinite(r)?null:r;if(typeof r=="string"){let e=r.trim();if(e==="")return null;if(Cr(e))return e;let t=parseFloat(e);return isNaN(t)?null:t}return null}n(ar,"sanitizeCurrencyInput");function sn(r,e,t){return!c(r)||!c(e)||!c(t)||e>t?!1:r>=e&&r<=t}n(sn,"isCurrencyInRange");function an(r){return typeof r!="string"?!1:r.includes("\u09F3")}n(an,"hasTakaSymbol");function un(r){return typeof r!="string"?!1:r.includes("\u099F\u09BE\u0995\u09BE")}n(un,"hasTakaWord");function pn(r,e={},t=""){try{let o=typeof r=="string"?parseFloat(r):r;return c(o)?z(r,e):t}catch{return t}}n(pn,"safeFormatCurrency");function bn(r,e=0){try{let t=X(r);return c(t)?t:e}catch{return e}}n(bn,"safeParseCurrency");function dn(r,e={}){return r.filter(t=>c(t)).map(t=>z(t,e))}n(dn,"batchFormatCurrency");function S(r,e=2){if(!c(r))throw new Error("Invalid currency amount");let t=Math.pow(10,e);return Math.round(r*t)/t}n(S,"roundCurrency");function Fr(r){let t=r.filter(o=>c(o)).reduce((o,i)=>o+i,0);return S(t,2)}n(Fr,"sumCurrency");function ur(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");return S(r-e,2)}n(ur,"subtractCurrency");function hn(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or factor");return S(r*e,2)}n(hn,"multiplyCurrency");function $r(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or divisor");if(e===0)throw new Error("Cannot divide by zero");return S(r/e,2)}n($r,"divideCurrency");function fr(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amount or percentage");return S(r*e/100,2)}n(fr,"calculatePercentage");function xn(r,e){let t=fr(r,e);return ur(r,t)}n(xn,"applyDiscount");function yn(r,e){let t=fr(r,e);return S(r+t,2)}n(yn,"addTax");function wn(r,e){if(!c(r))throw new Error("Invalid currency amount");if(!Number.isInteger(e)||e<1)throw new Error("Parts must be a positive integer");let t=$r(r,e),o=Array(e-1).fill(t),i=Fr(o),s=ur(r,i);return o.push(s),o}n(wn,"splitAmount");function Dn(r,e){if(!c(r)||!c(e))throw new Error("Invalid currency amounts");let t=S(r,2),o=S(e,2);return t<o?-1:t>o?1:0}n(Dn,"compareCurrency");function Bn(r){if(!c(r))throw new Error("Invalid currency amount");return Math.abs(r)}n(Bn,"getAbsoluteAmount");function Nn(r){if(!c(r))throw new Error("Invalid currency amount");return-r}n(Nn,"negateAmount");function In(r,e={}){let t=ar(r);if(t===null)throw new Error("Invalid currency input");if(typeof t=="string"){let o=X(t);return z(o,e)}return z(t,e)}n(In,"parseAndFormatCurrency");function x(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return E[r-1]}n(x,"toBanglaMonth");function B(r){let e=E.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla month name: ${r}`);return e+1}n(B,"fromBanglaMonth");function mr(r){let e=r.getMonth()+1;return x(e)}n(mr,"getMonthName");function p(r){return r instanceof Date&&!isNaN(r.getTime())}n(p,"isValidDate");function lr(r){if(typeof r!="string"||r.trim()==="")return!1;let e=r.trim().replace(/\s+/g," ");if(/^\d{4}[\-\/]\d{1,2}[\-\/]\d{1,2}$/.test(e))return!1;let t=/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/,o=/^(\d{1,2}|[০-৯]{1,2})[\/\-](\d{1,2}|[০-৯]{1,2})[\/\-](\d{2,4}|[০-৯]{2,4})$/;return t.test(e)||o.test(e)}n(lr,"isValidBengaliDateString");function Gn(r){return typeof r!="string"?!1:/[০-৯]/.test(r)}n(Gn,"hasBengaliDigits");function Hn(r){return typeof r!="string"?!1:/(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)/.test(r)}n(Hn,"hasBengaliMonth");function Rn(r){return p(r)?r:null}n(Rn,"sanitizeDate");function I(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(I,"isValidMonthNumber");function N(r){if(typeof r!="string")return!1;let e=r.trim();return E.includes(e)}n(N,"isValidBanglaMonth");function cr(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1||e>12?null:e}n(cr,"sanitizeMonthNumber");function jn(r){if(typeof r!="string")return null;let e=r.trim();return e===""||!N(e)?null:e}n(jn,"sanitizeBanglaMonth");function et(r,e=""){try{return I(r)?x(r):e}catch{return e}}n(et,"safeToBanglaMonth");function nt(r,e=0){try{return N(r)?B(r):e}catch{return e}}n(nt,"safeFromBanglaMonth");function tt(){return[...E]}n(tt,"getAllMonths");function ot(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===12?1:r+1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===12?1:e+1;return x(t)}}n(ot,"getNextMonth");function it(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r===1?12:r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");let e=B(r),t=e===1?12:e-1;return x(t)}}n(it,"getPreviousMonth");function vr(r,e){let t=typeof r=="number",o,i;if(t){if(!I(r)||!I(e))throw new Error("Invalid month numbers");o=r,i=e}else{if(!N(r)||!N(e))throw new Error("Invalid Bangla month names");o=B(r),i=B(e)}let s=[],a=o;for(;t?s.push(a):s.push(x(a)),!(a===i||(a=a===12?1:a+1,s.length>12)););return s}n(vr,"getMonthRange");function st(r,e,t){try{return vr(e,t).includes(r)}catch{return!1}}n(st,"isMonthInRange");function at(r,e){let t,o;if(typeof r=="number"){if(!I(r))throw new Error("Invalid month1");t=r}else{if(!N(r))throw new Error("Invalid month1");t=B(r)}if(typeof e=="number"){if(!I(e))throw new Error("Invalid month2");o=e}else{if(!N(e))throw new Error("Invalid month2");o=B(e)}return t<o?-1:t>o?1:0}n(at,"compareMonths");function ut(r){if(typeof r=="number"){if(!I(r))throw new Error("Invalid month number");return r-1}else{if(!N(r))throw new Error("Invalid Bangla month name");return B(r)-1}}n(ut,"getMonthIndex");function ft(r){if(!Number.isInteger(r)||r<0||r>11)throw new Error("Index must be between 0 and 11");return r+1}n(ft,"getMonthFromIndex");function mt(r){if(typeof r=="string"&&N(r.trim()))return r.trim();let e=cr(r);if(e===null)throw new Error("Invalid month input");return x(e)}n(mt,"parseAndConvertToMonth");function lt(r){return r.filter(e=>I(e)).map(e=>x(e))}n(lt,"batchToBanglaMonth");function ct(){let r={};for(let e=1;e<=12;e++)r[e]=x(e);return r}n(ct,"getMonthMapping");function P(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return v[r]}n(P,"toBanglaWeekday");function Y(r){let e=v.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla weekday name: ${r}`);return e}n(Y,"fromBanglaWeekday");function gr(r){let e=r.getDay();return P(e)}n(gr,"getWeekdayName");function Ct(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=0&&r<=6}n(Ct,"isValidWeekdayNumber");function Ft(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:v.includes(e)}n(Ft,"isValidBanglaWeekday");function $t(r){return r instanceof Date?!isNaN(r.getTime()):!1}n($t,"isValidDateForWeekday");function pr(r){return typeof r!="string"?"":r.trim()}n(pr,"sanitizeWeekdayInput");function Or(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return r===5||r===6}n(Or,"isWeekend");function Vt(r){let e=Y(r);return Or(e)}n(Vt,"isBanglaWeekend");function Pr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r+1)%7}n(Pr,"getNextWeekday");function kr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r-1+7)%7}n(kr,"getPreviousWeekday");function zt(r){let e=Pr(r);return P(e)}n(zt,"getNextBanglaWeekday");function Gt(r){let e=kr(r);return P(e)}n(Gt,"getPreviousBanglaWeekday");function Ht(r){let e=pr(r);return Y(e)}n(Ht,"parseWeekdayInput");function Rt(r,e=""){try{return P(r)}catch{return e}}n(Rt,"safeToBanglaWeekday");function Yt(r,e=-1){try{return Y(r)}catch{return e}}n(Yt,"safeFromBanglaWeekday");function _t(){return["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"]}n(_t,"getAllBanglaWeekdays");function Ut(r,e){if(r<0||r>6||e<0||e>6)throw new Error("Weekday numbers must be between 0 and 6");return(e-r+7)%7}n(Ut,"getDaysBetween");function Z(r,e={}){let{includeWeekday:t=!1,includeYear:o=!0,format:i="long"}=e,s=[];if(t){let m=gr(r);s.push(m)}let a=f(r.getDate()),u=mr(r),l=o?f(r.getFullYear()):null;return i==="short"?s.push(`${a} ${u}`):s.push(a,u),l&&s.push(l),s.join(" ")}n(Z,"formatDate");function br(r){let e=r.trim().replace(/\s+/g," "),t=e.match(/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/);if(t){let i=t[1],s=t[2],a=t[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=B(s),m=a?/[০-৯]/.test(a)?D(a):parseInt(a,10):new Date().getFullYear();return new Date(m,l-1,u)}let o=e.match(/^(\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)$/);if(o){let i=o[1],s=o[2],a=o[3],u=/[০-৯]/.test(i)?D(i):parseInt(i,10),l=/[০-৯]/.test(s)?D(s):parseInt(s,10),m=/[০-৯]/.test(a)?D(a):parseInt(a,10);return new Date(m,l-1,u)}throw new Error(`Unable to parse date string: ${r}`)}n(br,"parseDate");function Lr(r,e,t=""){try{return p(r)?Z(r,e):t}catch{return t}}n(Lr,"safeFormatDate");function Vr(r,e){try{return br(r)}catch{return e||new Date}}n(Vr,"safeParseDate");function go(r){return Z(new Date,r)}n(go,"formatToday");function po(r,e){return r.map(t=>Lr(t,e))}n(po,"batchFormatDates");function bo(r){return r.map(e=>Vr(e))}n(bo,"batchParseDates");function ho(r){return lr(r)}n(ho,"canParseBengaliDate");function dr(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=r.getTime(),o=e.getTime();return t<o?-1:t>o?1:0}n(dr,"compareDates");function xo(r){if(!p(r))return!1;let e=new Date;return r.getDate()===e.getDate()&&r.getMonth()===e.getMonth()&&r.getFullYear()===e.getFullYear()}n(xo,"isToday");function yo(r){return p(r)?r.getTime()<Date.now():!1}n(yo,"isPast");function wo(r){return p(r)?r.getTime()>Date.now():!1}n(wo,"isFuture");function Do(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let t=e.getTime()-r.getTime();return Math.floor(t/(1e3*60*60*24))}n(Do,"getDaysDifference");function Bo(r,e){if(!p(r))throw new Error("Invalid date");let t=new Date(r);return t.setDate(t.getDate()+e),t}n(Bo,"addDays");function No(r,e,t){return!p(r)||!p(e)||!p(t)?!1:dr(r,e)>=0&&dr(r,t)<=0}n(No,"isDateInRange");function _(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return r>=1&&r<=2?b[0]:r>=3&&r<=5?b[1]:r>=6&&r<=7?b[2]:r===8?b[3]:r>=9&&r<=10?b[4]:b[5]}n(_,"getSeasonFromMonth");function k(r){let{year:e,month:t,day:o}=r,i=W(e);if(t<1||t>12)throw new Error("Invalid Bengali month");if(o<1||o>i[t-1])throw new Error("Invalid Bengali day for given month");let s=e+593,a=new Date(Date.UTC(s,3,14)),u=0;for(let l=1;l<t;l++)u+=i[l-1];return u+=o-1,new Date(a.getTime()+u*864e5)}n(k,"fromBengali");function hr(r,e={}){let{includeYear:t=!0,includeWeekday:o=!1}=e,i=M(r);return[...o?[["\u09B0\u09AC\u09BF\u09AC\u09BE\u09B0","\u09B8\u09CB\u09AE\u09AC\u09BE\u09B0","\u09AE\u0999\u09CD\u0997\u09B2\u09AC\u09BE\u09B0","\u09AC\u09C1\u09A7\u09AC\u09BE\u09B0","\u09AC\u09C3\u09B9\u09B8\u09CD\u09AA\u09A4\u09BF\u09AC\u09BE\u09B0","\u09B6\u09C1\u0995\u09CD\u09B0\u09AC\u09BE\u09B0","\u09B6\u09A8\u09BF\u09AC\u09BE\u09B0"][r.getDay()]]:[],f(i.day),x(i.month),...t?[f(i.year)]:[]].join(" ")}n(hr,"getBengaliDate");function C(r){return typeof r=="number"&&Number.isInteger(r)&&r>0&&isFinite(r)}n(C,"isValidBengaliYear");function L(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}n(L,"isValidBengaliMonth");function zr(r,e,t){if(typeof r!="number"||!Number.isInteger(r)||r<1||!L(e)||!C(t))return!1;let o=W(t);return r<=o[e-1]}n(zr,"isValidBengaliDay");function y(r){if(!r||typeof r!="object")return!1;let{year:e,month:t,day:o}=r;return C(e)&&L(t)&&zr(o,t,e)}n(y,"isValidBengaliDate");function Ro(r){return y(r)?r:null}n(Ro,"sanitizeBengaliDate");function Gr(r,e){try{return!(r instanceof Date)||isNaN(r.getTime())?e||M(new Date):M(r)}catch{return e||M(new Date)}}n(Gr,"safeToBengali");function Xo(r,e){try{return y(r)?k(r):e||new Date}catch{return e||new Date}}n(Xo,"safeFromBengali");function Hr(r,e){return!L(r)||!C(e)?0:W(e)[r-1]}n(Hr,"getBengaliMonthDays");function Zo(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=k(r),o=new Date(t.getTime()+e*864e5);return M(o)}n(Zo,"addDaysToBengaliDate");function Jo(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");let t=k(r),o=k(e);return Math.floor((o.getTime()-t.getTime())/864e5)}n(Jo,"getBengaliDateDifference");function xr(r,e){if(!y(r)||!y(e))throw new Error("Invalid Bengali date");return r.year!==e.year?r.year<e.year?-1:1:r.month!==e.month?r.month<e.month?-1:1:r.day!==e.day?r.day<e.day?-1:1:0}n(xr,"compareBengaliDates");function Qo(r,e,t){return!y(r)||!y(e)||!y(t)?!1:xr(r,e)>=0&&xr(r,t)<=0}n(Qo,"isBengaliDateInRange");function ri(r,e){if(!L(r)||!C(e))throw new Error("Invalid month or year");return{year:e,month:r,day:1}}n(ri,"getFirstDayOfBengaliMonth");function ei(r,e){if(!L(r)||!C(e))throw new Error("Invalid month or year");let t=Hr(r,e);return{year:e,month:r,day:t}}n(ei,"getLastDayOfBengaliMonth");function ni(r){if(!C(r))return!1;let e=r+593;return e%4===0&&e%100!==0||e%400===0}n(ni,"isBengaliLeapYear");function ti(r,e){if(!y(r))throw new Error("Invalid Bengali date");let t=k(r);return hr(t,e)}n(ti,"formatBengaliDate");function oi(){return M(new Date)}n(oi,"getCurrentBengaliDate");function ii(r){return r.map(e=>Gr(e))}n(ii,"batchToBengali");function W(r){let e=r+593;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&e%100!==0||e%400===0?30:29,30]}n(W,"getBengaliMonthLengths");function M(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),t=e.getUTCFullYear(),o=e.getUTCMonth()+1,i=e.getUTCDate(),s=[{gMonth:1,gDay:14,bMonth:10},{gMonth:2,gDay:14,bMonth:11},{gMonth:3,gDay:15,bMonth:12},{gMonth:4,gDay:14,bMonth:1}],a=o<4||o===4&&i<14,u=t-(a?594:593);for(let A of s)if(o===A.gMonth&&i===A.gDay)return{year:u,month:A.bMonth,day:1};let l=s[3],m=t;for(let A=s.length-1;A>=0;A--){let R=s[A];if(o>R.gMonth||o===R.gMonth&&i>R.gDay){l=R;break}}o===1&&i<14&&(l=s[3],m--);let g=new Date(Date.UTC(m,l.gMonth-1,l.gDay)),H=Math.floor((e.getTime()-g.getTime())/864e5),V=W(u),h=l.bMonth-1,j=H;for(;j>=V[h];)j-=V[h],h=(h+1)%12;return{year:u,month:h+1,day:j+1}}n(M,"toBengali");function G(r){let e=M(r);return _(e.month)}n(G,"getSeason");function di(r){return typeof r!="number"||!Number.isFinite(r)||!Number.isInteger(r)?!1:r>=1&&r<=12}n(di,"isValidMonth");function hi(r){if(typeof r!="string")return!1;let e=r.trim();return e===""?!1:b.includes(e)}n(hi,"isValidSeasonName");function xi(r){return r instanceof Date?!isNaN(r.getTime()):!1}n(xi,"isValidDateForSeason");function Ii(){return["\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE","\u09AC\u09B0\u09CD\u09B7\u09BE","\u09B6\u09B0\u09CE","\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4","\u09B6\u09C0\u09A4","\u09AC\u09B8\u09A8\u09CD\u09A4"]}n(Ii,"getAllSeasons");function yr(r){let t={\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE:[1,2],\u09AC\u09B0\u09CD\u09B7\u09BE:[3,4,5],"\u09B6\u09B0\u09CE":[6,7],\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4:[8],\u09B6\u09C0\u09A4:[9,10],\u09AC\u09B8\u09A8\u09CD\u09A4:[11,12]}[r];if(!t)throw new Error(`Invalid season name: ${r}`);return t}n(yr,"getSeasonMonths");function J(r){return b.indexOf(r)}n(J,"getSeasonIndex");function Mi(r){if(r<0||r>5)throw new Error("Season index must be between 0 and 5");return b[r]}n(Mi,"getSeasonByIndex");function Ei(r,e){if(r<1||r>12)return!1;try{return yr(e).includes(r)}catch{return!1}}n(Ei,"isMonthInSeason");function Si(r){let e=J(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e+1)%6;return b[t]}n(Si,"getNextSeason");function Ti(r){let e=J(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=(e-1+6)%6;return b[t]}n(Ti,"getPreviousSeason");function Ai(r,e=""){if(!(r instanceof Date)||isNaN(r.getTime()))return e;try{return G(r)}catch{return e}}n(Ai,"safeGetSeason");function Wi(r,e=""){try{return _(r)}catch{return e}}n(Wi,"safeGetSeasonFromMonth");function Ci(){return G(new Date)}n(Ci,"getCurrentSeason");function Fi(r,e){let t=G(r),o=G(e);return t===o}n(Fi,"isSameSeason");function $i(r){let e=J(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let t=yr(r),o={1:"\u09AC\u09C8\u09B6\u09BE\u0996",2:"\u099C\u09CD\u09AF\u09C8\u09B7\u09CD\u09A0",3:"\u0986\u09B7\u09BE\u09A2\u09BC",4:"\u09B6\u09CD\u09B0\u09BE\u09AC\u09A3",5:"\u09AD\u09BE\u09A6\u09CD\u09B0",6:"\u0986\u09B6\u09CD\u09AC\u09BF\u09A8",7:"\u0995\u09BE\u09B0\u09CD\u09A4\u09BF\u0995",8:"\u0985\u0997\u09CD\u09B0\u09B9\u09BE\u09AF\u09BC\u09A3",9:"\u09AA\u09CC\u09B7",10:"\u09AE\u09BE\u0998",11:"\u09AB\u09BE\u09B2\u09CD\u0997\u09C1\u09A8",12:"\u099A\u09C8\u09A4\u09CD\u09B0"},i=t.map(s=>o[s]);return{name:r,months:t,index:e,monthNames:i}}n($i,"getSeasonInfo");function w(r){if(r<1)throw new Error("Number must be greater than 0");let e={1:"\u09AA\u09CD\u09B0\u09A5\u09AE",2:"\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC",3:"\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC",4:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A5",5:"\u09AA\u099E\u09CD\u099A\u09AE",6:"\u09B7\u09B7\u09CD\u09A0",7:"\u09B8\u09AA\u09CD\u09A4\u09AE",8:"\u0985\u09B7\u09CD\u099F\u09AE",9:"\u09A8\u09AC\u09AE",10:"\u09A6\u09B6\u09AE",11:"\u098F\u0995\u09BE\u09A6\u09B6",12:"\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6",13:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6",14:"\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6",15:"\u09AA\u099E\u09CD\u099A\u09A6\u09B6",16:"\u09B7\u09CB\u09A1\u09BC\u09B6",17:"\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6",18:"\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6",19:"\u098A\u09A8\u09AC\u09BF\u0982\u09B6",20:"\u09AC\u09BF\u0982\u09B6",21:"\u098F\u0995\u09AC\u09BF\u0982\u09B6",22:"\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6",23:"\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6",24:"\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6",25:"\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6",30:"\u09A4\u09CD\u09B0\u09BF\u0982\u09B6",40:"\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6",50:"\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE",60:"\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE",70:"\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE",80:"\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE",90:"\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE",100:"\u09B6\u09A4\u09A4\u09AE"};return e[r]?e[r]:`${f(r)}\u09A4\u09AE`}n(w,"toOrdinal");function d(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)&&Number.isInteger(r)&&r>=1}n(d,"isValidOrdinal");function Yi(r){if(typeof r!="string"||!r.trim())return!1;let e=r.trim();return["\u09AA\u09CD\u09B0\u09A5\u09AE","\u09A6\u09CD\u09AC\u09BF\u09A4\u09C0\u09AF\u09BC","\u09A4\u09C3\u09A4\u09C0\u09AF\u09BC","\u099A\u09A4\u09C1\u09B0\u09CD\u09A5","\u09AA\u099E\u09CD\u099A\u09AE","\u09B7\u09B7\u09CD\u09A0","\u09B8\u09AA\u09CD\u09A4\u09AE","\u0985\u09B7\u09CD\u099F\u09AE","\u09A8\u09AC\u09AE","\u09A6\u09B6\u09AE","\u098F\u0995\u09BE\u09A6\u09B6","\u09A6\u09CD\u09AC\u09BE\u09A6\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09A6\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09A6\u09B6","\u09AA\u099E\u09CD\u099A\u09A6\u09B6","\u09B7\u09CB\u09A1\u09BC\u09B6","\u09B8\u09AA\u09CD\u09A4\u09A6\u09B6","\u0985\u09B7\u09CD\u099F\u09BE\u09A6\u09B6","\u098A\u09A8\u09AC\u09BF\u0982\u09B6","\u09AC\u09BF\u0982\u09B6","\u098F\u0995\u09AC\u09BF\u0982\u09B6","\u09A6\u09CD\u09AC\u09BE\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09AF\u09BC\u09CB\u09AC\u09BF\u0982\u09B6","\u099A\u09A4\u09C1\u09B0\u09CD\u09AC\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09AC\u09BF\u0982\u09B6","\u09A4\u09CD\u09B0\u09BF\u0982\u09B6","\u099A\u09A4\u09CD\u09AC\u09BE\u09B0\u09BF\u0982\u09B6","\u09AA\u099E\u09CD\u099A\u09BE\u09B6\u09A4\u09CD\u09A4\u09AE","\u09B7\u09B7\u09CD\u099F\u09BF\u09A4\u09AE","\u09B8\u09AA\u09CD\u09A4\u09A4\u09BF\u09A4\u09AE","\u0985\u09B6\u09C0\u09A4\u09BF\u09A4\u09AE","\u09A8\u09AC\u09A4\u09BF\u09A4\u09AE","\u09B6\u09A4\u09A4\u09AE"].includes(e)?!0:e.endsWith("\u09A4\u09AE")}n(Yi,"isBanglaOrdinal");function _i(r){return d(r)?[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].includes(r):!1}n(_i,"hasSpecialOrdinal");function wr(r){if(typeof r=="string"){let t=r.trim();if(t==="")return null;let o=Number(t);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let e=Math.round(r);return e<1?null:e}n(wr,"sanitizeOrdinalInput");function Ui(r){return d(r)&&r>=1&&r<=100}n(Ui,"isInSpecialOrdinalRange");function Zi(r,e=""){try{return d(r)?w(r):e}catch{return e}}n(Zi,"safeToOrdinal");function Ji(r){return r.filter(e=>d(e)).map(e=>w(e))}n(Ji,"batchToOrdinal");function Qi(r){let e=wr(r);if(e===null)throw new Error("Invalid input for ordinal conversion");return w(e)}n(Qi,"parseAndConvertToOrdinal");function rs(){return[1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,30,40,50,60,70,80,90,100].map(e=>({number:e,ordinal:w(e)}))}n(rs,"getSpecialOrdinals");function es(r,e){if(!d(r)||!d(e))throw new Error("Start and end must be positive integers");if(r>e)throw new Error("Start must be less than or equal to end");let t=[];for(let o=r;o<=e;o++)t.push(w(o));return t}n(es,"getOrdinalSequence");function ns(r,e={}){let{separator:t=" ",showNumber:o=!0}=e,i=w(r);return o?`${r}${t}${i}`:i}n(ns,"formatOrdinal");function ts(r){if(!d(r))throw new Error("Number must be a valid positive integer");let e=w(r);return e.endsWith("\u09A4\u09AE")&&/[০-৯]/.test(e)?"suffix":"special"}n(ts,"getOrdinalType");function os(r,e){let t=w(r);return e?`${t} ${e}`:t}n(os,"getRanking");function is(r,e){if(!d(r)||!d(e))throw new Error("Both numbers must be valid positive integers");return r<e?-1:r>e?1:0}n(is,"compareOrdinals");function ss(r){if(!d(r))throw new Error("Current must be a valid positive integer");return w(r+1)}n(ss,"getNextOrdinal");function as(r){if(!d(r))throw new Error("Current must be a valid positive integer");if(r===1)throw new Error("No previous ordinal for 1 (\u09AA\u09CD\u09B0\u09A5\u09AE is the first)");return w(r-1)}n(as,"getPreviousOrdinal");function us(r,e=1){if(!d(e))throw new Error("startFrom must be a valid positive integer");return r.map((t,o)=>{let i=e+o;return{position:i,ordinal:w(i),item:t}})}n(us,"createOrdinalList");function Q(r,e={}){let{includeSeconds:t=!1,use12Hour:o=!1}=e,i,s,a;if(typeof r=="string"){let h=r.split(":");if(i=parseInt(h[0],10),s=parseInt(h[1],10),a=h[2]?parseInt(h[2],10):0,Number.isNaN(i)||Number.isNaN(s))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss")}else i=r.getHours(),s=r.getMinutes(),a=r.getSeconds();let u=i,l="";o&&(i===0?(u=12,l="\u09B0\u09BE\u09A4"):i<12?l="\u09B8\u0995\u09BE\u09B2":i===12?l="\u09A6\u09C1\u09AA\u09C1\u09B0":(u=i-12,l="\u09AC\u09BF\u0995\u09BE\u09B2"));let m=f(u.toString().padStart(2,"0")),g=f(s.toString().padStart(2,"0")),H=[m,g];if(t){let h=f(a.toString().padStart(2,"0"));H.push(h)}let V=H.join(":");return l?`${V} ${l}`:V}n(Q,"formatTime");function Dr(r,e=new Date){let t=r.getTime()-e.getTime(),o=Math.floor(t/1e3),i=Math.floor(o/60),s=Math.floor(i/60),a=Math.abs(s),u=new Date(e);u.setHours(0,0,0,0);let l=new Date(r);l.setHours(0,0,0,0);let m=Math.floor((l.getTime()-u.getTime())/(1e3*60*60*24));if(a<24)return o===0?"\u098F\u0996\u09A8":Math.abs(o)<60?o<0?`${f(Math.abs(o))} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u0986\u0997\u09C7`:`${f(o)} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u09AA\u09B0\u09C7`:Math.abs(i)<60?i<0?`${f(Math.abs(i))} \u09AE\u09BF\u09A8\u09BF\u099F \u0986\u0997\u09C7`:`${f(i)} \u09AE\u09BF\u09A8\u09BF\u099F \u09AA\u09B0\u09C7`:s<0?`${f(Math.abs(s))} \u0998\u09A3\u09CD\u099F\u09BE \u0986\u0997\u09C7`:`${f(s)} \u0998\u09A3\u09CD\u099F\u09BE \u09AA\u09B0\u09C7`;if(m===-1)return"\u0997\u09A4\u0995\u09BE\u09B2";if(m===1)return"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2";if(m===-2)return"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1";if(m===2)return"\u09AA\u09B0\u09B6\u09C1";if(m<0){if(Math.abs(m)<7)return`${f(Math.abs(m))} \u09A6\u09BF\u09A8 \u0986\u0997\u09C7`;if(Math.abs(m)<30){let g=Math.floor(Math.abs(m)/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u0986\u0997\u09C7`}else if(Math.abs(m)<365){let g=Math.floor(Math.abs(m)/30);return`${f(g)} \u09AE\u09BE\u09B8 \u0986\u0997\u09C7`}else{let g=Math.floor(Math.abs(m)/365);return`${f(g)} \u09AC\u099B\u09B0 \u0986\u0997\u09C7`}}else{if(m<7)return`${f(m)} \u09A6\u09BF\u09A8 \u09AA\u09B0\u09C7`;if(m<30){let g=Math.floor(m/7);return`${f(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u09AA\u09B0\u09C7`}else if(m<365){let g=Math.floor(m/30);return`${f(g)} \u09AE\u09BE\u09B8 \u09AA\u09B0\u09C7`}else{let g=Math.floor(m/365);return`${f(g)} \u09AC\u099B\u09B0 \u09AA\u09B0\u09C7`}}}n(Dr,"relativeTime");function ys(r,e=new Date){let t=new Date(e);t.setHours(0,0,0,0);let o=new Date(r);o.setHours(0,0,0,0);let i=Math.floor((o.getTime()-t.getTime())/(1e3*60*60*24));return i===0?"\u0986\u099C":i===-1?"\u0997\u09A4\u0995\u09BE\u09B2":i===1?"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2":i===-2?"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1":i===2?"\u09AA\u09B0\u09B6\u09C1":""}n(ys,"relativeDay");function Br(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let t=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,o=e.match(t);if(!o)return!1;let i=parseInt(o[1],10),s=parseInt(o[2],10),a=o[3]?parseInt(o[3],10):0;return!(i<0||i>23||s<0||s>59||a<0||a>59)}n(Br,"isValidTimeString");function Ns(r){return p(r)||Br(r)}n(Ns,"isValidTimeInput");function Is(r){return Br(r)?r.trim().split(":").length===3:!1}n(Is,"hasSeconds");function Nr(r){return typeof r!="string"?"":r.trim()}n(Nr,"sanitizeTimeInput");function Ir(r){let t=Nr(r).split(":"),o=parseInt(t[0],10),i=parseInt(t[1],10),s=t[2]?parseInt(t[2],10):0;if(Number.isNaN(o)||Number.isNaN(i))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss");if(o<0||o>23)throw new Error("Hours must be between 0 and 23");if(i<0||i>59)throw new Error("Minutes must be between 0 and 59");if(s<0||s>59)throw new Error("Seconds must be between 0 and 59");return{hours:o,minutes:i,seconds:s}}n(Ir,"parseTime");function T(r){let{hours:e,minutes:t,seconds:o}=Ir(r);return e*3600+t*60+o}n(T,"timeToSeconds");function Rr(r){if(r<0||r>=86400)throw new Error("Seconds must be between 0 and 86399");let e=Math.floor(r/3600),t=Math.floor(r%3600/60),o=r%60;return`${e.toString().padStart(2,"0")}:${t.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}n(Rr,"secondsToTime");function Ws(r,e){let t=T(r),o=T(e);return t<o?-1:t>o?1:0}n(Ws,"compareTimes");function Cs(r,e,t){let o=T(r),i=T(e),s=T(t);return o>=i&&o<=s}n(Cs,"isTimeInRange");function Fs(r,e){let o=T(r)+e*60;return o=(o%86400+86400)%86400,Rr(o)}n(Fs,"addMinutesToTime");function $s(r,e){let t=T(r),o=T(e);return Math.floor((o-t)/60)}n($s,"timeDifferenceMinutes");function vs(r,e={},t=""){try{return Q(r,e)}catch{return t}}n(vs,"safeFormatTime");function Os(r,e=new Date,t=""){try{return Dr(r,e)}catch{return t}}n(Os,"safeRelativeTime");function Ps(r){let e;if(typeof r=="string"){let{hours:t}=Ir(r);e=t}else e=r.getHours();return e>=0&&e<6?"\u09B0\u09BE\u09A4":e>=6&&e<12?"\u09B8\u0995\u09BE\u09B2":e>=12&&e<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":e>=15&&e<18?"\u09AC\u09BF\u0995\u09BE\u09B2":e>=18&&e<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}n(Ps,"getTimePeriod");function ks(r={}){return Q(new Date,r)}n(ks,"getCurrentTimeBangla");function Ls(r,e){return r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate()}n(Ls,"isSameDay");function rr(r,e={}){let{includeCountryCode:t=!1,useBanglaDigits:o=!1,format:i="spaced"}=e,s=r.replace(/\D/g,""),a=s;if(s.startsWith("880")?a=s.slice(3):s.startsWith("+880")&&(a=s.slice(4)),a.length!==10&&a.length!==11)throw new Error("Invalid Bangladeshi phone number length");let u="";return a.length===11?u=`${a.slice(0,3)} ${a.slice(3,7)} ${a.slice(7)}`:u=`0${a.slice(0,2)} ${a.slice(2,6)} ${a.slice(6)}`,i==="dashed"?u=u.replace(/\s/g,"-"):i==="compact"&&(u=u.replace(/\s/g,"")),t&&(u="+880 "+u),o&&(u=f(u.replace(/\s|-/g,"")),i==="spaced"?u=`${u.slice(0,3)} ${u.slice(3,7)} ${u.slice(7)}`:i==="dashed"&&(u=`${u.slice(0,3)}-${u.slice(3,7)}-${u.slice(7)}`),t&&(u="+\u09EE\u09EE\u09E6 "+u)),u}n(rr,"formatPhone");function er(r){let e=r.replace(/\D/g,""),t=e;if(e.startsWith("880")?t=e.slice(3):e.startsWith("+880")&&(t=e.slice(4)),t.length!==10&&t.length!==11||!t.startsWith("01")&&t.length===11||t.length===10&&!t.startsWith("1"))return!1;let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2);return["013","014","015","016","017","018","019"].includes(o)}n(er,"validatePhone");function ea(r){return["013","014","015","016","017","018","019"].includes(r)}n(ea,"isValidOperatorCode");function na(r){let e=r.trim();return e.startsWith("+880")||e.startsWith("880")}n(na,"hasCountryCode");function Mr(r){if(typeof r!="string")return"";let e=r.trim(),t=e.startsWith("+");return e=e.replace(/\D/g,""),t&&(e="+"+e),e}n(Mr,"sanitizePhoneNumber");function ta(r){return typeof r!="string"?!1:/^[\d\s\-()+ ]+$/.test(r.trim())}n(ta,"isValidPhoneFormat");function ua(r){if(!er(r))return null;let e=r.replace(/\D/g,""),t=e;e.startsWith("880")&&(t=e.slice(3));let o=t.length===11?t.slice(0,3):"0"+t.slice(0,2),s={"013":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"014":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},"015":{name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},"016":{name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},"017":{name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},"018":{name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},"019":{name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}}[o];return s?{code:o,...s}:null}n(ua,"getOperator");function Yr(r){if(!er(r))throw new Error("Invalid phone number");let e=r,t=r.replace(/\D/g,""),o=t,i="880";t.startsWith("880")&&(o=t.slice(3)),o.length===10&&(o="0"+o);let s=o.slice(0,3),a=o.slice(3);return{original:e,countryCode:i,operatorCode:s,number:a,fullNumber:o}}n(Yr,"parsePhoneNumber");function U(r){return Yr(r).fullNumber}n(U,"normalizePhoneNumber");function fa(r,e="plus"){let o=U(r).slice(1);return e==="plus"?`+880${o}`:`880${o}`}n(fa,"addCountryCode");function ma(r){return U(r)}n(ma,"removeCountryCode");function la(r,e={},t=""){try{return rr(r,e)}catch{return t}}n(la,"safeFormatPhone");function ca(r,e){try{let t=U(r),o=U(e);return t===o}catch{return!1}}n(ca,"isSameNumber");function ga(){return["013","014","015","016","017","018","019"]}n(ga,"getAllOperatorCodes");function pa(){return[{code:"013",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"014",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"},{code:"015",name:"Teletalk",nameBangla:"\u099F\u09C7\u09B2\u09BF\u099F\u0995"},{code:"016",name:"Airtel",nameBangla:"\u098F\u09AF\u09BC\u09BE\u09B0\u099F\u09C7\u09B2"},{code:"017",name:"Grameenphone",nameBangla:"\u0997\u09CD\u09B0\u09BE\u09AE\u09C0\u09A3\u09AB\u09CB\u09A8"},{code:"018",name:"Robi",nameBangla:"\u09B0\u09AC\u09BF"},{code:"019",name:"Banglalink",nameBangla:"\u09AC\u09BE\u0982\u09B2\u09BE\u09B2\u09BF\u0982\u0995"}]}n(pa,"getAllOperators");function ba(r,e={}){let t=Mr(r);return rr(t,e)}n(ba,"parseAndFormat");function Ba(r){return/^[\u0980-\u09FF\s]+$/.test(r)}n(Ba,"validateBangla");function Er(r){return/[০-৯]/.test(r)}n(Er,"isBanglaDigit");function Sa(r){return/[\u0980-\u09FF]/.test(r)}n(Sa,"isBanglaText");function _r(r){let e=r.match(/[\u0980-\u09FF]/g);return e?e.length:0}n(_r,"countBengaliCharacters");function Ca(r){let e=r.match(/[০-৯]/g);return e?e.length:0}n(Ca,"countBengaliDigits");function Fa(r){let e=/[\u0980-\u09FF]/.test(r),t=/[a-zA-Z0-9]/.test(r);return e&&t}n(Fa,"isMixedContent");function Sr(r,e=!1){return e?r.replace(/[^\u0980-\u09FF\s]/g,"").trim():r.replace(/[^\u0980-\u09FF]/g,"")}n(Sr,"extractBengaliChars");function Ur(r){return r.replace(/[\u0980-\u09FF]/g,"")}n(Ur,"removeBengaliChars");function jr(r){let e=r.replace(/\s/g,"");if(e.length===0)return 0;let t=_r(r);return Math.round(t/e.length*100)}n(jr,"getBengaliPercentage");function $a(r){return jr(r)>50}n($a,"isPrimarilyBengali");function va(r,e=!0,t=""){let o=Sr(r,e);return o.length>0?o:t}n(va,"sanitizeBengaliText");function Oa(r){return/\d|[০-৯]/.test(r)?!/\d/.test(r)&&Er(r):!1}n(Oa,"hasOnlyBengaliDigits");function Pa(r){return r.replace(/\s+/g," ").trim()}n(Pa,"normalizeWhitespace");function ka(r){return{bengali:Sr(r,!0).trim(),nonBengali:Ur(r).trim()}}n(ka,"splitBengaliContent");function La(r){return/[ক-হড়ঢ়য়ৎ]/.test(r)}n(La,"hasBengaliConsonants");function Va(r){return/[অ-ঔা-ৌ]/.test(r)}n(Va,"hasBengaliVowels");export{F as BANGLA_DIGITS,E as BANGLA_MONTHS,b as BANGLA_SEASONS,v as BANGLA_WEEKDAYS,$ as ENGLISH_DIGITS,fa as addCountryCode,Bo as addDays,Zo as addDaysToBengaliDate,Fs as addMinutesToTime,yn as addTax,xn as applyDiscount,dn as batchFormatCurrency,po as batchFormatDates,Fe as batchFromBanglaNumber,bo as batchParseDates,lt as batchToBanglaMonth,Ce as batchToBanglaNumber,ii as batchToBengali,Ji as batchToOrdinal,fr as calculatePercentage,ho as canParseBengaliDate,xr as compareBengaliDates,Dn as compareCurrency,dr as compareDates,at as compareMonths,is as compareOrdinals,Ws as compareTimes,ke as convertToWordsAndDigits,_r as countBengaliCharacters,Ca as countBengaliDigits,us as createOrdinalList,$r as divideCurrency,Sr as extractBengaliChars,Pe as formatAndConvert,ti as formatBengaliDate,z as formatCurrency,Z as formatDate,ir as formatNumber,ns as formatOrdinal,rr as formatPhone,Q as formatTime,go as formatToday,ge as formatWithUnits,B as fromBanglaMonth,D as fromBanglaNumber,Y as fromBanglaWeekday,k as fromBengali,Bn as getAbsoluteAmount,_t as getAllBanglaWeekdays,tt as getAllMonths,ga as getAllOperatorCodes,pa as getAllOperators,Ii as getAllSeasons,hr as getBengaliDate,Jo as getBengaliDateDifference,Hr as getBengaliMonthDays,W as getBengaliMonthLengths,jr as getBengaliPercentage,oi as getCurrentBengaliDate,Ci as getCurrentSeason,ks as getCurrentTimeBangla,Ut as getDaysBetween,Do as getDaysDifference,ri as getFirstDayOfBengaliMonth,ei as getLastDayOfBengaliMonth,ft as getMonthFromIndex,ut as getMonthIndex,ct as getMonthMapping,mr as getMonthName,vr as getMonthRange,zt as getNextBanglaWeekday,ot as getNextMonth,ss as getNextOrdinal,Si as getNextSeason,Pr as getNextWeekday,ua as getOperator,es as getOrdinalSequence,ts as getOrdinalType,Gt as getPreviousBanglaWeekday,it as getPreviousMonth,as as getPreviousOrdinal,Ti as getPreviousSeason,kr as getPreviousWeekday,os as getRanking,G as getSeason,Mi as getSeasonByIndex,_ as getSeasonFromMonth,J as getSeasonIndex,$i as getSeasonInfo,yr as getSeasonMonths,rs as getSpecialOrdinals,Ps as getTimePeriod,gr as getWeekdayName,La as hasBengaliConsonants,Gn as hasBengaliDigits,Hn as hasBengaliMonth,Va as hasBengaliVowels,na as hasCountryCode,Oa as hasOnlyBengaliDigits,Is as hasSeconds,_i as hasSpecialOrdinal,an as hasTakaSymbol,un as hasTakaWord,Cr as isBanglaCurrency,Er as isBanglaDigit,Yi as isBanglaOrdinal,Sa as isBanglaText,Vt as isBanglaWeekend,Qo as isBengaliDateInRange,ni as isBengaliLeapYear,sn as isCurrencyInRange,No as isDateInRange,wo as isFuture,Ui as isInSpecialOrdinalRange,Fa as isMixedContent,st as isMonthInRange,Ei as isMonthInSeason,tn as isNegativeAmount,Le as isNumberInRange,yo as isPast,nn as isPositiveAmount,$a as isPrimarilyBengali,Ls as isSameDay,ca as isSameNumber,Fi as isSameSeason,Cs as isTimeInRange,xo as isToday,N as isValidBanglaMonth,we as isValidBanglaNumber,Ft as isValidBanglaWeekday,y as isValidBengaliDate,lr as isValidBengaliDateString,zr as isValidBengaliDay,L as isValidBengaliMonth,C as isValidBengaliYear,c as isValidCurrency,p as isValidDate,xi as isValidDateForSeason,$t as isValidDateForWeekday,di as isValidMonth,I as isValidMonthNumber,De as isValidNumber,Ne as isValidNumberForOrdinal,Be as isValidNumberForWords,ea as isValidOperatorCode,d as isValidOrdinal,ta as isValidPhoneFormat,hi as isValidSeasonName,Ns as isValidTimeInput,Br as isValidTimeString,Ct as isValidWeekdayNumber,Or as isWeekend,on as isZeroAmount,hn as multiplyCurrency,Nn as negateAmount,U as normalizePhoneNumber,Pa as normalizeWhitespace,Oe as parseAndConvertToBangla,mt as parseAndConvertToMonth,Qi as parseAndConvertToOrdinal,ba as parseAndFormat,In as parseAndFormatCurrency,X as parseCurrency,br as parseDate,Yr as parsePhoneNumber,Ir as parseTime,Ht as parseWeekdayInput,ys as relativeDay,Dr as relativeTime,Ur as removeBengaliChars,ma as removeCountryCode,S as roundCurrency,pn as safeFormatCurrency,Lr as safeFormatDate,la as safeFormatPhone,vs as safeFormatTime,nt as safeFromBanglaMonth,ve as safeFromBanglaNumber,Yt as safeFromBanglaWeekday,Xo as safeFromBengali,Ai as safeGetSeason,Wi as safeGetSeasonFromMonth,bn as safeParseCurrency,Vr as safeParseDate,Os as safeRelativeTime,et as safeToBanglaMonth,$e as safeToBanglaNumber,Rt as safeToBanglaWeekday,Gr as safeToBengali,Zi as safeToOrdinal,jn as sanitizeBanglaMonth,Ro as sanitizeBengaliDate,va as sanitizeBengaliText,ar as sanitizeCurrencyInput,Rn as sanitizeDate,cr as sanitizeMonthNumber,sr as sanitizeNumberInput,wr as sanitizeOrdinalInput,Mr as sanitizePhoneNumber,Nr as sanitizeTimeInput,pr as sanitizeWeekdayInput,Rr as secondsToTime,wn as splitAmount,ka as splitBengaliContent,ur as subtractCurrency,Fr as sumCurrency,$s as timeDifferenceMinutes,T as timeToSeconds,x as toBanglaMonth,f as toBanglaNumber,P as toBanglaWeekday,M as toBengali,w as toOrdinal,q as toWords,Ve as truncateDecimals,Ba as validateBangla,er as validatePhone};
2
2
  //# sourceMappingURL=index.js.map