@vuu-ui/vuu-utils 0.13.12 → 0.13.13
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/packages/vuu-utils/src/Clock.js +51 -0
- package/cjs/packages/vuu-utils/src/Clock.js.map +1 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js +8 -0
- package/cjs/packages/vuu-utils/src/date/formatter.js.map +1 -1
- package/cjs/packages/vuu-utils/src/date/types.js +5 -1
- package/cjs/packages/vuu-utils/src/date/types.js.map +1 -1
- package/cjs/packages/vuu-utils/src/index.js +2 -0
- package/cjs/packages/vuu-utils/src/index.js.map +1 -1
- package/esm/packages/vuu-utils/src/Clock.js +49 -0
- package/esm/packages/vuu-utils/src/Clock.js.map +1 -0
- package/esm/packages/vuu-utils/src/date/formatter.js +8 -0
- package/esm/packages/vuu-utils/src/date/formatter.js.map +1 -1
- package/esm/packages/vuu-utils/src/date/types.js +5 -1
- package/esm/packages/vuu-utils/src/date/types.js.map +1 -1
- package/esm/packages/vuu-utils/src/index.js +1 -0
- package/esm/packages/vuu-utils/src/index.js.map +1 -1
- package/package.json +6 -6
- package/types/Clock.d.ts +18 -0
- package/types/date/types.d.ts +2 -2
- package/types/index.d.ts +1 -0
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var __typeError = (msg) => {
|
|
4
|
+
throw TypeError(msg);
|
|
5
|
+
};
|
|
6
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
7
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
8
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
9
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
10
|
+
var _millisSinceEpoch;
|
|
11
|
+
class Clock {
|
|
12
|
+
constructor(props) {
|
|
13
|
+
__privateAdd(this, _millisSinceEpoch, 0);
|
|
14
|
+
const today = /* @__PURE__ */ new Date();
|
|
15
|
+
const offset = today.getTimezoneOffset();
|
|
16
|
+
if (props) {
|
|
17
|
+
const dateProvided = typeof props.year === "number" && typeof props.month === "number" && typeof props.day === "number";
|
|
18
|
+
const year = props.year ?? today.getFullYear();
|
|
19
|
+
const month = props.month !== void 0 ? props.month - 1 : today.getMonth();
|
|
20
|
+
const day = props.day ?? today.getDay();
|
|
21
|
+
const hours = props.hours !== void 0 ? offset === 0 ? props.hours : (
|
|
22
|
+
// oversimplified, assumes BST
|
|
23
|
+
props.hours + 1
|
|
24
|
+
) : dateProvided ? offset ? 1 : 0 : today.getUTCHours();
|
|
25
|
+
const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());
|
|
26
|
+
const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());
|
|
27
|
+
const ms = props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());
|
|
28
|
+
const date = new Date(year, month, day, hours, minutes, seconds, ms);
|
|
29
|
+
__privateSet(this, _millisSinceEpoch, date.getTime());
|
|
30
|
+
} else {
|
|
31
|
+
__privateSet(this, _millisSinceEpoch, today.getTime());
|
|
32
|
+
}
|
|
33
|
+
}
|
|
34
|
+
advance(value, units = "ms") {
|
|
35
|
+
const multiplier = units === "ms" ? 1 : units === "seconds" ? 1e3 : 6e4;
|
|
36
|
+
__privateSet(this, _millisSinceEpoch, __privateGet(this, _millisSinceEpoch) + value * multiplier);
|
|
37
|
+
}
|
|
38
|
+
toString() {
|
|
39
|
+
return new Date(__privateGet(this, _millisSinceEpoch)).toISOString();
|
|
40
|
+
}
|
|
41
|
+
get now() {
|
|
42
|
+
return __privateGet(this, _millisSinceEpoch);
|
|
43
|
+
}
|
|
44
|
+
get date() {
|
|
45
|
+
return new Date(__privateGet(this, _millisSinceEpoch));
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
_millisSinceEpoch = new WeakMap();
|
|
49
|
+
|
|
50
|
+
exports.Clock = Clock;
|
|
51
|
+
//# sourceMappingURL=Clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clock.js","sources":["../../../../src/Clock.ts"],"sourcesContent":["export interface ClockProps {\n year?: number;\n month?: number;\n day?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n}\n\nexport type TimeUnit = \"minutes\" | \"seconds\" | \"ms\";\nexport class Clock {\n #millisSinceEpoch = 0;\n\n constructor(props?: ClockProps) {\n const today = new Date();\n const offset = today.getTimezoneOffset();\n if (props) {\n const dateProvided =\n typeof props.year === \"number\" &&\n typeof props.month === \"number\" &&\n typeof props.day === \"number\";\n\n const year = props.year ?? today.getFullYear();\n const month =\n props.month !== undefined ? props.month - 1 : today.getMonth();\n const day = props.day ?? today.getDay();\n\n const hours =\n props.hours !== undefined\n ? offset === 0\n ? props.hours\n : // oversimplified, assumes BST\n props.hours + 1\n : dateProvided\n ? offset\n ? 1 // assumed BST\n : 0\n : today.getUTCHours();\n const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());\n const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());\n const ms =\n props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());\n const date = new Date(year, month, day, hours, minutes, seconds, ms);\n this.#millisSinceEpoch = date.getTime();\n } else {\n this.#millisSinceEpoch = today.getTime();\n }\n }\n\n advance(value: number, units: TimeUnit = \"ms\") {\n const multiplier = units === \"ms\" ? 1 : units === \"seconds\" ? 1000 : 60_000;\n this.#millisSinceEpoch += value * multiplier;\n }\n\n toString() {\n return new Date(this.#millisSinceEpoch).toISOString();\n }\n\n get now() {\n return this.#millisSinceEpoch;\n }\n\n get date() {\n return new Date(this.#millisSinceEpoch);\n }\n}\n"],"names":[],"mappings":";;;;;;;;;AAAA,IAAA,iBAAA;AAWO,MAAM,KAAM,CAAA;AAAA,EAGjB,YAAY,KAAoB,EAAA;AAFhC,IAAoB,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA;AAGlB,IAAM,MAAA,KAAA,uBAAY,IAAK,EAAA;AACvB,IAAM,MAAA,MAAA,GAAS,MAAM,iBAAkB,EAAA;AACvC,IAAA,IAAI,KAAO,EAAA;AACT,MAAM,MAAA,YAAA,GACJ,OAAO,KAAA,CAAM,IAAS,KAAA,QAAA,IACtB,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IACvB,OAAO,KAAA,CAAM,GAAQ,KAAA,QAAA;AAEvB,MAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAQ,IAAA,KAAA,CAAM,WAAY,EAAA;AAC7C,MAAM,MAAA,KAAA,GACJ,MAAM,KAAU,KAAA,KAAA,CAAA,GAAY,MAAM,KAAQ,GAAA,CAAA,GAAI,MAAM,QAAS,EAAA;AAC/D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAM,GAAO,IAAA,KAAA,CAAM,MAAO,EAAA;AAEtC,MAAA,MAAM,QACJ,KAAM,CAAA,KAAA,KAAU,KACZ,CAAA,GAAA,MAAA,KAAW,IACT,KAAM,CAAA,KAAA;AAAA;AAAA,QAEN,MAAM,KAAQ,GAAA;AAAA,OAAA,GAChB,YACE,GAAA,MAAA,GACE,CACA,GAAA,CAAA,GACF,MAAM,WAAY,EAAA;AAC1B,MAAA,MAAM,UAAU,KAAM,CAAA,OAAA,KAAY,YAAe,GAAA,CAAA,GAAI,MAAM,UAAW,EAAA,CAAA;AACtE,MAAA,MAAM,UAAU,KAAM,CAAA,OAAA,KAAY,YAAe,GAAA,CAAA,GAAI,MAAM,UAAW,EAAA,CAAA;AACtE,MAAA,MAAM,KACJ,KAAM,CAAA,YAAA,KAAiB,YAAe,GAAA,CAAA,GAAI,MAAM,eAAgB,EAAA,CAAA;AAClE,MAAM,MAAA,IAAA,GAAO,IAAI,IAAK,CAAA,IAAA,EAAM,OAAO,GAAK,EAAA,KAAA,EAAO,OAAS,EAAA,OAAA,EAAS,EAAE,CAAA;AACnE,MAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAoB,KAAK,OAAQ,EAAA,CAAA;AAAA,KACjC,MAAA;AACL,MAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAoB,MAAM,OAAQ,EAAA,CAAA;AAAA;AACzC;AACF,EAEA,OAAA,CAAQ,KAAe,EAAA,KAAA,GAAkB,IAAM,EAAA;AAC7C,IAAA,MAAM,aAAa,KAAU,KAAA,IAAA,GAAO,CAAI,GAAA,KAAA,KAAU,YAAY,GAAO,GAAA,GAAA;AACrE,IAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAL,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAA,GAAqB,KAAQ,GAAA,UAAA,CAAA;AAAA;AACpC,EAEA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAiB,EAAE,WAAY,EAAA;AAAA;AACtD,EAEA,IAAI,GAAM,GAAA;AACR,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AACd,EAEA,IAAI,IAAO,GAAA;AACT,IAAO,OAAA,IAAI,IAAK,CAAA,YAAA,CAAA,IAAA,EAAK,iBAAiB,CAAA,CAAA;AAAA;AAE1C;AAtDE,iBAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|
|
@@ -16,6 +16,14 @@ const formatConfigByTimePatterns = {
|
|
|
16
16
|
"hh:mm:ss a": {
|
|
17
17
|
locale: "en-GB",
|
|
18
18
|
options: { ...baseTimeFormatOptions, hour12: true }
|
|
19
|
+
},
|
|
20
|
+
"hh:mm:ss.ms": {
|
|
21
|
+
locale: "en-GB",
|
|
22
|
+
options: {
|
|
23
|
+
...baseTimeFormatOptions,
|
|
24
|
+
hour12: false,
|
|
25
|
+
fractionalSecondDigits: 3
|
|
26
|
+
}
|
|
19
27
|
}
|
|
20
28
|
};
|
|
21
29
|
const baseDateFormatOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sources":["../../../../../src/date/formatter.ts"],"sourcesContent":["import { DateFormatter } from \"@internationalized/date\";\nimport { isNotNullOrUndefined } from \"../ts-utils\";\nimport { DatePattern, DateTimePattern, TimePattern } from \"./types\";\n\ntype DateTimeFormatConfig = {\n locale: string;\n options: Intl.DateTimeFormatOptions;\n};\n\n// Time format config\nconst baseTimeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\nconst formatConfigByTimePatterns: Record<TimePattern, DateTimeFormatConfig> = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: false },\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: true },\n },\n};\n\n// Date format config\nconst baseDateFormatOptions: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n};\nconst formatConfigByDatePatterns: Record<DatePattern, DateTimeFormatConfig> = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: { ...baseDateFormatOptions },\n },\n \"dd/mm/yyyy\": { locale: \"en-GB\", options: { ...baseDateFormatOptions } },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n \"mm/dd/yyyy\": { locale: \"en-US\", options: { ...baseDateFormatOptions } },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n};\n\nfunction getFormatConfigs(pattern: DateTimePattern) {\n return [\n pattern.date ? formatConfigByDatePatterns[pattern.date] : null,\n pattern.time ? formatConfigByTimePatterns[pattern.time] : null,\n ];\n}\n\nexport function formatDate(pattern: DateTimePattern): (d: Date) => string {\n const formatters = getFormatConfigs(pattern)\n .filter(isNotNullOrUndefined)\n .map((c) => getDateFormatter(c.locale, c.options));\n\n return (d) => formatters.map((f) => f.format(d)).join(\" \");\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions
|
|
1
|
+
{"version":3,"file":"formatter.js","sources":["../../../../../src/date/formatter.ts"],"sourcesContent":["import { DateFormatter } from \"@internationalized/date\";\nimport { isNotNullOrUndefined } from \"../ts-utils\";\nimport { DatePattern, DateTimePattern, TimePattern } from \"./types\";\n\ntype DateTimeFormatConfig = {\n locale: string;\n options: Intl.DateTimeFormatOptions;\n};\n\n// Time format config\nconst baseTimeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\nconst formatConfigByTimePatterns: Record<TimePattern, DateTimeFormatConfig> = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: false },\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: true },\n },\n \"hh:mm:ss.ms\": {\n locale: \"en-GB\",\n options: {\n ...baseTimeFormatOptions,\n hour12: false,\n fractionalSecondDigits: 3,\n },\n },\n};\n\n// Date format config\nconst baseDateFormatOptions: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n};\nconst formatConfigByDatePatterns: Record<DatePattern, DateTimeFormatConfig> = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: { ...baseDateFormatOptions },\n },\n \"dd/mm/yyyy\": { locale: \"en-GB\", options: { ...baseDateFormatOptions } },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n \"mm/dd/yyyy\": { locale: \"en-US\", options: { ...baseDateFormatOptions } },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n};\n\nfunction getFormatConfigs(pattern: DateTimePattern) {\n return [\n pattern.date ? formatConfigByDatePatterns[pattern.date] : null,\n pattern.time ? formatConfigByTimePatterns[pattern.time] : null,\n ];\n}\n\nexport function formatDate(pattern: DateTimePattern): (d: Date) => string {\n const formatters = getFormatConfigs(pattern)\n .filter(isNotNullOrUndefined)\n .map((c) => getDateFormatter(c.locale, c.options));\n\n return (d) => formatters.map((f) => f.format(d)).join(\" \");\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions,\n) {\n return new DateFormatter(locale, options);\n}\n"],"names":["isNotNullOrUndefined","DateFormatter"],"mappings":";;;;;AAUA,MAAM,qBAAoD,GAAA;AAAA,EACxD,IAAM,EAAA,SAAA;AAAA,EACN,MAAQ,EAAA,SAAA;AAAA,EACR,MAAQ,EAAA;AACV,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,KAAM;AAAA,GACrD;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,IAAK;AAAA,GACpD;AAAA,EACA,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,GAAG,qBAAA;AAAA,MACH,MAAQ,EAAA,KAAA;AAAA,MACR,sBAAwB,EAAA;AAAA;AAC1B;AAEJ,CAAA;AAGA,MAAM,qBAAoD,GAAA;AAAA,EACxD,GAAK,EAAA,SAAA;AAAA,EACL,KAAO,EAAA,SAAA;AAAA,EACP,IAAM,EAAA;AACR,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAA,EAAS,EAAE,GAAG,qBAAsB;AAAA,GACtC;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ;AAAA,GACtD;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO;AAAA,GACrD;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ;AAAA,GACtD;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO;AAAA;AAEvD,CAAA;AAEA,SAAS,iBAAiB,OAA0B,EAAA;AAClD,EAAO,OAAA;AAAA,IACL,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,IAAA;AAAA,IAC1D,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA;AAAA,GAC5D;AACF;AAEO,SAAS,WAAW,OAA+C,EAAA;AACxE,EAAA,MAAM,UAAa,GAAA,gBAAA,CAAiB,OAAO,CAAA,CACxC,OAAOA,4BAAoB,CAAA,CAC3B,GAAI,CAAA,CAAC,MAAM,gBAAiB,CAAA,CAAA,CAAE,MAAQ,EAAA,CAAA,CAAE,OAAO,CAAC,CAAA;AAEnD,EAAA,OAAO,CAAC,CAAA,KAAM,UAAW,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,CAAE,CAAA,MAAA,CAAO,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAC3D;AAEgB,SAAA,gBAAA,CACd,QACA,OACA,EAAA;AACA,EAAO,OAAA,IAAIC,kBAAc,CAAA,MAAA,EAAQ,OAAO,CAAA;AAC1C;;;;;"}
|
|
@@ -9,7 +9,11 @@ const supportedDatePatterns = [
|
|
|
9
9
|
"MMM dd, yyyy",
|
|
10
10
|
"MMMM dd, yyyy"
|
|
11
11
|
];
|
|
12
|
-
const supportedTimePatterns = [
|
|
12
|
+
const supportedTimePatterns = [
|
|
13
|
+
"hh:mm:ss",
|
|
14
|
+
"hh:mm:ss a",
|
|
15
|
+
"hh:mm:ss.ms"
|
|
16
|
+
];
|
|
13
17
|
const supportedDateTimePatterns = {
|
|
14
18
|
date: supportedDatePatterns,
|
|
15
19
|
time: supportedTimePatterns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/date/types.ts"],"sourcesContent":["import { ColumnTypeFormatting } from \"@vuu-ui/vuu-table-types\";\n\nconst supportedDatePatterns = [\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\",\n] as const;\n\nconst supportedTimePatterns = [\"hh:mm:ss\"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/date/types.ts"],"sourcesContent":["import { ColumnTypeFormatting } from \"@vuu-ui/vuu-table-types\";\n\nconst supportedDatePatterns = [\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\",\n] as const;\n\nconst supportedTimePatterns = [\n \"hh:mm:ss\",\n \"hh:mm:ss a\",\n \"hh:mm:ss.ms\",\n] as const;\n\nexport const supportedDateTimePatterns = {\n date: supportedDatePatterns,\n time: supportedTimePatterns,\n};\nexport const dateTimeLabelByType = { date: \"Date\", time: \"Time\" } as const;\n\nexport type DatePattern = (typeof supportedDatePatterns)[number];\nexport type TimePattern = (typeof supportedTimePatterns)[number];\n\nexport type DateTimePattern =\n | { date?: DatePattern; time: TimePattern }\n | { date: DatePattern; time?: TimePattern };\n\nexport const isDatePattern = (pattern?: string): pattern is DatePattern =>\n supportedDatePatterns.includes(pattern as DatePattern);\n\nexport const isTimePattern = (pattern?: string): pattern is TimePattern =>\n supportedTimePatterns.includes(pattern as TimePattern);\n\nexport const isDateTimePattern = (\n pattern?: ColumnTypeFormatting[\"pattern\"],\n): pattern is DateTimePattern =>\n isDatePattern(pattern?.date) || isTimePattern(pattern?.time);\n"],"names":[],"mappings":";;AAEA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,UAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,MAAM,yBAA4B,GAAA;AAAA,EACvC,IAAM,EAAA,qBAAA;AAAA,EACN,IAAM,EAAA;AACR;AACO,MAAM,mBAAsB,GAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,MAAM,MAAO;AASzD,MAAM,aAAgB,GAAA,CAAC,OAC5B,KAAA,qBAAA,CAAsB,SAAS,OAAsB;AAEhD,MAAM,aAAgB,GAAA,CAAC,OAC5B,KAAA,qBAAA,CAAsB,SAAS,OAAsB;AAE1C,MAAA,iBAAA,GAAoB,CAC/B,OAEA,KAAA,aAAA,CAAc,SAAS,IAAI,CAAA,IAAK,aAAc,CAAA,OAAA,EAAS,IAAI;;;;;;;;"}
|
|
@@ -10,6 +10,7 @@ var columnUtils = require('./column-utils.js');
|
|
|
10
10
|
var cookieUtils = require('./cookie-utils.js');
|
|
11
11
|
var componentRegistry = require('./component-registry.js');
|
|
12
12
|
var DataWindow = require('./DataWindow.js');
|
|
13
|
+
var Clock = require('./Clock.js');
|
|
13
14
|
var commonTypes = require('./common-types.js');
|
|
14
15
|
var cssUtils = require('./css-utils.js');
|
|
15
16
|
var dataUtils = require('./data-utils.js');
|
|
@@ -183,6 +184,7 @@ exports.isView = componentRegistry.isView;
|
|
|
183
184
|
exports.registerComponent = componentRegistry.registerComponent;
|
|
184
185
|
exports.registerConfigurationEditor = componentRegistry.registerConfigurationEditor;
|
|
185
186
|
exports.DataWindow = DataWindow.DataWindow;
|
|
187
|
+
exports.Clock = Clock.Clock;
|
|
186
188
|
exports.MEASURES = commonTypes.MEASURES;
|
|
187
189
|
exports.importCSS = cssUtils.importCSS;
|
|
188
190
|
exports.DOWN1 = dataUtils.DOWN1;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
var __typeError = (msg) => {
|
|
2
|
+
throw TypeError(msg);
|
|
3
|
+
};
|
|
4
|
+
var __accessCheck = (obj, member, msg) => member.has(obj) || __typeError("Cannot " + msg);
|
|
5
|
+
var __privateGet = (obj, member, getter) => (__accessCheck(obj, member, "read from private field"), getter ? getter.call(obj) : member.get(obj));
|
|
6
|
+
var __privateAdd = (obj, member, value) => member.has(obj) ? __typeError("Cannot add the same private member more than once") : member instanceof WeakSet ? member.add(obj) : member.set(obj, value);
|
|
7
|
+
var __privateSet = (obj, member, value, setter) => (__accessCheck(obj, member, "write to private field"), member.set(obj, value), value);
|
|
8
|
+
var _millisSinceEpoch;
|
|
9
|
+
class Clock {
|
|
10
|
+
constructor(props) {
|
|
11
|
+
__privateAdd(this, _millisSinceEpoch, 0);
|
|
12
|
+
const today = /* @__PURE__ */ new Date();
|
|
13
|
+
const offset = today.getTimezoneOffset();
|
|
14
|
+
if (props) {
|
|
15
|
+
const dateProvided = typeof props.year === "number" && typeof props.month === "number" && typeof props.day === "number";
|
|
16
|
+
const year = props.year ?? today.getFullYear();
|
|
17
|
+
const month = props.month !== void 0 ? props.month - 1 : today.getMonth();
|
|
18
|
+
const day = props.day ?? today.getDay();
|
|
19
|
+
const hours = props.hours !== void 0 ? offset === 0 ? props.hours : (
|
|
20
|
+
// oversimplified, assumes BST
|
|
21
|
+
props.hours + 1
|
|
22
|
+
) : dateProvided ? offset ? 1 : 0 : today.getUTCHours();
|
|
23
|
+
const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());
|
|
24
|
+
const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());
|
|
25
|
+
const ms = props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());
|
|
26
|
+
const date = new Date(year, month, day, hours, minutes, seconds, ms);
|
|
27
|
+
__privateSet(this, _millisSinceEpoch, date.getTime());
|
|
28
|
+
} else {
|
|
29
|
+
__privateSet(this, _millisSinceEpoch, today.getTime());
|
|
30
|
+
}
|
|
31
|
+
}
|
|
32
|
+
advance(value, units = "ms") {
|
|
33
|
+
const multiplier = units === "ms" ? 1 : units === "seconds" ? 1e3 : 6e4;
|
|
34
|
+
__privateSet(this, _millisSinceEpoch, __privateGet(this, _millisSinceEpoch) + value * multiplier);
|
|
35
|
+
}
|
|
36
|
+
toString() {
|
|
37
|
+
return new Date(__privateGet(this, _millisSinceEpoch)).toISOString();
|
|
38
|
+
}
|
|
39
|
+
get now() {
|
|
40
|
+
return __privateGet(this, _millisSinceEpoch);
|
|
41
|
+
}
|
|
42
|
+
get date() {
|
|
43
|
+
return new Date(__privateGet(this, _millisSinceEpoch));
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
_millisSinceEpoch = new WeakMap();
|
|
47
|
+
|
|
48
|
+
export { Clock };
|
|
49
|
+
//# sourceMappingURL=Clock.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Clock.js","sources":["../../../../src/Clock.ts"],"sourcesContent":["export interface ClockProps {\n year?: number;\n month?: number;\n day?: number;\n hours?: number;\n minutes?: number;\n seconds?: number;\n milliseconds?: number;\n}\n\nexport type TimeUnit = \"minutes\" | \"seconds\" | \"ms\";\nexport class Clock {\n #millisSinceEpoch = 0;\n\n constructor(props?: ClockProps) {\n const today = new Date();\n const offset = today.getTimezoneOffset();\n if (props) {\n const dateProvided =\n typeof props.year === \"number\" &&\n typeof props.month === \"number\" &&\n typeof props.day === \"number\";\n\n const year = props.year ?? today.getFullYear();\n const month =\n props.month !== undefined ? props.month - 1 : today.getMonth();\n const day = props.day ?? today.getDay();\n\n const hours =\n props.hours !== undefined\n ? offset === 0\n ? props.hours\n : // oversimplified, assumes BST\n props.hours + 1\n : dateProvided\n ? offset\n ? 1 // assumed BST\n : 0\n : today.getUTCHours();\n const minutes = props.minutes ?? (dateProvided ? 0 : today.getMinutes());\n const seconds = props.seconds ?? (dateProvided ? 0 : today.getSeconds());\n const ms =\n props.milliseconds ?? (dateProvided ? 0 : today.getMilliseconds());\n const date = new Date(year, month, day, hours, minutes, seconds, ms);\n this.#millisSinceEpoch = date.getTime();\n } else {\n this.#millisSinceEpoch = today.getTime();\n }\n }\n\n advance(value: number, units: TimeUnit = \"ms\") {\n const multiplier = units === \"ms\" ? 1 : units === \"seconds\" ? 1000 : 60_000;\n this.#millisSinceEpoch += value * multiplier;\n }\n\n toString() {\n return new Date(this.#millisSinceEpoch).toISOString();\n }\n\n get now() {\n return this.#millisSinceEpoch;\n }\n\n get date() {\n return new Date(this.#millisSinceEpoch);\n }\n}\n"],"names":[],"mappings":";;;;;;;AAAA,IAAA,iBAAA;AAWO,MAAM,KAAM,CAAA;AAAA,EAGjB,YAAY,KAAoB,EAAA;AAFhC,IAAoB,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAA,CAAA,CAAA;AAGlB,IAAM,MAAA,KAAA,uBAAY,IAAK,EAAA;AACvB,IAAM,MAAA,MAAA,GAAS,MAAM,iBAAkB,EAAA;AACvC,IAAA,IAAI,KAAO,EAAA;AACT,MAAM,MAAA,YAAA,GACJ,OAAO,KAAA,CAAM,IAAS,KAAA,QAAA,IACtB,OAAO,KAAA,CAAM,KAAU,KAAA,QAAA,IACvB,OAAO,KAAA,CAAM,GAAQ,KAAA,QAAA;AAEvB,MAAA,MAAM,IAAO,GAAA,KAAA,CAAM,IAAQ,IAAA,KAAA,CAAM,WAAY,EAAA;AAC7C,MAAM,MAAA,KAAA,GACJ,MAAM,KAAU,KAAA,KAAA,CAAA,GAAY,MAAM,KAAQ,GAAA,CAAA,GAAI,MAAM,QAAS,EAAA;AAC/D,MAAA,MAAM,GAAM,GAAA,KAAA,CAAM,GAAO,IAAA,KAAA,CAAM,MAAO,EAAA;AAEtC,MAAA,MAAM,QACJ,KAAM,CAAA,KAAA,KAAU,KACZ,CAAA,GAAA,MAAA,KAAW,IACT,KAAM,CAAA,KAAA;AAAA;AAAA,QAEN,MAAM,KAAQ,GAAA;AAAA,OAAA,GAChB,YACE,GAAA,MAAA,GACE,CACA,GAAA,CAAA,GACF,MAAM,WAAY,EAAA;AAC1B,MAAA,MAAM,UAAU,KAAM,CAAA,OAAA,KAAY,YAAe,GAAA,CAAA,GAAI,MAAM,UAAW,EAAA,CAAA;AACtE,MAAA,MAAM,UAAU,KAAM,CAAA,OAAA,KAAY,YAAe,GAAA,CAAA,GAAI,MAAM,UAAW,EAAA,CAAA;AACtE,MAAA,MAAM,KACJ,KAAM,CAAA,YAAA,KAAiB,YAAe,GAAA,CAAA,GAAI,MAAM,eAAgB,EAAA,CAAA;AAClE,MAAM,MAAA,IAAA,GAAO,IAAI,IAAK,CAAA,IAAA,EAAM,OAAO,GAAK,EAAA,KAAA,EAAO,OAAS,EAAA,OAAA,EAAS,EAAE,CAAA;AACnE,MAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAoB,KAAK,OAAQ,EAAA,CAAA;AAAA,KACjC,MAAA;AACL,MAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAoB,MAAM,OAAQ,EAAA,CAAA;AAAA;AACzC;AACF,EAEA,OAAA,CAAQ,KAAe,EAAA,KAAA,GAAkB,IAAM,EAAA;AAC7C,IAAA,MAAM,aAAa,KAAU,KAAA,IAAA,GAAO,CAAI,GAAA,KAAA,KAAU,YAAY,GAAO,GAAA,GAAA;AACrE,IAAK,YAAA,CAAA,IAAA,EAAA,iBAAA,EAAL,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAA,GAAqB,KAAQ,GAAA,UAAA,CAAA;AAAA;AACpC,EAEA,QAAW,GAAA;AACT,IAAA,OAAO,IAAI,IAAA,CAAK,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAiB,EAAE,WAAY,EAAA;AAAA;AACtD,EAEA,IAAI,GAAM,GAAA;AACR,IAAA,OAAO,YAAK,CAAA,IAAA,EAAA,iBAAA,CAAA;AAAA;AACd,EAEA,IAAI,IAAO,GAAA;AACT,IAAO,OAAA,IAAI,IAAK,CAAA,YAAA,CAAA,IAAA,EAAK,iBAAiB,CAAA,CAAA;AAAA;AAE1C;AAtDE,iBAAA,GAAA,IAAA,OAAA,EAAA;;;;"}
|
|
@@ -14,6 +14,14 @@ const formatConfigByTimePatterns = {
|
|
|
14
14
|
"hh:mm:ss a": {
|
|
15
15
|
locale: "en-GB",
|
|
16
16
|
options: { ...baseTimeFormatOptions, hour12: true }
|
|
17
|
+
},
|
|
18
|
+
"hh:mm:ss.ms": {
|
|
19
|
+
locale: "en-GB",
|
|
20
|
+
options: {
|
|
21
|
+
...baseTimeFormatOptions,
|
|
22
|
+
hour12: false,
|
|
23
|
+
fractionalSecondDigits: 3
|
|
24
|
+
}
|
|
17
25
|
}
|
|
18
26
|
};
|
|
19
27
|
const baseDateFormatOptions = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"formatter.js","sources":["../../../../../src/date/formatter.ts"],"sourcesContent":["import { DateFormatter } from \"@internationalized/date\";\nimport { isNotNullOrUndefined } from \"../ts-utils\";\nimport { DatePattern, DateTimePattern, TimePattern } from \"./types\";\n\ntype DateTimeFormatConfig = {\n locale: string;\n options: Intl.DateTimeFormatOptions;\n};\n\n// Time format config\nconst baseTimeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\nconst formatConfigByTimePatterns: Record<TimePattern, DateTimeFormatConfig> = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: false },\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: true },\n },\n};\n\n// Date format config\nconst baseDateFormatOptions: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n};\nconst formatConfigByDatePatterns: Record<DatePattern, DateTimeFormatConfig> = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: { ...baseDateFormatOptions },\n },\n \"dd/mm/yyyy\": { locale: \"en-GB\", options: { ...baseDateFormatOptions } },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n \"mm/dd/yyyy\": { locale: \"en-US\", options: { ...baseDateFormatOptions } },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n};\n\nfunction getFormatConfigs(pattern: DateTimePattern) {\n return [\n pattern.date ? formatConfigByDatePatterns[pattern.date] : null,\n pattern.time ? formatConfigByTimePatterns[pattern.time] : null,\n ];\n}\n\nexport function formatDate(pattern: DateTimePattern): (d: Date) => string {\n const formatters = getFormatConfigs(pattern)\n .filter(isNotNullOrUndefined)\n .map((c) => getDateFormatter(c.locale, c.options));\n\n return (d) => formatters.map((f) => f.format(d)).join(\" \");\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions
|
|
1
|
+
{"version":3,"file":"formatter.js","sources":["../../../../../src/date/formatter.ts"],"sourcesContent":["import { DateFormatter } from \"@internationalized/date\";\nimport { isNotNullOrUndefined } from \"../ts-utils\";\nimport { DatePattern, DateTimePattern, TimePattern } from \"./types\";\n\ntype DateTimeFormatConfig = {\n locale: string;\n options: Intl.DateTimeFormatOptions;\n};\n\n// Time format config\nconst baseTimeFormatOptions: Intl.DateTimeFormatOptions = {\n hour: \"2-digit\",\n minute: \"2-digit\",\n second: \"2-digit\",\n};\nconst formatConfigByTimePatterns: Record<TimePattern, DateTimeFormatConfig> = {\n \"hh:mm:ss\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: false },\n },\n \"hh:mm:ss a\": {\n locale: \"en-GB\",\n options: { ...baseTimeFormatOptions, hour12: true },\n },\n \"hh:mm:ss.ms\": {\n locale: \"en-GB\",\n options: {\n ...baseTimeFormatOptions,\n hour12: false,\n fractionalSecondDigits: 3,\n },\n },\n};\n\n// Date format config\nconst baseDateFormatOptions: Intl.DateTimeFormatOptions = {\n day: \"2-digit\",\n month: \"2-digit\",\n year: \"numeric\",\n};\nconst formatConfigByDatePatterns: Record<DatePattern, DateTimeFormatConfig> = {\n \"dd.mm.yyyy\": {\n locale: \"de-De\",\n options: { ...baseDateFormatOptions },\n },\n \"dd/mm/yyyy\": { locale: \"en-GB\", options: { ...baseDateFormatOptions } },\n \"dd MMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"dd MMMM yyyy\": {\n locale: \"en-GB\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n \"mm/dd/yyyy\": { locale: \"en-US\", options: { ...baseDateFormatOptions } },\n \"MMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"short\" },\n },\n \"MMMM dd, yyyy\": {\n locale: \"en-US\",\n options: { ...baseDateFormatOptions, month: \"long\" },\n },\n};\n\nfunction getFormatConfigs(pattern: DateTimePattern) {\n return [\n pattern.date ? formatConfigByDatePatterns[pattern.date] : null,\n pattern.time ? formatConfigByTimePatterns[pattern.time] : null,\n ];\n}\n\nexport function formatDate(pattern: DateTimePattern): (d: Date) => string {\n const formatters = getFormatConfigs(pattern)\n .filter(isNotNullOrUndefined)\n .map((c) => getDateFormatter(c.locale, c.options));\n\n return (d) => formatters.map((f) => f.format(d)).join(\" \");\n}\n\nexport function getDateFormatter(\n locale: string,\n options?: Intl.DateTimeFormatOptions,\n) {\n return new DateFormatter(locale, options);\n}\n"],"names":[],"mappings":";;;AAUA,MAAM,qBAAoD,GAAA;AAAA,EACxD,IAAM,EAAA,SAAA;AAAA,EACN,MAAQ,EAAA,SAAA;AAAA,EACR,MAAQ,EAAA;AACV,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,UAAY,EAAA;AAAA,IACV,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,KAAM;AAAA,GACrD;AAAA,EACA,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,QAAQ,IAAK;AAAA,GACpD;AAAA,EACA,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA;AAAA,MACP,GAAG,qBAAA;AAAA,MACH,MAAQ,EAAA,KAAA;AAAA,MACR,sBAAwB,EAAA;AAAA;AAC1B;AAEJ,CAAA;AAGA,MAAM,qBAAoD,GAAA;AAAA,EACxD,GAAK,EAAA,SAAA;AAAA,EACL,KAAO,EAAA,SAAA;AAAA,EACP,IAAM,EAAA;AACR,CAAA;AACA,MAAM,0BAAwE,GAAA;AAAA,EAC5E,YAAc,EAAA;AAAA,IACZ,MAAQ,EAAA,OAAA;AAAA,IACR,OAAA,EAAS,EAAE,GAAG,qBAAsB;AAAA,GACtC;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,aAAe,EAAA;AAAA,IACb,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ;AAAA,GACtD;AAAA,EACA,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO;AAAA,GACrD;AAAA,EACA,YAAA,EAAc,EAAE,MAAQ,EAAA,OAAA,EAAS,SAAS,EAAE,GAAG,uBAAwB,EAAA;AAAA,EACvE,cAAgB,EAAA;AAAA,IACd,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,OAAQ;AAAA,GACtD;AAAA,EACA,eAAiB,EAAA;AAAA,IACf,MAAQ,EAAA,OAAA;AAAA,IACR,OAAS,EAAA,EAAE,GAAG,qBAAA,EAAuB,OAAO,MAAO;AAAA;AAEvD,CAAA;AAEA,SAAS,iBAAiB,OAA0B,EAAA;AAClD,EAAO,OAAA;AAAA,IACL,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA,IAAA;AAAA,IAC1D,OAAQ,CAAA,IAAA,GAAO,0BAA2B,CAAA,OAAA,CAAQ,IAAI,CAAI,GAAA;AAAA,GAC5D;AACF;AAEO,SAAS,WAAW,OAA+C,EAAA;AACxE,EAAA,MAAM,UAAa,GAAA,gBAAA,CAAiB,OAAO,CAAA,CACxC,OAAO,oBAAoB,CAAA,CAC3B,GAAI,CAAA,CAAC,MAAM,gBAAiB,CAAA,CAAA,CAAE,MAAQ,EAAA,CAAA,CAAE,OAAO,CAAC,CAAA;AAEnD,EAAA,OAAO,CAAC,CAAA,KAAM,UAAW,CAAA,GAAA,CAAI,CAAC,CAAA,KAAM,CAAE,CAAA,MAAA,CAAO,CAAC,CAAC,CAAE,CAAA,IAAA,CAAK,GAAG,CAAA;AAC3D;AAEgB,SAAA,gBAAA,CACd,QACA,OACA,EAAA;AACA,EAAO,OAAA,IAAI,aAAc,CAAA,MAAA,EAAQ,OAAO,CAAA;AAC1C;;;;"}
|
|
@@ -7,7 +7,11 @@ const supportedDatePatterns = [
|
|
|
7
7
|
"MMM dd, yyyy",
|
|
8
8
|
"MMMM dd, yyyy"
|
|
9
9
|
];
|
|
10
|
-
const supportedTimePatterns = [
|
|
10
|
+
const supportedTimePatterns = [
|
|
11
|
+
"hh:mm:ss",
|
|
12
|
+
"hh:mm:ss a",
|
|
13
|
+
"hh:mm:ss.ms"
|
|
14
|
+
];
|
|
11
15
|
const supportedDateTimePatterns = {
|
|
12
16
|
date: supportedDatePatterns,
|
|
13
17
|
time: supportedTimePatterns
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sources":["../../../../../src/date/types.ts"],"sourcesContent":["import { ColumnTypeFormatting } from \"@vuu-ui/vuu-table-types\";\n\nconst supportedDatePatterns = [\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\",\n] as const;\n\nconst supportedTimePatterns = [\"hh:mm:ss\"
|
|
1
|
+
{"version":3,"file":"types.js","sources":["../../../../../src/date/types.ts"],"sourcesContent":["import { ColumnTypeFormatting } from \"@vuu-ui/vuu-table-types\";\n\nconst supportedDatePatterns = [\n \"dd.mm.yyyy\",\n \"dd/mm/yyyy\",\n \"dd MMM yyyy\",\n \"dd MMMM yyyy\",\n \"mm/dd/yyyy\",\n \"MMM dd, yyyy\",\n \"MMMM dd, yyyy\",\n] as const;\n\nconst supportedTimePatterns = [\n \"hh:mm:ss\",\n \"hh:mm:ss a\",\n \"hh:mm:ss.ms\",\n] as const;\n\nexport const supportedDateTimePatterns = {\n date: supportedDatePatterns,\n time: supportedTimePatterns,\n};\nexport const dateTimeLabelByType = { date: \"Date\", time: \"Time\" } as const;\n\nexport type DatePattern = (typeof supportedDatePatterns)[number];\nexport type TimePattern = (typeof supportedTimePatterns)[number];\n\nexport type DateTimePattern =\n | { date?: DatePattern; time: TimePattern }\n | { date: DatePattern; time?: TimePattern };\n\nexport const isDatePattern = (pattern?: string): pattern is DatePattern =>\n supportedDatePatterns.includes(pattern as DatePattern);\n\nexport const isTimePattern = (pattern?: string): pattern is TimePattern =>\n supportedTimePatterns.includes(pattern as TimePattern);\n\nexport const isDateTimePattern = (\n pattern?: ColumnTypeFormatting[\"pattern\"],\n): pattern is DateTimePattern =>\n isDatePattern(pattern?.date) || isTimePattern(pattern?.time);\n"],"names":[],"mappings":"AAEA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,YAAA;AAAA,EACA,YAAA;AAAA,EACA,aAAA;AAAA,EACA,cAAA;AAAA,EACA,YAAA;AAAA,EACA,cAAA;AAAA,EACA;AACF,CAAA;AAEA,MAAM,qBAAwB,GAAA;AAAA,EAC5B,UAAA;AAAA,EACA,YAAA;AAAA,EACA;AACF,CAAA;AAEO,MAAM,yBAA4B,GAAA;AAAA,EACvC,IAAM,EAAA,qBAAA;AAAA,EACN,IAAM,EAAA;AACR;AACO,MAAM,mBAAsB,GAAA,EAAE,IAAM,EAAA,MAAA,EAAQ,MAAM,MAAO;AASzD,MAAM,aAAgB,GAAA,CAAC,OAC5B,KAAA,qBAAA,CAAsB,SAAS,OAAsB;AAEhD,MAAM,aAAgB,GAAA,CAAC,OAC5B,KAAA,qBAAA,CAAsB,SAAS,OAAsB;AAE1C,MAAA,iBAAA,GAAoB,CAC/B,OAEA,KAAA,aAAA,CAAc,SAAS,IAAI,CAAA,IAAK,aAAc,CAAA,OAAA,EAAS,IAAI;;;;"}
|
|
@@ -8,6 +8,7 @@ export { AggregationType, addColumnToSubscribedColumns, applyDefaultColumnConfig
|
|
|
8
8
|
export { getCookieValue } from './cookie-utils.js';
|
|
9
9
|
export { getCellConfigPanelRenderer, getCellRenderer, getCellRendererOptions, getColumnHeaderContentRenderer, getColumnHeaderLabelRenderer, getConfigurationEditor, getEditRuleValidator, getLayoutComponent, getRegisteredCellRenderers, getRowClassNameGenerator, isContainer, isLayoutComponent, isView, registerComponent, registerConfigurationEditor } from './component-registry.js';
|
|
10
10
|
export { DataWindow } from './DataWindow.js';
|
|
11
|
+
export { Clock } from './Clock.js';
|
|
11
12
|
export { MEASURES } from './common-types.js';
|
|
12
13
|
export { importCSS } from './css-utils.js';
|
|
13
14
|
export { DOWN1, DOWN2, UP1, UP2, asInteger, getMovingValueDirection, isValidNumber, numericTypeOfStringValue, shallowEquals, stringIsValidDecimal, stringIsValidInt, stringIsValidNumber } from './data-utils.js';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
|
package/package.json
CHANGED
|
@@ -1,17 +1,17 @@
|
|
|
1
1
|
{
|
|
2
|
-
"version": "0.13.
|
|
2
|
+
"version": "0.13.13",
|
|
3
3
|
"author": "heswell",
|
|
4
4
|
"license": "Apache-2.0",
|
|
5
5
|
"types": "types/index.d.ts",
|
|
6
6
|
"devDependencies": {
|
|
7
|
-
"@vuu-ui/vuu-data-types": "0.13.
|
|
8
|
-
"@vuu-ui/vuu-table-types": "0.13.
|
|
9
|
-
"@vuu-ui/vuu-filter-types": "0.13.
|
|
10
|
-
"@vuu-ui/vuu-protocol-types": "0.13.
|
|
7
|
+
"@vuu-ui/vuu-data-types": "0.13.13",
|
|
8
|
+
"@vuu-ui/vuu-table-types": "0.13.13",
|
|
9
|
+
"@vuu-ui/vuu-filter-types": "0.13.13",
|
|
10
|
+
"@vuu-ui/vuu-protocol-types": "0.13.13"
|
|
11
11
|
},
|
|
12
12
|
"peerDependencies": {
|
|
13
13
|
"@internationalized/date": "^3.0.0",
|
|
14
|
-
"@vuu-ui/vuu-filter-parser": "0.13.
|
|
14
|
+
"@vuu-ui/vuu-filter-parser": "0.13.13",
|
|
15
15
|
"clsx": "^2.0.0",
|
|
16
16
|
"react": "^19.1.0",
|
|
17
17
|
"react-dom": "^19.1.0"
|
package/types/Clock.d.ts
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
export interface ClockProps {
|
|
2
|
+
year?: number;
|
|
3
|
+
month?: number;
|
|
4
|
+
day?: number;
|
|
5
|
+
hours?: number;
|
|
6
|
+
minutes?: number;
|
|
7
|
+
seconds?: number;
|
|
8
|
+
milliseconds?: number;
|
|
9
|
+
}
|
|
10
|
+
export type TimeUnit = "minutes" | "seconds" | "ms";
|
|
11
|
+
export declare class Clock {
|
|
12
|
+
#private;
|
|
13
|
+
constructor(props?: ClockProps);
|
|
14
|
+
advance(value: number, units?: TimeUnit): void;
|
|
15
|
+
toString(): string;
|
|
16
|
+
get now(): number;
|
|
17
|
+
get date(): Date;
|
|
18
|
+
}
|
package/types/date/types.d.ts
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { ColumnTypeFormatting } from "@vuu-ui/vuu-table-types";
|
|
2
2
|
declare const supportedDatePatterns: readonly ["dd.mm.yyyy", "dd/mm/yyyy", "dd MMM yyyy", "dd MMMM yyyy", "mm/dd/yyyy", "MMM dd, yyyy", "MMMM dd, yyyy"];
|
|
3
|
-
declare const supportedTimePatterns: readonly ["hh:mm:ss", "hh:mm:ss a"];
|
|
3
|
+
declare const supportedTimePatterns: readonly ["hh:mm:ss", "hh:mm:ss a", "hh:mm:ss.ms"];
|
|
4
4
|
export declare const supportedDateTimePatterns: {
|
|
5
5
|
date: readonly ["dd.mm.yyyy", "dd/mm/yyyy", "dd MMM yyyy", "dd MMMM yyyy", "mm/dd/yyyy", "MMM dd, yyyy", "MMMM dd, yyyy"];
|
|
6
|
-
time: readonly ["hh:mm:ss", "hh:mm:ss a"];
|
|
6
|
+
time: readonly ["hh:mm:ss", "hh:mm:ss a", "hh:mm:ss.ms"];
|
|
7
7
|
};
|
|
8
8
|
export declare const dateTimeLabelByType: {
|
|
9
9
|
readonly date: "Date";
|
package/types/index.d.ts
CHANGED
|
@@ -11,6 +11,7 @@ export * from "./column-utils";
|
|
|
11
11
|
export * from "./cookie-utils";
|
|
12
12
|
export * from "./component-registry";
|
|
13
13
|
export * from "./DataWindow";
|
|
14
|
+
export { Clock } from "./Clock";
|
|
14
15
|
export * from "./common-types";
|
|
15
16
|
export * from "./css-utils";
|
|
16
17
|
export * from "./data-utils";
|