bangla-stdlib 1.0.3 → 1.0.4

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.js CHANGED
@@ -1,2 +1,2 @@
1
- var zr=Object.defineProperty;var t=(r,e)=>zr(r,"name",{value:e,configurable:!0});var R=["\u09E6","\u09E7","\u09E8","\u09E9","\u09EA","\u09EB","\u09EC","\u09ED","\u09EE","\u09EF"],V=["0","1","2","3","4","5","6","7","8","9"];var M=["\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 A=["\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 d=["\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"];var k=["013","014","015","016","017","018","019"],er={"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"}};function m(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 a=Math.abs(r),s=Math.log10(a);if(Number.isInteger(s)&&s>=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 n=!1,o=!1,i="";for(let a=0;a<e.length;a++){let s=e[a];if(s==="."){if(n)throw new Error("Multiple decimal points");n=!0,i+=".";continue}if(s==="-"){if(a!==0)throw new Error("Invalid minus position");i+="-";continue}let u=V.indexOf(s);if(u!==-1){o=!0,i+=R[u];continue}throw new Error(`Invalid character in number: ${s}`)}if(!o)throw new Error("No digits found");if(n){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}t(m,"toBanglaNumber");function I(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 n=!1,o=!1,i="";for(let s=0;s<e.length;s++){let u=e[s];if(u==="."){if(n)throw new Error("Multiple decimal points");n=!0,i+=".";continue}if(u==="-"){if(s!==0)throw new Error("Invalid minus position");i+="-";continue}let c=R.indexOf(u);if(c!==-1){o=!0,i+=V[c];continue}throw new Error(`Invalid Bangla digit: ${u}`)}if(!o)throw new Error("No digits found");if(n){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 a=Number(i);if(!Number.isFinite(a))throw new TypeError("Failed to parse Bangla number");return a}t(I,"fromBanglaNumber");function nr(r){if(r===0)return"\u09B6\u09C2\u09A8\u09CD\u09AF";if(r<0)return"\u098B\u09A3\u09BE\u09A4\u09CD\u09AE\u0995 "+nr(-r);if(r<100)return tr(r);if(r<1e3)return L(r);if(r<1e5)return br(r);if(r<1e7)return dr(r);if(r<1e9)return hr(r);if(r<1e11)return Gr(r);throw new Error("Number too large to convert to words")}t(nr,"toWords");function tr(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"],n=["","","\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?n[o]:n[o]+" "+e[i]}t(tr,"convertBelowHundred");function L(r){let e=Math.floor(r/100),n=r%100,o="";return e>0&&(e===1?o="\u098F\u0995\u09B6\u09A4":o=tr(e)+"\u09B6\u09A4"),n>0&&(o+=(o?" ":"")+tr(n)),o}t(L,"convertBelowThousand");function br(r){let e=Math.floor(r/1e3),n=r%1e3,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0":o=L(e)+" \u09B9\u09BE\u099C\u09BE\u09B0"),n>0&&(o+=(o?" ":"")+L(n)),o}t(br,"convertBelowLakh");function dr(r){let e=Math.floor(r/1e5),n=r%1e5,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B2\u0995\u09CD\u09B7":o=L(e)+" \u09B2\u0995\u09CD\u09B7"),n>0&&(o+=(o?" ":"")+br(n)),o}t(dr,"convertBelowCrore");function hr(r){let e=Math.floor(r/1e7),n=r%1e7,o="";return e>0&&(e===1?o="\u098F\u0995 \u0995\u09CB\u099F\u09BF":o=L(e)+" \u0995\u09CB\u099F\u09BF"),n>0&&(o+=(o?" ":"")+dr(n)),o}t(hr,"convertBelowArab");function Gr(r){let e=Math.floor(r/1e9),n=r%1e9,o="";return e>0&&(e===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF":o=L(e)+" \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF"),n>0&&(o+=(o?" ":"")+hr(n)),o}t(Gr,"convertBelowKharab");function xr(r,e={}){let{useBanglaDigits:n=!0,separator:o=","}=e,i=typeof r=="string"?r:r.toString(),[a,s]=i.split("."),u=a;n&&(u=m(a));let c=_r(u,o);if(s!==void 0){let f=n?m(s):s;return`${c}.${f}`}return c}t(xr,"formatNumber");function _r(r,e){let n=r.startsWith("-"),o=n?r.slice(1):r;if(o.length<=3)return r;let a=o.slice(-3),s=o.slice(0,-3),u=[];for(let f=s.length;f>0;f-=2){let g=Math.max(0,f-2);u.unshift(s.slice(g,f))}let c=`${u.join(e)}${e}${a}`;return n?`-${c}`:c}t(_r,"formatIntegerPart");function Ae(r,e={}){let{precision:n=2,useBanglaDigits:o=!0}=e;if(r===0)return o?"\u09E6":"0";let i=Math.abs(r),a=r<0?"-":"",s,u;if(i>=1e7)s=i/1e7,u="\u0995\u09CB\u099F\u09BF";else if(i>=1e5)s=i/1e5,u="\u09B2\u0995\u09CD\u09B7";else if(i>=1e3)s=i/1e3,u="\u09B9\u09BE\u099C\u09BE\u09B0";else{let g=o?m(i):i.toString();return a+g}let c=Number(s.toFixed(n)),f=o?m(c):c.toString();return a+f+" "+u}t(Ae,"formatWithUnits");function w(r){return typeof r=="string"}t(w,"isString");function K(r){return typeof r=="number"}t(K,"isNumber");function yr(r){return r==null}t(yr,"isNullish");var b={isFinite:t(r=>Number.isFinite(r),"isFinite"),isSafeInteger:t(r=>Number.isSafeInteger(r),"isSafeInteger"),isInteger:t(r=>Number.isFinite(r)&&Number.isInteger(r),"isInteger"),isPositive:t(r=>Number.isFinite(r)&&r>0,"isPositive"),isNonNegative:t(r=>Number.isFinite(r)&&r>=0,"isNonNegative"),isNegative:t(r=>Number.isFinite(r)&&r<0,"isNegative"),hasValidDecimalFormat:t(r=>r.split(".").length<=2&&!r.startsWith(".")&&!r.endsWith("."),"hasValidDecimalFormat"),isValidNumber:t(r=>Number.isFinite(r)&&!isNaN(r),"isValidNumber"),isInSafeIntegerRange:t(r=>Number.isFinite(r)&&r>=Number.MIN_SAFE_INTEGER&&r<=Number.MAX_SAFE_INTEGER,"isInSafeIntegerRange")};function or(r,e,n){return b.isFinite(r)&&r>=e&&r<=n}t(or,"isNumberInRange");function z(r,e){return n=>or(n,r,e)}t(z,"createNumberRangeValidator");var F={isMonthNumber:z(1,12),isWeekdayNumber:z(0,6),isHour:z(0,23),isMinuteOrSecond:z(0,59),isSeasonNumber:z(1,6),isPercentage:z(0,100)};function Je(r){if(!w(r))return!1;let e=r.trim();if(e==="")return!1;let n=!1,o=!1;for(let i=0;i<e.length;i++){let a=e[i];if(a==="."){if(n)return!1;n=!0;continue}if(a==="-"){if(i!==0)return!1;continue}if(R.indexOf(a)!==-1){o=!0;continue}return!1}return!(!o||n&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}t(Je,"isValidBanglaNumber");function Qe(r){if(yr(r))return!1;let e=String(r).trim();if(e===""||/[eE]/.test(e))return!1;if(K(r)){if(!b.isFinite(r)||b.isInteger(r)&&!b.isSafeInteger(r))return!1;if(b.isInteger(r)&&Math.abs(r)>=1e5){let i=Math.abs(r),a=Math.log10(i);if(Number.isInteger(a)&&a>=5)return!1}}if(/[০-৯]/.test(e))return!1;let n=!1,o=!1;for(let i=0;i<e.length;i++){let a=e[i];if(a==="."){if(n)return!1;n=!0;continue}if(a==="-"){if(i!==0)return!1;continue}if(V.indexOf(a)!==-1){o=!0;continue}return!1}return!(!o||n&&(e.startsWith(".")||e.startsWith("-.")||e.endsWith(".")))}t(Qe,"isValidNumber");function rt(r){return!K(r)||!b.isFinite(r)||!b.isInteger(r)?!1:r>=-99999999999&&r<=99999999999}t(rt,"isValidNumberForWords");function et(r){return!K(r)||!b.isFinite(r)||!b.isInteger(r)?!1:b.isPositive(r)}t(et,"isValidNumberForOrdinal");function wr(r){if(!w(r))return"";let e=r.trim();return e=e.replace(/,/g,""),e=e.replace(/৳/g,""),e.trim()}t(wr,"sanitizeNumberInput");function ir(r,e){return(n,o)=>{try{return r(n)}catch{return o??e??void 0}}}t(ir,"createSafeWrapper");function ar(r){return e=>{let n=[],o=[];for(let i of e)try{let a=r(i);n.push({input:i,output:a})}catch(a){o.push({input:i,error:a instanceof Error?a.message:String(a)})}return{success:n,errors:o}}}t(ar,"createBatchProcessor");function q(r,e){return n=>n.filter(o=>e(o)).map(o=>r(o))}t(q,"createValidatingBatchProcessor");var Dt=ar(m),Tt=ar(I),It=ir(m,""),Nt=ir(I,0);function Bt(r){let e=wr(r);return m(e)}t(Bt,"parseAndConvertToBangla");function Et(r,e=!0,n=","){return xr(r,{useBanglaDigits:e,separator:n})}t(Et,"formatAndConvert");function St(r){return{words:nr(r),digits:m(r)}}t(St,"convertToWordsAndDigits");var Mt=or;function Ct(r,e=2){let n=Math.pow(10,e);return Math.trunc(r*n)/n}t(Ct,"truncateDecimals");function Y(r,e={}){let{includeSymbol:n=!0,includeWord:o=!1}=e,i=typeof r=="string"?parseFloat(r):r;if(Number.isNaN(i))throw new Error("Invalid amount");let a=m(i.toFixed(2)),s=[];return n&&s.push("\u09F3"),s.push(a),o&&s.push("\u099F\u09BE\u0995\u09BE"),s.join(" ")}t(Y,"formatCurrency");function sr(r){let e=r.replace(/৳/g,"").replace(/টাকা/g,"").trim();return e=e.replace(/\s+/g,""),I(e)}t(sr,"parseCurrency");function l(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)}t(l,"isValidCurrency");function Hr(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)}t(Hr,"isBanglaCurrency");function Ut(r){return l(r)&&r>0}t(Ut,"isPositiveAmount");function jt(r){return l(r)&&r<0}t(jt,"isNegativeAmount");function Kt(r){return l(r)&&r===0}t(Kt,"isZeroAmount");function Dr(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(Hr(e))return e;let n=parseFloat(e);return isNaN(n)?null:n}return null}t(Dr,"sanitizeCurrencyInput");function qt(r,e,n){return!l(r)||!l(e)||!l(n)||e>n?!1:r>=e&&r<=n}t(qt,"isCurrencyInRange");function Zt(r){return typeof r!="string"?!1:r.includes("\u09F3")}t(Zt,"hasTakaSymbol");function Xt(r){return typeof r!="string"?!1:r.includes("\u099F\u09BE\u0995\u09BE")}t(Xt,"hasTakaWord");function N(r,e=2){if(!l(r))throw new Error("Invalid currency amount");let n=Math.pow(10,e);return Math.round(r*n)/n}t(N,"roundCurrency");function Tr(r){let n=r.filter(o=>l(o)).reduce((o,i)=>o+i,0);return N(n,2)}t(Tr,"sumCurrency");function en(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amounts");return N(r+e,2)}t(en,"addCurrency");function Z(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amounts");return N(r-e,2)}t(Z,"subtractCurrency");function tn(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amount or factor");return N(r*e,2)}t(tn,"multiplyCurrency");function Ir(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amount or divisor");if(e===0)throw new Error("Cannot divide by zero");return N(r/e,2)}t(Ir,"divideCurrency");function X(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amount or percentage");return N(r*e/100,2)}t(X,"calculatePercentage");function un(r,e){let n=X(r,e);return Z(r,n)}t(un,"applyDiscount");function mn(r,e){let n=X(r,e);return N(r+n,2)}t(mn,"addTax");function fn(r,e){return X(r,e)}t(fn,"calculateTax");function ln(r,e){return X(r,e)}t(ln,"calculateDiscount");function dn(r,e){if(!l(r))throw new Error("Invalid currency amount");if(!Number.isInteger(e)||e<1)throw new Error("Parts must be a positive integer");let n=Ir(r,e),o=Array(e-1).fill(n),i=Tr(o),a=Z(r,i);return o.push(a),o}t(dn,"splitAmount");function hn(r){if(!l(r))throw new Error("Invalid currency amount");return Math.ceil(r)}t(hn,"ceilCurrency");function xn(r){if(!l(r))throw new Error("Invalid currency amount");return Math.floor(r)}t(xn,"floorCurrency");function Yr(r){return(e,n)=>{let o=r(e),i=r(n);return o<i?-1:o>i?1:0}}t(Yr,"createComparator");var U={number:t((r,e)=>r<e?-1:r>e?1:0,"number"),string:t((r,e)=>r<e?-1:r>e?1:0,"string"),date:Yr(r=>r.getTime()),currency:t((r,e)=>{let n=Math.round(r*100)/100,o=Math.round(e*100)/100;return U.number(n,o)},"currency"),boolean:t((r,e)=>r===e?0:r?1:-1,"boolean")};function Pn(r,e={},n=""){try{let o=typeof r=="string"?parseFloat(r):r;return l(o)?Y(r,e):n}catch{return n}}t(Pn,"safeFormatCurrency");function $n(r,e=0){try{let n=sr(r);return l(n)?n:e}catch{return e}}t($n,"safeParseCurrency");function Rn(r,e={}){return q(o=>Y(o,e),l)(r)}t(Rn,"batchFormatCurrency");function Nr(r,e){if(!l(r)||!l(e))throw new Error("Invalid currency amounts");return U.currency(r,e)}t(Nr,"compareCurrency");function Vn(r){if(!l(r))throw new Error("Invalid currency amount");return Math.abs(r)}t(Vn,"getAbsoluteAmount");function kn(r){if(!l(r))throw new Error("Invalid currency amount");return-r}t(kn,"negateAmount");function Ln(r,e={}){let n=Dr(r);if(n===null)throw new Error("Invalid currency input");if(typeof n=="string"){let o=sr(n);return Y(o,e)}return Y(n,e)}t(Ln,"parseAndFormatCurrency");function zn(r,e){return!l(r)||!l(e)?!1:N(r,2)===N(e,2)}t(zn,"isCurrencyEqual");function Gn(r,e){return Nr(r,e)===1}t(Gn,"isGreaterThan");function _n(r,e){return Nr(r,e)===-1}t(_n,"isLessThan");function h(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return M[r-1]}t(h,"toBanglaMonth");function B(r){let e=M.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla month name: ${r}`);return e+1}t(B,"fromBanglaMonth");function G(r){let{year:e,month:n,day:o}=r,i=W(e);if(n<1||n>12)throw new Error("Invalid Bangla month");if(o<1||o>i[n-1])throw new Error("Invalid Bangla day for given month");let a=e+593,s=new Date(Date.UTC(a,3,14)),u=0;for(let c=1;c<n;c++)u+=i[c-1];return u+=o-1,new Date(s.getTime()+u*864e5)}t(G,"fromBanglaCalendar");function v(r){return typeof r=="number"&&Number.isInteger(r)&&r>0&&isFinite(r)}t(v,"isValidBanglaYear");function _(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}t(_,"isValidBanglaMonthNumber");function Ur(r,e,n){if(typeof r!="number"||!Number.isInteger(r)||r<1||!_(e)||!v(n))return!1;let o=W(n);return r<=o[e-1]}t(Ur,"isValidBanglaDay");function D(r){if(!r||typeof r!="object")return!1;let{year:e,month:n,day:o}=r;return v(e)&&_(n)&&Ur(o,n,e)}t(D,"isValidBanglaDate");function uo(r){return D(r)?r:null}t(uo,"sanitizeBanglaDate");function jr(r,e){try{return!(r instanceof Date)||isNaN(r.getTime())?e||x(new Date):x(r)}catch{return e||x(new Date)}}t(jr,"safeToBangla");function bo(r,e){try{return D(r)?G(r):e||new Date}catch{return e||new Date}}t(bo,"safeFromBangla");function Kr(r,e){return!_(r)||!v(e)?0:W(e)[r-1]}t(Kr,"getBanglaMonthDays");function ho(r,e){if(!D(r))throw new Error("Invalid Bangla date");let n=G(r),o=new Date(n.getTime()+e*864e5);return x(o)}t(ho,"addDaysToBanglaDate");function xo(r,e){if(!D(r)||!D(e))throw new Error("Invalid Bangla date");let n=G(r),o=G(e);return Math.floor((o.getTime()-n.getTime())/864e5)}t(xo,"getBanglaDateDifference");function Br(r,e){if(!D(r)||!D(e))throw new Error("Invalid Bangla 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}t(Br,"compareBanglaDates");function yo(r,e,n){return!D(r)||!D(e)||!D(n)?!1:Br(r,e)>=0&&Br(r,n)<=0}t(yo,"isBanglaDateInRange");function wo(r,e){if(!_(r)||!v(e))throw new Error("Invalid month or year");return{year:e,month:r,day:1}}t(wo,"getFirstDayOfBanglaMonth");function Do(r,e){if(!_(r)||!v(e))throw new Error("Invalid month or year");let n=Kr(r,e);return{year:e,month:r,day:n}}t(Do,"getLastDayOfBanglaMonth");function To(r){if(!v(r))return!1;let e=r+594;return e%4===0&&e%100!==0||e%400===0}t(To,"isBanglaLeapYear");function Io(r,e){if(!D(r))throw new Error("Invalid Bangla date");let n=G(r);return Er(n,e)}t(Io,"formatBanglaDate");function No(){return x(new Date)}t(No,"getCurrentBanglaDate");function Bo(r){return r.map(e=>jr(e))}t(Bo,"batchToBangla");function W(r){let e=r+594;return[31,31,31,31,31,30,30,30,30,30,e%4===0&&(e%100!==0||e%400===0)?31:30,30]}t(W,"getBanglaMonthLengths");function x(r){let e=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),n=e.getUTCFullYear(),o=e.getUTCMonth()+1,i=e.getUTCDate(),a=o<4||o===4&&i<14,s=n-(a?594:593),u=a?n-1:n,c=new Date(Date.UTC(u,3,14)),f=Math.floor((e.getTime()-c.getTime())/864e5),g=W(s),P=f,O=0;for(;P>=g[O];)P-=g[O],O++;return{year:s,month:O+1,day:P+1}}t(x,"toBanglaCalendar");function Er(r,e={}){let{includeYear:n=!0,includeWeekday:o=!1}=e,i=x(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()]]:[],m(i.day),h(i.month),...n?[m(i.year)]:[]].join(" ")}t(Er,"getBanglaDate");function Ho(r){let e=x(r);return h(e.month)}t(Ho,"getMonthName");function C(r){return b.isInteger(r)&&F.isMonthNumber(r)}t(C,"isValidMonthNumber");function E(r){if(!w(r))return!1;let e=r.trim();return M.includes(e)}t(E,"isValidBanglaMonth");function Sr(r){if(w(r)){let n=r.trim();if(n==="")return null;let o=Number(n);if(isNaN(o))return null;r=o}if(!b.isValidNumber(r))return null;let e=Math.round(r);return!b.isInteger(e)||!F.isMonthNumber(e)?null:e}t(Sr,"sanitizeMonthNumber");function Xo(r){if(!w(r))return null;let e=r.trim();return e===""||!E(e)?null:e}t(Xo,"sanitizeBanglaMonth");function ii(r,e=""){try{return C(r)?h(r):e}catch{return e}}t(ii,"safeToBanglaMonth");function ai(r,e=0){try{return E(r)?B(r):e}catch{return e}}t(ai,"safeFromBanglaMonth");function si(){return[...M]}t(si,"getAllMonths");function ui(r){if(typeof r=="number"){if(!C(r))throw new Error("Invalid month number");return r===12?1:r+1}else{if(!E(r))throw new Error("Invalid Bangla month name");let e=B(r),n=e===12?1:e+1;return h(n)}}t(ui,"getNextMonth");function mi(r){if(typeof r=="number"){if(!C(r))throw new Error("Invalid month number");return r===1?12:r-1}else{if(!E(r))throw new Error("Invalid Bangla month name");let e=B(r),n=e===1?12:e-1;return h(n)}}t(mi,"getPreviousMonth");function qr(r,e){let n=typeof r=="number",o,i;if(n){if(!C(r)||!C(e))throw new Error("Invalid month numbers");o=r,i=e}else{if(!E(r)||!E(e))throw new Error("Invalid Bangla month names");o=B(r),i=B(e)}let a=[],s=o;for(;n?a.push(s):a.push(h(s)),!(s===i||(s=s===12?1:s+1,a.length>12)););return a}t(qr,"getMonthRange");function fi(r,e,n){try{return qr(e,n).includes(r)}catch{return!1}}t(fi,"isMonthInRange");function li(r,e){let n,o;if(typeof r=="number"){if(!C(r))throw new Error("Invalid month1");n=r}else{if(!E(r))throw new Error("Invalid month1");n=B(r)}if(typeof e=="number"){if(!C(e))throw new Error("Invalid month2");o=e}else{if(!E(e))throw new Error("Invalid month2");o=B(e)}return n<o?-1:n>o?1:0}t(li,"compareMonths");function ci(r){if(typeof r=="number"){if(!C(r))throw new Error("Invalid month number");return r-1}else{if(!E(r))throw new Error("Invalid Bangla month name");return B(r)-1}}t(ci,"getMonthIndex");function pi(r){if(!Number.isInteger(r)||r<0||r>11)throw new Error("Index must be between 0 and 11");return r+1}t(pi,"getMonthFromIndex");function gi(r){if(typeof r=="string"&&E(r.trim()))return r.trim();let e=Sr(r);if(e===null)throw new Error("Invalid month input");return h(e)}t(gi,"parseAndConvertToMonth");function bi(r){return r.filter(e=>C(e)).map(e=>h(e))}t(bi,"batchToBanglaMonth");function di(){let r={};for(let e=1;e<=12;e++)r[e]=h(e);return r}t(di,"getMonthMapping");function H(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return A[r]}t(H,"toBanglaWeekday");function J(r){let e=A.indexOf(r);if(e===-1)throw new Error(`Invalid Bangla weekday name: ${r}`);return e}t(J,"fromBanglaWeekday");function Mr(r){let e=r.getDay();return H(e)}t(Mr,"getWeekdayName");function ki(r){return b.isInteger(r)&&F.isWeekdayNumber(r)}t(ki,"isValidWeekdayNumber");function Li(r){if(!w(r))return!1;let e=r.trim();return e===""?!1:A.includes(e)}t(Li,"isValidBanglaWeekday");function zi(r){return p(r)}t(zi,"isValidDateForWeekday");function Cr(r){return w(r)?r.trim():""}t(Cr,"sanitizeWeekdayInput");function Zr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return r===5||r===6}t(Zr,"isWeekend");function Ki(r){let e=J(r);return Zr(e)}t(Ki,"isBanglaWeekend");function Xr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r+1)%7}t(Xr,"getNextWeekday");function Jr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r-1+7)%7}t(Jr,"getPreviousWeekday");function qi(r){let e=Xr(r);return H(e)}t(qi,"getNextBanglaWeekday");function Zi(r){let e=Jr(r);return H(e)}t(Zi,"getPreviousBanglaWeekday");function Xi(r){let e=Cr(r);return J(e)}t(Xi,"parseWeekdayInput");function Ji(r,e=""){try{return H(r)}catch{return e}}t(Ji,"safeToBanglaWeekday");function Qi(r,e=-1){try{return J(r)}catch{return e}}t(Qi,"safeFromBanglaWeekday");function ra(){return[...A]}t(ra,"getAllBanglaWeekdays");function ea(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}t(ea,"getDaysBetween");function ur(r,e={}){let{includeWeekday:n=!1,includeYear:o=!0,format:i="long"}=e,a=[];if(n){let g=Mr(r);a.push(g)}let s=x(r),u=m(s.day),c=h(s.month),f=o?m(s.year):null;return i==="short"?a.push(`${u} ${c}`):a.push(u,c),f&&a.push(f),a.join(" ")}t(ur,"formatDate");function Ar(r){let e=r.trim().replace(/\s+/g," "),n=e.match(/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/);if(n){let i=n[1],a=n[2],s=n[3],u=/[০-৯]/.test(i)?I(i):parseInt(i,10),c=B(a),f=s?/[০-৯]/.test(s)?I(s):parseInt(s,10):new Date().getFullYear();return new Date(f,c-1,u)}let o=e.match(/^(\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)$/);if(o){let i=o[1],a=o[2],s=o[3],u=/[০-৯]/.test(i)?I(i):parseInt(i,10),c=/[০-৯]/.test(a)?I(a):parseInt(a,10),f=/[০-৯]/.test(s)?I(s):parseInt(s,10);return new Date(f,c-1,u)}throw new Error(`Unable to parse date string: ${r}`)}t(Ar,"parseDate");function p(r){return r instanceof Date&&!isNaN(r.getTime())}t(p,"isValidDate");function Or(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 n=/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/,o=/^(\d{1,2}|[০-৯]{1,2})[\/\-](\d{1,2}|[০-৯]{1,2})[\/\-](\d{2,4}|[০-৯]{2,4})$/;return n.test(e)||o.test(e)}t(Or,"isValidBanglaDateString");function wa(r){return typeof r!="string"?!1:/[০-৯]/.test(r)}t(wa,"hasBanglaDigits");function Da(r){return typeof r!="string"?!1:/(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)/.test(r)}t(Da,"hasBanglaMonth");function Ta(r){return p(r)?r:null}t(Ta,"sanitizeDate");function mr(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");return U.date(r,e)}t(mr,"compareDates");function Aa(r,e){if(!p(r)||!p(e))throw new Error("Invalid date");let n=e.getTime()-r.getTime();return Math.floor(n/(1e3*60*60*24))}t(Aa,"getDaysDifference");function Oa(r,e){if(!p(r))throw new Error("Invalid date");let n=new Date(r);return n.setDate(n.getDate()+e),n}t(Oa,"addDays");function $a(r){if(!p(r))return!1;let e=new Date;return r.getDate()===e.getDate()&&r.getMonth()===e.getMonth()&&r.getFullYear()===e.getFullYear()}t($a,"isToday");function Ra(r){return p(r)?r.getTime()<Date.now():!1}t(Ra,"isPast");function Va(r){return p(r)?r.getTime()>Date.now():!1}t(Va,"isFuture");function ka(r,e,n){return!p(r)||!p(e)||!p(n)?!1:mr(r,e)>=0&&mr(r,n)<=0}t(ka,"isDateInRange");function Qr(r,e,n=""){try{return p(r)?ur(r,e):n}catch{return n}}t(Qr,"safeFormatDate");function re(r,e){try{return Ar(r)}catch{return e||new Date}}t(re,"safeParseDate");function qa(r){return ur(new Date,r)}t(qa,"formatToday");function Za(r,e){return r.map(n=>Qr(n,e))}t(Za,"batchFormatDates");function Xa(r){return r.map(e=>re(e))}t(Xa,"batchParseDates");function Ja(r){return Or(r)}t(Ja,"canParseBanglaDate");function Q(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return r<=2?d[0]:r<=4?d[1]:r<=6?d[2]:r<=8?d[3]:r<=10?d[4]:d[5]}t(Q,"getSeasonFromMonth");function j(r){let e=x(r);return Q(e.month)}t(j,"getSeason");function ys(r){return b.isInteger(r)&&F.isMonthNumber(r)}t(ys,"isValidMonth");function ws(r){if(!w(r))return!1;let e=r.trim();return e===""?!1:d.includes(e)}t(ws,"isValidSeasonName");function Ds(r){return p(r)}t(Ds,"isValidDateForSeason");function Ss(){return[...d]}t(Ss,"getAllSeasons");function Fr(r){let n={\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE:[1,2],\u09AC\u09B0\u09CD\u09B7\u09BE:[3,4],"\u09B6\u09B0\u09CE":[5,6],\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4:[7,8],\u09B6\u09C0\u09A4:[9,10],\u09AC\u09B8\u09A8\u09CD\u09A4:[11,12]}[r];if(!n)throw new Error(`Invalid season name: ${r}`);return n}t(Fr,"getSeasonMonths");function fr(r){return d.indexOf(r)}t(fr,"getSeasonIndex");function Ms(r){if(r<0||r>5)throw new Error("Season index must be between 0 and 5");return d[r]}t(Ms,"getSeasonByIndex");function Cs(r,e){if(r<1||r>12)return!1;try{return Fr(e).includes(r)}catch{return!1}}t(Cs,"isMonthInSeason");function As(r){let e=fr(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let n=(e+1)%6;return d[n]}t(As,"getNextSeason");function Os(r){let e=fr(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let n=(e-1+6)%6;return d[n]}t(Os,"getPreviousSeason");function Fs(r,e=""){if(!(r instanceof Date)||isNaN(r.getTime()))return e;try{return j(r)}catch{return e}}t(Fs,"safeGetSeason");function Ws(r,e=""){try{return Q(r)}catch{return e}}t(Ws,"safeGetSeasonFromMonth");function vs(){return j(new Date)}t(vs,"getCurrentSeason");function Ps(r,e){let n=j(r),o=j(e);return n===o}t(Ps,"isSameSeason");function $s(r){let e=fr(r);if(e===-1)throw new Error(`Invalid season name: ${r}`);let n=Fr(r),o=n.map(i=>M[i-1]);return{name:r,months:n,index:e,monthNames:o}}t($s,"getSeasonInfo");function T(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]:`${m(r)}\u09A4\u09AE`}t(T,"toOrdinal");function y(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)&&Number.isInteger(r)&&r>=1}t(y,"isValidOrdinal");function js(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")}t(js,"isBanglaOrdinal");function Ks(r){return y(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}t(Ks,"hasSpecialOrdinal");function Wr(r){if(typeof r=="string"){let n=r.trim();if(n==="")return null;let o=Number(n);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}t(Wr,"sanitizeOrdinalInput");function qs(r){return y(r)&&r>=1&&r<=100}t(qs,"isInSpecialOrdinalRange");function eu(r,e=""){try{return y(r)?T(r):e}catch{return e}}t(eu,"safeToOrdinal");var tu=q(T,y);function nu(r){let e=Wr(r);if(e===null)throw new Error("Invalid input for ordinal conversion");return T(e)}t(nu,"parseAndConvertToOrdinal");function ou(){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:T(e)}))}t(ou,"getSpecialOrdinals");function iu(r,e){if(!y(r)||!y(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 n=[];for(let o=r;o<=e;o++)n.push(T(o));return n}t(iu,"getOrdinalSequence");function au(r,e={}){let{separator:n=" ",showNumber:o=!0}=e,i=T(r);return o?`${r}${n}${i}`:i}t(au,"formatOrdinal");function su(r){if(!y(r))throw new Error("Number must be a valid positive integer");let e=T(r);return e.endsWith("\u09A4\u09AE")&&/[০-৯]/.test(e)?"suffix":"special"}t(su,"getOrdinalType");function uu(r,e){let n=T(r);return e?`${n} ${e}`:n}t(uu,"getRanking");function mu(r,e){if(!y(r)||!y(e))throw new Error("Both numbers must be valid positive integers");return r<e?-1:r>e?1:0}t(mu,"compareOrdinals");function fu(r){if(!y(r))throw new Error("Current must be a valid positive integer");return T(r+1)}t(fu,"getNextOrdinal");function lu(r){if(!y(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 T(r-1)}t(lu,"getPreviousOrdinal");function cu(r,e=1){if(!y(e))throw new Error("startFrom must be a valid positive integer");return r.map((n,o)=>{let i=e+o;return{position:i,ordinal:T(i),item:n}})}t(cu,"createOrdinalList");function lr(r,e={}){let{includeSeconds:n=!1,use12Hour:o=!1}=e,i,a,s;if(typeof r=="string"){let $=r.split(":");if(i=parseInt($[0],10),a=parseInt($[1],10),s=$[2]?parseInt($[2],10):0,Number.isNaN(i)||Number.isNaN(a))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss")}else i=r.getHours(),a=r.getMinutes(),s=r.getSeconds();let u=i,c="";o&&(c=ee(i),i===0?u=12:i>12&&(u=i-12));let f=m(u.toString().padStart(2,"0")),g=m(a.toString().padStart(2,"0")),P=[f,g];if(n){let $=m(s.toString().padStart(2,"0"));P.push($)}let O=P.join(":");return c?`${c} ${O}`:O}t(lr,"formatTime");function ee(r){return r>=6&&r<12?"\u09B8\u0995\u09BE\u09B2":r>=12&&r<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":r>=15&&r<18?"\u09AC\u09BF\u0995\u09BE\u09B2":r>=18&&r<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}t(ee,"getBanglaPeriod");function vr(r,e=new Date){let n=r.getTime()-e.getTime(),o=Math.floor(n/1e3),i=Math.floor(o/60),a=Math.floor(i/60),s=Math.abs(a),u=new Date(e);u.setHours(0,0,0,0);let c=new Date(r);c.setHours(0,0,0,0);let f=Math.floor((c.getTime()-u.getTime())/(1e3*60*60*24));if(s<24)return o===0?"\u098F\u0996\u09A8":Math.abs(o)<60?o<0?`${m(Math.abs(o))} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u0986\u0997\u09C7`:`${m(o)} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u09AA\u09B0\u09C7`:Math.abs(i)<60?i<0?`${m(Math.abs(i))} \u09AE\u09BF\u09A8\u09BF\u099F \u0986\u0997\u09C7`:`${m(i)} \u09AE\u09BF\u09A8\u09BF\u099F \u09AA\u09B0\u09C7`:a<0?`${m(Math.abs(a))} \u0998\u09A3\u09CD\u099F\u09BE \u0986\u0997\u09C7`:`${m(a)} \u0998\u09A3\u09CD\u099F\u09BE \u09AA\u09B0\u09C7`;if(f===-1)return"\u0997\u09A4\u0995\u09BE\u09B2";if(f===1)return"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2";if(f===-2)return"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1";if(f===2)return"\u09AA\u09B0\u09B6\u09C1";if(f<0){if(Math.abs(f)<7)return`${m(Math.abs(f))} \u09A6\u09BF\u09A8 \u0986\u0997\u09C7`;if(Math.abs(f)<30){let g=Math.floor(Math.abs(f)/7);return`${m(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u0986\u0997\u09C7`}else if(Math.abs(f)<365){let g=Math.floor(Math.abs(f)/30);return`${m(g)} \u09AE\u09BE\u09B8 \u0986\u0997\u09C7`}else{let g=Math.floor(Math.abs(f)/365);return`${m(g)} \u09AC\u099B\u09B0 \u0986\u0997\u09C7`}}else{if(f<7)return`${m(f)} \u09A6\u09BF\u09A8 \u09AA\u09B0\u09C7`;if(f<30){let g=Math.floor(f/7);return`${m(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u09AA\u09B0\u09C7`}else if(f<365){let g=Math.floor(f/30);return`${m(g)} \u09AE\u09BE\u09B8 \u09AA\u09B0\u09C7`}else{let g=Math.floor(f/365);return`${m(g)} \u09AC\u099B\u09B0 \u09AA\u09B0\u09C7`}}}t(vr,"relativeTime");function Iu(r,e=new Date){let n=new Date(e);n.setHours(0,0,0,0);let o=new Date(r);o.setHours(0,0,0,0);let i=Math.floor((o.getTime()-n.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":""}t(Iu,"relativeDay");function Pr(r){if(typeof r!="string")return!1;let e=r.trim();if(e==="")return!1;let n=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,o=e.match(n);if(!o)return!1;let i=parseInt(o[1],10),a=parseInt(o[2],10),s=o[3]?parseInt(o[3],10):0;return!(i<0||i>23||a<0||a>59||s<0||s>59)}t(Pr,"isValidTimeString");function Su(r){return p(r)||Pr(r)}t(Su,"isValidTimeInput");function Mu(r){return Pr(r)?r.trim().split(":").length===3:!1}t(Mu,"hasSeconds");function $r(r){return typeof r!="string"?"":r.trim()}t($r,"sanitizeTimeInput");function cr(r){let n=$r(r).split(":"),o=parseInt(n[0],10),i=parseInt(n[1],10),a=n[2]?parseInt(n[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(a<0||a>59)throw new Error("Seconds must be between 0 and 59");return{hours:o,minutes:i,seconds:a}}t(cr,"parseTime");function S(r){let{hours:e,minutes:n,seconds:o}=cr(r);return e*3600+n*60+o}t(S,"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),n=Math.floor(r%3600/60),o=r%60;return`${e.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}t(Rr,"secondsToTime");function Pu(r,e){let n=S(r),o=S(e);return n<o?-1:n>o?1:0}t(Pu,"compareTimes");function $u(r,e){return r.getFullYear()===e.getFullYear()&&r.getMonth()===e.getMonth()&&r.getDate()===e.getDate()}t($u,"isSameDay");function Lu(r,e){let o=S(r)+e*60;return o=(o%86400+86400)%86400,Rr(o)}t(Lu,"addMinutesToTime");function zu(r,e){let n=S(r),o=S(e);return Math.floor((o-n)/60)}t(zu,"timeDifferenceMinutes");function Yu(r,e,n){let o=S(r),i=S(e),a=S(n);return o>=i&&o<=a}t(Yu,"isTimeInRange");function em(r,e={},n=""){try{return lr(r,e)}catch{return n}}t(em,"safeFormatTime");function tm(r,e=new Date,n=""){try{return vr(r,e)}catch{return n}}t(tm,"safeRelativeTime");function nm(r){let e;if(typeof r=="string"){let{hours:n}=cr(r);e=n}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"}t(nm,"getTimePeriod");function om(r={}){return lr(new Date,r)}t(om,"getCurrentTimeBangla");function pr(r,e={}){let{includeCountryCode:n=!1,useBanglaDigits:o=!1,format:i="spaced"}=e,a=r.replace(/\D/g,""),s=a;if(a.startsWith("880")?s=a.slice(3):a.startsWith("+880")&&(s=a.slice(4)),s.length!==10&&s.length!==11)throw new Error("Invalid Bangladeshi phone number length");let u="";return s.length===11?u=`${s.slice(0,3)} ${s.slice(3,7)} ${s.slice(7)}`:u=`0${s.slice(0,2)} ${s.slice(2,6)} ${s.slice(6)}`,i==="dashed"?u=u.replace(/\s/g,"-"):i==="compact"&&(u=u.replace(/\s/g,"")),n&&(u="+880 "+u),o&&(u=m(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)}`),n&&(u="+\u09EE\u09EE\u09E6 "+u)),u}t(pr,"formatPhone");function gr(r){let e=r.replace(/\D/g,""),n=e;if(e.startsWith("880")?n=e.slice(3):e.startsWith("+880")&&(n=e.slice(4)),n.length!==10&&n.length!==11||!n.startsWith("01")&&n.length===11||n.length===10&&!n.startsWith("1"))return!1;let o=n.length===11?n.slice(0,3):"0"+n.slice(0,2);return k.includes(o)}t(gr,"validatePhone");function xm(r){return k.includes(r)}t(xm,"isValidOperatorCode");function ym(r){let e=r.trim();return e.startsWith("+880")||e.startsWith("880")}t(ym,"hasCountryCode");function Vr(r){if(typeof r!="string")return"";let e=r.trim(),n=e.startsWith("+");return e=e.replace(/\D/g,""),n&&(e="+"+e),e}t(Vr,"sanitizePhoneNumber");function wm(r){return typeof r!="string"?!1:/^[\d\s\-()+ ]+$/.test(r.trim())}t(wm,"isValidPhoneFormat");function Em(r){if(!gr(r))return null;let e=r.replace(/\D/g,""),n=e;e.startsWith("880")&&(n=e.slice(3));let o=n.length===11?n.slice(0,3):"0"+n.slice(0,2),i=er[o];return i?{code:o,...i}:null}t(Em,"getOperator");function te(r){if(!gr(r))throw new Error("Invalid phone number");let e=r,n=r.replace(/\D/g,""),o=n,i="880";n.startsWith("880")&&(o=n.slice(3)),o.length===10&&(o="0"+o);let a=o.slice(0,3),s=o.slice(3);return{original:e,countryCode:i,operatorCode:a,number:s,fullNumber:o}}t(te,"parsePhoneNumber");function rr(r){return te(r).fullNumber}t(rr,"normalizePhoneNumber");function Sm(r,e="plus"){let o=rr(r).slice(1);return e==="plus"?`+880${o}`:`880${o}`}t(Sm,"addCountryCode");function Mm(r){return rr(r)}t(Mm,"removeCountryCode");function Cm(r,e={},n=""){try{return pr(r,e)}catch{return n}}t(Cm,"safeFormatPhone");function Am(r,e){try{let n=rr(r),o=rr(e);return n===o}catch{return!1}}t(Am,"isSameNumber");function Om(){return[...k]}t(Om,"getAllOperatorCodes");function Fm(){return k.map(r=>({code:r,...er[r]}))}t(Fm,"getAllOperators");function Wm(r,e={}){let n=Vr(r);return pr(n,e)}t(Wm,"parseAndFormat");function Lm(r){return/^[\u0980-\u09FF\s]+$/.test(r)}t(Lm,"validateBangla");function kr(r){return/[০-৯]/.test(r)}t(kr,"isBanglaDigit");function Ym(r){return/[\u0980-\u09FF]/.test(r)}t(Ym,"isBanglaText");function ne(r){let e=r.match(/[\u0980-\u09FF]/g);return e?e.length:0}t(ne,"countBanglaCharacters");function qm(r){let e=r.match(/[০-৯]/g);return e?e.length:0}t(qm,"countBanglaDigits");function Zm(r){let e=/[\u0980-\u09FF]/.test(r),n=/[a-zA-Z0-9]/.test(r);return e&&n}t(Zm,"isMixedContent");function Lr(r,e=!1){return e?r.replace(/[^\u0980-\u09FF\s]/g,"").trim():r.replace(/[^\u0980-\u09FF]/g,"")}t(Lr,"extractBanglaChars");function oe(r){return r.replace(/[\u0980-\u09FF]/g,"")}t(oe,"removeBanglaChars");function ie(r){let e=r.replace(/\s/g,"");if(e.length===0)return 0;let n=ne(r);return Math.round(n/e.length*100)}t(ie,"getBanglaPercentage");function Xm(r){return ie(r)>50}t(Xm,"isPrimarilyBangla");function Jm(r,e=!0,n=""){let o=Lr(r,e);return o.length>0?o:n}t(Jm,"sanitizeBanglaText");function Qm(r){return/\d|[০-৯]/.test(r)?!/\d/.test(r)&&kr(r):!1}t(Qm,"hasOnlyBanglaDigits");function rf(r){return r.replace(/\s+/g," ").trim()}t(rf,"normalizeWhitespace");function ef(r){return{bengali:Lr(r,!0).trim(),nonBangla:oe(r).trim()}}t(ef,"splitBanglaContent");function tf(r){return/[ক-হড়ঢ়য়ৎ]/.test(r)}t(tf,"hasBanglaConsonants");function nf(r){return/[অ-ঔা-ৌ]/.test(r)}t(nf,"hasBanglaVowels");export{R as BANGLA_DIGITS,M as BANGLA_MONTHS,d as BANGLA_SEASONS,A as BANGLA_WEEKDAYS,V as ENGLISH_DIGITS,er as OPERATOR_INFO,k as VALID_OPERATOR_CODES,Sm as addCountryCode,en as addCurrency,Oa as addDays,ho as addDaysToBanglaDate,Lu as addMinutesToTime,mn as addTax,un as applyDiscount,Rn as batchFormatCurrency,Za as batchFormatDates,Tt as batchFromBanglaNumber,Xa as batchParseDates,Bo as batchToBangla,bi as batchToBanglaMonth,Dt as batchToBanglaNumber,tu as batchToOrdinal,ln as calculateDiscount,X as calculatePercentage,fn as calculateTax,Ja as canParseBanglaDate,hn as ceilCurrency,Br as compareBanglaDates,Nr as compareCurrency,mr as compareDates,li as compareMonths,mu as compareOrdinals,Pu as compareTimes,St as convertToWordsAndDigits,ne as countBanglaCharacters,qm as countBanglaDigits,cu as createOrdinalList,Ir as divideCurrency,Lr as extractBanglaChars,xn as floorCurrency,Et as formatAndConvert,Io as formatBanglaDate,Y as formatCurrency,ur as formatDate,xr as formatNumber,au as formatOrdinal,pr as formatPhone,lr as formatTime,qa as formatToday,Ae as formatWithUnits,G as fromBanglaCalendar,B as fromBanglaMonth,I as fromBanglaNumber,J as fromBanglaWeekday,Vn as getAbsoluteAmount,ra as getAllBanglaWeekdays,si as getAllMonths,Om as getAllOperatorCodes,Fm as getAllOperators,Ss as getAllSeasons,Er as getBanglaDate,xo as getBanglaDateDifference,Kr as getBanglaMonthDays,W as getBanglaMonthLengths,ie as getBanglaPercentage,No as getCurrentBanglaDate,vs as getCurrentSeason,om as getCurrentTimeBangla,ea as getDaysBetween,Aa as getDaysDifference,wo as getFirstDayOfBanglaMonth,Do as getLastDayOfBanglaMonth,pi as getMonthFromIndex,ci as getMonthIndex,di as getMonthMapping,Ho as getMonthName,qr as getMonthRange,qi as getNextBanglaWeekday,ui as getNextMonth,fu as getNextOrdinal,As as getNextSeason,Xr as getNextWeekday,Em as getOperator,iu as getOrdinalSequence,su as getOrdinalType,Zi as getPreviousBanglaWeekday,mi as getPreviousMonth,lu as getPreviousOrdinal,Os as getPreviousSeason,Jr as getPreviousWeekday,uu as getRanking,j as getSeason,Ms as getSeasonByIndex,Q as getSeasonFromMonth,fr as getSeasonIndex,$s as getSeasonInfo,Fr as getSeasonMonths,ou as getSpecialOrdinals,nm as getTimePeriod,Mr as getWeekdayName,tf as hasBanglaConsonants,wa as hasBanglaDigits,Da as hasBanglaMonth,nf as hasBanglaVowels,ym as hasCountryCode,Qm as hasOnlyBanglaDigits,Mu as hasSeconds,Ks as hasSpecialOrdinal,Zt as hasTakaSymbol,Xt as hasTakaWord,Hr as isBanglaCurrency,yo as isBanglaDateInRange,kr as isBanglaDigit,To as isBanglaLeapYear,js as isBanglaOrdinal,Ym as isBanglaText,Ki as isBanglaWeekend,zn as isCurrencyEqual,qt as isCurrencyInRange,ka as isDateInRange,Va as isFuture,Gn as isGreaterThan,qs as isInSpecialOrdinalRange,_n as isLessThan,Zm as isMixedContent,fi as isMonthInRange,Cs as isMonthInSeason,jt as isNegativeAmount,Mt as isNumberInRange,Ra as isPast,Ut as isPositiveAmount,Xm as isPrimarilyBangla,$u as isSameDay,Am as isSameNumber,Ps as isSameSeason,Yu as isTimeInRange,$a as isToday,D as isValidBanglaDate,Or as isValidBanglaDateString,Ur as isValidBanglaDay,E as isValidBanglaMonth,_ as isValidBanglaMonthNumber,Je as isValidBanglaNumber,Li as isValidBanglaWeekday,v as isValidBanglaYear,l as isValidCurrency,p as isValidDate,Ds as isValidDateForSeason,zi as isValidDateForWeekday,ys as isValidMonth,C as isValidMonthNumber,Qe as isValidNumber,et as isValidNumberForOrdinal,rt as isValidNumberForWords,xm as isValidOperatorCode,y as isValidOrdinal,wm as isValidPhoneFormat,ws as isValidSeasonName,Su as isValidTimeInput,Pr as isValidTimeString,ki as isValidWeekdayNumber,Zr as isWeekend,Kt as isZeroAmount,tn as multiplyCurrency,kn as negateAmount,rr as normalizePhoneNumber,rf as normalizeWhitespace,Bt as parseAndConvertToBangla,gi as parseAndConvertToMonth,nu as parseAndConvertToOrdinal,Wm as parseAndFormat,Ln as parseAndFormatCurrency,sr as parseCurrency,Ar as parseDate,te as parsePhoneNumber,cr as parseTime,Xi as parseWeekdayInput,Iu as relativeDay,vr as relativeTime,oe as removeBanglaChars,Mm as removeCountryCode,N as roundCurrency,Pn as safeFormatCurrency,Qr as safeFormatDate,Cm as safeFormatPhone,em as safeFormatTime,bo as safeFromBangla,ai as safeFromBanglaMonth,Nt as safeFromBanglaNumber,Qi as safeFromBanglaWeekday,Fs as safeGetSeason,Ws as safeGetSeasonFromMonth,$n as safeParseCurrency,re as safeParseDate,tm as safeRelativeTime,jr as safeToBangla,ii as safeToBanglaMonth,It as safeToBanglaNumber,Ji as safeToBanglaWeekday,eu as safeToOrdinal,uo as sanitizeBanglaDate,Xo as sanitizeBanglaMonth,Jm as sanitizeBanglaText,Dr as sanitizeCurrencyInput,Ta as sanitizeDate,Sr as sanitizeMonthNumber,wr as sanitizeNumberInput,Wr as sanitizeOrdinalInput,Vr as sanitizePhoneNumber,$r as sanitizeTimeInput,Cr as sanitizeWeekdayInput,Rr as secondsToTime,dn as splitAmount,ef as splitBanglaContent,Z as subtractCurrency,Tr as sumCurrency,zu as timeDifferenceMinutes,S as timeToSeconds,x as toBanglaCalendar,h as toBanglaMonth,m as toBanglaNumber,H as toBanglaWeekday,T as toOrdinal,nr as toWords,Ct as truncateDecimals,Lm as validateBangla,gr as validatePhone};
1
+ var zr=Object.defineProperty;var e=(r,t)=>zr(r,"name",{value:t,configurable:!0});var $=["\u09E6","\u09E7","\u09E8","\u09E9","\u09EA","\u09EB","\u09EC","\u09ED","\u09EE","\u09EF"],V=["0","1","2","3","4","5","6","7","8","9"];var C=["\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 W=["\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 d=["\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"];var k=["013","014","015","016","017","018","019"],er={"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"}};function l(r){if(r==null)throw new TypeError("Invalid input");let t=String(r).trim();if(t==="")throw new Error("Empty input");if(/[eE]/.test(t))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 a=Math.abs(r),s=Math.log10(a);if(Number.isInteger(s)&&s>=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(t))throw new Error("Input already contains Bangla digits");let n=!1,o=!1,i="";for(let a=0;a<t.length;a++){let s=t[a];if(s==="."){if(n)throw new Error("Multiple decimal points");n=!0,i+=".";continue}if(s==="-"){if(a!==0)throw new Error("Invalid minus position");i+="-";continue}let f=V.indexOf(s);if(f!==-1){o=!0,i+=$[f];continue}throw new Error(`Invalid character in number: ${s}`)}if(!o)throw new Error("No digits found");if(n){if(t.startsWith(".")||t.startsWith("-."))throw new Error("Decimal must have leading digit");if(t.endsWith("."))throw new Error("Decimal must have trailing digit")}return i}e(l,"toBanglaNumber");function N(r){if(typeof r!="string")throw new TypeError("Input must be a string");let t=r.trim();if(t==="")throw new Error("Empty input");let n=!1,o=!1,i="";for(let s=0;s<t.length;s++){let f=t[s];if(f==="."){if(n)throw new Error("Multiple decimal points");n=!0,i+=".";continue}if(f==="-"){if(s!==0)throw new Error("Invalid minus position");i+="-";continue}let m=$.indexOf(f);if(m!==-1){o=!0,i+=V[m];continue}throw new Error(`Invalid Bangla digit: ${f}`)}if(!o)throw new Error("No digits found");if(n){if(t.startsWith(".")||t.startsWith("-."))throw new Error("Decimal must have leading digit");if(t.endsWith("."))throw new Error("Decimal must have trailing digit")}let a=Number(i);if(!Number.isFinite(a))throw new TypeError("Failed to parse Bangla number");return a}e(N,"fromBanglaNumber");function or(r){if(r===0)return"\u09B6\u09C2\u09A8\u09CD\u09AF";if(r<0)return"\u098B\u09A3\u09BE\u09A4\u09CD\u09AE\u0995 "+or(-r);if(r<100)return nr(r);if(r<1e3)return L(r);if(r<1e5)return dr(r);if(r<1e7)return hr(r);if(r<1e9)return xr(r);if(r<1e11)return Gr(r);throw new Error("Number too large to convert to words")}e(or,"toWords");function nr(r){let t=["","\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"],n=["","","\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 t[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?n[o]:n[o]+" "+t[i]}e(nr,"convertBelowHundred");function L(r){let t=Math.floor(r/100),n=r%100,o="";return t>0&&(t===1?o="\u098F\u0995\u09B6\u09A4":o=nr(t)+"\u09B6\u09A4"),n>0&&(o+=(o?" ":"")+nr(n)),o}e(L,"convertBelowThousand");function dr(r){let t=Math.floor(r/1e3),n=r%1e3,o="";return t>0&&(t===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0":o=L(t)+" \u09B9\u09BE\u099C\u09BE\u09B0"),n>0&&(o+=(o?" ":"")+L(n)),o}e(dr,"convertBelowLakh");function hr(r){let t=Math.floor(r/1e5),n=r%1e5,o="";return t>0&&(t===1?o="\u098F\u0995 \u09B2\u0995\u09CD\u09B7":o=L(t)+" \u09B2\u0995\u09CD\u09B7"),n>0&&(o+=(o?" ":"")+dr(n)),o}e(hr,"convertBelowCrore");function xr(r){let t=Math.floor(r/1e7),n=r%1e7,o="";return t>0&&(t===1?o="\u098F\u0995 \u0995\u09CB\u099F\u09BF":o=L(t)+" \u0995\u09CB\u099F\u09BF"),n>0&&(o+=(o?" ":"")+hr(n)),o}e(xr,"convertBelowArab");function Gr(r){let t=Math.floor(r/1e9),n=r%1e9,o="";return t>0&&(t===1?o="\u098F\u0995 \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF":o=L(t)+" \u09B9\u09BE\u099C\u09BE\u09B0 \u0995\u09CB\u099F\u09BF"),n>0&&(o+=(o?" ":"")+xr(n)),o}e(Gr,"convertBelowKharab");function j(r,t={}){let{useBanglaDigits:n=!0,separator:o=","}=t,i=typeof r=="string"?r:r.toString(),[a,s]=i.split("."),f=a;n&&(f=l(a));let m=_r(f,o);if(s!==void 0){let u=n?l(s):s;return`${m}.${u}`}return m}e(j,"formatNumber");function _r(r,t){let n=r.startsWith("-"),o=n?r.slice(1):r;if(o.length<=3)return r;let a=o.slice(-3),s=o.slice(0,-3),f=[];for(let u=s.length;u>0;u-=2){let g=Math.max(0,u-2);f.unshift(s.slice(g,u))}let m=`${f.join(t)}${t}${a}`;return n?`-${m}`:m}e(_r,"formatIntegerPart");function Ot(r,t={}){let{precision:n=2,useBanglaDigits:o=!0}=t;if(r===0)return o?"\u09E6":"0";let i=Math.abs(r),a=r<0?"-":"",s,f;if(i>=1e7)s=i/1e7,f="\u0995\u09CB\u099F\u09BF";else if(i>=1e5)s=i/1e5,f="\u09B2\u0995\u09CD\u09B7";else if(i>=1e3)s=i/1e3,f="\u09B9\u09BE\u099C\u09BE\u09B0";else{let g=o?l(i):i.toString();return a+g}let m=Number(s.toFixed(n)),u=o?l(m):m.toString();return a+u+" "+f}e(Ot,"formatWithUnits");function D(r){return typeof r=="string"}e(D,"isString");function q(r){return typeof r=="number"}e(q,"isNumber");function yr(r){return r==null}e(yr,"isNullish");var b={isFinite:e(r=>Number.isFinite(r),"isFinite"),isSafeInteger:e(r=>Number.isSafeInteger(r),"isSafeInteger"),isInteger:e(r=>Number.isFinite(r)&&Number.isInteger(r),"isInteger"),isPositive:e(r=>Number.isFinite(r)&&r>0,"isPositive"),isNonNegative:e(r=>Number.isFinite(r)&&r>=0,"isNonNegative"),isNegative:e(r=>Number.isFinite(r)&&r<0,"isNegative"),hasValidDecimalFormat:e(r=>r.split(".").length<=2&&!r.startsWith(".")&&!r.endsWith("."),"hasValidDecimalFormat"),isValidNumber:e(r=>Number.isFinite(r)&&!isNaN(r),"isValidNumber"),isInSafeIntegerRange:e(r=>Number.isFinite(r)&&r>=Number.MIN_SAFE_INTEGER&&r<=Number.MAX_SAFE_INTEGER,"isInSafeIntegerRange")};function ir(r,t,n){return b.isFinite(r)&&r>=t&&r<=n}e(ir,"isNumberInRange");function z(r,t){return n=>ir(n,r,t)}e(z,"createNumberRangeValidator");var v={isMonthNumber:z(1,12),isWeekdayNumber:z(0,6),isHour:z(0,23),isMinuteOrSecond:z(0,59),isSeasonNumber:z(1,6),isPercentage:z(0,100)};function Qt(r){if(!D(r))return!1;let t=r.trim();if(t==="")return!1;let n=!1,o=!1;for(let i=0;i<t.length;i++){let a=t[i];if(a==="."){if(n)return!1;n=!0;continue}if(a==="-"){if(i!==0)return!1;continue}if($.indexOf(a)!==-1){o=!0;continue}return!1}return!(!o||n&&(t.startsWith(".")||t.startsWith("-.")||t.endsWith(".")))}e(Qt,"isValidBanglaNumber");function re(r){if(yr(r))return!1;let t=String(r).trim();if(t===""||/[eE]/.test(t))return!1;if(q(r)){if(!b.isFinite(r)||b.isInteger(r)&&!b.isSafeInteger(r))return!1;if(b.isInteger(r)&&Math.abs(r)>=1e5){let i=Math.abs(r),a=Math.log10(i);if(Number.isInteger(a)&&a>=5)return!1}}if(/[০-৯]/.test(t))return!1;let n=!1,o=!1;for(let i=0;i<t.length;i++){let a=t[i];if(a==="."){if(n)return!1;n=!0;continue}if(a==="-"){if(i!==0)return!1;continue}if(V.indexOf(a)!==-1){o=!0;continue}return!1}return!(!o||n&&(t.startsWith(".")||t.startsWith("-.")||t.endsWith(".")))}e(re,"isValidNumber");function te(r){return!q(r)||!b.isFinite(r)||!b.isInteger(r)?!1:r>=-99999999999&&r<=99999999999}e(te,"isValidNumberForWords");function ee(r){return!q(r)||!b.isFinite(r)||!b.isInteger(r)?!1:b.isPositive(r)}e(ee,"isValidNumberForOrdinal");function wr(r){if(!D(r))return"";let t=r.trim();return t=t.replace(/,/g,""),t=t.replace(/৳/g,""),t.trim()}e(wr,"sanitizeNumberInput");function ar(r,t){return(n,o)=>{try{return r(n)}catch{return o??t??void 0}}}e(ar,"createSafeWrapper");function sr(r){return t=>{let n=[],o=[];for(let i of t)try{let a=r(i);n.push({input:i,output:a})}catch(a){o.push({input:i,error:a instanceof Error?a.message:String(a)})}return{success:n,errors:o}}}e(sr,"createBatchProcessor");function Z(r,t){return n=>n.filter(o=>t(o)).map(o=>r(o))}e(Z,"createValidatingBatchProcessor");var Te=sr(l),Ie=sr(N),Ne=ar(l,""),Be=ar(N,0);function Ee(r){let t=wr(r);return l(t)}e(Ee,"parseAndConvertToBangla");function Se(r,t=!0,n=","){return j(r,{useBanglaDigits:t,separator:n})}e(Se,"formatAndConvert");function Me(r){return{words:or(r),digits:l(r)}}e(Me,"convertToWordsAndDigits");var Ce=ir;function Ae(r,t=2){let n=Math.pow(10,t);return Math.trunc(r*n)/n}e(Ae,"truncateDecimals");function Y(r,t={}){let n=t.symbol??t.includeSymbol??!1,o=t.word??t.includeWord??!n,i=t.useBanglaDigits??!0,a=typeof r=="string"?parseFloat(r):r;if(Number.isNaN(a))throw new Error("Invalid amount");let s=a<0,m=Math.abs(a).toFixed(2),[u,g]=m.split("."),O=j(parseInt(u,10),{useBanglaDigits:i,separator:","}),F=i?l(g):g,h;return g==="00"?h=O:h=`${O}.${F}`,s&&(h=`-${h}`),n?`\u09F3${h}`:o?`${h} \u099F\u09BE\u0995\u09BE`:h}e(Y,"formatCurrency");function ur(r){let t=r.replace(/৳/g,"").replace(/টাকা/g,"").replace(/,/g,"").trim();return t=t.replace(/\s+/g,""),N(t)}e(ur,"parseCurrency");function c(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)}e(c,"isValidCurrency");function Hr(r){if(typeof r!="string"||!r.trim())return!1;let t=r.trim();return t.includes("\u09F3")||t.includes("\u099F\u09BE\u0995\u09BE")?!0:/[০-৯]/.test(t)}e(Hr,"isBanglaCurrency");function je(r){return c(r)&&r>0}e(je,"isPositiveAmount");function qe(r){return c(r)&&r<0}e(qe,"isNegativeAmount");function Ze(r){return c(r)&&r===0}e(Ze,"isZeroAmount");function Dr(r){if(typeof r=="number")return isNaN(r)||!isFinite(r)?null:r;if(typeof r=="string"){let t=r.trim();if(t==="")return null;if(Hr(t))return t;let n=parseFloat(t);return isNaN(n)?null:n}return null}e(Dr,"sanitizeCurrencyInput");function Xe(r,t,n){return!c(r)||!c(t)||!c(n)||t>n?!1:r>=t&&r<=n}e(Xe,"isCurrencyInRange");function Je(r){return typeof r!="string"?!1:r.includes("\u09F3")}e(Je,"hasTakaSymbol");function Qe(r){return typeof r!="string"?!1:r.includes("\u099F\u09BE\u0995\u09BE")}e(Qe,"hasTakaWord");function B(r,t=2){if(!c(r))throw new Error("Invalid currency amount");let n=Math.pow(10,t);return Math.round(r*n)/n}e(B,"roundCurrency");function Tr(r){let n=r.filter(o=>c(o)).reduce((o,i)=>o+i,0);return B(n,2)}e(Tr,"sumCurrency");function nn(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amounts");return B(r+t,2)}e(nn,"addCurrency");function X(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amounts");return B(r-t,2)}e(X,"subtractCurrency");function on(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amount or factor");return B(r*t,2)}e(on,"multiplyCurrency");function Ir(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amount or divisor");if(t===0)throw new Error("Cannot divide by zero");return B(r/t,2)}e(Ir,"divideCurrency");function J(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amount or percentage");return B(r*t/100,2)}e(J,"calculatePercentage");function fn(r,t){let n=J(r,t);return X(r,n)}e(fn,"applyDiscount");function ln(r,t){let n=J(r,t);return B(r+n,2)}e(ln,"addTax");function cn(r,t){return J(r,t)}e(cn,"calculateTax");function gn(r,t){return J(r,t)}e(gn,"calculateDiscount");function xn(r,t){if(!c(r))throw new Error("Invalid currency amount");if(!Number.isInteger(t)||t<1)throw new Error("Parts must be a positive integer");let n=Ir(r,t),o=Array(t-1).fill(n),i=Tr(o),a=X(r,i);return o.push(a),o}e(xn,"splitAmount");function yn(r){if(!c(r))throw new Error("Invalid currency amount");return Math.ceil(r)}e(yn,"ceilCurrency");function wn(r){if(!c(r))throw new Error("Invalid currency amount");return Math.floor(r)}e(wn,"floorCurrency");function Yr(r){return(t,n)=>{let o=r(t),i=r(n);return o<i?-1:o>i?1:0}}e(Yr,"createComparator");var U={number:e((r,t)=>r<t?-1:r>t?1:0,"number"),string:e((r,t)=>r<t?-1:r>t?1:0,"string"),date:Yr(r=>r.getTime()),currency:e((r,t)=>{let n=Math.round(r*100)/100,o=Math.round(t*100)/100;return U.number(n,o)},"currency"),boolean:e((r,t)=>r===t?0:r?1:-1,"boolean")};function $n(r,t={},n=""){try{let o=typeof r=="string"?parseFloat(r):r;return c(o)?Y(r,t):n}catch{return n}}e($n,"safeFormatCurrency");function Vn(r,t=0){try{let n=ur(r);return c(n)?n:t}catch{return t}}e(Vn,"safeParseCurrency");function kn(r,t={}){return Z(o=>Y(o,t),c)(r)}e(kn,"batchFormatCurrency");function Nr(r,t){if(!c(r)||!c(t))throw new Error("Invalid currency amounts");return U.currency(r,t)}e(Nr,"compareCurrency");function Ln(r){if(!c(r))throw new Error("Invalid currency amount");return Math.abs(r)}e(Ln,"getAbsoluteAmount");function zn(r){if(!c(r))throw new Error("Invalid currency amount");return-r}e(zn,"negateAmount");function Gn(r,t={}){let n=Dr(r);if(n===null)throw new Error("Invalid currency input");if(typeof n=="string"){let o=ur(n);return Y(o,t)}return Y(n,t)}e(Gn,"parseAndFormatCurrency");function _n(r,t){return!c(r)||!c(t)?!1:B(r,2)===B(t,2)}e(_n,"isCurrencyEqual");function Hn(r,t){return Nr(r,t)===1}e(Hn,"isGreaterThan");function Yn(r,t){return Nr(r,t)===-1}e(Yn,"isLessThan");function x(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return C[r-1]}e(x,"toBanglaMonth");function E(r){let t=C.indexOf(r);if(t===-1)throw new Error(`Invalid Bangla month name: ${r}`);return t+1}e(E,"fromBanglaMonth");function G(r){let{year:t,month:n,day:o}=r,i=P(t);if(n<1||n>12)throw new Error("Invalid Bangla month");if(o<1||o>i[n-1])throw new Error("Invalid Bangla day for given month");let a=t+593,s=new Date(Date.UTC(a,3,14)),f=0;for(let m=1;m<n;m++)f+=i[m-1];return f+=o-1,new Date(s.getTime()+f*864e5)}e(G,"fromBanglaCalendar");function R(r){return typeof r=="number"&&Number.isInteger(r)&&r>0&&isFinite(r)}e(R,"isValidBanglaYear");function _(r){return typeof r=="number"&&Number.isInteger(r)&&r>=1&&r<=12}e(_,"isValidBanglaMonthNumber");function Ur(r,t,n){if(typeof r!="number"||!Number.isInteger(r)||r<1||!_(t)||!R(n))return!1;let o=P(n);return r<=o[t-1]}e(Ur,"isValidBanglaDay");function T(r){if(!r||typeof r!="object")return!1;let{year:t,month:n,day:o}=r;return R(t)&&_(n)&&Ur(o,n,t)}e(T,"isValidBanglaDate");function fo(r){return T(r)?r:null}e(fo,"sanitizeBanglaDate");function Kr(r,t){try{return!(r instanceof Date)||isNaN(r.getTime())?t||y(new Date):y(r)}catch{return t||y(new Date)}}e(Kr,"safeToBangla");function xo(r,t){try{return T(r)?G(r):t||new Date}catch{return t||new Date}}e(xo,"safeFromBangla");function jr(r,t){return!_(r)||!R(t)?0:P(t)[r-1]}e(jr,"getBanglaMonthDays");function yo(r,t){if(!T(r))throw new Error("Invalid Bangla date");let n=G(r),o=new Date(n.getTime()+t*864e5);return y(o)}e(yo,"addDaysToBanglaDate");function wo(r,t){if(!T(r)||!T(t))throw new Error("Invalid Bangla date");let n=G(r),o=G(t);return Math.floor((o.getTime()-n.getTime())/864e5)}e(wo,"getBanglaDateDifference");function Br(r,t){if(!T(r)||!T(t))throw new Error("Invalid Bangla date");return r.year!==t.year?r.year<t.year?-1:1:r.month!==t.month?r.month<t.month?-1:1:r.day!==t.day?r.day<t.day?-1:1:0}e(Br,"compareBanglaDates");function Do(r,t,n){return!T(r)||!T(t)||!T(n)?!1:Br(r,t)>=0&&Br(r,n)<=0}e(Do,"isBanglaDateInRange");function To(r,t){if(!_(r)||!R(t))throw new Error("Invalid month or year");return{year:t,month:r,day:1}}e(To,"getFirstDayOfBanglaMonth");function Io(r,t){if(!_(r)||!R(t))throw new Error("Invalid month or year");let n=jr(r,t);return{year:t,month:r,day:n}}e(Io,"getLastDayOfBanglaMonth");function No(r){if(!R(r))return!1;let t=r+594;return t%4===0&&t%100!==0||t%400===0}e(No,"isBanglaLeapYear");function Bo(r,t){if(!T(r))throw new Error("Invalid Bangla date");let n=G(r);return Er(n,t)}e(Bo,"formatBanglaDate");function Eo(){return y(new Date)}e(Eo,"getCurrentBanglaDate");function So(r){return r.map(t=>Kr(t))}e(So,"batchToBangla");function P(r){let t=r+594;return[31,31,31,31,31,30,30,30,30,30,t%4===0&&(t%100!==0||t%400===0)?31:30,30]}e(P,"getBanglaMonthLengths");function y(r){let t=new Date(Date.UTC(r.getFullYear(),r.getMonth(),r.getDate())),n=t.getUTCFullYear(),o=t.getUTCMonth()+1,i=t.getUTCDate(),a=o<4||o===4&&i<14,s=n-(a?594:593),f=a?n-1:n,m=new Date(Date.UTC(f,3,14)),u=Math.floor((t.getTime()-m.getTime())/864e5),g=P(s),O=u,F=0;for(;O>=g[F];)O-=g[F],F++;return{year:s,month:F+1,day:O+1}}e(y,"toBanglaCalendar");function Er(r,t={}){let{includeYear:n=!0,includeWeekday:o=!1}=t,i=y(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()]]:[],l(i.day),x(i.month),...n?[l(i.year)]:[]].join(" ")}e(Er,"getBanglaDate");function Uo(r){let t=y(r);return x(t.month)}e(Uo,"getMonthName");function A(r){return b.isInteger(r)&&v.isMonthNumber(r)}e(A,"isValidMonthNumber");function S(r){if(!D(r))return!1;let t=r.trim();return C.includes(t)}e(S,"isValidBanglaMonth");function Sr(r){if(D(r)){let n=r.trim();if(n==="")return null;let o=Number(n);if(isNaN(o))return null;r=o}if(!b.isValidNumber(r))return null;let t=Math.round(r);return!b.isInteger(t)||!v.isMonthNumber(t)?null:t}e(Sr,"sanitizeMonthNumber");function Qo(r){if(!D(r))return null;let t=r.trim();return t===""||!S(t)?null:t}e(Qo,"sanitizeBanglaMonth");function si(r,t=""){try{return A(r)?x(r):t}catch{return t}}e(si,"safeToBanglaMonth");function ui(r,t=0){try{return S(r)?E(r):t}catch{return t}}e(ui,"safeFromBanglaMonth");function mi(){return[...C]}e(mi,"getAllMonths");function fi(r){if(typeof r=="number"){if(!A(r))throw new Error("Invalid month number");return r===12?1:r+1}else{if(!S(r))throw new Error("Invalid Bangla month name");let t=E(r),n=t===12?1:t+1;return x(n)}}e(fi,"getNextMonth");function li(r){if(typeof r=="number"){if(!A(r))throw new Error("Invalid month number");return r===1?12:r-1}else{if(!S(r))throw new Error("Invalid Bangla month name");let t=E(r),n=t===1?12:t-1;return x(n)}}e(li,"getPreviousMonth");function qr(r,t){let n=typeof r=="number",o,i;if(n){if(!A(r)||!A(t))throw new Error("Invalid month numbers");o=r,i=t}else{if(!S(r)||!S(t))throw new Error("Invalid Bangla month names");o=E(r),i=E(t)}let a=[],s=o;for(;n?a.push(s):a.push(x(s)),!(s===i||(s=s===12?1:s+1,a.length>12)););return a}e(qr,"getMonthRange");function ci(r,t,n){try{return qr(t,n).includes(r)}catch{return!1}}e(ci,"isMonthInRange");function gi(r,t){let n,o;if(typeof r=="number"){if(!A(r))throw new Error("Invalid month1");n=r}else{if(!S(r))throw new Error("Invalid month1");n=E(r)}if(typeof t=="number"){if(!A(t))throw new Error("Invalid month2");o=t}else{if(!S(t))throw new Error("Invalid month2");o=E(t)}return n<o?-1:n>o?1:0}e(gi,"compareMonths");function pi(r){if(typeof r=="number"){if(!A(r))throw new Error("Invalid month number");return r-1}else{if(!S(r))throw new Error("Invalid Bangla month name");return E(r)-1}}e(pi,"getMonthIndex");function bi(r){if(!Number.isInteger(r)||r<0||r>11)throw new Error("Index must be between 0 and 11");return r+1}e(bi,"getMonthFromIndex");function di(r){if(typeof r=="string"&&S(r.trim()))return r.trim();let t=Sr(r);if(t===null)throw new Error("Invalid month input");return x(t)}e(di,"parseAndConvertToMonth");function hi(r){return r.filter(t=>A(t)).map(t=>x(t))}e(hi,"batchToBanglaMonth");function xi(){let r={};for(let t=1;t<=12;t++)r[t]=x(t);return r}e(xi,"getMonthMapping");function H(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return W[r]}e(H,"toBanglaWeekday");function Q(r){let t=W.indexOf(r);if(t===-1)throw new Error(`Invalid Bangla weekday name: ${r}`);return t}e(Q,"fromBanglaWeekday");function Mr(r){let t=r.getDay();return H(t)}e(Mr,"getWeekdayName");function zi(r){return b.isInteger(r)&&v.isWeekdayNumber(r)}e(zi,"isValidWeekdayNumber");function Gi(r){if(!D(r))return!1;let t=r.trim();return t===""?!1:W.includes(t)}e(Gi,"isValidBanglaWeekday");function _i(r){return p(r)}e(_i,"isValidDateForWeekday");function Cr(r){return D(r)?r.trim():""}e(Cr,"sanitizeWeekdayInput");function Zr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return r===5||r===6}e(Zr,"isWeekend");function Zi(r){let t=Q(r);return Zr(t)}e(Zi,"isBanglaWeekend");function Xr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r+1)%7}e(Xr,"getNextWeekday");function Jr(r){if(r<0||r>6)throw new Error("Weekday number must be between 0 and 6");return(r-1+7)%7}e(Jr,"getPreviousWeekday");function Xi(r){let t=Xr(r);return H(t)}e(Xi,"getNextBanglaWeekday");function Ji(r){let t=Jr(r);return H(t)}e(Ji,"getPreviousBanglaWeekday");function Qi(r){let t=Cr(r);return Q(t)}e(Qi,"parseWeekdayInput");function ra(r,t=""){try{return H(r)}catch{return t}}e(ra,"safeToBanglaWeekday");function ta(r,t=-1){try{return Q(r)}catch{return t}}e(ta,"safeFromBanglaWeekday");function ea(){return[...W]}e(ea,"getAllBanglaWeekdays");function na(r,t){if(r<0||r>6||t<0||t>6)throw new Error("Weekday numbers must be between 0 and 6");return(t-r+7)%7}e(na,"getDaysBetween");function mr(r,t={}){let{includeWeekday:n=!1,includeYear:o=!0,format:i="long"}=t,a=[];if(n){let g=Mr(r);a.push(g)}let s=y(r),f=l(s.day),m=x(s.month),u=o?l(s.year):null;return i==="short"?a.push(`${f} ${m}`):a.push(f,m),u&&a.push(u),a.join(" ")}e(mr,"formatDate");function Ar(r){let t=r.trim().replace(/\s+/g," "),n=t.match(/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/);if(n){let i=n[1],a=n[2],s=n[3],f=/[০-৯]/.test(i)?N(i):parseInt(i,10),m=E(a),u=s?/[০-৯]/.test(s)?N(s):parseInt(s,10):new Date().getFullYear();return new Date(u,m-1,f)}let o=t.match(/^(\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)[\/\-](\d+|[০-৯]+)$/);if(o){let i=o[1],a=o[2],s=o[3],f=/[০-৯]/.test(i)?N(i):parseInt(i,10),m=/[০-৯]/.test(a)?N(a):parseInt(a,10),u=/[০-৯]/.test(s)?N(s):parseInt(s,10);return new Date(u,m-1,f)}throw new Error(`Unable to parse date string: ${r}`)}e(Ar,"parseDate");function p(r){return r instanceof Date&&!isNaN(r.getTime())}e(p,"isValidDate");function Or(r){if(typeof r!="string"||r.trim()==="")return!1;let t=r.trim().replace(/\s+/g," ");if(/^\d{4}[\-\/]\d{1,2}[\-\/]\d{1,2}$/.test(t))return!1;let n=/^(\d+|[০-৯]+)\s+(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)(?:\s+(\d+|[০-৯]+))?$/,o=/^(\d{1,2}|[০-৯]{1,2})[\/\-](\d{1,2}|[০-৯]{1,2})[\/\-](\d{2,4}|[০-৯]{2,4})$/;return n.test(t)||o.test(t)}e(Or,"isValidBanglaDateString");function Ta(r){return typeof r!="string"?!1:/[০-৯]/.test(r)}e(Ta,"hasBanglaDigits");function Ia(r){return typeof r!="string"?!1:/(বৈশাখ|জ্যৈষ্ঠ|আষাঢ়|শ্রাবণ|ভাদ্র|আশ্বিন|কার্তিক|অগ্রহায়ণ|পৌষ|মাঘ|ফাল্গুন|চৈত্র)/.test(r)}e(Ia,"hasBanglaMonth");function Na(r){return p(r)?r:null}e(Na,"sanitizeDate");function fr(r,t){if(!p(r)||!p(t))throw new Error("Invalid date");return U.date(r,t)}e(fr,"compareDates");function Fa(r,t){if(!p(r)||!p(t))throw new Error("Invalid date");let n=t.getTime()-r.getTime();return Math.floor(n/(1e3*60*60*24))}e(Fa,"getDaysDifference");function Wa(r,t){if(!p(r))throw new Error("Invalid date");let n=new Date(r);return n.setDate(n.getDate()+t),n}e(Wa,"addDays");function Va(r){if(!p(r))return!1;let t=new Date;return r.getDate()===t.getDate()&&r.getMonth()===t.getMonth()&&r.getFullYear()===t.getFullYear()}e(Va,"isToday");function ka(r){return p(r)?r.getTime()<Date.now():!1}e(ka,"isPast");function La(r){return p(r)?r.getTime()>Date.now():!1}e(La,"isFuture");function za(r,t,n){return!p(r)||!p(t)||!p(n)?!1:fr(r,t)>=0&&fr(r,n)<=0}e(za,"isDateInRange");function Qr(r,t,n=""){try{return p(r)?mr(r,t):n}catch{return n}}e(Qr,"safeFormatDate");function rt(r,t){try{return Ar(r)}catch{return t||new Date}}e(rt,"safeParseDate");function Xa(r){return mr(new Date,r)}e(Xa,"formatToday");function Ja(r,t){return r.map(n=>Qr(n,t))}e(Ja,"batchFormatDates");function Qa(r){return r.map(t=>rt(t))}e(Qa,"batchParseDates");function rs(r){return Or(r)}e(rs,"canParseBanglaDate");function rr(r){if(r<1||r>12)throw new Error("Month number must be between 1 and 12");return r<=2?d[0]:r<=4?d[1]:r<=6?d[2]:r<=8?d[3]:r<=10?d[4]:d[5]}e(rr,"getSeasonFromMonth");function K(r){let t=y(r);return rr(t.month)}e(K,"getSeason");function Ds(r){return b.isInteger(r)&&v.isMonthNumber(r)}e(Ds,"isValidMonth");function Ts(r){if(!D(r))return!1;let t=r.trim();return t===""?!1:d.includes(t)}e(Ts,"isValidSeasonName");function Is(r){return p(r)}e(Is,"isValidDateForSeason");function Cs(){return[...d]}e(Cs,"getAllSeasons");function Fr(r){let n={\u0997\u09CD\u09B0\u09C0\u09B7\u09CD\u09AE:[1,2],\u09AC\u09B0\u09CD\u09B7\u09BE:[3,4],"\u09B6\u09B0\u09CE":[5,6],\u09B9\u09C7\u09AE\u09A8\u09CD\u09A4:[7,8],\u09B6\u09C0\u09A4:[9,10],\u09AC\u09B8\u09A8\u09CD\u09A4:[11,12]}[r];if(!n)throw new Error(`Invalid season name: ${r}`);return n}e(Fr,"getSeasonMonths");function lr(r){return d.indexOf(r)}e(lr,"getSeasonIndex");function As(r){if(r<0||r>5)throw new Error("Season index must be between 0 and 5");return d[r]}e(As,"getSeasonByIndex");function Os(r,t){if(r<1||r>12)return!1;try{return Fr(t).includes(r)}catch{return!1}}e(Os,"isMonthInSeason");function Fs(r){let t=lr(r);if(t===-1)throw new Error(`Invalid season name: ${r}`);let n=(t+1)%6;return d[n]}e(Fs,"getNextSeason");function Ws(r){let t=lr(r);if(t===-1)throw new Error(`Invalid season name: ${r}`);let n=(t-1+6)%6;return d[n]}e(Ws,"getPreviousSeason");function vs(r,t=""){if(!(r instanceof Date)||isNaN(r.getTime()))return t;try{return K(r)}catch{return t}}e(vs,"safeGetSeason");function Ps(r,t=""){try{return rr(r)}catch{return t}}e(Ps,"safeGetSeasonFromMonth");function Rs(){return K(new Date)}e(Rs,"getCurrentSeason");function $s(r,t){let n=K(r),o=K(t);return n===o}e($s,"isSameSeason");function Vs(r){let t=lr(r);if(t===-1)throw new Error(`Invalid season name: ${r}`);let n=Fr(r),o=n.map(i=>C[i-1]);return{name:r,months:n,index:t,monthNames:o}}e(Vs,"getSeasonInfo");function I(r){if(r<1)throw new Error("Number must be greater than 0");let t={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 t[r]?t[r]:`${l(r)}\u09A4\u09AE`}e(I,"toOrdinal");function w(r){return typeof r=="number"&&!isNaN(r)&&isFinite(r)&&Number.isInteger(r)&&r>=1}e(w,"isValidOrdinal");function qs(r){if(typeof r!="string"||!r.trim())return!1;let t=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(t)?!0:t.endsWith("\u09A4\u09AE")}e(qs,"isBanglaOrdinal");function Zs(r){return w(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}e(Zs,"hasSpecialOrdinal");function Wr(r){if(typeof r=="string"){let n=r.trim();if(n==="")return null;let o=Number(n);if(isNaN(o))return null;r=o}if(typeof r!="number"||isNaN(r)||!isFinite(r))return null;let t=Math.round(r);return t<1?null:t}e(Wr,"sanitizeOrdinalInput");function Xs(r){return w(r)&&r>=1&&r<=100}e(Xs,"isInSpecialOrdinalRange");function nu(r,t=""){try{return w(r)?I(r):t}catch{return t}}e(nu,"safeToOrdinal");var ou=Z(I,w);function iu(r){let t=Wr(r);if(t===null)throw new Error("Invalid input for ordinal conversion");return I(t)}e(iu,"parseAndConvertToOrdinal");function au(){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(t=>({number:t,ordinal:I(t)}))}e(au,"getSpecialOrdinals");function su(r,t){if(!w(r)||!w(t))throw new Error("Start and end must be positive integers");if(r>t)throw new Error("Start must be less than or equal to end");let n=[];for(let o=r;o<=t;o++)n.push(I(o));return n}e(su,"getOrdinalSequence");function uu(r,t={}){let{separator:n=" ",showNumber:o=!0}=t,i=I(r);return o?`${r}${n}${i}`:i}e(uu,"formatOrdinal");function mu(r){if(!w(r))throw new Error("Number must be a valid positive integer");let t=I(r);return t.endsWith("\u09A4\u09AE")&&/[০-৯]/.test(t)?"suffix":"special"}e(mu,"getOrdinalType");function fu(r,t){let n=I(r);return t?`${n} ${t}`:n}e(fu,"getRanking");function lu(r,t){if(!w(r)||!w(t))throw new Error("Both numbers must be valid positive integers");return r<t?-1:r>t?1:0}e(lu,"compareOrdinals");function cu(r){if(!w(r))throw new Error("Current must be a valid positive integer");return I(r+1)}e(cu,"getNextOrdinal");function gu(r){if(!w(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 I(r-1)}e(gu,"getPreviousOrdinal");function pu(r,t=1){if(!w(t))throw new Error("startFrom must be a valid positive integer");return r.map((n,o)=>{let i=t+o;return{position:i,ordinal:I(i),item:n}})}e(pu,"createOrdinalList");function cr(r,t={}){let{includeSeconds:n=!1,use12Hour:o=!1}=t,i,a,s;if(typeof r=="string"){let h=r.split(":");if(i=parseInt(h[0],10),a=parseInt(h[1],10),s=h[2]?parseInt(h[2],10):0,Number.isNaN(i)||Number.isNaN(a))throw new Error("Invalid time string format. Use HH:mm or HH:mm:ss")}else i=r.getHours(),a=r.getMinutes(),s=r.getSeconds();let f=i,m="";o&&(m=tt(i),i===0?f=12:i>12&&(f=i-12));let u=l(f.toString().padStart(2,"0")),g=l(a.toString().padStart(2,"0")),O=[u,g];if(n){let h=l(s.toString().padStart(2,"0"));O.push(h)}let F=O.join(":");return m?`${m} ${F}`:F}e(cr,"formatTime");function tt(r){return r>=6&&r<12?"\u09B8\u0995\u09BE\u09B2":r>=12&&r<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":r>=15&&r<18?"\u09AC\u09BF\u0995\u09BE\u09B2":r>=18&&r<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}e(tt,"getBanglaPeriod");function vr(r,t=new Date){let n=r.getTime()-t.getTime(),o=Math.floor(n/1e3),i=Math.floor(o/60),a=Math.floor(i/60),s=Math.abs(a),f=new Date(t);f.setHours(0,0,0,0);let m=new Date(r);m.setHours(0,0,0,0);let u=Math.floor((m.getTime()-f.getTime())/(1e3*60*60*24));if(s<24)return o===0?"\u098F\u0996\u09A8":Math.abs(o)<60?o<0?`${l(Math.abs(o))} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u0986\u0997\u09C7`:`${l(o)} \u09B8\u09C7\u0995\u09C7\u09A8\u09CD\u09A1 \u09AA\u09B0\u09C7`:Math.abs(i)<60?i<0?`${l(Math.abs(i))} \u09AE\u09BF\u09A8\u09BF\u099F \u0986\u0997\u09C7`:`${l(i)} \u09AE\u09BF\u09A8\u09BF\u099F \u09AA\u09B0\u09C7`:a<0?`${l(Math.abs(a))} \u0998\u09A3\u09CD\u099F\u09BE \u0986\u0997\u09C7`:`${l(a)} \u0998\u09A3\u09CD\u099F\u09BE \u09AA\u09B0\u09C7`;if(u===-1)return"\u0997\u09A4\u0995\u09BE\u09B2";if(u===1)return"\u0986\u0997\u09BE\u09AE\u09C0\u0995\u09BE\u09B2";if(u===-2)return"\u0997\u09A4 \u09AA\u09B0\u09B6\u09C1";if(u===2)return"\u09AA\u09B0\u09B6\u09C1";if(u<0){if(Math.abs(u)<7)return`${l(Math.abs(u))} \u09A6\u09BF\u09A8 \u0986\u0997\u09C7`;if(Math.abs(u)<30){let g=Math.floor(Math.abs(u)/7);return`${l(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u0986\u0997\u09C7`}else if(Math.abs(u)<365){let g=Math.floor(Math.abs(u)/30);return`${l(g)} \u09AE\u09BE\u09B8 \u0986\u0997\u09C7`}else{let g=Math.floor(Math.abs(u)/365);return`${l(g)} \u09AC\u099B\u09B0 \u0986\u0997\u09C7`}}else{if(u<7)return`${l(u)} \u09A6\u09BF\u09A8 \u09AA\u09B0\u09C7`;if(u<30){let g=Math.floor(u/7);return`${l(g)} \u09B8\u09AA\u09CD\u09A4\u09BE\u09B9 \u09AA\u09B0\u09C7`}else if(u<365){let g=Math.floor(u/30);return`${l(g)} \u09AE\u09BE\u09B8 \u09AA\u09B0\u09C7`}else{let g=Math.floor(u/365);return`${l(g)} \u09AC\u099B\u09B0 \u09AA\u09B0\u09C7`}}}e(vr,"relativeTime");function Bu(r,t=new Date){let n=new Date(t);n.setHours(0,0,0,0);let o=new Date(r);o.setHours(0,0,0,0);let i=Math.floor((o.getTime()-n.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":""}e(Bu,"relativeDay");function Pr(r){if(typeof r!="string")return!1;let t=r.trim();if(t==="")return!1;let n=/^(\d{1,2}):(\d{2})(?::(\d{2}))?$/,o=t.match(n);if(!o)return!1;let i=parseInt(o[1],10),a=parseInt(o[2],10),s=o[3]?parseInt(o[3],10):0;return!(i<0||i>23||a<0||a>59||s<0||s>59)}e(Pr,"isValidTimeString");function Cu(r){return p(r)||Pr(r)}e(Cu,"isValidTimeInput");function Au(r){return Pr(r)?r.trim().split(":").length===3:!1}e(Au,"hasSeconds");function Rr(r){return typeof r!="string"?"":r.trim()}e(Rr,"sanitizeTimeInput");function gr(r){let n=Rr(r).split(":"),o=parseInt(n[0],10),i=parseInt(n[1],10),a=n[2]?parseInt(n[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(a<0||a>59)throw new Error("Seconds must be between 0 and 59");return{hours:o,minutes:i,seconds:a}}e(gr,"parseTime");function M(r){let{hours:t,minutes:n,seconds:o}=gr(r);return t*3600+n*60+o}e(M,"timeToSeconds");function $r(r){if(r<0||r>=86400)throw new Error("Seconds must be between 0 and 86399");let t=Math.floor(r/3600),n=Math.floor(r%3600/60),o=r%60;return`${t.toString().padStart(2,"0")}:${n.toString().padStart(2,"0")}:${o.toString().padStart(2,"0")}`}e($r,"secondsToTime");function $u(r,t){let n=M(r),o=M(t);return n<o?-1:n>o?1:0}e($u,"compareTimes");function Vu(r,t){return r.getFullYear()===t.getFullYear()&&r.getMonth()===t.getMonth()&&r.getDate()===t.getDate()}e(Vu,"isSameDay");function Gu(r,t){let o=M(r)+t*60;return o=(o%86400+86400)%86400,$r(o)}e(Gu,"addMinutesToTime");function _u(r,t){let n=M(r),o=M(t);return Math.floor((o-n)/60)}e(_u,"timeDifferenceMinutes");function Ku(r,t,n){let o=M(r),i=M(t),a=M(n);return o>=i&&o<=a}e(Ku,"isTimeInRange");function nm(r,t={},n=""){try{return cr(r,t)}catch{return n}}e(nm,"safeFormatTime");function om(r,t=new Date,n=""){try{return vr(r,t)}catch{return n}}e(om,"safeRelativeTime");function im(r){let t;if(typeof r=="string"){let{hours:n}=gr(r);t=n}else t=r.getHours();return t>=0&&t<6?"\u09B0\u09BE\u09A4":t>=6&&t<12?"\u09B8\u0995\u09BE\u09B2":t>=12&&t<15?"\u09A6\u09C1\u09AA\u09C1\u09B0":t>=15&&t<18?"\u09AC\u09BF\u0995\u09BE\u09B2":t>=18&&t<20?"\u09B8\u09A8\u09CD\u09A7\u09CD\u09AF\u09BE":"\u09B0\u09BE\u09A4"}e(im,"getTimePeriod");function am(r={}){return cr(new Date,r)}e(am,"getCurrentTimeBangla");function pr(r,t={}){let{includeCountryCode:n=!1,useBanglaDigits:o=!0,style:i,format:a}=t,s=i??a??"dashed",f=r.replace(/\D/g,""),m=f;if(f.startsWith("880")&&(m=f.slice(3)),m.length===10&&!m.startsWith("0")&&(m="0"+m),m.length!==11)throw new Error("Invalid Bangladeshi phone number length");let u;return s==="spaced"?u=`${m.slice(0,4)} ${m.slice(4,7)} ${m.slice(7)}`:s==="compact"?u=m:u=`${m.slice(0,4)}-${m.slice(4)}`,n&&(s==="compact"?u="+880"+u.slice(1):u="+880 "+u.slice(1)),o&&(u=u.replace(/[0-9]/g,g=>l(g))),u}e(pr,"formatPhone");function br(r){let t=r.replace(/\D/g,""),n=t;if(t.startsWith("880")?n=t.slice(3):t.startsWith("+880")&&(n=t.slice(4)),n.length!==10&&n.length!==11||!n.startsWith("01")&&n.length===11||n.length===10&&!n.startsWith("1"))return!1;let o=n.length===11?n.slice(0,3):"0"+n.slice(0,2);return k.includes(o)}e(br,"validatePhone");function wm(r){return k.includes(r)}e(wm,"isValidOperatorCode");function Dm(r){let t=r.trim();return t.startsWith("+880")||t.startsWith("880")}e(Dm,"hasCountryCode");function Vr(r){if(typeof r!="string")return"";let t=r.trim(),n=t.startsWith("+");return t=t.replace(/\D/g,""),n&&(t="+"+t),t}e(Vr,"sanitizePhoneNumber");function Tm(r){return typeof r!="string"?!1:/^[\d\s\-()+ ]+$/.test(r.trim())}e(Tm,"isValidPhoneFormat");function et(r){if(!br(r))return null;let t=r.replace(/\D/g,""),n=t;t.startsWith("880")&&(n=t.slice(3));let o=n.length===11?n.slice(0,3):"0"+n.slice(0,2),i=er[o];return i?{code:o,...i}:null}e(et,"getOperator");function Mm(r){let t=et(r);return t?t.name:null}e(Mm,"getOperatorName");function nt(r){if(!br(r))throw new Error("Invalid phone number");let t=r,n=r.replace(/\D/g,""),o=n,i="880";n.startsWith("880")&&(o=n.slice(3)),o.length===10&&(o="0"+o);let a=o.slice(0,3),s=o.slice(3);return{original:t,countryCode:i,operatorCode:a,number:s,fullNumber:o}}e(nt,"parsePhoneNumber");function tr(r){return nt(r).fullNumber}e(tr,"normalizePhoneNumber");function Cm(r,t="plus"){let o=tr(r).slice(1);return t==="plus"?`+880${o}`:`880${o}`}e(Cm,"addCountryCode");function Am(r){return tr(r)}e(Am,"removeCountryCode");function Om(r,t={},n=""){try{return pr(r,t)}catch{return n}}e(Om,"safeFormatPhone");function Fm(r,t){try{let n=tr(r),o=tr(t);return n===o}catch{return!1}}e(Fm,"isSameNumber");function Wm(){return[...k]}e(Wm,"getAllOperatorCodes");function vm(){return k.map(r=>({code:r,...er[r]}))}e(vm,"getAllOperators");function Pm(r,t={}){let n=Vr(r);return pr(n,t)}e(Pm,"parseAndFormat");function Gm(r){return/^[\u0980-\u09FF\s]+$/.test(r)}e(Gm,"validateBangla");function kr(r){return/[০-৯]/.test(r)}e(kr,"isBanglaDigit");function Km(r){return/[\u0980-\u09FF]/.test(r)}e(Km,"isBanglaText");function ot(r){let t=r.match(/[\u0980-\u09FF]/g);return t?t.length:0}e(ot,"countBanglaCharacters");function Xm(r){let t=r.match(/[০-৯]/g);return t?t.length:0}e(Xm,"countBanglaDigits");function Jm(r){let t=/[\u0980-\u09FF]/.test(r),n=/[a-zA-Z0-9]/.test(r);return t&&n}e(Jm,"isMixedContent");function Lr(r,t=!1){return t?r.replace(/[^\u0980-\u09FF\s]/g,"").trim():r.replace(/[^\u0980-\u09FF]/g,"")}e(Lr,"extractBanglaChars");function it(r){return r.replace(/[\u0980-\u09FF]/g,"")}e(it,"removeBanglaChars");function at(r){let t=r.replace(/\s/g,"");if(t.length===0)return 0;let n=ot(r);return Math.round(n/t.length*100)}e(at,"getBanglaPercentage");function Qm(r){return at(r)>50}e(Qm,"isPrimarilyBangla");function rf(r,t=!0,n=""){let o=Lr(r,t);return o.length>0?o:n}e(rf,"sanitizeBanglaText");function tf(r){return/\d|[০-৯]/.test(r)?!/\d/.test(r)&&kr(r):!1}e(tf,"hasOnlyBanglaDigits");function ef(r){return r.replace(/\s+/g," ").trim()}e(ef,"normalizeWhitespace");function nf(r){return{bengali:Lr(r,!0).trim(),nonBangla:it(r).trim()}}e(nf,"splitBanglaContent");function of(r){return/[ক-হড়ঢ়য়ৎ]/.test(r)}e(of,"hasBanglaConsonants");function af(r){return/[অ-ঔা-ৌ]/.test(r)}e(af,"hasBanglaVowels");export{$ as BANGLA_DIGITS,C as BANGLA_MONTHS,d as BANGLA_SEASONS,W as BANGLA_WEEKDAYS,V as ENGLISH_DIGITS,er as OPERATOR_INFO,k as VALID_OPERATOR_CODES,Cm as addCountryCode,nn as addCurrency,Wa as addDays,yo as addDaysToBanglaDate,Gu as addMinutesToTime,ln as addTax,fn as applyDiscount,kn as batchFormatCurrency,Ja as batchFormatDates,Ie as batchFromBanglaNumber,Qa as batchParseDates,So as batchToBangla,hi as batchToBanglaMonth,Te as batchToBanglaNumber,ou as batchToOrdinal,gn as calculateDiscount,J as calculatePercentage,cn as calculateTax,rs as canParseBanglaDate,yn as ceilCurrency,Br as compareBanglaDates,Nr as compareCurrency,fr as compareDates,gi as compareMonths,lu as compareOrdinals,$u as compareTimes,Me as convertToWordsAndDigits,ot as countBanglaCharacters,Xm as countBanglaDigits,pu as createOrdinalList,Ir as divideCurrency,Lr as extractBanglaChars,wn as floorCurrency,Se as formatAndConvert,Bo as formatBanglaDate,Y as formatCurrency,mr as formatDate,j as formatNumber,uu as formatOrdinal,pr as formatPhone,cr as formatTime,Xa as formatToday,Ot as formatWithUnits,G as fromBanglaCalendar,E as fromBanglaMonth,N as fromBanglaNumber,Q as fromBanglaWeekday,Ln as getAbsoluteAmount,ea as getAllBanglaWeekdays,mi as getAllMonths,Wm as getAllOperatorCodes,vm as getAllOperators,Cs as getAllSeasons,Er as getBanglaDate,wo as getBanglaDateDifference,jr as getBanglaMonthDays,P as getBanglaMonthLengths,at as getBanglaPercentage,Eo as getCurrentBanglaDate,Rs as getCurrentSeason,am as getCurrentTimeBangla,na as getDaysBetween,Fa as getDaysDifference,To as getFirstDayOfBanglaMonth,Io as getLastDayOfBanglaMonth,bi as getMonthFromIndex,pi as getMonthIndex,xi as getMonthMapping,Uo as getMonthName,qr as getMonthRange,Xi as getNextBanglaWeekday,fi as getNextMonth,cu as getNextOrdinal,Fs as getNextSeason,Xr as getNextWeekday,et as getOperator,Mm as getOperatorName,su as getOrdinalSequence,mu as getOrdinalType,Ji as getPreviousBanglaWeekday,li as getPreviousMonth,gu as getPreviousOrdinal,Ws as getPreviousSeason,Jr as getPreviousWeekday,fu as getRanking,K as getSeason,As as getSeasonByIndex,rr as getSeasonFromMonth,lr as getSeasonIndex,Vs as getSeasonInfo,Fr as getSeasonMonths,au as getSpecialOrdinals,im as getTimePeriod,Mr as getWeekdayName,of as hasBanglaConsonants,Ta as hasBanglaDigits,Ia as hasBanglaMonth,af as hasBanglaVowels,Dm as hasCountryCode,tf as hasOnlyBanglaDigits,Au as hasSeconds,Zs as hasSpecialOrdinal,Je as hasTakaSymbol,Qe as hasTakaWord,Hr as isBanglaCurrency,Do as isBanglaDateInRange,kr as isBanglaDigit,No as isBanglaLeapYear,qs as isBanglaOrdinal,Km as isBanglaText,Zi as isBanglaWeekend,_n as isCurrencyEqual,Xe as isCurrencyInRange,za as isDateInRange,La as isFuture,Hn as isGreaterThan,Xs as isInSpecialOrdinalRange,Yn as isLessThan,Jm as isMixedContent,ci as isMonthInRange,Os as isMonthInSeason,qe as isNegativeAmount,Ce as isNumberInRange,ka as isPast,je as isPositiveAmount,Qm as isPrimarilyBangla,Vu as isSameDay,Fm as isSameNumber,$s as isSameSeason,Ku as isTimeInRange,Va as isToday,T as isValidBanglaDate,Or as isValidBanglaDateString,Ur as isValidBanglaDay,S as isValidBanglaMonth,_ as isValidBanglaMonthNumber,Qt as isValidBanglaNumber,Gi as isValidBanglaWeekday,R as isValidBanglaYear,c as isValidCurrency,p as isValidDate,Is as isValidDateForSeason,_i as isValidDateForWeekday,Ds as isValidMonth,A as isValidMonthNumber,re as isValidNumber,ee as isValidNumberForOrdinal,te as isValidNumberForWords,wm as isValidOperatorCode,w as isValidOrdinal,Tm as isValidPhoneFormat,Ts as isValidSeasonName,Cu as isValidTimeInput,Pr as isValidTimeString,zi as isValidWeekdayNumber,Zr as isWeekend,Ze as isZeroAmount,on as multiplyCurrency,zn as negateAmount,tr as normalizePhoneNumber,ef as normalizeWhitespace,Ee as parseAndConvertToBangla,di as parseAndConvertToMonth,iu as parseAndConvertToOrdinal,Pm as parseAndFormat,Gn as parseAndFormatCurrency,ur as parseCurrency,Ar as parseDate,nt as parsePhoneNumber,gr as parseTime,Qi as parseWeekdayInput,Bu as relativeDay,vr as relativeTime,it as removeBanglaChars,Am as removeCountryCode,B as roundCurrency,$n as safeFormatCurrency,Qr as safeFormatDate,Om as safeFormatPhone,nm as safeFormatTime,xo as safeFromBangla,ui as safeFromBanglaMonth,Be as safeFromBanglaNumber,ta as safeFromBanglaWeekday,vs as safeGetSeason,Ps as safeGetSeasonFromMonth,Vn as safeParseCurrency,rt as safeParseDate,om as safeRelativeTime,Kr as safeToBangla,si as safeToBanglaMonth,Ne as safeToBanglaNumber,ra as safeToBanglaWeekday,nu as safeToOrdinal,fo as sanitizeBanglaDate,Qo as sanitizeBanglaMonth,rf as sanitizeBanglaText,Dr as sanitizeCurrencyInput,Na as sanitizeDate,Sr as sanitizeMonthNumber,wr as sanitizeNumberInput,Wr as sanitizeOrdinalInput,Vr as sanitizePhoneNumber,Rr as sanitizeTimeInput,Cr as sanitizeWeekdayInput,$r as secondsToTime,xn as splitAmount,nf as splitBanglaContent,X as subtractCurrency,Tr as sumCurrency,_u as timeDifferenceMinutes,M as timeToSeconds,y as toBanglaCalendar,x as toBanglaMonth,l as toBanglaNumber,H as toBanglaWeekday,I as toOrdinal,or as toWords,Ae as truncateDecimals,Gm as validateBangla,br as validatePhone};
2
2
  //# sourceMappingURL=index.js.map