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

29 lines (28 loc) • 1.64 kB
JavaScript
import { useMemo as c, useRef as g, useState as d } from "../../../../external/preact/hooks/dist/hooks.module.js";
import { getTimezoneOffsetFromFormattedDateString as l, getGMTSuffixForTimezoneOffset as E } from "../../../../core/Localization/datetime/restamper/utils.js";
import M from "../../../../core/Localization/datetime/restamper/restamper.js";
import { clock as _ } from "../../../../primitives/time/clock/main.js";
import { isWatchlistUnsubscribeToken as G } from "../../../../primitives/reactive/watchlist/main.js";
import { boolOrFalse as O } from "../../../../utils/value/bool.js";
import { noop as a } from "../../../../utils/common.js";
import { EMPTY_OBJECT as S, EMPTY_ARRAY as R } from "../../../../utils/value/constants.js";
const { getTimezoneTime: U, getUsedTimezone: A } = (() => {
const m = /\d{2}:\d{2}(?=:\d{2}(?:\.\d+)?\s+([AP]M))/i, n = /^GMT|0(?=\d:00)|:00/g, e = M();
return { getTimezoneTime: (t, i = Date.now()) => {
e.tz = t;
const { formatted: o } = e(i), [f = "", s = ""] = (o == null ? void 0 : o.match(m)) ?? R, u = l(o), z = `${f}${s && ` ${s}`}`, p = E(u).replace(n, "");
return [z, p];
}, getUsedTimezone: (t) => (e.tz = t, e.tz.current) };
})(), N = ({ timezone: m, withClock: n = !1 } = S) => {
const e = c(() => O(n), [n]), r = c(() => A(m), [m]), T = g(a), [t, i] = d(Date.now()), [o, f] = c(() => U(r, t), [t, r]);
return c(() => {
T.current(), T.current = e ? _.subscribe((s) => {
G(s) || i(s.now);
}) : a;
}, [i, e]), { clockTime: o, GMTOffset: f, timestamp: t, timezone: r };
};
export {
N as default,
U as getTimezoneTime,
A as getUsedTimezone
};