UNPKG

39.3 kBJavaScriptView Raw
1import{r as t,e as i,h as e,H as r,i as o}from"./p-3df3e749.js";import{b as n}from"./p-125156f2.js";import{a as s,j as a,h as d,e as c}from"./p-f4d641a6.js";import{p as h,B as l,i as p,e as m,d as g,f,g as b,s as u}from"./p-e5dc79d5.js";import{h as k,g as v}from"./p-11181cdf.js";import{c as x}from"./p-613c0939.js";import{b as w,h as y,a as M}from"./p-a96dd2bf.js";import"./p-94c70170.js";const D=(t,i,e,r)=>{if(t!==V&&t!==Z){if(t===K)return void 0!==e&&void 0!==e.hour?e.hour<12?"AM":"PM":i?i.toUpperCase():"";if(t===Q)return void 0!==e&&void 0!==e.hour?e.hour<12?"am":"pm":i||"";if(null==i)return"";if(t===E||t===B||t===L||t===U||t===X||t===G)return A(i);if(t===_)return W(i);if(t===H)return(r.monthNames?r.monthNames:rt)[i-1];if(t===J)return(r.monthShortNames?r.monthShortNames:ot)[i-1];if(t===q||t===R){if(0===i)return"12";if(i>12&&(i-=12),t===q&&i<10)return"0"+i}return i.toString()}try{return i=new Date(e.year,e.month-1,e.day).getDay(),t===V?(r.dayNames?r.dayNames:it)[i]:(r.dayShortNames?r.dayShortNames:et)[i]}catch(o){}},z=(t,i,e,r=0,o=0)=>parseInt(`1${W(t)}${A(i)}${A(e)}${A(r)}${A(o)}`,10),j=t=>z(t.year,t.month,t.day,t.hour,t.minute),C=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,S=/^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,N=t=>{let i=null;if(null!=t&&""!==t&&(i=S.exec(t),i?(i.unshift(void 0,void 0),i[2]=i[3]=void 0):i=C.exec(t)),null===i)return;for(let r=1;r<8;r++)i[r]=void 0!==i[r]?parseInt(i[r],10):void 0;let e=0;return i[9]&&i[10]&&(e=60*parseInt(i[10],10),i[11]&&(e+=parseInt(i[11],10)),"-"===i[9]&&(e*=-1)),{year:i[1],month:i[2],day:i[3],hour:i[4],minute:i[5],second:i[6],millisecond:i[7],tzOffset:e}},$=(t,i)=>{const e=new Date(t.toLocaleString("en-US",{timeZone:"utc"})),r=new Date(t.toLocaleString("en-US",{timeZone:i}));return e.getTime()-r.getTime()},Y=(t,i)=>i===K||i===Q?t.hour<12?"am":"pm":i===q||i===R?t.hour>12?t.hour-12:0===t.hour?12:t.hour:t[P(i)],P=t=>{for(const i in tt)if(tt[i].f===t)return tt[i].k},I=t=>{let i="";return void 0!==t.year?(i=W(t.year),void 0!==t.month&&(i+="-"+A(t.month),void 0!==t.day&&(i+="-"+A(t.day),void 0!==t.hour&&(i+=`T${A(t.hour)}:${A(t.minute)}:${A(t.second)}`,t.millisecond>0&&(i+="."+O(t.millisecond)),i+=void 0===t.tzOffset?"Z":(t.tzOffset>0?"+":"-")+A(Math.floor(Math.abs(t.tzOffset/60)))+":"+A(t.tzOffset%60))))):void 0!==t.hour&&(i=A(t.hour)+":"+A(t.minute),void 0!==t.second&&(i+=":"+A(t.second),void 0!==t.millisecond&&(i+="."+O(t.millisecond)))),i},F=(t,i)=>{if(null==t)return;let e;return"string"==typeof t&&(t=t.replace(/\[|\]/g,"").split(",")),Array.isArray(t)&&(e=t.map((t=>t.toString().trim()))),void 0!==e&&0!==e.length||console.warn(`Invalid "${i}Names". Must be an array of strings, or a comma separated string.`),e},T=(t,i)=>{let e;return"string"==typeof t&&(t=t.replace(/\[|\]|\s/g,"").split(",")),e=Array.isArray(t)?t.map((t=>parseInt(t,10))).filter(isFinite):[t],0===e.length&&console.warn(`Invalid "${i}Values". Must be an array of numbers, or a comma separated string of numbers.`),e},A=t=>("0"+(void 0!==t?Math.abs(t):"0")).slice(-2),O=t=>("00"+(void 0!==t?Math.abs(t):"0")).slice(-3),W=t=>("000"+(void 0!==t?Math.abs(t):"0")).slice(-4),_="YYYY",E="YY",H="MMMM",J="MMM",B="MM",V="DDDD",Z="DDD",L="DD",U="HH",q="hh",R="h",X="mm",G="ss",K="A",Q="a",tt=[{f:_,k:"year"},{f:H,k:"month"},{f:V,k:"day"},{f:J,k:"month"},{f:Z,k:"day"},{f:E,k:"year"},{f:B,k:"month"},{f:L,k:"day"},{f:U,k:"hour"},{f:q,k:"hour"},{f:X,k:"minute"},{f:G,k:"second"},{f:"M",k:"month"},{f:"D",k:"day"},{f:"H",k:"hour"},{f:R,k:"hour"},{f:"m",k:"minute"},{f:"s",k:"second"},{f:K,k:"ampm"},{f:Q,k:"ampm"}],it=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],et=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],rt=["January","February","March","April","May","June","July","August","September","October","November","December"],ot=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],nt=[q,R,X,"m",G,"s"],st=class{constructor(e){t(this,e),this.ionCancel=i(this,"ionCancel",7),this.ionChange=i(this,"ionChange",7),this.ionFocus=i(this,"ionFocus",7),this.ionBlur=i(this,"ionBlur",7),this.ionStyle=i(this,"ionStyle",7),this.inputId="ion-dt-"+ct++,this.locale={},this.datetimeMin={},this.datetimeMax={},this.datetimeValue={},this.isExpanded=!1,this.name=this.inputId,this.disabled=!1,this.readonly=!1,this.displayFormat="MMM D, YYYY",this.cancelText="Cancel",this.doneText="Done",this.onClick=()=>{this.setFocus(),this.open()},this.onFocus=()=>{this.ionFocus.emit()},this.onBlur=()=>{this.ionBlur.emit()}}disabledChanged(){this.emitStyle()}valueChanged(){this.updateDatetimeValue(this.value),this.emitStyle(),this.ionChange.emit({value:this.value})}componentWillLoad(){this.locale={monthNames:F(this.monthNames,"monthNames"),monthShortNames:F(this.monthShortNames,"monthShortNames"),dayNames:F(this.dayNames,"dayNames"),dayShortNames:F(this.dayShortNames,"dayShortNames")},this.updateDatetimeValue(this.value),this.emitStyle()}async open(){if(this.disabled||this.isExpanded)return;const t=this.generatePickerOptions(),i=await h.create(t);this.isExpanded=!0,i.onDidDismiss().then((()=>{this.isExpanded=!1,this.setFocus()})),s(i,"ionPickerColChange",(async t=>{const e=t.detail,r={};r[e.name]={value:e.options[e.selectedIndex].value},"ampm"!==e.name&&void 0!==this.datetimeValue.ampm&&(r.ampm={value:this.datetimeValue.ampm}),this.updateDatetimeValue(r),i.columns=this.generateColumns()})),await i.present()}emitStyle(){this.ionStyle.emit({interactive:!0,datetime:!0,"has-placeholder":null!=this.placeholder,"has-value":this.hasValue(),"interactive-disabled":this.disabled})}updateDatetimeValue(t){((t,i,e)=>{if(!i||"string"==typeof i){const t=((t="",i="")=>{null==t&&(t=""),10!==t.length&&7!==t.length&&4!==t.length||(t+=" ");const e="string"==typeof t&&t.length>0?new Date(t):new Date,r=new Date(Date.UTC(e.getFullYear(),e.getMonth(),e.getDate(),e.getHours(),e.getMinutes(),e.getSeconds(),e.getMilliseconds()));return i&&i.length>0?new Date(e.getTime()-$(r,i)):r})(i,e);Number.isNaN(t.getTime())||(i=t.toISOString())}if(i&&""!==i){if("string"==typeof i){if(i=N(i))return Object.assign(t,i),!0}else{if(i.year||i.hour||i.month||i.day||i.minute||i.second){void 0!==i.ampm&&void 0!==i.hour&&(i.hour.value="pm"===i.ampm.value?12===i.hour.value?12:i.hour.value+12:12===i.hour.value?0:i.hour.value);for(const e of Object.keys(i))t[e]=i[e].value;return!0}if(i.ampm)return i.hour={value:i.hour?i.hour.value:"pm"===i.ampm.value?t.hour<12?t.hour+12:t.hour:t.hour>=12?t.hour-12:t.hour},t.hour=i.hour.value,t.ampm=i.ampm.value,!0}console.warn(`Error parsing date: "${i}". Please provide a valid ISO 8601 datetime format: https://www.w3.org/TR/NOTE-datetime`)}else for(const r in t)t.hasOwnProperty(r)&&delete t[r]})(this.datetimeValue,t,this.displayTimezone)}generatePickerOptions(){const t=n(this);this.locale={monthNames:F(this.monthNames,"monthNames"),monthShortNames:F(this.monthShortNames,"monthShortNames"),dayNames:F(this.dayNames,"dayNames"),dayShortNames:F(this.dayShortNames,"dayShortNames")};const i=Object.assign(Object.assign({mode:t},this.pickerOptions),{columns:this.generateColumns()}),e=i.buttons;return e&&0!==e.length||(i.buttons=[{text:this.cancelText,role:"cancel",handler:()=>{this.updateDatetimeValue(this.value),this.ionCancel.emit()}},{text:this.doneText,handler:t=>{this.updateDatetimeValue(t);const i=new Date(I(this.datetimeValue));this.datetimeValue.tzOffset=void 0!==this.displayTimezone&&this.displayTimezone.length>0?$(i,this.displayTimezone)/1e3/60*-1:-1*i.getTimezoneOffset(),this.value=I(this.datetimeValue)}}]),i}generateColumns(){let t=this.pickerFormat||this.displayFormat||dt;if(0===t.length)return[];this.calcMinMax(),t=t.replace("DDDD","{~}").replace("DDD","{~}"),-1===t.indexOf("D")&&(t=t.replace("{~}","D")),t=t.replace(/{~}/g,"");const i=(t=>{const i=[];t=t.replace(/[^\w\s]/gi," "),tt.forEach((i=>{i.f.length>1&&t.indexOf(i.f)>-1&&t.indexOf(i.f+i.f.charAt(0))<0&&(t=t.replace(i.f," "+i.f+" "))}));const e=t.split(" ").filter((t=>t.length>0));return e.forEach(((t,r)=>{tt.forEach((o=>{if(t===o.f){if((t===K||t===Q)&&(i.indexOf(R)<0&&i.indexOf(q)<0||-1===nt.indexOf(e[r-1])))return;i.push(t)}}))})),i})(t).map((t=>{const i=P(t);let e;e=this[i+"Values"]?T(this[i+"Values"],i):((t,i,e)=>{const r=[];if(t===_||t===E){if(void 0===e.year||void 0===i.year)throw new Error("min and max year is undefined");for(let t=e.year;t>=i.year;t--)r.push(t)}else if(t===H||t===J||t===B||"M"===t||t===q||t===R)for(let o=1;o<13;o++)r.push(o);else if(t===V||t===Z||t===L||"D"===t)for(let o=1;o<32;o++)r.push(o);else if(t===U||"H"===t)for(let o=0;o<24;o++)r.push(o);else if(t===X||"m"===t)for(let o=0;o<60;o++)r.push(o);else if(t===G||"s"===t)for(let o=0;o<60;o++)r.push(o);else t!==K&&t!==Q||r.push("am","pm");return r})(t,this.datetimeMin,this.datetimeMax);const r=e.map((i=>({value:i,text:D(t,i,void 0,this.locale)}))),o=((t,i)=>{const e=Y(t,i);if(void 0!==e)return i!==K&&i!==Q||(t.ampm=e),e;const r=N((new Date).toISOString());return Y(r,i)})(this.datetimeValue,t),n=r.findIndex((t=>t.value===o));return{name:i,selectedIndex:n>=0?n:0,options:r}})),e=this.datetimeMin,r=this.datetimeMax;return["month","day","hour","minute"].filter((t=>!i.find((i=>i.name===t)))).forEach((t=>{e[t]=0,r[t]=0})),this.validateColumns(at(i))}validateColumns(t){const i=new Date,e=j(this.datetimeMin),r=j(this.datetimeMax),o=t.find((t=>"year"===t.name));let n=i.getFullYear();if(o){o.options.find((t=>t.value===i.getFullYear()))||(n=o.options[0].value);const t=o.selectedIndex;if(void 0!==t){const i=o.options[t];i&&(n=i.value)}}const s=this.validateColumn(t,"month",1,e,r,[n,0,0,0,0],[n,12,31,23,59]),a=4===(d=s)||6===d||9===d||11===d?30:2===d?(t=>t%4==0&&t%100!=0||t%400==0)(n)?29:28:31;var d;const c=this.validateColumn(t,"day",2,e,r,[n,s,0,0,0],[n,s,a,23,59]),h=this.validateColumn(t,"hour",3,e,r,[n,s,c,0,0],[n,s,c,23,59]);return this.validateColumn(t,"minute",4,e,r,[n,s,c,h,0],[n,s,c,h,59]),t}calcMinMax(){const t=(new Date).getFullYear();if(void 0!==this.yearValues){const t=T(this.yearValues,"year");void 0===this.min&&(this.min=Math.min(...t).toString()),void 0===this.max&&(this.max=Math.max(...t).toString())}else void 0===this.min&&(this.min=(t-100).toString()),void 0===this.max&&(this.max=t.toString());const i=this.datetimeMin=N(this.min),e=this.datetimeMax=N(this.max);i.year=i.year||t,e.year=e.year||t,i.month=i.month||1,e.month=e.month||12,i.day=i.day||1,e.day=e.day||31,i.hour=i.hour||0,e.hour=void 0===e.hour?23:e.hour,i.minute=i.minute||0,e.minute=void 0===e.minute?59:e.minute,i.second=i.second||0,e.second=void 0===e.second?59:e.second,i.year>e.year&&(console.error("min.year > max.year"),i.year=e.year-100),i.year===e.year&&(i.month>e.month?(console.error("min.month > max.month"),i.month=1):i.month===e.month&&i.day>e.day&&(console.error("min.day > max.day"),i.day=1))}validateColumn(t,i,e,r,o,n,s){const d=t.find((t=>t.name===i));if(!d)return 0;const c=n.slice(),h=s.slice(),l=d.options;let p=l.length-1,m=0;for(let a=0;a<l.length;a++){const t=l[a],i=t.value;c[e]=t.value,h[e]=t.value,(t.disabled=i<n[e]||i>s[e]||z(h[0],h[1],h[2],h[3],h[4])<r||z(c[0],c[1],c[2],c[3],c[4])>o)||(p=Math.min(p,a),m=Math.max(m,a))}const g=d.selectedIndex=a(p,d.selectedIndex,m),f=d.options[g];return f?f.value:0}get text(){if(null!=this.value&&0!==this.value.length)return((t,i,e)=>{if(void 0===i)return;const r=[];let o=!1;if(tt.forEach(((n,s)=>{if(t.indexOf(n.f)>-1){const a="{"+s+"}",d=D(n.f,i[n.k],i,e);o||void 0===d||null==i[n.k]||(o=!0),r.push(a,d||""),t=t.replace(n.f,a)}})),o){for(let i=0;i<r.length;i+=2)t=t.replace(r[i],r[i+1]);return t}})(this.displayFormat||this.pickerFormat||dt,this.datetimeValue,this.locale)}hasValue(){return void 0!==this.text}setFocus(){this.buttonEl&&this.buttonEl.focus()}render(){const{inputId:t,text:i,disabled:o,readonly:s,isExpanded:a,el:h,placeholder:l}=this,p=n(this),m=t+"-lbl",g=d(h),f=void 0===i&&null!=l,b=void 0===i?null!=l?l:"":i,u=void 0===i?null!=l?"placeholder":void 0:"text";return g&&(g.id=m),c(!0,h,this.name,this.value,this.disabled),e(r,{onClick:this.onClick,"aria-disabled":o?"true":null,"aria-expanded":`${a}`,"aria-haspopup":"true","aria-labelledby":g?m:null,class:{[p]:!0,"datetime-disabled":o,"datetime-readonly":s,"datetime-placeholder":f,"in-item":k("ion-item",h)}},e("div",{class:"datetime-text",part:u},b),e("button",{type:"button",onFocus:this.onFocus,onBlur:this.onBlur,disabled:this.disabled,ref:t=>this.buttonEl=t}))}get el(){return o(this)}static get watchers(){return{disabled:["disabledChanged"],value:["valueChanged"]}}},at=t=>{const i=[];let e,r;for(let o=0;o<t.length;o++){e=t[o],i.push(0);for(const t of e.options)r=t.text.length,r>i[o]&&(i[o]=r)}return 2===i.length?(r=Math.max(i[0],i[1]),t[0].align="right",t[1].align="left",t[0].optionsWidth=t[1].optionsWidth=17*r+"px"):3===i.length&&(r=Math.max(i[0],i[2]),t[0].align="right",t[1].columnWidth=17*i[1]+"px",t[0].optionsWidth=t[2].optionsWidth=17*r+"px",t[2].align="left"),t},dt="MMM D, YYYY";let ct=0;st.style={ios:":host{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;min-width:16px;min-height:1.2em;font-family:var(--ion-font-family, inherit);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.in-item){position:static}:host(.datetime-placeholder){color:var(--placeholder-color)}:host(.datetime-disabled){opacity:0.3;pointer-events:none}:host(.datetime-readonly){pointer-events:none}button{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}[dir=rtl] button,:host-context([dir=rtl]) button{left:unset;right:unset;right:0}button::-moz-focus-inner{border:0}.datetime-text{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;-ms-flex:1;flex:1;min-height:inherit;direction:ltr;overflow:inherit}[dir=rtl] .datetime-text,:host-context([dir=rtl]) .datetime-text{direction:rtl}:host{--placeholder-color:var(--ion-color-step-400, #999999);--padding-top:10px;--padding-end:10px;--padding-bottom:10px;--padding-start:20px}",md:":host{padding-left:var(--padding-start);padding-right:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;min-width:16px;min-height:1.2em;font-family:var(--ion-font-family, inherit);text-overflow:ellipsis;white-space:nowrap;overflow:hidden;z-index:2}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){:host{padding-left:unset;padding-right:unset;-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end)}}:host(.in-item){position:static}:host(.datetime-placeholder){color:var(--placeholder-color)}:host(.datetime-disabled){opacity:0.3;pointer-events:none}:host(.datetime-readonly){pointer-events:none}button{left:0;top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none}[dir=rtl] button,:host-context([dir=rtl]) button{left:unset;right:unset;right:0}button::-moz-focus-inner{border:0}.datetime-text{font-family:inherit;font-size:inherit;font-style:inherit;font-weight:inherit;letter-spacing:inherit;text-decoration:inherit;text-indent:inherit;text-overflow:inherit;text-transform:inherit;text-align:inherit;white-space:inherit;color:inherit;-ms-flex:1;flex:1;min-height:inherit;direction:ltr;overflow:inherit}[dir=rtl] .datetime-text,:host-context([dir=rtl]) .datetime-text{direction:rtl}:host{--placeholder-color:var(--ion-placeholder-color, var(--ion-color-step-400, #999999));--padding-top:10px;--padding-end:0;--padding-bottom:11px;--padding-start:16px}"};const ht=t=>{const i=x(),e=x(),r=x();return e.addElement(t.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),r.addElement(t.querySelector(".picker-wrapper")).fromTo("transform","translateY(100%)","translateY(0%)"),i.addElement(t).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([e,r])},lt=t=>{const i=x(),e=x(),r=x();return e.addElement(t.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",.01),r.addElement(t.querySelector(".picker-wrapper")).fromTo("transform","translateY(0%)","translateY(100%)"),i.addElement(t).easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation([e,r])},pt=class{constructor(e){t(this,e),this.didPresent=i(this,"ionPickerDidPresent",7),this.willPresent=i(this,"ionPickerWillPresent",7),this.willDismiss=i(this,"ionPickerWillDismiss",7),this.didDismiss=i(this,"ionPickerDidDismiss",7),this.presented=!1,this.keyboardClose=!0,this.buttons=[],this.columns=[],this.duration=0,this.showBackdrop=!0,this.backdropDismiss=!0,this.animated=!0,this.onBackdropTap=()=>{this.dismiss(void 0,l)},this.dispatchCancelHandler=t=>{if(p(t.detail.role)){const t=this.buttons.find((t=>"cancel"===t.role));this.callButtonHandler(t)}}}connectedCallback(){m(this.el)}async present(){await g(this,"pickerEnter",ht,ht,void 0),this.duration>0&&(this.durationTimeout=setTimeout((()=>this.dismiss()),this.duration))}dismiss(t,i){return this.durationTimeout&&clearTimeout(this.durationTimeout),f(this,t,i,"pickerLeave",lt,lt)}onDidDismiss(){return b(this.el,"ionPickerDidDismiss")}onWillDismiss(){return b(this.el,"ionPickerWillDismiss")}getColumn(t){return Promise.resolve(this.columns.find((i=>i.name===t)))}async buttonClick(t){const i=t.role;return p(i)?this.dismiss(void 0,i):await this.callButtonHandler(t)?this.dismiss(this.getSelected(),t.role):Promise.resolve()}async callButtonHandler(t){return!t||!1!==await u(t.handler,this.getSelected())}getSelected(){const t={};return this.columns.forEach(((i,e)=>{const r=void 0!==i.selectedIndex?i.options[i.selectedIndex]:void 0;t[i.name]={text:r?r.text:void 0,value:r?r.value:void 0,columnIndex:e}})),t}render(){const t=n(this);return e(r,{"aria-modal":"true",tabindex:"-1",class:Object.assign({[t]:!0,[`picker-${t}`]:!0},v(this.cssClass)),style:{zIndex:`${2e4+this.overlayIndex}`},onIonBackdropTap:this.onBackdropTap,onIonPickerWillDismiss:this.dispatchCancelHandler},e("ion-backdrop",{visible:this.showBackdrop,tappable:this.backdropDismiss}),e("div",{tabindex:"0"}),e("div",{class:"picker-wrapper ion-overlay-wrapper",role:"dialog"},e("div",{class:"picker-toolbar"},this.buttons.map((t=>e("div",{class:mt(t)},e("button",{type:"button",onClick:()=>this.buttonClick(t),class:gt(t)},t.text))))),e("div",{class:"picker-columns"},e("div",{class:"picker-above-highlight"}),this.presented&&this.columns.map((t=>e("ion-picker-column",{col:t}))),e("div",{class:"picker-below-highlight"}))),e("div",{tabindex:"0"}))}get el(){return o(this)}},mt=t=>({[`picker-toolbar-${t.role}`]:void 0!==t.role,"picker-toolbar-button":!0}),gt=t=>Object.assign({"picker-button":!0,"ion-activatable":!0},v(t.cssClass));pt.style={ios:".sc-ion-picker-ios-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}[dir=rtl].sc-ion-picker-ios-h,[dir=rtl] .sc-ion-picker-ios-h{left:unset;right:unset;right:0}.overlay-hidden.sc-ion-picker-ios-h{display:none}.picker-wrapper.sc-ion-picker-ios{border-radius:var(--border-radius);left:0;right:0;bottom:0;margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-wrapper.sc-ion-picker-ios{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.picker-toolbar.sc-ion-picker-ios{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-ios{border:0;font-family:inherit}.picker-button.sc-ion-picker-ios:active,.picker-button.sc-ion-picker-ios:focus{outline:none}.picker-columns.sc-ion-picker-ios{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;direction:ltr;overflow:hidden}.picker-above-highlight.sc-ion-picker-ios,.picker-below-highlight.sc-ion-picker-ios{display:none;pointer-events:none}.sc-ion-picker-ios-h{--background:var(--ion-background-color, #fff);--border-width:1px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, #c8c7cc)));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-ios{display:-ms-flexbox;display:flex;height:44px;border-bottom:0.55px solid var(--border-color)}.picker-toolbar-button.sc-ion-picker-ios{-ms-flex:1;flex:1;text-align:end}.picker-toolbar-button.sc-ion-picker-ios:last-child .picker-button.sc-ion-picker-ios{font-weight:600}.picker-toolbar-button.sc-ion-picker-ios:first-child{font-weight:normal;text-align:start}.picker-button.sc-ion-picker-ios,.picker-button.ion-activated.sc-ion-picker-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:1em;padding-right:1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:16px}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-button.sc-ion-picker-ios,.picker-button.ion-activated.sc-ion-picker-ios{padding-left:unset;padding-right:unset;-webkit-padding-start:1em;padding-inline-start:1em;-webkit-padding-end:1em;padding-inline-end:1em}}.picker-columns.sc-ion-picker-ios{height:215px;-webkit-perspective:1000px;perspective:1000px}.picker-above-highlight.sc-ion-picker-ios{left:0;top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:81px;border-bottom:1px solid var(--border-color);background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to bottom, var(--background, var(--ion-background-color, #fff)) 20%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:10}[dir=rtl].sc-ion-picker-ios .picker-above-highlight.sc-ion-picker-ios,[dir=rtl].sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-above-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}.picker-below-highlight.sc-ion-picker-ios{left:0;top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);display:block;position:absolute;width:100%;height:119px;border-top:1px solid var(--border-color);background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--background, var(--ion-background-color, #fff))), to(rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8)));background:linear-gradient(to top, var(--background, var(--ion-background-color, #fff)) 30%, rgba(var(--background-rgb, var(--ion-background-color-rgb, 255, 255, 255)), 0.8) 100%);z-index:11}[dir=rtl].sc-ion-picker-ios .picker-below-highlight.sc-ion-picker-ios,[dir=rtl].sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios,[dir=rtl] .sc-ion-picker-ios-h .picker-below-highlight.sc-ion-picker-ios{left:unset;right:unset;right:0}",md:".sc-ion-picker-md-h{--border-radius:0;--border-style:solid;--min-width:auto;--width:100%;--max-width:500px;--min-height:auto;--max-height:auto;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;left:0;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;font-family:var(--ion-font-family, inherit);contain:strict;-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none;z-index:1001}[dir=rtl].sc-ion-picker-md-h,[dir=rtl] .sc-ion-picker-md-h{left:unset;right:unset;right:0}.overlay-hidden.sc-ion-picker-md-h{display:none}.picker-wrapper.sc-ion-picker-md{border-radius:var(--border-radius);left:0;right:0;bottom:0;margin-left:auto;margin-right:auto;margin-top:auto;margin-bottom:auto;-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;overflow:hidden;z-index:10}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-wrapper.sc-ion-picker-md{margin-left:unset;margin-right:unset;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto}}.picker-toolbar.sc-ion-picker-md{width:100%;background:transparent;contain:strict;z-index:1}.picker-button.sc-ion-picker-md{border:0;font-family:inherit}.picker-button.sc-ion-picker-md:active,.picker-button.sc-ion-picker-md:focus{outline:none}.picker-columns.sc-ion-picker-md{display:-ms-flexbox;display:flex;position:relative;-ms-flex-pack:center;justify-content:center;margin-bottom:var(--ion-safe-area-bottom, 0);contain:strict;direction:ltr;overflow:hidden}.picker-above-highlight.sc-ion-picker-md,.picker-below-highlight.sc-ion-picker-md{display:none;pointer-events:none}.sc-ion-picker-md-h{--background:var(--ion-background-color, #fff);--border-width:0.55px 0 0;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));--height:260px;--backdrop-opacity:var(--ion-backdrop-opacity, 0.26);color:var(--ion-item-color, var(--ion-text-color, #000))}.picker-toolbar.sc-ion-picker-md{display:-ms-flexbox;display:flex;-ms-flex-pack:end;justify-content:flex-end;height:44px}.picker-button.sc-ion-picker-md,.picker-button.ion-activated.sc-ion-picker-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:1.1em;padding-right:1.1em;padding-top:0;padding-bottom:0;height:44px;background:transparent;color:var(--ion-color-primary, #3880ff);font-size:14px;font-weight:500;text-transform:uppercase;-webkit-box-shadow:none;box-shadow:none}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-button.sc-ion-picker-md,.picker-button.ion-activated.sc-ion-picker-md{padding-left:unset;padding-right:unset;-webkit-padding-start:1.1em;padding-inline-start:1.1em;-webkit-padding-end:1.1em;padding-inline-end:1.1em}}.picker-columns.sc-ion-picker-md{height:216px;-webkit-perspective:1800px;perspective:1800px}.picker-above-highlight.sc-ion-picker-md{left:0;top:0;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:81px;border-bottom:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left top, left bottom, color-stop(20%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to bottom, var(--ion-background-color, #fff) 20%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:10}[dir=rtl].sc-ion-picker-md .picker-above-highlight.sc-ion-picker-md,[dir=rtl].sc-ion-picker-md-h .picker-above-highlight.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-above-highlight.sc-ion-picker-md{left:unset;right:unset;right:0}.picker-below-highlight.sc-ion-picker-md{left:0;top:115px;-webkit-transform:translate3d(0, 0, 90px);transform:translate3d(0, 0, 90px);position:absolute;width:100%;height:119px;border-top:1px solid var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))));background:-webkit-gradient(linear, left bottom, left top, color-stop(30%, var(--ion-background-color, #fff)), to(rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8)));background:linear-gradient(to top, var(--ion-background-color, #fff) 30%, rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8) 100%);z-index:11}[dir=rtl].sc-ion-picker-md .picker-below-highlight.sc-ion-picker-md,[dir=rtl].sc-ion-picker-md-h .picker-below-highlight.sc-ion-picker-md,[dir=rtl] .sc-ion-picker-md-h .picker-below-highlight.sc-ion-picker-md{left:unset;right:unset;right:0}"};const ft=class{constructor(e){t(this,e),this.ionPickerColChange=i(this,"ionPickerColChange",7),this.optHeight=0,this.rotateFactor=0,this.scaleFactor=1,this.velocity=0,this.y=0,this.noAnimate=!0}colChanged(){this.refresh()}async connectedCallback(){let t=0,i=.81;"ios"===n(this)&&(t=-.46,i=1),this.rotateFactor=t,this.scaleFactor=i,this.gesture=(await __sc_import_ionic("./p-e3be73c0.js")).createGesture({el:this.el,gestureName:"picker-swipe",gesturePriority:100,threshold:0,passive:!1,onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:t=>this.onEnd(t)}),this.gesture.enable(),this.tmrId=setTimeout((()=>{this.noAnimate=!1,this.refresh(!0)}),250)}componentDidLoad(){const t=this.optsEl;t&&(this.optHeight=t.firstElementChild?t.firstElementChild.clientHeight:0),this.refresh()}disconnectedCallback(){cancelAnimationFrame(this.rafId),clearTimeout(this.tmrId),this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}emitColChange(){this.ionPickerColChange.emit(this.col)}setSelected(t,i){const e=t>-1?-t*this.optHeight:0;this.velocity=0,cancelAnimationFrame(this.rafId),this.update(e,i,!0),this.emitColChange()}update(t,i,e){if(!this.optsEl)return;let r=0,o=0;const{col:n,rotateFactor:s}=this,a=n.selectedIndex=this.indexForY(-t),d=0===i?"":i+"ms",c=`scale(${this.scaleFactor})`,h=this.optsEl.children;for(let l=0;l<h.length;l++){const e=h[l],p=n.options[l],m=l*this.optHeight+t;let g="";if(0!==s){const t=m*s;Math.abs(t)<=90?(r=0,o=90,g=`rotateX(${t}deg) `):r=-9999}else o=0,r=m;const f=a===l;g+=`translate3d(0px,${r}px,${o}px) `,1===this.scaleFactor||f||(g+=c),this.noAnimate?(p.duration=0,e.style.transitionDuration=""):i!==p.duration&&(p.duration=i,e.style.transitionDuration=d),g!==p.transform&&(p.transform=g,e.style.transform=g),f!==p.selected&&(p.selected=f,f?e.classList.add(bt):e.classList.remove(bt))}this.col.prevSelected=a,e&&(this.y=t),this.lastIndex!==a&&(w(),this.lastIndex=a)}decelerate(){if(0!==this.velocity){this.velocity*=ut,this.velocity=this.velocity>0?Math.max(this.velocity,1):Math.min(this.velocity,-1);let t=this.y+this.velocity;t>this.minY?(t=this.minY,this.velocity=0):t<this.maxY&&(t=this.maxY,this.velocity=0),this.update(t,0,!0),Math.round(t)%this.optHeight!=0||Math.abs(this.velocity)>1?this.rafId=requestAnimationFrame((()=>this.decelerate())):(this.velocity=0,this.emitColChange(),y())}else if(this.y%this.optHeight!=0){const t=Math.abs(this.y%this.optHeight);this.velocity=t>this.optHeight/2?1:-1,this.decelerate()}}indexForY(t){return Math.min(Math.max(Math.abs(Math.round(t/this.optHeight)),0),this.col.options.length-1)}onStart(t){t.event.cancelable&&t.event.preventDefault(),t.event.stopPropagation(),M(),cancelAnimationFrame(this.rafId);const i=this.col.options;let e=i.length-1,r=0;for(let o=0;o<i.length;o++)i[o].disabled||(e=Math.min(e,o),r=Math.max(r,o));this.minY=-e*this.optHeight,this.maxY=-r*this.optHeight}onMove(t){t.event.cancelable&&t.event.preventDefault(),t.event.stopPropagation();let i=this.y+t.deltaY;i>this.minY?(i=Math.pow(i,.8),this.bounceFrom=i):i<this.maxY?(i+=Math.pow(this.maxY-i,.9),this.bounceFrom=i):this.bounceFrom=0,this.update(i,0,!1)}onEnd(t){if(this.bounceFrom>0)return this.update(this.minY,100,!0),void this.emitColChange();if(this.bounceFrom<0)return this.update(this.maxY,100,!0),void this.emitColChange();if(this.velocity=a(-kt,23*t.velocityY,kt),0===this.velocity&&0===t.deltaY){const i=t.event.target.closest(".picker-opt");i&&i.hasAttribute("opt-index")&&this.setSelected(parseInt(i.getAttribute("opt-index"),10),vt)}else{if(this.y+=t.deltaY,Math.abs(t.velocityY)<.05){const i=t.deltaY>0,e=Math.abs(this.y)%this.optHeight/this.optHeight;i&&e>.5?this.velocity=-1*Math.abs(this.velocity):!i&&e<=.5&&(this.velocity=Math.abs(this.velocity))}this.decelerate()}}refresh(t){let i=this.col.options.length-1,e=0;const r=this.col.options;for(let n=0;n<r.length;n++)r[n].disabled||(i=Math.min(i,n),e=Math.max(e,n));if(0!==this.velocity)return;const o=a(i,this.col.selectedIndex||0,e);if(this.col.prevSelected!==o||t){const t=o*this.optHeight*-1;this.velocity=0,this.update(t,vt,!0)}}render(){const t=this.col,i=n(this);return e(r,{class:{[i]:!0,"picker-col":!0,"picker-opts-left":"left"===this.col.align,"picker-opts-right":"right"===this.col.align},style:{"max-width":this.col.columnWidth}},t.prefix&&e("div",{class:"picker-prefix",style:{width:t.prefixWidth}},t.prefix),e("div",{class:"picker-opts",style:{maxWidth:t.optionsWidth},ref:t=>this.optsEl=t},t.options.map(((t,i)=>e("button",{type:"button",class:{"picker-opt":!0,"picker-opt-disabled":!!t.disabled},"opt-index":i},t.text)))),t.suffix&&e("div",{class:"picker-suffix",style:{width:t.suffixWidth}},t.suffix))}get el(){return o(this)}static get watchers(){return{col:["colChanged"]}}},bt="picker-opt-selected",ut=.97,kt=90,vt=150;ft.style={ios:".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{left:0;top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{padding-left:4px;padding-right:4px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-col{padding-left:unset;padding-right:unset;-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px}}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:20px;line-height:42px;pointer-events:none}.picker-opt{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-transform-origin:center center;transform-origin:center center;height:46px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:20px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{-webkit-transform-origin:calc(100% - center) center;transform-origin:calc(100% - center) center}",md:".picker-col{display:-ms-flexbox;display:flex;position:relative;-ms-flex:1;flex:1;-ms-flex-pack:center;justify-content:center;height:100%;-webkit-box-sizing:content-box;box-sizing:content-box;contain:content}.picker-opts{position:relative;-ms-flex:1;flex:1;max-width:100%}.picker-opt{left:0;top:0;display:block;position:absolute;width:100%;border:0;text-align:center;text-overflow:ellipsis;white-space:nowrap;contain:strict;overflow:hidden;will-change:transform}[dir=rtl] .picker-opt,:host-context([dir=rtl]) .picker-opt{left:unset;right:unset;right:0}.picker-opt.picker-opt-disabled{pointer-events:none}.picker-opt-disabled{opacity:0}.picker-opts-left{-ms-flex-pack:start;justify-content:flex-start}.picker-opts-right{-ms-flex-pack:end;justify-content:flex-end}.picker-opt:active,.picker-opt:focus{outline:none}.picker-prefix{position:relative;-ms-flex:1;flex:1;text-align:end;white-space:nowrap}.picker-suffix{position:relative;-ms-flex:1;flex:1;text-align:start;white-space:nowrap}.picker-col{padding-left:8px;padding-right:8px;padding-top:0;padding-bottom:0;-webkit-transform-style:preserve-3d;transform-style:preserve-3d}@supports ((-webkit-margin-start: 0) or (margin-inline-start: 0)) or (-webkit-margin-start: 0){.picker-col{padding-left:unset;padding-right:unset;-webkit-padding-start:8px;padding-inline-start:8px;-webkit-padding-end:8px;padding-inline-end:8px}}.picker-prefix,.picker-suffix,.picker-opts{top:77px;-webkit-transform-style:preserve-3d;transform-style:preserve-3d;color:inherit;font-size:22px;line-height:42px;pointer-events:none}.picker-opt{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;height:43px;-webkit-transition-timing-function:ease-out;transition-timing-function:ease-out;background:transparent;color:inherit;font-size:22px;line-height:42px;-webkit-backface-visibility:hidden;backface-visibility:hidden;pointer-events:auto}.picker-prefix,.picker-suffix,.picker-opt.picker-opt-selected{color:var(--ion-color-primary, #3880ff)}"};export{st as ion_datetime,pt as ion_picker,ft as ion_picker_column}
\No newline at end of file