@adyen/adyen-platform-experience-web
Version:

47 lines (46 loc) • 1.65 kB
JavaScript
import d from "../../../core/Localization/datetime/restamper/restamper.js";
import { createWatchlist as h, isWatchlistUnsubscribeToken as y } from "../../reactive/watchlist/main.js";
import { clock as S } from "../clock/main.js";
import { timezoneToSystem as W, systemToTimezone as b } from "../../../core/Localization/datetime/restamper/utils.js";
import { isNull as z } from "../../../utils/value/is.js";
import { struct as x } from "../../../utils/struct/main.js";
import { enumerable as c, getter as N } from "../../../utils/struct/property.js";
const j = (() => {
const a = /* @__PURE__ */ new Map(), r = d(), u = (m = Date.now()) => {
const t = new Date(W(r, m)), e = b(r, t.setHours(0, 0, 0, 0)), s = b(r, t.setDate(t.getDate() + 1));
return [e, s - e];
};
return (m) => {
r.tz = m;
const t = r.tz.current;
return a.get(t) ?? (() => {
let e = null, s = null, o = null;
const p = () => (r.tz = t, e ?? u()[0]), l = (n = Date.now()) => {
r.tz = t, [e, s] = u(n);
}, { cancelSubscriptions: w, requestNotification: D, subscribe: g, on: f } = h({
timestamp: p
});
f.resume = () => {
o = S.subscribe((n) => {
if (y(n)) return;
const { now: i } = n;
if (z(e) || z(s)) return l(i);
i - e < s || (l(i), D());
});
}, f.idle = () => {
o == null || o(), e = s = o = null;
};
const T = x({
cancelSubscriptions: c(w),
timestamp: N(p),
timezone: c(t),
subscribe: c(g)
});
return a.set(t, T), T;
})();
};
})();
export {
j as default,
j as today
};