@innosolutions/inno-calendar 1.0.72 → 2.0.1

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.
Files changed (200) hide show
  1. package/CHANGELOG.md +116 -0
  2. package/LICENSE +48 -48
  3. package/README.md +333 -305
  4. package/dist/components/event/event-card.d.ts +4 -28
  5. package/dist/components/event/event-card.d.ts.map +1 -1
  6. package/dist/components/header/calendar-header.d.ts +14 -3
  7. package/dist/components/header/calendar-header.d.ts.map +1 -1
  8. package/dist/components/index.cjs +1 -1
  9. package/dist/components/index.d.ts +7 -6
  10. package/dist/components/index.d.ts.map +1 -1
  11. package/dist/components/index.mjs +48 -57
  12. package/dist/components/index.mjs.map +1 -1
  13. package/dist/components/inno-calendar.d.ts +139 -72
  14. package/dist/components/inno-calendar.d.ts.map +1 -1
  15. package/dist/components/primitives/field-layer.d.ts +22 -0
  16. package/dist/components/primitives/field-layer.d.ts.map +1 -0
  17. package/dist/components/primitives/index.d.ts +3 -0
  18. package/dist/components/primitives/index.d.ts.map +1 -1
  19. package/dist/components/primitives/multi-day-banner.d.ts.map +1 -1
  20. package/dist/components/primitives/quick-create.d.ts +44 -0
  21. package/dist/components/primitives/quick-create.d.ts.map +1 -0
  22. package/dist/components/primitives/recurrence-field.d.ts +102 -0
  23. package/dist/components/primitives/recurrence-field.d.ts.map +1 -0
  24. package/dist/components/primitives/week-all-day-row.d.ts.map +1 -1
  25. package/dist/components/primitives/when-row.d.ts +41 -0
  26. package/dist/components/primitives/when-row.d.ts.map +1 -0
  27. package/dist/components/shell/calendar-settings.d.ts +28 -0
  28. package/dist/components/shell/calendar-settings.d.ts.map +1 -0
  29. package/dist/components/shell/calendar-sidebar.d.ts +27 -0
  30. package/dist/components/shell/calendar-sidebar.d.ts.map +1 -0
  31. package/dist/components/shell/filter-panel.d.ts +10 -0
  32. package/dist/components/shell/filter-panel.d.ts.map +1 -0
  33. package/dist/components/shell/index.d.ts +5 -0
  34. package/dist/components/shell/index.d.ts.map +1 -0
  35. package/dist/components/shell/mini-month.d.ts +16 -0
  36. package/dist/components/shell/mini-month.d.ts.map +1 -0
  37. package/dist/components/ui/index.d.ts +0 -2
  38. package/dist/components/ui/index.d.ts.map +1 -1
  39. package/dist/components/views/agenda-view.d.ts +14 -15
  40. package/dist/components/views/agenda-view.d.ts.map +1 -1
  41. package/dist/components/views/day-events-expansion.d.ts +1 -1
  42. package/dist/components/views/day-events-expansion.d.ts.map +1 -1
  43. package/dist/components/views/day-view.d.ts +2 -6
  44. package/dist/components/views/day-view.d.ts.map +1 -1
  45. package/dist/components/views/index.d.ts +2 -1
  46. package/dist/components/views/index.d.ts.map +1 -1
  47. package/dist/components/views/month-view.d.ts +2 -12
  48. package/dist/components/views/month-view.d.ts.map +1 -1
  49. package/dist/components/views/resource-columns-view.d.ts +23 -0
  50. package/dist/components/views/resource-columns-view.d.ts.map +1 -0
  51. package/dist/components/views/timeline-view.d.ts +2 -6
  52. package/dist/components/views/timeline-view.d.ts.map +1 -1
  53. package/dist/components/views/week-view.d.ts +10 -6
  54. package/dist/components/views/week-view.d.ts.map +1 -1
  55. package/dist/components/views/year-view.d.ts +2 -6
  56. package/dist/components/views/year-view.d.ts.map +1 -1
  57. package/dist/core/constants.d.ts +39 -1
  58. package/dist/core/constants.d.ts.map +1 -1
  59. package/dist/core/context/drag-drop-context.d.ts +15 -1
  60. package/dist/core/context/drag-drop-context.d.ts.map +1 -1
  61. package/dist/core/context/event-card-context.d.ts +16 -0
  62. package/dist/core/context/event-card-context.d.ts.map +1 -0
  63. package/dist/core/context/inno-calendar-provider.d.ts +10 -1
  64. package/dist/core/context/inno-calendar-provider.d.ts.map +1 -1
  65. package/dist/core/context/slot-selection-context.d.ts +16 -0
  66. package/dist/core/context/slot-selection-context.d.ts.map +1 -1
  67. package/dist/core/index.cjs +1 -1
  68. package/dist/core/index.d.ts +3 -1
  69. package/dist/core/index.d.ts.map +1 -1
  70. package/dist/core/index.mjs +155 -149
  71. package/dist/core/index.mjs.map +1 -1
  72. package/dist/core/types.d.ts +44 -514
  73. package/dist/core/types.d.ts.map +1 -1
  74. package/dist/core/utils/date-input.d.ts +8 -0
  75. package/dist/core/utils/date-input.d.ts.map +1 -0
  76. package/dist/core/utils/grid-utils.d.ts.map +1 -1
  77. package/dist/core/utils/index.d.ts +1 -0
  78. package/dist/core/utils/index.d.ts.map +1 -1
  79. package/dist/core/utils/time-format.d.ts +33 -0
  80. package/dist/core/utils/time-format.d.ts.map +1 -0
  81. package/dist/core/utils/view-storage.d.ts +2 -2
  82. package/dist/core/utils/view-storage.d.ts.map +1 -1
  83. package/dist/core/z-layers.d.ts +21 -0
  84. package/dist/core/z-layers.d.ts.map +1 -0
  85. package/dist/index.cjs +1 -1
  86. package/dist/index.d.ts +0 -1
  87. package/dist/index.d.ts.map +1 -1
  88. package/dist/index.mjs +228 -234
  89. package/dist/index.mjs.map +1 -1
  90. package/dist/inno-calendar-DFEaWcSi.cjs +11 -0
  91. package/dist/inno-calendar-DFEaWcSi.cjs.map +1 -0
  92. package/dist/inno-calendar-R7LPGSJU.js +7454 -0
  93. package/dist/inno-calendar-R7LPGSJU.js.map +1 -0
  94. package/dist/lib/index.cjs +1 -1
  95. package/dist/lib/index.mjs +1 -1
  96. package/dist/position-utils-BH6T1FL5.js +1125 -0
  97. package/dist/position-utils-BH6T1FL5.js.map +1 -0
  98. package/dist/position-utils-BVt-Bp93.cjs +2 -0
  99. package/dist/position-utils-BVt-Bp93.cjs.map +1 -0
  100. package/dist/styles/index.css +1 -1
  101. package/dist/use-slot-selection-CSsSyfAi.cjs +2 -0
  102. package/dist/use-slot-selection-CSsSyfAi.cjs.map +1 -0
  103. package/dist/use-slot-selection-CT1z9v9X.js +357 -0
  104. package/dist/use-slot-selection-CT1z9v9X.js.map +1 -0
  105. package/dist/utils-B6yFEsav.js +9 -0
  106. package/dist/utils-B6yFEsav.js.map +1 -0
  107. package/dist/utils-IjLH3w2e.cjs +2 -0
  108. package/dist/utils-IjLH3w2e.cjs.map +1 -0
  109. package/dist/utils.cjs +1 -1
  110. package/dist/utils.d.ts +1 -1
  111. package/dist/utils.d.ts.map +1 -1
  112. package/dist/utils.mjs +108 -104
  113. package/dist/z-layers-CpHPAMdp.js +637 -0
  114. package/dist/z-layers-CpHPAMdp.js.map +1 -0
  115. package/dist/z-layers-D1DivrJg.cjs +2 -0
  116. package/dist/z-layers-D1DivrJg.cjs.map +1 -0
  117. package/package.json +117 -138
  118. package/AGENT.md +0 -1783
  119. package/dist/agenda-widget-B0t3TCcV.js +0 -4141
  120. package/dist/agenda-widget-B0t3TCcV.js.map +0 -1
  121. package/dist/agenda-widget-i2tjGr5U.cjs +0 -2
  122. package/dist/agenda-widget-i2tjGr5U.cjs.map +0 -1
  123. package/dist/components/calendar.d.ts +0 -45
  124. package/dist/components/calendar.d.ts.map +0 -1
  125. package/dist/components/event/event-page-transition.d.ts +0 -32
  126. package/dist/components/event/event-page-transition.d.ts.map +0 -1
  127. package/dist/components/filters/calendar-filter-sidebar.d.ts +0 -54
  128. package/dist/components/filters/calendar-filter-sidebar.d.ts.map +0 -1
  129. package/dist/components/filters/index.d.ts +0 -9
  130. package/dist/components/filters/index.d.ts.map +0 -1
  131. package/dist/components/filters/schedule-type-filter.d.ts +0 -31
  132. package/dist/components/filters/schedule-type-filter.d.ts.map +0 -1
  133. package/dist/components/filters/user-filter.d.ts +0 -31
  134. package/dist/components/filters/user-filter.d.ts.map +0 -1
  135. package/dist/components/header/components/index.d.ts +0 -8
  136. package/dist/components/header/components/index.d.ts.map +0 -1
  137. package/dist/components/integrated-calendar.d.ts +0 -37
  138. package/dist/components/integrated-calendar.d.ts.map +0 -1
  139. package/dist/components/settings/badge-variant-setting.d.ts +0 -25
  140. package/dist/components/settings/badge-variant-setting.d.ts.map +0 -1
  141. package/dist/components/settings/index.d.ts +0 -10
  142. package/dist/components/settings/index.d.ts.map +0 -1
  143. package/dist/components/settings/slot-duration-setting.d.ts +0 -20
  144. package/dist/components/settings/slot-duration-setting.d.ts.map +0 -1
  145. package/dist/components/settings/visible-hours-setting.d.ts +0 -23
  146. package/dist/components/settings/visible-hours-setting.d.ts.map +0 -1
  147. package/dist/components/settings/working-hours-setting.d.ts +0 -41
  148. package/dist/components/settings/working-hours-setting.d.ts.map +0 -1
  149. package/dist/components/ui/dialog.d.ts +0 -35
  150. package/dist/components/ui/dialog.d.ts.map +0 -1
  151. package/dist/components/ui/select.d.ts +0 -12
  152. package/dist/components/ui/select.d.ts.map +0 -1
  153. package/dist/components/widget/agenda-dropdown.d.ts +0 -20
  154. package/dist/components/widget/agenda-dropdown.d.ts.map +0 -1
  155. package/dist/components/widget/agenda-widget.d.ts +0 -27
  156. package/dist/components/widget/agenda-widget.d.ts.map +0 -1
  157. package/dist/components/widget/index.d.ts +0 -6
  158. package/dist/components/widget/index.d.ts.map +0 -1
  159. package/dist/index-D2U2F80P.cjs +0 -2
  160. package/dist/index-D2U2F80P.cjs.map +0 -1
  161. package/dist/index-DtaLkIY8.js +0 -2777
  162. package/dist/index-DtaLkIY8.js.map +0 -1
  163. package/dist/position-utils-D_KpwRus.js +0 -1053
  164. package/dist/position-utils-D_KpwRus.js.map +0 -1
  165. package/dist/position-utils-ksZ_IjXC.cjs +0 -2
  166. package/dist/position-utils-ksZ_IjXC.cjs.map +0 -1
  167. package/dist/presets/default/default-calendar.d.ts +0 -44
  168. package/dist/presets/default/default-calendar.d.ts.map +0 -1
  169. package/dist/presets/default/index.d.ts +0 -2
  170. package/dist/presets/default/index.d.ts.map +0 -1
  171. package/dist/presets/index.cjs +0 -2
  172. package/dist/presets/index.cjs.map +0 -1
  173. package/dist/presets/index.d.ts +0 -3
  174. package/dist/presets/index.d.ts.map +0 -1
  175. package/dist/presets/index.mjs +0 -6
  176. package/dist/presets/index.mjs.map +0 -1
  177. package/dist/presets/tailwind/index.d.ts +0 -2
  178. package/dist/presets/tailwind/index.d.ts.map +0 -1
  179. package/dist/presets/tailwind/tailwind-calendar.d.ts +0 -122
  180. package/dist/presets/tailwind/tailwind-calendar.d.ts.map +0 -1
  181. package/dist/slot-selection-context-CLYZU6ul.cjs +0 -2
  182. package/dist/slot-selection-context-CLYZU6ul.cjs.map +0 -1
  183. package/dist/slot-selection-context-Ct5cVcKW.js +0 -611
  184. package/dist/slot-selection-context-Ct5cVcKW.js.map +0 -1
  185. package/dist/tailwind-calendar-BbUb61uY.cjs +0 -2
  186. package/dist/tailwind-calendar-BbUb61uY.cjs.map +0 -1
  187. package/dist/tailwind-calendar-DrwGVSF-.js +0 -400
  188. package/dist/tailwind-calendar-DrwGVSF-.js.map +0 -1
  189. package/dist/use-calendar-BK0nQYJq.cjs +0 -2
  190. package/dist/use-calendar-BK0nQYJq.cjs.map +0 -1
  191. package/dist/use-calendar-DJI35SSd.js +0 -175
  192. package/dist/use-calendar-DJI35SSd.js.map +0 -1
  193. package/dist/use-slot-selection-CCE11R4j.cjs +0 -2
  194. package/dist/use-slot-selection-CCE11R4j.cjs.map +0 -1
  195. package/dist/use-slot-selection-CX1w8EdM.js +0 -188
  196. package/dist/use-slot-selection-CX1w8EdM.js.map +0 -1
  197. package/dist/week-view-BXmaRChB.cjs +0 -11
  198. package/dist/week-view-BXmaRChB.cjs.map +0 -1
  199. package/dist/week-view-BeasFcyR.js +0 -3520
  200. package/dist/week-view-BeasFcyR.js.map +0 -1
