jb-date-input
Version:
jalali date input web component
2 lines • 7.46 kB
JavaScript
var e,t;e=this,t=function(e,t,r,n){var u,a,i=Object.create,o=Object.defineProperty,l=Object.getOwnPropertyDescriptor,c=Object.getOwnPropertyNames,s=Object.getPrototypeOf,f=Object.prototype.hasOwnProperty,d=(e,t,r,n)=>{if(t&&"object"==typeof t||"function"==typeof t)for(var u,a=c(t),i=0,s=a.length;i<s;i++)u=a[i],f.call(e,u)||u===r||o(e,u,{get:(e=>t[e]).bind(null,u),enumerable:!(n=l(t,u))||n.enumerable});return e},p=(e,t,r)=>(r=null!=e?i(s(e)):{},d(!t&&e&&e.__esModule?r:o(r,"default",{value:e,enumerable:!0}),e));function m(e,r,n,u=!1){let a=(0,t.useCallback)(t=>{e.current&&"function"==typeof n&&n(t)},[e,n]);(0,t.useEffect)(()=>{let t=e.current;return t&&t.addEventListener(r,a,{passive:u,capture:!1}),function(){t&&t.removeEventListener(r,a,{passive:u,capture:!1})}},[e,r,n,u])}function b(e){return e.substring(5,7)}function v(e){return e.substring(0,4)}t=p(t),n=p(n),(u=a||(a={})).jalali="JALALI",u.gregorian="GREGORIAN";let y=(0,t.forwardRef)((e,r)=>{let n=(0,t.useRef)(null);(0,t.useImperativeHandle)(r,()=>n?n.current:{},[n]);let u=(0,t.useRef)([]);return(0,t.useEffect)(()=>{e.format&&(e.format!==n.current?.valueFormat&&n.current?.setAttribute("format",e.format),u.current.length>0&&(u.current.forEach(e=>{e()}),u.current=[]))},[e.format]),(0,t.useEffect)(()=>{e.max&&(e.format&&e.format!==n.current?.valueFormat?u.current.push(()=>{e.max&&n.current?.setMaxDate(e.max)}):n.current?.setMaxDate(e.max))},[e.max]),(0,t.useEffect)(()=>{e.name?n?.current?.setAttribute("name",e.name||""):n?.current?.removeAttribute("name")},[e.name]),(0,t.useEffect)(()=>{e.min&&(e.format&&e.format!==n.current?.valueFormat?u.current.push(()=>{e.min&&n.current?.setMinDate(e.min)}):n.current?.setMinDate(e.min))},[e.min]),(0,t.useEffect)(()=>{n.current&&e.value&&(n.current.value=e.value)},[e.value]),(0,t.useEffect)(()=>{n.current&&n.current.setAttribute("message",e.message||"")},[e.message]),(0,t.useEffect)(()=>{n.current&&Array.isArray(e.jalaliMonthList)&&n.current.setMonthList("JALALI",e.jalaliMonthList)},[e.jalaliMonthList]),(0,t.useEffect)(()=>{n.current&&Array.isArray(e.gregorianMonthList)&&n.current.setMonthList("GREGORIAN",e.gregorianMonthList)},[e.gregorianMonthList]),(0,t.useEffect)(()=>{n.current&&void 0!==e.placeholder&&(n.current.placeholder=e.placeholder)},[e.placeholder]),(0,t.useEffect)(()=>{n.current&&void 0!==e.overflowHandler&&(n.current.elements.popover.overflowHandler=e.overflowHandler)},[e.overflowHandler]),(0,t.useEffect)(()=>{n.current&&void 0!==e.overflowRef&&(n.current.elements.popover.overflowDom=e.overflowRef.current)},[e.overflowRef]),(0,t.useEffect)(()=>{n.current&&Array.isArray(e.validationList)&&(n.current.validation.list=e.validationList)},[e.validationList]),(0,t.useEffect)(()=>{n.current&&e.direction&&n.current.setAttribute("direction",e.direction)},[e.direction]),(0,t.useEffect)(()=>{n.current&&(e.required?n.current.required=!0:n.current.required=!1)},[e.required,n.current]),(0,t.useEffect)(()=>{"object"==typeof e.calendarDefaultDateView&&e.calendarDefaultDateView.year&&e.calendarDefaultDateView.month&&n.current?.setCalendarDefaultDateView(e.calendarDefaultDateView.year,e.calendarDefaultDateView.month,e.calendarDefaultDateView.dateType)},[e.calendarDefaultDateView]),(0,t.useEffect)(()=>{e.showPersianNumber?n.current?.setAttribute("show-persian-number","true"):n.current?.removeAttribute("show-persian-number")},[e.showPersianNumber]),(0,t.useEffect)(()=>{"boolean"==typeof e.disabled&&n?.current?.setAttribute("disabled",`${e.disabled}`)},[e.disabled]),(0,t.useEffect)(()=>{e.error?n?.current?.setAttribute("error",e.error):n?.current?.removeAttribute("error")},[e.error]),(0,t.useEffect)(()=>{n?.current&&(n.current.isAutoValidationDisabled=!!e.isAutoValidationDisabled)},[e.isAutoValidationDisabled]),m(n,"load",e.onLoad,!0),m(n,"init",e.onInit,!0),m(n,"invalid",e.onInvalid,!0),m(n,"change",e.onChange,!0),m(n,"beforeinput",e.onBeforeInput,!1),m(n,"input",e.onInput,!0),m(n,"keyup",e.onKeyUp,!0),m(n,"keydown",e.onKeyDown,!1),m(n,"keypress",e.onKeyPress,!0),m(n,"select",e.onSelect,!0),m(n,"focus",e.onFocus,!0),m(n,"blur",e.onBlur,!0),t.default.createElement("jb-date-input",{style:e.style,class:e.className?e.className:"",label:e.label,"value-type":e.valueType?e.valueType:"GREGORIAN",ref:n,"input-type":e.inputType?e.inputType:"JALALI"},e.children)});y.displayName="JBDateInput",e.JBDateInput=y,e.useJBDateInput=function(e){let[r,u]=(0,t.useState)(" / / "),a=(0,t.useRef)(null);(0,t.useEffect)(()=>{a.current&&setTimeout(()=>{e.ref.current.setSelectionRange(a.current.selectionStart,a.current.selectionEnd),a.current=null},0)},[r,a.current]);let i=()=>{if(null===a.current){let t=function(e){let t=e.selectionStart;if(t){let r=v(e.inputValue).trim().length,n=b(e.inputValue).trim().length,u=e.inputValue.substring(8,10).trim().length;if(r<t&&(t<=4||0==n&&0==u))return r;if(t>4&&(t<=7&&n+5<t||0==u&&n<2))return n+5;if(u+8<t&&t>7&&t<=10)return u+8}return null}({inputValue:r,selectionStart:e.ref.current.selectionStart});null!=t&&t!==e.ref.current.selectionStart&&e.ref.current.setSelectionRange(t,t)}};return m(e.ref,"beforeinput",function(t){a.current=function(e){var t;let{showPersianNumber:r,dateInputType:u,selection:a,event:{data:i,inputType:o}}=e,l=a.start,c=l,s=e.value;return i&&(t=e.event.data||"",(0,n.faToEnDigits)(t).replace(/[^\u06F0-\u06F90-9/]/g,"")).split("").forEach((e,t)=>{var r,n;let a,i=l+t;if(!/[\u06F0-\u06F90-9/]/g.test(e))return;(4==i||7==i)&&("/"==e&&d(i+1),i++);let o=!1;if("/"==e)return;let c=Number(e);5==i&&c>1&&(f("0",i),i++);let p=(r=s,a=!1,5==(n=i)&&1==c&&r[6]>"2"&&(a=!0),6==n&&c>2&&"1"==r[5]&&(a=!0),6==n&&0==c&&"0"==r[5]&&(a=!0),5==n&&0==c&&"0"==r[4]&&(a=!0),{isIgnoreChar:a,caretPos:n}),m=function(e,t,r,n,u){let a=!1;if(8==r&&t>3&&(u("0",r),r++),9==r&&t>1&&"3"==n[8]&&(a=!0),9==r&&0==t&&"0"==n[8]&&(a=!0),8==r&&0==t&&"0"==n[9]&&(a=!0),"JALALI"==e&&!a){let e=b(n),i=Number(e);if(9==r&&"3"==n[8]&&t>0&&i>6&&(a=!0),8==r&&3==t){if(12==i){let e=Number(v(n));!Number.isNaN(e)&&[1,5,9,13,17,22,26,30].includes(e%33)||(a=!0)}n[9]>"0"&&(2==e.length&&parseInt(n)>6&&u("0",9),2==e.length&&i<7&&n[9]>"1"&&u("1",9))}}return{isIgnoreChar:a,caretPos:r}}(u,c,i=p.caretPos,s,f);i=m.caretPos,(o=o||m.isIgnoreChar||p.isIgnoreChar)||(f(e,i),d(i+1))}),("deleteContentBackward"==o||"deleteContentForward"==o||"delete"==o||"deleteByCut"==o||"deleteByDrag"==o)&&function(e,t,r,n,u){let a=0;"deleteContentBackward"==e&&(a=t!==r?0:-1);for(let e=t;e<=r;e++)n(" ",e+a);u(t+a)}(o,a.start,a.end,f,d),{value:s,selectionStart:c,selectionEnd:c};function f(e,t){s=function(e,t,r,u){if((4==t||7==t)&&(e="/"),t>9||t<0)return r;let a=r.split("");return u&&(e=(0,n.enToFaDigits)(e)),a[t]=e,a.join("")}(e,t,s,r)}function d(e){c=e}}({dateInputType:e.dateInputType,selection:{start:e.ref.current.selectionStart,end:e.ref.current.selectionEnd},value:r,showPersianNumber:e.showPersianNumber,event:{inputType:t.inputType,data:t.data}}),t.preventDefault(),u(a.current.value),e.ref.current.setSelectionRange(a.current.selectionStart,a.current.selectionEnd)}),{value:r,setValue:u,onFocus:()=>{i()},onClick:()=>{i()},onChange:()=>{}}}},"object"==typeof exports&&"undefined"!=typeof module?t(exports,require("react"),require("jb-date-input"),require("jb-core")):"function"==typeof define&&define.amd?define(["exports","react","jb-date-input","jb-core"],t):t((e="undefined"!=typeof globalThis?globalThis:e||self).JBDateInputReact={},e.React,e.JBDateInput,e.JBCore);
//# sourceMappingURL=JBDateInput.umd.js.map