import{__awaiter,__generator}from"tslib"; /*! * (C) Ionic http://ionicframework.com - MIT License */import{r as registerInstance,h,H as Host,f as getElement}from"./index-73fa3fe8.js";import{a as addEventListener,c as componentOnReady}from"./helpers-be245865.js";import{a as printIonError}from"./index-9b0d46f4.js";import{c as createColorClasses}from"./theme-01f3f29c.js";import{b as getIonMode}from"./ionic-global-d89a6ff6.js";import{s as parseDate,x as getToday,L as getHourCycle,N as getLocalizedDateTime,M as getLocalizedTime}from"./data-bb424ba8.js";var iosDatetimeButtonCss=":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}";var IonDatetimeButtonIosStyle0=iosDatetimeButtonCss;var mdDatetimeButtonCss=":host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:6px;padding-bottom:6px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, #edeef0);color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}";var IonDatetimeButtonMdStyle0=mdDatetimeButtonCss;var DatetimeButton=function(){function e(e){var t=this;registerInstance(this,e);this.datetimeEl=null;this.overlayEl=null;this.getParsedDateValues=function(e){if(e===undefined||e===null){return[]}if(Array.isArray(e)){return e}return[e]};this.setDateTimeText=function(){var e,i,n,a,r;var o=t,s=o.datetimeEl,d=o.datetimePresentation;if(!s){return}var c=s.value,l=s.locale,u=s.formatOptions,m=s.hourCycle,p=s.preferWheel,f=s.multiple,h=s.titleSelectedDatesFormatter;var v=t.getParsedDateValues(c);var b=parseDate(v.length>0?v:[getToday()]);if(!b){return}var g=b[0];var x=getHourCycle(l,m);t.dateText=t.timeText=undefined;switch(d){case"date-time":case"time-date":var y=getLocalizedDateTime(l,g,(e=u===null||u===void 0?void 0:u.date)!==null&&e!==void 0?e:{month:"short",day:"numeric",year:"numeric"});var w=getLocalizedTime(l,g,x,u===null||u===void 0?void 0:u.time);if(p){t.dateText="".concat(y," ").concat(w)}else{t.dateText=y;t.timeText=w}break;case"date":if(f&&v.length!==1){var k="".concat(v.length," days");if(h!==undefined){try{k=h(v)}catch(e){printIonError("Exception in provided `titleSelectedDatesFormatter`: ",e)}}t.dateText=k}else{t.dateText=getLocalizedDateTime(l,g,(i=u===null||u===void 0?void 0:u.date)!==null&&i!==void 0?i:{month:"short",day:"numeric",year:"numeric"})}break;case"time":t.timeText=getLocalizedTime(l,g,x,u===null||u===void 0?void 0:u.time);break;case"month-year":t.dateText=getLocalizedDateTime(l,g,(n=u===null||u===void 0?void 0:u.date)!==null&&n!==void 0?n:{month:"long",year:"numeric"});break;case"month":t.dateText=getLocalizedDateTime(l,g,(a=u===null||u===void 0?void 0:u.time)!==null&&a!==void 0?a:{month:"long"});break;case"year":t.dateText=getLocalizedDateTime(l,g,(r=u===null||u===void 0?void 0:u.time)!==null&&r!==void 0?r:{year:"numeric"});break}};this.waitForDatetimeChanges=function(){return __awaiter(t,void 0,void 0,(function(){var e;return __generator(this,(function(t){e=this.datetimeEl;if(!e){return[2,Promise.resolve()]}return[2,new Promise((function(t){addEventListener(e,"ionRender",t,{once:true})}))]}))}))};this.handleDateClick=function(e){return __awaiter(t,void 0,void 0,(function(){var t,i,n,a,r;return __generator(this,(function(o){t=this,i=t.datetimeEl,n=t.datetimePresentation;if(!i){return[2]}a=false;switch(n){case"date-time":case"time-date":r=i.presentation!=="date";if(!i.preferWheel&&r){i.presentation="date";a=true}break}this.selectedButton="date";this.presentOverlay(e,a,this.dateTargetEl);return[2]}))}))};this.handleTimeClick=function(e){var i=t,n=i.datetimeEl,a=i.datetimePresentation;if(!n){return}var r=false;switch(a){case"date-time":case"time-date":var o=n.presentation!=="time";if(o){n.presentation="time";r=true}break}t.selectedButton="time";t.presentOverlay(e,r,t.timeTargetEl)};this.presentOverlay=function(e,i,n){return __awaiter(t,void 0,void 0,(function(){var t;return __generator(this,(function(a){switch(a.label){case 0:t=this.overlayEl;if(!t){return[2]}if(!(t.tagName==="ION-POPOVER"))return[3,3];if(!i)return[3,2];return[4,this.waitForDatetimeChanges()];case 1:a.sent();a.label=2;case 2:t.present(Object.assign(Object.assign({},e),{detail:{ionShadowTarget:n}}));return[3,4];case 3:t.present();a.label=4;case 4:return[2]}}))}))};this.datetimePresentation="date-time";this.dateText=undefined;this.timeText=undefined;this.datetimeActive=false;this.selectedButton=undefined;this.color="primary";this.disabled=false;this.datetime=undefined}e.prototype.componentWillLoad=function(){return __awaiter(this,void 0,void 0,(function(){var e,t,i,n;var a=this;return __generator(this,(function(r){e=this.datetime;if(!e){printIonError("An ID associated with an ion-datetime instance is required for ion-datetime-button to function properly.",this.el);return[2]}t=this.datetimeEl=document.getElementById(e);if(!t){printIonError("No ion-datetime instance found for ID '".concat(e,"'."),this.el);return[2]}if(t.tagName!=="ION-DATETIME"){printIonError("Expected an ion-datetime instance for ID '".concat(e,"' but received '").concat(t.tagName.toLowerCase(),"' instead."),t);return[2]}i=new IntersectionObserver((function(e){var t=e[0];a.datetimeActive=t.isIntersecting}),{threshold:.01});i.observe(t);n=this.overlayEl=t.closest("ion-modal, ion-popover");if(n){n.classList.add("ion-datetime-button-overlay")}componentOnReady(t,(function(){var e=a.datetimePresentation=t.presentation||"date-time";a.setDateTimeText();addEventListener(t,"ionValueChange",a.setDateTimeText);switch(e){case"date-time":case"date":case"month-year":case"month":case"year":a.selectedButton="date";break;case"time-date":case"time":a.selectedButton="time";break}}));return[2]}))}))};e.prototype.render=function(){var e;var t=this;var i=this,n=i.color,a=i.dateText,r=i.timeText,o=i.selectedButton,s=i.datetimeActive,d=i.disabled;var c=getIonMode(this);return h(Host,{key:"a38773e24ea0a28315be89baf0ef97f564b5d74b",class:createColorClasses(n,(e={},e[c]=true,e["".concat(o,"-active")]=s,e["datetime-button-disabled"]=d,e))},a&&h("button",{class:"ion-activatable",id:"date-button","aria-expanded":s?"true":"false",onClick:this.handleDateClick,disabled:d,part:"native",ref:function(e){return t.dateTargetEl=e}},h("slot",{name:"date-target"},a),c==="md"&&h("ion-ripple-effect",null)),r&&h("button",{class:"ion-activatable",id:"time-button","aria-expanded":s?"true":"false",onClick:this.handleTimeClick,disabled:d,part:"native",ref:function(e){return t.timeTargetEl=e}},h("slot",{name:"time-target"},r),c==="md"&&h("ion-ripple-effect",null)))};Object.defineProperty(e.prototype,"el",{get:function(){return getElement(this)},enumerable:false,configurable:true});return e}();DatetimeButton.style={ios:IonDatetimeButtonIosStyle0,md:IonDatetimeButtonMdStyle0};export{DatetimeButton as ion_datetime_button};