@ibiz-template/vue3-components 0.7.26-alpha.1 → 0.7.26-alpha.3

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 (113) hide show
  1. package/dist/{index-_h-elF6t.js → index-8tGeBxpc.js} +1 -1
  2. package/dist/{index--XeT2CTZ.js → index-CDgQJyai.js} +1 -1
  3. package/dist/index-oBteffLj.js +4 -0
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{xlsx-util-jKx8FmtR.js → xlsx-util-8_6qMs6z.js} +1 -1
  7. package/es/_virtual/localeData.mjs +3 -0
  8. package/es/control/calendar/calendar.css +1 -1
  9. package/es/control/calendar/calendar.d.ts +2 -3
  10. package/es/control/calendar/calendar.mjs +104 -173
  11. package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -0
  12. package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +18 -0
  13. package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +175 -0
  14. package/es/control/calendar/components/calendar-daily/index.d.ts +18 -0
  15. package/es/control/calendar/components/calendar-daily/index.mjs +9 -0
  16. package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +154 -0
  17. package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +196 -0
  18. package/es/control/calendar/components/calendar-month/calendar-month.css +1 -0
  19. package/es/control/calendar/components/calendar-month/calendar-month.d.ts +18 -0
  20. package/es/control/calendar/components/calendar-month/calendar-month.mjs +242 -0
  21. package/es/control/calendar/components/calendar-month/index.d.ts +18 -0
  22. package/es/control/calendar/components/calendar-month/index.mjs +9 -0
  23. package/es/control/calendar/components/calendar-month/use-calendar-month.d.ts +3 -0
  24. package/es/control/calendar/components/calendar-month/use-calendar-month.mjs +384 -0
  25. package/es/control/calendar/components/calendar-week/calendar-week.css +1 -0
  26. package/es/control/calendar/components/calendar-week/calendar-week.d.ts +18 -0
  27. package/es/control/calendar/components/calendar-week/calendar-week.mjs +241 -0
  28. package/es/control/calendar/components/calendar-week/index.d.ts +18 -0
  29. package/es/control/calendar/components/calendar-week/index.mjs +9 -0
  30. package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +159 -0
  31. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +399 -0
  32. package/es/control/calendar/components/constant/event.d.ts +5 -0
  33. package/es/control/calendar/components/constant/event.mjs +8 -0
  34. package/es/control/calendar/components/constant/index.d.ts +1 -0
  35. package/es/control/calendar/components/constant/index.mjs +3 -0
  36. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -0
  37. package/es/control/calendar/components/custom-calendar/custom-calendar.d.ts +24 -0
  38. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +283 -0
  39. package/es/control/calendar/components/custom-calendar/index.d.ts +24 -0
  40. package/es/control/calendar/components/custom-calendar/index.mjs +12 -0
  41. package/es/control/calendar/components/custom-calendar/use-custom-calendar.d.ts +3 -0
  42. package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +264 -0
  43. package/es/control/calendar/components/interface/calendar-daily.d.ts +12 -0
  44. package/es/control/calendar/components/interface/calendar-daily.mjs +34 -0
  45. package/es/control/calendar/components/interface/calendar-month.d.ts +20 -0
  46. package/es/control/calendar/components/interface/calendar-month.mjs +43 -0
  47. package/es/control/calendar/components/interface/calendar-week.d.ts +12 -0
  48. package/es/control/calendar/components/interface/calendar-week.mjs +34 -0
  49. package/es/control/calendar/components/interface/common.d.ts +116 -0
  50. package/es/control/calendar/components/interface/common.mjs +1 -0
  51. package/es/control/calendar/components/interface/custom-calendar.d.ts +14 -0
  52. package/es/control/calendar/components/interface/custom-calendar.mjs +67 -0
  53. package/es/control/calendar/components/interface/index.d.ts +5 -0
  54. package/es/control/calendar/components/interface/index.mjs +7 -0
  55. package/es/control/calendar/components/util/index.d.ts +1 -0
  56. package/es/control/calendar/components/util/index.mjs +4 -0
  57. package/es/control/calendar/components/util/util.d.ts +89 -0
  58. package/es/control/calendar/components/util/util.mjs +281 -0
  59. package/es/control/calendar/index.d.ts +1 -2
  60. package/es/control/calendar/index.mjs +2 -0
  61. package/es/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.mjs +1 -0
  62. package/es/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +2 -2
  63. package/es/editor/date-picker/date-picker-editor.controller.mjs +3 -0
  64. package/es/editor/date-range/date-range-editor.controller.mjs +3 -0
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
  66. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +2 -0
  67. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +76 -21
  68. package/es/locale/en/index.d.ts +43 -0
  69. package/es/locale/en/index.mjs +44 -1
  70. package/es/locale/zh-CN/index.d.ts +39 -0
  71. package/es/locale/zh-CN/index.mjs +40 -1
  72. package/es/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.mjs +13 -0
  73. package/lib/_virtual/localeData.cjs +5 -0
  74. package/lib/control/calendar/calendar.cjs +104 -173
  75. package/lib/control/calendar/calendar.css +1 -1
  76. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +177 -0
  77. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -0
  78. package/lib/control/calendar/components/calendar-daily/index.cjs +14 -0
  79. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +198 -0
  80. package/lib/control/calendar/components/calendar-month/calendar-month.cjs +244 -0
  81. package/lib/control/calendar/components/calendar-month/calendar-month.css +1 -0
  82. package/lib/control/calendar/components/calendar-month/index.cjs +14 -0
  83. package/lib/control/calendar/components/calendar-month/use-calendar-month.cjs +386 -0
  84. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +243 -0
  85. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -0
  86. package/lib/control/calendar/components/calendar-week/index.cjs +14 -0
  87. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +401 -0
  88. package/lib/control/calendar/components/constant/event.cjs +14 -0
  89. package/lib/control/calendar/components/constant/index.cjs +11 -0
  90. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +285 -0
  91. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -0
  92. package/lib/control/calendar/components/custom-calendar/index.cjs +17 -0
  93. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +266 -0
  94. package/lib/control/calendar/components/interface/calendar-daily.cjs +37 -0
  95. package/lib/control/calendar/components/interface/calendar-month.cjs +46 -0
  96. package/lib/control/calendar/components/interface/calendar-week.cjs +37 -0
  97. package/lib/control/calendar/components/interface/common.cjs +3 -0
  98. package/lib/control/calendar/components/interface/custom-calendar.cjs +70 -0
  99. package/lib/control/calendar/components/interface/index.cjs +18 -0
  100. package/lib/control/calendar/components/util/index.cjs +42 -0
  101. package/lib/control/calendar/components/util/util.cjs +316 -0
  102. package/lib/control/calendar/index.cjs +2 -0
  103. package/lib/control/form/form-detail/form-mdctrl/mdctrl-container2/mdctrl-container2.cjs +1 -0
  104. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +2 -2
  105. package/lib/editor/date-picker/date-picker-editor.controller.cjs +3 -0
  106. package/lib/editor/date-range/date-range-editor.controller.cjs +3 -0
  107. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +76 -21
  108. package/lib/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
  109. package/lib/locale/en/index.cjs +44 -1
  110. package/lib/locale/zh-CN/index.cjs +40 -1
  111. package/lib/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.cjs +17 -0
  112. package/package.json +5 -5
  113. package/dist/index-yupCl1Un.js +0 -4
