@baishuyun/ui-base 6.16.0 → 6.17.0

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 (140) hide show
  1. package/dist/Amap/Amap-CNsoge6e.js +826 -0
  2. package/dist/Amap/index.js +3 -10
  3. package/dist/Calendar/Calendar-BlsUX2vX.js +1608 -0
  4. package/dist/Calendar/index.js +10 -20
  5. package/dist/Card/index.js +2 -2
  6. package/dist/CheckBox/{CheckBox-B92dxWNo.js → CheckBox-CM24-quL.js} +1 -1
  7. package/dist/CheckBox/index.js +3 -3
  8. package/dist/ColorPicker/{ColorPicker-CPr5j6ZN.js → ColorPicker-B_wLqurt.js} +5 -5
  9. package/dist/ColorPicker/index.js +5 -5
  10. package/dist/ConfigProvider/index.js +1 -1
  11. package/dist/DatePicker/DatePicker-BRwPZeui.js +111 -0
  12. package/dist/DatePicker/{DatePickerPanel-CRnLvIwc.js → DatePickerPanel-UwjSXS-U.js} +3 -4
  13. package/dist/DatePicker/index.js +6 -8
  14. package/dist/DatePicker/pickerLocale-Brf7_Tnd.js +30 -0
  15. package/dist/DropDown/{DropDown-CvG9IFVk.js → DropDown-B_szM67V.js} +86 -82
  16. package/dist/DropDown/index.js +8 -9
  17. package/dist/Editor/index.js +2839 -880
  18. package/dist/Gantt/index.js +3055 -197
  19. package/dist/Icon/index.js +1 -1
  20. package/dist/InputTag/{InputTag-BfZycXw4.js → InputTag-C_5nm0eo.js} +2 -2
  21. package/dist/InputTag/index.js +4 -4
  22. package/dist/Loading/{Loading-DpbJSRYf.js → Loading-Cherk9Ax.js} +1 -1
  23. package/dist/Loading/index.js +3 -3
  24. package/dist/Modal/index.js +2 -2
  25. package/dist/NotFoundContent/index.js +2 -2
  26. package/dist/Overlay/index.js +1 -1
  27. package/dist/Radio/index.js +2 -2
  28. package/dist/ScrollBar/{ScrollBar-N2pOLv-8.js → ScrollBar-IMTuAOF5.js} +1 -1
  29. package/dist/ScrollBar/index.js +2 -2
  30. package/dist/Segmented/{Segmented-BCQRrc65.js → Segmented-DpmwFerw.js} +1 -1
  31. package/dist/Segmented/index.js +2 -2
  32. package/dist/Select/{Select-Bla1mQ8v.js → Select-VIy6OKEj.js} +262 -259
  33. package/dist/Select/{SelectInputSearch-CRgBcsq2.js → SelectInputSearch-MApQHnU9.js} +21 -10
  34. package/dist/Select/index.js +12 -13
  35. package/dist/Table/Table-8ac6xLZv.js +808 -0
  36. package/dist/Table/index.js +4 -8
  37. package/dist/Tabs/{Tabs-B9uCGlxM.js → Tabs-DnoZ8BO0.js} +3 -3
  38. package/dist/Tabs/index.js +4 -4
  39. package/dist/Tooltip/{Tooltip-nJU13gX4.js → Tooltip-DBrt3t2r.js} +3 -3
  40. package/dist/Tooltip/index.js +3 -3
  41. package/dist/Tree/index.js +4 -4
  42. package/dist/components/Editor/EditorHtmlPreview.d.ts +3 -0
  43. package/dist/components/Editor/Preview/HtmlPreview.d.ts +2 -3
  44. package/dist/components/Editor/__tests__/createTestEditor.d.ts +1 -0
  45. package/dist/components/Editor/constants/portableEditorStyles.d.ts +2 -0
  46. package/dist/components/Editor/hooks/useEditorFocus.d.ts +1 -0
  47. package/dist/components/Editor/hooks/useTextFormatsState.d.ts +1 -2
  48. package/dist/components/Editor/index.d.ts +1 -0
  49. package/dist/components/Editor/nodes/ExtendedLinkNode.d.ts +9 -0
  50. package/dist/components/Editor/utils/getToolbarItems.d.ts +14 -0
  51. package/dist/components/Editor/utils/placeProgrammaticCaret.d.ts +5 -0
  52. package/dist/components/Editor/utils/readTextFormats.d.ts +6 -0
  53. package/dist/components/Editor/utils/retainCodeSelection.d.ts +3 -0
  54. package/dist/components/Select/SelectInputSearch/SelectInputSearch.d.ts +2 -0
  55. package/dist/index.js +28 -50
  56. package/dist/style.css +1 -1
  57. package/dist/vendors/Tree-D0Q1IZ2D.js +267 -0
  58. package/dist/vendors/{version-CFii9VTt.js → version-CfjNx5v2.js} +1 -1
  59. package/package.json +1 -1
  60. package/dist/Amap/Amap-BLSziesG.js +0 -77
  61. package/dist/Amap/AmapCircle/index.js +0 -5
  62. package/dist/Amap/AmapCircle-2qupysHe.js +0 -55
  63. package/dist/Amap/AmapContext-CJBe6lld.js +0 -11
  64. package/dist/Amap/AmapMarker/index.js +0 -6
  65. package/dist/Amap/AmapMarker-xEqoVnFR.js +0 -153
  66. package/dist/Amap/AmapMarkerCluster/index.js +0 -6
  67. package/dist/Amap/AmapMarkerCluster-CvEQa3o9.js +0 -240
  68. package/dist/Amap/AmapProvider/index.js +0 -7
  69. package/dist/Amap/AmapProvider-B-R2DrkJ.js +0 -107
  70. package/dist/Amap/hooks/index.js +0 -4
  71. package/dist/Amap/hooks-BTcFpdd0.js +0 -121
  72. package/dist/Amap/useMarkerInfoWindowController-Cjx0xQXw.js +0 -94
  73. package/dist/Calendar/AllDaySection-pO7suGJM.js +0 -53
  74. package/dist/Calendar/Calendar-DUD4iffO.js +0 -795
  75. package/dist/Calendar/CurrentTimeIndicator-BF3_INSL.js +0 -65
  76. package/dist/Calendar/EventCard-DKEZQRTp.js +0 -155
  77. package/dist/Calendar/TimeAxis-DUc6EL-j.js +0 -13
  78. package/dist/Calendar/TimeGrid-BV8x9VnF.js +0 -47
  79. package/dist/Calendar/colorUtils-BbeSMnOs.js +0 -55
  80. package/dist/Calendar/context/index.js +0 -3
  81. package/dist/Calendar/context-CamSpkj3.js +0 -21
  82. package/dist/Calendar/layout-CpOabFQ2.js +0 -300
  83. package/dist/Calendar/subcomponents/AllDaySection/index.js +0 -11
  84. package/dist/Calendar/subcomponents/CurrentTimeIndicator/index.js +0 -8
  85. package/dist/Calendar/subcomponents/EventCard/index.js +0 -9
  86. package/dist/Calendar/subcomponents/TimeAxis/index.js +0 -5
  87. package/dist/Calendar/subcomponents/TimeGrid/index.js +0 -7
  88. package/dist/Calendar/theme-Dc8hjcdo.js +0 -71
  89. package/dist/Calendar/utils/index.js +0 -111
  90. package/dist/Calendar/utils/layout/index.js +0 -4
  91. package/dist/Calendar/utils/theme/index.js +0 -3
  92. package/dist/DatePicker/DatePicker-BWMmI6rl.js +0 -101
  93. package/dist/DatePicker/ensureDayjsPlugins-CSqhjLS7.js +0 -15
  94. package/dist/DatePicker/pickerLocale-CcPLUbZO.js +0 -15
  95. package/dist/DatePicker/style/index.js +0 -3
  96. package/dist/DatePicker/style-W7f5wyUb.js +0 -15
  97. package/dist/DropDown/style/index.js +0 -3
  98. package/dist/DropDown/style-DZpkarne.js +0 -9
  99. package/dist/Editor/Buttons-vt3gwedu.js +0 -1841
  100. package/dist/Editor/ToolbarPlugin/Buttons/index.js +0 -21
  101. package/dist/Editor/constants/index.js +0 -61
  102. package/dist/Gantt/GanttChart/index.js +0 -21
  103. package/dist/Gantt/GanttChart-DRzJdEm-.js +0 -2292
  104. package/dist/Gantt/GanttHighlightContext-dtyoq-oj.js +0 -12
  105. package/dist/Gantt/GanttTable/index.js +0 -13
  106. package/dist/Gantt/GanttTable-fOv1Zn2-.js +0 -84
  107. package/dist/Gantt/GanttToolBar/index.js +0 -17
  108. package/dist/Gantt/GanttToolBar-4kxZP6oS.js +0 -120
  109. package/dist/Gantt/collapseKeys-BV_8sIA-.js +0 -160
  110. package/dist/Gantt/columnResize-Bkenlbab.js +0 -46
  111. package/dist/Gantt/constants-mEGQ1U1Q.js +0 -39
  112. package/dist/Gantt/highlightTarget-D3Nf9_7S.js +0 -25
  113. package/dist/Gantt/theme-B7Iap-tZ.js +0 -31
  114. package/dist/Gantt/timelineViewConfig-DNt7yi83.js +0 -118
  115. package/dist/Gantt/utils/index.js +0 -7
  116. package/dist/Gantt/utils/theme/index.js +0 -3
  117. package/dist/Select/style/index.js +0 -3
  118. package/dist/Select/style-C4A8kUd1.js +0 -9
  119. package/dist/Table/Table-3LSO0xSH.js +0 -545
  120. package/dist/Table/constants-D7wLH8Qy.js +0 -25
  121. package/dist/Table/hooks/index.js +0 -3
  122. package/dist/Table/hooks-DSBl2e4O.js +0 -108
  123. package/dist/Table/processRowspan-B6HMqw0Q.js +0 -144
  124. package/dist/Table/style/index.js +0 -3
  125. package/dist/Table/style-B8Cw8HJe.js +0 -9
  126. package/dist/Table/utils/index.js +0 -3
  127. package/dist/Tree/utils/index.js +0 -26
  128. package/dist/vendors/Tree-DSl4lDjx.js +0 -248
  129. /package/dist/Card/{Card-rJeWgxu5.js → Card-DAz0dvA3.js} +0 -0
  130. /package/dist/CheckBox/{CheckBox-DOK5N7z6.js → CheckBox-CcHskTz_.js} +0 -0
  131. /package/dist/Modal/{Modal-CRKitOOj.js → Modal-eZijJ7CB.js} +0 -0
  132. /package/dist/NotFoundContent/{NotFoundContent-BLmzWNBi.js → NotFoundContent-DJUQ0_2D.js} +0 -0
  133. /package/dist/Radio/{Radio-CX9cUqb7.js → Radio-D9jhW7K6.js} +0 -0
  134. /package/dist/vendors/{animations-Dn_5xJ7B.js → animations-ISccYUE3.js} +0 -0
  135. /package/dist/vendors/{cssVars-l4-kP_14.js → cssVars-UpriQzph.js} +0 -0
  136. /package/dist/vendors/{mergeRefs-TiJ0xjUN.js → mergeRefs-mEH9TBYV.js} +0 -0
  137. /package/dist/vendors/{useFloatingOverlay-B3M9k8nj.js → useFloatingOverlay-B66lOL8v.js} +0 -0
  138. /package/dist/vendors/{useFloatingPortal-VpzL-EPh.js → useFloatingPortal-DJ1iKmW-.js} +0 -0
  139. /package/dist/vendors/{useLatchedPopupPortalRoot-4fVhqVT4.js → useLatchedPopupPortalRoot-CC6af8t-.js} +0 -0
  140. /package/dist/vendors/{useLocale-D31qCCff.js → useLocale-Be4e7Xfn.js} +0 -0
