/* All material copyright ESRI, All Rights Reserved, unless otherwise specified. See https://js.arcgis.com/4.25/esri/copyright.txt for details. */ import{y as e,l as t,g as n,A as r,j as s,C as u,c as o,D as a,E as c}from"../../chunks/languageUtils.js";import{ArcadeExecutionError as l,ExecutionErrorCodes as i}from"../executionError.js";import{getLocale as f}from"../../intl/locale.js";import{DateTime as g}from"luxon";function m(e){const t=new Date(e.getTime()),n=t.getFullYear(),r=new Date(0);r.setFullYear(n+1,0,4),r.setHours(0,0,0,0);const s=d(r),u=new Date(0);u.setFullYear(n,0,4),u.setHours(0,0,0,0);const o=d(u);return t.getTime()>=s.getTime()?n+1:t.getTime()>=o.getTime()?n:n-1}function d(e){const t=1,n=new Date(e.getTime()),r=n.getDay(),s=(r{e(u,0,0,t,n);const o=new Date;return o.setHours(0,0,0,0),o}))},D.now=function(t,n){return w(t,n,((r,s,u)=>{e(u,0,0,t,n);return new Date}))},D.timestamp=function(t,n){return w(t,n,((r,s,u)=>{e(u,0,0,t,n);let o=new Date;return o=new Date(o.getUTCFullYear(),o.getUTCMonth(),o.getUTCDate(),o.getUTCHours(),o.getUTCMinutes(),o.getUTCSeconds(),o.getUTCMilliseconds()),o}))},D.toutc=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?null:new Date(a.getUTCFullYear(),a.getUTCMonth(),a.getUTCDate(),a.getUTCHours(),a.getUTCMinutes(),a.getUTCSeconds(),a.getUTCMilliseconds())}))},D.tolocal=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?null:g.utc(a.getFullYear(),a.getMonth()+1,a.getDate(),a.getHours(),a.getMinutes(),a.getSeconds(),a.getMilliseconds()).toJSDate()}))},D.day=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getDate()}))},D.month=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getMonth()}))},D.year=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getFullYear()}))},D.hour=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getHours()}))},D.second=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getSeconds()}))},D.millisecond=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getMilliseconds()}))},D.minute=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getMinutes()}))},D.week=function(s,u){return w(s,u,((o,a,c)=>{e(c,1,2,s,u);const f=t(c[0]);if(null===f)return NaN;const g=n(r(c[1],0));if(g<0||g>6)throw new l(s,i.InvalidParameter,u);const m=f.getDate(),d=f.getMonth(),h=f.getFullYear(),D=f.getDay(),w=N(m,d,h)-1,y=Math.floor(w/7);return D-g+(D-g<0?7:0){e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getDay()}))},D.isoweekday=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);if(null===a)return NaN;let c=a.getDay();return 0===c&&(c=7),c}))},D.isomonth=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:a.getMonth()+1}))},D.isoweek=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);if(null===a)return NaN;const c=d(a).getTime()-h(a).getTime();return Math.round(c/6048e5)+1}))},D.isoyear=function(n,r){return w(n,r,((s,u,o)=>{e(o,1,1,n,r);const a=t(o[0]);return null===a?NaN:m(a)}))},D.date=function(r,a){return w(r,a,((c,l,i)=>{if(e(i,0,7,r,a),3===i.length)return T(new Date(n(i[0]),n(i[1]),n(i[2]),0,0,0,0));if(4===i.length)return T(new Date(n(i[0]),n(i[1]),n(i[2]),n(i[3]),0,0,0));if(5===i.length)return T(new Date(n(i[0]),n(i[1]),n(i[2]),n(i[3]),n(i[4]),0,0));if(6===i.length)return T(new Date(n(i[0]),n(i[1]),n(i[2]),n(i[3]),n(i[4]),n(i[5]),0));if(7===i.length)return T(new Date(n(i[0]),n(i[1]),n(i[2]),n(i[3]),n(i[4]),n(i[5]),n(i[6])));if(2===i.length){let e,t=s(i[1]);return""===t?null:(t=u(t),e="X"===t?g.fromSeconds(n(i[0])):"x"===t?g.fromMillis(n(i[0])):g.fromFormat(s(i[0]),t,{locale:f(),numberingSystem:"latn"}),e.isValid?e.toJSDate():null)}if(1===i.length){if(o(i[0])){if(""===i[0].replace(/^[\s\uFEFF\xA0]+|[\s\uFEFF\xA0]+$/g,""))return null;if(!0===/^[0-9][0-9][0-9][0-9]$/.test(i[0]))return t(i[0]+"-01-01")}const e=n(i[0]);if(!1===isNaN(e))return T(new Date(e));return t(i[0])}return 0===i.length?new Date:void 0}))},D.datediff=function(t,n){return w(t,n,((r,u,o)=>{e(o,2,3,t,n);const c=a(o[0]),l=a(o[1]);if(null===c||null===l)return NaN;switch(s(o[2]).toLowerCase()){case"days":case"day":case"d":return c.diff(l,"days").days;case"months":case"month":return c.diff(l,"months").months;case"minutes":case"minute":case"m":return"M"===o[2]?c.diff(l,"months").months:c.diff(l,"minutes").minutes;case"seconds":case"second":case"s":return c.diff(l,"seconds").seconds;case"milliseconds":case"millisecond":case"ms":default:return c.diff(l).milliseconds;case"hours":case"hour":case"h":return c.diff(l,"hours").hours;case"years":case"year":case"y":return c.diff(l,"years").years}}))},D.dateadd=function(t,r){return w(t,r,((u,o,l)=>{e(l,2,3,t,r);const i=a(l[0]);if(null===i)return null;let f=n(l[1]);if(isNaN(f))return i.toJSDate();let g="milliseconds";switch(s(l[2]).toLowerCase()){case"days":case"day":case"d":g="days",f=c(f);break;case"months":case"month":g="months",f=c(f);break;case"minutes":case"minute":case"m":g="M"===l[2]?"months":"minutes";break;case"seconds":case"second":case"s":g="seconds";break;case"milliseconds":case"millisecond":case"ms":g="milliseconds";break;case"hours":case"hour":case"h":g="hours";break;case"years":case"year":case"y":g="years"}return i.plus({[g]:f}).toJSDate()}))}}export{M as registerFunctions};