@@ -0,0 +1,386 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var dayjs = require('dayjs');
5
+ var localeData = require('../../../../node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.cjs');
6
+ var ramda = require('ramda');
7
+ var ElementPlus = require('element-plus');
8
+ require('../util/index.cjs');
9
+ var util = require('../util/util.cjs');
10
+
11
+ "use strict";
12
+ const useCalendarMonth = (props, emit) => {
13
+ dayjs.extend(localeData.default);
14
+ const firstDayOfWeek = dayjs.localeData().firstDayOfWeek();
15
+ const { lang } = ElementPlus.useLocale();
16
+ const now = dayjs().locale(lang.value);
17
+ const rows = vue.ref([]);
18
+ const multiple = vue.computed(() => props.multiple === true);
19
+ const selectedData = vue.ref([]);
20
+ const popVisible = vue.ref(true);
21
+ const tableTd = vue.ref();
22
+ const legends = vue.ref([]);
23
+ const selectedDay = vue.ref();
24
+ const hideHeader = vue.computed(() => props.hideHeader);
25
+ const isInRange = vue.computed(() => !!props.range && !!props.range.length);
26
+ const weekDays = vue.computed(() => {
27
+ const start = firstDayOfWeek;
28
+ let tempValue;
29
+ const tempWeeks = [
30
+ "sunday",
31
+ "monday",
32
+ "tuesday",
33
+ "wednesday",
34
+ "thursday",
35
+ "friday",
36
+ "saturday"
37
+ ];
38
+ if (start === 0) {
39
+ tempValue = tempWeeks.map((item) => {
40
+ return ibiz.i18n.t("control.calendar.calendarmonth.weeks.".concat(item));
41
+ });
42
+ } else {
43
+ tempValue = tempWeeks.slice(start).concat(tempWeeks.slice(0, start)).map((item) => {
44
+ return ibiz.i18n.t("control.calendar.calendarmonth.weeks.".concat(item));
45
+ });
46
+ }
47
+ return tempValue;
48
+ });
49
+ const getPrevMonthLastDays = (date, count) => {
50
+ const lastDay = date.subtract(1, "month").endOf("month").date();
51
+ return util.rangeArr(count).map(
52
+ (_, index) => lastDay - (count - index - 1)
53
+ );
54
+ };
55
+ const getMonthDays = (date) => {
56
+ const days = date.daysInMonth();
57
+ return util.rangeArr(days).map((_, index) => index + 1);
58
+ };
59
+ const toNestedArr = (days) => util.rangeArr(days.length / 7).map((index) => {
60
+ const start = index * 7;
61
+ return days.slice(start, start + 7);
62
+ });
63
+ const isDateRange = (curDate, event) => {
64
+ const startDate = new Date(event == null ? void 0 : event.beginTime);
65
+ const endDate = new Date(event == null ? void 0 : event.endTime);
66
+ startDate.setHours(0, 0, 0, 0);
67
+ endDate.setHours(0, 0, 0, 0);
68
+ return curDate && (event == null ? void 0 : event.beginTime) && (event == null ? void 0 : event.endTime) && curDate.getTime() <= new Date(endDate).getTime() && curDate.getTime() >= new Date(startDate).getTime() && startDate.getTime() !== endDate.getTime();
69
+ };
70
+ const handleCurDayEvent = (curDate, events, td) => {
71
+ let tempEvents = [];
72
+ const tempArray = [];
73
+ const todayEvents = [];
74
+ const rangeEvents = [];
75
+ const tempColors = /* @__PURE__ */ new Map();
76
+ const { firstDay, lastDay } = util.getCurWeekDates(curDate);
77
+ events.forEach((event) => {
78
+ const tempEvent = {};
79
+ Object.assign(tempEvent, event);
80
+ if (curDate && event.beginTime) {
81
+ if (!(event == null ? void 0 : event.endTime)) {
82
+ Object.assign(tempEvent, { endTime: event.beginTime });
83
+ }
84
+ if (util.isToday(tempEvent == null ? void 0 : tempEvent.beginTime, curDate) && util.isToday(tempEvent.beginTime, tempEvent.endTime)) {
85
+ todayEvents.push(tempEvent);
86
+ } else if (curDate && isDateRange(curDate, tempEvent)) {
87
+ Object.assign(tempEvent, { isRange: true });
88
+ rangeEvents.push(tempEvent);
89
+ } else if (!util.isToday(tempEvent.beginTime, tempEvent.endTime) && util.isTimeGreaterThan(curDate, tempEvent.beginTime) && (util.isDateInCurWeek(tempEvent.beginTime, firstDay, lastDay) || util.isDateInCurWeek(tempEvent.endTime, firstDay, lastDay))) {
90
+ Object.assign(tempEvent, { isShow: false });
91
+ rangeEvents.push(tempEvent);
92
+ }
93
+ }
94
+ });
95
+ rangeEvents.sort((a, b) => {
96
+ const type = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
97
+ return type;
98
+ });
99
+ todayEvents.sort((a, b) => {
100
+ const type = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
101
+ return type;
102
+ });
103
+ tempEvents = tempEvents.concat(rangeEvents, todayEvents);
104
+ tempEvents.forEach((event, index) => {
105
+ util.handleBkColor(tempColors, event.itemType);
106
+ const legendIndex = legends.value.findIndex(
107
+ (legendItem) => Object.is(legendItem.id, event.itemType)
108
+ );
109
+ const targetEvent = selectedData.value.find(
110
+ (item) => item.id === event.id
111
+ );
112
+ const tempEvent = {};
113
+ Object.assign(tempEvent, event);
114
+ Object.assign(tempEvent, {
115
+ beginTime: event.beginTime,
116
+ end: event.endTime,
117
+ id: event.id
118
+ });
119
+ if (event.endTime) {
120
+ const format = util.isToday(event == null ? void 0 : event.beginTime, event.endTime) ? "YYYY-MM-DD HH:mm" : "YYYY-MM-DD";
121
+ const timeRange = util.handleTimeRange(
122
+ event.beginTime,
123
+ event.endTime,
124
+ format,
125
+ "~"
126
+ );
127
+ Object.assign(tempEvent, { timeRange });
128
+ }
129
+ if (!(event == null ? void 0 : event.bkColor)) {
130
+ const bkColor = legendIndex !== -1 ? legends.value[legendIndex].bkcolor : util.handleBkColor(tempColors, event.itemType);
131
+ Object.assign(tempEvent, { bkColor });
132
+ }
133
+ if (!(event == null ? void 0 : event.color)) {
134
+ Object.assign(tempEvent, { color: "#FFF" });
135
+ }
136
+ if (util.isToday(event == null ? void 0 : event.beginTime, curDate) && util.isToday(event == null ? void 0 : event.beginTime, event == null ? void 0 : event.endTime)) {
137
+ Object.assign(tempEvent, { isToday: true });
138
+ }
139
+ if (isDateRange(curDate, event) && (curDate.getDay() === 0 || util.isToday(event == null ? void 0 : event.beginTime, curDate))) {
140
+ if (td && index < 3) {
141
+ const currentDay = curDate.getDay();
142
+ const saturdayDate = new Date(curDate);
143
+ saturdayDate.setDate(curDate.getDate() + (6 - currentDay));
144
+ const endDate = new Date(event == null ? void 0 : event.endTime);
145
+ let week = 1;
146
+ if (currentDay === 0) {
147
+ if (endDate.getTime() > saturdayDate.getTime() || util.isToday(endDate, saturdayDate)) {
148
+ week = 7;
149
+ } else {
150
+ week = endDate.getDay() + 1;
151
+ }
152
+ } else if (endDate.getTime() > saturdayDate.getTime()) {
153
+ week = 7 - currentDay;
154
+ } else {
155
+ week = endDate.getDay() - currentDay;
156
+ week += 1;
157
+ }
158
+ const tempWidth = week * 100;
159
+ let tempVal = 0;
160
+ const fillUp = week - 1;
161
+ let widthDifference = 0;
162
+ if (currentDay === 0) {
163
+ widthDifference = 5;
164
+ tempVal += widthDifference * fillUp;
165
+ if (endDate.getTime() > saturdayDate.getTime()) {
166
+ tempVal += 3;
167
+ } else {
168
+ tempVal += 2;
169
+ }
170
+ } else if (week > 1) {
171
+ widthDifference = 4;
172
+ tempVal += widthDifference * fillUp;
173
+ }
174
+ const width = "calc(".concat(tempWidth, "% + ").concat(tempVal, "px)");
175
+ Object.assign(tempEvent, { width });
176
+ }
177
+ Object.assign(tempEvent, { isShow: true });
178
+ }
179
+ if (targetEvent) {
180
+ Object.assign(tempEvent, { isSelectedEvent: true });
181
+ } else {
182
+ Object.assign(tempEvent, { isSelectedEvent: false });
183
+ }
184
+ if (legendIndex !== -1 && legends.value[legendIndex].isShow || legendIndex === -1) {
185
+ tempArray.push(tempEvent);
186
+ }
187
+ });
188
+ tempColors.clear();
189
+ return tempArray;
190
+ };
191
+ const handleMonthDraw = () => {
192
+ let days = [];
193
+ if (isInRange.value) {
194
+ const [start, end] = props.range;
195
+ const currentMonthRange = util.rangeArr(
196
+ end.date() - start.date() + 1
197
+ ).map((index) => {
198
+ const curDate = new Date(
199
+ start.year(),
200
+ start.month(),
201
+ start.date() + index
202
+ );
203
+ const curDayEvents = handleCurDayEvent(
204
+ curDate,
205
+ props.events,
206
+ tableTd.value
207
+ );
208
+ return {
209
+ text: start.date() + index,
210
+ type: "current",
211
+ events: curDayEvents,
212
+ curDate: dayjs(curDate)
213
+ };
214
+ });
215
+ let remaining = currentMonthRange.length % 7;
216
+ remaining = remaining === 0 ? 0 : 7 - remaining;
217
+ const nextMonthRange = util.rangeArr(remaining).map(
218
+ (_, index) => {
219
+ const curDate = new Date(start.year(), start.month() + 1, index + 1);
220
+ const curDayEvents = handleCurDayEvent(
221
+ curDate,
222
+ props.events,
223
+ tableTd.value
224
+ );
225
+ return {
226
+ text: index + 1,
227
+ type: "next",
228
+ events: curDayEvents,
229
+ curDate: dayjs(curDate)
230
+ };
231
+ }
232
+ );
233
+ days = currentMonthRange.concat(nextMonthRange);
234
+ } else {
235
+ const firstDay = props.date.startOf("month").day();
236
+ const prevMonthDays = getPrevMonthLastDays(
237
+ props.date,
238
+ (firstDay - firstDayOfWeek + 7) % 7
239
+ ).map((day) => {
240
+ const curDate = new Date(
241
+ props.date.year(),
242
+ props.date.month() - 1,
243
+ day
244
+ );
245
+ const curDayEvents = handleCurDayEvent(
246
+ curDate,
247
+ props.events,
248
+ tableTd.value
249
+ );
250
+ return {
251
+ text: day,
252
+ type: "prev",
253
+ events: curDayEvents,
254
+ curDate: dayjs(curDate)
255
+ };
256
+ });
257
+ const currentMonthDays = getMonthDays(props.date).map(
258
+ (day) => {
259
+ const curDate = new Date(props.date.year(), props.date.month(), day);
260
+ const curDayEvents = handleCurDayEvent(
261
+ curDate,
262
+ props.events,
263
+ tableTd.value
264
+ );
265
+ return {
266
+ text: day,
267
+ type: "current",
268
+ events: curDayEvents,
269
+ curDate: dayjs(curDate)
270
+ };
271
+ }
272
+ );
273
+ days = [...prevMonthDays, ...currentMonthDays];
274
+ const remaining = 7 - (days.length % 7 || 7);
275
+ const nextMonthDays = util.rangeArr(remaining).map(
276
+ (_, index) => {
277
+ const curDate = new Date(
278
+ props.date.year(),
279
+ props.date.month() + 1,
280
+ index + 1
281
+ );
282
+ const curDayEvents = handleCurDayEvent(
283
+ curDate,
284
+ props.events,
285
+ tableTd.value
286
+ );
287
+ return {
288
+ text: index + 1,
289
+ type: "next",
290
+ events: curDayEvents,
291
+ curDate: dayjs(curDate)
292
+ };
293
+ }
294
+ );
295
+ days = days.concat(nextMonthDays);
296
+ }
297
+ rows.value = toNestedArr(days);
298
+ };
299
+ const getFormattedDate = (day, type) => {
300
+ switch (type) {
301
+ case "prev":
302
+ return props.date.startOf("month").subtract(1, "month").date(day);
303
+ case "next":
304
+ return props.date.startOf("month").add(1, "month").date(day);
305
+ case "current":
306
+ return props.date.date(day);
307
+ default:
308
+ return null;
309
+ }
310
+ };
311
+ const handlePickDay = ({ text, type }) => {
312
+ const date = getFormattedDate(text, type);
313
+ selectedDay.value = date;
314
+ if (type === "prev" || type === "next") {
315
+ emit("pickEvent", date);
316
+ }
317
+ };
318
+ const getSlotData = ({ text, type, events }) => {
319
+ const day = getFormattedDate(text, type);
320
+ return {
321
+ isSelected: day.isSame(props.selectedDay),
322
+ type: "".concat(type, "-month"),
323
+ day: day.format("YYYY-MM-DD"),
324
+ date: day.toDate(),
325
+ events
326
+ };
327
+ };
328
+ const getCellClass = ({ text, type }) => {
329
+ const classes = [type];
330
+ if (type === "current") {
331
+ const date = getFormattedDate(text, type);
332
+ if (date.isSame(selectedDay.value, "day")) {
333
+ classes.push("is-selected");
334
+ }
335
+ if (date.isSame(now, "day")) {
336
+ classes.push("is-today");
337
+ }
338
+ }
339
+ return classes;
340
+ };
341
+ const eventClick = async (item, location) => {
342
+ const res = await util.handleEVentClick(
343
+ item,
344
+ location,
345
+ props.events,
346
+ multiple.value,
347
+ selectedData.value,
348
+ emit
349
+ );
350
+ const { tempSelectedData } = res;
351
+ selectedData.value = tempSelectedData;
352
+ handleMonthDraw();
353
+ };
354
+ const handleEventsMoreData = (cell) => {
355
+ let events = ramda.clone(cell.events);
356
+ const { curDate } = cell;
357
+ const tempEvents = [];
358
+ events = events.splice(3, events.length);
359
+ events.forEach((event) => {
360
+ if (curDate && isDateRange(new Date(curDate), event) || util.isToday(event.beginTime, event.endTime)) {
361
+ tempEvents.push(event);
362
+ }
363
+ });
364
+ return tempEvents;
365
+ };
366
+ return {
367
+ isInRange,
368
+ rows,
369
+ weekDays,
370
+ hideHeader,
371
+ tableTd,
372
+ legends,
373
+ selectedDay,
374
+ selectedData,
375
+ popVisible,
376
+ getFormattedDate,
377
+ handlePickDay,
378
+ getSlotData,
379
+ getCellClass,
380
+ eventClick,
381
+ handleMonthDraw,
382
+ handleEventsMoreData
383
+ };
384
+ };
385
+
386
+ exports.useCalendarMonth = useCalendarMonth;
@@ -0,0 +1,243 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('../interface/index.cjs');
6
+ var useCalendarWeek = require('./use-calendar-week.cjs');
7
+ require('./calendar-week.css');
8
+ require('../util/index.cjs');
9
+ var calendarWeek = require('../interface/calendar-week.cjs');
10
+ var util = require('../util/util.cjs');
11
+
12
+ "use strict";
13
+ const CalendarWeek = /* @__PURE__ */ vue.defineComponent({
14
+ name: "CalendarWeek",
15
+ props: calendarWeek.calendarWeekProps,
16
+ emits: calendarWeek.calendarWeekEmits,
17
+ setup(props, {
18
+ emit,
19
+ slots
20
+ }) {
21
+ const ns = vue3Util.useNamespace("calendar-week");
22
+ const {
23
+ drawData,
24
+ resizableHand,
25
+ rows,
26
+ weekDays,
27
+ curTimeTimer,
28
+ calendarWeek,
29
+ selectedData,
30
+ legends,
31
+ rowsHeader,
32
+ popVisible,
33
+ eventClick,
34
+ handleDrag,
35
+ handleDragStart,
36
+ handleCurTime,
37
+ initDrawData,
38
+ handleUIEvents
39
+ } = useCalendarWeek.useCalendarWeek(props, emit);
40
+ const hoverItem = vue.ref("");
41
+ props.controller._evt.on("onActive", () => {
42
+ popVisible.value = false;
43
+ });
44
+ vue.watch(() => props.selectedData, () => {
45
+ if (props.selectedData && props.selectedData.length > 0) {
46
+ const data = props.selectedData.length > selectedData.value.length ? props.selectedData : selectedData.value;
47
+ selectedData.value = data;
48
+ } else {
49
+ selectedData.value = [];
50
+ }
51
+ }, {
52
+ immediate: true,
53
+ deep: true
54
+ });
55
+ vue.watch(() => props.legends, () => {
56
+ legends.value = props.legends || [];
57
+ handleUIEvents();
58
+ }, {
59
+ immediate: true,
60
+ deep: true
61
+ });
62
+ vue.watch(() => props.events, () => {
63
+ handleUIEvents();
64
+ }, {
65
+ immediate: true,
66
+ deep: true
67
+ });
68
+ vue.onMounted(() => {
69
+ handleCurTime();
70
+ drawData.value = initDrawData();
71
+ curTimeTimer.value = setInterval(() => handleCurTime(), 1e3);
72
+ });
73
+ vue.onUnmounted(() => {
74
+ const timer = curTimeTimer.value;
75
+ if (timer) {
76
+ clearInterval(timer);
77
+ curTimeTimer.value = null;
78
+ }
79
+ });
80
+ const onMouseenter = (event) => {
81
+ hoverItem.value = String(event.id);
82
+ popVisible.value = true;
83
+ };
84
+ const onMouseleavee = () => {
85
+ hoverItem.value = "";
86
+ popVisible.value = false;
87
+ };
88
+ const renderEventItem = (location, eventBoxStyle, eventContentStyle, event, index, slotNme, classEName) => {
89
+ var _a;
90
+ return vue.createVNode("div", {
91
+ "key": index,
92
+ "class": [ns.em(classEName, "event-box")],
93
+ "style": eventBoxStyle,
94
+ "onMouseenter": () => onMouseenter(event),
95
+ "onMouseleave": onMouseleavee
96
+ }, [vue.createVNode("button", {
97
+ "class": [ns.em(classEName, "event-content"), event.isSelectedEvent ? "is-selected-event" : "", event.classname],
98
+ "onClick": () => eventClick(event, "head"),
99
+ "style": eventContentStyle
100
+ }, [slots[slotNme] ? (_a = slots[slotNme]) == null ? void 0 : _a.call(slots, {
101
+ data: event
102
+ }) : vue.createVNode("div", {
103
+ "class": [ns.em(classEName, "event-summary"), event.classname],
104
+ "title": location === "header" ? "".concat(event.text || "", " ").concat(event.timeRange || "") : ""
105
+ }, [event.icon && vue.createVNode("span", {
106
+ "class": [event.icon, ns.em(classEName, "event-icon")],
107
+ "style": {
108
+ color: event.bkColor
109
+ }
110
+ }, null), event.text && vue.createVNode("span", {
111
+ "class": [ns.em(classEName, "event-name")]
112
+ }, [event.text])]), location === "header" && event.isSelectedEvent ? vue.createVNode("span", {
113
+ "class": ["fa fa-check", ns.em(classEName, "check")]
114
+ }, null) : ""])]);
115
+ };
116
+ const renderPopover = (content, event) => {
117
+ if (!props.controller.state.showDetail) {
118
+ return content;
119
+ }
120
+ return vue.createVNode(vue.resolveComponent("el-popover"), {
121
+ "visible": popVisible.value && event.id === hoverItem.value,
122
+ "show-after": 1e3,
123
+ "offset": 4,
124
+ "width": "auto",
125
+ "popper-class": ns.e("event-popover"),
126
+ "placement": "right-start"
127
+ }, {
128
+ reference: () => content,
129
+ default: () => {
130
+ var _a;
131
+ return vue.createVNode("div", {
132
+ "class": [ns.em("event-popover", "body")]
133
+ }, [vue.createVNode("div", {
134
+ "class": [ns.em("event-popover", "close")],
135
+ "onClick": (el) => util.handlePopClose(el),
136
+ "innerHTML": util.closeIcon
137
+ }, null), vue.createVNode("div", {
138
+ "class": [ns.em("event-popover", "scroll")]
139
+ }, [(slots == null ? void 0 : slots.event) ? (_a = slots.event) == null ? void 0 : _a.call(slots, {
140
+ data: event
141
+ }) : vue.createVNode("div", {
142
+ "class": [ns.em("event-popover", "content")]
143
+ }, ["".concat(event.text || "", " ").concat(event.timeRange || "")])])]);
144
+ }
145
+ });
146
+ };
147
+ const renderHeader = () => {
148
+ return vue.createVNode("div", {
149
+ "class": [ns.e("header")],
150
+ "ref": (el) => {
151
+ resizableHand.value = el;
152
+ }
153
+ }, [vue.createVNode("div", {
154
+ "class": [ns.em("header", "dates")]
155
+ }, [vue.createVNode("div", {
156
+ "class": [ns.em("header", "date-cell-first")]
157
+ }, null), weekDays.value.map((weekDay) => vue.createVNode("div", {
158
+ "class": [ns.em("header", "date-cell")]
159
+ }, [vue.createVNode("div", {
160
+ "class": [ns.em("header", "date-week")]
161
+ }, [weekDay.caption]), vue.createVNode("div", {
162
+ "class": [ns.em("header", "date-day"), weekDay.isActivate ? "is-today" : ""]
163
+ }, [weekDay.day])]))]), vue.createVNode("div", {
164
+ "class": [ns.em("header", "events")]
165
+ }, [vue.createVNode("div", {
166
+ "class": [ns.em("header", "event-cell-first")]
167
+ }, [ibiz.i18n.t("control.calendar.calendardaily.tip")]), rowsHeader.value.map((item) => vue.createVNode("div", {
168
+ "class": [ns.em("header", "event-cell")]
169
+ }, [item.map((event, index) => {
170
+ const eventBoxStyle = {
171
+ top: "".concat(Number(index * 26) + 2, "px"),
172
+ left: "".concat(event.styleLeft),
173
+ width: "".concat(event == null ? void 0 : event.width)
174
+ };
175
+ const eventContentStyle = {
176
+ color: event.color,
177
+ background: event.bkColorFade
178
+ };
179
+ return event.isShow ? renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "header") : "";
180
+ })]))]), vue.createVNode("div", {
181
+ "class": ns.em("header", "resizable-handle"),
182
+ "draggable": "true",
183
+ "onDrag": (event) => handleDrag(event),
184
+ "onDragstart": (event) => handleDragStart(event)
185
+ }, [vue.createVNode("div", {
186
+ "class": ns.em("header", "resize-line")
187
+ }, null)])]);
188
+ };
189
+ const renderContent = () => {
190
+ return vue.createVNode("div", {
191
+ "class": [ns.e("scroll-area")]
192
+ }, [vue.createVNode("div", {
193
+ "class": ns.e("time-pane")
194
+ }, [vue.createVNode("div", {
195
+ "class": ns.em("time-pane", "time-labels")
196
+ }, [drawData.value.map((timescale) => vue.createVNode("div", {
197
+ "key": timescale,
198
+ "class": [ns.em("time-pane", "time-label")]
199
+ }, [timescale]))]), rows.value.map((item) => vue.createVNode("div", {
200
+ "class": ns.em("time-pane", "time-columns")
201
+ }, [drawData.value.map((timescale, index) => vue.createVNode("div", {
202
+ "key": timescale,
203
+ "class": [ns.em("time-pane", "time-column"), index === drawData.value.length - 1 && ns.em("time-pane", "time-column-last")]
204
+ }, null)), vue.createVNode("div", {
205
+ "class": ns.em("time-pane", "event-timed-container")
206
+ }, [vue.createVNode("div", {
207
+ "class": ns.em("time-pane", "container-scroll")
208
+ }, [item.map((event, index) => {
209
+ const eventBoxStyle = {
210
+ top: "".concat(event.styleTop, "px"),
211
+ left: "".concat(event.styleLeft),
212
+ height: "".concat(event.height, "px"),
213
+ width: "".concat(event.width),
214
+ "min-height": "".concat(event.height, "px"),
215
+ "z-index": event.zIndex
216
+ };
217
+ const eventContentStyle = {
218
+ background: event.bkColorFade,
219
+ "border-left": "3px solid ".concat(event.bkColor),
220
+ color: event.color
221
+ };
222
+ const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "", "time-pane");
223
+ return renderPopover(tempContent, event);
224
+ })])])]))])]);
225
+ };
226
+ return {
227
+ ns,
228
+ calendarWeek,
229
+ renderHeader,
230
+ renderContent
231
+ };
232
+ },
233
+ render() {
234
+ return vue.createVNode("div", {
235
+ "ref": (el) => {
236
+ this.calendarWeek = el;
237
+ },
238
+ "class": this.ns.b()
239
+ }, [this.renderHeader(), this.renderContent()]);
240
+ }
241
+ });
242
+
243
+ exports.CalendarWeek = CalendarWeek;
@@ -0,0 +1 @@
1
+ .ibiz-calendar-week{display:flex;flex:1;flex-direction:column;width:100%;height:100%;overflow:hidden}.ibiz-calendar-week__header{position:relative;z-index:100;display:flex;flex-direction:column;width:calc(100% - 7px);height:150px;min-height:150px}.ibiz-calendar-week__header--date-cell-first{width:90px;max-width:90px;height:100%;border-right:1px solid var(--ibiz-color-border);border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--event-cell-first{display:flex;align-items:center;justify-content:center;width:90px;max-width:90px;height:100%;padding-left:40px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--dates{display:flex;justify-content:space-between;width:100%;height:96px}.ibiz-calendar-week__header--date-cell{display:flex;flex:1;flex-direction:column;align-items:center;border-right:1px solid var(--ibiz-color-border);border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--date-week{width:100%;height:26px;margin-top:6px;text-align:center}.ibiz-calendar-week__header--date-day{display:flex;align-items:center;justify-content:center;width:50px;height:50px;margin-top:6px;font-weight:600;border:none;border-radius:50%}.ibiz-calendar-week__header--date-day.is-today{color:#fff;background:var(--ibiz-color-primary)}.ibiz-calendar-week__header--events{display:flex;flex:1;justify-content:space-between;width:100%;height:30px;overflow:hidden}.ibiz-calendar-week__header--event-cell{position:relative;top:0;left:0;flex:1;width:100%;height:100%;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__header--event-box{position:absolute}.ibiz-calendar-week__header--event-content{position:relative;z-index:2;width:100%;height:22px;padding-left:4px;cursor:pointer;background-color:var(--ibiz-color-primary);border:none;border-radius:4px;outline:0}.ibiz-calendar-week__header--event-summary{width:100%;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-week__header--resizable-handle{position:absolute;bottom:-6px;display:flex;align-items:center;width:100%;height:10PX;cursor:row-resize}.ibiz-calendar-week__header--resize-line{width:100%;height:1px;background-color:var(--ibiz-color-border)}.ibiz-calendar-week__header--check{position:absolute;top:50%;right:6px;color:var(--ibiz-color-primary);transform:translate(0,-50%)}.ibiz-calendar-week__scroll-area{flex:1;overflow:hidden scroll}.ibiz-calendar-week__time-pane{position:relative;display:flex;flex:1 1 0%;width:calc(100% - 3px);height:auto}.ibiz-calendar-week__time-pane--time-labels{position:sticky;left:0;width:90px;min-width:90px;padding:27px 0 27px 40px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-label{height:22px;margin-top:38px;line-height:22px;text-align:left}.ibiz-calendar-week__time-pane--time-label:nth-child(1){height:22px;margin-top:22px}.ibiz-calendar-week__time-pane--time-columns{position:relative;flex:1;padding-bottom:60px;border-right:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-column{height:60px;border-top:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--time-column:nth-child(1){border-top:none}.ibiz-calendar-week__time-pane--time-column-last{border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-week__time-pane--event-timed-container{position:absolute;top:0;width:100%;height:100%;overflow:hidden}.ibiz-calendar-week__time-pane--container-scroll{position:relative;top:0;width:100%;height:100%;overflow:auto;overflow:hidden}.ibiz-calendar-week__time-pane--event-box{position:absolute;width:auto;height:auto;padding:0 2px}.ibiz-calendar-week__time-pane--event-content{position:relative;z-index:3;width:100%;height:100%;padding:12px 8px;overflow:hidden;line-height:100%;text-align:left;cursor:pointer;border:none;outline:0}.ibiz-calendar-week__time-pane--event-content:active{animation:pulse 1s linear}.ibiz-calendar-week__time-pane--event-content.is-selected-event{border:1px solid var(--ibiz-color-primary)}.ibiz-calendar-week__time-pane--event-summary{width:100%;height:100%;overflow:hidden;line-height:30px;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-week__time-pane--event-summary>span{margin-right:4px}.ibiz-calendar-week__event-popover{position:relative;width:auto;height:auto;padding:0}.ibiz-calendar-week__event-popover.el-popover.el-popper{padding:24px 12px 8px}.ibiz-calendar-week__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-week__event-popover--scroll{width:auto;min-width:450px;height:auto;min-height:200px;overflow:auto}.ibiz-calendar-week__event-popover--close{position:absolute;top:8px;right:8px;cursor:pointer}.ibiz-calendar-week__event-popover--close:hover .el-icon{background:var(--ibiz-color-primary);border-radius:50%}.ibiz-calendar-week__event-popover--close:hover .el-icon svg{fill:#fff}.ibiz-calendar-week__event-popover .el-icon{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;font-size:20px}.ibiz-calendar-week__event-popover .el-icon svg{fill:var(--el-text-color-secondary)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.1)}100%{transform:scale(1)}}@keyframes move{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@@ -0,0 +1,14 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var vue3Util = require('@ibiz-template/vue3-util');
6
+ var calendarWeek = require('./calendar-week.cjs');
7
+
8
+ "use strict";
9
+ const IBizCalendarWeek = vue3Util.withInstall(calendarWeek.CalendarWeek, function(v) {
10
+ v.component(calendarWeek.CalendarWeek.name, calendarWeek.CalendarWeek);
11
+ });
12
+
13
+ exports.IBizCalendarWeek = IBizCalendarWeek;
14
+ exports.default = IBizCalendarWeek;