UNPKG

jb-date-input

Version:
2 lines 38.2 kB
import"jb-calendar";import{JBInputWebComponent as t}from"jb-input";import"jb-popover";import{getDate as e,getMonth as i,getTime as a,getYear as n,isAfter as s,isBefore as l,isEqual as r,isLeapYear as o}from"date-fns";import{getDate as h,getHours as u,getMilliseconds as c,getMinutes as d,getMonth as m,getSeconds as p,getYear as g,isLeapYear as y,newDate as f}from"date-fns-jalali";import{ValidationHelper as v}from"jb-validation";import{createFocusEvent as b,createInputEvent as I,createKeyboardEvent as V,enToFaDigits as D,faToEnDigits as A,isMobile as M,listenAndSilentEvent as N}from"jb-core";function E(t,e,i,a){if("a"===i&&!a)throw new TypeError("Private accessor was defined without a getter");if("function"==typeof e?t!==e||!a:!e.has(t))throw new TypeError("Cannot read private member from an object whose class did not declare it");return"m"===i?a:"a"===i?a.call(t):a?a.value:e.get(t)}function T(t,e,i,a,n){if("m"===a)throw new TypeError("Private method is not writable");if("a"===a&&!n)throw new TypeError("Private accessor was defined without a setter");if("function"==typeof e?t!==e||!n:!e.has(t))throw new TypeError("Cannot write private member to an object whose class did not declare it");return"a"===a?n.call(t,i):n?n.value=i:e.set(t,i),i}var w,_,j,O,S,L,R,Y,B,C,F,k,P;function G(t,e){let i=!1;return 8==e&&t>3&&(this.inputChar("0",e),e++),9==e&&t>1&&"3"==this.elements.input.value[8]&&(i=!0),9==e&&0==t&&"0"==this.elements.input.value[8]&&(i=!0),8==e&&0==t&&"0"==this.elements.input.value[9]&&(i=!0),8==e&&3==t&&this.elements.input.value[9]>"0"&&this.inputType==w.jalali&&(2==this.typedMonth.length&&parseInt(this.typedMonth)>6&&this.inputChar("0",9),2==this.typedMonth.length&&parseInt(this.typedMonth)<7&&this.elements.input.value[9]>"1"&&this.inputChar("1",9)),{isIgnoreChar:i,caretPos:e}}function H(t,e){let i=!1;return 5==e&&1==t&&this.elements.input.value[6]>"2"&&(i=!0),6==e&&t>2&&"1"==this.elements.input.value[5]&&(i=!0),6==e&&0==t&&"0"==this.elements.input.value[5]&&(i=!0),5==e&&0==t&&"0"==this.elements.input.value[4]&&(i=!0),{isIgnoreChar:i,caretPos:e}}(_=w||(w={})).jalali="JALALI",_.gregorian="GREGORIAN",(O=j||(j={})).jalali="JALALI",O.gregorian="GREGORIAN",O.timeStamp="TIME_STAMP";var U=class t{get valueFormat(){return E(this,C,"f")}set valueFormat(t){T(this,C,t,"f")}get nicheNumbers(){return E(this,B,"f")}get yearOnEmptyBaseOnInputType(){return"JALALI"==E(this,Y,"f")?E(this,B,"f").calendarYearOnEmpty.jalali:E(this,B,"f").calendarYearOnEmpty.gregorian}get monthOnEmptyBaseOnValueType(){return"JALALI"==this.valueType?E(this,B,"f").calendarMonthOnEmpty.jalali:E(this,B,"f").calendarMonthOnEmpty.gregorian}get inputType(){return E(this,Y,"f")}get valueType(){return E(this,R,"f")}constructor(e){S.add(this),R.set(this,"GREGORIAN"),Y.set(this,w.jalali),B.set(this,{calendarYearOnEmpty:{jalali:t.todayJalaliYear,gregorian:t.todayGregorianYear},calendarMonthOnEmpty:{jalali:t.todayJalaliMonth,gregorian:t.todayGregorianMonth}}),C.set(this,"YYYY-MM-DDTHH:mm:ss.SSS[Z]"),e.inputType&&T(this,Y,e.inputType,"f"),e.valueType&&T(this,R,e.valueType,"f")}setInputType(t){T(this,Y,t,"f")}setValueType(t){T(this,R,t,"f")}getYearValueBaseOnInputType(t){return E(this,Y,"f")==w.jalali?t.jalali.year:t.gregorian.year}getMonthValueBaseOnInputType(t){return E(this,Y,"f")==w.jalali?t.jalali.month:t.gregorian.month}getDayValueBaseOnInputType(t){return E(this,Y,"f")==w.jalali?t.jalali.day:t.gregorian.day}getDateFromValueDateString(e){let i=null;if("TIME_STAMP"==this.valueType)i=t.getDateFromTimestamp(parseInt(e));else{const a=this.getDateObjectValueBaseOnFormat(e),n=parseInt(a.year),s=parseInt(a.month),l=parseInt(a.day);null!=a&&null!==n&&null!==s&&null!==l&&("GREGORIAN"==this.valueType&&(i=t.getDateFromGregorian(n,s,l)),"JALALI"==this.valueType&&(i=t.getDateFromJalali(n,s,l)))}return i}getDateValueFromValueObject(t){if(t.gregorian.year&&t.gregorian.month&&t.gregorian.day){return new Date(t.gregorian.year,t.gregorian.month-1,t.gregorian.day)}return null}getDateValueStringFromValueObject(t,e=this.valueType){const i="0000",a=t.time.hour?.toString().padStart(2,"0")??"00",n=t.time.minute?.toString().padStart(2,"0")??"00",s=t.time.second?.toString().padStart(2,"0")??"00",l=t.time.millisecond?.toString().padStart(3,"0")??"000",r=()=>{const{year:e,month:r,day:o}=t.gregorian,h=null==e?i:e<1e3?e<100?e<10?"000"+e:"00"+e:"0"+e:e.toString(),u=null==r?"00":r<10?"0"+r:r.toString(),c=null==o?"00":o<10?"0"+o:o.toString();return E(this,C,"f").replace("YYYY",h).replace("MM",u).replace("DD",c).replace("HH",a).replace("mm",n).replace("ss",s).replace("SSS",l).replace("[Z]","Ž").replace("Z","+00:00").replace("Ž","Z")},o=()=>{const{year:e,month:r,day:o}=t.jalali,h=null==e?i:e<1e3?e<100?e<10?"000"+e:"00"+e:"0"+e:e.toString(),u=null==r?"00":r<10?"0"+r:r.toString(),c=null==o?"00":o<10?"0"+o:o.toString();return this.valueFormat.replace("YYYY",h).replace("MM",u).replace("DD",c).replace("HH",a).replace("mm",n).replace("ss",s).replace("SSS",l).replace("[Z]","Ž").replace("Z","+00:00").replace("Ž","Z")};if("object"==typeof t)switch(e){case"GREGORIAN":return r();case"JALALI":return o();case"TIME_STAMP":if(t.timeStamp)return t.timeStamp.toString()}return""}getCalendarYear(t){const e=this.inputType==w.gregorian?E(this,B,"f").calendarYearOnEmpty.gregorian:E(this,B,"f").calendarYearOnEmpty.jalali;return this.getYearValueBaseOnInputType(t)||e}getCalendarMonth(t){const e=this.inputType==w.gregorian?E(this,B,"f").calendarMonthOnEmpty.gregorian:E(this,B,"f").calendarMonthOnEmpty.jalali;return this.getMonthValueBaseOnInputType(t)||e}getCalendarDay(t){return this.getDayValueBaseOnInputType(t)}setCalendarDefaultDateView(t,e,i=E(this,Y,"f")){i==w.gregorian?(E(this,B,"f").calendarYearOnEmpty.gregorian=t,E(this,B,"f").calendarMonthOnEmpty.gregorian=e):i==w.jalali&&(E(this,B,"f").calendarYearOnEmpty.jalali=t,E(this,B,"f").calendarMonthOnEmpty.jalali=e)}getDateValueObjectBaseOnInputType(t,e,i,a,n,s,l,r,o){return E(this,Y,"f")==w.gregorian?E(this,S,"m",F).call(this,t,e,i,a,n,s,l,r,o):E(this,Y,"f")==w.jalali?E(this,S,"m",k).call(this,t,e,i,a,n,s,l,r,o):(console.error("INVALID_INPUT_TYPE"),{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}})}getDateValueObjectBaseOnValueType(t,e,i,a,n,s,l,r,o){return"GREGORIAN"==E(this,R,"f")||"TIME_STAMP"==E(this,R,"f")?E(this,S,"m",F).call(this,t,e,i,a,n,s,l,r,o):"JALALI"==E(this,R,"f")?E(this,S,"m",k).call(this,t,e,i,a,n,s,l,r,o):(console.error("INVALID_INPUT_TYPE"),{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}})}getDateValueObjectFromTimeStamp(t){const e=new Date(t);return isFinite(+e)?this.getDateObjectValueFromDateValue(e):{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}}}getDateObjectValueFromDateValue(t){return{gregorian:{year:n(t),month:i(t)+1,day:e(t)},jalali:{year:g(t),month:m(t)+1,day:h(t)},timeStamp:a(t),time:{hour:u(t),minute:d(t),second:p(t),millisecond:c(t)}}}static checkJalaliDateValidation(e,i,a){const n={isValid:!0,error:null};if(isNaN(e)&&(n.isValid=!1,n.error="INVALID_YEAR"),isNaN(i)&&(n.isValid=!1,n.error="INVALID_MONTH"),isNaN(a)&&(n.isValid=!1,n.error="INVALID_DAY"),i<1&&(n.isValid=!1,n.error="INVALID_MIN_MONTH_NUMBER"),a<1&&(n.isValid=!1,n.error="INVALID_MIN_DAY_NUMBER"),i>12&&(n.isValid=!1,n.error="INVALID_MAX_MONTH_NUMBER"),a>31&&(n.isValid=!1,n.error="INVALID_MAX_DAY_NUMBER"),e<1e3&&(n.isValid=!1,n.error="INVALID_MIN_YEAR_NUMBER"),e>9999&&(n.isValid=!1,n.error="INVALID_MAX_YEAR_NUMBER"),i>6&&i<12&&a>30&&(n.isValid=!1,n.error="INVALID_DAY_IN_MONTH"),12==i&&a>30&&(n.isValid=!1,n.error="INVALID_DAY_IN_MONTH"),n.isValid&&12==i&&12==i&&30==a){const s=t.getDateFromJalali(e,i,a);y(s)||(n.isValid=!1,n.error="INVALID_DAY_FOR_LEAP")}return n}static checkGregorianDateValidation(e,i,a){const n={isValid:!0,error:null};if(isNaN(e)&&(n.isValid=!1,n.error="INVALID_YEAR"),isNaN(i)&&(n.isValid=!1,n.error="INVALID_MONTH"),isNaN(a)&&(n.isValid=!1,n.error="INVALID_DAY"),i<1&&(n.isValid=!1,n.error="INVALID_MIN_MONTH_NUMBER"),a<1&&(n.isValid=!1,n.error="INVALID_MIN_DAY_NUMBER"),i>12&&(n.isValid=!1,n.error="INVALID_MAX_MONTH_NUMBER"),a>31&&(n.isValid=!1,n.error="INVALID_MAX_DAY_NUMBER"),e<1e3&&(n.isValid=!1,n.error="INVALID_MIN_YEAR_NUMBER"),e>9999&&(n.isValid=!1,n.error="INVALID_MAX_YEAR_NUMBER"),[2,4,6,9,11].includes(a)&&a>30&&(n.isValid=!1,n.error="INVALID_DAY_IN_MONTH"),2==i&&a>28)if(29==a){const s=t.getDateFromGregorian(e,i,a);o(s)||(n.isValid=!1,n.error="INVALID_DAY_FOR_LEAP")}else n.isValid=!1,n.error="INVALID_DAY_IN_MONTH";return n}getDateObjectValueBaseOnFormat(e,i=E(this,C,"f")){const a=E(t,L,"m",P).call(t,e,i),n={year:null,month:null,day:null,hour:null,millisecond:null,minute:null,second:null};return a&&a.groups&&(n.year=a.groups.year,n.month=a.groups.month,n.day=a.groups.day,n.hour=a.groups.hour,n.minute=a.groups.minute,n.second=a.groups.second,n.millisecond=a.groups.millisecond),n}static getDate(e,i,a,n,s,l,r,o){return n==w.jalali?t.getDateFromJalali(e,i,a):t.getDateFromGregorian(e,i,a)}static getDateFromGregorian(t,e,i,a,n,s,l){return new Date(t,e-1,i,a,n,s,l)}static getDateFromJalali(t,e,i,a,n,s,l){return f(t,e-1,i,a,n,s,l)}static getDateFromTimestamp(t){return new Date(t)}static get todayGregorianYear(){return n(new Date)}static get todayJalaliYear(){return g(new Date)}static get todayGregorianMonth(){return i(new Date)+1}static get todayJalaliMonth(){return m(new Date)+1}};L=U,R=new WeakMap,Y=new WeakMap,B=new WeakMap,C=new WeakMap,S=new WeakSet,F=function t(s,l,r,o,u,c,d,p,y){const f={gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}},v=U.checkGregorianDateValidation(s,l,r);if(!v.isValid)return"INVALID_MIN_DAY_NUMBER"==v.error?E(this,S,"m",t).call(this,s,l,1,o,u,c,d,p,y):"INVALID_MIN_MONTH_NUMBER"==v.error?E(this,S,"m",t).call(this,s,1,r,o,u,c,d,p,y):"INVALID_MIN_YEAR_NUMBER"==v.error?E(this,S,"m",t).call(this,1900,l,r,o,u,c,d,p,y):"INVALID_MAX_DAY_NUMBER"==v.error?E(this,S,"m",t).call(this,s,l,31,o,u,c,d,p,y):"INVALID_MAX_MONTH_NUMBER"==v.error?E(this,S,"m",t).call(this,s,12,r,o,u,c,d,p,y):"INVALID_MAX_YEAR_NUMBER"==v.error?E(this,S,"m",t).call(this,9e3,l,r,o,u,c,d,p,y):"INVALID_DAY_IN_MONTH"==v.error&&u!=l&&r>29||"INVALID_DAY_FOR_LEAP"==v.error&&o!=s&&29==r?E(this,S,"m",t).call(this,s,l,r-1,o,u,c,d,p,y):{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}};const b=U.getDateFromGregorian(s,l,r,c,d,p,y);return f.gregorian={year:n(b),month:i(b)+1,day:e(b)},f.jalali={year:g(b),month:m(b)+1,day:h(b)},f.timeStamp=a(b),f.time={hour:c,minute:d,second:p,millisecond:y},f},k=function t(s,l,r,o,u,c,d,p,y){const f={gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}},v=U.checkJalaliDateValidation(s,l,r);if(!v.isValid)return"INVALID_MIN_DAY_NUMBER"==v.error?E(this,S,"m",t).call(this,s,l,1,o,u,c,d,p,y):"INVALID_MIN_MONTH_NUMBER"==v.error?E(this,S,"m",t).call(this,s,1,r,o,u,c,d,p,y):"INVALID_MIN_YEAR_NUMBER"==v.error?E(this,S,"m",t).call(this,1300,l,r,o,u,c,d,p,y):"INVALID_MAX_DAY_NUMBER"==v.error?E(this,S,"m",t).call(this,s,l,31,o,u,c,d,p,y):"INVALID_MAX_MONTH_NUMBER"==v.error?E(this,S,"m",t).call(this,s,12,r,o,u,c,d,p,y):"INVALID_MAX_YEAR_NUMBER"==v.error?E(this,S,"m",t).call(this,9999,l,r,o,u,c,d,p,y):"INVALID_DAY_IN_MONTH"==v.error&&u!=l&&31==r||"INVALID_DAY_FOR_LEAP"==v.error&&o!=s&&30==r?E(this,S,"m",t).call(this,s,l,r-1,o,u,c,d,p,y):{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}};const b=U.getDateFromJalali(s,l,r,c,d,p,y);return f.gregorian={year:n(b),month:i(b)+1,day:e(b)},f.jalali={year:g(b),month:m(b)+1,day:h(b)},f.timeStamp=a(b),f.time={hour:c,minute:d,second:p,millisecond:y},f},P=function(t,e){const i=e.replace("YYYY","(?<year>[\\d]{4})").replace("MM","(?<month>[\\d]{2})").replace("DD","(?<day>[\\d]{2})").replace("HH","(?<hour>[\\d]{2})").replace("mm","(?<minute>[\\d]{2})").replace("ss","(?<second>[\\d]{2})").replace("SSS","(?<millisecond>[\\d]{3})").replace("[Z]","Ž").replace("Z","(?<zone>([\\+,-]\\d{2}:\\d{2}))").replace("Ž","Z");return new RegExp(i,"g").exec(t)};const x={validator:t=>null!=t.inputObject.year&&null!=t.inputObject.month&&null!=t.inputObject.day,message:"لطفا مقدار تاریخ را کامل وارد کنید",stateType:"valueMissing"};var J,W,Z,X,q,$,z,K,Q,tt,et,it,at,nt,st,lt,rt,ot,ht,ut,ct,dt,mt,pt,gt,yt,ft,vt,bt,It,Vt,Dt,At,Mt,Nt,Et,Tt,wt,_t,jt,Ot,St,Lt,Rt,Yt,Bt,Ct,Ft,kt,Pt,Gt,Ht,Ut,xt,Jt,Wt,Zt,Xt,qt,$t,zt,Kt,Qt,te,ee,ie,ae,ne,se,le,re,oe,he,ue;null==HTMLElement&&console.error("you cant render web component on a server side. try to load this component as a client side component");const ce=" / / ";var de=class e extends HTMLElement{get isAutoValidationDisabled(){return E(this,X,"f")}set isAutoValidationDisabled(t){T(this,X,t,"f")}get validation(){return E(this,Z,"f")}get disabled(){return E(this,K,"f")}set disabled(t){T(this,K,t,"f"),this.elements.input.disabled=t,t?E(this,W,"f").states?.add("disabled"):E(this,W,"f").states?.delete("disabled")}get selectionStart(){return this.elements.input.selectionStart}set selectionStart(t){this.elements.input.selectionStart=t}get selectionEnd(){return this.elements.input.selectionEnd}set selectionEnd(t){this.elements.input.selectionEnd=t}get selectionDirection(){return this.elements.input.selectionDirection}set selectionDirection(t){this.elements.input.selectionDirection=t}setSelectionRange(t,e,i){this.elements.input.setSelectionRange(t,e,i)}set required(t){T(this,Q,t,"f"),E(this,J,"m",oe).call(this,!1)}get required(){return E(this,Q,"f")}get name(){return this.getAttribute("name")||""}get form(){return E(this,W,"f").form}get value(){return this.getDateValue()}set value(t){E(this,J,"m",Rt).call(this,t),E(this,J,"m",Ht).call(this)}get isDirty(){return this.value!==(this.initialValue??E(this,q,"f").getDateValueStringFromValueObject({gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}},this.valueType))}setMonthList(t,e){this.elements.calendar.setMonthList(t,e)}get valueInDate(){return E(this,q,"f").getDateValueFromValueObject(E(this,tt,"f"))}get inputValue(){return E(this,J,"a",st)}get placeholder(){return E(this,at,"f")}set placeholder(t){T(this,at,t,"f"),this.elements.input.elements.input.placeholder=null!==t?t:"",E(this,J,"m",Ht).call(this)}get showCalendar(){return E(this,$,"f")}set showCalendar(t){T(this,$,t,"f"),1==t?(this.elements.calendar.setupStyleBaseOnCssDirection(),this.elements.popover.open(),this.elements.calendarTriggerButton.classList.add("--active")):(this.elements.popover.close(),this.elements.calendarTriggerButton.classList.remove("--active"))}get inputType(){return E(this,q,"f").inputType}set inputType(t){Object.values(w).includes(t)?(E(this,q,"f").setInputType(t),this.onInputTypeChange()):console.error(`${t} is not a valid input type`)}get valueType(){return E(this,q,"f").valueType}set valueType(t){Object.values(j).includes(t)?E(this,q,"f").setValueType(t):console.error(`${t} is not a valid value type`)}get yearValue(){switch(this.valueType){case"JALALI":return E(this,tt,"f").jalali.year;case"GREGORIAN":case"TIME_STAMP":return E(this,tt,"f").gregorian.year;default:return null}}get yearDisplayValue(){switch(this.inputType){case"JALALI":return E(this,tt,"f").jalali.year;case"GREGORIAN":return E(this,tt,"f").gregorian.year;default:return null}}get monthValue(){switch(this.valueType){case"JALALI":return E(this,tt,"f").jalali.month;case"GREGORIAN":case"TIME_STAMP":return E(this,tt,"f").gregorian.month;default:return null}}get monthDisplayValue(){switch(this.inputType){case"JALALI":return E(this,tt,"f").jalali.month;case"GREGORIAN":return E(this,tt,"f").gregorian.month;default:return null}}get dayValue(){switch(this.valueType){case"JALALI":return E(this,tt,"f").jalali.day;case"GREGORIAN":case"TIME_STAMP":return E(this,tt,"f").gregorian.day;default:return null}}get dayDisplayValue(){switch(this.inputType){case"JALALI":return E(this,tt,"f").jalali.day;case"GREGORIAN":return E(this,tt,"f").gregorian.day;default:return null}}get yearBaseOnInputType(){switch(this.inputType){case w.jalali:return E(this,tt,"f").jalali.year;case w.gregorian:return E(this,tt,"f").gregorian.year;default:return null}}get monthBaseOnInputType(){switch(this.inputType){case w.jalali:return E(this,tt,"f").jalali.month;case w.gregorian:return E(this,tt,"f").gregorian.month;default:return null}}get dayBaseOnInputType(){switch(this.inputType){case w.jalali:return E(this,tt,"f").jalali.day;case w.gregorian:return E(this,tt,"f").gregorian.day;default:return null}}get typedYear(){return this.inputValue.substring(0,4)}get typedMonth(){return this.inputValue.substring(5,7)}get typedDay(){return this.inputValue.substring(8,10)}get sTypedYear(){return E(this,J,"a",nt).substring(0,4)}get sTypedMonth(){return E(this,J,"a",nt).substring(5,7)}get sTypedDay(){return E(this,J,"a",nt).substring(8,10)}get valueFormat(){return E(this,q,"f").valueFormat}get showPersianNumber(){return E(this,rt,"f")}set showPersianNumber(t){T(this,rt,t,"f"),E(this,J,"m",Ht).call(this)}constructor(){super(),J.add(this),W.set(this,void 0),Z.set(this,new v({clearValidationError:this.clearValidationError.bind(this),getValue:()=>E(this,J,"a",et),getValidations:E(this,J,"m",te).bind(this),getValueString:t=>t.text,setValidationResult:E(this,J,"m",ue).bind(this),showValidationError:this.showValidationError.bind(this)})),X.set(this,!1),q.set(this,new U({inputType:this.getAttribute("input-type"),valueType:this.getAttribute("value-type")})),$.set(this,!1),this.inputFormat="YYYY/MM/DD",z.set(this,/^(?<year>[\u06F0-\u06F90-9,\s]{4})\/(?<month>[\u06F0-\u06F90-9,\s]{2})\/(?<day>[\u06F0-\u06F90-9,\s]{2})$/g),this.dateRestrictions={min:null,max:null},K.set(this,!1),Q.set(this,!1),this.DefaultValidationErrorMessage="مقدار وارد شده نا معتبر است",tt.set(this,{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}}),this.initialValue=null,at.set(this,null),rt.set(this,!1),mt.set(this,!1),Jt.set(this," / / "),ie.set(this,!1),"function"==typeof this.attachInternals&&T(this,W,this.attachInternals(),"f"),E(this,J,"m",ut).call(this)}connectedCallback(){E(this,J,"m",ot).call(this),E(this,J,"m",gt).call(this)}static get dateInputObservedAttributes(){return["value-type","value","name","format","min","max","required","input-type","direction","show-persian-number","placeholder","disabled","error"]}static get observedAttributes(){return[...t.observedAttributes,...e.dateInputObservedAttributes]}attributeChangedCallback(i,a,n){e.dateInputObservedAttributes.includes(i)?E(this,J,"m",yt).call(this,i,n):t.observedAttributes.includes(i)&&this.elements.input.setAttribute(i,n)}setFormat(t){E(this,q,"f").valueFormat=t;const e=this.getAttribute("min");e&&E(this,J,"m",ft).call(this,e);const i=this.getAttribute("max");i&&E(this,J,"m",vt).call(this,i)}setMinDate(t){E(this,J,"m",ft).call(this,t)}setMaxDate(t){E(this,J,"m",vt).call(this,t)}inputChar(t,e){E(this,J,"m",bt).call(this,t,e)}getDateValue(t=this.valueType){return E(this,q,"f").getDateValueStringFromValueObject(E(this,tt,"f"),t)}focus(){this.elements.input.focus(),this.showCalendar=!0}triggerInputValidation(t=!0){return E(this,J,"m",oe).call(this,t)}showValidationError(t){this.elements.input.showValidationError(t),E(this,W,"f").states?.add("invalid")}clearValidationError(){this.elements.input.clearValidationError(),E(this,W,"f").states?.delete("invalid")}async onInputTypeChange(){E(this,mt,"f")||await E(this,J,"m",pt).call(this),this.elements.calendar.inputType=this.inputType,E(this,J,"m",Ht).call(this)}setCalendarDefaultDateView(t,e,i){t&&e&&(E(this,q,"f").setCalendarDefaultDateView(t,e,i),E(this,J,"m",Bt).call(this))}checkValidity(){const t=E(this,Z,"f").checkValiditySync({showError:!1});return t.isAllValid||E(this,J,"m",he).call(this),t.isAllValid}reportValidity(){const t=E(this,Z,"f").checkValiditySync({showError:!0});return t.isAllValid||E(this,J,"m",he).call(this),t.isAllValid}get validationMessage(){return E(this,W,"f").validationMessage}};W=new WeakMap,Z=new WeakMap,X=new WeakMap,q=new WeakMap,$=new WeakMap,z=new WeakMap,K=new WeakMap,Q=new WeakMap,tt=new WeakMap,at=new WeakMap,rt=new WeakMap,mt=new WeakMap,Jt=new WeakMap,ie=new WeakMap,J=new WeakSet,et=function(){return{inputObject:E(this,q,"f").getDateObjectValueBaseOnFormat(E(this,J,"a",nt),this.inputFormat),text:E(this,J,"a",nt),valueText:this.value,valueObject:E(this,tt,"f")}},it=function(){E(this,W,"f")&&"function"==typeof E(this,W,"f").setFormValue&&E(this,W,"f").setFormValue(this.value)},nt=function(){let t=E(this,J,"a",st);return E(this,rt,"f")&&(t=A(t)),t},st=function(){return this.elements.input.value},lt=function(t){this.elements.input.value=t},ot=function(){const t=new CustomEvent("load",{bubbles:!0,composed:!0});this.dispatchEvent(t)},ht=function(){const t=new CustomEvent("init",{bubbles:!0,composed:!0});this.dispatchEvent(t)},ut=function(){const t=this.attachShadow({mode:"open",delegatesFocus:!0}),e=document.createElement("template");e.innerHTML='<style>:host(:focus),:host(:focus-visible){outline:none}.jb-date-input-web-component{width:100%;margin:var(--jb-date-input-margin, 0 0);position:relative}.jb-date-input-web-component:focus-visible{outline:none}.jb-date-input-web-component .calendar-trigger{display:var(--jb-date-input-calendar-trigger-display, block);width:var(--jb-date-input-calendar-trigger-width, 1.5rem);height:var(--jb-date-input-calendar-trigger-height, 1.5rem);cursor:pointer;object-fit:contain}.jb-date-input-web-component .calendar-trigger.--active svg .cls-1{fill:#1f1735}.jb-date-input-web-component .calendar-trigger svg{width:100%;height:100%}.jb-date-input-web-component .calendar-trigger svg .cls-1{fill:#bbb}</style>\n<div class="jb-date-input-web-component">\r\n <jb-input disable-auto-validation>\r\n <div class="date-input-end-section" slot="end-section">\r\n <div class="calendar-trigger" tabindex="0">\r\n <slot name="calendar-trigger-icon">\r\n <svg xmlns="http://www.w3.org/2000/svg" id="CalendarIcon" viewBox="0 0 44.97 44.46">\r\n <defs>\r\n <style></style>\r\n </defs>\r\n <g>\r\n <path id="Path_11948" data-name="Path 11948" class="cls-1" d="M41.91,12H3.67C2,12,.61,12.59.61,13.37S2,14.78,3.67,14.78H41.91c1.69,0,3.06-.63,3.06-1.41S43.6,12,41.91,12Z" transform="translate(0 0)"/>\r\n <path id="Path_11946" data-name="Path 11946" class="cls-1" d="M33.73,2.22H33V1.36A1.58,1.58,0,0,0,31.33,0a1.61,1.61,0,0,0-1.69,1.36v.86l-5.88,0V1.48A1.46,1.46,0,0,0,22.31,0h-.12a1.59,1.59,0,0,0-1.7,1.48v.74l-6.07,0V1.36A1.6,1.6,0,0,0,12.76,0C11.93,0,11,.61,11,1.36v.89C4.87,2.58,0,7.18,0,12.79v21.1c0,5.83,5.24,10.57,11.68,10.57h21.6C39.73,44.46,45,39.72,45,33.89V12.79C45,7,40.17,2.22,33.73,2.22ZM42,33.89c0,4.33-3.89,7.85-8.68,7.85H11.69C6.9,41.74,3,38.22,3,33.89V12.79C3,8.67,6.53,5.29,11,5v.68C11,6.4,12,7,12.76,7a1.63,1.63,0,0,0,1.67-1.36V4.93h6.06v.85c0,.75,1,1.23,1.71,1.23s1.56-.48,1.56-1.23V4.93h5.88v.72A1.62,1.62,0,0,0,31.33,7,1.59,1.59,0,0,0,33,5.65V4.93h.3c4.79,0,8.68,3.53,8.68,7.86Z"/>\r\n </g>\r\n </svg>\r\n </slot>\r\n </div>\r\n </div>\r\n \x3c!-- <slot name="end-section"></slot> --\x3e\r\n </jb-input>\r\n <jb-popover>\r\n <jb-calendar tabindex="0"></jb-calendar>\r\n </jb-popover>\r\n</div>',t.appendChild(e.content.cloneNode(!0)),this.elements={input:t.querySelector("jb-input"),calendarTriggerButton:t.querySelector(".calendar-trigger"),calendar:t.querySelector("jb-calendar"),popover:t.querySelector("jb-popover")},E(this,J,"m",dt).call(this),E(this,J,"m",ct).call(this)},ct=function(){M()?this.elements.input.setAttribute("readonly","true"):this.elements.input.removeAttribute("readonly")},dt=function(){this.elements.input.addEventListener("beforeinput",E(this,J,"m",Nt).bind(this)),N(this.elements.input,"focus",E(this,J,"m",Zt).bind(this),{passive:!0}),N(this.elements.input,"blur",E(this,J,"m",qt).bind(this),{passive:!0}),N(this.elements.input,"keypress",E(this,J,"m",Et).bind(this)),N(this.elements.input,"keyup",E(this,J,"m",Tt).bind(this)),N(this.elements.input,"keydown",E(this,J,"m",_t).bind(this)),this.elements.calendarTriggerButton.addEventListener("focus",E(this,J,"m",ae).bind(this)),this.elements.calendarTriggerButton.addEventListener("blur",E(this,J,"m",ne).bind(this)),this.elements.calendarTriggerButton.addEventListener("click",E(this,J,"m",se).bind(this)),this.elements.calendar.addEventListener("select",(t=>E(this,J,"m",le).call(this,t))),this.elements.calendar.addEventListener("init",E(this,J,"m",ee).bind(this)),this.elements.calendar.addEventListener("blur",E(this,J,"m",zt).bind(this),{passive:!0}),this.elements.popover.addEventListener("close",E(this,J,"m",Kt).bind(this),{passive:!0})},pt=async function(){return E(this,mt,"f")||(await customElements.whenDefined("jb-input"),await customElements.whenDefined("jb-calendar"),await customElements.whenDefined("jb-popover"),T(this,mt,!0,"f")),Promise.resolve()},gt=function(){E(this,J,"m",pt).call(this).then((()=>{E(this,J,"m",Yt).call(this),this.value=this.getAttribute("value")||"",E(this,J,"m",ht).call(this)}))},yt=function(t,e){switch(t){case"value":this.value=e;break;case"name":this.elements.input.setAttribute("name",e);break;case"value-type":this.valueType=e;break;case"format":this.setFormat(e);break;case"min":E(this,J,"m",ft).call(this,e);break;case"max":E(this,J,"m",vt).call(this,e);break;case"required":this.required=""===e||"true"==e;break;case"input-type":this.inputType=e;break;case"direction":this.elements.calendar.setAttribute("direction",e);break;case"show-persian-number":"true"!=e&&""!=e||(this.showPersianNumber=!0,this.elements.calendar.showPersianNumber=!0),"false"!=e&&null!=e||(this.showPersianNumber=!1,this.elements.calendar.showPersianNumber=!1);break;case"placeholder":this.placeholder=e;break;case"disabled":this.disabled=""===e||"true"==e;break;case"error":this.reportValidity()}},ft=function(t){let e=null;e="string"==typeof t?E(this,q,"f").getDateFromValueDateString(t):t,e?(this.dateRestrictions.min=e,this.elements.calendar.dateRestrictions&&(this.elements.calendar.dateRestrictions.min=e)):console.error(`min date ${t} is not valid and it will be ignored`,"\n","please provide min date in format : "+E(this,q,"f").valueFormat)},vt=function(t){let e=null;e="string"==typeof t?E(this,q,"f").getDateFromValueDateString(t):t,e?(this.dateRestrictions.max=e,this.elements.calendar.dateRestrictions&&(this.elements.calendar.dateRestrictions.max=e)):console.error(`max date ${t} is not valid and it will be ignored`,"\n","please provide max date in format : "+E(this,q,"f").valueFormat)},bt=function(t,e){if(4!=e&&7!=e||(t="/"),e>9||e<0)return;E(this,z,"f").lastIndex=0;const i=E(this,J,"a",st).split("");E(this,rt,"f")&&(t=D(t)),i[e]=t;const a=i.join("");T(this,J,a,"a",lt)},It=function(t){return/[\u06F0-\u06F90-9/]/g.test(t)},Vt=function(t){return A(t).replace(/[^\u06F0-\u06F90-9/]/g,"")},Dt=function(t){E(this,J,"m",At).call(this,t)},At=function(t){const e=I("input",t,{cancelable:!1});this.dispatchEvent(e)},Mt=function(t){t.stopPropagation();const e=I("beforeinput",t,{cancelable:!0});return this.dispatchEvent(e),e.defaultPrevented&&t.preventDefault(),e.defaultPrevented},Nt=function(t){if(E(this,J,"m",Mt).call(this,t))return;const e=t.target.selectionStart,i=e,a=t.data;if(a){this.placeholder&&""===E(this,J,"a",st)&&T(this,J,ce,"a",lt);E(this,J,"m",Vt).call(this,a).split("").forEach(((e,a)=>{let n=i+a;if(!E(this,J,"m",It).call(this,e))return void t.preventDefault();4!=n&&7!=n||("/"==e&&t.target.setSelectionRange(n+1,n+1),n++);let s=!1;if("/"==e)return;const l=parseInt(e);5==n&&l>1&&(E(this,J,"m",bt).call(this,"0",n),n++);const r=H.call(this,l,n);n=r.caretPos;const o=G.call(this,l,n);n=o.caretPos,s=s||o.isIgnoreChar||r.isIgnoreChar,s||(E(this,J,"m",bt).call(this,e,n),t.target.setSelectionRange(n+1,n+1))})),t.preventDefault()}if("deleteContentBackward"==t.inputType||"deleteContentForward"==t.inputType||"delete"==t.inputType||"deleteByCut"==t.inputType||"deleteByDrag"==t.inputType){const i=t.target.selectionEnd;let a=0;"deleteContentBackward"==t.inputType&&(a=-1);for(let t=e;t<=i;t++)E(this,J,"m",bt).call(this," ",t+a);this.elements.input.setSelectionRange(e+a,e+a),this.placeholder&&E(this,J,"a",st)==ce&&T(this,J,"","a",lt),t.preventDefault()}E(this,J,"m",Dt).call(this,t)},Et=function(t){t.stopPropagation();const e=V("keypress",t,{cancelable:!1});this.dispatchEvent(e)},Tt=function(t){E(this,J,"m",Ut).call(this,E(this,J,"a",nt)),E(this,J,"m",wt).call(this,t)},wt=function(t){t.stopPropagation();const e=V("keyup",t,{cancelable:!1});this.dispatchEvent(e)},_t=function(t){if(!E(this,J,"m",jt).call(this,t))return void t.preventDefault();const e=t.target;if(38==t.keyCode||40==t.keyCode){const i=e.selectionStart;i<5&&(38==t.keyCode?E(this,J,"m",Ot).call(this,1):E(this,J,"m",Ot).call(this,-1),e.setSelectionRange(0,4)),i>4&&i<8&&(38==t.keyCode?E(this,J,"m",St).call(this,1):E(this,J,"m",St).call(this,-1),e.setSelectionRange(5,7)),i>7&&(38==t.keyCode?E(this,J,"m",Lt).call(this,1):E(this,J,"m",Lt).call(this,-1),e.setSelectionRange(8,10)),t.preventDefault()}},jt=function(t){t.stopPropagation();const e=V("keydown",t,{cancelable:!1});return this.dispatchEvent(e)},Ot=function(t){const e=this.yearDisplayValue?this.yearDisplayValue:E(this,q,"f").yearOnEmptyBaseOnInputType,i=this.monthDisplayValue||1,a=this.dayDisplayValue||1,{hour:n,minute:s,millisecond:l,second:r}=E(this,tt,"f").time;E(this,J,"m",Gt).call(this,e+t,i,a,n,s,r,l),E(this,J,"m",Ht).call(this)},St=function(t){const e=this.yearDisplayValue?this.yearDisplayValue:E(this,q,"f").yearOnEmptyBaseOnInputType,i=this.monthDisplayValue||1,a=this.dayDisplayValue||1,{hour:n,minute:s,millisecond:l,second:r}=E(this,tt,"f").time;E(this,J,"m",Gt).call(this,e,i+t,a,n,s,r,l),E(this,J,"m",Ht).call(this)},Lt=function(t){const e=this.yearDisplayValue?this.yearDisplayValue:E(this,q,"f").yearOnEmptyBaseOnInputType,i=this.monthDisplayValue||1,a=this.dayDisplayValue||1,{hour:n,minute:s,millisecond:l,second:r}=E(this,tt,"f").time;E(this,J,"m",Gt).call(this,e,i,a+t,n,s,r,l),E(this,J,"m",Ht).call(this)},Rt=function(t){if("string"==typeof t)switch(E(this,q,"f").valueType){case"GREGORIAN":case"JALALI":E(this,J,"m",kt).call(this,t);break;case"TIME_STAMP":E(this,J,"m",Ft).call(this,t)}else t instanceof Date&&E(this,J,"m",Ct).call(this,t);E(this,J,"m",it).call(this)},Yt=function(){T(this,tt,{gregorian:{year:null,month:null,day:null},jalali:{year:null,month:null,day:null},timeStamp:null,time:{hour:null,minute:null,second:null,millisecond:null}},"f")},Bt=function(){const t={year:E(this,q,"f").getCalendarYear(E(this,tt,"f")),month:E(this,q,"f").getCalendarMonth(E(this,tt,"f")),day:E(this,q,"f").getCalendarDay(E(this,tt,"f"))};t.year&&t.month&&t.day?this.elements.calendar.value=t:t.year&&t.month&&(this.elements.calendar.data.selectedYear=t.year,this.elements.calendar.data.selectedMonth=t.month)},Ct=function(t){const e=E(this,q,"f").getDateObjectValueFromDateValue(t);T(this,tt,e,"f"),E(this,J,"m",Bt).call(this)},Ft=function(t){const e=parseInt(t);T(this,tt,E(this,q,"f").getDateValueObjectFromTimeStamp(e),"f"),E(this,J,"m",Bt).call(this)},kt=function(t){const e=E(this,q,"f").getDateObjectValueBaseOnFormat(t);e.year&&e.month&&e.day?E(this,J,"m",Pt).call(this,parseInt(e.year),parseInt(e.month),parseInt(e.day),parseInt(e.hour??"00"),parseInt(e.minute??"00"),parseInt(e.second??"00"),parseInt(e.millisecond??"000")):null!=t&&""!==t?console.error("your inputted Date doest match default or your specified Format"):E(this,J,"m",Yt).call(this)},Pt=function(t,e,i,a,n,s,l){const r=this.yearValue,o=this.monthValue,h=E(this,q,"f").getDateValueObjectBaseOnValueType(t,e,i,r,o,a,n,s,l);T(this,tt,h,"f"),E(this,J,"m",Bt).call(this)},Gt=function(t,e,i,a,n,s,l){const r=this.yearBaseOnInputType,o=this.monthBaseOnInputType,h=E(this,q,"f").getDateValueObjectBaseOnInputType(t,e,i,r,o,a,n,s,l);T(this,tt,h,"f"),E(this,J,"m",Bt).call(this),E(this,J,"m",it).call(this)},Ht=function(){const{year:t,month:e,day:i}=this.inputType==w.jalali?E(this,tt,"f").jalali:E(this,tt,"f").gregorian;if(this.placeholder&&!(t&&e&&i))return void T(this,J,"","a",lt);let a=this.inputFormat,n=" ",s=" ",l=" ";null==t||Number.isNaN(t)||(n=t<10?"000"+t:t<100?"00"+t:t<1e3?"0"+t:t.toString()),null==e||Number.isNaN(e)||(s=e<10?"0"+e:e.toString()),null==i||Number.isNaN(i)||(l=i<10?"0"+i:i.toString()),E(this,rt,"f")&&(n=D(n),s=D(s),l=D(l)),a=a.replace("YYYY",n).replace("MM",s).replace("DD",l),T(this,J,a,"a",lt)},Ut=function(t){const e=E(this,z,"f").exec(t);if(e&&e.groups){const{hour:t,minute:i,millisecond:a,second:n}=E(this,tt,"f").time,s=parseInt(e.groups.year),l=parseInt(e.groups.month),r=parseInt(e.groups.day);s&&l&&r&&E(this,J,"m",Gt).call(this,s,l,r,t,i,n,a)}},xt=function(){const t=this.elements.input.selectionStart;if(t){const e=this.typedYear.trim().length;if(e<t&&t<=4)return void this.elements.input.setSelectionRange(e,e);const i=this.typedMonth.trim().length;if(i+5<t&&t>4&&t<=7)return void this.elements.input.setSelectionRange(i+5,i+5);const a=this.typedDay.trim().length;if(a+8<t&&t>7&&t<=10)return void this.elements.input.setSelectionRange(a+8,a+8)}},Wt=function(t){const e=()=>{T(this,Jt,t,"f")};return E(this,Jt,"f")!=t?(T(this,Jt,t,"f"),{isUpdated:!0,updatePrevValue:e}):{isUpdated:!1,updatePrevValue:e}},Zt=function(t){T(this,Jt,E(this,J,"a",nt),"f"),this.focus(),document.addEventListener("selectionchange",E(this,J,"m",xt).bind(this)),E(this,J,"m",Xt).call(this,t)},Xt=function(t){t.stopPropagation();const e=b("focus",t,{cancelable:!1});this.dispatchEvent(e)},qt=function(t){document.removeEventListener("selectionchange",E(this,J,"m",xt).bind(this));const e=t.relatedTarget;e!==this.elements.calendar&&e!==this.elements.calendarTriggerButton&&(this.showCalendar=!1);const i=E(this,J,"a",nt),a=E(this,J,"m",Wt).call(this,i);if(a.isUpdated){E(this,J,"m",Ut).call(this,i);const e=E(this,J,"m",Qt).call(this);E(this,J,"m",oe).call(this,!0),e.defaultPrevented?(t.preventDefault(),E(this,J,"m",Ut).call(this,E(this,Jt,"f"))):a.updatePrevValue()}E(this,J,"m",$t).call(this,t)},$t=function(t){t.stopPropagation();const e=b("blur",t,{cancelable:!1});this.dispatchEvent(e)},zt=function(t){const e=t.relatedTarget;e!==this.elements.input&&e!==this.elements.calendarTriggerButton&&(this.showCalendar=!1)},Kt=function(){this.showCalendar=!1,this.elements.input.blur()},Qt=function(){const t=new Event("change",{composed:!0,bubbles:!0,cancelable:!0});return this.dispatchEvent(t),t},te=function(){const t=[];return null!==this.getAttribute("error")&&this.getAttribute("error").trim().length>0&&t.push({validator:void 0,message:this.getAttribute("error"),stateType:"customError"}),this.required&&t.push(x),this.dateRestrictions.min&&t.push({validator:t=>{return e=new Date(t.valueObject.timeStamp),i=this.dateRestrictions.min,s(e,i)||r(e,i);var e,i},message:"تاریخ انتخابی کمتر از بازه مجاز است",stateType:"rangeUnderflow"}),this.dateRestrictions.max&&t.push({validator:t=>{return e=new Date(t.valueObject.timeStamp),i=this.dateRestrictions.max,l(e,i)||r(e,i);var e,i},message:"تاریخ انتخابی بیشتر از بازه مجاز است",stateType:"rangeOverflow"}),t},ee=function(){this.elements.calendar.dateRestrictions.min=this.dateRestrictions.min,this.elements.calendar.dateRestrictions.max=this.dateRestrictions.max,this.elements.calendar.defaultCalendarData={gregorian:{year:E(this,q,"f").nicheNumbers.calendarYearOnEmpty.gregorian,month:E(this,q,"f").nicheNumbers.calendarMonthOnEmpty.gregorian},jalali:{year:E(this,q,"f").nicheNumbers.calendarYearOnEmpty.jalali,month:E(this,q,"f").nicheNumbers.calendarMonthOnEmpty.jalali}},E(this,J,"m",Bt).call(this)},ae=function(t){const e=t.relatedTarget;this.showCalendar&&e&&[this.elements.calendar,this.elements.input].includes(e)?(e.focus(),this.showCalendar=!1):(T(this,ie,!0,"f"),this.showCalendar=!0)},ne=function(t){[this.elements.calendar,this.elements.input].includes(t.relatedTarget)||(this.showCalendar=!1)},se=function(){const t=this.shadowRoot?.activeElement;t&&!E(this,ie,"f")&&t==this.elements.calendarTriggerButton&&(this.showCalendar=!this.showCalendar),T(this,ie,!1,"f")},le=function(t){const e=t.target,{year:i,month:a,day:n}=e.value;if(i&&a&&n){const e=structuredClone(this.valueInDate),{hour:s,minute:l,millisecond:r,second:o}=E(this,tt,"f").time;E(this,J,"m",Gt).call(this,i,a,n,s,l,o,r),E(this,J,"m",Ht).call(this),this.showCalendar=!1,E(this,J,"m",re).call(this),E(this,J,"m",oe).call(this,!0);E(this,J,"m",Qt).call(this).defaultPrevented&&(t.preventDefault(),E(this,J,"m",Ct).call(this,e),E(this,J,"m",Ht).call(this))}},re=function(){const t=new CustomEvent("select");this.dispatchEvent(t)},oe=function(t){if(!this.isAutoValidationDisabled)return E(this,Z,"f").checkValidity({showError:t})},he=function(){const t=new CustomEvent("invalid");this.dispatchEvent(t)},ue=function(t){if(t.isAllValid)E(this,W,"f").setValidity({},"");else{const e={};let i="";t.validationList.forEach((t=>{t.isValid||(t.validation.stateType?e[t.validation.stateType]=!0:e.customError=!0,""==i&&(i=t.message))})),E(this,W,"f").setValidity(e,i)}},de.formAssociated=!0;!customElements.get("jb-date-input")&&window.customElements.define("jb-date-input",de);export{w as InputTypes,de as JBDateInputWebComponent,j as ValueTypes}; //# sourceMappingURL=jb-date-input.js.map