@pibit.ai/cure-design-system 0.3.18 → 0.3.21
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/README.md +1 -0
- package/dist/applications/schedule-calendar/index.d.ts +4 -0
- package/dist/applications/schedule-calendar/index.d.ts.map +1 -0
- package/dist/applications/schedule-calendar/schedule-calendar.d.ts +3 -0
- package/dist/applications/schedule-calendar/schedule-calendar.d.ts.map +1 -0
- package/dist/applications/schedule-calendar/schedule-calendar.js +204 -0
- package/dist/applications/schedule-calendar/types.d.ts +56 -0
- package/dist/applications/schedule-calendar/types.d.ts.map +1 -0
- package/dist/applications/schedule-calendar/types.js +40 -0
- package/dist/applications/schedule-calendar/utils.d.ts +31 -0
- package/dist/applications/schedule-calendar/utils.d.ts.map +1 -0
- package/dist/applications/schedule-calendar/utils.js +171 -0
- package/dist/applications/schedule-calendar/utils.test.d.ts +2 -0
- package/dist/applications/schedule-calendar/utils.test.d.ts.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +113 -101
- package/dist/patterns/table/TableWrapper.d.ts.map +1 -1
- package/dist/patterns/table/TableWrapper.js +776 -661
- package/dist/patterns/table/table.d.ts.map +1 -1
- package/dist/patterns/table/table.js +44 -43
- package/dist/patterns/table/toolbar/AlignDropdown.js +14 -14
- package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts +9 -0
- package/dist/patterns/table/toolbar/ColumnHeaderMenu.d.ts.map +1 -1
- package/dist/patterns/table/toolbar/ColumnHeaderMenu.js +115 -81
- package/dist/patterns/table/toolbar/SummaryFooter.d.ts.map +1 -1
- package/dist/patterns/table/toolbar/SummaryFooter.js +34 -27
- package/dist/patterns/table/toolbar/index.d.ts +1 -1
- package/dist/patterns/table/toolbar/index.d.ts.map +1 -1
- package/dist/patterns/table/toolbar/tableToolbarHelpers.js +1 -1
- package/dist/primitives/select/searchable-select.d.ts +5 -3
- package/dist/primitives/select/searchable-select.d.ts.map +1 -1
- package/dist/primitives/select/searchable-select.js +196 -177
- package/dist/primitives/select/select-item.d.ts.map +1 -1
- package/dist/primitives/select/select-item.js +70 -54
- package/dist/primitives/select/select.d.ts +7 -2
- package/dist/primitives/select/select.d.ts.map +1 -1
- package/dist/primitives/select/select.js +161 -137
- package/dist/primitives/snackbar/index.d.ts +2 -0
- package/dist/primitives/snackbar/index.d.ts.map +1 -0
- package/dist/primitives/snackbar/snackbar.d.ts +27 -0
- package/dist/primitives/snackbar/snackbar.d.ts.map +1 -0
- package/dist/primitives/snackbar/snackbar.js +107 -0
- package/dist/primitives/tooltip/ellipsis-content.d.ts.map +1 -1
- package/dist/primitives/tooltip/ellipsis-content.js +46 -43
- package/dist/styles/components.css +1 -1
- package/package.json +4 -1
package/README.md
CHANGED
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
export { ScheduleCalendar } from './schedule-calendar';
|
|
2
|
+
export { WEEKDAYS, type WeekdayKey, type ScheduleWindow, type DaySchedule, type ScheduleCalendarProps, } from './types';
|
|
3
|
+
export { formatHour, formatHourLabel, formatSlotLabel, formatTime, schedulesToCellSet, cellSetToSchedules, mergeHoursToWindows, mergeSlotsToWindows, getSlotRange, } from './utils';
|
|
4
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/applications/schedule-calendar/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,qBAAqB,CAAC;AACvD,OAAO,EACL,QAAQ,EACR,KAAK,UAAU,EACf,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,qBAAqB,GAC3B,MAAM,SAAS,CAAC;AACjB,OAAO,EACL,UAAU,EACV,eAAe,EACf,eAAe,EACf,UAAU,EACV,kBAAkB,EAClB,kBAAkB,EAClB,mBAAmB,EACnB,mBAAmB,EACnB,YAAY,GACb,MAAM,SAAS,CAAC"}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import { ScheduleCalendarProps } from './types';
|
|
2
|
+
export declare function ScheduleCalendar({ value, onChange, startHour: startHourProp, endHour: endHourProp, halfHourIntervals, className, disabled, }: ScheduleCalendarProps): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
//# sourceMappingURL=schedule-calendar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"schedule-calendar.d.ts","sourceRoot":"","sources":["../../../src/applications/schedule-calendar/schedule-calendar.tsx"],"names":[],"mappings":"AAoBA,OAAO,EAIL,KAAK,qBAAqB,EAE3B,MAAM,SAAS,CAAC;AAQjB,wBAAgB,gBAAgB,CAAC,EAC/B,KAAK,EACL,QAAQ,EACR,SAAS,EAAE,aAAiB,EAC5B,OAAO,EAAE,WAAgB,EACzB,iBAAyB,EACzB,SAAS,EACT,QAAgB,GACjB,EAAE,qBAAqB,2CA+PvB"}
|
|
@@ -0,0 +1,204 @@
|
|
|
1
|
+
import { jsx as m, jsxs as A } from "react/jsx-runtime";
|
|
2
|
+
import { useMemo as w, useRef as P, useState as K, useCallback as y, useEffect as q } from "react";
|
|
3
|
+
import { cn as b } from "../../utils/cn.js";
|
|
4
|
+
import { getHourRange as G, clampHourRange as Y, getSlotRange as B, schedulesToCellSet as J, cellKey as C, cellSetToSchedules as Q, formatHourLabel as V, formatSlotLabel as X, getRectangleCells as Z } from "./utils.js";
|
|
5
|
+
import { WEEKDAYS as p } from "./types.js";
|
|
6
|
+
function oe({
|
|
7
|
+
value: k,
|
|
8
|
+
onChange: v,
|
|
9
|
+
startHour: F = 0,
|
|
10
|
+
endHour: T = 23,
|
|
11
|
+
halfHourIntervals: n = !1,
|
|
12
|
+
className: j,
|
|
13
|
+
disabled: c = !1
|
|
14
|
+
}) {
|
|
15
|
+
const { startHour: d, endHour: i } = Y(F, T), E = w(
|
|
16
|
+
() => G(d, i),
|
|
17
|
+
[d, i]
|
|
18
|
+
), l = w(
|
|
19
|
+
() => B(d, i, n),
|
|
20
|
+
[d, i, n]
|
|
21
|
+
), g = w(
|
|
22
|
+
() => J(k, n),
|
|
23
|
+
[k, n]
|
|
24
|
+
), h = P(null), [R, N] = K(!1), [a, x] = K(null), L = P(null), M = y(
|
|
25
|
+
(e, r) => g.has(C(e, r)),
|
|
26
|
+
[g]
|
|
27
|
+
), f = y(
|
|
28
|
+
(e) => {
|
|
29
|
+
const r = new Set(g);
|
|
30
|
+
e(r), v(
|
|
31
|
+
Q(r, n, { startHour: d, endHour: i })
|
|
32
|
+
);
|
|
33
|
+
},
|
|
34
|
+
[i, n, v, g, d]
|
|
35
|
+
), D = y(
|
|
36
|
+
(e) => {
|
|
37
|
+
const r = C(e.day, e.hour);
|
|
38
|
+
f((t) => {
|
|
39
|
+
t.has(r) ? t.delete(r) : t.add(r);
|
|
40
|
+
});
|
|
41
|
+
},
|
|
42
|
+
[f]
|
|
43
|
+
), z = y(
|
|
44
|
+
(e, r) => {
|
|
45
|
+
f((t) => {
|
|
46
|
+
for (const s of e) {
|
|
47
|
+
const o = C(s.day, s.hour);
|
|
48
|
+
r === "select" && !t.has(o) && t.add(o), r === "deselect" && t.has(o) && t.delete(o);
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
},
|
|
52
|
+
[f]
|
|
53
|
+
), $ = y(() => {
|
|
54
|
+
const e = h.current;
|
|
55
|
+
e && !e.moved && D(e.anchor), h.current = null, N(!1);
|
|
56
|
+
}, [D]);
|
|
57
|
+
q(() => {
|
|
58
|
+
if (!R) return;
|
|
59
|
+
const e = () => {
|
|
60
|
+
$();
|
|
61
|
+
};
|
|
62
|
+
return window.addEventListener("pointerup", e), () => {
|
|
63
|
+
window.removeEventListener("pointerup", e);
|
|
64
|
+
};
|
|
65
|
+
}, [$, R]);
|
|
66
|
+
const O = (e) => {
|
|
67
|
+
c || (h.current = {
|
|
68
|
+
anchor: e,
|
|
69
|
+
mode: M(e.day, e.hour) ? "deselect" : "select",
|
|
70
|
+
moved: !1
|
|
71
|
+
}, N(!0), x(e));
|
|
72
|
+
}, U = (e) => {
|
|
73
|
+
const r = h.current;
|
|
74
|
+
if (!r || c) return;
|
|
75
|
+
r.moved = !0;
|
|
76
|
+
const t = Z(
|
|
77
|
+
r.anchor,
|
|
78
|
+
e,
|
|
79
|
+
l
|
|
80
|
+
);
|
|
81
|
+
z(t, r.mode);
|
|
82
|
+
}, W = (e) => {
|
|
83
|
+
var t;
|
|
84
|
+
x(e);
|
|
85
|
+
const r = (t = L.current) == null ? void 0 : t.querySelector(
|
|
86
|
+
`[data-day="${e.day}"][data-hour="${e.hour}"]`
|
|
87
|
+
);
|
|
88
|
+
r == null || r.focus();
|
|
89
|
+
}, _ = (e) => {
|
|
90
|
+
if (c || !a) return;
|
|
91
|
+
const r = p.findIndex((u) => u.key === a.day), t = l.findIndex((u) => u === a.hour);
|
|
92
|
+
let s = r, o = t;
|
|
93
|
+
switch (e.key) {
|
|
94
|
+
case "ArrowLeft":
|
|
95
|
+
o = Math.max(0, t - 1);
|
|
96
|
+
break;
|
|
97
|
+
case "ArrowRight":
|
|
98
|
+
o = Math.min(l.length - 1, t + 1);
|
|
99
|
+
break;
|
|
100
|
+
case "ArrowUp":
|
|
101
|
+
s = Math.max(0, r - 1);
|
|
102
|
+
break;
|
|
103
|
+
case "ArrowDown":
|
|
104
|
+
s = Math.min(p.length - 1, r + 1);
|
|
105
|
+
break;
|
|
106
|
+
case " ":
|
|
107
|
+
case "Enter":
|
|
108
|
+
e.preventDefault(), D(a);
|
|
109
|
+
return;
|
|
110
|
+
default:
|
|
111
|
+
return;
|
|
112
|
+
}
|
|
113
|
+
e.preventDefault();
|
|
114
|
+
const S = {
|
|
115
|
+
day: p[s].key,
|
|
116
|
+
hour: l[o]
|
|
117
|
+
};
|
|
118
|
+
W(S);
|
|
119
|
+
};
|
|
120
|
+
return /* @__PURE__ */ m("div", { className: b("w-full overflow-x-auto", j), children: /* @__PURE__ */ A(
|
|
121
|
+
"div",
|
|
122
|
+
{
|
|
123
|
+
ref: L,
|
|
124
|
+
role: "grid",
|
|
125
|
+
"aria-label": "Weekly schedule",
|
|
126
|
+
"aria-disabled": c || void 0,
|
|
127
|
+
className: b(
|
|
128
|
+
"inline-grid min-w-full select-none border border-secondary bg-primary",
|
|
129
|
+
c && "cursor-not-allowed opacity-60"
|
|
130
|
+
),
|
|
131
|
+
style: {
|
|
132
|
+
gridTemplateColumns: `minmax(7rem, auto) repeat(${l.length}, minmax(${n ? "1.5rem" : "2.75rem"}, 1fr))`
|
|
133
|
+
},
|
|
134
|
+
onKeyDown: _,
|
|
135
|
+
children: [
|
|
136
|
+
/* @__PURE__ */ m(
|
|
137
|
+
"div",
|
|
138
|
+
{
|
|
139
|
+
role: "columnheader",
|
|
140
|
+
className: "sticky left-0 z-20 border-b border-r border-secondary bg-secondary_subtle px-3 py-2 text-xs font-medium text-tertiary",
|
|
141
|
+
children: "Days"
|
|
142
|
+
}
|
|
143
|
+
),
|
|
144
|
+
E.map((e, r) => /* @__PURE__ */ m(
|
|
145
|
+
"div",
|
|
146
|
+
{
|
|
147
|
+
role: "columnheader",
|
|
148
|
+
style: n ? { gridColumn: "span 2" } : void 0,
|
|
149
|
+
className: b(
|
|
150
|
+
"border-b border-r border-secondary bg-secondary_subtle px-2 py-2 text-center text-xs font-medium text-tertiary",
|
|
151
|
+
r === E.length - 1 && "border-r-0"
|
|
152
|
+
),
|
|
153
|
+
children: V(e)
|
|
154
|
+
},
|
|
155
|
+
e
|
|
156
|
+
)),
|
|
157
|
+
p.map((e) => /* @__PURE__ */ A("div", { role: "row", className: "contents", children: [
|
|
158
|
+
/* @__PURE__ */ m(
|
|
159
|
+
"div",
|
|
160
|
+
{
|
|
161
|
+
role: "rowheader",
|
|
162
|
+
className: "sticky left-0 z-10 border-b border-r border-secondary bg-primary px-3 py-2 text-xs text-secondary last:border-b-0",
|
|
163
|
+
children: e.value
|
|
164
|
+
}
|
|
165
|
+
),
|
|
166
|
+
l.map((r, t) => {
|
|
167
|
+
const s = M(e.key, r), o = (a == null ? void 0 : a.day) === e.key && a.hour === r, S = t === l.length - 1;
|
|
168
|
+
return /* @__PURE__ */ m(
|
|
169
|
+
"div",
|
|
170
|
+
{
|
|
171
|
+
role: "gridcell",
|
|
172
|
+
"data-day": e.key,
|
|
173
|
+
"data-hour": r,
|
|
174
|
+
tabIndex: o ? 0 : -1,
|
|
175
|
+
"aria-selected": s,
|
|
176
|
+
"aria-label": `${e.value} ${X(r, n)}`,
|
|
177
|
+
className: b(
|
|
178
|
+
"h-10 border-b border-r border-secondary",
|
|
179
|
+
S && "border-r-0",
|
|
180
|
+
!c && "cursor-crosshair",
|
|
181
|
+
s ? "bg-brand-solid" : "bg-primary",
|
|
182
|
+
o && "ring-2 ring-focus-ring ring-inset"
|
|
183
|
+
),
|
|
184
|
+
onPointerDown: (u) => {
|
|
185
|
+
u.preventDefault(), O({ day: e.key, hour: r });
|
|
186
|
+
},
|
|
187
|
+
onPointerEnter: () => {
|
|
188
|
+
U({ day: e.key, hour: r });
|
|
189
|
+
},
|
|
190
|
+
onFocus: () => {
|
|
191
|
+
x({ day: e.key, hour: r });
|
|
192
|
+
}
|
|
193
|
+
},
|
|
194
|
+
r
|
|
195
|
+
);
|
|
196
|
+
})
|
|
197
|
+
] }, e.key))
|
|
198
|
+
]
|
|
199
|
+
}
|
|
200
|
+
) });
|
|
201
|
+
}
|
|
202
|
+
export {
|
|
203
|
+
oe as ScheduleCalendar
|
|
204
|
+
};
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
export declare const WEEKDAYS: readonly [{
|
|
2
|
+
readonly key: "MONDAY";
|
|
3
|
+
readonly value: "Monday";
|
|
4
|
+
readonly order: 0;
|
|
5
|
+
}, {
|
|
6
|
+
readonly key: "TUESDAY";
|
|
7
|
+
readonly value: "Tuesday";
|
|
8
|
+
readonly order: 1;
|
|
9
|
+
}, {
|
|
10
|
+
readonly key: "WEDNESDAY";
|
|
11
|
+
readonly value: "Wednesday";
|
|
12
|
+
readonly order: 2;
|
|
13
|
+
}, {
|
|
14
|
+
readonly key: "THURSDAY";
|
|
15
|
+
readonly value: "Thursday";
|
|
16
|
+
readonly order: 3;
|
|
17
|
+
}, {
|
|
18
|
+
readonly key: "FRIDAY";
|
|
19
|
+
readonly value: "Friday";
|
|
20
|
+
readonly order: 4;
|
|
21
|
+
}, {
|
|
22
|
+
readonly key: "SATURDAY";
|
|
23
|
+
readonly value: "Saturday";
|
|
24
|
+
readonly order: 5;
|
|
25
|
+
}, {
|
|
26
|
+
readonly key: "SUNDAY";
|
|
27
|
+
readonly value: "Sunday";
|
|
28
|
+
readonly order: 6;
|
|
29
|
+
}];
|
|
30
|
+
export type WeekdayKey = (typeof WEEKDAYS)[number]["key"];
|
|
31
|
+
export type ScheduleWindow = {
|
|
32
|
+
start: string;
|
|
33
|
+
end: string;
|
|
34
|
+
};
|
|
35
|
+
export type DaySchedule = {
|
|
36
|
+
day_of_week: WeekdayKey;
|
|
37
|
+
windows: ScheduleWindow[];
|
|
38
|
+
};
|
|
39
|
+
export type ScheduleCalendarProps = {
|
|
40
|
+
value: DaySchedule[];
|
|
41
|
+
onChange: (value: DaySchedule[]) => void;
|
|
42
|
+
/** First hour column to display (0–23). @default 0 */
|
|
43
|
+
startHour?: number;
|
|
44
|
+
/** Last hour column to display (0–23). @default 23 */
|
|
45
|
+
endHour?: number;
|
|
46
|
+
/** When true, show two 30-minute cells per hour instead of one hourly cell. @default false */
|
|
47
|
+
halfHourIntervals?: boolean;
|
|
48
|
+
className?: string;
|
|
49
|
+
disabled?: boolean;
|
|
50
|
+
};
|
|
51
|
+
export type CellCoordinate = {
|
|
52
|
+
day: WeekdayKey;
|
|
53
|
+
hour: number;
|
|
54
|
+
};
|
|
55
|
+
export type DragMode = "select" | "deselect";
|
|
56
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/applications/schedule-calendar/types.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;EAoCX,CAAC;AAEX,MAAM,MAAM,UAAU,GAAG,CAAC,OAAO,QAAQ,CAAC,CAAC,MAAM,CAAC,CAAC,KAAK,CAAC,CAAC;AAE1D,MAAM,MAAM,cAAc,GAAG;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,MAAM,CAAC;CACb,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG;IACxB,WAAW,EAAE,UAAU,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;CAC3B,CAAC;AAEF,MAAM,MAAM,qBAAqB,GAAG;IAClC,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,QAAQ,EAAE,CAAC,KAAK,EAAE,WAAW,EAAE,KAAK,IAAI,CAAC;IACzC,sDAAsD;IACtD,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,sDAAsD;IACtD,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8FAA8F;IAC9F,iBAAiB,CAAC,EAAE,OAAO,CAAC;IAC5B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB,CAAC;AAEF,MAAM,MAAM,cAAc,GAAG;IAC3B,GAAG,EAAE,UAAU,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;CACd,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG,QAAQ,GAAG,UAAU,CAAC"}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
const e = [
|
|
2
|
+
{
|
|
3
|
+
key: "MONDAY",
|
|
4
|
+
value: "Monday",
|
|
5
|
+
order: 0
|
|
6
|
+
},
|
|
7
|
+
{
|
|
8
|
+
key: "TUESDAY",
|
|
9
|
+
value: "Tuesday",
|
|
10
|
+
order: 1
|
|
11
|
+
},
|
|
12
|
+
{
|
|
13
|
+
key: "WEDNESDAY",
|
|
14
|
+
value: "Wednesday",
|
|
15
|
+
order: 2
|
|
16
|
+
},
|
|
17
|
+
{
|
|
18
|
+
key: "THURSDAY",
|
|
19
|
+
value: "Thursday",
|
|
20
|
+
order: 3
|
|
21
|
+
},
|
|
22
|
+
{
|
|
23
|
+
key: "FRIDAY",
|
|
24
|
+
value: "Friday",
|
|
25
|
+
order: 4
|
|
26
|
+
},
|
|
27
|
+
{
|
|
28
|
+
key: "SATURDAY",
|
|
29
|
+
value: "Saturday",
|
|
30
|
+
order: 5
|
|
31
|
+
},
|
|
32
|
+
{
|
|
33
|
+
key: "SUNDAY",
|
|
34
|
+
value: "Sunday",
|
|
35
|
+
order: 6
|
|
36
|
+
}
|
|
37
|
+
];
|
|
38
|
+
export {
|
|
39
|
+
e as WEEKDAYS
|
|
40
|
+
};
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { CellCoordinate, DaySchedule, WeekdayKey } from './types';
|
|
2
|
+
export declare function formatHour(hour: number): string;
|
|
3
|
+
export declare function formatTime(minutesFromMidnight: number): string;
|
|
4
|
+
export declare function parseHour(time: string): number;
|
|
5
|
+
export declare function parseTimeToMinutes(time: string): number;
|
|
6
|
+
export declare function formatHourLabel(hour: number): string;
|
|
7
|
+
export declare function formatSlotLabel(slotValue: number, halfHourIntervals: boolean): string;
|
|
8
|
+
export declare function cellKey(day: WeekdayKey, slotValue: number): string;
|
|
9
|
+
export declare const HALF_HOUR_SLOT_MINUTES = 30;
|
|
10
|
+
export declare function schedulesToCellSet(value: DaySchedule[], halfHourIntervals?: boolean): Set<string>;
|
|
11
|
+
export declare function formatDomainEnd(endHour: number): string;
|
|
12
|
+
export type DomainBoundary = {
|
|
13
|
+
endHour: number;
|
|
14
|
+
lastSlot: number;
|
|
15
|
+
exclusiveEnd: boolean;
|
|
16
|
+
};
|
|
17
|
+
export declare function getDomainBoundary(startHour: number, endHour: number, halfHourIntervals: boolean): DomainBoundary | null;
|
|
18
|
+
export declare function cellSetToSchedules(cells: Set<string>, halfHourIntervals?: boolean, domain?: {
|
|
19
|
+
startHour: number;
|
|
20
|
+
endHour: number;
|
|
21
|
+
}): DaySchedule[];
|
|
22
|
+
export declare function mergeHoursToWindows(hours: number[], domain?: DomainBoundary | null): DaySchedule["windows"];
|
|
23
|
+
export declare function mergeSlotsToWindows(slots: number[], domain?: DomainBoundary | null): DaySchedule["windows"];
|
|
24
|
+
export declare function getHourRange(startHour: number, endHour: number): number[];
|
|
25
|
+
export declare function getSlotRange(startHour: number, endHour: number, halfHourIntervals: boolean): number[];
|
|
26
|
+
export declare function getRectangleCells(anchor: CellCoordinate, current: CellCoordinate, hours: number[]): CellCoordinate[];
|
|
27
|
+
export declare function clampHourRange(startHour: number, endHour: number): {
|
|
28
|
+
startHour: number;
|
|
29
|
+
endHour: number;
|
|
30
|
+
};
|
|
31
|
+
//# sourceMappingURL=utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/applications/schedule-calendar/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAY,KAAK,cAAc,EAAE,KAAK,WAAW,EAAE,KAAK,UAAU,EAAE,MAAM,SAAS,CAAC;AAE3F,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAE/C;AAED,wBAAgB,UAAU,CAAC,mBAAmB,EAAE,MAAM,GAAG,MAAM,CAI9D;AAED,wBAAgB,SAAS,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAG9C;AAED,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAGvD;AAED,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKpD;AAED,wBAAgB,eAAe,CAAC,SAAS,EAAE,MAAM,EAAE,iBAAiB,EAAE,OAAO,GAAG,MAAM,CAerF;AAED,wBAAgB,OAAO,CAAC,GAAG,EAAE,UAAU,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAElE;AAED,eAAO,MAAM,sBAAsB,KAAK,CAAC;AAEzC,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAAE,EACpB,iBAAiB,UAAQ,GACxB,GAAG,CAAC,MAAM,CAAC,CAyBb;AAED,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAEvD;AAED,MAAM,MAAM,cAAc,GAAG;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,EAAE,MAAM,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;CACvB,CAAC;AAEF,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,OAAO,GACzB,cAAc,GAAG,IAAI,CAYvB;AAkBD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,GAAG,CAAC,MAAM,CAAC,EAClB,iBAAiB,UAAQ,EACzB,MAAM,CAAC,EAAE;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,GAC9C,WAAW,EAAE,CA+Bf;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,cAAc,GAAG,IAAW,GACnC,WAAW,CAAC,SAAS,CAAC,CA6BxB;AAED,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,MAAM,EAAE,EACf,MAAM,GAAE,cAAc,GAAG,IAAW,GACnC,WAAW,CAAC,SAAS,CAAC,CA6BxB;AAED,wBAAgB,YAAY,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,EAAE,CAQzE;AAED,wBAAgB,YAAY,CAC1B,SAAS,EAAE,MAAM,EACjB,OAAO,EAAE,MAAM,EACf,iBAAiB,EAAE,OAAO,GACzB,MAAM,EAAE,CAcV;AAED,wBAAgB,iBAAiB,CAC/B,MAAM,EAAE,cAAc,EACtB,OAAO,EAAE,cAAc,EACvB,KAAK,EAAE,MAAM,EAAE,GACd,cAAc,EAAE,CA4BlB;AAED,wBAAgB,cAAc,CAAC,SAAS,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG;IAAE,SAAS,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAA;CAAE,CAOzG"}
|
|
@@ -0,0 +1,171 @@
|
|
|
1
|
+
import { WEEKDAYS as h } from "./types.js";
|
|
2
|
+
function w(t) {
|
|
3
|
+
return `${String(t).padStart(2, "0")}:00`;
|
|
4
|
+
}
|
|
5
|
+
function S(t) {
|
|
6
|
+
const n = Math.floor(t / 60), o = t % 60;
|
|
7
|
+
return `${String(n).padStart(2, "0")}:${String(o).padStart(2, "0")}`;
|
|
8
|
+
}
|
|
9
|
+
function g(t) {
|
|
10
|
+
const [n] = t.split(":");
|
|
11
|
+
return Number.parseInt(n, 10);
|
|
12
|
+
}
|
|
13
|
+
function M(t) {
|
|
14
|
+
const [n, o = "0"] = t.split(":");
|
|
15
|
+
return Number.parseInt(n, 10) * 60 + Number.parseInt(o, 10);
|
|
16
|
+
}
|
|
17
|
+
function x(t) {
|
|
18
|
+
return t === 0 ? "12am" : t < 12 ? `${t}am` : t === 12 ? "12pm" : `${t - 12}pm`;
|
|
19
|
+
}
|
|
20
|
+
function R(t, n) {
|
|
21
|
+
if (!n)
|
|
22
|
+
return x(t);
|
|
23
|
+
const o = Math.floor(t / 60), e = t % 60;
|
|
24
|
+
if (e === 0)
|
|
25
|
+
return x(o);
|
|
26
|
+
const c = o < 12 ? "am" : "pm";
|
|
27
|
+
return `${o === 0 ? 12 : o > 12 ? o - 12 : o}:${String(e).padStart(2, "0")}${c}`;
|
|
28
|
+
}
|
|
29
|
+
function H(t, n) {
|
|
30
|
+
return `${t}:${n}`;
|
|
31
|
+
}
|
|
32
|
+
const f = 30;
|
|
33
|
+
function W(t, n = !1) {
|
|
34
|
+
const o = /* @__PURE__ */ new Set();
|
|
35
|
+
for (const e of t)
|
|
36
|
+
for (const c of e.windows) {
|
|
37
|
+
if (n) {
|
|
38
|
+
const r = M(c.start), d = M(c.end);
|
|
39
|
+
for (let i = r; i < d; i += f)
|
|
40
|
+
o.add(H(e.day_of_week, i));
|
|
41
|
+
continue;
|
|
42
|
+
}
|
|
43
|
+
const s = g(c.start), u = g(c.end);
|
|
44
|
+
for (let r = s; r <= u; r++)
|
|
45
|
+
o.add(H(e.day_of_week, r));
|
|
46
|
+
}
|
|
47
|
+
return o;
|
|
48
|
+
}
|
|
49
|
+
function E(t) {
|
|
50
|
+
return `${String(t).padStart(2, "0")}:59`;
|
|
51
|
+
}
|
|
52
|
+
function T(t, n, o) {
|
|
53
|
+
const e = b(t, n, o), s = n - t + 1 === 24 || e.length === 24;
|
|
54
|
+
return s ? {
|
|
55
|
+
endHour: n,
|
|
56
|
+
lastSlot: e[e.length - 1],
|
|
57
|
+
exclusiveEnd: s
|
|
58
|
+
} : null;
|
|
59
|
+
}
|
|
60
|
+
function k(t, n) {
|
|
61
|
+
return n && t === n.lastSlot ? E(n.endHour) : w(t);
|
|
62
|
+
}
|
|
63
|
+
function $(t, n) {
|
|
64
|
+
return n && t === n.lastSlot ? E(n.endHour) : S(t + f);
|
|
65
|
+
}
|
|
66
|
+
function L(t, n = !1, o) {
|
|
67
|
+
const e = /* @__PURE__ */ new Map();
|
|
68
|
+
for (const u of t) {
|
|
69
|
+
const [r, d] = u.split(":"), i = Number.parseInt(d, 10), m = r, p = e.get(m) ?? [];
|
|
70
|
+
p.push(i), e.set(m, p);
|
|
71
|
+
}
|
|
72
|
+
const c = o ? T(o.startHour, o.endHour, n) : null, s = [];
|
|
73
|
+
for (const u of h) {
|
|
74
|
+
const r = e.get(u.key);
|
|
75
|
+
r != null && r.length && s.push({
|
|
76
|
+
day_of_week: u.key,
|
|
77
|
+
windows: n ? D(r, c) : _(r, c)
|
|
78
|
+
});
|
|
79
|
+
}
|
|
80
|
+
return s;
|
|
81
|
+
}
|
|
82
|
+
function _(t, n = null) {
|
|
83
|
+
const o = [...t].sort((u, r) => u - r), e = [];
|
|
84
|
+
let c = o[0], s = o[0];
|
|
85
|
+
for (let u = 1; u < o.length; u++) {
|
|
86
|
+
const r = o[u];
|
|
87
|
+
if (r === s + 1) {
|
|
88
|
+
s = r;
|
|
89
|
+
continue;
|
|
90
|
+
}
|
|
91
|
+
e.push({
|
|
92
|
+
start: w(c),
|
|
93
|
+
end: k(s, n)
|
|
94
|
+
}), c = r, s = r;
|
|
95
|
+
}
|
|
96
|
+
return e.push({
|
|
97
|
+
start: w(c),
|
|
98
|
+
end: k(s, n)
|
|
99
|
+
}), e;
|
|
100
|
+
}
|
|
101
|
+
function D(t, n = null) {
|
|
102
|
+
const o = [...t].sort((u, r) => u - r), e = [];
|
|
103
|
+
let c = o[0], s = o[0];
|
|
104
|
+
for (let u = 1; u < o.length; u++) {
|
|
105
|
+
const r = o[u];
|
|
106
|
+
if (r === s + f) {
|
|
107
|
+
s = r;
|
|
108
|
+
continue;
|
|
109
|
+
}
|
|
110
|
+
e.push({
|
|
111
|
+
start: S(c),
|
|
112
|
+
end: $(s, n)
|
|
113
|
+
}), c = r, s = r;
|
|
114
|
+
}
|
|
115
|
+
return e.push({
|
|
116
|
+
start: S(c),
|
|
117
|
+
end: $(s, n)
|
|
118
|
+
}), e;
|
|
119
|
+
}
|
|
120
|
+
function O(t, n) {
|
|
121
|
+
const o = [];
|
|
122
|
+
for (let e = t; e <= n; e++)
|
|
123
|
+
o.push(e);
|
|
124
|
+
return o;
|
|
125
|
+
}
|
|
126
|
+
function b(t, n, o) {
|
|
127
|
+
if (!o)
|
|
128
|
+
return O(t, n);
|
|
129
|
+
const e = [], c = t * 60, s = n * 60 + f;
|
|
130
|
+
for (let u = c; u <= s; u += f)
|
|
131
|
+
e.push(u);
|
|
132
|
+
return e;
|
|
133
|
+
}
|
|
134
|
+
function B(t, n, o) {
|
|
135
|
+
const e = new Map(h.map((a) => [a.key, a.order])), c = new Map(o.map((a, l) => [a, l])), s = e.get(t.day) ?? 0, u = e.get(n.day) ?? 0, r = c.get(t.hour) ?? 0, d = c.get(n.hour) ?? 0, i = Math.min(s, u), m = Math.max(s, u), p = Math.min(r, d), I = Math.max(r, d), y = [];
|
|
136
|
+
for (const a of h)
|
|
137
|
+
if (!(a.order < i || a.order > m))
|
|
138
|
+
for (let l = p; l <= I; l++)
|
|
139
|
+
y.push({
|
|
140
|
+
day: a.key,
|
|
141
|
+
hour: o[l]
|
|
142
|
+
});
|
|
143
|
+
return y;
|
|
144
|
+
}
|
|
145
|
+
function K(t, n) {
|
|
146
|
+
const o = Math.max(0, Math.min(23, t)), e = Math.max(0, Math.min(23, n));
|
|
147
|
+
return {
|
|
148
|
+
startHour: Math.min(o, e),
|
|
149
|
+
endHour: Math.max(o, e)
|
|
150
|
+
};
|
|
151
|
+
}
|
|
152
|
+
export {
|
|
153
|
+
f as HALF_HOUR_SLOT_MINUTES,
|
|
154
|
+
H as cellKey,
|
|
155
|
+
L as cellSetToSchedules,
|
|
156
|
+
K as clampHourRange,
|
|
157
|
+
E as formatDomainEnd,
|
|
158
|
+
w as formatHour,
|
|
159
|
+
x as formatHourLabel,
|
|
160
|
+
R as formatSlotLabel,
|
|
161
|
+
S as formatTime,
|
|
162
|
+
T as getDomainBoundary,
|
|
163
|
+
O as getHourRange,
|
|
164
|
+
B as getRectangleCells,
|
|
165
|
+
b as getSlotRange,
|
|
166
|
+
_ as mergeHoursToWindows,
|
|
167
|
+
D as mergeSlotsToWindows,
|
|
168
|
+
g as parseHour,
|
|
169
|
+
M as parseTimeToMinutes,
|
|
170
|
+
W as schedulesToCellSet
|
|
171
|
+
};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.test.d.ts","sourceRoot":"","sources":["../../../src/applications/schedule-calendar/utils.test.ts"],"names":[],"mappings":""}
|
package/dist/index.d.ts
CHANGED
|
@@ -12,6 +12,8 @@ export { Tooltip, type TooltipProps, TooltipTrigger, type TooltipTriggerProps, E
|
|
|
12
12
|
export { CustomIcon, ICONS, type CustomIconProps, type CustomIconType } from './primitives/custom-icon';
|
|
13
13
|
export { Dropdown, type DropdownItemProps, type DropdownMenuProps, type DropdownPopoverProps, } from './primitives/dropdown';
|
|
14
14
|
export { Shimmer, ShimmerLine, ShimmerCircle, ShimmerBox } from './primitives/shimmer';
|
|
15
|
+
export { Snackbar, type SnackbarProps } from './primitives/snackbar';
|
|
16
|
+
export { ScheduleCalendar, WEEKDAYS, formatHour, formatHourLabel, schedulesToCellSet, cellSetToSchedules, mergeHoursToWindows, type WeekdayKey, type ScheduleWindow, type DaySchedule, type ScheduleCalendarProps, } from './applications/schedule-calendar';
|
|
15
17
|
export { Table, TableCard, TableCell, TableRowActionsDropdown, TableWrapper, type TableWrapperProps, type TableWrapperPaginationConfig, type TableWrapperToolbarConfig, type BulkActionContext, type TableWrapperEditChrome, type TableWrapperSelectedKeys, type TableWrapperSelectionChange, type ColumnConfig, TablePagination, type TablePaginationConfig, type TablePaginationProps, PaginationCardDefault, Pagination, ROW_HEIGHT_ICONS, type RowHeightIconKey, TOOLBAR_ICONS, type TableColumnSchema, type TableColumnMenuSchema, type TableColumnValueType, TableToolbar, pickCoreToolbarProps, registerToolbarExtensions, getToolbarExtensions, type ToolbarExtensionComponents, type SortToolConfig, type FilterToolConfig, type LegacySortToolConfig, type LegacyFilterToolConfig, RowHeightDropdown, HideFieldsDropdown, AlignDropdown, GroupByDropdown, ShowSummaryDropdown, SummaryFooterRow, ColumnHeaderMenu, RowActionsMenu, BulkActionBar, applyHideAndReorder, getDefaultAlignmentForType, getEffectiveAlignment, alignmentClass, getAggregationsForType, computeAggregation, groupRows, resolveColumnLabel, ROW_HEIGHT_CLASS, AGGREGATION_LABELS, type SearchToolConfig, type RowHeightToolConfig, type HideFieldsToolConfig, type AlignToolConfig, type GroupByToolConfig, type SummaryToolConfig, type RowHeightOption, type SummaryFooterRowProps, type ColumnMenuAction, type ColumnMenuCapabilities, type RowActionsConfig, type CellAlignment, type AggregationType, type AggregationOption, type RowGroup, GridNavProvider, useGridKeyboardNavigation, isWithinCellEditor, findGridCell, focusGridCell, getGridNeighbor, getGridTabNeighbor, type GridNavDirection, type GridNeighbor, type GridNavValue, } from './patterns/table';
|
|
16
18
|
export { TreeView, buildTreeViewNodes, type TreeViewNode, type TreeViewProps, type TreeViewBuildConfig, } from './patterns/tree-view';
|
|
17
19
|
export { cn, cx, sortCx } from './utils/cn';
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AACA,OAAO,oBAAoB,CAAC;AAG5B,OAAO,EACL,MAAM,EACN,KAAK,WAAW,EAChB,KAAK,KAAK,IAAI,cAAc,EAC5B,KAAK,WAAW,IAAI,iBAAiB,EACrC,MAAM,IAAI,YAAY,EACtB,aAAa,EACb,KAAK,wBAAwB,EAC7B,KAAK,kBAAkB,GACxB,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EAAE,KAAK,EAAE,KAAK,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,KAAK,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACrE,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EACL,KAAK,EACL,YAAY,EACZ,aAAa,EACb,aAAa,EACb,cAAc,EACd,eAAe,EACf,SAAS,EACT,YAAY,EACZ,KAAK,UAAU,EACf,KAAK,UAAU,EACf,KAAK,iBAAiB,EACtB,KAAK,kBAAkB,EACvB,KAAK,kBAAkB,EACvB,KAAK,mBAAmB,EACxB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,WAAW,EAChB,KAAK,UAAU,EACf,KAAK,KAAK,EACV,KAAK,SAAS,EACd,KAAK,iBAAiB,EACtB,KAAK,mBAAmB,GACzB,MAAM,oBAAoB,CAAC;AAC5B,OAAO,EAAE,MAAM,EAAE,KAAK,WAAW,EAAE,MAAM,qBAAqB,CAAC;AAC/D,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,KAAK,QAAQ,EAAE,MAAM,mBAAmB,CAAC;AACxE,OAAO,EAAE,IAAI,EAAE,KAAK,SAAS,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,EAAE,OAAO,EAAE,KAAK,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAClE,OAAO,EACL,MAAM,EACN,KAAK,WAAW,EAChB,gBAAgB,EAChB,KAAK,qBAAqB,EAC1B,WAAW,EACX,KAAK,gBAAgB,EACrB,OAAO,EACP,KAAK,YAAY,EACjB,qBAAqB,EACrB,KAAK,0BAA0B,GAChC,MAAM,qBAAqB,CAAC;AAC7B,OAAO,EACL,OAAO,EACP,KAAK,YAAY,EACjB,cAAc,EACd,KAAK,mBAAmB,EACxB,0BAA0B,EAC1B,qBAAqB,EACrB,KAAK,+BAA+B,GACrC,MAAM,sBAAsB,CAAC;AAC9B,OAAO,EAAE,UAAU,EAAE,KAAK,EAAE,KAAK,eAAe,EAAE,KAAK,cAAc,EAAE,MAAM,0BAA0B,CAAC;AACxG,OAAO,EACL,QAAQ,EACR,KAAK,iBAAiB,EACtB,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,GAC1B,MAAM,uBAAuB,CAAC;AAC/B,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,aAAa,EAAE,UAAU,EAAE,MAAM,sBAAsB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
|