@keenmate/web-daterangepicker 1.0.0-rc01
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/README.md +197 -0
- package/dist/date-range-picker.js +1768 -0
- package/dist/date-range-picker.umd.js +26 -0
- package/dist/style.css +1 -0
- package/package.json +68 -0
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
(function(b,x){typeof exports=="object"&&typeof module<"u"?x(exports):typeof define=="function"&&define.amd?define(["exports"],x):(b=typeof globalThis<"u"?globalThis:b||self,x(b.DateRangePicker={}))})(this,function(b){"use strict";var Pt=Object.defineProperty;var $t=(b,x,I)=>x in b?Pt(b,x,{enumerable:!0,configurable:!0,writable:!0,value:I}):b[x]=I;var _=(b,x,I)=>$t(b,typeof x!="symbol"?x+"":x,I);const x=Math.min,I=Math.max,J=Math.round,$=n=>({x:n,y:n}),Ye={left:"right",right:"left",bottom:"top",top:"bottom"},qe={start:"end",end:"start"};function pe(n,e,t){return I(n,x(e,t))}function X(n,e){return typeof n=="function"?n(e):n}function q(n){return n.split("-")[0]}function G(n){return n.split("-")[1]}function he(n){return n==="x"?"y":"x"}function ue(n){return n==="y"?"height":"width"}const Oe=new Set(["top","bottom"]);function R(n){return Oe.has(q(n))?"y":"x"}function fe(n){return he(R(n))}function Ve(n,e,t){t===void 0&&(t=!1);const a=G(n),i=fe(n),r=ue(i);let s=i==="x"?a===(t?"end":"start")?"right":"left":a==="start"?"bottom":"top";return e.reference[r]>e.floating[r]&&(s=Q(s)),[s,Q(s)]}function Ne(n){const e=Q(n);return[re(n),e,re(e)]}function re(n){return n.replace(/start|end/g,e=>qe[e])}const ge=["left","right"],ye=["right","left"],ze=["top","bottom"],He=["bottom","top"];function Be(n,e,t){switch(n){case"top":case"bottom":return t?e?ye:ge:e?ge:ye;case"left":case"right":return e?ze:He;default:return[]}}function We(n,e,t,a){const i=G(n);let r=Be(q(n),t==="start",a);return i&&(r=r.map(s=>s+"-"+i),e&&(r=r.concat(r.map(re)))),r}function Q(n){return n.replace(/left|right|bottom|top/g,e=>Ye[e])}function Ke(n){return{top:0,right:0,bottom:0,left:0,...n}}function je(n){return typeof n!="number"?Ke(n):{top:n,right:n,bottom:n,left:n}}function Z(n){const{x:e,y:t,width:a,height:i}=n;return{width:a,height:i,top:t,left:e,right:e+a,bottom:t+i,x:e,y:t}}function me(n,e,t){let{reference:a,floating:i}=n;const r=R(e),s=fe(e),o=ue(s),l=q(e),c=r==="y",d=a.x+a.width/2-i.width/2,p=a.y+a.height/2-i.height/2,h=a[o]/2-i[o]/2;let u;switch(l){case"top":u={x:d,y:a.y-i.height};break;case"bottom":u={x:d,y:a.y+a.height};break;case"right":u={x:a.x+a.width,y:p};break;case"left":u={x:a.x-i.width,y:p};break;default:u={x:a.x,y:a.y}}switch(G(e)){case"start":u[s]-=h*(t&&c?-1:1);break;case"end":u[s]+=h*(t&&c?-1:1);break}return u}const Ue=async(n,e,t)=>{const{placement:a="bottom",strategy:i="absolute",middleware:r=[],platform:s}=t,o=r.filter(Boolean),l=await(s.isRTL==null?void 0:s.isRTL(e));let c=await s.getElementRects({reference:n,floating:e,strategy:i}),{x:d,y:p}=me(c,a,l),h=a,u={},f=0;for(let g=0;g<o.length;g++){const{name:y,fn:w}=o[g],{x:D,y:v,data:k,reset:m}=await w({x:d,y:p,initialPlacement:a,placement:h,strategy:i,middlewareData:u,rects:c,platform:s,elements:{reference:n,floating:e}});d=D??d,p=v??p,u={...u,[y]:{...u[y],...k}},m&&f<=50&&(f++,typeof m=="object"&&(m.placement&&(h=m.placement),m.rects&&(c=m.rects===!0?await s.getElementRects({reference:n,floating:e,strategy:i}):m.rects),{x:d,y:p}=me(c,h,l)),g=-1)}return{x:d,y:p,placement:h,strategy:i,middlewareData:u}};async function ve(n,e){var t;e===void 0&&(e={});const{x:a,y:i,platform:r,rects:s,elements:o,strategy:l}=n,{boundary:c="clippingAncestors",rootBoundary:d="viewport",elementContext:p="floating",altBoundary:h=!1,padding:u=0}=X(e,n),f=je(u),y=o[h?p==="floating"?"reference":"floating":p],w=Z(await r.getClippingRect({element:(t=await(r.isElement==null?void 0:r.isElement(y)))==null||t?y:y.contextElement||await(r.getDocumentElement==null?void 0:r.getDocumentElement(o.floating)),boundary:c,rootBoundary:d,strategy:l})),D=p==="floating"?{x:a,y:i,width:s.floating.width,height:s.floating.height}:s.reference,v=await(r.getOffsetParent==null?void 0:r.getOffsetParent(o.floating)),k=await(r.isElement==null?void 0:r.isElement(v))?await(r.getScale==null?void 0:r.getScale(v))||{x:1,y:1}:{x:1,y:1},m=Z(r.convertOffsetParentRelativeRectToViewportRelativeRect?await r.convertOffsetParentRelativeRectToViewportRelativeRect({elements:o,rect:D,offsetParent:v,strategy:l}):D);return{top:(w.top-m.top+f.top)/k.y,bottom:(m.bottom-w.bottom+f.bottom)/k.y,left:(w.left-m.left+f.left)/k.x,right:(m.right-w.right+f.right)/k.x}}const Je=function(n){return n===void 0&&(n={}),{name:"flip",options:n,async fn(e){var t,a;const{placement:i,middlewareData:r,rects:s,initialPlacement:o,platform:l,elements:c}=e,{mainAxis:d=!0,crossAxis:p=!0,fallbackPlacements:h,fallbackStrategy:u="bestFit",fallbackAxisSideDirection:f="none",flipAlignment:g=!0,...y}=X(n,e);if((t=r.arrow)!=null&&t.alignmentOffset)return{};const w=q(i),D=R(o),v=q(o)===o,k=await(l.isRTL==null?void 0:l.isRTL(c.floating)),m=h||(v||!g?[Q(o)]:Ne(o)),E=f!=="none";!h&&E&&m.push(...We(o,g,f,k));const O=[o,...m],T=await ve(e,y),ie=[];let W=((a=r.flip)==null?void 0:a.overflows)||[];if(d&&ie.push(T[w]),p){const V=Ve(i,s,k);ie.push(T[V[0]],T[V[1]])}if(W=[...W,{placement:i,overflows:ie}],!ie.every(V=>V<=0)){var Te,Re;const V=(((Te=r.flip)==null?void 0:Te.index)||0)+1,de=O[V];if(de&&(!(p==="alignment"?D!==R(de):!1)||W.every(P=>R(P.placement)===D?P.overflows[0]>0:!0)))return{data:{index:V,overflows:W},reset:{placement:de}};let U=(Re=W.filter(N=>N.overflows[0]<=0).sort((N,P)=>N.overflows[1]-P.overflows[1])[0])==null?void 0:Re.placement;if(!U)switch(u){case"bestFit":{var Fe;const N=(Fe=W.filter(P=>{if(E){const Y=R(P.placement);return Y===D||Y==="y"}return!0}).map(P=>[P.placement,P.overflows.filter(Y=>Y>0).reduce((Y,Et)=>Y+Et,0)]).sort((P,Y)=>P[1]-Y[1])[0])==null?void 0:Fe[0];N&&(U=N);break}case"initialPlacement":U=o;break}if(i!==U)return{reset:{placement:U}}}return{}}}},Xe=new Set(["left","top"]);async function Ge(n,e){const{placement:t,platform:a,elements:i}=n,r=await(a.isRTL==null?void 0:a.isRTL(i.floating)),s=q(t),o=G(t),l=R(t)==="y",c=Xe.has(s)?-1:1,d=r&&l?-1:1,p=X(e,n);let{mainAxis:h,crossAxis:u,alignmentAxis:f}=typeof p=="number"?{mainAxis:p,crossAxis:0,alignmentAxis:null}:{mainAxis:p.mainAxis||0,crossAxis:p.crossAxis||0,alignmentAxis:p.alignmentAxis};return o&&typeof f=="number"&&(u=o==="end"?f*-1:f),l?{x:u*d,y:h*c}:{x:h*c,y:u*d}}const Qe=function(n){return n===void 0&&(n=0),{name:"offset",options:n,async fn(e){var t,a;const{x:i,y:r,placement:s,middlewareData:o}=e,l=await Ge(e,n);return s===((t=o.offset)==null?void 0:t.placement)&&(a=o.arrow)!=null&&a.alignmentOffset?{}:{x:i+l.x,y:r+l.y,data:{...l,placement:s}}}}},Ze=function(n){return n===void 0&&(n={}),{name:"shift",options:n,async fn(e){const{x:t,y:a,placement:i}=e,{mainAxis:r=!0,crossAxis:s=!1,limiter:o={fn:y=>{let{x:w,y:D}=y;return{x:w,y:D}}},...l}=X(n,e),c={x:t,y:a},d=await ve(e,l),p=R(q(i)),h=he(p);let u=c[h],f=c[p];if(r){const y=h==="y"?"top":"left",w=h==="y"?"bottom":"right",D=u+d[y],v=u-d[w];u=pe(D,u,v)}if(s){const y=p==="y"?"top":"left",w=p==="y"?"bottom":"right",D=f+d[y],v=f-d[w];f=pe(D,f,v)}const g=o.fn({...e,[h]:u,[p]:f});return{...g,data:{x:g.x-t,y:g.y-a,enabled:{[h]:r,[p]:s}}}}}};function ee(){return typeof window<"u"}function z(n){return _e(n)?(n.nodeName||"").toLowerCase():"#document"}function S(n){var e;return(n==null||(e=n.ownerDocument)==null?void 0:e.defaultView)||window}function L(n){var e;return(e=(_e(n)?n.ownerDocument:n.document)||window.document)==null?void 0:e.documentElement}function _e(n){return ee()?n instanceof Node||n instanceof S(n).Node:!1}function M(n){return ee()?n instanceof Element||n instanceof S(n).Element:!1}function A(n){return ee()?n instanceof HTMLElement||n instanceof S(n).HTMLElement:!1}function ke(n){return!ee()||typeof ShadowRoot>"u"?!1:n instanceof ShadowRoot||n instanceof S(n).ShadowRoot}const et=new Set(["inline","contents"]);function K(n){const{overflow:e,overflowX:t,overflowY:a,display:i}=C(n);return/auto|scroll|overlay|hidden|clip/.test(e+a+t)&&!et.has(i)}const tt=new Set(["table","td","th"]);function at(n){return tt.has(z(n))}const nt=[":popover-open",":modal"];function te(n){return nt.some(e=>{try{return n.matches(e)}catch{return!1}})}const it=["transform","translate","scale","rotate","perspective"],rt=["transform","translate","scale","rotate","perspective","filter"],ot=["paint","layout","strict","content"];function oe(n){const e=se(),t=M(n)?C(n):n;return it.some(a=>t[a]?t[a]!=="none":!1)||(t.containerType?t.containerType!=="normal":!1)||!e&&(t.backdropFilter?t.backdropFilter!=="none":!1)||!e&&(t.filter?t.filter!=="none":!1)||rt.some(a=>(t.willChange||"").includes(a))||ot.some(a=>(t.contain||"").includes(a))}function st(n){let e=F(n);for(;A(e)&&!H(e);){if(oe(e))return e;if(te(e))return null;e=F(e)}return null}function se(){return typeof CSS>"u"||!CSS.supports?!1:CSS.supports("-webkit-backdrop-filter","none")}const ct=new Set(["html","body","#document"]);function H(n){return ct.has(z(n))}function C(n){return S(n).getComputedStyle(n)}function ae(n){return M(n)?{scrollLeft:n.scrollLeft,scrollTop:n.scrollTop}:{scrollLeft:n.scrollX,scrollTop:n.scrollY}}function F(n){if(z(n)==="html")return n;const e=n.assignedSlot||n.parentNode||ke(n)&&n.host||L(n);return ke(e)?e.host:e}function De(n){const e=F(n);return H(e)?n.ownerDocument?n.ownerDocument.body:n.body:A(e)&&K(e)?e:De(e)}function we(n,e,t){var a;e===void 0&&(e=[]);const i=De(n),r=i===((a=n.ownerDocument)==null?void 0:a.body),s=S(i);return r?(ce(s),e.concat(s,s.visualViewport||[],K(i)?i:[],[])):e.concat(i,we(i,[]))}function ce(n){return n.parent&&Object.getPrototypeOf(n.parent)?n.frameElement:null}function xe(n){const e=C(n);let t=parseFloat(e.width)||0,a=parseFloat(e.height)||0;const i=A(n),r=i?n.offsetWidth:t,s=i?n.offsetHeight:a,o=J(t)!==r||J(a)!==s;return o&&(t=r,a=s),{width:t,height:a,$:o}}function be(n){return M(n)?n:n.contextElement}function B(n){const e=be(n);if(!A(e))return $(1);const t=e.getBoundingClientRect(),{width:a,height:i,$:r}=xe(e);let s=(r?J(t.width):t.width)/a,o=(r?J(t.height):t.height)/i;return(!s||!Number.isFinite(s))&&(s=1),(!o||!Number.isFinite(o))&&(o=1),{x:s,y:o}}const lt=$(0);function Se(n){const e=S(n);return!se()||!e.visualViewport?lt:{x:e.visualViewport.offsetLeft,y:e.visualViewport.offsetTop}}function dt(n,e,t){return e===void 0&&(e=!1),!t||e&&t!==S(n)?!1:e}function j(n,e,t,a){e===void 0&&(e=!1),t===void 0&&(t=!1);const i=n.getBoundingClientRect(),r=be(n);let s=$(1);e&&(a?M(a)&&(s=B(a)):s=B(n));const o=dt(r,t,a)?Se(r):$(0);let l=(i.left+o.x)/s.x,c=(i.top+o.y)/s.y,d=i.width/s.x,p=i.height/s.y;if(r){const h=S(r),u=a&&M(a)?S(a):a;let f=h,g=ce(f);for(;g&&a&&u!==f;){const y=B(g),w=g.getBoundingClientRect(),D=C(g),v=w.left+(g.clientLeft+parseFloat(D.paddingLeft))*y.x,k=w.top+(g.clientTop+parseFloat(D.paddingTop))*y.y;l*=y.x,c*=y.y,d*=y.x,p*=y.y,l+=v,c+=k,f=S(g),g=ce(f)}}return Z({width:d,height:p,x:l,y:c})}function ne(n,e){const t=ae(n).scrollLeft;return e?e.left+t:j(L(n)).left+t}function Ie(n,e){const t=n.getBoundingClientRect(),a=t.left+e.scrollLeft-ne(n,t),i=t.top+e.scrollTop;return{x:a,y:i}}function pt(n){let{elements:e,rect:t,offsetParent:a,strategy:i}=n;const r=i==="fixed",s=L(a),o=e?te(e.floating):!1;if(a===s||o&&r)return t;let l={scrollLeft:0,scrollTop:0},c=$(1);const d=$(0),p=A(a);if((p||!p&&!r)&&((z(a)!=="body"||K(s))&&(l=ae(a)),A(a))){const u=j(a);c=B(a),d.x=u.x+a.clientLeft,d.y=u.y+a.clientTop}const h=s&&!p&&!r?Ie(s,l):$(0);return{width:t.width*c.x,height:t.height*c.y,x:t.x*c.x-l.scrollLeft*c.x+d.x+h.x,y:t.y*c.y-l.scrollTop*c.y+d.y+h.y}}function ht(n){return Array.from(n.getClientRects())}function ut(n){const e=L(n),t=ae(n),a=n.ownerDocument.body,i=I(e.scrollWidth,e.clientWidth,a.scrollWidth,a.clientWidth),r=I(e.scrollHeight,e.clientHeight,a.scrollHeight,a.clientHeight);let s=-t.scrollLeft+ne(n);const o=-t.scrollTop;return C(a).direction==="rtl"&&(s+=I(e.clientWidth,a.clientWidth)-i),{width:i,height:r,x:s,y:o}}const Me=25;function ft(n,e){const t=S(n),a=L(n),i=t.visualViewport;let r=a.clientWidth,s=a.clientHeight,o=0,l=0;if(i){r=i.width,s=i.height;const d=se();(!d||d&&e==="fixed")&&(o=i.offsetLeft,l=i.offsetTop)}const c=ne(a);if(c<=0){const d=a.ownerDocument,p=d.body,h=getComputedStyle(p),u=d.compatMode==="CSS1Compat"&&parseFloat(h.marginLeft)+parseFloat(h.marginRight)||0,f=Math.abs(a.clientWidth-p.clientWidth-u);f<=Me&&(r-=f)}else c<=Me&&(r+=c);return{width:r,height:s,x:o,y:l}}const gt=new Set(["absolute","fixed"]);function yt(n,e){const t=j(n,!0,e==="fixed"),a=t.top+n.clientTop,i=t.left+n.clientLeft,r=A(n)?B(n):$(1),s=n.clientWidth*r.x,o=n.clientHeight*r.y,l=i*r.x,c=a*r.y;return{width:s,height:o,x:l,y:c}}function Ce(n,e,t){let a;if(e==="viewport")a=ft(n,t);else if(e==="document")a=ut(L(n));else if(M(e))a=yt(e,t);else{const i=Se(n);a={x:e.x-i.x,y:e.y-i.y,width:e.width,height:e.height}}return Z(a)}function Ee(n,e){const t=F(n);return t===e||!M(t)||H(t)?!1:C(t).position==="fixed"||Ee(t,e)}function mt(n,e){const t=e.get(n);if(t)return t;let a=we(n,[]).filter(o=>M(o)&&z(o)!=="body"),i=null;const r=C(n).position==="fixed";let s=r?F(n):n;for(;M(s)&&!H(s);){const o=C(s),l=oe(s);!l&&o.position==="fixed"&&(i=null),(r?!l&&!i:!l&&o.position==="static"&&!!i&>.has(i.position)||K(s)&&!l&&Ee(n,s))?a=a.filter(d=>d!==s):i=o,s=F(s)}return e.set(n,a),a}function vt(n){let{element:e,boundary:t,rootBoundary:a,strategy:i}=n;const s=[...t==="clippingAncestors"?te(e)?[]:mt(e,this._c):[].concat(t),a],o=s[0],l=s.reduce((c,d)=>{const p=Ce(e,d,i);return c.top=I(p.top,c.top),c.right=x(p.right,c.right),c.bottom=x(p.bottom,c.bottom),c.left=I(p.left,c.left),c},Ce(e,o,i));return{width:l.right-l.left,height:l.bottom-l.top,x:l.left,y:l.top}}function _t(n){const{width:e,height:t}=xe(n);return{width:e,height:t}}function kt(n,e,t){const a=A(e),i=L(e),r=t==="fixed",s=j(n,!0,r,e);let o={scrollLeft:0,scrollTop:0};const l=$(0);function c(){l.x=ne(i)}if(a||!a&&!r)if((z(e)!=="body"||K(i))&&(o=ae(e)),a){const u=j(e,!0,r,e);l.x=u.x+e.clientLeft,l.y=u.y+e.clientTop}else i&&c();r&&!a&&i&&c();const d=i&&!a&&!r?Ie(i,o):$(0),p=s.left+o.scrollLeft-l.x-d.x,h=s.top+o.scrollTop-l.y-d.y;return{x:p,y:h,width:s.width,height:s.height}}function le(n){return C(n).position==="static"}function Pe(n,e){if(!A(n)||C(n).position==="fixed")return null;if(e)return e(n);let t=n.offsetParent;return L(n)===t&&(t=t.ownerDocument.body),t}function $e(n,e){const t=S(n);if(te(n))return t;if(!A(n)){let i=F(n);for(;i&&!H(i);){if(M(i)&&!le(i))return i;i=F(i)}return t}let a=Pe(n,e);for(;a&&at(a)&&le(a);)a=Pe(a,e);return a&&H(a)&&le(a)&&!oe(a)?t:a||st(n)||t}const Dt=async function(n){const e=this.getOffsetParent||$e,t=this.getDimensions,a=await t(n.floating);return{reference:kt(n.reference,await e(n.floating),n.strategy),floating:{x:0,y:0,width:a.width,height:a.height}}};function wt(n){return C(n).direction==="rtl"}const xt={convertOffsetParentRelativeRectToViewportRelativeRect:pt,getDocumentElement:L,getClippingRect:vt,getOffsetParent:$e,getElementRects:Dt,getClientRects:ht,getDimensions:_t,getScale:B,isElement:M,isRTL:wt},bt=Qe,St=Ze,It=Je,Mt=(n,e,t)=>{const a=new Map,i={platform:xt,...t},r={...i.platform,_c:a};return Ue(n,e,{...i,platform:r})};class Ae{constructor(e,t={}){_(this,"input");_(this,"options");_(this,"formatInfo");_(this,"_previousInputValue");_(this,"currentDate");_(this,"monthDates");_(this,"displayMonths");_(this,"selectedDate");_(this,"selectedStartDate");_(this,"selectedEndDate");_(this,"focusedDayIndex");_(this,"activeMonthIndex");_(this,"showingRollingSelector");_(this,"draggingType");_(this,"isDragging");_(this,"dragStartDate");_(this,"originalStartDate");_(this,"originalEndDate");_(this,"dragPreviewStart");_(this,"dragPreviewEnd");_(this,"autoScrollInterval");_(this,"navInterval");_(this,"calendar");_(this,"containerElement");_(this,"onDragMoveBound");_(this,"onDragEndBound");_(this,"clickOutsideHandler");_(this,"isFirstRender",!0);console.log("[DatePicker 4] Constructor called for input:",e),this.input=e,this.containerElement=t.container||document.body,this.options={mode:t.mode||"single",position:t.position||"bottom-start",monthsToShow:t.monthsToShow||(t.mode==="range"?2:1),format:t.format||"YYYY-MM-DD",calendarTrigger:t.calendarTrigger||"auto",onSelect:t.onSelect||void 0,container:this.containerElement},this.formatInfo=this.parseFormat(this.options.format),console.log("[DatePicker] Format info:",this.formatInfo),this._previousInputValue="",this.currentDate=new Date,this.monthDates=[];const a=new Date;for(let i=0;i<this.options.monthsToShow;i++){const r=new Date(a.getFullYear(),a.getMonth()+i,1);this.monthDates.push(r),console.log(`[DatePicker Init] monthDates[${i}] = ${r.getFullYear()}-${r.getMonth()+1}`)}if(this.options.mode==="range"){this.displayMonths=[];for(let i=0;i<this.options.monthsToShow;i++){const r=new Date(a.getFullYear(),a.getMonth()+i,1);this.displayMonths.push({month:r.getMonth(),year:r.getFullYear()})}}this.selectedDate=null,this.selectedStartDate=null,this.selectedEndDate=null,this.focusedDayIndex=null,this.activeMonthIndex=0,this.showingRollingSelector=[];for(let i=0;i<this.options.monthsToShow;i++)this.showingRollingSelector.push(!1);this.draggingType=null,this.isDragging=!1,this.dragStartDate=null,this.originalStartDate=null,this.originalEndDate=null,this.dragPreviewStart=null,this.dragPreviewEnd=null,this.autoScrollInterval=null,this.init()}init(){console.log("[DatePicker 5] Init called"),this.createCalendar(),this.attachInputListeners(),console.log("[DatePicker 6] Init complete")}createCalendar(){console.log("[DatePicker 7] Creating calendar"),this.calendar=document.createElement("div"),this.calendar.className="pa-date-picker";const e=document.createElement("div");e.className="pa-date-picker__months";for(let a=0;a<this.options.monthsToShow;a++){const i=document.createElement("div");i.className="pa-date-picker__month",i.dataset.monthIndex=a,i.innerHTML=`
|
|
2
|
+
<div class="pa-date-picker__header">
|
|
3
|
+
<button class="pa-date-picker__nav pa-date-picker__nav--prev" data-action="prev" data-month-index="${a}"></button>
|
|
4
|
+
<div class="pa-date-picker__month-year" data-action="toggle-rolling" data-month-index="${a}"></div>
|
|
5
|
+
<button class="pa-date-picker__nav pa-date-picker__nav--next" data-action="next" data-month-index="${a}"></button>
|
|
6
|
+
</div>
|
|
7
|
+
<div class="pa-date-picker__rolling-selector" data-month-index="${a}">
|
|
8
|
+
<div class="pa-date-picker__rolling-list" data-list="years" data-month-index="${a}"></div>
|
|
9
|
+
<div class="pa-date-picker__rolling-list" data-list="months" data-month-index="${a}"></div>
|
|
10
|
+
</div>
|
|
11
|
+
<div class="pa-date-picker__weekdays"></div>
|
|
12
|
+
<div class="pa-date-picker__days" data-month-index="${a}"></div>
|
|
13
|
+
`,e.appendChild(i)}if(this.calendar.appendChild(e),this.options.mode==="range"){const a=document.createElement("div");a.className="pa-date-picker__summary pa-date-picker__summary--hidden",this.calendar.appendChild(a)}const t=document.createElement("div");t.className="pa-date-picker__actions",t.innerHTML=`
|
|
14
|
+
<button class="pa-date-picker__button pa-date-picker__button--today" data-action="today">Today</button>
|
|
15
|
+
<button class="pa-date-picker__button pa-date-picker__button--clear" data-action="clear">Clear</button>
|
|
16
|
+
${this.options.mode==="range"?'<button class="pa-date-picker__button pa-date-picker__button--apply" data-action="apply">Apply</button>':""}
|
|
17
|
+
`,this.calendar.appendChild(t),this.containerElement.appendChild(this.calendar),console.log("[DatePicker 7b] Calendar appended to container:",this.calendar),this.attachCalendarListeners(),this.showingRollingSelector=new Array(this.options.monthsToShow).fill(!1)}attachInputListeners(){console.log("[DatePicker 8] Attaching input listeners"),this.options.calendarTrigger==="auto"&&(this.input.addEventListener("click",()=>{console.log("[DatePicker 9] Input clicked"),this.show()}),this.input.addEventListener("focus",()=>{console.log("[DatePicker 10] Input focused"),this.show()})),this.input.addEventListener("input",e=>this.handleInputMask(e)),this.input.addEventListener("keydown",e=>this.handleKeydown(e)),this.input.addEventListener("paste",e=>this.handlePaste(e))}attachCalendarListeners(){this.calendar.addEventListener("click",e=>{e.stopPropagation();const t=e.target.dataset.action,a=parseInt(e.target.dataset.monthIndex);if(t==="prev")this.prevMonth(a);else if(t==="next")this.nextMonth(a);else if(t==="toggle-rolling")this.toggleRollingSelector(a);else if(t==="today")this.selectToday();else if(t==="clear")this.clear();else if(t==="apply")this.apply();else if(e.target.closest(".pa-date-picker__day:not(.pa-date-picker__day--disabled)"))this.selectDay(e.target.closest(".pa-date-picker__day"));else if(e.target.closest("[data-year]")){const i=e.target.closest("[data-year]");this.selectYear(parseInt(i.dataset.year),parseInt(i.dataset.monthIndex))}else if(e.target.closest("[data-month]")){const i=e.target.closest("[data-month]");this.selectMonth(parseInt(i.dataset.month),parseInt(i.dataset.monthIndex))}}),document.addEventListener("keydown",e=>{var t,a,i,r,s;if(this.calendar.classList.contains("pa-date-picker--visible")){if(console.log("[DatePicker Keydown]",e.key,"Ctrl:",e.ctrlKey,"Meta:",e.metaKey,"Shift:",e.shiftKey,"Alt:",e.altKey),e.key==="Escape")this.hide(),e.preventDefault();else if(e.key==="ArrowUp")this.moveFocus(-7),e.preventDefault();else if(e.key==="ArrowDown")this.moveFocus(7),e.preventDefault();else if(e.key==="ArrowLeft"){if(e.ctrlKey||e.metaKey){console.log("[DatePicker] Ctrl+Left: Navigate to previous month");const o=this.focusedDayIndex;this.prevMonth(this.activeMonthIndex),setTimeout(()=>{var d,p;const c=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Math.min(o!==null?o:0,c.length-1),(d=c[this.focusedDayIndex])==null||d.classList.add("pa-date-picker__day--focused"),(p=c[this.focusedDayIndex])==null||p.scrollIntoView({block:"nearest"})},0)}else this.moveFocus(-1);e.preventDefault()}else if(e.key==="ArrowRight"){if(e.ctrlKey||e.metaKey){console.log("[DatePicker] Ctrl+Right: Navigate to next month");const o=this.focusedDayIndex;this.nextMonth(this.activeMonthIndex),setTimeout(()=>{var d,p;const c=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Math.min(o!==null?o:0,c.length-1),(d=c[this.focusedDayIndex])==null||d.classList.add("pa-date-picker__day--focused"),(p=c[this.focusedDayIndex])==null||p.scrollIntoView({block:"nearest"})},0)}else this.moveFocus(1);e.preventDefault()}else if(e.key==="Enter")this.focusedDayIndex!==null?(t=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)")[this.focusedDayIndex])==null||t.click():this.hide(),e.preventDefault();else if(e.key==="Tab"){if(this.options.monthsToShow>1){const o=e.shiftKey?-1:1,l=this.activeMonthIndex+o;if(l>=0&&l<this.monthDates.length){console.log(`[DatePicker] Tab: switching from Col${this.activeMonthIndex} to Col${l}`);const c=this.focusedDayIndex??0;this.activeMonthIndex=l;const d=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`);if(d){const p=d.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Math.min(c,p.length-1),console.log(`[DatePicker Col${this.activeMonthIndex}] Tab: set focusedDayIndex to ${this.focusedDayIndex}`)}this.renderCalendar()}e.preventDefault()}}else if(e.key==="t"||e.key==="T")this.monthDates[this.activeMonthIndex]=new Date,this.renderCalendar(),setTimeout(()=>{const l=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)"),c=Array.from(l).findIndex(d=>d.classList.contains("pa-date-picker__day--today"));c!==-1&&(this.focusedDayIndex=c,l[c].classList.add("pa-date-picker__day--focused"),l[c].scrollIntoView({block:"nearest"}))},0),e.preventDefault();else if(e.key==="PageUp"){const o=this.focusedDayIndex;this.prevMonth(this.activeMonthIndex),setTimeout(()=>{var d,p;const c=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Math.min(o!==null?o:0,c.length-1),(d=c[this.focusedDayIndex])==null||d.classList.add("pa-date-picker__day--focused"),(p=c[this.focusedDayIndex])==null||p.scrollIntoView({block:"nearest"})},0),e.preventDefault()}else if(e.key==="PageDown"){const o=this.focusedDayIndex;this.nextMonth(this.activeMonthIndex),setTimeout(()=>{var d,p;const c=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Math.min(o!==null?o:0,c.length-1),(d=c[this.focusedDayIndex])==null||d.classList.add("pa-date-picker__day--focused"),(p=c[this.focusedDayIndex])==null||p.scrollIntoView({block:"nearest"})},0),e.preventDefault()}else if(e.key==="Home"){console.log("[DatePicker] Home key pressed, Ctrl:",e.ctrlKey,"Meta:",e.metaKey);const o=this.monthDates[this.activeMonthIndex].getFullYear(),l=this.monthDates[this.activeMonthIndex].getMonth();if(e.ctrlKey||e.metaKey){console.log("[DatePicker] Ctrl+Home: Navigate to year start");const c=l===0,d=this.focusedDayIndex===0;c&&d?(console.log("[DatePicker] Already at Jan 1, going to previous year"),this.monthDates[this.activeMonthIndex]=new Date(o-1,0,1)):(console.log("[DatePicker] Going to Jan 1 of current year"),this.monthDates[this.activeMonthIndex]=new Date(o,0,1)),this.renderCalendar(),setTimeout(()=>{var u,f;const h=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=0,(u=h[0])==null||u.classList.add("pa-date-picker__day--focused"),(f=h[0])==null||f.scrollIntoView({block:"nearest"})},0)}else if(console.log("[DatePicker] Home: Navigate to first day (cycles to previous month if already there)"),this.focusedDayIndex===0)console.log("[DatePicker] Already on first day, going to previous month"),this.prevMonth(this.activeMonthIndex),setTimeout(()=>{var h,u;const p=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=0,this.calendar.querySelectorAll(".pa-date-picker__day--focused").forEach(f=>f.classList.remove("pa-date-picker__day--focused")),(h=p[0])==null||h.classList.add("pa-date-picker__day--focused"),(u=p[0])==null||u.scrollIntoView({block:"nearest"})},0);else{this.focusedDayIndex=0;const p=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.calendar.querySelectorAll(".pa-date-picker__day--focused").forEach(h=>h.classList.remove("pa-date-picker__day--focused")),(a=p[0])==null||a.classList.add("pa-date-picker__day--focused"),(i=p[0])==null||i.scrollIntoView({block:"nearest"})}e.preventDefault()}else if(e.key==="End"){console.log("[DatePicker] End key pressed, Ctrl:",e.ctrlKey,"Meta:",e.metaKey);const o=this.monthDates[this.activeMonthIndex].getFullYear(),l=this.monthDates[this.activeMonthIndex].getMonth();if(e.ctrlKey||e.metaKey){console.log("[DatePicker] Ctrl+End: Navigate to year end");const c=l===11,p=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)"),h=this.focusedDayIndex===p.length-1;c&&h?this.monthDates[this.activeMonthIndex]=new Date(o+1,11,31):this.monthDates[this.activeMonthIndex]=new Date(o,11,31),this.renderCalendar(),setTimeout(()=>{var g,y;const f=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=f.length-1,(g=f[this.focusedDayIndex])==null||g.classList.add("pa-date-picker__day--focused"),(y=f[this.focusedDayIndex])==null||y.scrollIntoView({block:"nearest"})},0)}else{console.log("[DatePicker] End: Navigate to last day (cycles to next month if already there)");const d=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex===d.length-1?(console.log("[DatePicker] Already on last day, going to next month"),this.nextMonth(this.activeMonthIndex),setTimeout(()=>{var f,g;const u=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`).querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=u.length-1,this.calendar.querySelectorAll(".pa-date-picker__day--focused").forEach(y=>y.classList.remove("pa-date-picker__day--focused")),(f=u[this.focusedDayIndex])==null||f.classList.add("pa-date-picker__day--focused"),(g=u[this.focusedDayIndex])==null||g.scrollIntoView({block:"nearest"})},0)):(this.focusedDayIndex=d.length-1,this.calendar.querySelectorAll(".pa-date-picker__day--focused").forEach(h=>h.classList.remove("pa-date-picker__day--focused")),(r=d[this.focusedDayIndex])==null||r.classList.add("pa-date-picker__day--focused"),(s=d[this.focusedDayIndex])==null||s.scrollIntoView({block:"nearest"}))}e.preventDefault()}}}),this.clickOutsideHandler=e=>{var o;const t=e.composedPath(),a=t[0],i=t.includes(this.calendar),r=t.includes(this.input),s=(o=a.closest)==null?void 0:o.call(a,"[data-calendar-button]");!i&&!r&&!s&&this.hide()},document.addEventListener("click",this.clickOutsideHandler)}show(){console.log("[DatePicker 11] Show called - adding visible class"),this.isFirstRender&&(this.renderCalendar(),this.isFirstRender=!1),this.calendar.classList.add("pa-date-picker--visible"),console.log("[DatePicker 11a] Calendar classes:",this.calendar.className),this.position(),setTimeout(()=>{const e=window.getComputedStyle(this.calendar);console.log("[DatePicker 11e] Calendar display:",e.display,"position:",e.position,"left:",e.left,"top:",e.top,"z-index:",e.zIndex)},100)}hide(){if(this.calendar.classList.contains("pa-date-picker--visible")){this.calendar.classList.remove("pa-date-picker--visible");for(let e=0;e<this.showingRollingSelector.length;e++)this.showingRollingSelector[e]=!1;this.isFirstRender||this.renderCalendar()}}toggle(){this.calendar.classList.contains("pa-date-picker--visible")?this.hide():this.show()}async position(){console.log("[DatePicker 11b] Position method called");const{x:e,y:t}=await Mt(this.input,this.calendar,{placement:this.options.position,middleware:[bt(8),It(),St({padding:8})]});console.log("[DatePicker 11c] FloatingUI computed position - x:",e,"y:",t),this.calendar.style.left=`${e}px`,this.calendar.style.top=`${t}px`,console.log("[DatePicker 11d] Position applied to calendar")}renderCalendar(){console.log("[DatePicker 18] renderCalendar called, showingRollingSelector:",this.showingRollingSelector,`activeCol: ${this.activeMonthIndex}`),console.log("[DatePicker 18] monthDates array:",this.monthDates.map((e,t)=>`Col${t}: ${e.getFullYear()}-${e.getMonth()+1}`).join(", "));for(let e=0;e<this.options.monthsToShow;e++)this.showingRollingSelector[e]?this.renderRollingSelector(e):this.renderNormalView(e);requestAnimationFrame(()=>{for(let e=0;e<this.options.monthsToShow;e++){const t=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${e}"]`);if(!t)continue;const a=t.querySelector(".pa-date-picker__weekdays"),i=t.querySelector(".pa-date-picker__days"),r=t.querySelector(".pa-date-picker__rolling-selector");if(a&&i&&r){const s=a.offsetHeight+i.offsetHeight;r.style.height=`${s}px`}}}),this.options.mode==="range"&&!this.isDragging&&this.initDragListeners()}renderNormalView(e){console.log(`[DatePicker Col${e} 19] renderNormalView called for month`,e);const t=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${e}"]`);if(!t)return;t.querySelector(".pa-date-picker__rolling-selector").classList.remove("pa-date-picker__rolling-selector--visible");const i=this.monthDates[e],r=["January","February","March","April","May","June","July","August","September","October","November","December"],s=t.querySelector(".pa-date-picker__month-year");s.textContent=`${r[i.getMonth()]} ${i.getFullYear()}`;const o=t.querySelector(".pa-date-picker__weekdays");o.innerHTML=["Su","Mo","Tu","We","Th","Fr","Sa"].map(l=>`<div class="pa-date-picker__weekday">${l}</div>`).join(""),this.renderDays(e,i)}renderDays(e,t){console.log(`[DatePicker Col${e} 20] renderDays called for month`,e);const a=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${e}"]`);if(!a)return;const i=a.querySelector(".pa-date-picker__days"),r=t.getFullYear(),s=t.getMonth();console.log(`[DatePicker Col${e} 21] Rendering days for:`,r,s+1);const o=new Date(r,s,1).getDay(),l=new Date(r,s+1,0).getDate(),c=new Date(r,s,0).getDate(),d=new Date(r,s-1,1),p=d.getFullYear(),h=d.getMonth(),u=new Date(r,s+1,1),f=u.getFullYear(),g=u.getMonth();let y="";for(let v=o-1;v>=0;v--){const k=c-v,m=new Date(p,h,k),E=["pa-date-picker__day","pa-date-picker__day--other-month"];this.options.mode==="range"&&(this.isSameDay(m,this.selectedStartDate)&&E.push("pa-date-picker__day--range-start"),this.isSameDay(m,this.selectedEndDate)&&E.push("pa-date-picker__day--range-end"),this.isInRange(m)&&E.push("pa-date-picker__day--in-range")),y+=`<div class="${E.join(" ")}" data-date="${p}-${h}-${k}">${k}</div>`}for(let v=1;v<=l;v++){const k=new Date(r,s,v),m=["pa-date-picker__day"];this.isToday(k)&&m.push("pa-date-picker__day--today"),this.options.mode==="single"&&this.isSameDay(k,this.selectedDate)&&m.push("pa-date-picker__day--selected"),this.options.mode==="range"&&(this.isSameDay(k,this.selectedStartDate)&&m.push("pa-date-picker__day--range-start"),this.isSameDay(k,this.selectedEndDate)&&m.push("pa-date-picker__day--range-end"),this.isInRange(k)&&m.push("pa-date-picker__day--in-range")),y+=`<div class="${m.join(" ")}" data-date="${r}-${s}-${v}">${v}</div>`}const D=Math.ceil((o+l)/7)*7-(o+l);for(let v=1;v<=D;v++){const k=new Date(f,g,v),m=["pa-date-picker__day","pa-date-picker__day--other-month"];this.options.mode==="range"&&(this.isSameDay(k,this.selectedStartDate)&&m.push("pa-date-picker__day--range-start"),this.isSameDay(k,this.selectedEndDate)&&m.push("pa-date-picker__day--range-end"),this.isInRange(k)&&m.push("pa-date-picker__day--in-range")),y+=`<div class="${m.join(" ")}" data-date="${f}-${g}-${v}">${v}</div>`}i.innerHTML=y}renderRollingSelector(e){var p,h;const t=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${e}"]`);if(!t)return;const a=t.querySelector(".pa-date-picker__rolling-selector");a.classList.add("pa-date-picker__rolling-selector--visible");const i=this.monthDates[e],r=a.querySelector('[data-list="years"]'),s=i.getFullYear();let o="";for(let u=s-50;u<=s+50;u++)o+=`<div class="pa-date-picker__rolling-item ${u===s?"pa-date-picker__rolling-item--selected":""}" data-year="${u}" data-month-index="${e}">${u}</div>`;r.innerHTML=o,(p=r.querySelector(".pa-date-picker__rolling-item--selected"))==null||p.scrollIntoView({block:"center"});const l=a.querySelector('[data-list="months"]'),c=["January","February","March","April","May","June","July","August","September","October","November","December"],d=i.getMonth();l.innerHTML=c.map((u,f)=>`<div class="pa-date-picker__rolling-item ${f===d?"pa-date-picker__rolling-item--selected":""}" data-month="${f}" data-month-index="${e}">${u}</div>`).join(""),(h=l.querySelector(".pa-date-picker__rolling-item--selected"))==null||h.scrollIntoView({block:"center"})}toggleRollingSelector(e){this.showingRollingSelector[e]=!this.showingRollingSelector[e],this.renderCalendar()}selectYear(e,t){const a=this.monthDates[t].getFullYear();this.monthDates[t].setFullYear(e),console.log(`[DatePicker Col${t}] selectYear - changed from ${a} to ${e}`),this.checkAndResolveCollisions(t),this.showingRollingSelector[t]=!1,this.renderCalendar()}selectMonth(e,t){const a=this.monthDates[t].getMonth();this.monthDates[t].setMonth(e),console.log(`[DatePicker Col${t}] selectMonth - changed from ${a+1} to ${e+1}`),this.checkAndResolveCollisions(t),this.showingRollingSelector[t]=!1,this.renderCalendar()}checkAndResolveCollisions(e){const t=this.monthDates[e];if(e<this.monthDates.length-1){const a=this.monthDates[e+1];if(this.isSameOrAfterMonth(t,a)){console.log(`[DatePicker Col${e}] Collision with Col${e+1}, shifting forward`);const i=new Date(t.getFullYear(),t.getMonth()+1,1);this.monthDates[e+1]=i,this.checkAndResolveCollisions(e+1)}}if(e>0){const a=this.monthDates[e-1];if(this.isSameOrAfterMonth(a,t)){console.log(`[DatePicker Col${e}] Collision with Col${e-1}, shifting backward`);const i=new Date(t.getFullYear(),t.getMonth()-1,1);this.monthDates[e-1]=i,this.checkAndResolveCollisions(e-1)}}}isSameOrAfterMonth(e,t){const a=e.getFullYear(),i=e.getMonth(),r=t.getFullYear(),s=t.getMonth();return a>r||a===r&&i>=s}prevMonth(e){const t=isNaN(e)?this.activeMonthIndex:e,a=this.monthDates[t],i=new Date(a.getFullYear(),a.getMonth()-1,1);if(this.monthDates[t]=i,console.log(`[DatePicker Col${t}] prevMonth - changed from ${a.getFullYear()}-${a.getMonth()+1} to ${i.getFullYear()}-${i.getMonth()+1}`),t>0){const r=this.monthDates[t-1];this.isSameOrAfterMonth(r,i)&&(console.log(`[DatePicker Col${t}] Collision detected with Col${t-1}, shifting previous columns back`),this.prevMonth(t-1))}this.renderCalendar()}nextMonth(e){const t=isNaN(e)?this.activeMonthIndex:e,a=this.monthDates[t],i=new Date(a.getFullYear(),a.getMonth()+1,1);if(this.monthDates[t]=i,console.log(`[DatePicker Col${t}] nextMonth - changed from ${a.getFullYear()}-${a.getMonth()+1} to ${i.getFullYear()}-${i.getMonth()+1}`),t<this.monthDates.length-1){const r=this.monthDates[t+1];this.isSameOrAfterMonth(i,r)&&(console.log(`[DatePicker Col${t}] Collision detected with Col${t+1}, shifting next columns forward`),this.nextMonth(t+1))}this.renderCalendar()}selectDay(e){if(e.classList.contains("pa-date-picker__day--disabled"))return;if(!e.dataset||!e.dataset.date){console.warn("[DatePicker] selectDay called with invalid element:",e);return}const[t,a,i]=e.dataset.date.split("-").map(Number),r=new Date(t,a,i);e.classList.contains("pa-date-picker__day--other-month");const s=e.closest(".pa-date-picker__days");if(s){this.activeMonthIndex=parseInt(s.dataset.monthIndex)||0,console.log(`[DatePicker Col${this.activeMonthIndex}] selectDay - activeMonthIndex:`,this.activeMonthIndex);const o=s.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=Array.from(o).indexOf(e),console.log(`[DatePicker Col${this.activeMonthIndex}] selectDay - set focusedDayIndex to:`,this.focusedDayIndex)}this.options.mode==="single"?(this.selectedDate=r,this.input.value=this.formatDate(r),this.options.onSelect&&this.options.onSelect(r),this.hide()):!this.selectedStartDate||this.selectedEndDate?(this.selectedStartDate=r,this.selectedEndDate=null,this.input.value=`${this.formatDate(this.selectedStartDate)} - ...`):(r>=this.selectedStartDate?this.selectedEndDate=r:(this.selectedEndDate=this.selectedStartDate,this.selectedStartDate=r),this.input.value=`${this.formatDate(this.selectedStartDate)} - ${this.formatDate(this.selectedEndDate)}`,this.options.onSelect&&this.options.onSelect({start:this.selectedStartDate,end:this.selectedEndDate})),this.renderCalendar(),this.updateSummary()}updateSummary(){if(this.options.mode!=="range")return;const e=this.calendar.querySelector(".pa-date-picker__summary");if(e)if(this.selectedStartDate&&this.selectedEndDate){const a=this.selectedEndDate-this.selectedStartDate,i=Math.floor(a/864e5)+1,r=i-1;e.className="pa-date-picker__summary pa-date-picker__summary--visible",e.innerHTML=`
|
|
18
|
+
<span class="pa-date-picker__summary-count">${i} ${i===1?"day":"days"}</span>
|
|
19
|
+
<span>, </span>
|
|
20
|
+
<span class="pa-date-picker__summary-count">${r} ${r===1?"night":"nights"}</span>
|
|
21
|
+
`}else e.className="pa-date-picker__summary pa-date-picker__summary--hidden",e.innerHTML=""}selectToday(){this.monthDates[this.activeMonthIndex]=new Date,this.selectedDate=new Date,this.input.value=this.formatDate(this.selectedDate),this.options.onSelect&&this.options.onSelect(this.selectedDate),this.renderCalendar(),this.options.mode==="single"&&this.hide()}clear(){this.selectedDate=null,this.selectedStartDate=null,this.selectedEndDate=null,this.input.value="",this.renderCalendar(),this.updateSummary()}apply(){this.selectedStartDate&&this.selectedEndDate&&this.hide()}initDragListeners(){const e=this.calendar.querySelectorAll(".pa-date-picker__day--range-start"),t=this.calendar.querySelectorAll(".pa-date-picker__day--range-end");e.forEach(a=>{a.addEventListener("mousedown",i=>this.startDrag(i,"start"))}),t.forEach(a=>{a.addEventListener("mousedown",i=>this.startDrag(i,"end"))})}startDrag(e,t){e.preventDefault(),e.stopPropagation(),this.isDragging=!0,this.draggingType=t,this.originalStartDate=new Date(this.selectedStartDate),this.originalEndDate=new Date(this.selectedEndDate),e.currentTarget.classList.add("pa-date-picker__day--dragging"),console.log(`[DatePicker Drag] Started dragging ${t} date`),this.onDragMoveBound=this.onDragMove.bind(this),this.onDragEndBound=this.onDragEnd.bind(this),document.addEventListener("mousemove",this.onDragMoveBound),document.addEventListener("mouseup",this.onDragEndBound),document.body.style.cursor="grabbing"}onDragMove(e){if(!this.isDragging)return;let t=null;this.containerElement instanceof ShadowRoot&&this.containerElement.elementsFromPoint?t=this.containerElement.elementsFromPoint(e.clientX,e.clientY)[0]||null:t=document.elementFromPoint(e.clientX,e.clientY);const a=t==null?void 0:t.closest(".pa-date-picker__nav--prev"),i=t==null?void 0:t.closest(".pa-date-picker__nav--next");if(a||i){if(!this.navInterval){const p=(a||i).closest(".pa-date-picker__month");if(p){const h=parseInt(p.dataset.monthIndex),u=!!a;u?this.prevMonth(h):this.nextMonth(h),this.navInterval=setInterval(()=>{u?this.prevMonth(h):this.nextMonth(h)},1e3)}}return}else this.navInterval&&(clearInterval(this.navInterval),this.navInterval=null);const r=t;if(!r||!r.classList.contains("pa-date-picker__day")||r.classList.contains("pa-date-picker__day--disabled"))return;const[s,o,l]=r.dataset.date.split("-").map(Number),c=new Date(s,o,l);this.draggingType==="start"?(this.dragPreviewStart=c,this.dragPreviewEnd=this.originalEndDate,this.dragPreviewStart>this.dragPreviewEnd&&([this.dragPreviewStart,this.dragPreviewEnd]=[this.dragPreviewEnd,this.dragPreviewStart],this.draggingType="end")):(this.dragPreviewStart=this.originalStartDate,this.dragPreviewEnd=c,this.dragPreviewEnd<this.dragPreviewStart&&([this.dragPreviewStart,this.dragPreviewEnd]=[this.dragPreviewEnd,this.dragPreviewStart],this.draggingType="start")),this.updateDragPreview()}updateDragPreview(){if(this.calendar.querySelectorAll(".pa-date-picker__day--drag-preview").forEach(t=>{t.classList.remove("pa-date-picker__day--drag-preview")}),!this.dragPreviewStart||!this.dragPreviewEnd)return;this.calendar.querySelectorAll(".pa-date-picker__day").forEach(t=>{const[a,i,r]=t.dataset.date.split("-").map(Number),s=new Date(a,i,r);s>=this.dragPreviewStart&&s<=this.dragPreviewEnd&&t.classList.add("pa-date-picker__day--drag-preview")}),this.updateSummaryWithPreview()}updateSummaryWithPreview(){if(this.options.mode!=="range")return;const e=this.calendar.querySelector(".pa-date-picker__summary");if(e&&this.dragPreviewStart&&this.dragPreviewEnd){const a=this.dragPreviewEnd-this.dragPreviewStart,i=Math.floor(a/864e5)+1,r=i-1;e.className="pa-date-picker__summary pa-date-picker__summary--visible",e.innerHTML=`
|
|
22
|
+
<span style="opacity: 0.7;">Preview: </span>
|
|
23
|
+
<span class="pa-date-picker__summary-count">${i} ${i===1?"day":"days"}</span>
|
|
24
|
+
<span>, </span>
|
|
25
|
+
<span class="pa-date-picker__summary-count">${r} ${r===1?"night":"nights"}</span>
|
|
26
|
+
`}}onDragEnd(e){this.isDragging&&(console.log("[DatePicker Drag] Ended dragging, finalizing selection"),this.dragPreviewStart&&this.dragPreviewEnd&&(this.selectedStartDate=this.dragPreviewStart,this.selectedEndDate=this.dragPreviewEnd,this.input.value=`${this.formatDate(this.selectedStartDate)} - ${this.formatDate(this.selectedEndDate)}`,this.options.onSelect&&this.options.onSelect({start:this.selectedStartDate,end:this.selectedEndDate})),this.isDragging=!1,this.draggingType=null,this.dragPreviewStart=null,this.dragPreviewEnd=null,this.calendar.querySelectorAll(".pa-date-picker__day--dragging").forEach(t=>{t.classList.remove("pa-date-picker__day--dragging")}),document.removeEventListener("mousemove",this.onDragMoveBound),document.removeEventListener("mouseup",this.onDragEndBound),this.navInterval&&(clearInterval(this.navInterval),this.navInterval=null),document.body.style.cursor="",this.renderCalendar(),this.updateSummary())}moveFocus(e){var r,s,o;console.log(`[DatePicker Col${this.activeMonthIndex}] moveFocus(${e}) - focusedDayIndex:`,this.focusedDayIndex);const t=this.calendar.querySelector(`.pa-date-picker__days[data-month-index="${this.activeMonthIndex}"]`);if(!t){console.log(`[DatePicker Col${this.activeMonthIndex}] ERROR: daysContainer not found!`);return}const a=t.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");if(console.log(`[DatePicker Col${this.activeMonthIndex}] Found ${a.length} days in column`),a.length===0)return;if(this.focusedDayIndex===null){const l=Array.from(a).findIndex(c=>c.classList.contains("pa-date-picker__day--today"));this.focusedDayIndex=l!==-1?l:0,console.log(`[DatePicker Col${this.activeMonthIndex}] Initialized focusedDayIndex to ${this.focusedDayIndex} (today or first day), will move by offset ${e}`)}(r=a[this.focusedDayIndex])==null||r.classList.remove("pa-date-picker__day--focused");const i=this.focusedDayIndex+e;if(i<0){const l=this.activeMonthIndex;if(e===-1)console.log(`[DatePicker Col${l}] Edge navigation LEFT: going to last day of prev month`),this.prevMonth(this.activeMonthIndex),setTimeout(()=>{var p,h;const c=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${l}"] .pa-date-picker__days`);if(!c)return;const d=c.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=d.length-1,(p=d[this.focusedDayIndex])==null||p.classList.add("pa-date-picker__day--focused"),(h=d[this.focusedDayIndex])==null||h.scrollIntoView({block:"nearest"})},0);else{const c=a[this.focusedDayIndex],[d,p,h]=c.dataset.date.split("-").map(Number),f=new Date(d,p,h).getDay();console.log(`[DatePicker Col${l}] Edge navigation UP: current day ${h} is weekday ${f}, going to prev month`),this.prevMonth(this.activeMonthIndex),setTimeout(()=>{var O,T;const g=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${l}"] .pa-date-picker__days`);if(!g)return;const y=g.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)"),[w,D,v]=y[y.length-1].dataset.date.split("-").map(Number),m=new Date(w,D,v).getDay(),E=(m-f+7)%7;this.focusedDayIndex=y.length-1-E,console.log(`[DatePicker Col${l}] Last day weekday ${m}, target ${f}, focusing on day ${this.focusedDayIndex+1}`),(O=y[this.focusedDayIndex])==null||O.classList.add("pa-date-picker__day--focused"),(T=y[this.focusedDayIndex])==null||T.scrollIntoView({block:"nearest"})},0)}return}else if(i>=a.length){const l=this.activeMonthIndex;if(e===1)console.log(`[DatePicker Col${l}] Edge navigation RIGHT: going to first day of next month`),this.nextMonth(this.activeMonthIndex),setTimeout(()=>{var p,h;const c=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${l}"] .pa-date-picker__days`);if(!c)return;const d=c.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)");this.focusedDayIndex=0,(p=d[this.focusedDayIndex])==null||p.classList.add("pa-date-picker__day--focused"),(h=d[this.focusedDayIndex])==null||h.scrollIntoView({block:"nearest"})},0);else{const c=a[this.focusedDayIndex],[d,p,h]=c.dataset.date.split("-").map(Number),f=new Date(d,p,h).getDay();console.log(`[DatePicker Col${l}] Edge navigation DOWN: current day ${h} is weekday ${f}, going to next month`),this.nextMonth(this.activeMonthIndex),setTimeout(()=>{var O,T;const g=this.calendar.querySelector(`.pa-date-picker__month[data-month-index="${l}"] .pa-date-picker__days`);if(!g)return;const y=g.querySelectorAll(".pa-date-picker__day:not(.pa-date-picker__day--other-month)"),[w,D,v]=y[0].dataset.date.split("-").map(Number),m=new Date(w,D,v).getDay(),E=(f-m+7)%7;this.focusedDayIndex=E,console.log(`[DatePicker Col${l}] First day weekday ${m}, target ${f}, focusing on day ${this.focusedDayIndex+1}`),(O=y[this.focusedDayIndex])==null||O.classList.add("pa-date-picker__day--focused"),(T=y[this.focusedDayIndex])==null||T.scrollIntoView({block:"nearest"})},0)}return}this.focusedDayIndex=i,(s=a[this.focusedDayIndex])==null||s.classList.add("pa-date-picker__day--focused"),(o=a[this.focusedDayIndex])==null||o.scrollIntoView({block:"nearest"})}handleInputMask(e){const t=e.target,a=t.value,i=t.selectionStart,r=this._previousInputValue||"",s=a.length<r.length,{separator:o}=this.formatInfo;if(this.options.mode==="range"){const l=a.replace(new RegExp(`[^0-9${o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}to ]`,"gi"),""),c=this.applyRangeMask(l);if(c!==a){t.value=c;let d=i;if(s)d=i;else if(c.length>a.length)if(c.includes(" to ")&&!a.includes(" to ")){const p=c.indexOf(" to ");i>=p&&i<=p+4?d=p+4:d=i+(c.length-a.length)}else d=i+(c.length-a.length);t.setSelectionRange(d,d)}}else{const l=a.replace(new RegExp(`[^0-9${o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]`,"g"),""),c=this.applyMask(l);if(c!==a){t.value=c;let d=i;if(s)d=i;else if(c.length>a.length&&c[i]===o)d=i+1;else if(c.length>a.length){const p=(a.substring(0,i).match(new RegExp(o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"))||[]).length,u=(c.substring(0,i).match(new RegExp(o.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"))||[]).length-p;d=i+u}t.setSelectionRange(d,d)}}this._previousInputValue=t.value,this.updateCalendarFromInput()}applyMask(e){var d,p,h;const{separator:t,parts:a,maxLength:i}=this.formatInfo,r=e.replace(new RegExp(t.replace(/[.*+?^${}()|[\]\\]/g,"\\$&"),"g"),""),s=a.year?a.year.length:4,o=[{type:"year",pos:(d=a.year)==null?void 0:d.index,length:s},{type:"month",pos:(p=a.month)==null?void 0:p.index,length:2},{type:"day",pos:(h=a.day)==null?void 0:h.index,length:2}].sort((u,f)=>u.pos-f.pos);let l="",c=0;for(let u=0;u<o.length;u++){const f=o[u],g=r.substring(c,c+f.length);if(!g)break;l+=g,c+=g.length,u<o.length-1&&g.length===f.length&&(l+=t)}return l.substring(0,i)}applyRangeMask(e){const{separator:t,maxLength:a}=this.formatInfo,i=" to ";let r="",s="";if(e.includes(i)){const l=e.split(i);r=l[0],s=l.slice(1).join(i)}else r=e;const o=this.applyMask(r);if(o.length===a)if(e.includes(i)){const l=this.applyMask(s);return o+i+l}else return o+i;else return o}handleKeydown(e){const{key:t,ctrlKey:a,metaKey:i}=e,{separator:r}=this.formatInfo;if(this.calendar.classList.contains("pa-date-picker--visible")&&["ArrowUp","ArrowDown","Home","End","PageUp","PageDown"].includes(t)){e.preventDefault();return}if(!(["Backspace","Delete","Tab","Escape","Enter","ArrowLeft","ArrowRight","ArrowUp","ArrowDown","Home","End"].includes(t)||a||i)){if(t===r){const o=e.target,l=o.selectionStart,c=o.value;let d=0;for(let h=l-1;h>=0;h--)if(c[h]===r||c[h]===" "){d=h+1;break}const p=c.substring(d,l);if(/^\d$/.test(p)){e.preventDefault();const h=c.substring(0,d)+"0"+p+r+c.substring(l);o.value=h;const u=d+2+r.length;o.setSelectionRange(u,u),this._previousInputValue=h,o.dispatchEvent(new Event("input",{bubbles:!0}));return}}this.options.mode==="range"?!/^\d$/.test(t)&&t!==r&&t!==" "&&t.toLowerCase()!=="t"&&t.toLowerCase()!=="o"&&e.preventDefault():!/^\d$/.test(t)&&t!==r&&e.preventDefault()}}handlePaste(e){e.preventDefault();const t=(e.clipboardData||window.clipboardData).getData("text"),{separator:a}=this.formatInfo,i=t.replace(new RegExp(`[^0-9${a.replace(/[.*+?^${}()|[\]\\]/g,"\\$&")}]`,"g"),""),r=this.applyMask(i),s=e.target,o=s.selectionStart,l=s.selectionEnd,c=s.value,d=c.substring(0,o)+r+c.substring(l);s.value=this.applyMask(d);const p=o+r.length;s.setSelectionRange(p,p),s.dispatchEvent(new Event("input",{bubbles:!0})),this.updateCalendarFromInput()}parseFormat(e){const t={};let a="";return e.includes("-")?a="-":e.includes("/")?a="/":e.includes(".")&&(a="."),e.split(a).forEach((r,s)=>{r==="YYYY"||r==="YY"?t.year={index:s,length:r.length}:r==="MM"||r==="M"?t.month={index:s,length:2}:(r==="DD"||r==="D")&&(t.day={index:s,length:2})}),{format:e,separator:a,parts:t,maxLength:e.length}}formatDate(e){if(!e)return"";const t=e.getFullYear(),a=String(e.getMonth()+1).padStart(2,"0"),i=String(e.getDate()).padStart(2,"0"),{format:r,separator:s,parts:o}=this.formatInfo,l=[];for(let c=0;c<3;c++)o.year&&o.year.index===c?l.push(o.year.length===2?String(t).slice(-2):t):o.month&&o.month.index===c?l.push(a):o.day&&o.day.index===c&&l.push(i);return l.join(s)}parseInputValue(e){if(!e)return null;const{separator:t,parts:a,maxLength:i}=this.formatInfo;if(e.length!==i)return null;const r=e.split(t);if(r.length!==3)return null;let s,o,l;if(r.forEach((d,p)=>{a.year&&a.year.index===p?(s=parseInt(d,10),a.year.length===2&&s<100&&(s+=2e3)):a.month&&a.month.index===p?o=parseInt(d,10):a.day&&a.day.index===p&&(l=parseInt(d,10))}),!s||!o||!l||o<1||o>12||l<1||l>31)return null;const c=new Date(s,o-1,l);return c.getMonth()!==o-1?null:c}parseAndUpdateSingleDate(e,t="single"){const{separator:a,parts:i,maxLength:r}=this.formatInfo,s=e.split(a);let o=null,l=null,c=null;if(s.forEach((d,p)=>{if(d){if(i.year&&i.year.index===p){const h=parseInt(d,10);i.year.length===4&&d.length===4?o=h:i.year.length===2&&d.length===2&&(o=h<100?h+2e3:h)}else if(i.month&&i.month.index===p){const h=parseInt(d,10);d.length===2&&h>=1&&h<=12&&(l=h)}else if(i.day&&i.day.index===p){const h=parseInt(d,10);d.length===2&&h>=1&&h<=31&&(c=h)}}}),console.log(`[DatePicker] parseAndUpdateSingleDate(${t}) - year:`,o,"month:",l,"day:",c),o!==null||l!==null){const d=o||new Date().getFullYear(),p=l!==null?l-1:new Date().getMonth();if(this.options.mode==="single"){this.currentYear=d,this.currentMonth=p,this.monthDates=[];for(let h=0;h<this.options.monthsToShow;h++){const u=new Date(d,p+h,1);this.monthDates.push(u)}}else if(this.options.mode==="range"&&(t==="start"||!this.selectedStartDate)){if(this.displayMonths=[{month:p,year:d}],this.options.monthsToShow>1){const h=new Date(d,p+1,1);this.displayMonths.push({month:h.getMonth(),year:h.getFullYear()})}this.monthDates=[];for(let h=0;h<this.options.monthsToShow;h++){const u=this.displayMonths[h],f=new Date(u.year,u.month,1);this.monthDates.push(f)}}this.renderCalendar()}if(o!==null&&l!==null&&c!==null){const d=new Date(o,l-1,c);d.getMonth()===l-1&&(t==="single"?this.selectedDate=d:t==="start"?this.selectedStartDate=d:t==="end"&&(this.selectedEndDate=d),this.renderCalendar(),this.options.mode==="range"&&this.updateSummary(),console.log(`[DatePicker] Set ${t} date:`,d))}}updateCalendarFromInput(){const e=this.input.value;if(console.log("[DatePicker] updateCalendarFromInput - value:",e),!e)return;const{separator:t,parts:a,maxLength:i}=this.formatInfo;if(console.log("[DatePicker] Format info:",{separator:t,parts:a,maxLength:i}),this.options.mode==="range"&&e.includes(" to ")){const s=e.split(" to "),o=s[0],l=s[1];console.log("[DatePicker] Range parts - start:",o,"end:",l),this.parseAndUpdateSingleDate(o,"start"),l&&this.parseAndUpdateSingleDate(l,"end");return}const r=this.options.mode==="range"?"start":"single";this.parseAndUpdateSingleDate(e,r)}isToday(e){const t=new Date;return this.isSameDay(e,t)}isSameDay(e,t){return!e||!t?!1:e.getFullYear()===t.getFullYear()&&e.getMonth()===t.getMonth()&&e.getDate()===t.getDate()}isInRange(e){return!this.selectedStartDate||!this.selectedEndDate?!1:e>this.selectedStartDate&&e<this.selectedEndDate}destroy(){this.clickOutsideHandler&&document.removeEventListener("click",this.clickOutsideHandler),this.calendar.remove()}}const Ct='@charset "UTF-8";:root{--drp-card-bg: #ffffff;--drp-border-color: #e5e7eb;--drp-primary-bg: #f3f4f6;--drp-primary-bg-hover: #e5e7eb;--drp-accent-color: #3b82f6;--drp-accent-color-hover: #2563eb;--drp-text-primary: #111827;--drp-text-secondary: #6b7280;--drp-spacing-xs: .25rem;--drp-spacing-sm: .5rem;--drp-spacing-md: 1rem;--drp-spacing-lg: 1.5rem;--drp-spacing-xl: 2rem;--drp-font-size-2xs: .625rem;--drp-font-size-xs: .75rem;--drp-font-size-sm: .875rem;--drp-font-size-base: 1rem;--drp-font-size-lg: 1.125rem;--drp-font-size-xl: 1.25rem;--drp-font-size-2xl: 1.5rem;--drp-font-weight-medium: 500;--drp-font-weight-semibold: 600;--drp-border-width-base: 1px;--drp-border-radius: .375rem;--drp-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--drp-transition-fast: .15s;--drp-easing-snappy: cubic-bezier(.4, 0, .2, 1);--drp-input-padding-h: .75rem}.pa-date-picker-input{position:relative;cursor:pointer}.pa-date-picker-input:after{content:"📅";position:absolute;right:var(--drp-input-padding-h);top:50%;transform:translateY(-50%);pointer-events:none;opacity:.6}.pa-date-picker{position:absolute;z-index:9500;background:var(--drp-card-bg);border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);box-shadow:var(--drp-shadow-xl);padding:var(--drp-spacing-md);min-width:280px;-webkit-user-select:none;user-select:none}.pa-date-picker:not(.pa-date-picker--visible){display:none}.pa-date-picker__months{display:flex;gap:var(--drp-spacing-lg)}.pa-date-picker__month{flex:1;min-width:280px}.pa-date-picker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--drp-spacing-md);gap:var(--drp-spacing-sm)}.pa-date-picker__month-year{flex:1;text-align:center;font-weight:var(--drp-font-weight-semibold);font-size:var(--drp-font-size-base);padding:var(--drp-spacing-sm) var(--drp-spacing-md);border-radius:var(--drp-border-radius);cursor:pointer;transition:background-color var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__month-year:hover{background-color:var(--drp-primary-bg)}.pa-date-picker__month-year:active{background-color:var(--drp-primary-bg-hover)}.pa-date-picker__nav{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);background:transparent;cursor:pointer;transition:all var(--drp-transition-fast) var(--drp-easing-snappy);font-size:var(--drp-font-size-lg);color:var(--drp-text-primary)}.pa-date-picker__nav:hover{background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__nav:active{background-color:var(--drp-primary-bg-hover)}.pa-date-picker__nav--prev:before{content:"‹"}.pa-date-picker__nav--next:before{content:"›"}.pa-date-picker__rolling-selector{display:none}.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible{display:flex}.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible~.pa-date-picker__weekdays,.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible~.pa-date-picker__days{display:none}.pa-date-picker__rolling-selector{gap:var(--drp-spacing-md);margin-bottom:var(--drp-spacing-md)}.pa-date-picker__rolling-list{flex:1;height:100%;overflow-y:auto;border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);scroll-behavior:smooth}.pa-date-picker__rolling-list::-webkit-scrollbar{width:6px}.pa-date-picker__rolling-list::-webkit-scrollbar-track{background:var(--drp-primary-bg)}.pa-date-picker__rolling-list::-webkit-scrollbar-thumb{background:var(--drp-border-color);border-radius:3px}.pa-date-picker__rolling-list::-webkit-scrollbar-thumb:hover{background:var(--drp-accent-color)}.pa-date-picker__rolling-item{padding:var(--drp-spacing-sm) var(--drp-spacing-md);text-align:center;cursor:pointer;font-size:var(--drp-font-size-sm);transition:background-color var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__rolling-item:hover{background-color:var(--drp-primary-bg)}.pa-date-picker__rolling-item--selected{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__rolling-item--selected:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--drp-spacing-xs);margin-bottom:var(--drp-spacing-sm)}.pa-date-picker__weekday{text-align:center;font-size:var(--drp-font-size-xs);font-weight:var(--drp-font-weight-semibold);color:var(--drp-text-secondary);padding:var(--drp-spacing-xs);text-transform:uppercase}.pa-date-picker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--drp-spacing-xs);margin-bottom:var(--drp-spacing-md)}.pa-date-picker__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--drp-font-size-sm);border-radius:var(--drp-border-radius);cursor:pointer;transition:all var(--drp-transition-fast) var(--drp-easing-snappy);border:2px solid transparent}.pa-date-picker__day:hover:not(.pa-date-picker__day--disabled):not(.pa-date-picker__day--other-month){background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__day--today{border-color:var(--drp-accent-color);font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__day--selected{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__day--selected:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__day--focused{outline:2px solid var(--drp-accent-color);outline-offset:2px}.pa-date-picker__day--disabled{color:var(--drp-text-secondary);opacity:.4;cursor:not-allowed}.pa-date-picker__day--disabled:hover{background-color:transparent;border-color:transparent}.pa-date-picker__day--other-month{color:var(--drp-text-secondary);opacity:.5}.pa-date-picker__day--other-month.pa-date-picker__day--range-start,.pa-date-picker__day--other-month.pa-date-picker__day--range-end,.pa-date-picker__day--other-month.pa-date-picker__day--in-range,.pa-date-picker__day--other-month.pa-date-picker__day--drag-preview{opacity:1}.pa-date-picker__day--range-start,.pa-date-picker__day--range-end{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold);cursor:grab;-webkit-user-select:none;user-select:none}.pa-date-picker__day--range-start:active,.pa-date-picker__day--range-end:active{cursor:grabbing}.pa-date-picker__day--in-range{background-color:color-mix(in srgb,var(--drp-accent-color) 15%,transparent)}.pa-date-picker__day--in-range:hover{background-color:color-mix(in srgb,var(--drp-accent-color) 25%,transparent)}.pa-date-picker__day--dragging{cursor:grabbing!important;opacity:.7;transform:scale(1.1);transition:transform var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__day--drag-preview{background-color:color-mix(in srgb,var(--drp-accent-color) 30%,transparent);border:2px dashed var(--drp-accent-color)}.pa-date-picker__day--drag-preview.pa-date-picker__day--range-start,.pa-date-picker__day--drag-preview.pa-date-picker__day--range-end{background-color:color-mix(in srgb,var(--drp-accent-color) 60%,transparent);color:#fff}.pa-date-picker__summary{text-align:center;padding:var(--drp-spacing-md);border-top:var(--drp-border-width-base) solid var(--drp-border-color);font-size:var(--drp-font-size-sm);color:var(--drp-text-secondary)}.pa-date-picker__summary--visible{display:block}.pa-date-picker__summary--hidden{display:none}.pa-date-picker__summary-count{font-weight:var(--drp-font-weight-semibold);color:var(--drp-accent-color);font-size:var(--drp-font-size-base)}.pa-date-picker__actions{display:flex;gap:var(--drp-spacing-sm);justify-content:space-between;padding-top:var(--drp-spacing-sm);border-top:var(--drp-border-width-base) solid var(--drp-border-color)}.pa-date-picker__button{flex:1;padding:var(--drp-spacing-sm) var(--drp-spacing-md);border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);background:transparent;cursor:pointer;font-size:var(--drp-font-size-sm);font-weight:var(--drp-font-weight-medium);transition:all var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__button:hover{background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__button--today{color:var(--drp-accent-color)}.pa-date-picker__button--clear{color:var(--drp-text-secondary)}.pa-date-picker__button--apply{background-color:var(--drp-accent-color);color:#fff;border-color:var(--drp-accent-color)}.pa-date-picker__button--apply:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__button--cancel{color:var(--drp-text-secondary)}.pa-date-picker--xs{padding:var(--drp-spacing-sm);min-width:240px}.pa-date-picker--xs .pa-date-picker__month-year{font-size:var(--drp-font-size-xs);padding:var(--drp-spacing-xs) var(--drp-spacing-sm)}.pa-date-picker--xs .pa-date-picker__nav{width:1.5rem;height:1.5rem;font-size:var(--drp-font-size-sm)}.pa-date-picker--xs .pa-date-picker__weekday{font-size:var(--drp-font-size-2xs)}.pa-date-picker--xs .pa-date-picker__day{font-size:var(--drp-font-size-xs)}.pa-date-picker--sm{padding:var(--drp-spacing-sm);min-width:260px}.pa-date-picker--sm .pa-date-picker__month-year{font-size:var(--drp-font-size-sm);padding:var(--drp-spacing-xs) var(--drp-spacing-sm)}.pa-date-picker--sm .pa-date-picker__nav{width:1.75rem;height:1.75rem;font-size:var(--drp-font-size-base)}.pa-date-picker--sm .pa-date-picker__day{font-size:var(--drp-font-size-xs)}.pa-date-picker--lg{padding:var(--drp-spacing-lg);min-width:320px}.pa-date-picker--lg .pa-date-picker__month-year{font-size:var(--drp-font-size-lg);padding:var(--drp-spacing-md) var(--drp-spacing-lg)}.pa-date-picker--lg .pa-date-picker__nav{width:2.5rem;height:2.5rem;font-size:var(--drp-font-size-xl)}.pa-date-picker--lg .pa-date-picker__day{font-size:var(--drp-font-size-base)}.pa-date-picker--xl{padding:var(--drp-spacing-xl);min-width:360px}.pa-date-picker--xl .pa-date-picker__month-year{font-size:var(--drp-font-size-xl);padding:var(--drp-spacing-lg) var(--drp-spacing-xl)}.pa-date-picker--xl .pa-date-picker__nav{width:3rem;height:3rem;font-size:var(--drp-font-size-2xl)}.pa-date-picker--xl .pa-date-picker__day{font-size:var(--drp-font-size-lg)}.pa-date-picker--inline{position:static;display:block;box-shadow:none}';class Le extends HTMLElement{constructor(){super();_(this,"picker");_(this,"inputElement");_(this,"shadow");this.shadow=this.attachShadow({mode:"open"})}static get observedAttributes(){return["mode","format","months-to-show","trigger","value","disabled","placeholder"]}connectedCallback(){this.render(),this.initializePicker()}disconnectedCallback(){this.picker&&this.picker.destroy()}attributeChangedCallback(t,a,i){a!==i&&(this.picker&&t!=="value"&&t!=="placeholder"&&(this.picker.destroy(),this.initializePicker()),t==="value"&&this.inputElement&&i!==null&&(this.inputElement.value=i),t==="placeholder"&&this.inputElement&&i!==null&&(this.inputElement.placeholder=i),t==="disabled"&&this.inputElement&&(i!==null?this.inputElement.disabled=!0:this.inputElement.disabled=!1))}render(){const t=document.createElement("style");t.textContent=Ct,this.inputElement=document.createElement("input"),this.inputElement.type="text",this.inputElement.classList.add("pa-input","pa-date-picker-input");const a=this.getAttribute("placeholder");a&&(this.inputElement.placeholder=a);const i=this.getAttribute("value");i&&(this.inputElement.value=i),this.hasAttribute("disabled")&&(this.inputElement.disabled=!0),this.shadow.appendChild(t),this.shadow.appendChild(this.inputElement)}initializePicker(){if(!this.inputElement)return;const t={mode:this.getAttribute("mode")||"single",format:this.getAttribute("format")||"YYYY-MM-DD",monthsToShow:parseInt(this.getAttribute("months-to-show")||"0")||void 0,calendarTrigger:this.getAttribute("trigger")||"auto",onSelect:a=>this.handleDateSelect(a),container:this.shadow};this.picker=new Ae(this.inputElement,t)}handleDateSelect(t){var i;const a={date:t instanceof Date?t:void 0,dateRange:t instanceof Date?void 0:t,formattedValue:((i=this.inputElement)==null?void 0:i.value)||""};this.dispatchEvent(new CustomEvent("date-select",{detail:a,bubbles:!0,composed:!0})),this.dispatchEvent(new CustomEvent("change",{detail:a,bubbles:!0,composed:!0}))}show(){var t;(t=this.picker)==null||t.show()}hide(){var t;(t=this.picker)==null||t.hide()}toggle(){var t;(t=this.picker)==null||t.toggle()}clear(){var t;(t=this.picker)==null||t.clear()}getValue(){var t;return((t=this.inputElement)==null?void 0:t.value)||""}setValue(t){this.inputElement&&(this.inputElement.value=t),this.setAttribute("value",t)}get mode(){return this.getAttribute("mode")||"single"}set mode(t){this.setAttribute("mode",t)}get format(){return this.getAttribute("format")||"YYYY-MM-DD"}set format(t){this.setAttribute("format",t)}get value(){return this.getValue()}set value(t){this.setValue(t)}get disabled(){return this.hasAttribute("disabled")}set disabled(t){t?this.setAttribute("disabled",""):this.removeAttribute("disabled")}}customElements.get("date-range-picker")||customElements.define("date-range-picker",Le),b.DateRangePickerElement=Le,b.PureDatePicker=Ae,Object.defineProperty(b,Symbol.toStringTag,{value:"Module"})});
|
package/dist/style.css
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
@charset "UTF-8";:root{--drp-card-bg: #ffffff;--drp-border-color: #e5e7eb;--drp-primary-bg: #f3f4f6;--drp-primary-bg-hover: #e5e7eb;--drp-accent-color: #3b82f6;--drp-accent-color-hover: #2563eb;--drp-text-primary: #111827;--drp-text-secondary: #6b7280;--drp-spacing-xs: .25rem;--drp-spacing-sm: .5rem;--drp-spacing-md: 1rem;--drp-spacing-lg: 1.5rem;--drp-spacing-xl: 2rem;--drp-font-size-2xs: .625rem;--drp-font-size-xs: .75rem;--drp-font-size-sm: .875rem;--drp-font-size-base: 1rem;--drp-font-size-lg: 1.125rem;--drp-font-size-xl: 1.25rem;--drp-font-size-2xl: 1.5rem;--drp-font-weight-medium: 500;--drp-font-weight-semibold: 600;--drp-border-width-base: 1px;--drp-border-radius: .375rem;--drp-shadow-xl: 0 20px 25px -5px rgb(0 0 0 / .1), 0 8px 10px -6px rgb(0 0 0 / .1);--drp-transition-fast: .15s;--drp-easing-snappy: cubic-bezier(.4, 0, .2, 1);--drp-input-padding-h: .75rem}.pa-date-picker-input{position:relative;cursor:pointer}.pa-date-picker-input:after{content:"📅";position:absolute;right:var(--drp-input-padding-h);top:50%;transform:translateY(-50%);pointer-events:none;opacity:.6}.pa-date-picker{position:absolute;z-index:9500;background:var(--drp-card-bg);border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);box-shadow:var(--drp-shadow-xl);padding:var(--drp-spacing-md);min-width:280px;-webkit-user-select:none;user-select:none}.pa-date-picker:not(.pa-date-picker--visible){display:none}.pa-date-picker__months{display:flex;gap:var(--drp-spacing-lg)}.pa-date-picker__month{flex:1;min-width:280px}.pa-date-picker__header{display:flex;align-items:center;justify-content:space-between;margin-bottom:var(--drp-spacing-md);gap:var(--drp-spacing-sm)}.pa-date-picker__month-year{flex:1;text-align:center;font-weight:var(--drp-font-weight-semibold);font-size:var(--drp-font-size-base);padding:var(--drp-spacing-sm) var(--drp-spacing-md);border-radius:var(--drp-border-radius);cursor:pointer;transition:background-color var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__month-year:hover{background-color:var(--drp-primary-bg)}.pa-date-picker__month-year:active{background-color:var(--drp-primary-bg-hover)}.pa-date-picker__nav{width:2rem;height:2rem;display:flex;align-items:center;justify-content:center;border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);background:transparent;cursor:pointer;transition:all var(--drp-transition-fast) var(--drp-easing-snappy);font-size:var(--drp-font-size-lg);color:var(--drp-text-primary)}.pa-date-picker__nav:hover{background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__nav:active{background-color:var(--drp-primary-bg-hover)}.pa-date-picker__nav--prev:before{content:"‹"}.pa-date-picker__nav--next:before{content:"›"}.pa-date-picker__rolling-selector{display:none}.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible{display:flex}.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible~.pa-date-picker__weekdays,.pa-date-picker__rolling-selector.pa-date-picker__rolling-selector--visible~.pa-date-picker__days{display:none}.pa-date-picker__rolling-selector{gap:var(--drp-spacing-md);margin-bottom:var(--drp-spacing-md)}.pa-date-picker__rolling-list{flex:1;height:100%;overflow-y:auto;border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);scroll-behavior:smooth}.pa-date-picker__rolling-list::-webkit-scrollbar{width:6px}.pa-date-picker__rolling-list::-webkit-scrollbar-track{background:var(--drp-primary-bg)}.pa-date-picker__rolling-list::-webkit-scrollbar-thumb{background:var(--drp-border-color);border-radius:3px}.pa-date-picker__rolling-list::-webkit-scrollbar-thumb:hover{background:var(--drp-accent-color)}.pa-date-picker__rolling-item{padding:var(--drp-spacing-sm) var(--drp-spacing-md);text-align:center;cursor:pointer;font-size:var(--drp-font-size-sm);transition:background-color var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__rolling-item:hover{background-color:var(--drp-primary-bg)}.pa-date-picker__rolling-item--selected{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__rolling-item--selected:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__weekdays{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--drp-spacing-xs);margin-bottom:var(--drp-spacing-sm)}.pa-date-picker__weekday{text-align:center;font-size:var(--drp-font-size-xs);font-weight:var(--drp-font-weight-semibold);color:var(--drp-text-secondary);padding:var(--drp-spacing-xs);text-transform:uppercase}.pa-date-picker__days{display:grid;grid-template-columns:repeat(7,1fr);gap:var(--drp-spacing-xs);margin-bottom:var(--drp-spacing-md)}.pa-date-picker__day{aspect-ratio:1;display:flex;align-items:center;justify-content:center;font-size:var(--drp-font-size-sm);border-radius:var(--drp-border-radius);cursor:pointer;transition:all var(--drp-transition-fast) var(--drp-easing-snappy);border:2px solid transparent}.pa-date-picker__day:hover:not(.pa-date-picker__day--disabled):not(.pa-date-picker__day--other-month){background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__day--today{border-color:var(--drp-accent-color);font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__day--selected{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold)}.pa-date-picker__day--selected:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__day--focused{outline:2px solid var(--drp-accent-color);outline-offset:2px}.pa-date-picker__day--disabled{color:var(--drp-text-secondary);opacity:.4;cursor:not-allowed}.pa-date-picker__day--disabled:hover{background-color:transparent;border-color:transparent}.pa-date-picker__day--other-month{color:var(--drp-text-secondary);opacity:.5}.pa-date-picker__day--other-month.pa-date-picker__day--range-start,.pa-date-picker__day--other-month.pa-date-picker__day--range-end,.pa-date-picker__day--other-month.pa-date-picker__day--in-range,.pa-date-picker__day--other-month.pa-date-picker__day--drag-preview{opacity:1}.pa-date-picker__day--range-start,.pa-date-picker__day--range-end{background-color:var(--drp-accent-color);color:#fff;font-weight:var(--drp-font-weight-semibold);cursor:grab;-webkit-user-select:none;user-select:none}.pa-date-picker__day--range-start:active,.pa-date-picker__day--range-end:active{cursor:grabbing}.pa-date-picker__day--in-range{background-color:color-mix(in srgb,var(--drp-accent-color) 15%,transparent)}.pa-date-picker__day--in-range:hover{background-color:color-mix(in srgb,var(--drp-accent-color) 25%,transparent)}.pa-date-picker__day--dragging{cursor:grabbing!important;opacity:.7;transform:scale(1.1);transition:transform var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__day--drag-preview{background-color:color-mix(in srgb,var(--drp-accent-color) 30%,transparent);border:2px dashed var(--drp-accent-color)}.pa-date-picker__day--drag-preview.pa-date-picker__day--range-start,.pa-date-picker__day--drag-preview.pa-date-picker__day--range-end{background-color:color-mix(in srgb,var(--drp-accent-color) 60%,transparent);color:#fff}.pa-date-picker__summary{text-align:center;padding:var(--drp-spacing-md);border-top:var(--drp-border-width-base) solid var(--drp-border-color);font-size:var(--drp-font-size-sm);color:var(--drp-text-secondary)}.pa-date-picker__summary--visible{display:block}.pa-date-picker__summary--hidden{display:none}.pa-date-picker__summary-count{font-weight:var(--drp-font-weight-semibold);color:var(--drp-accent-color);font-size:var(--drp-font-size-base)}.pa-date-picker__actions{display:flex;gap:var(--drp-spacing-sm);justify-content:space-between;padding-top:var(--drp-spacing-sm);border-top:var(--drp-border-width-base) solid var(--drp-border-color)}.pa-date-picker__button{flex:1;padding:var(--drp-spacing-sm) var(--drp-spacing-md);border:var(--drp-border-width-base) solid var(--drp-border-color);border-radius:var(--drp-border-radius);background:transparent;cursor:pointer;font-size:var(--drp-font-size-sm);font-weight:var(--drp-font-weight-medium);transition:all var(--drp-transition-fast) var(--drp-easing-snappy)}.pa-date-picker__button:hover{background-color:var(--drp-primary-bg);border-color:var(--drp-accent-color)}.pa-date-picker__button--today{color:var(--drp-accent-color)}.pa-date-picker__button--clear{color:var(--drp-text-secondary)}.pa-date-picker__button--apply{background-color:var(--drp-accent-color);color:#fff;border-color:var(--drp-accent-color)}.pa-date-picker__button--apply:hover{background-color:var(--drp-accent-color-hover)}.pa-date-picker__button--cancel{color:var(--drp-text-secondary)}.pa-date-picker--xs{padding:var(--drp-spacing-sm);min-width:240px}.pa-date-picker--xs .pa-date-picker__month-year{font-size:var(--drp-font-size-xs);padding:var(--drp-spacing-xs) var(--drp-spacing-sm)}.pa-date-picker--xs .pa-date-picker__nav{width:1.5rem;height:1.5rem;font-size:var(--drp-font-size-sm)}.pa-date-picker--xs .pa-date-picker__weekday{font-size:var(--drp-font-size-2xs)}.pa-date-picker--xs .pa-date-picker__day{font-size:var(--drp-font-size-xs)}.pa-date-picker--sm{padding:var(--drp-spacing-sm);min-width:260px}.pa-date-picker--sm .pa-date-picker__month-year{font-size:var(--drp-font-size-sm);padding:var(--drp-spacing-xs) var(--drp-spacing-sm)}.pa-date-picker--sm .pa-date-picker__nav{width:1.75rem;height:1.75rem;font-size:var(--drp-font-size-base)}.pa-date-picker--sm .pa-date-picker__day{font-size:var(--drp-font-size-xs)}.pa-date-picker--lg{padding:var(--drp-spacing-lg);min-width:320px}.pa-date-picker--lg .pa-date-picker__month-year{font-size:var(--drp-font-size-lg);padding:var(--drp-spacing-md) var(--drp-spacing-lg)}.pa-date-picker--lg .pa-date-picker__nav{width:2.5rem;height:2.5rem;font-size:var(--drp-font-size-xl)}.pa-date-picker--lg .pa-date-picker__day{font-size:var(--drp-font-size-base)}.pa-date-picker--xl{padding:var(--drp-spacing-xl);min-width:360px}.pa-date-picker--xl .pa-date-picker__month-year{font-size:var(--drp-font-size-xl);padding:var(--drp-spacing-lg) var(--drp-spacing-xl)}.pa-date-picker--xl .pa-date-picker__nav{width:3rem;height:3rem;font-size:var(--drp-font-size-2xl)}.pa-date-picker--xl .pa-date-picker__day{font-size:var(--drp-font-size-lg)}.pa-date-picker--inline{position:static;display:block;box-shadow:none}
|
package/package.json
ADDED
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@keenmate/web-daterangepicker",
|
|
3
|
+
"version": "1.0.0-rc01",
|
|
4
|
+
"description": "Lightweight date picker web component with excellent keyboard navigation and range selection",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "./dist/date-range-picker.umd.js",
|
|
7
|
+
"module": "./dist/date-range-picker.js",
|
|
8
|
+
"style": "./dist/style.css",
|
|
9
|
+
"exports": {
|
|
10
|
+
".": {
|
|
11
|
+
"import": "./dist/date-range-picker.js",
|
|
12
|
+
"require": "./dist/date-range-picker.umd.js",
|
|
13
|
+
"default": "./dist/date-range-picker.js"
|
|
14
|
+
},
|
|
15
|
+
"./style.css": "./dist/style.css",
|
|
16
|
+
"./dist/*": "./dist/*",
|
|
17
|
+
"./package.json": "./package.json"
|
|
18
|
+
},
|
|
19
|
+
"sideEffects": [
|
|
20
|
+
"./dist/date-range-picker.js",
|
|
21
|
+
"./dist/date-range-picker.umd.js",
|
|
22
|
+
"*.css"
|
|
23
|
+
],
|
|
24
|
+
"files": [
|
|
25
|
+
"dist"
|
|
26
|
+
],
|
|
27
|
+
"scripts": {
|
|
28
|
+
"dev": "vite",
|
|
29
|
+
"build": "vite build",
|
|
30
|
+
"build:types": "tsc",
|
|
31
|
+
"build:full": "tsc && vite build",
|
|
32
|
+
"preview": "vite preview",
|
|
33
|
+
"package": "npm run build && npm pack",
|
|
34
|
+
"publish:dry": "npm run build && npm publish --dry-run",
|
|
35
|
+
"clean": "rimraf dist *.tgz",
|
|
36
|
+
"clean:dist": "rimraf dist"
|
|
37
|
+
},
|
|
38
|
+
"keywords": [
|
|
39
|
+
"datepicker",
|
|
40
|
+
"date-range-picker",
|
|
41
|
+
"date-picker",
|
|
42
|
+
"web-component",
|
|
43
|
+
"custom-element",
|
|
44
|
+
"calendar",
|
|
45
|
+
"date-input",
|
|
46
|
+
"date-selector",
|
|
47
|
+
"keenmate"
|
|
48
|
+
],
|
|
49
|
+
"author": "Keenmate",
|
|
50
|
+
"license": "MIT",
|
|
51
|
+
"repository": {
|
|
52
|
+
"type": "git",
|
|
53
|
+
"url": "git+https://github.com/keenmate/web-daterangepicker.git"
|
|
54
|
+
},
|
|
55
|
+
"homepage": "https://github.com/keenmate/web-daterangepicker#readme",
|
|
56
|
+
"bugs": {
|
|
57
|
+
"url": "https://github.com/keenmate/web-daterangepicker/issues"
|
|
58
|
+
},
|
|
59
|
+
"devDependencies": {
|
|
60
|
+
"rimraf": "^5.0.5",
|
|
61
|
+
"sass": "^1.69.5",
|
|
62
|
+
"typescript": "^5.3.3",
|
|
63
|
+
"vite": "^5.0.8"
|
|
64
|
+
},
|
|
65
|
+
"dependencies": {
|
|
66
|
+
"@floating-ui/dom": "^1.5.3"
|
|
67
|
+
}
|
|
68
|
+
}
|