@@ -1,611 +0,0 @@
1
- import { jsx as $ } from "react/jsx-runtime";
2
- import { useState as h, useCallback as S, useContext as W, createContext as z, useMemo as E, useEffect as F, useRef as j } from "react";
3
- import { P as pe, aR as ye, aX as be, aP as A } from "./position-utils-D_KpwRus.js";
4
- const B = z(void 0);
5
- function xe({
6
- children: n,
7
- onEventDrop: t
8
- }) {
9
- const [e, o] = h(null), l = S((s) => {
10
- const f = typeof s.startDate == "string" ? new Date(s.startDate) : s.startDate, D = typeof s.endDate == "string" ? new Date(s.endDate) : s.endDate;
11
- o({
12
- event: s,
13
- originalStartDate: f,
14
- originalEndDate: D
15
- });
16
- }, []), c = S((s, f, D, i) => {
17
- o((k) => k ? {
18
- ...k,
19
- previewDate: s,
20
- previewHour: f,
21
- previewMinute: D,
22
- ...i !== void 0 && { targetResourceId: i }
23
- } : null);
24
- }, []), g = S(() => {
25
- if (!e) return null;
26
- const { event: s, originalStartDate: f, originalEndDate: D, previewDate: i, previewHour: k, previewMinute: P, targetResourceId: v } = e, T = D.getTime() - f.getTime();
27
- let m;
28
- i ? (m = new Date(i), typeof k == "number" ? m.setHours(k, P ?? 0, 0, 0) : m.setHours(
29
- f.getHours(),
30
- f.getMinutes(),
31
- f.getSeconds(),
32
- 0
33
- )) : m = f;
34
- const p = new Date(m.getTime() + T), w = {
35
- event: s,
36
- newStartDate: m,
37
- newEndDate: p,
38
- ...v !== void 0 && { newResourceId: v }
39
- };
40
- return o(null), t?.(w), w;
41
- }, [e, t]), u = S(() => {
42
- o(null);
43
- }, []);
44
- return /* @__PURE__ */ $(
45
- B.Provider,
46
- {
47
- value: {
48
- dragState: e,
49
- isDragging: e !== null,
50
- startDrag: l,
51
- updateDragPreview: c,
52
- endDrag: g,
53
- cancelDrag: u
54
- },
55
- children: n
56
- }
57
- );
58
- }
59
- function Ve() {
60
- const n = W(B);
61
- if (!n)
62
- throw new Error("useDragDrop must be used within a DragDropProvider");
63
- return n;
64
- }
65
- function Fe() {
66
- return W(B) ?? null;
67
- }
68
- const He = {
69
- from: 0,
70
- to: 24
71
- }, ke = {
72
- 0: { enabled: !1, from: 8, to: 18 },
73
- // Sunday - disabled
74
- 1: { enabled: !0, from: 8, to: 18 },
75
- // Monday
76
- 2: { enabled: !0, from: 8, to: 18 },
77
- // Tuesday
78
- 3: { enabled: !0, from: 8, to: 18 },
79
- // Wednesday
80
- 4: { enabled: !0, from: 8, to: 18 },
81
- // Thursday
82
- 5: { enabled: !0, from: 8, to: 18 },
83
- // Friday
84
- 6: { enabled: !1, from: 8, to: 18 }
85
- // Saturday - disabled
86
- }, he = 30, Ie = {
87
- view: "month",
88
- badgeVariant: "colored",
89
- slotDuration: he,
90
- visibleHours: He,
91
- workingHours: ke,
92
- showWorkingHoursOnly: !1,
93
- showWeekends: !0,
94
- firstDayOfWeek: 1
95
- };
96
- function ve(n) {
97
- if (typeof window > "u") return {};
98
- try {
99
- const t = localStorage.getItem(n);
100
- if (!t) return {};
101
- const e = JSON.parse(t), o = {};
102
- return e.view && typeof e.view == "string" && (o.view = e.view), e.badgeVariant && typeof e.badgeVariant == "string" && (o.badgeVariant = e.badgeVariant), e.slotDuration && typeof e.slotDuration == "number" && (o.slotDuration = e.slotDuration), e.visibleHours && typeof e.visibleHours == "object" && (o.visibleHours = e.visibleHours), e.workingHours && typeof e.workingHours == "object" && (o.workingHours = e.workingHours), typeof e.showWorkingHoursOnly == "boolean" && (o.showWorkingHoursOnly = e.showWorkingHoursOnly), typeof e.showWeekends == "boolean" && (o.showWeekends = e.showWeekends), typeof e.firstDayOfWeek == "number" && (o.firstDayOfWeek = e.firstDayOfWeek), o;
103
- } catch {
104
- return console.warn("[InnoCalendar] Failed to load preferences from localStorage"), {};
105
- }
106
- }
107
- function Te(n, t) {
108
- if (!(typeof window > "u"))
109
- try {
110
- localStorage.setItem(n, JSON.stringify(t));
111
- } catch {
112
- console.warn("[InnoCalendar] Failed to save preferences to localStorage");
113
- }
114
- }
115
- function Oe(n = {}) {
116
- const {
117
- modes: t = {},
118
- locked: e = {},
119
- defaults: o = {},
120
- storageKey: l = pe,
121
- disableStorage: c = !1
122
- } = n, g = E(
123
- () => ({
124
- ...Ie,
125
- ...o
126
- }),
127
- [o]
128
- ), [u, s] = h(() => c ? {} : ve(l)), [f, D] = h({});
129
- F(() => {
130
- c || Te(l, u);
131
- }, [u, l, c]);
132
- const i = S(
133
- (r) => t[r] ?? "user",
134
- [t]
135
- ), k = S(
136
- (r) => i(r) === "locked",
137
- [i]
138
- ), P = S(
139
- (r) => i(r) === "user" && !c,
140
- [i, c]
141
- ), v = E(() => {
142
- const r = { ...g };
143
- for (const d of Object.keys(r)) {
144
- const b = i(d);
145
- b === "locked" && d in e ? r[d] = e[d] : b === "session" && d in f ? r[d] = f[d] : b === "user" && d in u && (r[d] = u[d]);
146
- }
147
- return r;
148
- }, [g, u, f, e, i]), T = S(
149
- (r, d) => {
150
- const b = i(r);
151
- if (b === "locked") {
152
- console.warn(`[InnoCalendar] Preference "${r}" is locked and cannot be modified`);
153
- return;
154
- }
155
- b === "session" ? D((H) => ({ ...H, [r]: d })) : s((H) => ({ ...H, [r]: d }));
156
- },
157
- [i]
158
- ), m = S(
159
- (r) => {
160
- const d = {}, b = {};
161
- for (const H of Object.keys(r)) {
162
- const I = i(H), R = r[H];
163
- if (R !== void 0) {
164
- if (I === "locked") {
165
- console.warn(`[InnoCalendar] Preference "${H}" is locked and cannot be modified`);
166
- continue;
167
- }
168
- I === "session" ? d[H] = R : b[H] = R;
169
- }
170
- }
171
- Object.keys(d).length > 0 && D((H) => ({ ...H, ...d })), Object.keys(b).length > 0 && s((H) => ({ ...H, ...b }));
172
- },
173
- [i]
174
- ), p = S(() => {
175
- s({}), D({}), c || localStorage.removeItem(l);
176
- }, [l, c]), w = S(
177
- (r) => {
178
- const d = i(r);
179
- if (d === "locked") {
180
- console.warn(`[InnoCalendar] Preference "${r}" is locked and cannot be reset`);
181
- return;
182
- }
183
- d === "session" ? D((b) => {
184
- const { [r]: H, ...I } = b;
185
- return I;
186
- }) : s((b) => {
187
- const { [r]: H, ...I } = b;
188
- return I;
189
- });
190
- },
191
- [i]
192
- );
193
- return {
194
- preferences: v,
195
- setPreference: T,
196
- setPreferences: m,
197
- resetPreferences: p,
198
- resetPreference: w,
199
- isLocked: k,
200
- isPersisted: P,
201
- getMode: i
202
- };
203
- }
204
- const K = z(void 0), le = {
205
- 0: { enabled: !1, from: 8, to: 17 },
206
- // Sunday
207
- 1: { enabled: !0, from: 8, to: 17 },
208
- // Monday
209
- 2: { enabled: !0, from: 8, to: 17 },
210
- // Tuesday
211
- 3: { enabled: !0, from: 8, to: 17 },
212
- // Wednesday
213
- 4: { enabled: !0, from: 8, to: 17 },
214
- // Thursday
215
- 5: { enabled: !0, from: 8, to: 17 },
216
- // Friday
217
- 6: { enabled: !0, from: 8, to: 12 }
218
- // Saturday
219
- }, Pe = { start: 0, end: 24 };
220
- function Me({
221
- children: n,
222
- initialEvents: t = [],
223
- initialUsers: e = [],
224
- initialScheduleTypes: o = [],
225
- initialView: l,
226
- initialDate: c,
227
- initialSelectedUserId: g = "all",
228
- initialScheduleTypeIds: u = [],
229
- initialParticipantIds: s = [],
230
- initialWorkingHoursView: f = "default",
231
- initialSearchQuery: D = "",
232
- preferencesConfig: i,
233
- initialFocusEventId: k = null,
234
- onDateChange: P,
235
- onViewChange: v,
236
- viewPersistence: T
237
- }) {
238
- const { preferences: m, setPreference: p, isLocked: w } = Oe(i), [r, d] = h(
239
- () => ye(T) ?? l ?? "week"
240
- ), [b, H] = h(
241
- c ?? /* @__PURE__ */ new Date()
242
- );
243
- F(() => {
244
- if (l !== void 0 && r !== l) {
245
- const a = setTimeout(() => v?.(r), 0);
246
- return () => clearTimeout(a);
247
- }
248
- }, []);
249
- const [I, R] = h(
250
- g
251
- ), Y = m.badgeVariant ?? "colored", G = S(
252
- (a) => {
253
- w("badgeVariant") || p("badgeVariant", a);
254
- },
255
- [p, w]
256
- ), J = m.workingHours ?? le, q = S(
257
- (a) => {
258
- if (!w("workingHours")) {
259
- const y = m.workingHours ?? le, O = typeof a == "function" ? a(y) : a;
260
- p("workingHours", O);
261
- }
262
- },
263
- [p, w, m.workingHours]
264
- ), C = m.visibleHours, x = E(() => C ? {
265
- start: C.start ?? C.from ?? 0,
266
- end: C.end ?? C.to ?? 24
267
- } : Pe, [C]), X = S(
268
- (a) => {
269
- if (!w("visibleHours")) {
270
- const y = typeof a == "function" ? a(x) : a;
271
- p("visibleHours", {
272
- from: y.start,
273
- to: y.end
274
- });
275
- }
276
- },
277
- [p, w, x]
278
- ), [fe, ge] = h(
279
- f === "enabled" ? !0 : f === "disabled" ? !1 : m.showWorkingHoursOnly ?? !1
280
- ), Z = fe, ee = S(
281
- (a) => {
282
- ge(a), w("showWorkingHoursOnly") || p("showWorkingHoursOnly", a);
283
- },
284
- [p, w]
285
- ), te = m.slotDuration ?? 30, ne = S(
286
- (a) => {
287
- w("slotDuration") || p("slotDuration", a);
288
- },
289
- [p, w]
290
- ), [V, re] = h(t);
291
- F(() => {
292
- re(t);
293
- }, [t]);
294
- const [L, Se] = h(u), [N, Re] = h(s), [U, De] = h(D), [oe, se] = h(
295
- k ?? null
296
- );
297
- F(() => {
298
- k && se(k);
299
- }, [k]);
300
- const ae = S(() => se(null), []), ie = S(
301
- (a) => {
302
- d(a), w("view") || p("view", a), be(a, T), v?.(a);
303
- },
304
- [v, p, w, T]
305
- ), ce = S(
306
- (a, y) => {
307
- H(a), P?.(a, y ?? r);
308
- },
309
- [P, r]
310
- ), ue = E(() => {
311
- let a = V;
312
- if (L.length > 0 && (a = a.filter(
313
- (y) => y.scheduleTypeId !== void 0 && L.includes(y.scheduleTypeId)
314
- )), N.length > 0 && (a = a.filter((y) => y.participants?.length ? y.participants.some(
315
- (O) => N.includes(O.id)
316
- ) : !1)), I !== "all" && (a = a.filter(
317
- (y) => y.participants?.some((O) => O.id === I)
318
- )), U.trim()) {
319
- const y = U.toLowerCase();
320
- a = a.filter(
321
- (O) => A(O.title).toLowerCase().includes(y) || A(O.description).toLowerCase().includes(y) || A(O.scheduleTypeName).toLowerCase().includes(y) || O.participants?.some((me) => me.name.toLowerCase().includes(y))
322
- );
323
- }
324
- return a;
325
- }, [
326
- V,
327
- L,
328
- N,
329
- I,
330
- U
331
- ]), we = E(
332
- () => ({
333
- // View & Navigation
334
- view: r,
335
- setView: ie,
336
- selectedDate: b,
337
- setSelectedDate: ce,
338
- // User Filtering
339
- selectedUserId: I,
340
- setSelectedUserId: R,
341
- // Visual Customization
342
- badgeVariant: Y,
343
- setBadgeVariant: G,
344
- // Time Configuration
345
- workingHours: J,
346
- setWorkingHours: q,
347
- visibleHours: x,
348
- setVisibleHours: X,
349
- showWorkingHoursOnly: Z,
350
- setShowWorkingHoursOnly: ee,
351
- slotDuration: te,
352
- setSlotDuration: ne,
353
- // Preferences
354
- isPreferenceLocked: w,
355
- // Data
356
- events: V,
357
- setEvents: re,
358
- users: e,
359
- scheduleTypes: o,
360
- // Filters
361
- selectedScheduleTypeIds: L,
362
- setSelectedScheduleTypeIds: Se,
363
- // Search
364
- searchQuery: U,
365
- setSearchQuery: De,
366
- // Computed
367
- filteredEvents: ue,
368
- // Focus Event
369
- focusEventId: oe,
370
- clearFocusEventId: ae
371
- }),
372
- [
373
- r,
374
- ie,
375
- b,
376
- ce,
377
- I,
378
- Y,
379
- G,
380
- J,
381
- q,
382
- x,
383
- X,
384
- Z,
385
- ee,
386
- te,
387
- ne,
388
- w,
389
- V,
390
- e,
391
- o,
392
- L,
393
- U,
394
- ue,
395
- oe,
396
- ae
397
- ]
398
- );
399
- return /* @__PURE__ */ $(K.Provider, { value: we, children: n });
400
- }
401
- function M() {
402
- const n = W(K);
403
- if (!n)
404
- throw new Error(
405
- "useInnoCalendar must be used within an InnoCalendarProvider"
406
- );
407
- return n;
408
- }
409
- function Ne() {
410
- return W(K);
411
- }
412
- function je() {
413
- const { view: n, setView: t, selectedDate: e, setSelectedDate: o, slotDuration: l } = M();
414
- return { view: n, setView: t, selectedDate: e, setSelectedDate: o, slotDuration: l };
415
- }
416
- function Ae() {
417
- const { events: n, setEvents: t, filteredEvents: e } = M();
418
- return { events: n, setEvents: t, filteredEvents: e };
419
- }
420
- function $e() {
421
- const {
422
- selectedScheduleTypeIds: n,
423
- setSelectedScheduleTypeIds: t,
424
- selectedUserId: e,
425
- setSelectedUserId: o,
426
- searchQuery: l,
427
- setSearchQuery: c
428
- } = M();
429
- return {
430
- selectedScheduleTypeIds: n,
431
- setSelectedScheduleTypeIds: t,
432
- selectedUserId: e,
433
- setSelectedUserId: o,
434
- searchQuery: l,
435
- setSearchQuery: c
436
- };
437
- }
438
- function ze() {
439
- const {
440
- workingHours: n,
441
- setWorkingHours: t,
442
- visibleHours: e,
443
- setVisibleHours: o,
444
- showWorkingHoursOnly: l,
445
- setShowWorkingHoursOnly: c
446
- } = M();
447
- return {
448
- workingHours: n,
449
- setWorkingHours: t,
450
- visibleHours: e,
451
- setVisibleHours: o,
452
- showWorkingHoursOnly: l,
453
- setShowWorkingHoursOnly: c
454
- };
455
- }
456
- const Q = z(void 0);
457
- function _(n) {
458
- const t = new Date(n.date);
459
- return typeof n.hour == "number" && t.setHours(n.hour, n.minute ?? 0, 0, 0), t;
460
- }
461
- function Ce(n) {
462
- const t = new Date(n), e = t.getMinutes(), o = Math.floor(e / 30) * 30;
463
- return t.setMinutes(o, 0, 0), t;
464
- }
465
- function Ee(n, t) {
466
- return n.getFullYear() === t.getFullYear() && n.getMonth() === t.getMonth() && n.getDate() === t.getDate();
467
- }
468
- function de(n, t, e, o, l = 30) {
469
- const c = _(n), g = _(t);
470
- let u = c, s = g;
471
- if (g < c && (u = g, s = c), e === "day")
472
- if (Ee(u, s)) {
473
- const D = Ce(/* @__PURE__ */ new Date());
474
- u = new Date(u), u.setHours(D.getHours(), D.getMinutes(), 0, 0), s = new Date(u.getTime() + o * 60 * 1e3);
475
- } else
476
- u.setHours(0, 0, 0, 0), s.setHours(23, 59, 59, 999);
477
- else {
478
- const f = l * 60 * 1e3;
479
- s = new Date(s.getTime() + f);
480
- const D = s.getTime() - u.getTime(), i = o * 60 * 1e3;
481
- D < i && (s = new Date(u.getTime() + i));
482
- }
483
- return {
484
- startDate: u,
485
- endDate: s
486
- };
487
- }
488
- function We(n, t, e, o) {
489
- const l = _(n), c = _(t), g = _(e), u = c <= g ? c : g, s = c <= g ? g : c;
490
- if (o === "day") {
491
- const f = new Date(l);
492
- f.setHours(0, 0, 0, 0);
493
- const D = new Date(u);
494
- D.setHours(0, 0, 0, 0);
495
- const i = new Date(s);
496
- return i.setHours(0, 0, 0, 0), f >= D && f <= i;
497
- }
498
- return l >= u && l <= s;
499
- }
500
- function Be({
501
- children: n,
502
- mode: t = "time",
503
- onSelect: e,
504
- minDurationMinutes: o = 30,
505
- slotDurationMinutes: l = 30,
506
- enabled: c = !0
507
- }) {
508
- const [g, u] = h(null), s = j(!1), f = j(!1), D = j(null), i = S(() => {
509
- f.current = !0, D.current && clearTimeout(D.current), D.current = setTimeout(() => {
510
- f.current = !1;
511
- }, 300);
512
- }, []), k = S(
513
- (r) => {
514
- !c || f.current || (s.current = !0, u({
515
- start: r,
516
- end: r,
517
- isSelecting: !0
518
- }));
519
- },
520
- [c]
521
- ), P = S(
522
- (r) => {
523
- c && s.current && u((d) => d ? {
524
- ...d,
525
- end: r
526
- } : null);
527
- },
528
- [c]
529
- ), v = S(() => {
530
- s.current && (s.current = !1, u((r) => {
531
- if (!r) return null;
532
- const d = de(
533
- r.start,
534
- r.end,
535
- t,
536
- o,
537
- l
538
- );
539
- return e?.(d), {
540
- ...r,
541
- isSelecting: !1
542
- };
543
- }), setTimeout(() => {
544
- u(null);
545
- }, 100));
546
- }, [t, o, l, e]), T = S(() => {
547
- s.current = !1, u(null);
548
- }, []), m = S(
549
- (r) => g ? We(r, g.start, g.end, t) : !1,
550
- [g, t]
551
- ), p = S(() => g ? de(
552
- g.start,
553
- g.end,
554
- t,
555
- o,
556
- l
557
- ) : null, [g, t, o, l]), w = E(
558
- () => ({
559
- isSelecting: g?.isSelecting ?? !1,
560
- startSelection: k,
561
- updateSelection: P,
562
- endSelection: v,
563
- cancelSelection: T,
564
- isSlotSelected: m,
565
- getSelectionResult: p,
566
- mode: t,
567
- suppressSelection: i
568
- }),
569
- [
570
- g?.isSelecting,
571
- k,
572
- P,
573
- v,
574
- T,
575
- m,
576
- p,
577
- t,
578
- i
579
- ]
580
- );
581
- return /* @__PURE__ */ $(Q.Provider, { value: w, children: n });
582
- }
583
- function Ke() {
584
- const n = W(Q);
585
- if (!n)
586
- throw new Error("useSlotSelectionContext must be used within a SlotSelectionProvider");
587
- return n;
588
- }
589
- function Qe() {
590
- return W(Q);
591
- }
592
- export {
593
- xe as D,
594
- Me as I,
595
- Be as S,
596
- he as a,
597
- He as b,
598
- ke as c,
599
- Ve as d,
600
- M as e,
601
- Ae as f,
602
- $e as g,
603
- ze as h,
604
- je as i,
605
- Fe as j,
606
- Ne as k,
607
- Qe as l,
608
- Ke as m,
609
- Oe as u
610
- };
611
- //# sourceMappingURL=slot-selection-context-Ct5cVcKW.js.map