UNPKG

@doegis/core

Version:

DOE GIS API

3 lines (1 loc) 6.2 kB
import{ArcadeDate as n}from"../ArcadeDate.js";import{y as e,C as t,l as r,j as o,g as a,A as s,D as u,c,E as l}from"../../chunks/languageUtils.js";import{ArcadeExecutionError as i,ExecutionErrorCodes as f}from"../executionError.js";import{getLocale as d}from"../../intl/locale.js";import{DateTime as m}from"luxon";function h(n,e,t){return n+(N(t)?A:y)[e]}function N(n){return n%4==0&&(n%100!=0||n%400==0)}const y=[0,31,59,90,120,151,181,212,243,273,304,334],A=[0,31,60,91,121,152,182,213,244,274,305,335];function w(n){return null===n?n:!1===n.isValid?null:n}function D(n,e){return""===n||"default"===n.toLowerCase().trim()?t(e):n}function T(N,y){N.today=function(r,o){return y(r,o,((a,s,u)=>{e(u,0,0,r,o);const c=new Date;return c.setHours(0,0,0,0),n.dateJSAndZoneToArcadeDate(c,t(r))}))},N.changetimezone=function(a,s){return y(a,s,((u,c,l)=>{e(l,2,2,a,s);const i=r(l[0],t(a));if(null===i)return null;const f=n.arcadeDateAndZoneToArcadeDate(i,D(o(l[1]),a));return!1===f.isValid?null:f}))},N.timezone=function(o,a){return y(o,a,((s,u,c)=>{e(c,1,2,o,a);const l=r(c[0],t(o));if(null===l)return null;const i=l.timeZone;return"system"===i?n.systemTimeZoneCanonicalName:i}))},N.timezoneoffset=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?null:c.timeZoneOffset}))},N.now=function(r,o){return y(r,o,((a,s,u)=>{e(u,0,0,r,o);const c=n.nowToArcadeDate(t(r));return!1===c.isValid?null:c}))},N.timestamp=function(t,r){return y(t,r,((o,a,s)=>{e(s,0,0,t,r);const u=n.nowUTCToArcadeDate();return!1===u.isValid?null:u}))},N.toutc=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?null:c.toUTC()}))},N.tolocal=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?null:c.toLocal()}))},N.day=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.day}))},N.month=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.monthJS}))},N.year=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.year}))},N.hour=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.hour}))},N.second=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.second}))},N.millisecond=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.millisecond}))},N.minute=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.minute}))},N.week=function(n,o){return y(n,o,((u,c,l)=>{e(l,1,2,n,o);const d=r(l[0],t(n));if(null===d)return NaN;const m=a(s(l[1],0));if(m<0||m>6)throw new i(n,f.InvalidParameter,o);const N=d.day,y=d.monthJS,A=d.year,w=d.dayOfWeekJS,D=h(N,y,A)-1,T=Math.floor(D/7);return w-m+(w-m<0?7:0)<D-7*T?T+1:T}))},N.weekday=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.dayOfWeekJS}))},N.isoweekday=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.dayOfWeekISO}))},N.isomonth=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.monthISO}))},N.isoweek=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.weekISO}))},N.isoyear=function(n,o){return y(n,o,((a,s,u)=>{e(u,1,1,n,o);const c=r(u[0],t(n));return null===c?NaN:c.yearISO}))},N.date=function(s,l){return y(s,l,((i,f,h)=>{if(e(h,0,8,s,l),3===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),0,0,0,0,t(s)));if(4===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),0,0,0,t(s)));if(5===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),0,0,t(s)));if(6===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),0,t(s)));if(7===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),t(s)));if(8===h.length)return w(n.fromParts(a(h[0]),a(h[1])+1,a(h[2]),a(h[3]),a(h[4]),a(h[5]),a(h[6]),D(o(h[7]),s)));if(2===h.length){let e,t=o(h[1]);return""===t?null:(t=u(t),e="X"===t?m.fromSeconds(a(h[0])):"x"===t?m.fromMillis(a(h[0])):m.fromFormat(o(h[0]),t,{locale:d(),numberingSystem:"latn"}),e.isValid?n.dateTimeToArcadeDate(e):null)}if(1===h.length){if(c(h[0])){if(""===h[0].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(h[0]))return r(h[0]+"-01-01",t(s))}const e=a(h[0]);if(!1===isNaN(e)){const r=m.fromMillis(e);return r.isValid?n.dateTimeAndZoneToArcadeDate(r,t(s)):null}return r(h[0],t(s))}return 0===h.length?n.nowToArcadeDate(t(s)):null}))},N.datediff=function(a,u){return y(a,u,((c,l,i)=>{e(i,2,4,a,u);let f=r(i[0],t(a)),d=r(i[1],t(a));if(null===f||null===d)return NaN;let m=s(i[3],"");switch(""!==m&&null!==m?(m=o(m),f=n.arcadeDateAndZoneToArcadeDate(f,m),d=n.arcadeDateAndZoneToArcadeDate(d,m)):f.timeZone!==d.timeZone&&(f.isUnknownTimeZone?f=n.arcadeDateAndZoneToArcadeDate(f,d.timeZone):d=(d.isUnknownTimeZone,n.arcadeDateAndZoneToArcadeDate(d,f.timeZone))),o(i[2]).toLowerCase()){case"days":case"day":case"d":return f.diff(d,"days");case"months":case"month":return f.diff(d,"months");case"minutes":case"minute":case"m":return"M"===i[2]?f.diff(d,"months"):f.diff(d,"minutes");case"seconds":case"second":case"s":return f.diff(d,"seconds");case"milliseconds":case"millisecond":case"ms":default:return f.diff(d);case"hours":case"hour":case"h":return f.diff(d,"hours");case"years":case"year":case"y":return f.diff(d,"years")}}))},N.dateadd=function(n,s){return y(n,s,((u,c,i)=>{e(i,2,3,n,s);const f=r(i[0],t(n));if(null===f)return null;let d=a(i[1]);if(isNaN(d))return f;let m="milliseconds";switch(o(i[2]).toLowerCase()){case"days":case"day":case"d":m="days",d=l(d);break;case"months":case"month":m="months",d=l(d);break;case"minutes":case"minute":case"m":m="M"===i[2]?"months":"minutes";break;case"seconds":case"second":case"s":m="seconds";break;case"milliseconds":case"millisecond":case"ms":m="milliseconds";break;case"hours":case"hour":case"h":m="hours";break;case"years":case"year":case"y":m="years"}return f.plus({[m]:d})}))}}export{T as registerFunctions};