@@ -0,0 +1,1608 @@
1
+ import { t as e } from "../Icon/Icon-DrdQOEJE.js";
2
+ import { t } from "../vendors/useLocale-Be4e7Xfn.js";
3
+ import { t as n } from "../vendors/cssVars-UpriQzph.js";
4
+ import { t as r } from "../Segmented/Segmented-DpmwFerw.js";
5
+ import { t as i } from "../Tooltip/Tooltip-DBrt3t2r.js";
6
+ import { t as a } from "../DatePicker/DatePicker-BRwPZeui.js";
7
+ import { jsx as o, jsxs as s } from "react/jsx-runtime";
8
+ import { memo as c, useCallback as l, useEffect as u, useLayoutEffect as d, useMemo as f, useRef as p, useState as m } from "react";
9
+ import h from "clsx";
10
+ import { createContext as g, useContextSelector as _ } from "use-context-selector";
11
+ import v from "dayjs";
12
+ //#region src/components/Calendar/context/CalendarContext.ts
13
+ var y = g(null), b = g(null);
14
+ //#endregion
15
+ //#region src/components/Calendar/context/useCalendarContext.ts
16
+ function x(e) {
17
+ if (!e) throw Error("Calendar state context is missing. Wrap components with Calendar.");
18
+ return e;
19
+ }
20
+ function S(e) {
21
+ if (!e) throw Error("Calendar dispatch context is missing. Wrap components with Calendar.");
22
+ return e;
23
+ }
24
+ function C(e) {
25
+ return _(y, (t) => e(x(t)));
26
+ }
27
+ function w(e) {
28
+ return _(b, (t) => e(S(t)));
29
+ }
30
+ //#endregion
31
+ //#region src/components/Calendar/subcomponents/TodayButton/TodayButton.tsx
32
+ var T = () => {
33
+ let e = C((e) => e.formatMessage), t = w((e) => e.switchToDay), n = e("today");
34
+ return /* @__PURE__ */ o("button", {
35
+ type: "button",
36
+ className: "bsy-calendar-today-btn",
37
+ onClick: t,
38
+ "aria-label": n,
39
+ children: n
40
+ });
41
+ }, E = ({ direction: t }) => {
42
+ let n = C((e) => e.formatMessage), r = w((e) => e.switchPrevDate), i = w((e) => e.switchNextDate), a = l(() => {
43
+ t === "prev" ? r() : i();
44
+ }, [
45
+ t,
46
+ r,
47
+ i
48
+ ]), s = t === "prev" ? "Pulldownleft" : "Pulldownright", c = n(t === "prev" ? "prev" : "next");
49
+ return /* @__PURE__ */ o("button", {
50
+ type: "button",
51
+ className: "bsy-calendar-nav-btn",
52
+ onClick: a,
53
+ "aria-label": c,
54
+ children: /* @__PURE__ */ o(e, {
55
+ name: s,
56
+ size: 16
57
+ })
58
+ });
59
+ }, D = () => v(null), O = (e, t) => !!(t && e.$x?.$timezone === t), k = (e, t) => {
60
+ if (e == null || e === "") return D();
61
+ if (v.isDayjs(e)) return e.isValid() ? !t || O(e, t) ? e : e.tz(t) : D();
62
+ if (typeof e == "number" || e instanceof Date) {
63
+ let n = v(e);
64
+ return n.isValid() ? t ? n.tz(t) : n : D();
65
+ }
66
+ if (typeof e == "string") {
67
+ let n = v(e);
68
+ return n.isValid() ? t ? n.tz(t) : n : D();
69
+ }
70
+ return D();
71
+ }, ee = (e, t = {}) => {
72
+ let { timeZone: n } = t;
73
+ return Array.isArray(e) ? e.map((e, t) => ({
74
+ id: e.id ?? t,
75
+ sourceIndex: t,
76
+ label: e.label ?? "",
77
+ startTime: k(e.startTime, n),
78
+ endTime: k(e.endTime, n),
79
+ color: e.color
80
+ })) : [];
81
+ }, A = (e, t) => k(e, t), j = (e) => String(e).padStart(2, "0"), M = (e, t) => {
82
+ let n = A(e, t), r = n.startOf("month").startOf("isoWeek"), i = n.endOf("month").endOf("isoWeek").diff(r, "day") + 1;
83
+ return {
84
+ gridStart: r,
85
+ weekCount: Math.ceil(i / 7)
86
+ };
87
+ }, N = (e, t) => t("fullDate", {
88
+ year: e.year(),
89
+ month: j(e.month() + 1),
90
+ day: j(e.date())
91
+ }), P = (e, t, n, r) => A(e, r).add(t, n).toDate(), F = (e, t) => A(e, t).startOf("isoWeek"), I = (e, t) => A(e, t).endOf("isoWeek").startOf("day"), L = (e, t, n) => {
92
+ let r = A(e, t);
93
+ return n("yearMonth", {
94
+ year: r.year(),
95
+ month: j(r.month() + 1)
96
+ });
97
+ }, te = (e, t, n) => N(A(e, t), n), R = (e, t, n) => {
98
+ let r = A(e, n);
99
+ return r.date() === 1 ? t("monthDay", {
100
+ month: r.month() + 1,
101
+ day: r.date()
102
+ }) : String(r.date());
103
+ }, z = (e, t, n, r) => {
104
+ let i = A(e, n), a = A(t, n);
105
+ return i.year() === a.year() ? i.month() === a.month() ? r("dayOnly", { day: i.date() }) : r("monthDay", {
106
+ month: i.month() + 1,
107
+ day: i.date()
108
+ }) : N(i, r);
109
+ }, B = (e, t, n) => P(e, t, "day", n), V = (e, t, n) => P(e, t, "week", n), H = (e, t, n) => P(e, t, "month", n), ne = (e, t, n, r) => t === "day" ? B(e, n, r) : t === "week" ? V(e, n, r) : H(e, n, r), U = (e, t) => {
110
+ let { gridStart: n, weekCount: r } = M(e, t);
111
+ return Array.from({ length: r * 7 }, (e, t) => n.add(t, "day"));
112
+ }, W = (e, t) => {
113
+ let { gridStart: n, weekCount: r } = M(e, t);
114
+ return {
115
+ start: n,
116
+ end: n.add(r * 7, "day")
117
+ };
118
+ }, re = (e, t) => {
119
+ let n = A(e, t);
120
+ return n.year() * 12 + n.month();
121
+ }, ie = (e, t, n) => re(e, n) === re(t, n), ae = (e, t, n) => {
122
+ if (t === "day") {
123
+ let t = A(e, n).startOf("day");
124
+ return {
125
+ start: t,
126
+ end: t.add(1, "day")
127
+ };
128
+ }
129
+ if (t === "week") {
130
+ let t = F(e, n);
131
+ return {
132
+ start: t,
133
+ end: t.add(7, "day")
134
+ };
135
+ }
136
+ return t === "month" ? W(e, n) : {
137
+ start: null,
138
+ end: null
139
+ };
140
+ }, G = {
141
+ short: {
142
+ interval: 60,
143
+ rowHeight: 60,
144
+ totalRows: 24
145
+ },
146
+ medium: {
147
+ interval: 30,
148
+ rowHeight: 104,
149
+ totalRows: 48
150
+ },
151
+ long: {
152
+ interval: 15,
153
+ rowHeight: 148,
154
+ totalRows: 96
155
+ }
156
+ }, K = (e) => G[e] || G.medium, oe = (e, t) => e / t.interval * t.rowHeight, q = (e) => e.totalRows * e.rowHeight, se = (e, t) => {
157
+ let n = e * t.interval, r = Math.floor(n / 60), i = n % 60;
158
+ return `${String(r).padStart(2, "0")}:${String(i).padStart(2, "0")}`;
159
+ }, J = (e) => e ? v().tz(e) : v(), ce = (e) => {
160
+ let t = e ? v().tz(e).utcOffset() : v().utcOffset(), n = t >= 0 ? "+" : "-", r = Math.abs(t), i = Math.floor(r / 60), a = r % 60;
161
+ return a === 0 ? `GMT${n}${i}` : `GMT${n}${i}:${String(a).padStart(2, "0")}`;
162
+ }, le = (e, t) => {
163
+ let n = J(t);
164
+ return k(e, t).isSame(n, "day");
165
+ }, ue = (e, t) => {
166
+ let n = J(t);
167
+ return oe(n.hour() * 60 + n.minute(), e);
168
+ }, Y = (e) => e.id, de = (e, t) => {
169
+ let n = k(e.startTime, t), r = k(e.endTime, t);
170
+ return !n.isValid() || !r.isValid() ? !1 : !n.isSame(r, "day");
171
+ }, fe = (e, t) => {
172
+ let n = [], r = [];
173
+ for (let i of e) de(i, t) ? n.push(i) : r.push(i);
174
+ return {
175
+ allDayEvents: n,
176
+ timedEvents: r
177
+ };
178
+ }, pe = (e, t, n) => {
179
+ let r = k(e.startTime, t), i = k(e.endTime, t);
180
+ if (!r.isSame(i, "day")) return n("allDay");
181
+ let a = (e) => `${String(e.hour()).padStart(2, "0")}:${String(e.minute()).padStart(2, "0")}`;
182
+ return `${a(r)} - ${a(i)}`;
183
+ }, me = (e, t = 22, n = 4) => e * t + Math.max(0, e - 1) * n, he = (e) => ({
184
+ mode: "grid",
185
+ row: e.row,
186
+ startCol: e.startCol,
187
+ endCol: e.endCol
188
+ }), ge = (e) => ({
189
+ mode: "absolute",
190
+ top: e.top,
191
+ height: e.height,
192
+ hOffset: e.left,
193
+ hSpan: e.width,
194
+ hIsPercent: e.isPercent,
195
+ isLastInColumn: e.isLastInColumn
196
+ }), _e = (e, t, n, r) => !e.isValid() || !t.isValid() || !n.isValid() || !r.isValid() ? !1 : e.isSame(t) ? (e.isSame(n) || e.isAfter(n)) && e.isBefore(r) : e.isBefore(r) && t.isAfter(n), ve = {
197
+ "#005EEF": {
198
+ normal: "#EFF5FF",
199
+ hover: "#D9E8FF"
200
+ },
201
+ "#3642E9": {
202
+ normal: "#EDEEFF",
203
+ hover: "#DEE0FF"
204
+ },
205
+ "#10A9C4": {
206
+ normal: "#EBFCFF",
207
+ hover: "#DDFAFF"
208
+ },
209
+ "#32A645": {
210
+ normal: "#f2ffef",
211
+ hover: "#E4FFE0"
212
+ },
213
+ "#FFC502": {
214
+ normal: "#FFFAE8",
215
+ hover: "#FFF4D0"
216
+ },
217
+ "#FF9921": {
218
+ normal: "#FFF5EA",
219
+ hover: "#FFECD7"
220
+ },
221
+ "#F06648": {
222
+ normal: "#FFF0ED",
223
+ hover: "#FFE3DD"
224
+ },
225
+ "#F168B6": {
226
+ normal: "#FFEFF8",
227
+ hover: "#FFDEF1"
228
+ },
229
+ "#6C6C6E": {
230
+ normal: "#F2F3F5",
231
+ hover: "#E6E6E7"
232
+ }
233
+ }, ye = /* @__PURE__ */ new Map(), be = (e) => {
234
+ if (!e) return {
235
+ normal: "#e8f0fe",
236
+ hover: "#d7e3fd"
237
+ };
238
+ let t = ye.get(e);
239
+ if (t) return t;
240
+ let n = e.toUpperCase();
241
+ if (ve[n]) return ye.set(e, ve[n]), ve[n];
242
+ let r = parseInt(e.slice(1, 3), 16), i = parseInt(e.slice(3, 5), 16), a = parseInt(e.slice(5, 7), 16), o = .88, s = Math.round(r + (255 - r) * o), c = Math.round(i + (255 - i) * o), l = Math.round(a + (255 - a) * o), u = .8, d = Math.round(r + (255 - r) * u), f = Math.round(i + (255 - i) * u), p = Math.round(a + (255 - a) * u), m = {
243
+ normal: `rgb(${s}, ${c}, ${l})`,
244
+ hover: `rgb(${d}, ${f}, ${p})`
245
+ };
246
+ return ye.set(e, m), m;
247
+ }, xe = 15, Se = {
248
+ allowStackLayout: !0,
249
+ maxColumnsBeforeStack: 10
250
+ }, X = (e, t) => k(e, t), Z = (e, t) => {
251
+ let n = X(e.startTime, t), r = X(e.endTime, t);
252
+ return r.diff(n, "minute") < xe ? n.add(xe, "minute") : r;
253
+ }, Ce = (e, t, n) => {
254
+ let r = X(e.startTime, n), i = Z(e, n), a = X(t.startTime, n), o = Z(t, n);
255
+ return r.isBefore(o) && i.isAfter(a);
256
+ }, we = (e, t) => {
257
+ if (e.length === 0) return [];
258
+ let n = [...e].sort((e, n) => X(e.startTime, t).valueOf() - X(n.startTime, t).valueOf()), r = [], i = [n[0]], a = Z(n[0], t);
259
+ for (let e = 1; e < n.length; e++) {
260
+ let o = n[e];
261
+ if (X(o.startTime, t).isBefore(a)) {
262
+ i.push(o);
263
+ let e = Z(o, t);
264
+ e.isAfter(a) && (a = e);
265
+ } else r.push(i), i = [o], a = Z(o, t);
266
+ }
267
+ return r.push(i), r;
268
+ }, Te = (e, t) => {
269
+ let n = /* @__PURE__ */ new Map(), r = [], i = [...e].sort((e, n) => X(e.startTime, t).valueOf() - X(n.startTime, t).valueOf());
270
+ for (let e of i) {
271
+ let i = !1;
272
+ for (let a = 0; a < r.length; a++) if (r[a].every((n) => !Ce(n, e, t))) {
273
+ r[a].push(e), n.set(Y(e), a), i = !0;
274
+ break;
275
+ }
276
+ i || (r.push([e]), n.set(Y(e), r.length - 1));
277
+ }
278
+ return n;
279
+ }, Ee = (e, t, n, r, i, a) => {
280
+ let o = n;
281
+ for (let n of r) {
282
+ if (Y(n) === Y(e)) continue;
283
+ let r = i.get(Y(n));
284
+ r > t && Ce(e, n, a) && (o = Math.min(o, r));
285
+ }
286
+ return o - t;
287
+ }, De = (e, t, n = {}) => {
288
+ let { allowStackLayout: r, maxColumnsBeforeStack: i, timeZone: a } = {
289
+ ...Se,
290
+ ...n
291
+ }, o = Math.max(...Array.from(t.values())) + 1, s = /* @__PURE__ */ new Map(), c = r && o > i;
292
+ for (let n of e) {
293
+ let r = Y(n), i = t.get(r), l = Ee(n, i, o, e, t, a), u = i + l === o;
294
+ if (c) {
295
+ let e = i * 15;
296
+ s.set(r, {
297
+ left: e,
298
+ width: 85,
299
+ isPercent: !1,
300
+ isLastInColumn: u
301
+ });
302
+ } else {
303
+ let e = 100 / o;
304
+ s.set(r, {
305
+ left: i * e,
306
+ width: e * l,
307
+ isPercent: !0,
308
+ isLastInColumn: u
309
+ });
310
+ }
311
+ }
312
+ return s;
313
+ }, Oe = (e, t, n = {}) => {
314
+ let { timeZone: r, ...i } = {
315
+ ...Se,
316
+ ...n
317
+ }, { allDayEvents: a, timedEvents: o } = fe(e, r), s = we(o, r), c = [];
318
+ for (let e of s) {
319
+ let n = Te(e, r), a = De(e, n, {
320
+ ...i,
321
+ timeZone: r
322
+ }), o = Math.max(...Array.from(n.values())) + 1;
323
+ for (let i of e) {
324
+ let e = X(i.startTime, r), s = X(i.endTime, r), l = e.hour() * 60 + e.minute(), u = s.hour() * 60 + s.minute(), d = Math.max(u - l, xe), f = l / t.interval * t.rowHeight, p = d / t.interval * t.rowHeight, m = Y(i), h = a.get(m);
325
+ c.push({
326
+ event: i,
327
+ top: f,
328
+ height: p,
329
+ left: h.left,
330
+ width: h.width,
331
+ isPercent: h.isPercent,
332
+ column: n.get(m),
333
+ totalColumns: o,
334
+ isLastInColumn: h.isLastInColumn
335
+ });
336
+ }
337
+ }
338
+ return {
339
+ timedEvents: c,
340
+ allDayEvents: a
341
+ };
342
+ }, ke = (e, t, n, r) => Array.from({ length: 7 }, (i, a) => {
343
+ let o = t.add(a, "day").startOf("day"), s = o.add(1, "day"), c = [];
344
+ for (let t of e) {
345
+ let e = k(t.startTime, r), n = k(t.endTime, r);
346
+ _e(e, n, o, s) && c.push({
347
+ ...t,
348
+ startTime: e.isBefore(o) ? o : e,
349
+ endTime: n.isAfter(s) ? s : n
350
+ });
351
+ }
352
+ let { timedEvents: l } = Oe(c, n, {
353
+ allowStackLayout: !0,
354
+ timeZone: r
355
+ });
356
+ return l;
357
+ });
358
+ //#endregion
359
+ //#region src/components/Calendar/utils/layout/weekLayoutAlgorithm.ts
360
+ function Ae(e, t, n) {
361
+ let r = k(e.startTime, n), i = k(e.endTime, n), a = t.add(7, "day"), o = r.isBefore(t) ? t : r, s = i.isAfter(a) ? a : i, c = t.utcOffset(), l = o.utcOffset(c), u = s.utcOffset(c), d = l.format("YYYY-MM-DD"), f = t.format("YYYY-MM-DD"), p = v(d).diff(f, "day"), m = v(u.hour() === 0 && u.minute() === 0 && u.second() === 0 ? u.format("YYYY-MM-DD") : u.add(1, "day").format("YYYY-MM-DD")).diff(f, "day");
362
+ return {
363
+ event: e,
364
+ startCol: p,
365
+ endCol: m,
366
+ span: m - p
367
+ };
368
+ }
369
+ function je(e, t) {
370
+ return e.startCol < t.endCol && e.endCol > t.startCol;
371
+ }
372
+ function Me(e, t, n) {
373
+ if (!e || e.length === 0) return [];
374
+ let r = e.map((e) => Ae(e, t, n)).filter((e) => e.span > 0);
375
+ r.sort((e, t) => e.startCol === t.startCol ? t.span - e.span : e.startCol - t.startCol);
376
+ let i = [], a = [];
377
+ for (let e of r) {
378
+ let t = !1;
379
+ for (let n = 0; n < i.length; n++) if (!i[n].some((t) => je(t, e))) {
380
+ i[n].push(e), a.push({
381
+ ...e,
382
+ row: n
383
+ }), t = !0;
384
+ break;
385
+ }
386
+ t || (i.push([e]), a.push({
387
+ ...e,
388
+ row: i.length - 1
389
+ }));
390
+ }
391
+ return a;
392
+ }
393
+ //#endregion
394
+ //#region src/components/Calendar/utils/layout/monthLayoutAlgorithm.ts
395
+ var Ne = {
396
+ HEADER_HEIGHT: 34,
397
+ SLOT_HEIGHT: 22,
398
+ SLOT_GAP: 4,
399
+ WEEK_PADDING_X: 10,
400
+ EVENT_RIGHT_GAP: 4
401
+ };
402
+ function Pe(e) {
403
+ let { startCol: t, endCol: n, row: r } = e, { HEADER_HEIGHT: i, SLOT_HEIGHT: a, SLOT_GAP: o, EVENT_RIGHT_GAP: s, WEEK_PADDING_X: c } = Ne, l = 100 / 7, u = t > 0 ? c : 0;
404
+ return {
405
+ top: i + r * (a + o),
406
+ height: a,
407
+ left: `calc(${t * l}% + ${u}px)`,
408
+ width: `calc(${(n - t) * l}% - ${s + u}px)`
409
+ };
410
+ }
411
+ function Fe(e, t, n, r) {
412
+ let i = k(e.startTime, r), a = k(e.endTime, r), o = t.add(n, "day"), s = i.isBefore(t) ? t : i, c = a.isAfter(o) ? o : a, l = s.diff(t, "day"), u = i.startOf("day").diff(t.startOf("day"), "day"), d = c.hour() === 0 && c.minute() === 0 && c.second() === 0, f = i.isSame(a) && !i.isBefore(t) && i.isBefore(o) ? l + 1 : d ? c.diff(t, "day") : c.diff(t, "day") + 1;
413
+ return {
414
+ event: e,
415
+ startDayIndex: l,
416
+ endDayIndex: f,
417
+ span: f - l,
418
+ originalStartDayIndex: u
419
+ };
420
+ }
421
+ function Ie(e, t, n, r) {
422
+ return !e || e.length === 0 ? [] : e.map((e) => Fe(e, t, n, r));
423
+ }
424
+ function Le(e) {
425
+ if (!e || e.length === 0) return /* @__PURE__ */ new Map();
426
+ let t = [...e].sort((e, t) => e.startDayIndex === t.startDayIndex ? t.span - e.span : e.startDayIndex - t.startDayIndex), n = /* @__PURE__ */ new Map(), r = [];
427
+ for (let e of t) {
428
+ let { event: t, startDayIndex: i, endDayIndex: a } = e, o = -1;
429
+ for (let e = 0; e <= r.length; e++) {
430
+ r[e] || (r[e] = []);
431
+ let t = !0;
432
+ for (let n = i; n < a; n++) if (r[e][n]) {
433
+ t = !1;
434
+ break;
435
+ }
436
+ if (t) {
437
+ o = e;
438
+ break;
439
+ }
440
+ }
441
+ r[o] || (r[o] = []);
442
+ let s = Y(t);
443
+ for (let e = i; e < a; e++) r[o][e] = s;
444
+ n.set(s, o);
445
+ }
446
+ return n;
447
+ }
448
+ function Re(e, t) {
449
+ let { event: n, startDayIndex: r, endDayIndex: i, originalStartDayIndex: a } = e, o = [], s = r;
450
+ for (; s < i;) {
451
+ let e = Math.floor(s / 7), r = (e + 1) * 7, c = Math.min(i, r), l = s % 7;
452
+ o.push({
453
+ event: n,
454
+ weekIndex: e,
455
+ startCol: l,
456
+ endCol: c - e * 7,
457
+ row: t,
458
+ isStart: s === a,
459
+ isEnd: c === i,
460
+ isWeekStart: l === 0
461
+ }), s = c;
462
+ }
463
+ return o;
464
+ }
465
+ function ze(e, t, n, r, i, a, o) {
466
+ let s = /* @__PURE__ */ new Set(), c = a || Ie(t, n, r, o);
467
+ if (c.length === 0) return s;
468
+ let l = Array.from({ length: r }, () => []);
469
+ for (let e of c) for (let t = e.startDayIndex; t < e.endDayIndex; t++) l[t].push(e);
470
+ for (let t = 0; t < r; t++) {
471
+ let n = l[t].filter((e) => !s.has(Y(e.event))), r = n.some((t) => e.get(Y(t.event)) >= i) && i > 1 ? i - 1 : i;
472
+ for (let t of n) {
473
+ let n = Y(t.event);
474
+ e.get(n) >= r && s.add(n);
475
+ }
476
+ }
477
+ return s;
478
+ }
479
+ function Be(e, t, n = 6, r) {
480
+ let i = Ie(e, t, n * 7, r);
481
+ if (!e || e.length === 0) return {
482
+ weekLayouts: Array.from({ length: n }, () => []),
483
+ eventRowMap: /* @__PURE__ */ new Map(),
484
+ gridEvents: i
485
+ };
486
+ let a = Le(i), o = Array.from({ length: n }, () => []);
487
+ for (let e of i) {
488
+ let t = Re(e, a.get(Y(e.event)));
489
+ for (let e of t) o[e.weekIndex].push(e);
490
+ }
491
+ return {
492
+ weekLayouts: o,
493
+ eventRowMap: a,
494
+ gridEvents: i
495
+ };
496
+ }
497
+ function Ve(e, t, n) {
498
+ let r = Array(7).fill(0), i = Array.from({ length: 7 }, () => /* @__PURE__ */ new Set());
499
+ for (let a of e) {
500
+ let e = Y(a.event);
501
+ if (t.has(e) || a.row >= n) for (let t = a.startCol; t < a.endCol; t++) i[t].has(e) || (i[t].add(e), r[t]++);
502
+ }
503
+ return r;
504
+ }
505
+ //#endregion
506
+ //#region src/components/Calendar/subcomponents/DateDisplay/DateDisplay.tsx
507
+ var He = () => {
508
+ let t = C((e) => e.currentDate), n = C((e) => e.mode), r = C((e) => e.timeZone), i = C((e) => e.formatMessage), c = C((e) => e.datePickerTheme), u = C((e) => e.getPopupContainer), d = w((e) => e.setCurrentDate), p = f(() => {
509
+ if (n === "month") return L(t, r, i);
510
+ if (n === "week") {
511
+ let e = F(t, r), n = I(t, r);
512
+ return `${te(e, r, i)} - ${z(n, e, r, i)}`;
513
+ }
514
+ return n === "day" ? te(t, r, i) : null;
515
+ }, [
516
+ t,
517
+ n,
518
+ r,
519
+ i
520
+ ]), m = f(() => n === "month" ? "month" : n === "week" ? "week" : "date", [n]), h = l((e) => {
521
+ d(n === "week" ? F(e.toDate(), r).toDate() : e.toDate());
522
+ }, [
523
+ d,
524
+ n,
525
+ r
526
+ ]);
527
+ return /* @__PURE__ */ o(a, {
528
+ picker: m,
529
+ value: f(() => n === "week" ? F(t, r) : v(t), [
530
+ t,
531
+ n,
532
+ r
533
+ ]),
534
+ theme: c,
535
+ getPopupContainer: u,
536
+ triggerActiveClassName: "bsy-calendar-date-display--active",
537
+ onChange: h,
538
+ children: /* @__PURE__ */ s("div", {
539
+ className: "bsy-calendar-date-display",
540
+ children: [/* @__PURE__ */ o("span", {
541
+ className: "date-text",
542
+ children: p
543
+ }), /* @__PURE__ */ o(e, {
544
+ name: "arrow-down",
545
+ className: "bsy-calendar-date-arrow",
546
+ size: 16
547
+ })]
548
+ })
549
+ });
550
+ }, Ue = () => /* @__PURE__ */ s("div", {
551
+ className: "bsy-calendar-header-left",
552
+ children: [
553
+ /* @__PURE__ */ o(T, {}),
554
+ /* @__PURE__ */ o(E, { direction: "prev" }),
555
+ /* @__PURE__ */ o(E, { direction: "next" }),
556
+ /* @__PURE__ */ o(He, {})
557
+ ]
558
+ }), We = {
559
+ day: "mode.day",
560
+ week: "mode.week",
561
+ month: "mode.month"
562
+ }, Ge = () => {
563
+ let e = C((e) => e.formatMessage), t = C((e) => e.mode), n = C((e) => e.modes), i = C((e) => e.segmentedTheme), a = w((e) => e.onPanelChange), c = f(() => n.map((t) => ({
564
+ label: e(We[t]),
565
+ value: t
566
+ })), [n, e]), u = l((e) => {
567
+ a(e);
568
+ }, [a]);
569
+ return /* @__PURE__ */ s("div", {
570
+ className: "bsy-calendar-header",
571
+ children: [/* @__PURE__ */ o("div", {
572
+ className: "bsy-calendar-header__left",
573
+ children: /* @__PURE__ */ o(Ue, {})
574
+ }), /* @__PURE__ */ o("div", {
575
+ className: "bsy-calendar-header__right",
576
+ children: /* @__PURE__ */ o(r, {
577
+ value: t,
578
+ options: c,
579
+ onChange: u,
580
+ theme: i
581
+ })
582
+ })]
583
+ });
584
+ }, Ke = ({ zoomConfig: e }) => /* @__PURE__ */ o("div", {
585
+ className: "bsy-calendar-time-axis",
586
+ children: Array.from({ length: e.totalRows }, (e, t) => t).map((t) => /* @__PURE__ */ o("div", {
587
+ className: "bsy-calendar-time-axis__label",
588
+ style: { height: e.rowHeight },
589
+ children: /* @__PURE__ */ o("span", { children: se(t, e) })
590
+ }, t))
591
+ }), qe = ({ zoomConfig: t, rowAction: n }) => {
592
+ let r = Array.from({ length: t.totalRows }, (e, t) => t), [a, c] = m(null), d = p(0);
593
+ u(() => {
594
+ n || c(null);
595
+ }, [n]);
596
+ let h = f(() => (a === null ? d.current : a) * t.rowHeight, [a, t.rowHeight]), g = l((e) => {
597
+ e.stopPropagation();
598
+ let t = a === null ? d.current : a;
599
+ n?.onClick(t), c(null);
600
+ }, [a, n]);
601
+ return /* @__PURE__ */ s("div", {
602
+ className: "bsy-calendar-time-grid",
603
+ onMouseLeave: n ? () => c(null) : void 0,
604
+ children: [r.map((e) => /* @__PURE__ */ o("div", {
605
+ className: "bsy-calendar-time-grid__row",
606
+ style: { height: t.rowHeight },
607
+ onMouseEnter: n ? () => {
608
+ d.current = e, c(e);
609
+ } : void 0
610
+ }, e)), n ? /* @__PURE__ */ o("div", {
611
+ className: "bsy-calendar-time-grid__row-action",
612
+ style: { top: h },
613
+ children: /* @__PURE__ */ o(i, {
614
+ content: n.tooltip,
615
+ placement: "top",
616
+ children: /* @__PURE__ */ o("button", {
617
+ type: "button",
618
+ className: `bsy-calendar-time-grid__row-action-btn${a === null ? "" : " bsy-calendar-time-grid__row-action-btn--visible"}`,
619
+ onClick: g,
620
+ "aria-label": n.tooltip,
621
+ children: /* @__PURE__ */ o(e, {
622
+ name: "add",
623
+ className: "bsy-calendar-time-grid__row-action-icon",
624
+ size: 16
625
+ })
626
+ })
627
+ })
628
+ }) : null]
629
+ });
630
+ }, Je = 4, Ye = (e, t, n) => {
631
+ if (n) {
632
+ let e = J(t).startOf("day").diff(n.startOf("day"), "day");
633
+ return e >= 0 && e < 7;
634
+ }
635
+ return le(e, t);
636
+ }, Xe = ({ currentDate: e, zoomConfig: t, weekStart: n, timeZone: r }) => {
637
+ let a = p(null), [c, l] = m(() => ue(t, r)), [f, h] = m(() => J(r)), g = Ye(e, r, n);
638
+ u(() => {
639
+ if (!g) return;
640
+ let e = () => {
641
+ l(ue(t, r)), h(J(r));
642
+ };
643
+ e();
644
+ let n = setInterval(e, 6e4);
645
+ return () => clearInterval(n);
646
+ }, [
647
+ g,
648
+ t,
649
+ r
650
+ ]), d(() => {
651
+ if (!g || !a.current) return;
652
+ let e = a.current.parentElement?.closest?.(".bsy-calendar-day__scroll-container, .bsy-calendar-week__scroll-container");
653
+ if (!e) return;
654
+ let n = ue(t, r), i = e.scrollHeight - e.clientHeight;
655
+ e.scrollTop = Math.max(0, Math.min(n - e.clientHeight / 2, i));
656
+ }, [
657
+ g,
658
+ r,
659
+ t
660
+ ]);
661
+ let _ = f.format("HH:mm");
662
+ if (!g) return null;
663
+ let v = -6, y;
664
+ return n && (v = f.diff(n, "day") / 7 * 100, y = { left: `calc(${v}% - ${Je}px)` }), /* @__PURE__ */ s("div", {
665
+ ref: a,
666
+ className: "bsy-calendar-current-time",
667
+ style: { top: c },
668
+ children: [/* @__PURE__ */ o(i, {
669
+ content: _,
670
+ placement: "top",
671
+ trigger: "hover",
672
+ showArrow: !0,
673
+ hoverDelay: 200,
674
+ style: {
675
+ color: "#ea4335",
676
+ fontSize: "12px",
677
+ textAlign: "center",
678
+ background: "#fff",
679
+ boxShadow: "0 2px 8px rgba(0,0,0,0.15)"
680
+ },
681
+ children: /* @__PURE__ */ o("div", {
682
+ className: "bsy-calendar-current-time__dot",
683
+ style: y
684
+ })
685
+ }), /* @__PURE__ */ o("div", { className: "bsy-calendar-current-time__line" })]
686
+ });
687
+ }, Q = [
688
+ "day",
689
+ "week",
690
+ "month"
691
+ ], Ze = {
692
+ MIN_HEIGHT_FOR_TIME: 32,
693
+ MIN_HEIGHT_FOR_TITLE: 22
694
+ }, Qe = {
695
+ COLLAPSED_COUNT: 3,
696
+ EXPANDED_COUNT: 5,
697
+ EVENT_HEIGHT: 22,
698
+ EVENT_GAP: 4
699
+ }, { MIN_HEIGHT_FOR_TIME: $e, MIN_HEIGHT_FOR_TITLE: et } = Ze, tt = (e) => {
700
+ let t = e?.parentElement ?? null;
701
+ for (; t;) {
702
+ let { overflowY: e } = getComputedStyle(t);
703
+ if (e === "auto" || e === "scroll") return t;
704
+ t = t.parentElement;
705
+ }
706
+ return null;
707
+ }, $ = c(function({ event: e, onClick: t, eventIndex: n, variant: r = "timed", placement: a, position: c, visual: d, tooltip: g, disableGlobalHover: v = !1 }) {
708
+ let b = r === "allDay", x = b && c?.mode === "grid", S = e.id, T = p(null), E = p(null), [D, O] = m(!1), k = _(y, l((e) => !v && e?.hoveredEventId === S, [v, S])), ee = C((e) => e.timeZone), A = C((e) => e.formatMessage), j = C((e) => e.tooltip), M = w((e) => e.setHoveredEventId), N = g || j, P = l(() => {
709
+ v || M(S);
710
+ }, [
711
+ M,
712
+ S,
713
+ v
714
+ ]), F = l(() => {
715
+ v || M(null);
716
+ }, [M, v]), I = f(() => N?.content?.(e, n ?? e.sourceIndex), [
717
+ N,
718
+ e,
719
+ n
720
+ ]), L = f(() => {
721
+ if (!D || b) return;
722
+ let e = T.current;
723
+ if (!e) return;
724
+ E.current ||= tt(e);
725
+ let t = E.current;
726
+ if (t) return { getBoundingClientRect() {
727
+ let n = e.getBoundingClientRect(), r = t.getBoundingClientRect(), i = Math.max(n.top, r.top), a = Math.min(n.bottom, r.bottom), o = Math.max(n.left, r.left), s = Math.min(n.right, r.right);
728
+ return {
729
+ x: o,
730
+ y: i,
731
+ top: i,
732
+ bottom: a,
733
+ left: o,
734
+ right: s,
735
+ width: Math.max(0, s - o),
736
+ height: Math.max(0, a - i),
737
+ toJSON: () => ({})
738
+ };
739
+ } };
740
+ }, [D, b]), te = l((e) => {
741
+ O(e);
742
+ }, []);
743
+ u(() => () => {
744
+ E.current = null;
745
+ }, []);
746
+ let R = f(() => {
747
+ if (!c) return;
748
+ let e = {};
749
+ switch (c.mode) {
750
+ case "grid": {
751
+ let { row: t, startCol: n, endCol: r } = c;
752
+ e.gridColumn = `${n + 1} / ${r + 1}`, e.gridRow = t + 1;
753
+ break;
754
+ }
755
+ case "absolute": {
756
+ let { top: t, height: n, hOffset: r, hSpan: i, hIsPercent: a = !0, isLastInColumn: o = !1 } = c;
757
+ e.top = t, e.height = Math.max(n, et), a ? (e.left = `${r}%`, e.width = o ? `${i}%` : `calc(${i}% - 4px)`) : (e.left = `${r}px`, e.width = o ? `${i}px` : `${Math.max(i - 4, 0)}px`);
758
+ break;
759
+ }
760
+ case "month-absolute": {
761
+ let { top: t, height: n, left: r, width: i } = c;
762
+ e.top = t, e.height = Math.max(n, et), e.left = r, e.width = i;
763
+ break;
764
+ }
765
+ default: break;
766
+ }
767
+ return e;
768
+ }, [c]), z = !b && c?.mode === "absolute" && c.height >= $e, B = l((r) => {
769
+ r.stopPropagation(), t?.(e, n);
770
+ }, [
771
+ t,
772
+ e,
773
+ n
774
+ ]), V = l((r) => {
775
+ (r.key === "Enter" || r.key === " ") && (r.preventDefault(), t?.(e, n));
776
+ }, [
777
+ t,
778
+ e,
779
+ n
780
+ ]), H = h("bsy-calendar-event-card", {
781
+ "bsy-calendar-event-card--allday": b,
782
+ "bsy-calendar-event-card--week-grid": b && x,
783
+ "bsy-calendar-event-card--continues-left": d?.continuesLeft,
784
+ "bsy-calendar-event-card--continues-right": d?.continuesRight,
785
+ "bsy-calendar-event-card--timed": !b,
786
+ "bsy-calendar-event-card--hovered": k
787
+ }), ne = d ? d.showTitle !== !1 : !0, U = a || (b ? "bottom" : "top-start"), W = /* @__PURE__ */ s("div", {
788
+ ref: T,
789
+ className: H,
790
+ style: R,
791
+ role: "button",
792
+ tabIndex: 0,
793
+ onClick: B,
794
+ onKeyDown: V,
795
+ onMouseEnter: P,
796
+ onMouseLeave: F,
797
+ "aria-label": e.label,
798
+ children: [ne ? /* @__PURE__ */ o("div", {
799
+ className: "bsy-calendar-event-card__title",
800
+ children: e.label
801
+ }) : null, z ? /* @__PURE__ */ o("div", {
802
+ className: "bsy-calendar-event-card__time",
803
+ children: pe(e, ee, A)
804
+ }) : null]
805
+ });
806
+ return I ? /* @__PURE__ */ o(i, {
807
+ content: I,
808
+ showArrow: !1,
809
+ hoverDelay: 500,
810
+ placement: U,
811
+ fallbackPlacements: b ? void 0 : [
812
+ "bottom-start",
813
+ "right-start",
814
+ "left-start"
815
+ ],
816
+ moveToFloatingKeepOpen: !0,
817
+ widthMode: "manual",
818
+ maxWidth: 400,
819
+ offset: 5,
820
+ virtualReference: L,
821
+ flipBoundary: E.current ?? void 0,
822
+ onVisibleChange: te,
823
+ style: {
824
+ borderRadius: "10px",
825
+ padding: 0,
826
+ backgroundColor: "#fff",
827
+ boxShadow: "0 0 12px 0 rgba(0, 0, 0, 0.08)"
828
+ },
829
+ children: W
830
+ }) : W;
831
+ }), { COLLAPSED_COUNT: nt, EXPANDED_COUNT: rt, EVENT_HEIGHT: it, EVENT_GAP: at } = Qe, ot = ({ events: t = [], onClick: n }) => {
832
+ let r = C((e) => e.formatMessage), [i, a] = m(!1), c = C((e) => e.timeZone), l = t.length, u = l - nt, d = l > nt, p = i && l > rt, g = f(() => me(i ? Math.min(l, rt) : Math.min(l, nt), it, at), [i, l]), _ = f(() => ce(c), [c]), v = () => {
833
+ a((e) => !e);
834
+ }, y = { "--max-height": `${g}px` };
835
+ return /* @__PURE__ */ s("div", {
836
+ className: "bsy-calendar-allday-section",
837
+ children: [/* @__PURE__ */ o("div", {
838
+ className: "bsy-calendar-allday-section__label",
839
+ children: /* @__PURE__ */ o("div", {
840
+ className: "bsy-calendar-allday-section__label-text",
841
+ children: _
842
+ })
843
+ }), /* @__PURE__ */ s("div", {
844
+ className: "bsy-calendar-allday-section__content",
845
+ children: [/* @__PURE__ */ o("div", {
846
+ className: h("bsy-calendar-allday-section__events", { "bsy-calendar-allday-section__events--scroll": p }),
847
+ style: y,
848
+ children: t.map((e, t) => /* @__PURE__ */ o($, {
849
+ event: e,
850
+ eventIndex: e.sourceIndex ?? t,
851
+ onClick: n,
852
+ variant: "allDay"
853
+ }, e.id))
854
+ }), d ? /* @__PURE__ */ s("button", {
855
+ type: "button",
856
+ className: "bsy-calendar-allday-section__toggle-btn",
857
+ onClick: v,
858
+ "aria-label": i ? r("collapse") : r("remainingCount", { count: u }),
859
+ children: [/* @__PURE__ */ o("span", {
860
+ className: "bsy-calendar-allday-section__toggle-icon",
861
+ children: /* @__PURE__ */ o(e, {
862
+ name: i ? "arrow-up" : "arrow-down",
863
+ size: 14
864
+ })
865
+ }), /* @__PURE__ */ o("span", {
866
+ className: "bsy-calendar-allday-section__toggle-text",
867
+ children: i ? r("collapse") : r("remainingCount", { count: u })
868
+ })]
869
+ }) : null]
870
+ })]
871
+ });
872
+ }, st = ({ events: e = [] }) => {
873
+ let t = C((e) => e.formatMessage), n = C((e) => e.currentDate), r = C((e) => e.axis), i = C((e) => e.allowAdd), a = C((e) => e.onEventClick), c = C((e) => e.onAddClick), u = C((e) => e.timeZone), d = f(() => K(r), [r]), p = f(() => q(d), [d]), m = f(() => {
874
+ let t = k(n, u).startOf("day"), r = t.add(1, "day"), i = [];
875
+ for (let n of e) _e(k(n.startTime, u), k(n.endTime, u), t, r) && i.push(n);
876
+ return i;
877
+ }, [
878
+ e,
879
+ n,
880
+ u
881
+ ]), { timedEvents: h, allDayEvents: g } = f(() => Oe(m, d, {
882
+ allowStackLayout: !1,
883
+ timeZone: u
884
+ }), [
885
+ m,
886
+ d,
887
+ u
888
+ ]), _ = l((e) => {
889
+ if (!c) return;
890
+ let t = k(n, u).startOf("day").add(e * d.interval, "minute"), r = t.add(d.interval, "minute");
891
+ c({
892
+ startTime: t.valueOf(),
893
+ endTime: r.valueOf(),
894
+ anchorDate: n,
895
+ slotIndex: e,
896
+ mode: "day"
897
+ });
898
+ }, [
899
+ c,
900
+ n,
901
+ u,
902
+ d.interval
903
+ ]);
904
+ return /* @__PURE__ */ s("div", {
905
+ className: "bsy-calendar-day",
906
+ children: [/* @__PURE__ */ o(ot, {
907
+ events: g,
908
+ onClick: a
909
+ }), /* @__PURE__ */ o("div", {
910
+ className: "bsy-calendar-day__scroll-container",
911
+ children: /* @__PURE__ */ s("div", {
912
+ className: "bsy-calendar-day__content",
913
+ style: { height: p },
914
+ children: [/* @__PURE__ */ o(Ke, { zoomConfig: d }), /* @__PURE__ */ s("div", {
915
+ className: "bsy-calendar-day__main",
916
+ children: [
917
+ /* @__PURE__ */ o(qe, {
918
+ zoomConfig: d,
919
+ rowAction: i ? {
920
+ tooltip: t("addRecord"),
921
+ onClick: _
922
+ } : void 0
923
+ }),
924
+ /* @__PURE__ */ o("div", {
925
+ className: "bsy-calendar-day__events",
926
+ children: h.map((e) => /* @__PURE__ */ o($, {
927
+ event: e.event,
928
+ eventIndex: e.event.sourceIndex,
929
+ onClick: a,
930
+ variant: "timed",
931
+ position: ge(e)
932
+ }, e.event.id))
933
+ }),
934
+ /* @__PURE__ */ o(Xe, {
935
+ currentDate: n,
936
+ zoomConfig: d,
937
+ timeZone: u
938
+ })
939
+ ]
940
+ })]
941
+ })
942
+ })]
943
+ });
944
+ }, { COLLAPSED_COUNT: ct, EXPANDED_COUNT: lt, EVENT_HEIGHT: ut, EVENT_GAP: dt } = Qe;
945
+ function ft(e) {
946
+ let t = Array(7).fill(0);
947
+ for (let n of e) {
948
+ let { startCol: e, endCol: r, row: i } = n;
949
+ for (let n = e; n < r; n++) n >= 0 && n < 7 && (t[n] = Math.max(t[n], i + 1));
950
+ }
951
+ return t;
952
+ }
953
+ var pt = ({ events: t, onClick: n, weekStart: r, isGloballyExpanded: i, onExpandChange: a }) => {
954
+ let c = C((e) => e.formatMessage), d = p(null), g = C((e) => e.timeZone), [_, v] = m(() => Array(7).fill(!1));
955
+ u(() => {
956
+ !i && d.current && (d.current.scrollTop = 0);
957
+ }, [i]);
958
+ let y = f(() => Me(t, r, g), [
959
+ t,
960
+ r,
961
+ g
962
+ ]), b = f(() => ft(y), [y]), x = y.length > 0 ? Math.max(...y.map((e) => e.row)) + 1 : 0, S = l((e) => {
963
+ let t = i || _[e], n = b[e];
964
+ return t ? Math.min(n, lt) : Math.min(n, ct);
965
+ }, [
966
+ i,
967
+ _,
968
+ b
969
+ ]), w = f(() => Math.max(...Array(7).fill(0).map((e, t) => S(t))), [S]), T = f(() => me(w, ut, dt), [w]), E = w >= lt && x > lt, D = l((e) => {
970
+ if (!i) {
971
+ a?.(!0);
972
+ return;
973
+ }
974
+ v((t) => {
975
+ let n = [...t];
976
+ return n[e] = !n[e], n;
977
+ });
978
+ }, [i, a]);
979
+ return x === 0 ? null : /* @__PURE__ */ s("div", {
980
+ className: "bsy-week-allday-section",
981
+ children: [/* @__PURE__ */ o("div", {
982
+ className: "bsy-week-allday-section__main",
983
+ children: /* @__PURE__ */ o("div", {
984
+ ref: d,
985
+ className: h("bsy-week-allday-section__events-container", { "bsy-week-allday-section__events-container--scroll": E }),
986
+ style: { maxHeight: `${T}px` },
987
+ children: /* @__PURE__ */ o("div", {
988
+ className: "bsy-week-allday-section__grid",
989
+ style: { gridTemplateRows: `repeat(${w}, ${ut}px)` },
990
+ children: y.map((e) => /* @__PURE__ */ o($, {
991
+ event: e.event,
992
+ eventIndex: e.event.sourceIndex,
993
+ onClick: n,
994
+ variant: "allDay",
995
+ position: he(e)
996
+ }, e.event.id))
997
+ })
998
+ })
999
+ }), i ? null : /* @__PURE__ */ o("div", {
1000
+ className: "bsy-week-allday-section__toggle-bar",
1001
+ children: Array(7).fill(0).map((t, n) => {
1002
+ let r = b[n], i = _[n], a = r > ct, l = r - ct;
1003
+ return /* @__PURE__ */ o("div", {
1004
+ className: "bsy-week-allday-section__toggle-cell",
1005
+ children: a ? /* @__PURE__ */ s("button", {
1006
+ type: "button",
1007
+ className: "bsy-week-allday-section__toggle-btn",
1008
+ onClick: () => D(n),
1009
+ "aria-label": i ? c("collapse") : c("remainingCount", { count: l }),
1010
+ children: [/* @__PURE__ */ o("span", {
1011
+ className: "bsy-week-allday-section__toggle-icon",
1012
+ children: i ? /* @__PURE__ */ o(e, {
1013
+ name: "arrow-up",
1014
+ size: 12
1015
+ }) : /* @__PURE__ */ o(e, {
1016
+ name: "arrow-down",
1017
+ size: 12
1018
+ })
1019
+ }), /* @__PURE__ */ o("span", {
1020
+ className: "bsy-week-allday-section__toggle-text",
1021
+ children: i ? c("collapse") : c("remainingCount", { count: l })
1022
+ })]
1023
+ }) : null
1024
+ }, n);
1025
+ })
1026
+ })]
1027
+ });
1028
+ }, mt = ({ weekStart: e }) => {
1029
+ let t = C((e) => e.formatMessage), n = C((e) => e.timeZone);
1030
+ return /* @__PURE__ */ o("div", {
1031
+ className: "bsy-week-header",
1032
+ children: f(() => Array.from({ length: 7 }, (r, i) => {
1033
+ let a = e.add(i, "day"), o = J(n), s = a.isSame(o, "day"), c = a.isBefore(o, "day");
1034
+ return {
1035
+ dayName: t(`weekday.${i}`),
1036
+ dayNumber: R(a, t, n),
1037
+ isToday: s,
1038
+ isPast: c
1039
+ };
1040
+ }), [
1041
+ e,
1042
+ n,
1043
+ t
1044
+ ]).map((e, t) => /* @__PURE__ */ s("div", {
1045
+ className: h("bsy-week-header__day", {
1046
+ "bsy-week-header__day--today": e.isToday,
1047
+ "bsy-week-header__day--past": e.isPast
1048
+ }),
1049
+ children: [/* @__PURE__ */ o("div", {
1050
+ className: "bsy-week-header__day-name",
1051
+ children: e.dayName
1052
+ }), /* @__PURE__ */ o("div", {
1053
+ className: "bsy-week-header__day-number",
1054
+ children: e.dayNumber
1055
+ })]
1056
+ }, t))
1057
+ });
1058
+ }, ht = ({ events: t = [] }) => {
1059
+ let n = C((e) => e.formatMessage), r = C((e) => e.currentDate), i = C((e) => e.axis), a = C((e) => e.allowAdd), c = C((e) => e.timeZone), u = C((e) => e.onEventClick), d = C((e) => e.onAddClick), [p, h] = m(!1), g = f(() => F(r, c), [r, c]), _ = f(() => K(i), [i]), v = f(() => q(_), [_]), y = f(() => ce(c), [c]), { allDayEvents: b, timedEvents: x } = f(() => fe(t, c), [t, c]), S = f(() => ke(x, g, _, c), [
1060
+ x,
1061
+ g,
1062
+ _,
1063
+ c
1064
+ ]), w = l((e) => {
1065
+ h(e);
1066
+ }, []), T = l(() => {
1067
+ h(!1);
1068
+ }, []), E = l((e, t) => {
1069
+ if (!d) return;
1070
+ let n = g.add(e, "day").startOf("day"), i = n.add(t * _.interval, "minute"), a = n.hour(23).minute(59).second(0).millisecond(0), o = i.add(_.interval, "minute"), s = o.isAfter(a) ? a : o;
1071
+ d({
1072
+ startTime: i.valueOf(),
1073
+ endTime: s.valueOf(),
1074
+ anchorDate: r,
1075
+ dayIndex: e,
1076
+ slotIndex: t,
1077
+ mode: "week"
1078
+ });
1079
+ }, [
1080
+ d,
1081
+ g,
1082
+ _.interval,
1083
+ r
1084
+ ]);
1085
+ return /* @__PURE__ */ s("div", {
1086
+ className: "bsy-calendar-week",
1087
+ children: [/* @__PURE__ */ s("div", {
1088
+ className: "bsy-calendar-week__header-section",
1089
+ children: [/* @__PURE__ */ s("div", {
1090
+ className: "bsy-calendar-week__timezone-label",
1091
+ children: [y ? /* @__PURE__ */ o("span", { children: y }) : null, p ? /* @__PURE__ */ o("button", {
1092
+ type: "button",
1093
+ className: "bsy-calendar-week__collapse-btn",
1094
+ onClick: T,
1095
+ title: n("collapse"),
1096
+ "aria-label": n("collapse"),
1097
+ children: /* @__PURE__ */ o(e, {
1098
+ name: "arrow-up",
1099
+ size: 16
1100
+ })
1101
+ }) : null]
1102
+ }), /* @__PURE__ */ s("div", {
1103
+ className: "bsy-calendar-week__header-content",
1104
+ children: [/* @__PURE__ */ o(mt, { weekStart: g }), /* @__PURE__ */ o(pt, {
1105
+ events: b,
1106
+ onClick: u,
1107
+ weekStart: g,
1108
+ isGloballyExpanded: p,
1109
+ onExpandChange: w
1110
+ })]
1111
+ })]
1112
+ }), /* @__PURE__ */ o("div", {
1113
+ className: "bsy-calendar-week__scroll-container",
1114
+ children: /* @__PURE__ */ s("div", {
1115
+ className: "bsy-calendar-week__body",
1116
+ style: { height: v },
1117
+ children: [/* @__PURE__ */ o(Ke, { zoomConfig: _ }), /* @__PURE__ */ s("div", {
1118
+ className: "bsy-calendar-week__grid",
1119
+ children: [S.map((e, t) => /* @__PURE__ */ s("div", {
1120
+ className: "bsy-calendar-week__day-column",
1121
+ children: [/* @__PURE__ */ o(qe, {
1122
+ zoomConfig: _,
1123
+ rowAction: a ? {
1124
+ tooltip: n("addRecord"),
1125
+ onClick: (e) => E(t, e)
1126
+ } : void 0
1127
+ }), /* @__PURE__ */ o("div", {
1128
+ className: "bsy-calendar-week__day-events",
1129
+ children: e.map((e) => /* @__PURE__ */ o($, {
1130
+ event: e.event,
1131
+ eventIndex: e.event.sourceIndex,
1132
+ onClick: u,
1133
+ variant: "timed",
1134
+ position: ge(e)
1135
+ }, e.event.id))
1136
+ })]
1137
+ }, t)), /* @__PURE__ */ o(Xe, {
1138
+ currentDate: r,
1139
+ zoomConfig: _,
1140
+ weekStart: g,
1141
+ timeZone: c
1142
+ })]
1143
+ })]
1144
+ })
1145
+ })]
1146
+ });
1147
+ }, gt = () => {
1148
+ let e = C((e) => e.formatMessage);
1149
+ return /* @__PURE__ */ o("div", {
1150
+ className: "bsy-calendar-view-month-header",
1151
+ children: Array.from({ length: 7 }, (t, n) => e(`weekday.${n}`)).map((e, t) => /* @__PURE__ */ o("div", {
1152
+ className: "bsy-calendar-view-month-header__day",
1153
+ children: e
1154
+ }, t))
1155
+ });
1156
+ }, _t = ({ date: t, isCurrentMonth: n, today: r, cellRef: a }) => {
1157
+ let c = C((e) => e.formatMessage), u = C((e) => e.allowAdd), d = C((e) => e.onAddClick), p = C((e) => e.currentDate), m = t.isSame(r, "day"), g = f(() => R(t, c), [t, c]), _ = l(() => {
1158
+ if (!d) return;
1159
+ let e = t.startOf("day"), n = t.add(1, "day").startOf("day");
1160
+ d({
1161
+ startTime: e.toISOString(),
1162
+ endTime: n.toISOString(),
1163
+ anchorDate: p,
1164
+ mode: "month"
1165
+ });
1166
+ }, [
1167
+ d,
1168
+ t,
1169
+ p
1170
+ ]);
1171
+ return /* @__PURE__ */ o("div", {
1172
+ ref: a,
1173
+ className: h("bsy-calendar-view-month-cell", { "bsy-calendar-view-month-cell--other-month": !n }),
1174
+ children: /* @__PURE__ */ s("div", {
1175
+ className: "bsy-calendar-view-month-cell__header",
1176
+ children: [/* @__PURE__ */ o("span", {
1177
+ className: h("bsy-calendar-view-month-cell__date", { "bsy-calendar-view-month-cell__date--today": m }),
1178
+ children: g
1179
+ }), u ? /* @__PURE__ */ o(i, {
1180
+ content: c("addRecord"),
1181
+ placement: "top",
1182
+ children: /* @__PURE__ */ o("button", {
1183
+ type: "button",
1184
+ className: "bsy-calendar-view-month-cell__add-btn",
1185
+ onClick: _,
1186
+ "aria-label": c("addRecord"),
1187
+ children: /* @__PURE__ */ o(e, {
1188
+ name: "add",
1189
+ className: "bsy-calendar-view-month-cell__add-btn-icon",
1190
+ size: 16
1191
+ })
1192
+ })
1193
+ }) : null]
1194
+ })
1195
+ });
1196
+ }, vt = ({ date: t, events: n, onEventClick: r, onClose: i }) => {
1197
+ let a = C((e) => e.formatMessage);
1198
+ return /* @__PURE__ */ s("div", {
1199
+ className: "bsy-calendar-view-month-cell-popover",
1200
+ children: [/* @__PURE__ */ s("div", {
1201
+ className: "bsy-calendar-view-month-cell-popover__header",
1202
+ children: [/* @__PURE__ */ s("span", {
1203
+ className: "bsy-calendar-view-month-cell-popover__title",
1204
+ children: [
1205
+ a("monthDay", {
1206
+ month: t.month() + 1,
1207
+ day: t.date()
1208
+ }),
1209
+ " ",
1210
+ a(`weekday.${(t.day() + 6) % 7}`)
1211
+ ]
1212
+ }), /* @__PURE__ */ o("button", {
1213
+ type: "button",
1214
+ className: "bsy-calendar-view-month-cell-popover__close",
1215
+ onClick: i,
1216
+ "aria-label": a("close"),
1217
+ children: /* @__PURE__ */ o(e, {
1218
+ name: "close",
1219
+ size: 16
1220
+ })
1221
+ })]
1222
+ }), /* @__PURE__ */ o("div", {
1223
+ className: "bsy-calendar-view-month-cell-popover__list",
1224
+ children: n.map((e) => /* @__PURE__ */ o("div", {
1225
+ className: "bsy-calendar-view-month-cell-popover__item",
1226
+ children: /* @__PURE__ */ o($, {
1227
+ event: e,
1228
+ eventIndex: e.sourceIndex,
1229
+ variant: "allDay",
1230
+ onClick: r,
1231
+ disableGlobalHover: !0,
1232
+ placement: "right"
1233
+ })
1234
+ }, e.id))
1235
+ })]
1236
+ });
1237
+ }, yt = {
1238
+ "--calendar-background-color": "backgroundColor",
1239
+ "--calendar-background-image": "backgroundImage",
1240
+ "--calendar-background-position": "backgroundPosition",
1241
+ "--calendar-background-size": "backgroundSize",
1242
+ "--calendar-background-repeat": "backgroundRepeat"
1243
+ }, bt = [
1244
+ "--calendar-title-color",
1245
+ "--calendar-schedule-border",
1246
+ "--calendar-schedule-bg",
1247
+ "--calendar-schedule-hover"
1248
+ ], xt = (e) => {
1249
+ let t = e?.closest?.(".bsy-calendar-view");
1250
+ if (!t) return;
1251
+ let n = getComputedStyle(t), r = {};
1252
+ return Object.entries(yt).forEach(([e, t]) => {
1253
+ let i = n.getPropertyValue(e).trim();
1254
+ i && (r[t] = i);
1255
+ }), bt.forEach((e) => {
1256
+ let t = n.getPropertyValue(e).trim();
1257
+ t && (r[e] = t);
1258
+ }), Object.keys(r).length > 0 ? r : void 0;
1259
+ }, St = ({ dayIndex: e, date: t, hiddenCount: n, cellEvents: r, onEventClick: a }) => {
1260
+ let s = C((e) => e.formatMessage), [c, u] = m(!1), [d, f] = m(void 0), g = p(null), _ = l(() => {
1261
+ u(!1);
1262
+ }, []), v = l((e) => {
1263
+ e && f(xt(g.current)), u(e);
1264
+ }, []), y = {
1265
+ position: "absolute",
1266
+ bottom: 4,
1267
+ left: `${100 / 7 * e}%`,
1268
+ width: "fit-content"
1269
+ }, b = e === 0, x = s("moreEvents", { count: n });
1270
+ return /* @__PURE__ */ o(i, {
1271
+ trigger: "click",
1272
+ visible: c,
1273
+ onVisibleChange: v,
1274
+ showArrow: !1,
1275
+ widthMode: "content",
1276
+ maxWidth: 300,
1277
+ offset: 6,
1278
+ placement: "right",
1279
+ style: {
1280
+ borderRadius: "10px",
1281
+ padding: "20px 10px",
1282
+ backgroundColor: "#fff",
1283
+ boxShadow: "0 0 12px 0 rgba(0, 0, 0, 0.08)",
1284
+ ...d
1285
+ },
1286
+ content: /* @__PURE__ */ o(vt, {
1287
+ date: t,
1288
+ events: r,
1289
+ onEventClick: a,
1290
+ onClose: _
1291
+ }),
1292
+ children: /* @__PURE__ */ o("button", {
1293
+ ref: g,
1294
+ type: "button",
1295
+ className: h("bsy-calendar-view-more-btn", b && "bsy-calendar-view-more-btn--first", c && "bsy-calendar-view-more-btn--active"),
1296
+ style: y,
1297
+ "aria-label": x,
1298
+ children: x
1299
+ })
1300
+ });
1301
+ }, Ct = ({ weekSegments: e, hiddenScheduleIds: t, maxVisibleRows: n, onEventClick: r, weekDates: i, dayEventsByWeek: a }) => {
1302
+ let { hiddenCounts: c, effectiveMaxRowsPerDay: l } = f(() => {
1303
+ let r = Ve(e, t, n);
1304
+ return {
1305
+ hiddenCounts: r,
1306
+ effectiveMaxRowsPerDay: r.map((e) => e > 0 && n > 1 ? n - 1 : n)
1307
+ };
1308
+ }, [
1309
+ e,
1310
+ t,
1311
+ n
1312
+ ]);
1313
+ return /* @__PURE__ */ s("div", {
1314
+ className: "bsy-calendar-view-week-event-layer",
1315
+ children: [f(() => e.filter((e) => !(t.has(e.event.id) || e.row >= n || e.row >= l[e.startCol])).map((e) => ({
1316
+ ...e,
1317
+ position: {
1318
+ mode: "month-absolute",
1319
+ ...Pe(e)
1320
+ },
1321
+ visual: {
1322
+ continuesLeft: !e.isStart,
1323
+ continuesRight: !e.isEnd,
1324
+ showTitle: e.isStart || e.isWeekStart
1325
+ }
1326
+ })), [
1327
+ e,
1328
+ t,
1329
+ n,
1330
+ l
1331
+ ]).map((e) => /* @__PURE__ */ o($, {
1332
+ event: e.event,
1333
+ eventIndex: e.event.sourceIndex,
1334
+ variant: "allDay",
1335
+ onClick: r,
1336
+ position: e.position,
1337
+ visual: e.visual
1338
+ }, `${e.event.id}-${e.startCol}`)), c.map((e, t) => e > 0 ? /* @__PURE__ */ o(St, {
1339
+ dayIndex: t,
1340
+ date: i[t],
1341
+ hiddenCount: e,
1342
+ cellEvents: a?.[t] || [],
1343
+ onEventClick: r
1344
+ }, t) : null)]
1345
+ });
1346
+ }, wt = ({ events: e = [] }) => {
1347
+ let t = C((e) => e.currentDate), n = C((e) => e.onEventClick), r = C((e) => e.timeZone), i = f(() => U(t, r), [t, r]), a = i.length / 7, c = f(() => J(r), [r]), [l, d] = m(3), h = p(null);
1348
+ u(() => {
1349
+ if (!h.current) return;
1350
+ let e = null, t = new ResizeObserver((t) => {
1351
+ e && cancelAnimationFrame(e), e = requestAnimationFrame(() => {
1352
+ let e = t[0]?.contentRect?.height ?? h.current?.getBoundingClientRect().height;
1353
+ if (!e) return;
1354
+ let { HEADER_HEIGHT: n, SLOT_HEIGHT: r, SLOT_GAP: i } = Ne, a = e - n, o = r + i, s = Math.max(1, Math.floor(a / o));
1355
+ d((e) => e === s ? e : s);
1356
+ });
1357
+ });
1358
+ return t.observe(h.current), () => {
1359
+ e && cancelAnimationFrame(e), t.disconnect();
1360
+ };
1361
+ }, []);
1362
+ let { weekLayouts: g, eventRowMap: _, gridEvents: v } = f(() => {
1363
+ let t = i[0];
1364
+ return Be(e, t, a, r);
1365
+ }, [
1366
+ e,
1367
+ i,
1368
+ a,
1369
+ r
1370
+ ]), y = f(() => {
1371
+ let t = i[0];
1372
+ return ze(_, e, t, a * 7, l, v, r);
1373
+ }, [
1374
+ _,
1375
+ e,
1376
+ i,
1377
+ a,
1378
+ l,
1379
+ v,
1380
+ r
1381
+ ]), b = f(() => {
1382
+ let e = a * 7, t = Array.from({ length: e }, () => []);
1383
+ for (let e of v) for (let n = e.startDayIndex; n < e.endDayIndex; n++) t[n].push(e.event);
1384
+ return t;
1385
+ }, [v, a]);
1386
+ return /* @__PURE__ */ s("div", {
1387
+ className: "bsy-calendar-view-month",
1388
+ children: [/* @__PURE__ */ o(gt, {}), /* @__PURE__ */ o("div", {
1389
+ className: "bsy-calendar-view-month__grid",
1390
+ children: Array.from({ length: a }, (e, a) => /* @__PURE__ */ s("div", {
1391
+ className: "bsy-calendar-view-month__week",
1392
+ children: [Array.from({ length: 7 }, (e, n) => {
1393
+ let s = i[a * 7 + n], l = a === 0 && n === 0;
1394
+ return /* @__PURE__ */ o(_t, {
1395
+ date: s,
1396
+ isCurrentMonth: ie(s, t, r),
1397
+ today: c,
1398
+ cellRef: l ? h : void 0
1399
+ }, n);
1400
+ }), /* @__PURE__ */ o(Ct, {
1401
+ weekSegments: g[a],
1402
+ hiddenScheduleIds: y,
1403
+ maxVisibleRows: l,
1404
+ onEventClick: n,
1405
+ weekDates: i.slice(a * 7, a * 7 + 7),
1406
+ dayEventsByWeek: b.slice(a * 7, a * 7 + 7)
1407
+ })]
1408
+ }, a))
1409
+ })]
1410
+ });
1411
+ }, Tt = (e) => e.startsWith("calendar.") ? e : `calendar.${e}`, Et = (e, t, n) => {
1412
+ let r = {};
1413
+ return e && (r["--calendar-schedule-border"] = e), t && (r["--calendar-schedule-bg"] = t), n && (r["--calendar-schedule-hover"] = n), r;
1414
+ }, Dt = (e) => {
1415
+ if (!e) return {};
1416
+ let t = be(e);
1417
+ return Et(e, t.normal, t.hover);
1418
+ }, Ot = {
1419
+ center: {
1420
+ backgroundPosition: "50%",
1421
+ backgroundSize: "contain"
1422
+ },
1423
+ stretch: {
1424
+ backgroundPosition: "50%",
1425
+ backgroundSize: "cover"
1426
+ },
1427
+ masterDrawingCenter: {
1428
+ backgroundPosition: "50%",
1429
+ backgroundSize: "100% 100%"
1430
+ }
1431
+ }, kt = (e) => {
1432
+ let t = {};
1433
+ if (n(t, "--calendar-background-color", e.colorBgContainer), e.panelBgImage) {
1434
+ let n = Ot[e.panelBgImagePosition ?? "center"] ?? Ot.center;
1435
+ t["--calendar-background-image"] = `url(${e.panelBgImage})`, t["--calendar-background-position"] = n.backgroundPosition, t["--calendar-background-size"] = n.backgroundSize, t["--calendar-background-repeat"] = "no-repeat";
1436
+ }
1437
+ return t;
1438
+ }, At = (e, t) => {
1439
+ let r = { ...Dt(t) };
1440
+ return !e || typeof e != "object" ? r : (Object.assign(r, kt(e)), n(r, "--calendar-title-color", e.colorText), n(r, "--calendar-over-title-color", e.colorTextTertiary), n(r, "--calendar-specifically-color", e.colorTextQuaternary ?? e.colorTextTertiary), n(r, "--calendar-header-background", e.colorFillSecondary), n(r, "--calendar-highlight-color", e.colorPrimary), n(r, "--calendar-highlight-text-color", e.colorPrimaryText), n(r, "--calendar-border-color", e.colorSplit), n(r, "--calendar-more-record-color", e.colorLink), (e.eventBorderColor || e.eventBg || e.eventBgHover) && Object.assign(r, Et(e.eventBorderColor, e.eventBg, e.eventBgHover)), r);
1441
+ }, jt = (e) => e.colorText !== void 0 || e.colorPrimary !== void 0 || e.colorFillSecondary !== void 0, Mt = (e) => e.datePickerColorBgContainer !== void 0 || e.datePickerWeekRangeBg !== void 0 || e.colorPrimary !== void 0 || e.colorText !== void 0 || e.colorTextTertiary !== void 0 || e.colorTextQuaternary !== void 0, Nt = (e) => {
1442
+ if (!(!e || !jt(e))) return {
1443
+ colorText: e.colorText,
1444
+ itemSelectedBg: e.colorPrimary,
1445
+ itemHoverBg: e.colorPrimary,
1446
+ itemHoverBorder: e.colorPrimary,
1447
+ trackBg: e.colorFillSecondary
1448
+ };
1449
+ }, Pt = (e) => {
1450
+ if (!(!e || !Mt(e))) return {
1451
+ colorBgContainer: e.datePickerColorBgContainer,
1452
+ colorPrimary: e.colorPrimary,
1453
+ headerColor: e.colorText,
1454
+ headerHoverColor: e.colorPrimary,
1455
+ colorText: e.colorText,
1456
+ colorTextTertiary: e.colorTextTertiary ?? e.colorTextQuaternary,
1457
+ cellSelectedBg: e.colorPrimary,
1458
+ weekRangeBg: e.datePickerWeekRangeBg
1459
+ };
1460
+ }, Ft = (e) => {
1461
+ let t = {
1462
+ colorBgContainer: e.background?.color,
1463
+ colorText: e.titleColor,
1464
+ colorTextTertiary: e.overTitleColor,
1465
+ colorFillSecondary: e.headerBackground,
1466
+ colorPrimary: e.highlightColor,
1467
+ colorLink: e.moreRecord,
1468
+ colorTextQuaternary: e.specificallyColor,
1469
+ datePickerColorBgContainer: e.dataChooseBackgroundColor ?? e.dataChooseBackroundColor,
1470
+ datePickerWeekRangeBg: e.weekRangeBackgroundColor ?? e.weekRangeBackroundColor,
1471
+ eventBorderColor: e.scheduleColor?.verticalBackground,
1472
+ eventBg: e.scheduleColor?.horizontalBackground,
1473
+ eventBgHover: e.scheduleColor?.horizontalBackgroundHover
1474
+ };
1475
+ return e.background?.type === "image" && e.background.image && (t.panelBgImage = e.background.image, t.panelBgImagePosition = e.background.position ?? "center"), t;
1476
+ }, It = (e) => {
1477
+ let { data: n = [], timeZone: r, defaultMode: i = "week", modes: a = Q, color: c, theme: d, axis: h = "medium", allowAdd: g = !1, className: _, header: v = !0, tooltip: x, onChange: S, onPanelChange: C, onEventClick: w, onAddClick: T } = e, { t: E } = t(), D = l((e, t) => E(Tt(e), t), [E]), O = f(() => {
1478
+ let e = (Array.isArray(a) ? a : Q).filter((e) => Q.includes(e));
1479
+ return e.length > 0 ? e : Q;
1480
+ }, [a]), k = O.includes(i) ? i : O[0], A = Object.prototype.hasOwnProperty.call(e, "mode"), [j, M] = m(k), N = A && e.mode !== void 0 ? e.mode : j, P = O.includes(N) ? N : O[0];
1481
+ u(() => {
1482
+ !A && !O.includes(j) && M(O[0]);
1483
+ }, [
1484
+ j,
1485
+ A,
1486
+ O
1487
+ ]);
1488
+ let [F, I] = m(() => J(r).toDate()), [L, te] = m(null), R = p(null), z = l((e) => {
1489
+ I(e), S?.(e);
1490
+ }, [S]), B = f(() => ee(n, { timeZone: r }), [n, r]), V = f(() => {
1491
+ let { start: e, end: t } = ae(F, P, r);
1492
+ return !e?.isValid?.() || !t?.isValid?.() ? null : {
1493
+ mode: P,
1494
+ dates: [e, t]
1495
+ };
1496
+ }, [
1497
+ F,
1498
+ P,
1499
+ r
1500
+ ]), H = l((e, t) => {
1501
+ if (!e?.[0]?.isValid?.() || !e?.[1]?.isValid?.()) return;
1502
+ let n = `${t}:${e[0].valueOf()}:${e[1].valueOf()}`;
1503
+ R.current !== n && (R.current = n, C?.(e, t));
1504
+ }, [C]);
1505
+ u(() => {
1506
+ V && H([V.dates[0], V.dates[1]], V.mode);
1507
+ }, [V, H]);
1508
+ let U = l(() => {
1509
+ z(J(r).toDate());
1510
+ }, [z, r]), W = l(() => {
1511
+ z(ne(F, P, -1, r));
1512
+ }, [
1513
+ P,
1514
+ F,
1515
+ z,
1516
+ r
1517
+ ]), re = l(() => {
1518
+ z(ne(F, P, 1, r));
1519
+ }, [
1520
+ P,
1521
+ F,
1522
+ z,
1523
+ r
1524
+ ]), ie = l((e) => {
1525
+ let t = O.includes(e) ? e : O[0], { start: n, end: i } = ae(F, t, r);
1526
+ A || M(t), n?.isValid?.() && i?.isValid?.() && H([n, i], t);
1527
+ }, [
1528
+ F,
1529
+ H,
1530
+ A,
1531
+ O,
1532
+ r
1533
+ ]);
1534
+ u(() => {
1535
+ N !== void 0 && O.includes(N);
1536
+ }, [N, O]);
1537
+ let G = f(() => At(d, c), [d, c]), K = f(() => Nt(d), [d]), oe = f(() => Pt(d), [d]), q = p(null), se = l(() => q.current ?? document.body, []), ce = f(() => ({
1538
+ currentDate: F,
1539
+ hoveredEventId: L,
1540
+ mode: P,
1541
+ modes: O,
1542
+ axis: h,
1543
+ allowAdd: g,
1544
+ timeZone: r,
1545
+ tooltip: x,
1546
+ segmentedTheme: K,
1547
+ datePickerTheme: oe,
1548
+ formatMessage: D,
1549
+ getPopupContainer: se,
1550
+ onEventClick: w,
1551
+ onAddClick: T
1552
+ }), [
1553
+ F,
1554
+ L,
1555
+ P,
1556
+ O,
1557
+ h,
1558
+ g,
1559
+ r,
1560
+ x,
1561
+ K,
1562
+ oe,
1563
+ D,
1564
+ se,
1565
+ w,
1566
+ T
1567
+ ]), le = f(() => ({
1568
+ setCurrentDate: z,
1569
+ setHoveredEventId: te,
1570
+ switchToDay: U,
1571
+ switchPrevDate: W,
1572
+ switchNextDate: re,
1573
+ onPanelChange: ie
1574
+ }), [
1575
+ z,
1576
+ U,
1577
+ W,
1578
+ re,
1579
+ ie
1580
+ ]);
1581
+ return /* @__PURE__ */ o(y.Provider, {
1582
+ value: ce,
1583
+ children: /* @__PURE__ */ o(b.Provider, {
1584
+ value: le,
1585
+ children: /* @__PURE__ */ o("div", {
1586
+ ref: q,
1587
+ className: _ ? `bsy-calendar-view ${_}` : "bsy-calendar-view",
1588
+ style: Object.keys(G).length > 0 ? G : void 0,
1589
+ children: /* @__PURE__ */ s("div", {
1590
+ className: "bsy-calendar-view__container",
1591
+ children: [v !== !1 && /* @__PURE__ */ o(Ge, {}), /* @__PURE__ */ o("div", {
1592
+ className: "bsy-calendar-view__body",
1593
+ children: (() => {
1594
+ switch (P) {
1595
+ case "day": return /* @__PURE__ */ o(st, { events: B });
1596
+ case "week": return /* @__PURE__ */ o(ht, { events: B });
1597
+ case "month": return /* @__PURE__ */ o(wt, { events: B });
1598
+ default: return null;
1599
+ }
1600
+ })()
1601
+ })]
1602
+ })
1603
+ })
1604
+ })
1605
+ });
1606
+ };
1607
+ //#endregion
1608
+ export { Ft as n, At as r, It as t };