@acoustte-digital-services/digitalstore-controls-dev 0.8.1-dev.20260722074927 → 0.8.1-dev.20260722075037
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/dist/DateTimeViewClient-K5FE5VSN.mjs +14 -0
- package/dist/DateTimeViewClient-M7V35KUW.mjs +16 -0
- package/dist/DateViewClient-4CTEMOMJ.mjs +7 -0
- package/dist/DateViewClient-JBS5UXMD.mjs +9 -0
- package/dist/chunk-DKW4DXCU.mjs +120 -0
- package/dist/chunk-YBNWT4TV.mjs +123 -0
- package/dist/index.js +35 -28
- package/dist/index.mjs +2 -2
- package/package.json +1 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import {
|
|
3
|
+
DateViewClient_default
|
|
4
|
+
} from "./chunk-DKW4DXCU.mjs";
|
|
5
|
+
|
|
6
|
+
// src/components/controls/view/DateTimeViewClient.tsx
|
|
7
|
+
import { jsx } from "react/jsx-runtime";
|
|
8
|
+
var DateTimeViewClient = (props) => {
|
|
9
|
+
return /* @__PURE__ */ jsx(DateViewClient_default, { ...props, controlType: "datetime" });
|
|
10
|
+
};
|
|
11
|
+
var DateTimeViewClient_default = DateTimeViewClient;
|
|
12
|
+
export {
|
|
13
|
+
DateTimeViewClient_default as default
|
|
14
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
"use client";
|
|
4
|
+
import {
|
|
5
|
+
DateViewClient_default
|
|
6
|
+
} from "./chunk-YBNWT4TV.mjs";
|
|
7
|
+
|
|
8
|
+
// src/components/controls/view/DateTimeViewClient.tsx
|
|
9
|
+
import { jsx } from "react/jsx-runtime";
|
|
10
|
+
var DateTimeViewClient = (props) => {
|
|
11
|
+
return /* @__PURE__ */ jsx(DateViewClient_default, { ...props, controlType: "datetime" });
|
|
12
|
+
};
|
|
13
|
+
var DateTimeViewClient_default = DateTimeViewClient;
|
|
14
|
+
export {
|
|
15
|
+
DateTimeViewClient_default as default
|
|
16
|
+
};
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
// src/components/controls/view/DateViewClient.tsx
|
|
2
|
+
import { useEffect, useState } from "react";
|
|
3
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
4
|
+
var dateFormatter = new Intl.DateTimeFormat("en", {
|
|
5
|
+
day: "2-digit",
|
|
6
|
+
month: "short",
|
|
7
|
+
year: "numeric"
|
|
8
|
+
});
|
|
9
|
+
var timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
10
|
+
hour: "2-digit",
|
|
11
|
+
minute: "2-digit"
|
|
12
|
+
});
|
|
13
|
+
var timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
14
|
+
hour: "2-digit",
|
|
15
|
+
minute: "2-digit",
|
|
16
|
+
second: "2-digit"
|
|
17
|
+
});
|
|
18
|
+
var dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
19
|
+
day: "2-digit",
|
|
20
|
+
month: "short",
|
|
21
|
+
year: "numeric",
|
|
22
|
+
hour: "2-digit",
|
|
23
|
+
minute: "2-digit"
|
|
24
|
+
});
|
|
25
|
+
var dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
26
|
+
day: "2-digit",
|
|
27
|
+
month: "short",
|
|
28
|
+
year: "numeric",
|
|
29
|
+
hour: "2-digit",
|
|
30
|
+
minute: "2-digit",
|
|
31
|
+
second: "2-digit"
|
|
32
|
+
});
|
|
33
|
+
var DateViewClient = (props) => {
|
|
34
|
+
const [timeZoneAbbr, setTimeZoneAbbr] = useState("");
|
|
35
|
+
useEffect(() => {
|
|
36
|
+
const parts = new Intl.DateTimeFormat("en", {
|
|
37
|
+
timeZoneName: "short"
|
|
38
|
+
}).formatToParts(/* @__PURE__ */ new Date());
|
|
39
|
+
const abbr = parts.find((part) => part.type === "timeZoneName")?.value || "";
|
|
40
|
+
setTimeZoneAbbr(abbr);
|
|
41
|
+
}, []);
|
|
42
|
+
const toUtcDate = (dateString) => {
|
|
43
|
+
const s = dateString.trim();
|
|
44
|
+
if (!s) {
|
|
45
|
+
throw new Error("Empty date string");
|
|
46
|
+
}
|
|
47
|
+
const iso = s.replace(" ", "T");
|
|
48
|
+
const hasTimeZone = /Z$/i.test(iso) || /[+-]\d{2}:\d{2}$/.test(iso);
|
|
49
|
+
const utc = hasTimeZone ? iso : `${iso}Z`;
|
|
50
|
+
const date = new Date(utc);
|
|
51
|
+
if (Number.isNaN(date.getTime())) {
|
|
52
|
+
throw new Error(`Invalid date: ${dateString}`);
|
|
53
|
+
}
|
|
54
|
+
return date;
|
|
55
|
+
};
|
|
56
|
+
const formatDate = (date) => {
|
|
57
|
+
return dateFormatter.format(date);
|
|
58
|
+
};
|
|
59
|
+
const formatTime = (date) => {
|
|
60
|
+
return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
|
|
61
|
+
};
|
|
62
|
+
const formatDateTime = (date) => {
|
|
63
|
+
return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
|
|
64
|
+
};
|
|
65
|
+
const getTimePeriod = (date) => {
|
|
66
|
+
const hours = date.getHours();
|
|
67
|
+
if (hours >= 5 && hours < 8) return "Early Morning";
|
|
68
|
+
if (hours >= 8 && hours < 12) return "Morning";
|
|
69
|
+
if (hours >= 12 && hours < 14) return "Noon";
|
|
70
|
+
if (hours >= 14 && hours < 17) return "Afternoon";
|
|
71
|
+
if (hours >= 17 && hours < 20) return "Evening";
|
|
72
|
+
if (hours >= 20 && hours < 22) return "Late Evening";
|
|
73
|
+
return "Night";
|
|
74
|
+
};
|
|
75
|
+
const getRelativeTime = (dateString) => {
|
|
76
|
+
const now = /* @__PURE__ */ new Date();
|
|
77
|
+
const utcDate = toUtcDate(dateString);
|
|
78
|
+
const diffMs = now.getTime() - utcDate.getTime();
|
|
79
|
+
const diffSec = Math.floor(diffMs / 1e3);
|
|
80
|
+
const diffMin = Math.floor(diffSec / 60);
|
|
81
|
+
const diffHr = Math.floor(diffMin / 60);
|
|
82
|
+
const diffDay = Math.floor(diffHr / 24);
|
|
83
|
+
if (diffSec < 60) return "Just now";
|
|
84
|
+
if (diffMin < 60) return `${diffMin} minute${diffMin > 1 ? "s" : ""} ago`;
|
|
85
|
+
if (diffHr < 24) return `${diffHr} hour${diffHr > 1 ? "s" : ""} ago`;
|
|
86
|
+
if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`;
|
|
87
|
+
return formatDate(utcDate);
|
|
88
|
+
};
|
|
89
|
+
const parseAndFormatDate = (dateString, format) => {
|
|
90
|
+
if (format === "relative") {
|
|
91
|
+
return getRelativeTime(dateString);
|
|
92
|
+
}
|
|
93
|
+
const utcDate = toUtcDate(dateString);
|
|
94
|
+
switch (props.controlType) {
|
|
95
|
+
case "date":
|
|
96
|
+
return formatDate(utcDate);
|
|
97
|
+
case "time":
|
|
98
|
+
return `${formatTime(utcDate)} ${timeZoneAbbr} (${getTimePeriod(
|
|
99
|
+
utcDate
|
|
100
|
+
)})`;
|
|
101
|
+
default:
|
|
102
|
+
return formatDateTime(utcDate);
|
|
103
|
+
}
|
|
104
|
+
};
|
|
105
|
+
let localDateTime = "";
|
|
106
|
+
try {
|
|
107
|
+
localDateTime = parseAndFormatDate(props.value, props.format);
|
|
108
|
+
} catch (error) {
|
|
109
|
+
console.error("Error parsing date:", props.value, error);
|
|
110
|
+
}
|
|
111
|
+
return /* @__PURE__ */ jsxs("div", { className: "inline-flex flex-wrap gap-1", children: [
|
|
112
|
+
/* @__PURE__ */ jsx("span", { children: localDateTime }),
|
|
113
|
+
!props.format && props.controlType !== "date" && props.controlType !== "datetime" && timeZoneAbbr && /* @__PURE__ */ jsx("span", { children: timeZoneAbbr })
|
|
114
|
+
] });
|
|
115
|
+
};
|
|
116
|
+
var DateViewClient_default = DateViewClient;
|
|
117
|
+
|
|
118
|
+
export {
|
|
119
|
+
DateViewClient_default
|
|
120
|
+
};
|
|
@@ -0,0 +1,123 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
// src/components/controls/view/DateViewClient.tsx
|
|
5
|
+
import { useEffect, useState } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
var dateFormatter = new Intl.DateTimeFormat("en", {
|
|
8
|
+
day: "2-digit",
|
|
9
|
+
month: "short",
|
|
10
|
+
year: "numeric"
|
|
11
|
+
});
|
|
12
|
+
var timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
13
|
+
hour: "2-digit",
|
|
14
|
+
minute: "2-digit"
|
|
15
|
+
});
|
|
16
|
+
var timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
17
|
+
hour: "2-digit",
|
|
18
|
+
minute: "2-digit",
|
|
19
|
+
second: "2-digit"
|
|
20
|
+
});
|
|
21
|
+
var dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
22
|
+
day: "2-digit",
|
|
23
|
+
month: "short",
|
|
24
|
+
year: "numeric",
|
|
25
|
+
hour: "2-digit",
|
|
26
|
+
minute: "2-digit"
|
|
27
|
+
});
|
|
28
|
+
var dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
29
|
+
day: "2-digit",
|
|
30
|
+
month: "short",
|
|
31
|
+
year: "numeric",
|
|
32
|
+
hour: "2-digit",
|
|
33
|
+
minute: "2-digit",
|
|
34
|
+
second: "2-digit"
|
|
35
|
+
});
|
|
36
|
+
var DateViewClient = (props) => {
|
|
37
|
+
const [timeZoneAbbr, setTimeZoneAbbr] = useState("");
|
|
38
|
+
useEffect(() => {
|
|
39
|
+
const parts = new Intl.DateTimeFormat("en", {
|
|
40
|
+
timeZoneName: "short"
|
|
41
|
+
}).formatToParts(/* @__PURE__ */ new Date());
|
|
42
|
+
const abbr = parts.find((part) => part.type === "timeZoneName")?.value || "";
|
|
43
|
+
setTimeZoneAbbr(abbr);
|
|
44
|
+
}, []);
|
|
45
|
+
const toUtcDate = (dateString) => {
|
|
46
|
+
const s = dateString.trim();
|
|
47
|
+
if (!s) {
|
|
48
|
+
throw new Error("Empty date string");
|
|
49
|
+
}
|
|
50
|
+
const iso = s.replace(" ", "T");
|
|
51
|
+
const hasTimeZone = /Z$/i.test(iso) || /[+-]\d{2}:\d{2}$/.test(iso);
|
|
52
|
+
const utc = hasTimeZone ? iso : `${iso}Z`;
|
|
53
|
+
const date = new Date(utc);
|
|
54
|
+
if (Number.isNaN(date.getTime())) {
|
|
55
|
+
throw new Error(`Invalid date: ${dateString}`);
|
|
56
|
+
}
|
|
57
|
+
return date;
|
|
58
|
+
};
|
|
59
|
+
const formatDate = (date) => {
|
|
60
|
+
return dateFormatter.format(date);
|
|
61
|
+
};
|
|
62
|
+
const formatTime = (date) => {
|
|
63
|
+
return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
|
|
64
|
+
};
|
|
65
|
+
const formatDateTime = (date) => {
|
|
66
|
+
return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
|
|
67
|
+
};
|
|
68
|
+
const getTimePeriod = (date) => {
|
|
69
|
+
const hours = date.getHours();
|
|
70
|
+
if (hours >= 5 && hours < 8) return "Early Morning";
|
|
71
|
+
if (hours >= 8 && hours < 12) return "Morning";
|
|
72
|
+
if (hours >= 12 && hours < 14) return "Noon";
|
|
73
|
+
if (hours >= 14 && hours < 17) return "Afternoon";
|
|
74
|
+
if (hours >= 17 && hours < 20) return "Evening";
|
|
75
|
+
if (hours >= 20 && hours < 22) return "Late Evening";
|
|
76
|
+
return "Night";
|
|
77
|
+
};
|
|
78
|
+
const getRelativeTime = (dateString) => {
|
|
79
|
+
const now = /* @__PURE__ */ new Date();
|
|
80
|
+
const utcDate = toUtcDate(dateString);
|
|
81
|
+
const diffMs = now.getTime() - utcDate.getTime();
|
|
82
|
+
const diffSec = Math.floor(diffMs / 1e3);
|
|
83
|
+
const diffMin = Math.floor(diffSec / 60);
|
|
84
|
+
const diffHr = Math.floor(diffMin / 60);
|
|
85
|
+
const diffDay = Math.floor(diffHr / 24);
|
|
86
|
+
if (diffSec < 60) return "Just now";
|
|
87
|
+
if (diffMin < 60) return `${diffMin} minute${diffMin > 1 ? "s" : ""} ago`;
|
|
88
|
+
if (diffHr < 24) return `${diffHr} hour${diffHr > 1 ? "s" : ""} ago`;
|
|
89
|
+
if (diffDay < 7) return `${diffDay} day${diffDay > 1 ? "s" : ""} ago`;
|
|
90
|
+
return formatDate(utcDate);
|
|
91
|
+
};
|
|
92
|
+
const parseAndFormatDate = (dateString, format) => {
|
|
93
|
+
if (format === "relative") {
|
|
94
|
+
return getRelativeTime(dateString);
|
|
95
|
+
}
|
|
96
|
+
const utcDate = toUtcDate(dateString);
|
|
97
|
+
switch (props.controlType) {
|
|
98
|
+
case "date":
|
|
99
|
+
return formatDate(utcDate);
|
|
100
|
+
case "time":
|
|
101
|
+
return `${formatTime(utcDate)} ${timeZoneAbbr} (${getTimePeriod(
|
|
102
|
+
utcDate
|
|
103
|
+
)})`;
|
|
104
|
+
default:
|
|
105
|
+
return formatDateTime(utcDate);
|
|
106
|
+
}
|
|
107
|
+
};
|
|
108
|
+
let localDateTime = "";
|
|
109
|
+
try {
|
|
110
|
+
localDateTime = parseAndFormatDate(props.value, props.format);
|
|
111
|
+
} catch (error) {
|
|
112
|
+
console.error("Error parsing date:", props.value, error);
|
|
113
|
+
}
|
|
114
|
+
return /* @__PURE__ */ jsxs("div", { className: "inline-flex flex-wrap gap-1", children: [
|
|
115
|
+
/* @__PURE__ */ jsx("span", { children: localDateTime }),
|
|
116
|
+
!props.format && props.controlType !== "date" && props.controlType !== "datetime" && timeZoneAbbr && /* @__PURE__ */ jsx("span", { children: timeZoneAbbr })
|
|
117
|
+
] });
|
|
118
|
+
};
|
|
119
|
+
var DateViewClient_default = DateViewClient;
|
|
120
|
+
|
|
121
|
+
export {
|
|
122
|
+
DateViewClient_default
|
|
123
|
+
};
|
package/dist/index.js
CHANGED
|
@@ -1,3 +1,5 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
|
|
1
3
|
"use strict";
|
|
2
4
|
var __create = Object.create;
|
|
3
5
|
var __defProp = Object.defineProperty;
|
|
@@ -35,13 +37,42 @@ var DateViewClient_exports = {};
|
|
|
35
37
|
__export(DateViewClient_exports, {
|
|
36
38
|
default: () => DateViewClient_default
|
|
37
39
|
});
|
|
38
|
-
var import_react2, import_jsx_runtime2, DateViewClient, DateViewClient_default;
|
|
40
|
+
var import_react2, import_jsx_runtime2, dateFormatter, timeFormatterNoSeconds, timeFormatterWithSeconds, dateTimeFormatterNoSeconds, dateTimeFormatterWithSeconds, DateViewClient, DateViewClient_default;
|
|
39
41
|
var init_DateViewClient = __esm({
|
|
40
42
|
"src/components/controls/view/DateViewClient.tsx"() {
|
|
41
43
|
"use strict";
|
|
42
44
|
"use client";
|
|
43
45
|
import_react2 = require("react");
|
|
44
46
|
import_jsx_runtime2 = require("react/jsx-runtime");
|
|
47
|
+
dateFormatter = new Intl.DateTimeFormat("en", {
|
|
48
|
+
day: "2-digit",
|
|
49
|
+
month: "short",
|
|
50
|
+
year: "numeric"
|
|
51
|
+
});
|
|
52
|
+
timeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
53
|
+
hour: "2-digit",
|
|
54
|
+
minute: "2-digit"
|
|
55
|
+
});
|
|
56
|
+
timeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
57
|
+
hour: "2-digit",
|
|
58
|
+
minute: "2-digit",
|
|
59
|
+
second: "2-digit"
|
|
60
|
+
});
|
|
61
|
+
dateTimeFormatterNoSeconds = new Intl.DateTimeFormat("en", {
|
|
62
|
+
day: "2-digit",
|
|
63
|
+
month: "short",
|
|
64
|
+
year: "numeric",
|
|
65
|
+
hour: "2-digit",
|
|
66
|
+
minute: "2-digit"
|
|
67
|
+
});
|
|
68
|
+
dateTimeFormatterWithSeconds = new Intl.DateTimeFormat("en", {
|
|
69
|
+
day: "2-digit",
|
|
70
|
+
month: "short",
|
|
71
|
+
year: "numeric",
|
|
72
|
+
hour: "2-digit",
|
|
73
|
+
minute: "2-digit",
|
|
74
|
+
second: "2-digit"
|
|
75
|
+
});
|
|
45
76
|
DateViewClient = (props) => {
|
|
46
77
|
const [timeZoneAbbr, setTimeZoneAbbr] = (0, import_react2.useState)("");
|
|
47
78
|
(0, import_react2.useEffect)(() => {
|
|
@@ -66,37 +97,13 @@ var init_DateViewClient = __esm({
|
|
|
66
97
|
return date;
|
|
67
98
|
};
|
|
68
99
|
const formatDate = (date) => {
|
|
69
|
-
return
|
|
70
|
-
day: "2-digit",
|
|
71
|
-
month: "short",
|
|
72
|
-
year: "numeric"
|
|
73
|
-
}).format(date);
|
|
100
|
+
return dateFormatter.format(date);
|
|
74
101
|
};
|
|
75
102
|
const formatTime = (date) => {
|
|
76
|
-
return date.getSeconds() === 0 ?
|
|
77
|
-
hour: "2-digit",
|
|
78
|
-
minute: "2-digit"
|
|
79
|
-
}).format(date) : new Intl.DateTimeFormat("en", {
|
|
80
|
-
hour: "2-digit",
|
|
81
|
-
minute: "2-digit",
|
|
82
|
-
second: "2-digit"
|
|
83
|
-
}).format(date);
|
|
103
|
+
return date.getSeconds() === 0 ? timeFormatterNoSeconds.format(date) : timeFormatterWithSeconds.format(date);
|
|
84
104
|
};
|
|
85
105
|
const formatDateTime = (date) => {
|
|
86
|
-
return date.getSeconds() === 0 ?
|
|
87
|
-
day: "2-digit",
|
|
88
|
-
month: "short",
|
|
89
|
-
year: "numeric",
|
|
90
|
-
hour: "2-digit",
|
|
91
|
-
minute: "2-digit"
|
|
92
|
-
}).format(date) : new Intl.DateTimeFormat("en", {
|
|
93
|
-
day: "2-digit",
|
|
94
|
-
month: "short",
|
|
95
|
-
year: "numeric",
|
|
96
|
-
hour: "2-digit",
|
|
97
|
-
minute: "2-digit",
|
|
98
|
-
second: "2-digit"
|
|
99
|
-
}).format(date);
|
|
106
|
+
return date.getSeconds() === 0 ? dateTimeFormatterNoSeconds.format(date) : dateTimeFormatterWithSeconds.format(date);
|
|
100
107
|
};
|
|
101
108
|
const getTimePeriod = (date) => {
|
|
102
109
|
const hours = date.getHours();
|
package/dist/index.mjs
CHANGED
|
@@ -76,7 +76,7 @@ var NumberView_default = NumberView;
|
|
|
76
76
|
|
|
77
77
|
// src/components/controls/view/DateView.tsx
|
|
78
78
|
import dynamic from "next/dynamic";
|
|
79
|
-
var DateView = dynamic(() => import("./DateViewClient-
|
|
79
|
+
var DateView = dynamic(() => import("./DateViewClient-4CTEMOMJ.mjs"), {
|
|
80
80
|
ssr: false
|
|
81
81
|
});
|
|
82
82
|
var DateView_default = DateView;
|
|
@@ -366,7 +366,7 @@ var AiGeneratedSummary_default = AiGeneratedSummary;
|
|
|
366
366
|
|
|
367
367
|
// src/components/controls/view/DateTimeVew.tsx
|
|
368
368
|
import dynamic3 from "next/dynamic";
|
|
369
|
-
var DateTimeView = dynamic3(() => import("./DateTimeViewClient-
|
|
369
|
+
var DateTimeView = dynamic3(() => import("./DateTimeViewClient-K5FE5VSN.mjs"), {
|
|
370
370
|
ssr: false
|
|
371
371
|
});
|
|
372
372
|
var DateTimeVew_default = DateTimeView;
|
package/package.json
CHANGED