@ecopages/radiant-ui 0.1.0-beta.5 → 0.1.0-beta.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/components/ui/date-field/index.js +1 -1
- package/dist/components/ui/date-field/index.js.map +2 -2
- package/dist/components/ui/date-range-picker/index.js +1 -1
- package/dist/components/ui/date-range-picker/index.js.map +2 -2
- package/dist/components/ui/sidebar/index.js +1 -1
- package/dist/components/ui/sidebar/index.js.map +3 -3
- package/dist/components/ui/sidebar/sidebar.script.d.ts +12 -5
- package/dist/components/ui/toc/index.js +1 -1
- package/dist/components/ui/toc/index.js.map +3 -3
- package/dist/components/ui/toc/toc.ssr.test.d.ts +1 -0
- package/dist/components/ui/toc/toc.test.d.ts +1 -0
- package/dist/index.js +1 -1
- package/dist/index.js.map +3 -3
- package/package.json +5 -5
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{jsx as P,jsxs as at}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Pe,customElement as ln,event as un,onEvent as I,onUpdated as Oe,prop as x,query as Ce,state as H}from"@ecopages/radiant";function N(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),a=new Date(n,r,i);return a.getFullYear()!==n||a.getMonth()!==r||a.getDate()!==i?null:a}function tt(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`}function vt(e,t){return e.localeCompare(t)}function et(e,t){return vt(e,t)<=0?{start:e,end:t}:{start:t,end:e}}function C(e){if(!e)return null;let[t,n]=e.split("/");return!t||!n?null:et(t,n)}function nt(e){if(!e)return"";let t=et(e.start,e.end);return`${t.start}/${t.end}`}var _t=new Map;function Le(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function T(e,t){let n=Le(e,t),r=_t.get(n);if(r)return r;let i=new Intl.DateTimeFormat(e,t);return _t.set(n,i),i}function rt(e,t,n="medium"){return T(t,{dateStyle:n}).format(e)}var $e={0:"digit",a:"letter","*":"any"};function je(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let r=$e[e];return r?{kind:r}:null}function bt(e,t,n=!1){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a==="\\"){let o=e[i+1];o&&r.push({type:"literal",value:o}),i+=2;continue}if(a==="{"){let o=e.indexOf("}",i+1);if(o<0){r.push({type:"literal",value:"{"}),i+=1;continue}r.push({type:"fixed",value:e.slice(i+1,o)}),i=o+1;continue}if(a==="["){let o=Be(e,i+1);if(o<0){r.push({type:"literal",value:"["}),i+=1;continue}let l=bt(e.slice(i+1,o),t,!0);r.push(...l),i=o+1;continue}if(a==="]")break;let s=je(a,t);if(s){r.push({type:"input",definition:a,kind:s.kind,pattern:s.pattern,optional:n}),i+=1;continue}r.push({type:"literal",value:a}),i+=1}return r}function Be(e,t){let n=1;for(let r=t;r<e.length;r+=1)if(e[r]==="["&&e[r-1]!=="\\"&&(n+=1),e[r]==="]"&&e[r-1]!=="\\"&&(n-=1,n===0))return r;return-1}function Dt(e,t){return bt(e,t)}function wt(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}var It=new Date(2001,8,3);function We(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function St(e){let t=T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It),n="";for(let r of t){if(r.type==="literal"){n+=r.value;continue}(r.type==="month"||r.type==="day"||r.type==="year")&&(n+=r.value.replace(/\d/g,"0"))}return n}function Rt(e){return e.replace(/\D/g,"")}function Et(e){return wt(Dt(e),{requiredOnly:!0})}function Ue(e){return e>=100?e:e>=69?1900+e:2e3+e}function kt(e,t){let n=We(t),r=0,i={};for(let a of n){let s=a==="year"?4:2,o=e.slice(r,r+s);if(o.length<s)return null;let l=Number(o);a==="year"&&(l=Ue(l)),i[a]=l,r+=s}return i}function Tt(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var ze=new Date(2001,8,3);function Mt(e){return T(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(ze).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Pt(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ot(e){let t=e.year,n=e.month,r=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r))return null;let i=new Date(t,n-1,r);return i.getFullYear()!==t||i.getMonth()!==n-1||i.getDate()!==r?null:i}function it(e,t){let n=(e??"").trim();if(!n)return null;let r=N(n);if(r)return r;let i=He(n,t);if(i)return i;let a=Ye(n,t);if(a)return a;let s=Mt(t),o=n.match(/\d+/g);if(!o||o.length<3)return null;let l={day:0,month:0,year:0};for(let f=0;f<3;f+=1){let m=s[f];if(!m)return null;let g=Number(o[f]);m==="year"&&(g=Pt(g)),l[m]=g}return Ot(l)}function He(e,t){let n=St(t),r=Rt(e);return r.length<Et(n)?null:Tt(kt(r,t)??{})}function qe(e){let t=new Map;for(let n of["short","long"])for(let r=0;r<12;r+=1){let i=T(e,{month:n}).formatToParts(new Date(2020,r,1)).find(a=>a.type==="month")?.value;i&&t.set(i.toLowerCase(),r+1)}return t}function Ye(e,t){let n=qe(t),r=e.toLowerCase();for(let[i,a]of n){if(r.indexOf(i)<0)continue;let o=e.match(/\d+/g);if(!o||o.length<2)continue;let l=o.find(v=>v.length===4)??o[o.length-1],f=o.find(v=>v!==l&&Number(v)<=31);if(!f||!l)continue;let m=Pt(Number(l)),g=Number(f);return Ot({year:m,month:a,day:g})}return null}import{jsx as U,jsxs as Ge}from"@ecopages/jsx/jsx-runtime";function Ct(...e){return e.filter(Boolean).join(" ")}function ot({class:e,size:t="sm",...n}){return Ge("svg",{...n,class:Ct("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[U("path",{d:"M8 2v4"}),U("path",{d:"M16 2v4"}),U("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),U("path",{d:"M3 10h18"})]})}function Ft(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var Ke={top:"bottom",bottom:"top",left:"right",right:"left"},Je=8;function Xe(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function Vt(e){return e==="top"||e==="bottom"?"y":"x"}function At(e,t,n,r,i){let{width:a,height:s}=t,o=0,l=0;switch(n){case"top":l=e.top-s-i;break;case"bottom":l=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return Vt(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?l=e.top:r==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:o,y:l}}function Qe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function Nt(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function Ze(e,t){return t==="center"?e:`${e}-${t}`}function tn(e,t,n,r){let{padding:i,width:a,height:s}=r;if(Vt(n)==="y"){let l=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),l),y:e.y}}let o=Math.max(i,s-i-t.height);return{x:e.x,y:Math.min(Math.max(e.y,i),o)}}function en(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Je}){let{side:a,align:s}=Xe(n),o=At(e,t,a,s,r),l=Qe(o,t,a,i),f=a,m=o;if(l>0){let g=Ke[a],v=At(e,t,g,s,r),V=Nt(e,t,a,i);Nt(e,t,g,i)>V&&(f=g,m=v)}return{coords:tn(m,t,f,i),placement:Ze(f,s)}}function nn(e,t,n,r,i={}){let{coords:a,placement:s}=en(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,r);return Object.assign(t.style,{position:"fixed",left:`${a.x}px`,top:`${a.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),i.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Lt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||nn(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function $t(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function jt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function Bt(e,t,n){return n instanceof Node?!jt(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let r=this.config.getAnchor();if(!r)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=$t(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Lt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return jt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Wt,Ut,zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te;function rn(e,t,n,r,i,a){var s,o,l,f,m,g,v,V=Symbol.metadata||Symbol.for("Symbol.metadata"),Y=Object.defineProperty,G=Object.create,st=[G(null),G(null)],lt=t.length;function L(u,D,_){return function(c,d){D&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,_?[d]:[]);return _?d:c}}function E(u,D,_,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(D+" must "+(_||"be")+" a function"+(c?"":" or undefined"));return u}function ut(u,D,_,c,d,w,M,b,S,R,dt){function K(h){if(!dt(h))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(D[0]),pt=D[3],X=!M,F=d===1,ft=d===3,ht=d===4,$=d===2;function j(h,O,yt){return function(W,xt){return O&&(xt=W,W=u),yt&&yt(W),p[h].call(W,xt)}}if(!X){var p={},Q=[],k=ft?"get":ht||F?"set":"value";if(S?(R||F?p={get:Me(function(){return pt(this)},c,"get"),set:function(h){D[4](this,h)}}:p[k]=pt,R||Me(p[k],c,$?"":k)):R||(p=Object.getOwnPropertyDescriptor(u,c)),!R&&!S){if((o=st[+b][c])&&(o^d)!==7)throw Error("Decorating two elements with the same name ("+p[k].name+") is not supported yet");st[+b][c]=d<3?1:d}}for(var y=u,B=J.length-1;B>=0;B-=_?2:1){var mt=E(J[B],"A decorator","be",!0),gt=_?J[B-1]:void 0,Z={},A={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(O,"An initializer","be",!0),w.push(O)}.bind(null,Z)};if(X)o=mt.call(gt,y,A),Z.v=1,E(o,"class decorators","return")&&(y=o);else if(A.static=b,A.private=S,o=A.access={has:S?dt.bind():function(h){return c in h}},ht||(o.get=S?$?function(h){return K(h),p.value}:j("get",0,K):function(h){return h[c]}),$||ft||(o.set=S?j("set",0,K):function(h,O){h[c]=O}),y=mt.call(gt,F?{get:p.get,set:p.set}:p[k],A),Z.v=1,F){if(typeof y=="object"&&y)(o=E(y.get,"accessor.get"))&&(p.get=o),(o=E(y.set,"accessor.set"))&&(p.set=o),(o=E(y.init,"accessor.init"))&&Q.unshift(o);else if(y!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(y,(R?"field":"method")+" decorators","return")&&(R?Q.unshift(y):p[k]=y)}return d<2&&M.push(L(Q,b,1),L(w,b,0)),R||X||(S?F?M.splice(-1,0,j("get",b),j("set",b)):M.push($?p[k]:E.call.bind(p[k])):Y(u,c,p)),y}function ct(u){return Y(u,V,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[V]),s=G(s??null),m=[],g=function(u){u&&m.push(L(u))},v=function(u,D){for(var _=0;_<n.length;_++){var c=n[_],d=c[1],w=7&d;if((8&d)==u&&!w==D){var M=c[2],b=!!c[3],S=16&d;ut(u?e:e.prototype,c,S,b?"#"+M:on(M),w,w<2?[]:u?f=f||[]:l=l||[],m,!!u,b,D,u&&b?function(R){return sn(R)===e}:i)}}},v(8,0),v(0,0),v(8,1),v(0,1),g(l),g(f),o=m,lt||ct(e),{e:o,get c(){var u=[];return lt&&[ct(e=ut(e,[t],r,e.name,5,u)),L(u,1)]}}}function on(e){var t=an(e,"string");return typeof t=="symbol"?t:t+""}function an(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Me(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function sn(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var q,Fe=class extends Pe{static{({e:[zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te,Wt],c:[q,Ut]}=rn(this,[ln("rui-date-range-picker")],[[x({type:String,reflect:!0,defaultValue:""}),0,"value"],[x({type:String,defaultValue:""}),0,"min"],[x({type:String,defaultValue:""}),0,"max"],[x({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[x({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[x({type:String,defaultValue:""}),0,"locale"],[x({type:String,attribute:"placeholder-start",defaultValue:""}),0,"placeholderStart"],[x({type:String,attribute:"placeholder-end",defaultValue:""}),0,"placeholderEnd"],[x({type:String,attribute:"start-name",defaultValue:""}),0,"startName"],[x({type:String,attribute:"end-name",defaultValue:""}),0,"endName"],[x({type:String,defaultValue:""}),0,"name"],[x({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[x({type:Number,attribute:"visible-months",defaultValue:2}),0,"visibleMonths"],[un({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[H,0,"open"],[H,0,"startDisplay"],[H,0,"endDisplay"],[H,0,"editing"],[Ce({ref:"root"}),0,"rootTarget"],[Ce({ref:"popover"}),0,"popoverTarget"],[Oe(["value","min","max","disabled","readOnly","locale","dateStyle","startName","endName","visibleMonths"]),2,"onPropsUpdated"],[Oe(["open"]),2,"onOpenUpdated"],[I({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[I({ref:"trigger",type:"click"}),2,"onTriggerClick"],[I({selector:"[data-range-start]",type:"focus"}),2,"onStartFocus"],[I({selector:"[data-range-end]",type:"focus"}),2,"onEndFocus"],[I({selector:"[data-range-start], [data-range-end]",type:"blur"}),2,"onInputBlur"],[I({selector:"[data-range-start], [data-range-end]",type:"input"}),2,"onInput"],[I({selector:"[data-range-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[I({ref:"root",type:"rui-change"}),2,"onCalendarChange"],[I({ref:"root",type:"keydown"}),2,"onRootKeydown"],[I({ref:"root",type:"focusout"}),2,"onRootFocusOut"]],0,void 0,Pe))}constructor(...t){super(...t),Te(this)}value=(Wt(this),zt(this));min=(Ht(this),qt(this));max=(Yt(this),Gt(this));disabled=(Kt(this),Jt(this));readOnly=(Xt(this),Qt(this));locale=(Zt(this),te(this));placeholderStart=(ee(this),ne(this));placeholderEnd=(re(this),ie(this));startName=(oe(this),ae(this));endName=(se(this),le(this));name=(ue(this),ce(this));dateStyle=(de(this),pe(this));visibleMonths=(fe(this),he(this));changeEvent=(me(this),ge(this));open=(ye(this),xe(this,!1));startDisplay=(ve(this),_e(this,""));endDisplay=(be(this),De(this,""));editing=(we(this),Ie(this,null));uid=(Se(this),Math.random().toString(36).slice(2,9));popoverController=null;suppressPopoverDismiss=!1;rootTarget=Re(this);popoverTarget=(Ee(this),ke(this));get resolvedLocale(){return Ft(this.locale)}get isoValue(){return this.value??""}getStartInput(){return this.querySelector("[data-range-start]")}getEndInput(){return this.querySelector("[data-range-end]")}formatIso(t){if(!t)return"";let n=N(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}syncDisplayValues(){if(this.editing==="start"||this.editing==="end")return;let t=C(this.isoValue);this.startDisplay=this.formatIso(t?.start??""),this.endDisplay=this.formatIso(t?.end??"");let n=this.getStartInput(),r=this.getEndInput();n&&(n.value=this.startDisplay),r&&(r.value=this.endDisplay)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitRange(t,n){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValues();return}if(n&&!this.isIsoAllowed(n)){this.syncDisplayValues();return}let r=t&&n?nt({start:t,end:n}):"";if(r===this.isoValue){this.syncDisplayValues();return}this.value=r,this.changeEvent.emit({value:r,start:t,end:n}),this.syncDisplayValues()}parseField(t){let n=(t??"").trim();if(!n)return"";let r=it(n,this.resolvedLocale);return r?tt(r):""}commitFromInputs(){let t=this.parseField(this.getStartInput()?.value??""),n=this.parseField(this.getEndInput()?.value??"");if(!t&&!n){this.commitRange("","");return}if(t&&n){this.commitRange(t,n);return}let r=C(this.isoValue);this.commitRange(t||r?.start||"",n||r?.end||"")}setOpen(t){this.open=t,queueMicrotask(()=>this.syncPopoverPosition())}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.rootTarget,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t||!this.rootTarget)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}wireInputNames(){let t=this.getStartInput(),n=this.getEndInput();t&&this.startName&&(t.name=this.startName),n&&this.endName&&(n.name=this.endName)}initialize(){this.wireInputNames(),this.syncDisplayValues(),this.setOpen(!1)}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.wireInputNames(),this.syncDisplayValues()}onOpenUpdated(){this.syncPopoverPosition()}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onStartFocus(){this.editing="start";let t=C(this.isoValue),n=this.getStartInput();n&&(n.value=t?.start?this.formatIso(t.start):"")}onEndFocus(){this.editing="end";let t=C(this.isoValue),n=this.getEndInput();n&&(n.value=t?.end?this.formatIso(t.end):"")}onInputBlur(){this.editing=null,this.commitFromInputs()}onInput(t){let n=t.target;if(n.matches("[data-range-start]")){this.startDisplay=n.value;return}this.endDisplay=n.value}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||n.tagName.toLowerCase()!=="rui-calendar")return;let r=t.detail;!r?.start||!r.end||(this.commitRange(r.start,r.end),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}onRootFocusOut(t){let n=t.relatedTarget;queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=n instanceof Node?n:document.activeElement;Bt(this.rootTarget,this.popoverTarget,r)&&this.setOpen(!1)})}render(){let t={"prop:selectionMode":"range","prop:visibleMonths":this.visibleMonths,"prop:value":this.isoValue,"prop:min":this.min,"prop:max":this.max,"prop:locale":this.locale,"prop:disabled":this.disabled};return at("div",{class:"rui-date-range-picker","data-ref":"root",children:[at("div",{class:"rui-date-range-picker__group",children:[at("div",{class:"rui-date-range-picker__values",children:[P("input",{type:"text",class:"rui-date-range-picker__input","data-range-start":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-start`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderStart||"Start date"}),P("span",{class:"rui-date-range-picker__separator","aria-hidden":"true",children:"\u2013"}),P("input",{type:"text",class:"rui-date-range-picker__input","data-range-end":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-end`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderEnd||"End date"})]}),P("button",{type:"button",class:"rui-control-toggle","data-ref":"trigger","data-range-trigger":!0,"aria-label":"Open calendar","aria-haspopup":"dialog","aria-expanded":this.$.open?"true":"false",disabled:this.$.disabled||this.$.readOnly,children:P(ot,{})})]}),P("div",{class:"rui-date-range-picker__popover rui-popover rui-floating","data-ref":"popover","data-range-popover":!0,hidden:!this.$.open,role:"dialog",children:this.$.open?P("rui-calendar",{...t}):null})]})}static{Ut()}};import{jsx as pn}from"@ecopages/jsx/jsx-runtime";var cn=Symbol.for("@ecopages/storybook-radiant.viewElement"),Ae=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ne=Symbol.for("@ecopages/storybook-radiant.scriptExport");function dn(e,t){e[cn]=t;let n=t[Ae];n&&(e[Ae]=n,e[Ne]=t[Ne]??t.name)}function Ve(e,t,n){let r=i=>t(i);return dn(r,e),r}var fn=Ve(q,({children:e,...t})=>pn("rui-date-range-picker",{...t,children:e}),{stylesheets:["./date-range-picker.css","../shared/control-toggle.css","../../../lib/icons/icons.css","../calendar/calendar.css"]});export{fn as RuiDateRangePicker,q as RuiDateRangePickerElement};
|
|
1
|
+
import{jsx as P,jsxs as at}from"@ecopages/jsx/jsx-runtime";import{RadiantElement as Pe,customElement as ln,event as un,onEvent as I,onUpdated as Oe,prop as x,query as Ce,state as H}from"@ecopages/radiant";function N(e){if(e==null)return null;let t=/^(\d{4})-(\d{2})-(\d{2})$/.exec(e.trim());if(!t)return null;let n=Number(t[1]),r=Number(t[2])-1,i=Number(t[3]),a=new Date(n,r,i);return a.getFullYear()!==n||a.getMonth()!==r||a.getDate()!==i?null:a}function tt(e){let t=e.getFullYear(),n=String(e.getMonth()+1).padStart(2,"0"),r=String(e.getDate()).padStart(2,"0");return`${t}-${n}-${r}`}function vt(e,t){return e.localeCompare(t)}function et(e,t){return vt(e,t)<=0?{start:e,end:t}:{start:t,end:e}}function C(e){if(!e)return null;let[t,n]=e.split("/");return!t||!n?null:et(t,n)}function nt(e){if(!e)return"";let t=et(e.start,e.end);return`${t.start}/${t.end}`}var _t=new Map;function Le(e,t){return`${JSON.stringify(e??null)}|${JSON.stringify(t)}`}function T(e,t){let n=Le(e,t),r=_t.get(n);if(r)return r;let i=new Intl.DateTimeFormat(e,t);return _t.set(n,i),i}function rt(e,t,n="medium"){return T(t,{dateStyle:n}).format(e)}var $e={0:"digit",a:"letter","*":"any"};function je(e,t){let n=t?.[e];if(n instanceof RegExp)return{kind:"any",pattern:n};if(n)return{kind:n};let r=$e[e];return r?{kind:r}:null}function bt(e,t,n=!1){let r=[],i=0;for(;i<e.length;){let a=e[i];if(a==="\\"){let o=e[i+1];o&&r.push({type:"literal",value:o}),i+=2;continue}if(a==="{"){let o=e.indexOf("}",i+1);if(o<0){r.push({type:"literal",value:"{"}),i+=1;continue}r.push({type:"fixed",value:e.slice(i+1,o)}),i=o+1;continue}if(a==="["){let o=Be(e,i+1);if(o<0){r.push({type:"literal",value:"["}),i+=1;continue}let l=bt(e.slice(i+1,o),t,!0);r.push(...l),i=o+1;continue}if(a==="]")break;let s=je(a,t);if(s){r.push({type:"input",definition:a,kind:s.kind,pattern:s.pattern,optional:n}),i+=1;continue}r.push({type:"literal",value:a}),i+=1}return r}function Be(e,t){let n=1;for(let r=t;r<e.length;r+=1)if(e[r]==="["&&e[r-1]!=="\\"&&(n+=1),e[r]==="]"&&e[r-1]!=="\\"&&(n-=1,n===0))return r;return-1}function Dt(e,t){return bt(e,t)}function wt(e,t={}){return e.filter(n=>n.type==="input"&&(!t.requiredOnly||!n.optional)).length}var It=new Date(2001,8,3);function We(e){return T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It).filter(t=>t.type==="year"||t.type==="month"||t.type==="day").map(t=>t.type)}function St(e){let t=T(e,{year:"numeric",month:"2-digit",day:"2-digit"}).formatToParts(It),n="";for(let r of t){if(r.type==="literal"){n+=r.value;continue}(r.type==="month"||r.type==="day"||r.type==="year")&&(n+=r.value.replace(/\d/g,"0"))}return n}function Rt(e){return e.replace(/\D/g,"")}function Et(e){return wt(Dt(e),{requiredOnly:!0})}function Ue(e){return e>=100?e:e>=69?1900+e:2e3+e}function kt(e,t){let n=We(t),r=0,i={};for(let a of n){let s=a==="year"?4:2,o=e.slice(r,r+s);if(o.length<s)return null;let l=Number(o);a==="year"&&(l=Ue(l)),i[a]=l,r+=s}return i}function Tt(e){if(e.year==null||e.month==null||e.day==null)return null;let t=new Date(e.year,e.month-1,e.day);return t.getFullYear()!==e.year||t.getMonth()!==e.month-1||t.getDate()!==e.day?null:t}var ze=new Date(2001,8,3);function Mt(e){return T(e,{year:"numeric",month:"numeric",day:"numeric"}).formatToParts(ze).filter(n=>n.type==="year"||n.type==="month"||n.type==="day").map(n=>n.type)}function Pt(e){return e>=100?e:e>=69?1900+e:2e3+e}function Ot(e){let t=e.year,n=e.month,r=e.day;if(!Number.isFinite(t)||!Number.isFinite(n)||!Number.isFinite(r))return null;let i=new Date(t,n-1,r);return i.getFullYear()!==t||i.getMonth()!==n-1||i.getDate()!==r?null:i}function it(e,t){let n=(e??"").trim();if(!n)return null;let r=N(n);if(r)return r;let i=He(n,t);if(i)return i;let a=Ye(n,t);if(a)return a;let s=Mt(t),o=n.match(/\d+/g);if(!o||o.length<3)return null;let l={day:0,month:0,year:0};for(let f=0;f<3;f+=1){let m=s[f];if(!m)return null;let g=Number(o[f]);m==="year"&&(g=Pt(g)),l[m]=g}return Ot(l)}function He(e,t){let n=St(t),r=Rt(e);return r.length<Et(n)?null:Tt(kt(r,t)??{})}function qe(e){let t=new Map;for(let n of["short","long"])for(let r=0;r<12;r+=1){let i=T(e,{month:n}).formatToParts(new Date(2020,r,1)).find(a=>a.type==="month")?.value;i&&t.set(i.toLowerCase(),r+1)}return t}function Ye(e,t){let n=qe(t),r=e.toLowerCase();for(let[i,a]of n){if(r.indexOf(i)<0)continue;let o=e.match(/\d+/g);if(!o||o.length<2)continue;let l=o.find(v=>v.length===4)??o[o.length-1],f=o.find(v=>v!==l&&Number(v)<=31);if(!f||!l)continue;let m=Pt(Number(l)),g=Number(f);return Ot({year:m,month:a,day:g})}return null}import{jsx as U,jsxs as Ge}from"@ecopages/jsx/jsx-runtime";function Ct(...e){return e.filter(Boolean).join(" ")}function ot({class:e,size:t="sm",...n}){return Ge("svg",{...n,class:Ct("rui-icon",t==="md"&&"rui-icon--md",e),viewBox:"0 0 24 24",fill:"none",stroke:"currentColor","stroke-width":"2","stroke-linecap":"round","stroke-linejoin":"round","aria-hidden":"true",children:[U("path",{d:"M8 2v4"}),U("path",{d:"M16 2v4"}),U("rect",{width:"18",height:"18",x:"3",y:"4",rx:"2"}),U("path",{d:"M3 10h18"})]})}function Ft(e){if(!e)return;let t=e.split(",").map(n=>n.trim()).filter(Boolean);return t.length>1?t:t[0]}var Ke={top:"bottom",bottom:"top",left:"right",right:"left"},Je=8;function Xe(e){let t=e.indexOf("-");if(t===-1)return{side:e,align:"center"};let n=e.slice(0,t),r=e.slice(t+1);return{side:n,align:r==="start"||r==="end"?r:"center"}}function Vt(e){return e==="top"||e==="bottom"?"y":"x"}function At(e,t,n,r,i){let{width:a,height:s}=t,o=0,l=0;switch(n){case"top":l=e.top-s-i;break;case"bottom":l=e.bottom+i;break;case"left":o=e.left-a-i;break;case"right":o=e.right+i;break}return Vt(n)==="y"?r==="start"?o=e.left:r==="end"?o=e.right-a:o=e.left+(e.width-a)/2:r==="start"?l=e.top:r==="end"?l=e.bottom-s:l=e.top+(e.height-s)/2,{x:o,y:l}}function Qe(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?Math.max(0,i-e.y):n==="bottom"?Math.max(0,e.y+t.height-(s-i)):n==="left"?Math.max(0,i-e.x):Math.max(0,e.x+t.width-(a-i))}function Nt(e,t,n,r){let{padding:i,width:a,height:s}=r;return n==="top"?e.top-i-t.height:n==="bottom"?s-i-t.height-e.bottom:n==="left"?e.left-i-t.width:a-i-t.width-e.right}function Ze(e,t){return t==="center"?e:`${e}-${t}`}function tn(e,t,n,r){let{padding:i,width:a,height:s}=r;if(Vt(n)==="y"){let l=Math.max(i,a-i-t.width);return{x:Math.min(Math.max(e.x,i),l),y:e.y}}let o=Math.max(i,s-i-t.height);return{x:e.x,y:Math.min(Math.max(e.y,i),o)}}function en(e,t,n,r,i={width:typeof window>"u"?0:window.innerWidth,height:typeof window>"u"?0:window.innerHeight,padding:Je}){let{side:a,align:s}=Xe(n),o=At(e,t,a,s,r),l=Qe(o,t,a,i),f=a,m=o;if(l>0){let g=Ke[a],v=At(e,t,g,s,r),V=Nt(e,t,a,i);Nt(e,t,g,i)>V&&(f=g,m=v)}return{coords:tn(m,t,f,i),placement:Ze(f,s)}}function nn(e,t,n,r,i={}){let{coords:a,placement:s}=en(e.getBoundingClientRect(),{width:t.offsetWidth,height:t.offsetHeight},n,r);return Object.assign(t.style,{position:"fixed",left:`${a.x}px`,top:`${a.y}px`,right:"auto",bottom:"auto",visibility:"visible"}),i.matchAnchorWidth&&(t.style.width=`${e.offsetWidth}px`),t.setAttribute("data-placement",s),s}function Lt({anchor:e,floating:t,getPlacement:n,gap:r,matchAnchorWidth:i}){let a=()=>{t.hidden||nn(e,t,n(),r,{matchAnchorWidth:i})};a(),window.addEventListener("resize",a),window.addEventListener("scroll",a,!0);let s=new ResizeObserver(a);return s.observe(e),s.observe(t),()=>{window.removeEventListener("resize",a),window.removeEventListener("scroll",a,!0),s.disconnect()}}function $t(e,t=document.body){let n=e.parentNode;if(!n)return{unmount:()=>{}};let r=document.createComment("rui-portal");return n.insertBefore(r,e),t.appendChild(e),{unmount:()=>{let i=r.parentNode;i&&(i.insertBefore(e,r),r.remove())}}}function jt(e,t,n){return n?!!(e?.contains(n)||t?.contains(n)):!1}function Bt(e,t,n){return n instanceof Node?!jt(e,t,n):!0}var z=class{config;cleanupFloating=null;portalHandle=null;floatingElement=null;constructor(t){this.config=t}updateConfig(t){this.config={...this.config,...t}}sync(){let t=this.resolveFloating();if(!t)return;if(!this.config.getOpen()){this.teardown(),t.hidden=!0;return}let r=this.config.getAnchor();if(!r)return;t.hidden=!1,this.config.portal!==!1?this.portalHandle||(this.portalHandle=$t(t,this.config.portalContainer??document.body)):this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null),this.teardownFloating(),this.cleanupFloating=Lt({anchor:r,floating:t,getPlacement:this.config.getPlacement,gap:this.config.gap??8,matchAnchorWidth:this.config.matchAnchorWidth})}contains(t){return jt(this.config.getAnchor(),this.resolveFloating(),t)}getFloatingElement(){return this.resolveFloating()}teardown(){this.teardownFloating(),this.portalHandle&&(this.portalHandle.unmount(),this.portalHandle=null)}destroy(){this.teardown(),this.floatingElement=null}resolveFloating(){let t=this.config.getFloating();return t&&(this.floatingElement=t),t??this.floatingElement}teardownFloating(){this.cleanupFloating?.(),this.cleanupFloating=null}};var Wt,Ut,zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te;function rn(e,t,n,r,i,a){var s,o,l,f,m,g,v,V=Symbol.metadata||Symbol.for("Symbol.metadata"),Y=Object.defineProperty,G=Object.create,st=[G(null),G(null)],lt=t.length;function L(u,D,_){return function(c,d){D&&(d=c,c=e);for(var w=0;w<u.length;w++)d=u[w].apply(c,_?[d]:[]);return _?d:c}}function E(u,D,_,c){if(typeof u!="function"&&(c||u!==void 0))throw new TypeError(D+" must "+(_||"be")+" a function"+(c?"":" or undefined"));return u}function ut(u,D,_,c,d,w,M,b,S,R,dt){function K(h){if(!dt(h))throw new TypeError("Attempted to access private element on non-instance")}var J=[].concat(D[0]),pt=D[3],X=!M,F=d===1,ft=d===3,ht=d===4,$=d===2;function j(h,O,yt){return function(W,xt){return O&&(xt=W,W=u),yt&&yt(W),p[h].call(W,xt)}}if(!X){var p={},Q=[],k=ft?"get":ht||F?"set":"value";if(S?(R||F?p={get:Me(function(){return pt(this)},c,"get"),set:function(h){D[4](this,h)}}:p[k]=pt,R||Me(p[k],c,$?"":k)):R||(p=Object.getOwnPropertyDescriptor(u,c)),!R&&!S){if((o=st[+b][c])&&(o^d)!==7)throw Error("Decorating two elements with the same name ("+p[k].name+") is not supported yet");st[+b][c]=d<3?1:d}}for(var y=u,B=J.length-1;B>=0;B-=_?2:1){var mt=E(J[B],"A decorator","be",!0),gt=_?J[B-1]:void 0,Z={},A={kind:["field","accessor","method","getter","setter","class"][d],name:c,metadata:s,addInitializer:function(h,O){if(h.v)throw new TypeError("attempted to call addInitializer after decoration was finished");E(O,"An initializer","be",!0),w.push(O)}.bind(null,Z)};if(X)o=mt.call(gt,y,A),Z.v=1,E(o,"class decorators","return")&&(y=o);else if(A.static=b,A.private=S,o=A.access={has:S?dt.bind():function(h){return c in h}},ht||(o.get=S?$?function(h){return K(h),p.value}:j("get",0,K):function(h){return h[c]}),$||ft||(o.set=S?j("set",0,K):function(h,O){h[c]=O}),y=mt.call(gt,F?{get:p.get,set:p.set}:p[k],A),Z.v=1,F){if(typeof y=="object"&&y)(o=E(y.get,"accessor.get"))&&(p.get=o),(o=E(y.set,"accessor.set"))&&(p.set=o),(o=E(y.init,"accessor.init"))&&Q.unshift(o);else if(y!==void 0)throw new TypeError("accessor decorators must return an object with get, set, or init properties or undefined")}else E(y,(R?"field":"method")+" decorators","return")&&(R?Q.unshift(y):p[k]=y)}return d<2&&M.push(L(Q,b,1),L(w,b,0)),R||X||(S?F?M.splice(-1,0,j("get",b),j("set",b)):M.push($?p[k]:E.call.bind(p[k])):Y(u,c,p)),y}function ct(u){return Y(u,V,{configurable:!0,enumerable:!0,value:s})}return a!==void 0&&(s=a[V]),s=G(s??null),m=[],g=function(u){u&&m.push(L(u))},v=function(u,D){for(var _=0;_<n.length;_++){var c=n[_],d=c[1],w=7&d;if((8&d)==u&&!w==D){var M=c[2],b=!!c[3],S=16&d;ut(u?e:e.prototype,c,S,b?"#"+M:on(M),w,w<2?[]:u?f=f||[]:l=l||[],m,!!u,b,D,u&&b?function(R){return sn(R)===e}:i)}}},v(8,0),v(0,0),v(8,1),v(0,1),g(l),g(f),o=m,lt||ct(e),{e:o,get c(){var u=[];return lt&&[ct(e=ut(e,[t],r,e.name,5,u)),L(u,1)]}}}function on(e){var t=an(e,"string");return typeof t=="symbol"?t:t+""}function an(e,t){if(typeof e!="object"||!e)return e;var n=e[Symbol.toPrimitive];if(n!==void 0){var r=n.call(e,t||"default");if(typeof r!="object")return r;throw new TypeError("@@toPrimitive must return a primitive value.")}return(t==="string"?String:Number)(e)}function Me(e,t,n){typeof t=="symbol"&&(t=(t=t.description)?"["+t+"]":"");try{Object.defineProperty(e,"name",{configurable:!0,value:n?n+" "+t:t})}catch{}return e}function sn(e){if(Object(e)!==e)throw TypeError("right-hand side of 'in' should be an object, got "+(e!==null?typeof e:"null"));return e}var q,Fe=class extends Pe{static{({e:[zt,Ht,qt,Yt,Gt,Kt,Jt,Xt,Qt,Zt,te,ee,ne,re,ie,oe,ae,se,le,ue,ce,de,pe,fe,he,me,ge,ye,xe,ve,_e,be,De,we,Ie,Se,Re,Ee,ke,Te,Wt],c:[q,Ut]}=rn(this,[ln("rui-date-range-picker")],[[x({type:String,reflect:!0,defaultValue:""}),0,"value"],[x({type:String,defaultValue:""}),0,"min"],[x({type:String,defaultValue:""}),0,"max"],[x({type:Boolean,reflect:!0,defaultValue:!1}),0,"disabled"],[x({type:Boolean,attribute:"read-only",reflect:!0,defaultValue:!1}),0,"readOnly"],[x({type:String,defaultValue:""}),0,"locale"],[x({type:String,attribute:"placeholder-start",defaultValue:""}),0,"placeholderStart"],[x({type:String,attribute:"placeholder-end",defaultValue:""}),0,"placeholderEnd"],[x({type:String,attribute:"start-name",defaultValue:""}),0,"startName"],[x({type:String,attribute:"end-name",defaultValue:""}),0,"endName"],[x({type:String,defaultValue:""}),0,"name"],[x({type:String,attribute:"date-style",defaultValue:"medium"}),0,"dateStyle"],[x({type:Number,attribute:"visible-months",defaultValue:2}),0,"visibleMonths"],[un({name:"rui-change",bubbles:!0,composed:!0}),0,"changeEvent"],[H,0,"open"],[H,0,"startDisplay"],[H,0,"endDisplay"],[H,0,"editing"],[Ce({ref:"root"}),0,"rootTarget"],[Ce({ref:"popover"}),0,"popoverTarget"],[Oe(["value","min","max","disabled","readOnly","locale","dateStyle","startName","endName","visibleMonths"]),2,"onPropsUpdated"],[Oe(["open"]),2,"onOpenUpdated"],[I({ref:"trigger",type:"pointerdown"}),2,"onTriggerPointerDown"],[I({ref:"trigger",type:"click"}),2,"onTriggerClick"],[I({selector:"[data-range-start]",type:"focus"}),2,"onStartFocus"],[I({selector:"[data-range-end]",type:"focus"}),2,"onEndFocus"],[I({selector:"[data-range-start], [data-range-end]",type:"blur"}),2,"onInputBlur"],[I({selector:"[data-range-start], [data-range-end]",type:"input"}),2,"onInput"],[I({selector:"[data-range-popover]",type:"mousedown"}),2,"onPopoverMouseDown"],[I({ref:"root",type:"rui-change"}),2,"onCalendarChange"],[I({ref:"root",type:"keydown"}),2,"onRootKeydown"],[I({ref:"root",type:"focusout"}),2,"onRootFocusOut"]],0,void 0,Pe))}constructor(...t){super(...t),Te(this)}value=(Wt(this),zt(this));min=(Ht(this),qt(this));max=(Yt(this),Gt(this));disabled=(Kt(this),Jt(this));readOnly=(Xt(this),Qt(this));locale=(Zt(this),te(this));placeholderStart=(ee(this),ne(this));placeholderEnd=(re(this),ie(this));startName=(oe(this),ae(this));endName=(se(this),le(this));name=(ue(this),ce(this));dateStyle=(de(this),pe(this));visibleMonths=(fe(this),he(this));changeEvent=(me(this),ge(this));open=(ye(this),xe(this,!1));startDisplay=(ve(this),_e(this,""));endDisplay=(be(this),De(this,""));editing=(we(this),Ie(this,null));uid=(Se(this),Math.random().toString(36).slice(2,9));popoverController=null;suppressPopoverDismiss=!1;rootTarget=Re(this);popoverTarget=(Ee(this),ke(this));get resolvedLocale(){return Ft(this.locale)}get isoValue(){return this.value??""}getStartInput(){return this.querySelector("[data-range-start]")}getEndInput(){return this.querySelector("[data-range-end]")}formatIso(t){if(!t)return"";let n=N(t);return n?rt(n,this.resolvedLocale,this.dateStyle):""}syncDisplayValues(){if(this.editing==="start"||this.editing==="end")return;let t=C(this.isoValue);this.startDisplay=this.formatIso(t?.start??""),this.endDisplay=this.formatIso(t?.end??"");let n=this.getStartInput(),r=this.getEndInput();n&&(n.value=this.startDisplay),r&&(r.value=this.endDisplay)}isIsoAllowed(t){return!(this.min&&t<this.min||this.max&&t>this.max)}commitRange(t,n){if(t&&!this.isIsoAllowed(t)){this.syncDisplayValues();return}if(n&&!this.isIsoAllowed(n)){this.syncDisplayValues();return}let r=t&&n?nt({start:t,end:n}):"";if(r===this.isoValue){this.syncDisplayValues();return}this.value=r,this.changeEvent.emit({value:r,start:t,end:n}),this.syncDisplayValues()}parseField(t){let n=(t??"").trim();if(!n)return"";let r=it(n,this.resolvedLocale);return r?tt(r):""}commitFromInputs(){let t=this.parseField(this.getStartInput()?.value??""),n=this.parseField(this.getEndInput()?.value??"");if(!t&&!n){this.commitRange("","");return}if(t&&n){this.commitRange(t,n);return}let r=C(this.isoValue);this.commitRange(t||r?.start||"",n||r?.end||"")}setOpen(t){this.open=t,queueMicrotask(()=>this.syncPopoverPosition())}ensurePopoverController(){return this.popoverController||(this.popoverController=new z({getAnchor:()=>this.rootTarget,getFloating:()=>this.popoverTarget,getOpen:()=>this.open,getPlacement:()=>"bottom-start",gap:4,portal:!1})),this.popoverController}syncPopoverPosition(){let t=this.popoverTarget;if(!t||!this.rootTarget)return;t.hidden=!this.open;let n=this.ensurePopoverController();n.updateConfig({getOpen:()=>this.open}),n.sync()}wireInputNames(){let t=this.getStartInput(),n=this.getEndInput();t&&this.startName&&(t.name=this.startName),n&&this.endName&&(n.name=this.endName)}initialize(){this.wireInputNames(),this.syncDisplayValues(),this.setOpen(!1)}connectedCallback(){super.connectedCallback(),queueMicrotask(()=>this.initialize())}disconnectedCallback(){this.popoverController?.destroy(),this.popoverController=null,super.disconnectedCallback()}onPropsUpdated(){this.wireInputNames(),this.syncDisplayValues()}onOpenUpdated(){this.syncPopoverPosition()}onTriggerPointerDown(){this.suppressPopoverDismiss=!0}onTriggerClick(){this.disabled||this.readOnly||this.setOpen(!this.open)}onStartFocus(){this.editing="start";let t=C(this.isoValue),n=this.getStartInput();n&&(n.value=t?.start?this.formatIso(t.start):"")}onEndFocus(){this.editing="end";let t=C(this.isoValue),n=this.getEndInput();n&&(n.value=t?.end?this.formatIso(t.end):"")}onInputBlur(){this.editing=null,this.commitFromInputs()}onInput(t){let n=t.target;if(n.matches("[data-range-start]")){this.startDisplay=n.value;return}this.endDisplay=n.value}onPopoverMouseDown(t){t.preventDefault()}onCalendarChange(t){let n=t.target;if(!(n instanceof HTMLElement)||n.tagName.toLowerCase()!=="rui-calendar")return;let r=t.detail;!r?.start||!r.end||(this.commitRange(r.start,r.end),this.setOpen(!1))}onRootKeydown(t){t.key==="Escape"&&this.open&&(t.preventDefault(),this.setOpen(!1))}onRootFocusOut(t){let n=t.relatedTarget;queueMicrotask(()=>{if(this.suppressPopoverDismiss){this.suppressPopoverDismiss=!1;return}if(!this.open)return;let r=n instanceof Node?n:document.activeElement;Bt(this.rootTarget,this.popoverTarget,r)&&this.setOpen(!1)})}render(){let t={"prop:selectionMode":"range","prop:visibleMonths":this.visibleMonths,"prop:value":this.isoValue,"prop:min":this.min,"prop:max":this.max,"prop:locale":this.locale,"prop:disabled":this.disabled};return at("div",{class:"rui-date-range-picker","data-ref":"root",children:[at("div",{class:"rui-date-range-picker__group",children:[at("div",{class:"rui-date-range-picker__values",children:[P("input",{type:"text",class:"rui-date-range-picker__input","data-range-start":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-start`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderStart||"Start date"}),P("span",{class:"rui-date-range-picker__separator","aria-hidden":"true",children:"\u2013"}),P("input",{type:"text",class:"rui-date-range-picker__input","data-range-end":!0,"data-rui-control":!0,"data-rui-control-type":"text",id:`${this.uid}-end`,autocomplete:"off",disabled:this.$.disabled,readOnly:this.$.readOnly,placeholder:this.placeholderEnd||"End date"})]}),P("button",{type:"button",class:"rui-control-toggle","data-ref":"trigger","data-range-trigger":!0,"aria-label":"Open calendar","aria-haspopup":"dialog","aria-expanded":this.open?"true":"false",disabled:this.$.disabled||this.$.readOnly,children:P(ot,{})})]}),P("div",{class:"rui-date-range-picker__popover rui-popover rui-floating","data-ref":"popover","data-range-popover":!0,hidden:!this.open,role:"dialog",children:this.open?P("rui-calendar",{...t}):null})]})}static{Ut()}};import{jsx as pn}from"@ecopages/jsx/jsx-runtime";var cn=Symbol.for("@ecopages/storybook-radiant.viewElement"),Ae=Symbol.for("@ecopages/storybook-radiant.scriptModule"),Ne=Symbol.for("@ecopages/storybook-radiant.scriptExport");function dn(e,t){e[cn]=t;let n=t[Ae];n&&(e[Ae]=n,e[Ne]=t[Ne]??t.name)}function Ve(e,t,n){let r=i=>t(i);return dn(r,e),r}var fn=Ve(q,({children:e,...t})=>pn("rui-date-range-picker",{...t,children:e}),{stylesheets:["./date-range-picker.css","../shared/control-toggle.css","../../../lib/icons/icons.css","../calendar/calendar.css"]});export{fn as RuiDateRangePicker,q as RuiDateRangePickerElement};
|
|
2
2
|
//# sourceMappingURL=index.js.map
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"version": 3,
|
|
3
3
|
"sources": ["../../../../src/components/ui/date-range-picker/date-range-picker.script.tsx", "../../../../src/lib/intl-date/iso.ts", "../../../../src/lib/intl-date/selection.ts", "../../../../src/lib/intl-date/formatters.ts", "../../../../src/lib/mask/input-mask.ts", "../../../../src/lib/mask/date-mask.ts", "../../../../src/lib/intl-date/parts.ts", "../../../../src/lib/icons/calendar.tsx", "../../../../src/lib/cx.ts", "../../../../src/lib/intl/locale.ts", "../../../../src/components/ui/shared/floating-position.ts", "../../../../src/components/ui/shared/portal.ts", "../../../../src/components/ui/shared/popover-controller.ts", "../../../../src/components/ui/date-range-picker/date-range-picker.tsx", "../../../../src/lib/radiant-view.ts"],
|
|
4
|
-
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_locale, _init_extra_locale, _init_placeholderStart, _init_extra_placeholderStart, _init_placeholderEnd, _init_extra_placeholderEnd, _init_startName, _init_extra_startName, _init_endName, _init_extra_endName, _init_name, _init_extra_name, _init_dateStyle, _init_extra_dateStyle, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_startDisplay, _init_extra_startDisplay, _init_endDisplay, _init_extra_endDisplay, _init_editing, _init_extra_editing, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { dateToIso, formatDisplayDate, isoToDate, parseLocaleDateString, parseIsoRange, serializeIsoRange } from \"@/lib/intl-date\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport \"../calendar/calendar.script\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nlet _RuiDateRangePicker;\nclass RuiDateRangePicker extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_locale, _init_extra_locale, _init_placeholderStart, _init_extra_placeholderStart, _init_placeholderEnd, _init_extra_placeholderEnd, _init_startName, _init_extra_startName, _init_endName, _init_extra_endName, _init_name, _init_extra_name, _init_dateStyle, _init_extra_dateStyle, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_startDisplay, _init_extra_startDisplay, _init_endDisplay, _init_extra_endDisplay, _init_editing, _init_extra_editing, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateRangePicker, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-range-picker\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"placeholder-start\",\n defaultValue: \"\"\n }), 0, \"placeholderStart\"], [prop({\n type: String,\n attribute: \"placeholder-end\",\n defaultValue: \"\"\n }), 0, \"placeholderEnd\"], [prop({\n type: String,\n attribute: \"start-name\",\n defaultValue: \"\"\n }), 0, \"startName\"], [prop({\n type: String,\n attribute: \"end-name\",\n defaultValue: \"\"\n }), 0, \"endName\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: String,\n attribute: \"date-style\",\n defaultValue: \"medium\"\n }), 0, \"dateStyle\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 2\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"open\"], [state, 0, \"startDisplay\"], [state, 0, \"endDisplay\"], [state, 0, \"editing\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"disabled\", \"readOnly\", \"locale\", \"dateStyle\", \"startName\", \"endName\", \"visibleMonths\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-range-start]\",\n type: \"focus\"\n }), 2, \"onStartFocus\"], [onEvent({\n selector: \"[data-range-end]\",\n type: \"focus\"\n }), 2, \"onEndFocus\"], [onEvent({\n selector: \"[data-range-start], [data-range-end]\",\n type: \"blur\"\n }), 2, \"onInputBlur\"], [onEvent({\n selector: \"[data-range-start], [data-range-end]\",\n type: \"input\"\n }), 2, \"onInput\"], [onEvent({\n selector: \"[data-range-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n ref: \"root\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_popoverTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n locale = (_init_extra_readOnly(this), _init_locale(this));\n placeholderStart = (_init_extra_locale(this), _init_placeholderStart(this));\n placeholderEnd = (_init_extra_placeholderStart(this), _init_placeholderEnd(this));\n startName = (_init_extra_placeholderEnd(this), _init_startName(this));\n endName = (_init_extra_startName(this), _init_endName(this));\n name = (_init_extra_endName(this), _init_name(this));\n dateStyle = (_init_extra_name(this), _init_dateStyle(this));\n visibleMonths = (_init_extra_dateStyle(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), _init_open(this, false));\n startDisplay = (_init_extra_open(this), _init_startDisplay(this, \"\"));\n endDisplay = (_init_extra_startDisplay(this), _init_endDisplay(this, \"\"));\n editing = (_init_extra_endDisplay(this), _init_editing(this, null));\n uid = (_init_extra_editing(this), Math.random().toString(36).slice(2, 9));\n popoverController = null;\n suppressPopoverDismiss = false;\n rootTarget = _init_rootTarget(this);\n popoverTarget = (_init_extra_rootTarget(this), _init_popoverTarget(this));\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get isoValue() {\n return this.value ?? \"\";\n }\n getStartInput() {\n return this.querySelector(\"[data-range-start]\");\n }\n getEndInput() {\n return this.querySelector(\"[data-range-end]\");\n }\n formatIso(iso) {\n if (!iso) {\n return \"\";\n }\n const date = isoToDate(iso);\n return date ? formatDisplayDate(date, this.resolvedLocale, this.dateStyle) : \"\";\n }\n syncDisplayValues() {\n if (this.editing === \"start\" || this.editing === \"end\") {\n return;\n }\n const range = parseIsoRange(this.isoValue);\n this.startDisplay = this.formatIso(range?.start ?? \"\");\n this.endDisplay = this.formatIso(range?.end ?? \"\");\n const startInput = this.getStartInput();\n const endInput = this.getEndInput();\n if (startInput) {\n startInput.value = this.startDisplay;\n }\n if (endInput) {\n endInput.value = this.endDisplay;\n }\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n commitRange(start, end) {\n if (start && !this.isIsoAllowed(start)) {\n this.syncDisplayValues();\n return;\n }\n if (end && !this.isIsoAllowed(end)) {\n this.syncDisplayValues();\n return;\n }\n const serialized = start && end ? serializeIsoRange({\n start,\n end\n }) : \"\";\n if (serialized === this.isoValue) {\n this.syncDisplayValues();\n return;\n }\n this.value = serialized;\n this.changeEvent.emit({\n value: serialized,\n start,\n end\n });\n this.syncDisplayValues();\n }\n parseField(raw) {\n const trimmed = (raw ?? \"\").trim();\n if (!trimmed) {\n return \"\";\n }\n const parsed = parseLocaleDateString(trimmed, this.resolvedLocale);\n return parsed ? dateToIso(parsed) : \"\";\n }\n commitFromInputs() {\n const start = this.parseField(this.getStartInput()?.value ?? \"\");\n const end = this.parseField(this.getEndInput()?.value ?? \"\");\n if (!start && !end) {\n this.commitRange(\"\", \"\");\n return;\n }\n if (start && end) {\n this.commitRange(start, end);\n return;\n }\n const range = parseIsoRange(this.isoValue);\n this.commitRange(start || range?.start || \"\", end || range?.end || \"\");\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => this.syncPopoverPosition());\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopoverPosition() {\n const popover = this.popoverTarget;\n if (!popover || !this.rootTarget) {\n return;\n }\n popover.hidden = !this.open;\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getOpen: () => this.open\n });\n controller.sync();\n }\n wireInputNames() {\n const startInput = this.getStartInput();\n const endInput = this.getEndInput();\n if (startInput && this.startName) {\n startInput.name = this.startName;\n }\n if (endInput && this.endName) {\n endInput.name = this.endName;\n }\n }\n initialize() {\n this.wireInputNames();\n this.syncDisplayValues();\n this.setOpen(false);\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.wireInputNames();\n this.syncDisplayValues();\n }\n onOpenUpdated() {\n this.syncPopoverPosition();\n }\n onTriggerPointerDown() {\n this.suppressPopoverDismiss = true;\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onStartFocus() {\n this.editing = \"start\";\n const range = parseIsoRange(this.isoValue);\n const input = this.getStartInput();\n if (input) {\n input.value = range?.start ? this.formatIso(range.start) : \"\";\n }\n }\n onEndFocus() {\n this.editing = \"end\";\n const range = parseIsoRange(this.isoValue);\n const input = this.getEndInput();\n if (input) {\n input.value = range?.end ? this.formatIso(range.end) : \"\";\n }\n }\n onInputBlur() {\n this.editing = null;\n this.commitFromInputs();\n }\n onInput(event2) {\n const input = event2.target;\n if (input.matches(\"[data-range-start]\")) {\n this.startDisplay = input.value;\n return;\n }\n this.endDisplay = input.value;\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || target.tagName.toLowerCase() !== \"rui-calendar\") {\n return;\n }\n const detail = event2.detail;\n if (!detail?.start || !detail.end) {\n return;\n }\n this.commitRange(detail.start, detail.end);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n onRootFocusOut(event2) {\n const relatedTarget = event2.relatedTarget;\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.open) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this.rootTarget, this.popoverTarget, next)) {\n return;\n }\n this.setOpen(false);\n });\n }\n render() {\n const calendarProps = {\n \"prop:selectionMode\": \"range\",\n \"prop:visibleMonths\": this.visibleMonths,\n \"prop:value\": this.isoValue,\n \"prop:min\": this.min,\n \"prop:max\": this.max,\n \"prop:locale\": this.locale,\n \"prop:disabled\": this.disabled\n };\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker__group\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker__values\",\n children: [/* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n class: \"rui-date-range-picker__input\",\n \"data-range-start\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n id: `${this.uid}-start`,\n autocomplete: \"off\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.placeholderStart || \"Start date\"\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-date-range-picker__separator\",\n \"aria-hidden\": \"true\",\n children: \"\\u2013\"\n }), /* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n class: \"rui-date-range-picker__input\",\n \"data-range-end\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n id: `${this.uid}-end`,\n autocomplete: \"off\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.placeholderEnd || \"End date\"\n })]\n }), /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-control-toggle\",\n \"data-ref\": \"trigger\",\n \"data-range-trigger\": true,\n \"aria-label\": \"Open calendar\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": this.$.open ? \"true\" : \"false\",\n disabled: this.$.disabled || this.$.readOnly,\n children: /* @__PURE__ */jsx(RuiIconCalendar, {})\n })]\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-range-picker__popover rui-popover rui-floating\",\n \"data-ref\": \"popover\",\n \"data-range-popover\": true,\n hidden: !this.$.open,\n role: \"dialog\",\n children: this.$.open ? /* @__PURE__ */jsx(\"rui-calendar\", {\n ...calendarProps\n }) : null\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateRangePicker as RuiDateRangePicker };", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const RANGE_SEPARATOR = \"/\";\nconst MULTIPLE_SEPARATOR = \",\";\nexport function compareIso(a, b) {\n return a.localeCompare(b);\n}\nexport function normalizeRange(start, end) {\n if (compareIso(start, end) <= 0) {\n return {\n start,\n end\n };\n }\n return {\n start: end,\n end: start\n };\n}\nexport function parseIsoRange(value) {\n if (!value) {\n return null;\n }\n const [start, end] = value.split(RANGE_SEPARATOR);\n if (!start || !end) {\n return null;\n }\n return normalizeRange(start, end);\n}\nexport function serializeIsoRange(range) {\n if (!range) {\n return \"\";\n }\n const normalized = normalizeRange(range.start, range.end);\n return `${normalized.start}${RANGE_SEPARATOR}${normalized.end}`;\n}\nexport function parseMultipleIsos(value) {\n if (!value) {\n return [];\n }\n return value.split(MULTIPLE_SEPARATOR).map(iso => iso.trim()).filter(Boolean).sort(compareIso);\n}\nexport function serializeMultipleIsos(values) {\n return [...new Set(values)].sort(compareIso).join(MULTIPLE_SEPARATOR);\n}\nexport function toggleMultipleIso(selected, iso) {\n const set = new Set(selected);\n if (set.has(iso)) {\n set.delete(iso);\n } else {\n set.add(iso);\n }\n return [...set].sort(compareIso);\n}\nexport function isIsoInSpan(iso, range) {\n const normalized = normalizeRange(range.start, range.end);\n return compareIso(iso, normalized.start) >= 0 && compareIso(iso, normalized.end) <= 0;\n}\nexport function getActiveRangeBounds(committed, draft) {\n if (draft.anchor) {\n const hover = draft.hover ?? draft.anchor;\n return normalizeRange(draft.anchor, hover);\n }\n return committed;\n}\nexport function getDaySelectionAppearance(iso, mode, options) {\n if (mode === \"single\") {\n const selected = options.singleIso === iso;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n if (mode === \"multiple\") {\n const selected = options.multipleIsos?.includes(iso) ?? false;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n const range = options.range;\n if (!range) {\n return {\n isSelected: false,\n isRangeStart: false,\n isRangeEnd: false,\n isRangeMiddle: false\n };\n }\n const normalized = normalizeRange(range.start, range.end);\n const inSpan = isIsoInSpan(iso, normalized);\n const isStart = iso === normalized.start;\n const isEnd = iso === normalized.end;\n const isMiddle = inSpan && !isStart && !isEnd;\n return {\n isSelected: inSpan,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeMiddle: isMiddle\n };\n}\nexport function advanceRangeSelection(committed, draft, iso) {\n if (!draft.anchor) {\n return {\n committed,\n draft: {\n anchor: iso,\n hover: iso\n }\n };\n }\n const next = normalizeRange(draft.anchor, iso);\n return {\n committed: next,\n draft: {\n anchor: null,\n hover: null\n }\n };\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskDigitSlotCount(tokens) {\n return maskInputSlotCount(tokens, {\n requiredOnly: true\n });\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function extractMaskDigits(masked, tokens) {\n return extractMaskInput(masked, tokens).replace(/\\D/g, \"\");\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "import { applyInputMask, maskInputSlotCount, parseMaskPattern } from \"./input-mask\";\nimport { getDateTimeFormat } from \"@/lib/intl-date/formatters\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nfunction getNumericPartOrder(locale) {\n return getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE).filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function buildDateMaskPattern(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n let pattern = \"\";\n for (const part of parts) {\n if (part.type === \"literal\") {\n pattern += part.value;\n continue;\n }\n if (part.type === \"month\" || part.type === \"day\" || part.type === \"year\") {\n pattern += part.value.replace(/\\d/g, \"0\");\n }\n }\n return pattern;\n}\nexport function getDefaultDatePlaceholder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n return parts.map(part => {\n if (part.type === \"literal\") {\n return part.value;\n }\n if (part.type === \"year\") {\n return \"yyyy\";\n }\n if (part.type === \"month\") {\n return \"mm\";\n }\n if (part.type === \"day\") {\n return \"dd\";\n }\n return \"\";\n }).join(\"\");\n}\nexport function maskPatternToPlaceholder(pattern) {\n return pattern.replace(/0/g, \"\\xB7\");\n}\nexport function extractMaskDigits(value) {\n return value.replace(/\\D/g, \"\");\n}\nexport function applyDateMask(digits, pattern) {\n return applyInputMask(extractMaskDigits(digits), pattern);\n}\nexport function maskDigitCapacity(pattern) {\n return maskInputSlotCount(parseMaskPattern(pattern), {\n requiredOnly: true\n });\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function maskedDigitsToParts(digits, locale) {\n const order = getNumericPartOrder(locale);\n let cursor = 0;\n const values = {};\n for (const type of order) {\n const width = type === \"year\" ? 4 : 2;\n const slice = digits.slice(cursor, cursor + width);\n if (slice.length < width) {\n return null;\n }\n let numeric = Number(slice);\n if (type === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[type] = numeric;\n cursor += width;\n }\n return values;\n}\nexport function partsToDate(parts) {\n if (parts.year == null || parts.month == null || parts.day == null) {\n return null;\n }\n const date = new Date(parts.year, parts.month - 1, parts.day);\n if (date.getFullYear() !== parts.year || date.getMonth() !== parts.month - 1 || date.getDate() !== parts.day) {\n return null;\n }\n return date;\n}\nexport { getNumericPartOrder };", "import { isoToDate } from \"./iso\";\nimport { getDateTimeFormat } from \"./formatters\";\nimport { buildDateMaskPattern, extractMaskDigits as extractDateMaskDigits, maskDigitCapacity, maskedDigitsToParts, partsToDate } from \"@/lib/mask/date-mask\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nexport function getDatePartOrder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function getDateSeparators(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"literal\").map(part => part.value);\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nfunction buildDateFromParts(parts) {\n const year = parts.year;\n const month = parts.month;\n const day = parts.day;\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function parseLocaleDateString(input, locale) {\n const trimmed = (input ?? \"\").trim();\n if (!trimmed) {\n return null;\n }\n const isoDate = isoToDate(trimmed);\n if (isoDate) {\n return isoDate;\n }\n const fromMask = parseMaskedInput(trimmed, locale);\n if (fromMask) {\n return fromMask;\n }\n const fromMonthName = parseDateWithMonthNames(trimmed, locale);\n if (fromMonthName) {\n return fromMonthName;\n }\n const order = getDatePartOrder(locale);\n const numbers = trimmed.match(/\\d+/g);\n if (!numbers || numbers.length < 3) {\n return null;\n }\n const values = {\n day: 0,\n month: 0,\n year: 0\n };\n for (let index = 0; index < 3; index += 1) {\n const partType = order[index];\n if (!partType) {\n return null;\n }\n let numeric = Number(numbers[index]);\n if (partType === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[partType] = numeric;\n }\n return buildDateFromParts(values);\n}\nfunction parseMaskedInput(input, locale) {\n const pattern = buildDateMaskPattern(locale);\n const digits = extractDateMaskDigits(input);\n if (digits.length < maskDigitCapacity(pattern)) {\n return null;\n }\n return partsToDate(maskedDigitsToParts(digits, locale) ?? {});\n}\nfunction getMonthNameLookup(locale) {\n const lookup = /* @__PURE__ */new Map();\n for (const style of [\"short\", \"long\"]) {\n for (let month = 0; month < 12; month += 1) {\n const label = getDateTimeFormat(locale, {\n month: style\n }).formatToParts(new Date(2020, month, 1)).find(part => part.type === \"month\")?.value;\n if (label) {\n lookup.set(label.toLowerCase(), month + 1);\n }\n }\n }\n return lookup;\n}\nfunction parseDateWithMonthNames(input, locale) {\n const months = getMonthNameLookup(locale);\n const normalized = input.toLowerCase();\n for (const [name, month] of months) {\n const index = normalized.indexOf(name);\n if (index < 0) {\n continue;\n }\n const numbers = input.match(/\\d+/g);\n if (!numbers || numbers.length < 2) {\n continue;\n }\n const yearToken = numbers.find(token => token.length === 4) ?? numbers[numbers.length - 1];\n const dayToken = numbers.find(token => token !== yearToken && Number(token) <= 31);\n if (!dayToken || !yearToken) {\n continue;\n }\n const year = normalizeYear(Number(yearToken));\n const day = Number(dayToken);\n return buildDateFromParts({\n year,\n month,\n day\n });\n }\n return null;\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiDateRangePicker as RuiDateRangePickerElement } from \"./date-range-picker.script\";\nexport const RuiDateRangePicker = defineRadiantView(RuiDateRangePickerElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-date-range-picker\", {\n ...props,\n children\n}), {\n stylesheets: [\"./date-range-picker.css\", \"../shared/control-toggle.css\", \"../../../lib/icons/icons.css\", \"../calendar/calendar.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
-
"mappings": "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",
|
|
4
|
+
"sourcesContent": ["let _initProto, _initClass, _init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_locale, _init_extra_locale, _init_placeholderStart, _init_extra_placeholderStart, _init_placeholderEnd, _init_extra_placeholderEnd, _init_startName, _init_extra_startName, _init_endName, _init_extra_endName, _init_name, _init_extra_name, _init_dateStyle, _init_extra_dateStyle, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_startDisplay, _init_extra_startDisplay, _init_endDisplay, _init_extra_endDisplay, _init_editing, _init_extra_editing, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget;\nfunction _applyDecs(e, t, n, r, o, i) { var a, c, u, s, f, l, p, d = Symbol.metadata || Symbol.for(\"Symbol.metadata\"), m = Object.defineProperty, h = Object.create, y = [h(null), h(null)], v = t.length; function g(t, n, r) { return function (o, i) { n && (i = o, o = e); for (var a = 0; a < t.length; a++) i = t[a].apply(o, r ? [i] : []); return r ? i : o; }; } function b(e, t, n, r) { if (\"function\" != typeof e && (r || void 0 !== e)) throw new TypeError(t + \" must \" + (n || \"be\") + \" a function\" + (r ? \"\" : \" or undefined\")); return e; } function applyDec(e, t, n, r, o, i, u, s, f, l, p) { function d(e) { if (!p(e)) throw new TypeError(\"Attempted to access private element on non-instance\"); } var h = [].concat(t[0]), v = t[3], w = !u, D = 1 === o, S = 3 === o, j = 4 === o, E = 2 === o; function I(t, n, r) { return function (o, i) { return n && (i = o, o = e), r && r(o), P[t].call(o, i); }; } if (!w) { var P = {}, k = [], F = S ? \"get\" : j || D ? \"set\" : \"value\"; if (f ? (l || D ? P = { get: _setFunctionName(function () { return v(this); }, r, \"get\"), set: function (e) { t[4](this, e); } } : P[F] = v, l || _setFunctionName(P[F], r, E ? \"\" : F)) : l || (P = Object.getOwnPropertyDescriptor(e, r)), !l && !f) { if ((c = y[+s][r]) && 7 !== (c ^ o)) throw Error(\"Decorating two elements with the same name (\" + P[F].name + \") is not supported yet\"); y[+s][r] = o < 3 ? 1 : o; } } for (var N = e, O = h.length - 1; O >= 0; O -= n ? 2 : 1) { var T = b(h[O], \"A decorator\", \"be\", !0), z = n ? h[O - 1] : void 0, A = {}, H = { kind: [\"field\", \"accessor\", \"method\", \"getter\", \"setter\", \"class\"][o], name: r, metadata: a, addInitializer: function (e, t) { if (e.v) throw new TypeError(\"attempted to call addInitializer after decoration was finished\"); b(t, \"An initializer\", \"be\", !0), i.push(t); }.bind(null, A) }; if (w) c = T.call(z, N, H), A.v = 1, b(c, \"class decorators\", \"return\") && (N = c);else if (H.static = s, H.private = f, c = H.access = { has: f ? p.bind() : function (e) { return r in e; } }, j || (c.get = f ? E ? function (e) { return d(e), P.value; } : I(\"get\", 0, d) : function (e) { return e[r]; }), E || S || (c.set = f ? I(\"set\", 0, d) : function (e, t) { e[r] = t; }), N = T.call(z, D ? { get: P.get, set: P.set } : P[F], H), A.v = 1, D) { if (\"object\" == typeof N && N) (c = b(N.get, \"accessor.get\")) && (P.get = c), (c = b(N.set, \"accessor.set\")) && (P.set = c), (c = b(N.init, \"accessor.init\")) && k.unshift(c);else if (void 0 !== N) throw new TypeError(\"accessor decorators must return an object with get, set, or init properties or undefined\"); } else b(N, (l ? \"field\" : \"method\") + \" decorators\", \"return\") && (l ? k.unshift(N) : P[F] = N); } return o < 2 && u.push(g(k, s, 1), g(i, s, 0)), l || w || (f ? D ? u.splice(-1, 0, I(\"get\", s), I(\"set\", s)) : u.push(E ? P[F] : b.call.bind(P[F])) : m(e, r, P)), N; } function w(e) { return m(e, d, { configurable: !0, enumerable: !0, value: a }); } return void 0 !== i && (a = i[d]), a = h(null == a ? null : a), f = [], l = function (e) { e && f.push(g(e)); }, p = function (t, r) { for (var i = 0; i < n.length; i++) { var a = n[i], c = a[1], l = 7 & c; if ((8 & c) == t && !l == r) { var p = a[2], d = !!a[3], m = 16 & c; applyDec(t ? e : e.prototype, a, m, d ? \"#\" + p : _toPropertyKey(p), l, l < 2 ? [] : t ? s = s || [] : u = u || [], f, !!t, d, r, t && d ? function (t) { return _checkInRHS(t) === e; } : o); } } }, p(8, 0), p(0, 0), p(8, 1), p(0, 1), l(u), l(s), c = f, v || w(e), { e: c, get c() { var n = []; return v && [w(e = applyDec(e, [t], r, e.name, 5, n)), g(n, 1)]; } }; }\nfunction _toPropertyKey(t) { var i = _toPrimitive(t, \"string\"); return \"symbol\" == typeof i ? i : i + \"\"; }\nfunction _toPrimitive(t, r) { if (\"object\" != typeof t || !t) return t; var e = t[Symbol.toPrimitive]; if (void 0 !== e) { var i = e.call(t, r || \"default\"); if (\"object\" != typeof i) return i; throw new TypeError(\"@@toPrimitive must return a primitive value.\"); } return (\"string\" === r ? String : Number)(t); }\nfunction _setFunctionName(e, t, n) { \"symbol\" == typeof t && (t = (t = t.description) ? \"[\" + t + \"]\" : \"\"); try { Object.defineProperty(e, \"name\", { configurable: !0, value: n ? n + \" \" + t : t }); } catch (e) {} return e; }\nfunction _checkInRHS(e) { if (Object(e) !== e) throw TypeError(\"right-hand side of 'in' should be an object, got \" + (null !== e ? typeof e : \"null\")); return e; }\nimport { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { RadiantElement, customElement, event, onEvent, onUpdated, prop, query, state } from \"@ecopages/radiant\";\nimport { dateToIso, formatDisplayDate, isoToDate, parseLocaleDateString, parseIsoRange, serializeIsoRange } from \"@/lib/intl-date\";\nimport { RuiIconCalendar } from \"@/lib/icons\";\nimport \"../calendar/calendar.script\";\nimport { PopoverController, shouldDismissPopoverFocus } from \"../shared/popover-controller\";\nimport { resolveLocale } from \"@/lib/intl/locale\";\nlet _RuiDateRangePicker;\nclass RuiDateRangePicker extends RadiantElement {\n static {\n ({\n e: [_init_value, _init_extra_value, _init_min, _init_extra_min, _init_max, _init_extra_max, _init_disabled, _init_extra_disabled, _init_readOnly, _init_extra_readOnly, _init_locale, _init_extra_locale, _init_placeholderStart, _init_extra_placeholderStart, _init_placeholderEnd, _init_extra_placeholderEnd, _init_startName, _init_extra_startName, _init_endName, _init_extra_endName, _init_name, _init_extra_name, _init_dateStyle, _init_extra_dateStyle, _init_visibleMonths, _init_extra_visibleMonths, _init_changeEvent, _init_extra_changeEvent, _init_open, _init_extra_open, _init_startDisplay, _init_extra_startDisplay, _init_endDisplay, _init_extra_endDisplay, _init_editing, _init_extra_editing, _init_rootTarget, _init_extra_rootTarget, _init_popoverTarget, _init_extra_popoverTarget, _initProto],\n c: [_RuiDateRangePicker, _initClass]\n } = _applyDecs(this, [customElement(\"rui-date-range-picker\")], [[prop({\n type: String,\n reflect: true,\n defaultValue: \"\"\n }), 0, \"value\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"min\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"max\"], [prop({\n type: Boolean,\n reflect: true,\n defaultValue: false\n }), 0, \"disabled\"], [prop({\n type: Boolean,\n attribute: \"read-only\",\n reflect: true,\n defaultValue: false\n }), 0, \"readOnly\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"locale\"], [prop({\n type: String,\n attribute: \"placeholder-start\",\n defaultValue: \"\"\n }), 0, \"placeholderStart\"], [prop({\n type: String,\n attribute: \"placeholder-end\",\n defaultValue: \"\"\n }), 0, \"placeholderEnd\"], [prop({\n type: String,\n attribute: \"start-name\",\n defaultValue: \"\"\n }), 0, \"startName\"], [prop({\n type: String,\n attribute: \"end-name\",\n defaultValue: \"\"\n }), 0, \"endName\"], [prop({\n type: String,\n defaultValue: \"\"\n }), 0, \"name\"], [prop({\n type: String,\n attribute: \"date-style\",\n defaultValue: \"medium\"\n }), 0, \"dateStyle\"], [prop({\n type: Number,\n attribute: \"visible-months\",\n defaultValue: 2\n }), 0, \"visibleMonths\"], [event({\n name: \"rui-change\",\n bubbles: true,\n composed: true\n }), 0, \"changeEvent\"], [state, 0, \"open\"], [state, 0, \"startDisplay\"], [state, 0, \"endDisplay\"], [state, 0, \"editing\"], [query({\n ref: \"root\"\n }), 0, \"rootTarget\"], [query({\n ref: \"popover\"\n }), 0, \"popoverTarget\"], [onUpdated([\"value\", \"min\", \"max\", \"disabled\", \"readOnly\", \"locale\", \"dateStyle\", \"startName\", \"endName\", \"visibleMonths\"]), 2, \"onPropsUpdated\"], [onUpdated([\"open\"]), 2, \"onOpenUpdated\"], [onEvent({\n ref: \"trigger\",\n type: \"pointerdown\"\n }), 2, \"onTriggerPointerDown\"], [onEvent({\n ref: \"trigger\",\n type: \"click\"\n }), 2, \"onTriggerClick\"], [onEvent({\n selector: \"[data-range-start]\",\n type: \"focus\"\n }), 2, \"onStartFocus\"], [onEvent({\n selector: \"[data-range-end]\",\n type: \"focus\"\n }), 2, \"onEndFocus\"], [onEvent({\n selector: \"[data-range-start], [data-range-end]\",\n type: \"blur\"\n }), 2, \"onInputBlur\"], [onEvent({\n selector: \"[data-range-start], [data-range-end]\",\n type: \"input\"\n }), 2, \"onInput\"], [onEvent({\n selector: \"[data-range-popover]\",\n type: \"mousedown\"\n }), 2, \"onPopoverMouseDown\"], [onEvent({\n ref: \"root\",\n type: \"rui-change\"\n }), 2, \"onCalendarChange\"], [onEvent({\n ref: \"root\",\n type: \"keydown\"\n }), 2, \"onRootKeydown\"], [onEvent({\n ref: \"root\",\n type: \"focusout\"\n }), 2, \"onRootFocusOut\"]], 0, void 0, RadiantElement));\n }\n constructor(...args) {\n super(...args);\n _init_extra_popoverTarget(this);\n }\n value = (_initProto(this), _init_value(this));\n min = (_init_extra_value(this), _init_min(this));\n max = (_init_extra_min(this), _init_max(this));\n disabled = (_init_extra_max(this), _init_disabled(this));\n readOnly = (_init_extra_disabled(this), _init_readOnly(this));\n locale = (_init_extra_readOnly(this), _init_locale(this));\n placeholderStart = (_init_extra_locale(this), _init_placeholderStart(this));\n placeholderEnd = (_init_extra_placeholderStart(this), _init_placeholderEnd(this));\n startName = (_init_extra_placeholderEnd(this), _init_startName(this));\n endName = (_init_extra_startName(this), _init_endName(this));\n name = (_init_extra_endName(this), _init_name(this));\n dateStyle = (_init_extra_name(this), _init_dateStyle(this));\n visibleMonths = (_init_extra_dateStyle(this), _init_visibleMonths(this));\n changeEvent = (_init_extra_visibleMonths(this), _init_changeEvent(this));\n open = (_init_extra_changeEvent(this), _init_open(this, false));\n startDisplay = (_init_extra_open(this), _init_startDisplay(this, \"\"));\n endDisplay = (_init_extra_startDisplay(this), _init_endDisplay(this, \"\"));\n editing = (_init_extra_endDisplay(this), _init_editing(this, null));\n uid = (_init_extra_editing(this), Math.random().toString(36).slice(2, 9));\n popoverController = null;\n suppressPopoverDismiss = false;\n rootTarget = _init_rootTarget(this);\n popoverTarget = (_init_extra_rootTarget(this), _init_popoverTarget(this));\n get resolvedLocale() {\n return resolveLocale(this.locale);\n }\n get isoValue() {\n return this.value ?? \"\";\n }\n getStartInput() {\n return this.querySelector(\"[data-range-start]\");\n }\n getEndInput() {\n return this.querySelector(\"[data-range-end]\");\n }\n formatIso(iso) {\n if (!iso) {\n return \"\";\n }\n const date = isoToDate(iso);\n return date ? formatDisplayDate(date, this.resolvedLocale, this.dateStyle) : \"\";\n }\n syncDisplayValues() {\n if (this.editing === \"start\" || this.editing === \"end\") {\n return;\n }\n const range = parseIsoRange(this.isoValue);\n this.startDisplay = this.formatIso(range?.start ?? \"\");\n this.endDisplay = this.formatIso(range?.end ?? \"\");\n const startInput = this.getStartInput();\n const endInput = this.getEndInput();\n if (startInput) {\n startInput.value = this.startDisplay;\n }\n if (endInput) {\n endInput.value = this.endDisplay;\n }\n }\n isIsoAllowed(iso) {\n if (this.min && iso < this.min) {\n return false;\n }\n if (this.max && iso > this.max) {\n return false;\n }\n return true;\n }\n commitRange(start, end) {\n if (start && !this.isIsoAllowed(start)) {\n this.syncDisplayValues();\n return;\n }\n if (end && !this.isIsoAllowed(end)) {\n this.syncDisplayValues();\n return;\n }\n const serialized = start && end ? serializeIsoRange({\n start,\n end\n }) : \"\";\n if (serialized === this.isoValue) {\n this.syncDisplayValues();\n return;\n }\n this.value = serialized;\n this.changeEvent.emit({\n value: serialized,\n start,\n end\n });\n this.syncDisplayValues();\n }\n parseField(raw) {\n const trimmed = (raw ?? \"\").trim();\n if (!trimmed) {\n return \"\";\n }\n const parsed = parseLocaleDateString(trimmed, this.resolvedLocale);\n return parsed ? dateToIso(parsed) : \"\";\n }\n commitFromInputs() {\n const start = this.parseField(this.getStartInput()?.value ?? \"\");\n const end = this.parseField(this.getEndInput()?.value ?? \"\");\n if (!start && !end) {\n this.commitRange(\"\", \"\");\n return;\n }\n if (start && end) {\n this.commitRange(start, end);\n return;\n }\n const range = parseIsoRange(this.isoValue);\n this.commitRange(start || range?.start || \"\", end || range?.end || \"\");\n }\n setOpen(next) {\n this.open = next;\n queueMicrotask(() => this.syncPopoverPosition());\n }\n ensurePopoverController() {\n if (!this.popoverController) {\n this.popoverController = new PopoverController({\n getAnchor: () => this.rootTarget,\n getFloating: () => this.popoverTarget,\n getOpen: () => this.open,\n getPlacement: () => \"bottom-start\",\n gap: 4,\n portal: false\n });\n }\n return this.popoverController;\n }\n syncPopoverPosition() {\n const popover = this.popoverTarget;\n if (!popover || !this.rootTarget) {\n return;\n }\n popover.hidden = !this.open;\n const controller = this.ensurePopoverController();\n controller.updateConfig({\n getOpen: () => this.open\n });\n controller.sync();\n }\n wireInputNames() {\n const startInput = this.getStartInput();\n const endInput = this.getEndInput();\n if (startInput && this.startName) {\n startInput.name = this.startName;\n }\n if (endInput && this.endName) {\n endInput.name = this.endName;\n }\n }\n initialize() {\n this.wireInputNames();\n this.syncDisplayValues();\n this.setOpen(false);\n }\n connectedCallback() {\n super.connectedCallback();\n queueMicrotask(() => this.initialize());\n }\n disconnectedCallback() {\n this.popoverController?.destroy();\n this.popoverController = null;\n super.disconnectedCallback();\n }\n onPropsUpdated() {\n this.wireInputNames();\n this.syncDisplayValues();\n }\n onOpenUpdated() {\n this.syncPopoverPosition();\n }\n onTriggerPointerDown() {\n this.suppressPopoverDismiss = true;\n }\n onTriggerClick() {\n if (this.disabled || this.readOnly) {\n return;\n }\n this.setOpen(!this.open);\n }\n onStartFocus() {\n this.editing = \"start\";\n const range = parseIsoRange(this.isoValue);\n const input = this.getStartInput();\n if (input) {\n input.value = range?.start ? this.formatIso(range.start) : \"\";\n }\n }\n onEndFocus() {\n this.editing = \"end\";\n const range = parseIsoRange(this.isoValue);\n const input = this.getEndInput();\n if (input) {\n input.value = range?.end ? this.formatIso(range.end) : \"\";\n }\n }\n onInputBlur() {\n this.editing = null;\n this.commitFromInputs();\n }\n onInput(event2) {\n const input = event2.target;\n if (input.matches(\"[data-range-start]\")) {\n this.startDisplay = input.value;\n return;\n }\n this.endDisplay = input.value;\n }\n onPopoverMouseDown(event2) {\n event2.preventDefault();\n }\n onCalendarChange(event2) {\n const target = event2.target;\n if (!(target instanceof HTMLElement) || target.tagName.toLowerCase() !== \"rui-calendar\") {\n return;\n }\n const detail = event2.detail;\n if (!detail?.start || !detail.end) {\n return;\n }\n this.commitRange(detail.start, detail.end);\n this.setOpen(false);\n }\n onRootKeydown(event2) {\n if (event2.key === \"Escape\" && this.open) {\n event2.preventDefault();\n this.setOpen(false);\n }\n }\n onRootFocusOut(event2) {\n const relatedTarget = event2.relatedTarget;\n queueMicrotask(() => {\n if (this.suppressPopoverDismiss) {\n this.suppressPopoverDismiss = false;\n return;\n }\n if (!this.open) {\n return;\n }\n const next = relatedTarget instanceof Node ? relatedTarget : document.activeElement;\n if (!shouldDismissPopoverFocus(this.rootTarget, this.popoverTarget, next)) {\n return;\n }\n this.setOpen(false);\n });\n }\n render() {\n const calendarProps = {\n \"prop:selectionMode\": \"range\",\n \"prop:visibleMonths\": this.visibleMonths,\n \"prop:value\": this.isoValue,\n \"prop:min\": this.min,\n \"prop:max\": this.max,\n \"prop:locale\": this.locale,\n \"prop:disabled\": this.disabled\n };\n return /* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker\",\n \"data-ref\": \"root\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker__group\",\n children: [/* @__PURE__ */jsxs(\"div\", {\n class: \"rui-date-range-picker__values\",\n children: [/* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n class: \"rui-date-range-picker__input\",\n \"data-range-start\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n id: `${this.uid}-start`,\n autocomplete: \"off\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.placeholderStart || \"Start date\"\n }), /* @__PURE__ */jsx(\"span\", {\n class: \"rui-date-range-picker__separator\",\n \"aria-hidden\": \"true\",\n children: \"\\u2013\"\n }), /* @__PURE__ */jsx(\"input\", {\n type: \"text\",\n class: \"rui-date-range-picker__input\",\n \"data-range-end\": true,\n \"data-rui-control\": true,\n \"data-rui-control-type\": \"text\",\n id: `${this.uid}-end`,\n autocomplete: \"off\",\n disabled: this.$.disabled,\n readOnly: this.$.readOnly,\n placeholder: this.placeholderEnd || \"End date\"\n })]\n }), /* @__PURE__ */jsx(\"button\", {\n type: \"button\",\n class: \"rui-control-toggle\",\n \"data-ref\": \"trigger\",\n \"data-range-trigger\": true,\n \"aria-label\": \"Open calendar\",\n \"aria-haspopup\": \"dialog\",\n \"aria-expanded\": this.open ? \"true\" : \"false\",\n disabled: this.$.disabled || this.$.readOnly,\n children: /* @__PURE__ */jsx(RuiIconCalendar, {})\n })]\n }), /* @__PURE__ */jsx(\"div\", {\n class: \"rui-date-range-picker__popover rui-popover rui-floating\",\n \"data-ref\": \"popover\",\n \"data-range-popover\": true,\n hidden: !this.open,\n role: \"dialog\",\n children: this.open ? /* @__PURE__ */jsx(\"rui-calendar\", {\n ...calendarProps\n }) : null\n })]\n });\n }\n static {\n _initClass();\n }\n}\nexport { _RuiDateRangePicker as RuiDateRangePicker };", "export function isoToDate(iso) {\n if (iso == null) {\n return null;\n }\n const match = /^(\\d{4})-(\\d{2})-(\\d{2})$/.exec(iso.trim());\n if (!match) {\n return null;\n }\n const year = Number(match[1]);\n const month = Number(match[2]) - 1;\n const day = Number(match[3]);\n const date = new Date(year, month, day);\n if (date.getFullYear() !== year || date.getMonth() !== month || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function dateToIso(date) {\n const year = date.getFullYear();\n const month = String(date.getMonth() + 1).padStart(2, \"0\");\n const day = String(date.getDate()).padStart(2, \"0\");\n return `${year}-${month}-${day}`;\n}\nexport function isIsoInRange(iso, min, max) {\n if (min && iso < min) {\n return false;\n }\n if (max && iso > max) {\n return false;\n }\n return true;\n}", "const RANGE_SEPARATOR = \"/\";\nconst MULTIPLE_SEPARATOR = \",\";\nexport function compareIso(a, b) {\n return a.localeCompare(b);\n}\nexport function normalizeRange(start, end) {\n if (compareIso(start, end) <= 0) {\n return {\n start,\n end\n };\n }\n return {\n start: end,\n end: start\n };\n}\nexport function parseIsoRange(value) {\n if (!value) {\n return null;\n }\n const [start, end] = value.split(RANGE_SEPARATOR);\n if (!start || !end) {\n return null;\n }\n return normalizeRange(start, end);\n}\nexport function serializeIsoRange(range) {\n if (!range) {\n return \"\";\n }\n const normalized = normalizeRange(range.start, range.end);\n return `${normalized.start}${RANGE_SEPARATOR}${normalized.end}`;\n}\nexport function parseMultipleIsos(value) {\n if (!value) {\n return [];\n }\n return value.split(MULTIPLE_SEPARATOR).map(iso => iso.trim()).filter(Boolean).sort(compareIso);\n}\nexport function serializeMultipleIsos(values) {\n return [...new Set(values)].sort(compareIso).join(MULTIPLE_SEPARATOR);\n}\nexport function toggleMultipleIso(selected, iso) {\n const set = new Set(selected);\n if (set.has(iso)) {\n set.delete(iso);\n } else {\n set.add(iso);\n }\n return [...set].sort(compareIso);\n}\nexport function isIsoInSpan(iso, range) {\n const normalized = normalizeRange(range.start, range.end);\n return compareIso(iso, normalized.start) >= 0 && compareIso(iso, normalized.end) <= 0;\n}\nexport function getActiveRangeBounds(committed, draft) {\n if (draft.anchor) {\n const hover = draft.hover ?? draft.anchor;\n return normalizeRange(draft.anchor, hover);\n }\n return committed;\n}\nexport function getDaySelectionAppearance(iso, mode, options) {\n if (mode === \"single\") {\n const selected = options.singleIso === iso;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n if (mode === \"multiple\") {\n const selected = options.multipleIsos?.includes(iso) ?? false;\n return {\n isSelected: selected,\n isRangeStart: selected,\n isRangeEnd: selected,\n isRangeMiddle: false\n };\n }\n const range = options.range;\n if (!range) {\n return {\n isSelected: false,\n isRangeStart: false,\n isRangeEnd: false,\n isRangeMiddle: false\n };\n }\n const normalized = normalizeRange(range.start, range.end);\n const inSpan = isIsoInSpan(iso, normalized);\n const isStart = iso === normalized.start;\n const isEnd = iso === normalized.end;\n const isMiddle = inSpan && !isStart && !isEnd;\n return {\n isSelected: inSpan,\n isRangeStart: isStart,\n isRangeEnd: isEnd,\n isRangeMiddle: isMiddle\n };\n}\nexport function advanceRangeSelection(committed, draft, iso) {\n if (!draft.anchor) {\n return {\n committed,\n draft: {\n anchor: iso,\n hover: iso\n }\n };\n }\n const next = normalizeRange(draft.anchor, iso);\n return {\n committed: next,\n draft: {\n anchor: null,\n hover: null\n }\n };\n}", "const formatterCache = /* @__PURE__ */new Map();\nfunction cacheKey(locale, options) {\n return `${JSON.stringify(locale ?? null)}|${JSON.stringify(options)}`;\n}\nexport function getDateTimeFormat(locale, options) {\n const key = cacheKey(locale, options);\n const cached = formatterCache.get(key);\n if (cached) {\n return cached;\n }\n const formatter = new Intl.DateTimeFormat(locale, options);\n formatterCache.set(key, formatter);\n return formatter;\n}\nexport function formatDisplayDate(date, locale, style = \"medium\") {\n return getDateTimeFormat(locale, {\n dateStyle: style\n }).format(date);\n}\nexport function formatMonthYear(date, locale) {\n return getDateTimeFormat(locale, {\n month: \"long\",\n year: \"numeric\"\n }).format(date);\n}\nexport function getWeekdayLabels(locale, weekStartsOn) {\n const formatter = getDateTimeFormat(locale, {\n weekday: \"narrow\"\n });\n const labels = [];\n for (let offset = 0; offset < 7; offset += 1) {\n const dayIndex = (weekStartsOn + offset) % 7;\n const reference = new Date(2024, 0, dayIndex === 0 ? 7 : dayIndex);\n labels.push(formatter.format(reference));\n }\n return labels;\n}\nexport function formatDateRange(start, end, locale, style = \"medium\") {\n const formatter = getDateTimeFormat(locale, {\n dateStyle: style\n });\n if (typeof formatter.formatRange === \"function\") {\n return formatter.formatRange(start, end);\n }\n return `${formatter.format(start)} \\u2013 ${formatter.format(end)}`;\n}\nexport function formatTodayLabel(locale) {\n return new Intl.RelativeTimeFormat(locale, {\n numeric: \"auto\"\n }).format(0, \"day\");\n}", "const DEFAULT_DEFINITIONS = {\n \"0\": \"digit\",\n a: \"letter\",\n \"*\": \"any\"\n};\nconst LETTER = /\\p{L}/u;\nfunction resolveDefinition(char, definitions) {\n const custom = definitions?.[char];\n if (custom instanceof RegExp) {\n return {\n kind: \"any\",\n pattern: custom\n };\n }\n if (custom) {\n return {\n kind: custom\n };\n }\n const builtIn = DEFAULT_DEFINITIONS[char];\n return builtIn ? {\n kind: builtIn\n } : null;\n}\nfunction matchesInput(char, kind, pattern) {\n if (pattern) {\n return pattern.test(char);\n }\n if (kind === \"digit\") {\n return /\\d/.test(char);\n }\n if (kind === \"letter\") {\n return LETTER.test(char);\n }\n return char.length > 0;\n}\nfunction parseMaskPatternInternal(pattern, definitions, optional = false) {\n const tokens = [];\n let index = 0;\n while (index < pattern.length) {\n const char = pattern[index];\n if (char === \"\\\\\") {\n const next = pattern[index + 1];\n if (next) {\n tokens.push({\n type: \"literal\",\n value: next\n });\n }\n index += 2;\n continue;\n }\n if (char === \"{\") {\n const end = pattern.indexOf(\"}\", index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"{\"\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"fixed\",\n value: pattern.slice(index + 1, end)\n });\n index = end + 1;\n continue;\n }\n if (char === \"[\") {\n const end = findClosingBracket(pattern, index + 1);\n if (end < 0) {\n tokens.push({\n type: \"literal\",\n value: \"[\"\n });\n index += 1;\n continue;\n }\n const inner = parseMaskPatternInternal(pattern.slice(index + 1, end), definitions, true);\n tokens.push(...inner);\n index = end + 1;\n continue;\n }\n if (char === \"]\") {\n break;\n }\n const definition = resolveDefinition(char, definitions);\n if (definition) {\n tokens.push({\n type: \"input\",\n definition: char,\n kind: definition.kind,\n pattern: definition.pattern,\n optional\n });\n index += 1;\n continue;\n }\n tokens.push({\n type: \"literal\",\n value: char\n });\n index += 1;\n }\n return tokens;\n}\nfunction findClosingBracket(pattern, start) {\n let depth = 1;\n for (let index = start; index < pattern.length; index += 1) {\n if (pattern[index] === \"[\" && pattern[index - 1] !== \"\\\\\") {\n depth += 1;\n }\n if (pattern[index] === \"]\" && pattern[index - 1] !== \"\\\\\") {\n depth -= 1;\n if (depth === 0) {\n return index;\n }\n }\n }\n return -1;\n}\nexport function parseMaskPattern(pattern, definitions) {\n return parseMaskPatternInternal(pattern, definitions);\n}\nexport function maskInputSlotCount(tokens, options = {}) {\n return tokens.filter(token => token.type === \"input\" && (!options.requiredOnly || !token.optional)).length;\n}\nexport function maskDigitSlotCount(tokens) {\n return maskInputSlotCount(tokens, {\n requiredOnly: true\n });\n}\nexport function maskToPlaceholder(pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"literal\" || token.type === \"fixed\") {\n result += token.value;\n continue;\n }\n result += \"_\";\n }\n return result;\n}\nexport function extractMaskInput(masked, tokens) {\n let input = \"\";\n let cursor = 0;\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n if (masked.slice(cursor, cursor + token.value.length) === token.value) {\n cursor += token.value.length;\n }\n continue;\n }\n if (cursor >= masked.length) {\n continue;\n }\n const char = masked[cursor];\n if (matchesInput(char, token.kind, token.pattern)) {\n input += char;\n cursor += 1;\n }\n }\n return input;\n}\nexport function extractMaskDigits(masked, tokens) {\n return extractMaskInput(masked, tokens).replace(/\\D/g, \"\");\n}\nexport function formatWithMask(input, tokens) {\n if (!input) {\n return \"\";\n }\n let inputIndex = 0;\n let result = \"\";\n for (const token of tokens) {\n if (token.type === \"fixed\" || token.type === \"literal\") {\n result += token.value;\n continue;\n }\n if (inputIndex >= input.length) {\n if (token.optional) {\n continue;\n }\n break;\n }\n const char = input[inputIndex];\n if (!matchesInput(char, token.kind, token.pattern)) {\n if (token.optional) {\n continue;\n }\n break;\n }\n result += char;\n inputIndex += 1;\n }\n return result;\n}\nfunction isDigitOnlyPattern(tokens) {\n return tokens.every(token => token.type !== \"input\" || token.kind === \"digit\");\n}\nfunction looseInputFromRaw(raw, tokens) {\n const loose = raw.replace(/\\D/g, \"\");\n const fixedDigits = tokens.filter(token => token.type === \"fixed\").map(token => token.value.replace(/\\D/g, \"\")).join(\"\");\n if (fixedDigits && loose.startsWith(fixedDigits)) {\n return loose.slice(fixedDigits.length);\n }\n return loose;\n}\nexport function applyInputMask(raw, pattern, definitions) {\n const tokens = parseMaskPattern(pattern, definitions);\n const capacity = maskInputSlotCount(tokens);\n let input = extractMaskInput(raw, tokens);\n if (input.length === 0 && /\\S/.test(raw) && isDigitOnlyPattern(tokens)) {\n input = looseInputFromRaw(raw, tokens);\n }\n if (input.length > capacity) {\n input = input.slice(0, capacity);\n }\n return formatWithMask(input, tokens);\n}", "import { applyInputMask, maskInputSlotCount, parseMaskPattern } from \"./input-mask\";\nimport { getDateTimeFormat } from \"@/lib/intl-date/formatters\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nfunction getNumericPartOrder(locale) {\n return getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE).filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function buildDateMaskPattern(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n let pattern = \"\";\n for (const part of parts) {\n if (part.type === \"literal\") {\n pattern += part.value;\n continue;\n }\n if (part.type === \"month\" || part.type === \"day\" || part.type === \"year\") {\n pattern += part.value.replace(/\\d/g, \"0\");\n }\n }\n return pattern;\n}\nexport function getDefaultDatePlaceholder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"2-digit\",\n day: \"2-digit\"\n }).formatToParts(REFERENCE_DATE);\n return parts.map(part => {\n if (part.type === \"literal\") {\n return part.value;\n }\n if (part.type === \"year\") {\n return \"yyyy\";\n }\n if (part.type === \"month\") {\n return \"mm\";\n }\n if (part.type === \"day\") {\n return \"dd\";\n }\n return \"\";\n }).join(\"\");\n}\nexport function maskPatternToPlaceholder(pattern) {\n return pattern.replace(/0/g, \"\\xB7\");\n}\nexport function extractMaskDigits(value) {\n return value.replace(/\\D/g, \"\");\n}\nexport function applyDateMask(digits, pattern) {\n return applyInputMask(extractMaskDigits(digits), pattern);\n}\nexport function maskDigitCapacity(pattern) {\n return maskInputSlotCount(parseMaskPattern(pattern), {\n requiredOnly: true\n });\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nexport function maskedDigitsToParts(digits, locale) {\n const order = getNumericPartOrder(locale);\n let cursor = 0;\n const values = {};\n for (const type of order) {\n const width = type === \"year\" ? 4 : 2;\n const slice = digits.slice(cursor, cursor + width);\n if (slice.length < width) {\n return null;\n }\n let numeric = Number(slice);\n if (type === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[type] = numeric;\n cursor += width;\n }\n return values;\n}\nexport function partsToDate(parts) {\n if (parts.year == null || parts.month == null || parts.day == null) {\n return null;\n }\n const date = new Date(parts.year, parts.month - 1, parts.day);\n if (date.getFullYear() !== parts.year || date.getMonth() !== parts.month - 1 || date.getDate() !== parts.day) {\n return null;\n }\n return date;\n}\nexport { getNumericPartOrder };", "import { isoToDate } from \"./iso\";\nimport { getDateTimeFormat } from \"./formatters\";\nimport { buildDateMaskPattern, extractMaskDigits as extractDateMaskDigits, maskDigitCapacity, maskedDigitsToParts, partsToDate } from \"@/lib/mask/date-mask\";\nconst REFERENCE_DATE = new Date(2001, 8, 3);\nexport function getDatePartOrder(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"year\" || part.type === \"month\" || part.type === \"day\").map(part => part.type);\n}\nexport function getDateSeparators(locale) {\n const parts = getDateTimeFormat(locale, {\n year: \"numeric\",\n month: \"numeric\",\n day: \"numeric\"\n }).formatToParts(REFERENCE_DATE);\n return parts.filter(part => part.type === \"literal\").map(part => part.value);\n}\nfunction normalizeYear(value) {\n if (value >= 100) {\n return value;\n }\n return value >= 69 ? 1900 + value : 2e3 + value;\n}\nfunction buildDateFromParts(parts) {\n const year = parts.year;\n const month = parts.month;\n const day = parts.day;\n if (!Number.isFinite(year) || !Number.isFinite(month) || !Number.isFinite(day)) {\n return null;\n }\n const date = new Date(year, month - 1, day);\n if (date.getFullYear() !== year || date.getMonth() !== month - 1 || date.getDate() !== day) {\n return null;\n }\n return date;\n}\nexport function parseLocaleDateString(input, locale) {\n const trimmed = (input ?? \"\").trim();\n if (!trimmed) {\n return null;\n }\n const isoDate = isoToDate(trimmed);\n if (isoDate) {\n return isoDate;\n }\n const fromMask = parseMaskedInput(trimmed, locale);\n if (fromMask) {\n return fromMask;\n }\n const fromMonthName = parseDateWithMonthNames(trimmed, locale);\n if (fromMonthName) {\n return fromMonthName;\n }\n const order = getDatePartOrder(locale);\n const numbers = trimmed.match(/\\d+/g);\n if (!numbers || numbers.length < 3) {\n return null;\n }\n const values = {\n day: 0,\n month: 0,\n year: 0\n };\n for (let index = 0; index < 3; index += 1) {\n const partType = order[index];\n if (!partType) {\n return null;\n }\n let numeric = Number(numbers[index]);\n if (partType === \"year\") {\n numeric = normalizeYear(numeric);\n }\n values[partType] = numeric;\n }\n return buildDateFromParts(values);\n}\nfunction parseMaskedInput(input, locale) {\n const pattern = buildDateMaskPattern(locale);\n const digits = extractDateMaskDigits(input);\n if (digits.length < maskDigitCapacity(pattern)) {\n return null;\n }\n return partsToDate(maskedDigitsToParts(digits, locale) ?? {});\n}\nfunction getMonthNameLookup(locale) {\n const lookup = /* @__PURE__ */new Map();\n for (const style of [\"short\", \"long\"]) {\n for (let month = 0; month < 12; month += 1) {\n const label = getDateTimeFormat(locale, {\n month: style\n }).formatToParts(new Date(2020, month, 1)).find(part => part.type === \"month\")?.value;\n if (label) {\n lookup.set(label.toLowerCase(), month + 1);\n }\n }\n }\n return lookup;\n}\nfunction parseDateWithMonthNames(input, locale) {\n const months = getMonthNameLookup(locale);\n const normalized = input.toLowerCase();\n for (const [name, month] of months) {\n const index = normalized.indexOf(name);\n if (index < 0) {\n continue;\n }\n const numbers = input.match(/\\d+/g);\n if (!numbers || numbers.length < 2) {\n continue;\n }\n const yearToken = numbers.find(token => token.length === 4) ?? numbers[numbers.length - 1];\n const dayToken = numbers.find(token => token !== yearToken && Number(token) <= 31);\n if (!dayToken || !yearToken) {\n continue;\n }\n const year = normalizeYear(Number(yearToken));\n const day = Number(dayToken);\n return buildDateFromParts({\n year,\n month,\n day\n });\n }\n return null;\n}", "import { jsx, jsxs } from \"@ecopages/jsx/jsx-runtime\";\nimport { cx } from \"@/lib/cx\";\nexport function RuiIconCalendar({\n class: className,\n size = \"sm\",\n ...props\n}) {\n return /* @__PURE__ */jsxs(\"svg\", {\n ...props,\n class: cx(\"rui-icon\", size === \"md\" && \"rui-icon--md\", className),\n viewBox: \"0 0 24 24\",\n fill: \"none\",\n stroke: \"currentColor\",\n \"stroke-width\": \"2\",\n \"stroke-linecap\": \"round\",\n \"stroke-linejoin\": \"round\",\n \"aria-hidden\": \"true\",\n children: [/* @__PURE__ */jsx(\"path\", {\n d: \"M8 2v4\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M16 2v4\"\n }), /* @__PURE__ */jsx(\"rect\", {\n width: \"18\",\n height: \"18\",\n x: \"3\",\n y: \"4\",\n rx: \"2\"\n }), /* @__PURE__ */jsx(\"path\", {\n d: \"M3 10h18\"\n })]\n });\n}", "export function cx(...parts) {\n return parts.filter(Boolean).join(\" \");\n}", "export function resolveLocale(locale) {\n if (!locale) {\n return void 0;\n }\n const tags = locale.split(\",\").map(tag => tag.trim()).filter(Boolean);\n return tags.length > 1 ? tags : tags[0];\n}", "const OPPOSITE = {\n top: \"bottom\",\n bottom: \"top\",\n left: \"right\",\n right: \"left\"\n};\nconst DEFAULT_VIEWPORT_PADDING = 8;\nfunction parsePlacement(placement) {\n const dash = placement.indexOf(\"-\");\n if (dash === -1) return {\n side: placement,\n align: \"center\"\n };\n const side = placement.slice(0, dash);\n const align = placement.slice(dash + 1);\n return {\n side,\n align: align === \"start\" || align === \"end\" ? align : \"center\"\n };\n}\nfunction primaryAxis(side) {\n return side === \"top\" || side === \"bottom\" ? \"y\" : \"x\";\n}\nfunction coordsFor(anchor, size, side, align, gap) {\n const {\n width,\n height\n } = size;\n let x = 0;\n let y = 0;\n switch (side) {\n case \"top\":\n y = anchor.top - height - gap;\n break;\n case \"bottom\":\n y = anchor.bottom + gap;\n break;\n case \"left\":\n x = anchor.left - width - gap;\n break;\n case \"right\":\n x = anchor.right + gap;\n break;\n }\n if (primaryAxis(side) === \"y\") {\n if (align === \"start\") x = anchor.left;else if (align === \"end\") x = anchor.right - width;else x = anchor.left + (anchor.width - width) / 2;\n } else {\n if (align === \"start\") y = anchor.top;else if (align === \"end\") y = anchor.bottom - height;else y = anchor.top + (anchor.height - height) / 2;\n }\n return {\n x,\n y\n };\n}\nfunction overflowOnPrimary(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return Math.max(0, padding - coords.y);\n if (side === \"bottom\") return Math.max(0, coords.y + size.height - (vh - padding));\n if (side === \"left\") return Math.max(0, padding - coords.x);\n return Math.max(0, coords.x + size.width - (vw - padding));\n}\nfunction freeSpaceOnSide(anchor, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (side === \"top\") return anchor.top - padding - size.height;\n if (side === \"bottom\") return vh - padding - size.height - anchor.bottom;\n if (side === \"left\") return anchor.left - padding - size.width;\n return vw - padding - size.width - anchor.right;\n}\nfunction toPlacement(side, align) {\n if (align === \"center\") {\n return side;\n }\n return `${side}-${align}`;\n}\nfunction clampCrossAxis(coords, size, side, viewport) {\n const {\n padding,\n width: vw,\n height: vh\n } = viewport;\n if (primaryAxis(side) === \"y\") {\n const maxX = Math.max(padding, vw - padding - size.width);\n return {\n x: Math.min(Math.max(coords.x, padding), maxX),\n y: coords.y\n };\n }\n const maxY = Math.max(padding, vh - padding - size.height);\n return {\n x: coords.x,\n y: Math.min(Math.max(coords.y, padding), maxY)\n };\n}\nexport function computeFloatingCoords(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n return computeFloatingPosition(anchor, size, placement, gap, viewport).coords;\n}\nexport function computeFloatingPosition(anchor, size, placement, gap, viewport = {\n width: typeof window === \"undefined\" ? 0 : window.innerWidth,\n height: typeof window === \"undefined\" ? 0 : window.innerHeight,\n padding: DEFAULT_VIEWPORT_PADDING\n}) {\n const {\n side: preferred,\n align\n } = parsePlacement(placement);\n const preferredCoords = coordsFor(anchor, size, preferred, align, gap);\n const preferredOverflow = overflowOnPrimary(preferredCoords, size, preferred, viewport);\n let side = preferred;\n let coords = preferredCoords;\n if (preferredOverflow > 0) {\n const flipped = OPPOSITE[preferred];\n const flippedCoords = coordsFor(anchor, size, flipped, align, gap);\n const preferredFree = freeSpaceOnSide(anchor, size, preferred, viewport);\n const flippedFree = freeSpaceOnSide(anchor, size, flipped, viewport);\n if (flippedFree > preferredFree) {\n side = flipped;\n coords = flippedCoords;\n }\n }\n return {\n coords: clampCrossAxis(coords, size, side, viewport),\n placement: toPlacement(side, align)\n };\n}\nexport function applyFloatingPosition(anchor, floating, placement, gap, options = {}) {\n const {\n coords,\n placement: resolved\n } = computeFloatingPosition(anchor.getBoundingClientRect(), {\n width: floating.offsetWidth,\n height: floating.offsetHeight\n }, placement, gap);\n Object.assign(floating.style, {\n position: \"fixed\",\n left: `${coords.x}px`,\n top: `${coords.y}px`,\n right: \"auto\",\n bottom: \"auto\",\n visibility: \"visible\"\n });\n if (options.matchAnchorWidth) {\n floating.style.width = `${anchor.offsetWidth}px`;\n }\n floating.setAttribute(\"data-placement\", resolved);\n return resolved;\n}\nexport function attachFloating({\n anchor,\n floating,\n getPlacement,\n gap,\n matchAnchorWidth\n}) {\n const update = () => {\n if (floating.hidden) return;\n applyFloatingPosition(anchor, floating, getPlacement(), gap, {\n matchAnchorWidth\n });\n };\n update();\n window.addEventListener(\"resize\", update);\n window.addEventListener(\"scroll\", update, true);\n const observer = new ResizeObserver(update);\n observer.observe(anchor);\n observer.observe(floating);\n return () => {\n window.removeEventListener(\"resize\", update);\n window.removeEventListener(\"scroll\", update, true);\n observer.disconnect();\n };\n}", "export function mountPortal(node, container = document.body) {\n const parent = node.parentNode;\n if (!parent) {\n return {\n unmount: () => {}\n };\n }\n const placeholder = document.createComment(\"rui-portal\");\n parent.insertBefore(placeholder, node);\n container.appendChild(node);\n return {\n unmount: () => {\n const restoreParent = placeholder.parentNode;\n if (!restoreParent) {\n return;\n }\n restoreParent.insertBefore(node, placeholder);\n placeholder.remove();\n }\n };\n}", "import { attachFloating } from \"./floating-position\";\nimport { mountPortal } from \"./portal\";\nexport function popoverContains(anchor, floating, node) {\n if (!node) {\n return false;\n }\n return Boolean(anchor?.contains(node) || floating?.contains(node));\n}\nexport function shouldDismissPopoverFocus(anchor, floating, relatedTarget) {\n if (!(relatedTarget instanceof Node)) {\n return true;\n }\n return !popoverContains(anchor, floating, relatedTarget);\n}\nexport function shouldDismissPopoverPointer(anchor, floating, target) {\n return !popoverContains(anchor, floating, target);\n}\nexport class PopoverController {\n config;\n cleanupFloating = null;\n portalHandle = null;\n floatingElement = null;\n constructor(config) {\n this.config = config;\n }\n updateConfig(patch) {\n this.config = {\n ...this.config,\n ...patch\n };\n }\n sync() {\n const floating = this.resolveFloating();\n if (!floating) {\n return;\n }\n const open = this.config.getOpen();\n if (!open) {\n this.teardown();\n floating.hidden = true;\n return;\n }\n const anchor = this.config.getAnchor();\n if (!anchor) {\n return;\n }\n floating.hidden = false;\n const usePortal = this.config.portal !== false;\n if (usePortal) {\n if (!this.portalHandle) {\n this.portalHandle = mountPortal(floating, this.config.portalContainer ?? document.body);\n }\n } else if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n this.teardownFloating();\n this.cleanupFloating = attachFloating({\n anchor,\n floating,\n getPlacement: this.config.getPlacement,\n gap: this.config.gap ?? 8,\n matchAnchorWidth: this.config.matchAnchorWidth\n });\n }\n contains(node) {\n return popoverContains(this.config.getAnchor(), this.resolveFloating(), node);\n }\n getFloatingElement() {\n return this.resolveFloating();\n }\n teardown() {\n this.teardownFloating();\n if (this.portalHandle) {\n this.portalHandle.unmount();\n this.portalHandle = null;\n }\n }\n destroy() {\n this.teardown();\n this.floatingElement = null;\n }\n resolveFloating() {\n const configuredFloating = this.config.getFloating();\n if (configuredFloating) {\n this.floatingElement = configuredFloating;\n }\n return configuredFloating ?? this.floatingElement;\n }\n teardownFloating() {\n this.cleanupFloating?.();\n this.cleanupFloating = null;\n }\n}", "import { jsx } from \"@ecopages/jsx/jsx-runtime\";\nimport { defineRadiantView } from \"@/lib/radiant-view\";\nimport { RuiDateRangePicker as RuiDateRangePickerElement } from \"./date-range-picker.script\";\nexport const RuiDateRangePicker = defineRadiantView(RuiDateRangePickerElement, ({\n children,\n ...props\n}) => /* @__PURE__ */jsx(\"rui-date-range-picker\", {\n ...props,\n children\n}), {\n stylesheets: [\"./date-range-picker.css\", \"../shared/control-toggle.css\", \"../../../lib/icons/icons.css\", \"../calendar/calendar.css\"]\n});", "const RADIANT_VIEW_ELEMENT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewElement\");\nconst RADIANT_SCRIPT_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptModule\");\nconst RADIANT_SCRIPT_EXPORT = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.scriptExport\");\nconst RADIANT_VIEW_MODULE = /* @__PURE__ */Symbol.for(\"@ecopages/storybook-radiant.viewModule\");\nfunction linkViewToElement(view, element) {\n view[RADIANT_VIEW_ELEMENT] = element;\n const ssrModule = element[RADIANT_SCRIPT_MODULE];\n if (ssrModule) {\n view[RADIANT_SCRIPT_MODULE] = ssrModule;\n view[RADIANT_SCRIPT_EXPORT] = element[RADIANT_SCRIPT_EXPORT] ?? element.name;\n }\n}\nexport function defineRadiantView(element, render, _options) {\n const view = args => render(args);\n linkViewToElement(view, element);\n return view;\n}\nexport function attachRadiantStylesheets(target, _stylesheets, moduleUrl) {\n const view = target;\n view[RADIANT_VIEW_MODULE] = moduleUrl;\n return target;\n}\nexport function syncRadiantViewMetadata(view) {\n const element = view[RADIANT_VIEW_ELEMENT];\n if (element) {\n linkViewToElement(view, element);\n }\n}"],
|
|
5
|
+
"mappings": "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",
|
|
6
6
|
"names": ["jsx", "jsxs", "RadiantElement", "customElement", "event", "onEvent", "onUpdated", "prop", "query", "state", "isoToDate", "iso", "match", "year", "month", "day", "date", "dateToIso", "compareIso", "a", "b", "normalizeRange", "start", "end", "parseIsoRange", "value", "serializeIsoRange", "range", "normalized", "formatterCache", "cacheKey", "locale", "options", "getDateTimeFormat", "key", "cached", "formatter", "formatDisplayDate", "date", "style", "DEFAULT_DEFINITIONS", "resolveDefinition", "char", "definitions", "custom", "builtIn", "DEFAULT_DEFINITIONS", "parseMaskPatternInternal", "pattern", "definitions", "optional", "tokens", "index", "char", "next", "end", "findClosingBracket", "inner", "definition", "resolveDefinition", "start", "depth", "parseMaskPattern", "maskInputSlotCount", "options", "token", "REFERENCE_DATE", "getNumericPartOrder", "locale", "getDateTimeFormat", "part", "buildDateMaskPattern", "parts", "pattern", "extractMaskDigits", "value", "maskDigitCapacity", "pattern", "maskInputSlotCount", "parseMaskPattern", "normalizeYear", "value", "maskedDigitsToParts", "digits", "locale", "order", "getNumericPartOrder", "cursor", "values", "type", "width", "slice", "numeric", "partsToDate", "parts", "date", "REFERENCE_DATE", "getDatePartOrder", "locale", "getDateTimeFormat", "part", "normalizeYear", "value", "buildDateFromParts", "parts", "year", "month", "day", "date", "parseLocaleDateString", "input", "locale", "trimmed", "isoDate", "isoToDate", "fromMask", "parseMaskedInput", "fromMonthName", "parseDateWithMonthNames", "order", "getDatePartOrder", "numbers", "values", "index", "partType", "numeric", "pattern", "buildDateMaskPattern", "digits", "extractMaskDigits", "maskDigitCapacity", "partsToDate", "maskedDigitsToParts", "getMonthNameLookup", "lookup", "style", "label", "getDateTimeFormat", "part", "months", "normalized", "name", "yearToken", "token", "dayToken", "jsx", "jsxs", "cx", "parts", "RuiIconCalendar", "className", "size", "props", "jsxs", "cx", "jsx", "resolveLocale", "locale", "tags", "tag", "OPPOSITE", "DEFAULT_VIEWPORT_PADDING", "parsePlacement", "placement", "dash", "side", "align", "primaryAxis", "coordsFor", "anchor", "size", "gap", "width", "height", "x", "y", "overflowOnPrimary", "coords", "viewport", "padding", "vw", "vh", "freeSpaceOnSide", "toPlacement", "clampCrossAxis", "maxX", "maxY", "computeFloatingPosition", "anchor", "size", "placement", "gap", "viewport", "DEFAULT_VIEWPORT_PADDING", "preferred", "align", "parsePlacement", "preferredCoords", "coordsFor", "preferredOverflow", "overflowOnPrimary", "side", "coords", "flipped", "OPPOSITE", "flippedCoords", "preferredFree", "freeSpaceOnSide", "clampCrossAxis", "toPlacement", "applyFloatingPosition", "floating", "options", "resolved", "attachFloating", "getPlacement", "matchAnchorWidth", "update", "observer", "mountPortal", "node", "container", "parent", "placeholder", "restoreParent", "popoverContains", "anchor", "floating", "node", "shouldDismissPopoverFocus", "relatedTarget", "PopoverController", "config", "patch", "floating", "anchor", "mountPortal", "attachFloating", "node", "popoverContains", "configuredFloating", "_initProto", "_initClass", "_init_value", "_init_extra_value", "_init_min", "_init_extra_min", "_init_max", "_init_extra_max", "_init_disabled", "_init_extra_disabled", "_init_readOnly", "_init_extra_readOnly", "_init_locale", "_init_extra_locale", "_init_placeholderStart", "_init_extra_placeholderStart", "_init_placeholderEnd", "_init_extra_placeholderEnd", "_init_startName", "_init_extra_startName", "_init_endName", "_init_extra_endName", "_init_name", "_init_extra_name", "_init_dateStyle", "_init_extra_dateStyle", "_init_visibleMonths", "_init_extra_visibleMonths", "_init_changeEvent", "_init_extra_changeEvent", "_init_open", "_init_extra_open", "_init_startDisplay", "_init_extra_startDisplay", "_init_endDisplay", "_init_extra_endDisplay", "_init_editing", "_init_extra_editing", "_init_rootTarget", "_init_extra_rootTarget", "_init_popoverTarget", "_init_extra_popoverTarget", "_applyDecs", "o", "i", "a", "c", "u", "s", "f", "l", "p", "d", "m", "h", "y", "v", "g", "t", "n", "r", "b", "e", "applyDec", "w", "D", "S", "j", "E", "I", "P", "k", "F", "_setFunctionName", "N", "O", "T", "z", "A", "H", "_toPropertyKey", "_checkInRHS", "_toPrimitive", "_RuiDateRangePicker", "RuiDateRangePicker", "RadiantElement", "customElement", "prop", "event", "state", "query", "onUpdated", "onEvent", "args", "resolveLocale", "iso", "date", "isoToDate", "formatDisplayDate", "range", "parseIsoRange", "startInput", "endInput", "start", "end", "serialized", "serializeIsoRange", "raw", "trimmed", "parsed", "parseLocaleDateString", "dateToIso", "next", "PopoverController", "popover", "controller", "input", "event2", "target", "detail", "relatedTarget", "shouldDismissPopoverFocus", "calendarProps", "jsxs", "jsx", "RuiIconCalendar", "jsx", "RADIANT_VIEW_ELEMENT", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "linkViewToElement", "view", "element", "RADIANT_VIEW_ELEMENT", "ssrModule", "RADIANT_SCRIPT_MODULE", "RADIANT_SCRIPT_EXPORT", "defineRadiantView", "render", "_options", "args", "RuiDateRangePicker", "defineRadiantView", "_RuiDateRangePicker", "children", "props", "jsx"]
|
|
7
7
|
}
|