@acdh-oeaw/universalviewer
Version:
The Universal Viewer is a community-developed open source project on a mission to help you share your 📚📜📰📽️📻🗿 with the 🌎
2 lines (1 loc) • 16.7 kB
JavaScript
import{a as U}from"./chunk-Y2TXPXZV.js";import{c as X}from"./chunk-MOC77MIC.js";import{c as J,d as B,e as G}from"./chunk-4DAZ7WDM.js";import{a as Z,e as F,f as K,i as g,l as $,o as I}from"./chunk-JFPB5N6O.js";import"./chunk-L67DAW3A.js";var q=function(e,t,r,n){return new(r||(r=Promise))(function(i,o){function u(a){try{l(n.next(a))}catch(d){o(d)}}function s(a){try{l(n.throw(a))}catch(d){o(d)}}function l(a){a.done?i(a.value):new r(function(d){d(a.value)}).then(u,s)}l((n=n.apply(e,t||[])).next())})},Q=function(e,t){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},n,i,o,u;return u={next:s(0),throw:s(1),return:s(2)},typeof Symbol=="function"&&(u[Symbol.iterator]=function(){return this}),u;function s(a){return function(d){return l([a,d])}}function l(a){if(n)throw new TypeError("Generator is already executing.");for(;r;)try{if(n=1,i&&(o=a[0]&2?i.return:a[0]?i.throw||((o=i.return)&&o.call(i),0):i.next)&&!(o=o.call(i,a[1])).done)return o;switch(i=0,o&&(a=[a[0]&2,o.value]),a[0]){case 0:case 1:o=a;break;case 4:return r.label++,{value:a[1],done:!1};case 5:r.label++,i=a[1],a=[0];continue;case 7:a=r.ops.pop(),r.trys.pop();continue;default:if(o=r.trys,!(o=o.length>0&&o[o.length-1])&&(a[0]===6||a[0]===2)){r=0;continue}if(a[0]===3&&(!o||a[1]>o[0]&&a[1]<o[3])){r.label=a[1];break}if(a[0]===6&&r.label<o[1]){r.label=o[1],o=a;break}if(o&&r.label<o[2]){r.label=o[2],r.ops.push(a);break}o[2]&&r.ops.pop(),r.trys.pop();continue}a=t.call(e,r)}catch(d){a=[6,d],i=0}finally{n=o=0}if(a[0]&5)throw a[1];return{value:a[0]?a[1]:void 0,done:!0}}},ve=function(e,t){var r=te(e,t);if(r!==void 0)return r;var n=A(new Date().toISOString());return te(n,t)},pe=function(e,t,r){if(t!==void 0){var n=[],i=!1;if(M.forEach(function(u,s){if(e.indexOf(u.f)>-1){var l="{"+s+"}",a=oe(u.f,t[u.k],t,r);!i&&a!==void 0&&t[u.k]!=null&&(i=!0),n.push(l,a||""),e=e.replace(u.f,l)}}),!!i){for(var o=0;o<n.length;o+=2)e=e.replace(n[o],n[o+1]);return e}}},oe=function(e,t,r,n){if(e===_||e===H){try{return t=new Date(r.year,r.month-1,r.day).getDay(),e===_?(n.dayNames?n.dayNames:Fe)[t]:(n.dayShortNames?n.dayShortNames:ke)[t]}catch{}return}if(e===x)return r!==void 0&&r.hour!==void 0?r.hour<12?"AM":"PM":t?t.toUpperCase():"";if(e===O)return r!==void 0&&r.hour!==void 0?r.hour<12?"am":"pm":t||"";if(t==null)return"";if(e===Y||e===w||e===P||e===z||e===S||e===C)return f(t);if(e===V)return E(t);if(e===R)return(n.monthNames?n.monthNames:Ae)[t-1];if(e===D)return(n.monthShortNames?n.monthShortNames:_e)[t-1];if(e===m||e===b){if(t===0)return"12";if(t>12&&(t-=12),e===m&&t<10)return"0"+t}return t.toString()},me=function(e,t,r){var n=[];if(e===V||e===Y){if(r.year===void 0||t.year===void 0)throw new Error("min and max year is undefined");for(var i=r.year;i>=t.year;i--)n.push(i)}else if(e===R||e===D||e===w||e===se||e===m||e===b)for(var i=1;i<13;i++)n.push(i);else if(e===_||e===H||e===P||e===de)for(var i=1;i<32;i++)n.push(i);else if(e===z||e===le)for(var i=0;i<24;i++)n.push(i);else if(e===S||e===W)for(var i=0;i<60;i++)n.push(i);else if(e===C||e===j)for(var i=0;i<60;i++)n.push(i);else(e===x||e===O)&&n.push("am","pm");return n},N=function(e,t,r,n,i){return n===void 0&&(n=0),i===void 0&&(i=0),parseInt("1"+E(e)+f(t)+f(r)+f(n)+f(i),10)},ee=function(e){return N(e.year,e.month,e.day,e.hour,e.minute)},ye=function(e,t){return e===4||e===6||e===9||e===11?30:e===2?ge(t)?29:28:31},ge=function(e){return e%4===0&&e%100!==0||e%400===0},Me=/^(\d{4}|[+\-]\d{6})(?:-(\d{2})(?:-(\d{2}))?)?(?:T(\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,be=/^((\d{2}):(\d{2})(?::(\d{2})(?:\.(\d{3}))?)?(?:(Z)|([+\-])(\d{2})(?::(\d{2}))?)?)?$/,A=function(e){var t=null;if(e!=null&&e!==""&&(t=be.exec(e),t?(t.unshift(void 0,void 0),t[2]=t[3]=void 0):t=Me.exec(e)),t!==null){for(var r=1;r<8;r++)t[r]=t[r]!==void 0?parseInt(t[r],10):void 0;var n=0;return t[9]&&t[10]&&(n=parseInt(t[10],10)*60,t[11]&&(n+=parseInt(t[11],10)),t[9]==="-"&&(n*=-1)),{year:t[1],month:t[2],day:t[3],hour:t[4],minute:t[5],second:t[6],millisecond:t[7],tzOffset:n}}},xe=function(e){e===void 0&&(e=""),e==null&&(e=""),(e.length===10||e.length===7)&&(e+=" ");var t=typeof e=="string"&&e.length>0?new Date(e):new Date;return new Date(Date.UTC(t.getFullYear(),t.getMonth(),t.getDate(),t.getHours(),t.getMinutes(),t.getSeconds(),t.getMilliseconds()))},Oe=function(e,t){if(!t||typeof t=="string"){var r=xe(t);Number.isNaN(r.getTime())||(t=r.toISOString())}if(t&&t!==""){if(typeof t=="string"){if(t=A(t),t)return Object.assign(e,t),!0}else if(t.year||t.hour||t.month||t.day||t.minute||t.second){t.ampm&&t.hour&&(t.hour.value=t.ampm.value==="pm"?t.hour.value===12?12:t.hour.value+12:t.hour.value===12?0:t.hour.value);for(var n=0,i=Object.keys(t);n<i.length;n++){var o=i[n];e[o]=t[o].value}return!0}else if(t.ampm)return t.hour={value:t.hour?t.hour.value:t.ampm.value==="pm"?e.hour<12?e.hour+12:e.hour:e.hour>=12?e.hour-12:e.hour},e.hour=t.hour.value,!0;console.warn('Error parsing date: "'+t+'". Please provide a valid ISO 8601 datetime format: https://www.w3.org/TR/NOTE-datetime')}else for(var u in e)e.hasOwnProperty(u)&&delete e[u];return!1},Te=function(e){var t=[];e=e.replace(/[^\w\s]/gi," "),M.forEach(function(n){n.f.length>1&&e.indexOf(n.f)>-1&&e.indexOf(n.f+n.f.charAt(0))<0&&(e=e.replace(n.f," "+n.f+" "))});var r=e.split(" ").filter(function(n){return n.length>0});return r.forEach(function(n,i){M.forEach(function(o){if(n===o.f){if((n===x||n===O)&&(t.indexOf(b)<0&&t.indexOf(m)<0||Se.indexOf(r[i-1])===-1))return;t.push(n)}})}),t},te=function(e,t){return t===x||t===O?e.hour<12?"am":"pm":t===m||t===b?e.hour>12?e.hour-12:e.hour===0?12:e.hour:e[ue(t)]},ue=function(e){for(var t in M)if(M[t].f===e)return M[t].k},ne=function(e){var t="";return e.year!==void 0?(t=E(e.year),e.month!==void 0&&(t+="-"+f(e.month),e.day!==void 0&&(t+="-"+f(e.day),e.hour!==void 0&&(t+="T"+f(e.hour)+":"+f(e.minute)+":"+f(e.second),e.millisecond>0&&(t+="."+ie(e.millisecond)),e.tzOffset===void 0?t+="Z":t+=(e.tzOffset>0?"+":"-")+f(Math.floor(Math.abs(e.tzOffset/60)))+":"+f(e.tzOffset%60))))):e.hour!==void 0&&(t=f(e.hour)+":"+f(e.minute),e.second!==void 0&&(t+=":"+f(e.second),e.millisecond!==void 0&&(t+="."+ie(e.millisecond)))),t},k=function(e,t){if(e!=null){typeof e=="string"&&(e=e.replace(/\[|\]/g,"").split(","));var r;return Array.isArray(e)&&(r=e.map(function(n){return n.toString().trim()})),(r===void 0||r.length===0)&&console.warn('Invalid "'+t+'Names". Must be an array of strings, or a comma separated string.'),r}},re=function(e,t){typeof e=="string"&&(e=e.replace(/\[|\]|\s/g,"").split(","));var r;return Array.isArray(e)?r=e.map(function(n){return parseInt(n,10)}).filter(isFinite):r=[e],r.length===0&&console.warn('Invalid "'+t+'Values". Must be an array of numbers, or a comma separated string of numbers.'),r},f=function(e){return("0"+(e!==void 0?Math.abs(e):"0")).slice(-2)},ie=function(e){return("00"+(e!==void 0?Math.abs(e):"0")).slice(-3)},E=function(e){return("000"+(e!==void 0?Math.abs(e):"0")).slice(-4)},V="YYYY",Y="YY",R="MMMM",D="MMM",w="MM",se="M",_="DDDD",H="DDD",P="DD",de="D",z="HH",le="H",m="hh",b="h",S="mm",W="m",C="ss",j="s",x="A",O="a",M=[{f:V,k:"year"},{f:R,k:"month"},{f:_,k:"day"},{f:D,k:"month"},{f:H,k:"day"},{f:Y,k:"year"},{f:w,k:"month"},{f:P,k:"day"},{f:z,k:"hour"},{f:m,k:"hour"},{f:S,k:"minute"},{f:C,k:"second"},{f:se,k:"month"},{f:de,k:"day"},{f:le,k:"hour"},{f:b,k:"hour"},{f:W,k:"minute"},{f:j,k:"second"},{f:x,k:"ampm"},{f:O,k:"ampm"}],Fe=["Sunday","Monday","Tuesday","Wednesday","Thursday","Friday","Saturday"],ke=["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],Ae=["January","February","March","April","May","June","July","August","September","October","November","December"],_e=["Jan","Feb","Mar","Apr","May","Jun","Jul","Aug","Sep","Oct","Nov","Dec"],Se=[m,b,S,W,C,j],Re=function(){function e(t){var r=this;Z(this,t),this.inputId="ion-dt-"+Ie++,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=function(){r.setFocus(),r.open()},this.onFocus=function(){r.ionFocus.emit()},this.onBlur=function(){r.ionBlur.emit()},this.ionCancel=g(this,"ionCancel",7),this.ionChange=g(this,"ionChange",7),this.ionFocus=g(this,"ionFocus",7),this.ionBlur=g(this,"ionBlur",7),this.ionStyle=g(this,"ionStyle",7)}return e.prototype.disabledChanged=function(){this.emitStyle()},e.prototype.valueChanged=function(){this.updateDatetimeValue(this.value),this.emitStyle(),this.ionChange.emit({value:this.value})},e.prototype.componentWillLoad=function(){this.locale={monthNames:k(this.monthNames,"monthNames"),monthShortNames:k(this.monthShortNames,"monthShortNames"),dayNames:k(this.dayNames,"dayNames"),dayShortNames:k(this.dayShortNames,"dayShortNames")},this.updateDatetimeValue(this.value),this.emitStyle()},e.prototype.open=function(){return q(this,void 0,void 0,function(){var t,r,n=this;return Q(this,function(i){switch(i.label){case 0:return this.disabled||this.isExpanded?[2]:(t=this.generatePickerOptions(),[4,X.create(t)]);case 1:return r=i.sent(),this.isExpanded=!0,r.onDidDismiss().then(function(){n.isExpanded=!1,n.setFocus()}),r.addEventListener("ionPickerColChange",function(o){return q(n,void 0,void 0,function(){var u,s,l,a;return Q(this,function(d){return u=o.detail,s=u.selectedIndex,l=u.options,a={},a[u.name]={value:l[s].value},this.updateDatetimeValue(a),r.columns=this.generateColumns(),[2]})})}),[4,r.present()];case 2:return i.sent(),[2]}})})},e.prototype.emitStyle=function(){this.ionStyle.emit({interactive:!0,datetime:!0,"has-placeholder":this.placeholder!=null,"has-value":this.hasValue(),"interactive-disabled":this.disabled})},e.prototype.updateDatetimeValue=function(t){Oe(this.datetimeValue,t)},e.prototype.generatePickerOptions=function(){var t=this,r=I(this),n=Object.assign(Object.assign({mode:r},this.pickerOptions),{columns:this.generateColumns()}),i=n.buttons;return(!i||i.length===0)&&(n.buttons=[{text:this.cancelText,role:"cancel",handler:function(){t.updateDatetimeValue(t.value),t.ionCancel.emit()}},{text:this.doneText,handler:function(o){t.updateDatetimeValue(o);var u=new Date(ne(t.datetimeValue));t.datetimeValue.tzOffset=u.getTimezoneOffset()*-1,t.value=ne(t.datetimeValue)}}]),n},e.prototype.generateColumns=function(){var t=this,r=this.pickerFormat||this.displayFormat||ae;if(r.length===0)return[];this.calcMinMax(),r=r.replace("DDDD","{~}").replace("DDD","{~}"),r.indexOf("D")===-1&&(r=r.replace("{~}","D")),r=r.replace(/{~}/g,"");var n=Te(r).map(function(u){var s=ue(u),l,a=t;l=a[s+"Values"]?re(a[s+"Values"],s):me(u,t.datetimeMin,t.datetimeMax);var d=l.map(function(h){return{value:h,text:oe(u,h,void 0,t.locale)}}),c=ve(t.datetimeValue,u),v=d.findIndex(function(h){return h.value===c});return{name:s,selectedIndex:v>=0?v:0,options:d}}),i=this.datetimeMin,o=this.datetimeMax;return["month","day","hour","minute"].filter(function(u){return!n.find(function(s){return s.name===u})}).forEach(function(u){i[u]=0,o[u]=0}),this.validateColumns(Ce(n))},e.prototype.validateColumns=function(t){var r=new Date,n=ee(this.datetimeMin),i=ee(this.datetimeMax),o=t.find(function(h){return h.name==="year"}),u=r.getFullYear();if(o){o.options.find(function(h){return h.value===r.getFullYear()})||(u=o.options[0].value);var s=o.selectedIndex;if(s!==void 0){var l=o.options[s];l&&(u=l.value)}}var a=this.validateColumn(t,"month",1,n,i,[u,0,0,0,0],[u,12,31,23,59]),d=ye(a,u),c=this.validateColumn(t,"day",2,n,i,[u,a,0,0,0],[u,a,d,23,59]),v=this.validateColumn(t,"hour",3,n,i,[u,a,c,0,0],[u,a,c,23,59]);return this.validateColumn(t,"minute",4,n,i,[u,a,c,v,0],[u,a,c,v,59]),t},e.prototype.calcMinMax=function(){var t=new Date().getFullYear();if(this.yearValues!==void 0){var r=re(this.yearValues,"year");this.min===void 0&&(this.min=Math.min.apply(Math,r).toString()),this.max===void 0&&(this.max=Math.max.apply(Math,r).toString())}else this.min===void 0&&(this.min=(t-100).toString()),this.max===void 0&&(this.max=t.toString());var n=this.datetimeMin=A(this.min),i=this.datetimeMax=A(this.max);n.year=n.year||t,i.year=i.year||t,n.month=n.month||1,i.month=i.month||12,n.day=n.day||1,i.day=i.day||31,n.hour=n.hour||0,i.hour=i.hour||23,n.minute=n.minute||0,i.minute=i.minute||59,n.second=n.second||0,i.second=i.second||59,n.year>i.year&&(console.error("min.year > max.year"),n.year=i.year-100),n.year===i.year&&(n.month>i.month?(console.error("min.month > max.month"),n.month=1):n.month===i.month&&n.day>i.day&&(console.error("min.day > max.day"),n.day=1))},e.prototype.validateColumn=function(t,r,n,i,o,u,s){var l=t.find(function(ce){return ce.name===r});if(!l)return 0;for(var a=u.slice(),d=s.slice(),c=l.options,v=c.length-1,h=0,p=0;p<c.length;p++){var y=c[p],T=y.value;a[n]=y.value,d[n]=y.value;var he=y.disabled=T<u[n]||T>s[n]||N(d[0],d[1],d[2],d[3],d[4])<i||N(a[0],a[1],a[2],a[3],a[4])>o;he||(v=Math.min(v,p),h=Math.max(h,p))}var fe=l.selectedIndex=G(v,l.selectedIndex,h),L=l.options[fe];return L?L.value:0},Object.defineProperty(e.prototype,"text",{get:function(){var t=this.displayFormat||this.pickerFormat||ae;if(!(this.value===void 0||this.value===null||this.value.length===0))return pe(t,this.datetimeValue,this.locale)},enumerable:!0,configurable:!0}),e.prototype.hasValue=function(){return this.text!==void 0},e.prototype.setFocus=function(){this.buttonEl&&this.buttonEl.focus()},e.prototype.render=function(){var t,r=this,n=this,i=n.inputId,o=n.text,u=n.disabled,s=n.readonly,l=n.isExpanded,a=n.el,d=n.placeholder,c=I(this),v=i+"-lbl",h=J(a),p=o===void 0&&d!=null,y=o===void 0?d??"":o;return h&&(h.id=v),B(!0,a,this.name,this.value,this.disabled),F(K,{onClick:this.onClick,role:"combobox","aria-disabled":u?"true":null,"aria-expanded":""+l,"aria-haspopup":"true","aria-labelledby":v,class:(t={},t[c]=!0,t["datetime-disabled"]=u,t["datetime-readonly"]=s,t["datetime-placeholder"]=p,t["in-item"]=U("ion-item",a),t)},F("div",{class:"datetime-text"},y),F("button",{type:"button",onFocus:this.onFocus,onBlur:this.onBlur,disabled:this.disabled,ref:function(T){return r.buttonEl=T}}))},Object.defineProperty(e.prototype,"el",{get:function(){return $(this)},enumerable:!0,configurable:!0}),Object.defineProperty(e,"watchers",{get:function(){return{disabled:["disabledChanged"],value:["valueChanged"]}},enumerable:!0,configurable:!0}),Object.defineProperty(e,"style",{get:function(){return":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:.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}:host-context([dir=rtl]) button,[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-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}:host-context([dir=rtl]) .datetime-text,[dir=rtl] .datetime-text{direction:rtl}:host{--placeholder-color:var(--ion-placeholder-color,var(--ion-color-step-400,#999));--padding-top:10px;--padding-end:0;--padding-bottom:11px;--padding-start:16px}"},enumerable:!0,configurable:!0}),e}(),Ce=function(e){for(var t=[],r,n,i=0;i<e.length;i++){r=e[i],t.push(0);for(var o=0,u=r.options;o<u.length;o++){var s=u[o];n=s.text.length,n>t[i]&&(t[i]=n)}}return t.length===2?(n=Math.max(t[0],t[1]),e[0].align="right",e[1].align="left",e[0].optionsWidth=e[1].optionsWidth=n*17+"px"):t.length===3&&(n=Math.max(t[0],t[2]),e[0].align="right",e[1].columnWidth=t[1]*17+"px",e[0].optionsWidth=e[2].optionsWidth=n*17+"px",e[2].align="left"),e},ae="MMM D, YYYY",Ie=0;export{Re as ion_datetime};