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

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 (111) 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-o58Mv9D4.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-Ux1_tuw5.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/editor/data-picker/ibiz-picker-link/ibiz-picker-link.mjs +2 -2
  62. package/es/editor/date-picker/date-picker-editor.controller.mjs +3 -0
  63. package/es/editor/date-range/date-range-editor.controller.mjs +3 -0
  64. package/es/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +2 -0
  66. package/es/editor/slider/ibiz-slider/ibiz-slider.mjs +76 -21
  67. package/es/locale/en/index.d.ts +43 -0
  68. package/es/locale/en/index.mjs +44 -1
  69. package/es/locale/zh-CN/index.d.ts +39 -0
  70. package/es/locale/zh-CN/index.mjs +40 -1
  71. package/es/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.mjs +13 -0
  72. package/lib/_virtual/localeData.cjs +5 -0
  73. package/lib/control/calendar/calendar.cjs +104 -173
  74. package/lib/control/calendar/calendar.css +1 -1
  75. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +177 -0
  76. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -0
  77. package/lib/control/calendar/components/calendar-daily/index.cjs +14 -0
  78. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +198 -0
  79. package/lib/control/calendar/components/calendar-month/calendar-month.cjs +244 -0
  80. package/lib/control/calendar/components/calendar-month/calendar-month.css +1 -0
  81. package/lib/control/calendar/components/calendar-month/index.cjs +14 -0
  82. package/lib/control/calendar/components/calendar-month/use-calendar-month.cjs +386 -0
  83. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +243 -0
  84. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -0
  85. package/lib/control/calendar/components/calendar-week/index.cjs +14 -0
  86. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +401 -0
  87. package/lib/control/calendar/components/constant/event.cjs +14 -0
  88. package/lib/control/calendar/components/constant/index.cjs +11 -0
  89. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +285 -0
  90. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -0
  91. package/lib/control/calendar/components/custom-calendar/index.cjs +17 -0
  92. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +266 -0
  93. package/lib/control/calendar/components/interface/calendar-daily.cjs +37 -0
  94. package/lib/control/calendar/components/interface/calendar-month.cjs +46 -0
  95. package/lib/control/calendar/components/interface/calendar-week.cjs +37 -0
  96. package/lib/control/calendar/components/interface/common.cjs +3 -0
  97. package/lib/control/calendar/components/interface/custom-calendar.cjs +70 -0
  98. package/lib/control/calendar/components/interface/index.cjs +18 -0
  99. package/lib/control/calendar/components/util/index.cjs +42 -0
  100. package/lib/control/calendar/components/util/util.cjs +316 -0
  101. package/lib/control/calendar/index.cjs +2 -0
  102. package/lib/editor/data-picker/ibiz-picker-link/ibiz-picker-link.cjs +2 -2
  103. package/lib/editor/date-picker/date-picker-editor.controller.cjs +3 -0
  104. package/lib/editor/date-range/date-range-editor.controller.cjs +3 -0
  105. package/lib/editor/slider/ibiz-slider/ibiz-slider.cjs +76 -21
  106. package/lib/editor/slider/ibiz-slider/ibiz-slider.css +1 -1
  107. package/lib/locale/en/index.cjs +44 -1
  108. package/lib/locale/zh-CN/index.cjs +40 -1
  109. package/lib/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/localeData.cjs +17 -0
  110. package/package.json +5 -5
  111. package/dist/index-yupCl1Un.js +0 -4
@@ -0,0 +1,154 @@
1
+ import type { SetupContext } from 'vue';
2
+ import { CalendarDailyEmits, CalendarDailyProps, IUIEvent } from '../interface';
3
+ export declare const useCalendarDaily: (props: CalendarDailyProps, emit: SetupContext<CalendarDailyEmits>['emit']) => {
4
+ drawData: import("vue").Ref<string[]>;
5
+ curTimeTimer: import("vue").Ref<any>;
6
+ curTimeTop: import("vue").Ref<number>;
7
+ curTimeVal: import("vue").Ref<string>;
8
+ events: import("vue").ComputedRef<IUIEvent[]>;
9
+ resizableHand: import("vue").Ref<any>;
10
+ calendarDaily: import("vue").Ref<any>;
11
+ selectedData: import("vue").Ref<{
12
+ beginTime: string | {
13
+ toString: () => string;
14
+ toDateString: () => string;
15
+ toTimeString: () => string;
16
+ toLocaleString: {
17
+ (): string;
18
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
19
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
20
+ };
21
+ toLocaleDateString: {
22
+ (): string;
23
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
24
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
25
+ };
26
+ toLocaleTimeString: {
27
+ (): string;
28
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
29
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
30
+ };
31
+ valueOf: () => number;
32
+ getTime: () => number;
33
+ getFullYear: () => number;
34
+ getUTCFullYear: () => number;
35
+ getMonth: () => number;
36
+ getUTCMonth: () => number;
37
+ getDate: () => number;
38
+ getUTCDate: () => number;
39
+ getDay: () => number;
40
+ getUTCDay: () => number;
41
+ getHours: () => number;
42
+ getUTCHours: () => number;
43
+ getMinutes: () => number;
44
+ getUTCMinutes: () => number;
45
+ getSeconds: () => number;
46
+ getUTCSeconds: () => number;
47
+ getMilliseconds: () => number;
48
+ getUTCMilliseconds: () => number;
49
+ getTimezoneOffset: () => number;
50
+ setTime: (time: number) => number;
51
+ setMilliseconds: (ms: number) => number;
52
+ setUTCMilliseconds: (ms: number) => number;
53
+ setSeconds: (sec: number, ms?: number | undefined) => number;
54
+ setUTCSeconds: (sec: number, ms?: number | undefined) => number;
55
+ setMinutes: (min: number, sec?: number | undefined, ms?: number | undefined) => number;
56
+ setUTCMinutes: (min: number, sec?: number | undefined, ms?: number | undefined) => number;
57
+ setHours: (hours: number, min?: number | undefined, sec?: number | undefined, ms?: number | undefined) => number;
58
+ setUTCHours: (hours: number, min?: number | undefined, sec?: number | undefined, ms?: number | undefined) => number;
59
+ setDate: (date: number) => number;
60
+ setUTCDate: (date: number) => number;
61
+ setMonth: (month: number, date?: number | undefined) => number;
62
+ setUTCMonth: (month: number, date?: number | undefined) => number;
63
+ setFullYear: (year: number, month?: number | undefined, date?: number | undefined) => number;
64
+ setUTCFullYear: (year: number, month?: number | undefined, date?: number | undefined) => number;
65
+ toUTCString: () => string;
66
+ toISOString: () => string;
67
+ toJSON: (key?: any) => string;
68
+ [Symbol.toPrimitive]: {
69
+ (hint: "default"): string;
70
+ (hint: "string"): string;
71
+ (hint: "number"): number;
72
+ (hint: string): string | number;
73
+ };
74
+ };
75
+ endTime: string | {
76
+ toString: () => string;
77
+ toDateString: () => string;
78
+ toTimeString: () => string;
79
+ toLocaleString: {
80
+ (): string;
81
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
82
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
83
+ };
84
+ toLocaleDateString: {
85
+ (): string;
86
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
87
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
88
+ };
89
+ toLocaleTimeString: {
90
+ (): string;
91
+ (locales?: string | string[] | undefined, options?: Intl.DateTimeFormatOptions | undefined): string;
92
+ (locales?: Intl.LocalesArgument, options?: Intl.DateTimeFormatOptions | undefined): string;
93
+ };
94
+ valueOf: () => number;
95
+ getTime: () => number;
96
+ getFullYear: () => number;
97
+ getUTCFullYear: () => number;
98
+ getMonth: () => number;
99
+ getUTCMonth: () => number;
100
+ getDate: () => number;
101
+ getUTCDate: () => number;
102
+ getDay: () => number;
103
+ getUTCDay: () => number;
104
+ getHours: () => number;
105
+ getUTCHours: () => number;
106
+ getMinutes: () => number;
107
+ getUTCMinutes: () => number;
108
+ getSeconds: () => number;
109
+ getUTCSeconds: () => number;
110
+ getMilliseconds: () => number;
111
+ getUTCMilliseconds: () => number;
112
+ getTimezoneOffset: () => number;
113
+ setTime: (time: number) => number;
114
+ setMilliseconds: (ms: number) => number;
115
+ setUTCMilliseconds: (ms: number) => number;
116
+ setSeconds: (sec: number, ms?: number | undefined) => number;
117
+ setUTCSeconds: (sec: number, ms?: number | undefined) => number;
118
+ setMinutes: (min: number, sec?: number | undefined, ms?: number | undefined) => number;
119
+ setUTCMinutes: (min: number, sec?: number | undefined, ms?: number | undefined) => number;
120
+ setHours: (hours: number, min?: number | undefined, sec?: number | undefined, ms?: number | undefined) => number;
121
+ setUTCHours: (hours: number, min?: number | undefined, sec?: number | undefined, ms?: number | undefined) => number;
122
+ setDate: (date: number) => number;
123
+ setUTCDate: (date: number) => number;
124
+ setMonth: (month: number, date?: number | undefined) => number;
125
+ setUTCMonth: (month: number, date?: number | undefined) => number;
126
+ setFullYear: (year: number, month?: number | undefined, date?: number | undefined) => number;
127
+ setUTCFullYear: (year: number, month?: number | undefined, date?: number | undefined) => number;
128
+ toUTCString: () => string;
129
+ toISOString: () => string;
130
+ toJSON: (key?: any) => string;
131
+ [Symbol.toPrimitive]: {
132
+ (hint: "default"): string;
133
+ (hint: "string"): string;
134
+ (hint: "number"): number;
135
+ (hint: string): string | number;
136
+ };
137
+ };
138
+ id: string | number;
139
+ classname: string;
140
+ text: string;
141
+ content: string;
142
+ tips: string;
143
+ icon: string;
144
+ color: string;
145
+ bkColor: string;
146
+ itemType: string;
147
+ deData: IData;
148
+ }[]>;
149
+ handleCurTime: () => void;
150
+ handleDrag: (event: DragEvent) => void;
151
+ handleDragStart: (event: DragEvent) => void;
152
+ eventClick: (item: IUIEvent, location: string) => Promise<void>;
153
+ initDrawData: () => string[];
154
+ };
@@ -0,0 +1,196 @@
1
+ import { ref, computed } from 'vue';
2
+ import '../util/index.mjs';
3
+ import { isToday, handleTimeRange, handleBkColor, fade, handleEVentClick } from '../util/util.mjs';
4
+
5
+ "use strict";
6
+ const useCalendarDaily = (props, emit) => {
7
+ const drawData = ref([]);
8
+ const curTimeTimer = ref();
9
+ const curTimeTop = ref(0);
10
+ const curTimeVal = ref("00:00");
11
+ const resizableHand = ref();
12
+ const calendarDaily = ref();
13
+ const legends = computed(() => props.legends || []);
14
+ const multiple = computed(() => props.multiple === true);
15
+ const selectedData = ref([]);
16
+ let initialMouseY = 0;
17
+ let initialHeight = 0;
18
+ const handleDragStart = (event) => {
19
+ initialMouseY = event.clientY;
20
+ initialHeight = parseInt(
21
+ window.getComputedStyle(resizableHand.value).height,
22
+ 10
23
+ );
24
+ };
25
+ const handleDrag = (event) => {
26
+ const heightChange = event.clientY - initialMouseY + initialHeight;
27
+ resizableHand.value.style.height = "".concat(heightChange, "px");
28
+ };
29
+ const events = computed(() => {
30
+ return computeUIEvents(
31
+ props.events,
32
+ props == null ? void 0 : props.selectedDay,
33
+ legends.value,
34
+ calendarDaily.value
35
+ );
36
+ });
37
+ const computeUIEvents = (events2, curDate, legends2, calendarDaily2) => {
38
+ const tempEvents = [];
39
+ const tempColors = /* @__PURE__ */ new Map();
40
+ let contentWidth = 0;
41
+ if (calendarDaily2) {
42
+ contentWidth = parseInt(window.getComputedStyle(calendarDaily2).width, 10);
43
+ }
44
+ events2.sort((a, b) => {
45
+ const beginTimeDifference = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
46
+ let type;
47
+ if (beginTimeDifference === 0) {
48
+ type = new Date(a.endTime).getTime() - new Date(b.endTime).getTime();
49
+ } else {
50
+ type = beginTimeDifference;
51
+ }
52
+ return type;
53
+ });
54
+ const tempArray = events2.filter((event) => {
55
+ return event && event.beginTime && event.endTime && isToday(curDate, event.beginTime) && isToday(curDate, event.endTime);
56
+ });
57
+ tempArray.forEach((event, index) => {
58
+ const tempItem = {};
59
+ Object.assign(tempItem, event);
60
+ const targetLegend = legends2.find(
61
+ (legendItem) => Object.is(legendItem.id, event.itemType)
62
+ );
63
+ const targetEvent = selectedData.value.find(
64
+ (item) => item.id === event.id
65
+ );
66
+ Object.assign(tempItem, { zIndex: index + 1 });
67
+ const length = tempArray.length;
68
+ const itemWidth = (contentWidth - 90) / length;
69
+ const percentage = Number((100 / length).toFixed(3));
70
+ let width = "".concat(percentage, "%");
71
+ let styleLeft = "".concat(index * percentage, "%");
72
+ if (itemWidth < 100) {
73
+ width = "100px";
74
+ styleLeft = "".concat(index * 100, "px");
75
+ }
76
+ Object.assign(tempItem, { width, styleLeft });
77
+ if (event.beginTime && event.endTime) {
78
+ const height = handleEventHeight(
79
+ event.beginTime,
80
+ event.endTime,
81
+ curDate
82
+ );
83
+ const timeRange = handleTimeRange(
84
+ event.beginTime,
85
+ event.endTime,
86
+ "HH:mm"
87
+ );
88
+ Object.assign(tempItem, { height, timeRange });
89
+ }
90
+ if (event.beginTime) {
91
+ const { styleTop } = handleTopOrCurVal(new Date(event.beginTime));
92
+ Object.assign(tempItem, { styleTop });
93
+ }
94
+ if (!(event == null ? void 0 : event.bkColor)) {
95
+ const bkColor = targetLegend ? targetLegend.bkcolor : handleBkColor(tempColors, event.itemType);
96
+ Object.assign(tempItem, { bkColor });
97
+ }
98
+ if (tempItem.bkColor) {
99
+ const tempBkColor = fade(tempItem.bkColor, 10);
100
+ Object.assign(tempItem, {
101
+ bkColorFade: tempBkColor
102
+ });
103
+ }
104
+ if ((tempItem == null ? void 0 : tempItem.height) && (tempItem == null ? void 0 : tempItem.height) > 10) {
105
+ const border = "1px solid #FFF";
106
+ Object.assign(tempItem, { border });
107
+ } else {
108
+ Object.assign(tempItem, { border: "none" });
109
+ }
110
+ if (targetEvent) {
111
+ Object.assign(tempItem, { isSelectedEvent: true });
112
+ } else {
113
+ Object.assign(tempItem, { isSelectedEvent: false });
114
+ }
115
+ if (targetLegend && targetLegend.isShow || !targetLegend) {
116
+ tempEvents.push(tempItem);
117
+ }
118
+ });
119
+ tempColors.clear();
120
+ return tempEvents;
121
+ };
122
+ const handleEventHeight = (startTime, endTime, date) => {
123
+ let height = 1;
124
+ if (isToday(startTime, date) && isToday(endTime, date)) {
125
+ const difference = new Date(endTime).getTime() - new Date(startTime).getTime();
126
+ height = Math.floor(difference / (1e3 * 60));
127
+ }
128
+ if (height < 3) {
129
+ height = 3;
130
+ }
131
+ return height;
132
+ };
133
+ const handleTopOrCurVal = (date) => {
134
+ const currentHours = date.getHours();
135
+ const currentMinutes = date.getMinutes();
136
+ const hours = String(currentHours).padStart(2, "0");
137
+ const minutes = String(currentMinutes).padStart(2, "0");
138
+ let styleTop;
139
+ let timeVal;
140
+ if (currentHours === 0 && currentMinutes === 0) {
141
+ styleTop = 0;
142
+ timeVal = "00:00";
143
+ } else {
144
+ const topVal = currentHours * 60 + currentMinutes;
145
+ styleTop = topVal;
146
+ timeVal = "".concat(hours, ":").concat(minutes);
147
+ }
148
+ return { styleTop, timeVal };
149
+ };
150
+ const handleCurTime = () => {
151
+ const { styleTop, timeVal } = handleTopOrCurVal(/* @__PURE__ */ new Date());
152
+ curTimeTop.value = styleTop;
153
+ curTimeVal.value = timeVal;
154
+ };
155
+ const initDrawData = () => {
156
+ const tempDrawData = [];
157
+ for (let i = 1; i < 24; i++) {
158
+ const hours = String(i).padStart(2, "0");
159
+ const timescale = "".concat(hours, ":00");
160
+ tempDrawData.push(timescale);
161
+ }
162
+ return tempDrawData;
163
+ };
164
+ const eventClick = async (item, location) => {
165
+ const res = await handleEVentClick(
166
+ item,
167
+ location,
168
+ props.events,
169
+ multiple.value,
170
+ selectedData.value,
171
+ emit
172
+ );
173
+ const { tempSelectedData, isSelectedEvent } = res;
174
+ if (!isSelectedEvent) {
175
+ Object.assign(item, { isSelectedEvent });
176
+ }
177
+ selectedData.value = tempSelectedData;
178
+ };
179
+ return {
180
+ drawData,
181
+ curTimeTimer,
182
+ curTimeTop,
183
+ curTimeVal,
184
+ events,
185
+ resizableHand,
186
+ calendarDaily,
187
+ selectedData,
188
+ handleCurTime,
189
+ handleDrag,
190
+ handleDragStart,
191
+ eventClick,
192
+ initDrawData
193
+ };
194
+ };
195
+
196
+ export { useCalendarDaily };
@@ -0,0 +1 @@
1
+ .ibiz-calendar-month{width:100%;height:100%;display:flex;flex-direction:column}.ibiz-calendar-month__thead{width:100%;height:46px}.ibiz-calendar-month__thead th{padding:12px 0;font-weight:400}.ibiz-calendar-month__tbody{width:100%;height:100%;table-layout:fixed;width:100%}.ibiz-calendar-month__tbody:not(.is-range) td.next,.ibiz-calendar-month__tbody:not(.is-range) td.prev{color:var(--el-text-color-placeholder)}.ibiz-calendar-month__table-body{width:100%;height:100%;flex:1;padding-bottom:8px;overflow:scroll}.ibiz-calendar-month__table-body--scroll{width:auto;height:auto;overflow:scroll}.ibiz-calendar-month__row{min-height:126px}.ibiz-calendar-month__row:first-child td{border-top:1px solid var(--ibiz-color-border)}.ibiz-calendar-month__row--td{width:auto;border-bottom:1px solid var(--ibiz-color-border);border-right:1px solid var(--ibiz-color-border);vertical-align:top;transition:background-color var(--ibiz-color-border) ease;cursor:pointer}.ibiz-calendar-month__row--td.is-today{color:var(--el-color-primary)}.ibiz-calendar-month__row--td.is-selected{background-color:#ecf5ff}.ibiz-calendar-month__row--td.is-selected .ibiz-calendar-month__cell{background:#ecf5ff}.ibiz-calendar-month__row--td:first-child{border-left:1px solid var(--ibiz-color-border)}.ibiz-calendar-month__row--calendar-day{position:relative;z-index:1;height:auto}.ibiz-calendar-month__row--calendar-day:hover{background:0 0}.ibiz-calendar-month__cell{height:126px;width:100%;min-height:126px;display:flex;flex-direction:column;position:relative}.ibiz-calendar-month__container{width:100%;height:100%;position:absolute;left:0;right:0}.ibiz-calendar-month__container__events{position:relative;z-index:2}.ibiz-calendar-month__event-box{width:100%;height:auto;min-height:24px;display:flex;align-items:center;position:absolute;left:0;top:0}.ibiz-calendar-month__event-content{width:100%;height:20px;line-height:20px;padding:0 4px;border:none;outline:0;text-align:left;border-radius:4px;background:var(--ibiz-color-primary);color:#fff;position:relative;overflow:hidden;cursor:pointer}.ibiz-calendar-month__event-content:active{animation:pulse 1s linear}.ibiz-calendar-month__event-content--btn-ripple{position:absolute;display:block;width:50px;height:20px;border-radius:10px;background:rgba(255,255,255,.4);animation:ripple 1s ease}.ibiz-calendar-month__event-content--event-summary{text-align:left;text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.ibiz-calendar-month__event-content--event-name{margin-right:6px}.ibiz-calendar-month__event-content--time-range{margin-right:6px}.ibiz-calendar-month__event-content--check{color:var(--ibiz-color-primary);position:absolute;right:6px;top:50%;transform:translate(0,-50%)}.ibiz-calendar-month__more-popover.el-popper.el-popper{padding:0;border-radius:4px}.ibiz-calendar-month__more-popover--more-events{height:20px;padding:2px;position:absolute;left:0;top:106px}.ibiz-calendar-month__more-popover--body{width:100%;height:auto}.ibiz-calendar-month__more-popover--title{padding:6px 8px;font-size:16px;text-align:left;border-bottom:1px solid var(--ibiz-color-border)}.ibiz-calendar-month__more-popover--events-content{width:100%;height:auto;max-height:380px;padding:8px 10px;overflow-x:hidden;overflow-y:scroll}.ibiz-calendar-month__more-popover .event-box{position:static}.ibiz-calendar-month__more-popover .event-box:nth-child(1){margin-top:0}.ibiz-calendar-month__event-popover{padding:0;width:auto;height:auto;position:relative}.ibiz-calendar-month__event-popover.el-popover.el-popper{padding:24px 12px 8px 12px}.ibiz-calendar-month__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-month__event-popover--scroll{width:auto;height:auto;min-width:450px;min-height:200px;overflow:auto}.ibiz-calendar-month__event-popover--close{position:absolute;right:8px;top:8px;cursor:pointer}.ibiz-calendar-month__event-popover--close:hover .el-icon{background:var(--ibiz-color-primary);border-radius:50%}.ibiz-calendar-month__event-popover--close:hover .el-icon svg{fill:#fff}.ibiz-calendar-month__event-popover .el-icon{font-size:20px;min-height:24px;min-width:24px;display:flex;justify-content:center;align-items:center}.ibiz-calendar-month__event-popover .el-icon svg{fill:var(--el-text-color-secondary)}@keyframes pulse{0%{transform:scale(1)}50%{transform:scale(1.03)}100%{transform:scale(1)}}
@@ -0,0 +1,18 @@
1
+ import './calendar-month.scss';
2
+ export declare const CalendarMonth: import("vue").DefineComponent<IParams, {
3
+ ns: import("@ibiz-template/core").Namespace;
4
+ isInRange: any;
5
+ renderThead: () => JSX.Element | null;
6
+ renderTbody: () => JSX.Element;
7
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
8
+ pickEvent: (value: import("dayjs").Dayjs) => import("dayjs").Dayjs;
9
+ eventClick: (value: IParams) => IParams;
10
+ eventDblClick: (value: IParams) => IParams;
11
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<IParams>> & {
12
+ onEventClick?: ((value: IParams) => any) | undefined;
13
+ onEventDblClick?: ((value: IParams) => any) | undefined;
14
+ onPickEvent?: ((value: import("dayjs").Dayjs) => any) | undefined;
15
+ }, {
16
+ [x: string]: any;
17
+ [x: symbol]: any;
18
+ }, {}>;
@@ -0,0 +1,242 @@
1
+ import { nextTick, watch, onMounted, resolveComponent, createVNode, createTextVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import { createUUID } from 'qx-util';
4
+ import '../interface/index.mjs';
5
+ import { useCalendarMonth } from './use-calendar-month.mjs';
6
+ import './calendar-month.css';
7
+ import '../util/index.mjs';
8
+ import { calendarMonthProps, calendarMonthEmits } from '../interface/calendar-month.mjs';
9
+ import { handlePopClose, closeIcon } from '../util/util.mjs';
10
+
11
+ "use strict";
12
+ const CalendarMonth = /* @__PURE__ */ defineComponent({
13
+ name: "CalendarMonth",
14
+ props: calendarMonthProps,
15
+ emits: calendarMonthEmits,
16
+ setup(props, {
17
+ emit,
18
+ slots
19
+ }) {
20
+ const ns = useNamespace("calendar-month");
21
+ const {
22
+ isInRange,
23
+ rows,
24
+ weekDays,
25
+ hideHeader,
26
+ tableTd,
27
+ legends,
28
+ popVisible,
29
+ selectedDay,
30
+ selectedData,
31
+ getCellClass,
32
+ getSlotData,
33
+ handlePickDay,
34
+ eventClick,
35
+ handleMonthDraw,
36
+ handleEventsMoreData
37
+ } = useCalendarMonth(props, emit);
38
+ props.controller._evt.on("onActive", () => {
39
+ nextTick(() => {
40
+ popVisible.value = false;
41
+ });
42
+ });
43
+ watch(() => props.selectedData, () => {
44
+ if (props.selectedData && props.selectedData.length > 0) {
45
+ const data = props.selectedData.length > selectedData.value.length ? props.selectedData : selectedData.value;
46
+ selectedData.value = data;
47
+ } else {
48
+ selectedData.value = [];
49
+ }
50
+ }, {
51
+ immediate: true,
52
+ deep: true
53
+ });
54
+ onMounted(() => {
55
+ handleMonthDraw();
56
+ });
57
+ watch(() => props.events, () => {
58
+ handleMonthDraw();
59
+ }, {
60
+ immediate: true,
61
+ deep: true
62
+ });
63
+ watch(() => props.legends, () => {
64
+ legends.value = props.legends || [];
65
+ handleMonthDraw();
66
+ }, {
67
+ immediate: true,
68
+ deep: true
69
+ });
70
+ watch(() => props.selectedDay, () => {
71
+ selectedDay.value = props.selectedDay;
72
+ }, {
73
+ immediate: true,
74
+ deep: true
75
+ });
76
+ const renderPopover = (content, event) => {
77
+ return createVNode(resolveComponent("el-popover"), {
78
+ "show-after": 10,
79
+ "offset": 4,
80
+ "width": "auto",
81
+ "popper-class": ns.e("event-popover"),
82
+ "placement": "top"
83
+ }, {
84
+ reference: () => content,
85
+ default: () => {
86
+ var _a;
87
+ return createVNode("div", {
88
+ "class": [ns.em("event-popover", "body")]
89
+ }, [createVNode("div", {
90
+ "class": [ns.em("event-popover", "close")],
91
+ "onClick": (el) => handlePopClose(el),
92
+ "innerHTML": closeIcon
93
+ }, null), createVNode("div", {
94
+ "class": [ns.em("event-popover", "scroll")]
95
+ }, [(slots == null ? void 0 : slots.event) ? (_a = slots.event) == null ? void 0 : _a.call(slots, {
96
+ data: event
97
+ }) : createVNode("div", {
98
+ "class": [ns.em("event-popover", "content")]
99
+ }, ["".concat(event.text || "", " ").concat(event.timeRange || "")])])]);
100
+ }
101
+ });
102
+ };
103
+ const renderEvent = (event) => {
104
+ const node = createVNode("div", {
105
+ "class": ns.em("event-content", "event-summary")
106
+ }, [event.text && createVNode("span", {
107
+ "class": [ns.em("event-content", "event-name")]
108
+ }, [event.text]), event.timeRange && createVNode("span", {
109
+ "class": [ns.em("event-content", "time-range")]
110
+ }, [event.timeRange])]);
111
+ if (!props.controller.state.showDetail) {
112
+ return node;
113
+ }
114
+ return renderPopover(node, event);
115
+ };
116
+ const renderEventItem = (event, eventIndex) => {
117
+ let node = null;
118
+ node = createVNode("div", {
119
+ "key": eventIndex,
120
+ "class": [ns.e("event-box"), "event-box"],
121
+ "style": {
122
+ top: "".concat(Number(eventIndex * 24) + 30, "px"),
123
+ width: "".concat(event == null ? void 0 : event.width)
124
+ }
125
+ }, [createVNode("button", {
126
+ "class": ["event-content", ns.e("event-content"), event.isSelectedEvent ? "is-selected-event" : "", event == null ? void 0 : event.classname],
127
+ "style": {
128
+ background: event == null ? void 0 : event.bkColor,
129
+ color: event == null ? void 0 : event.color
130
+ },
131
+ "onClick": (el) => {
132
+ el.stopPropagation();
133
+ eventClick(event, "content");
134
+ }
135
+ }, [renderEvent(event), event.isSelectedEvent ? createVNode("span", {
136
+ "class": [ns.em("event-content", "check"), "fa fa-check"]
137
+ }, null) : ""])]);
138
+ return node;
139
+ };
140
+ const renderEvents = (cell) => {
141
+ const eventsNode = cell.events.map((event, eventIndex) => {
142
+ let node = null;
143
+ const uuid = createUUID();
144
+ Object.assign(event, {
145
+ popId: uuid
146
+ });
147
+ if (eventIndex < 3 && (event.isShow || event.isToday)) {
148
+ node = renderEventItem(event, eventIndex);
149
+ }
150
+ return node;
151
+ });
152
+ let moreNode = null;
153
+ if (cell.events.length > 3) {
154
+ const tempEvents = handleEventsMoreData(cell);
155
+ moreNode = tempEvents.length > 0 ? createVNode(resolveComponent("el-popover"), {
156
+ "visible": popVisible.value,
157
+ "onUpdate:visible": ($event) => popVisible.value = $event,
158
+ "placement": "top",
159
+ "width": 400,
160
+ "trigger": "click",
161
+ "popper-class": ns.e("more-popover")
162
+ }, {
163
+ reference: () => {
164
+ return createVNode(resolveComponent("el-button"), {
165
+ "class": ns.em("more-popover", "more-events"),
166
+ "type": "text",
167
+ "onClick": (event) => event.stopPropagation()
168
+ }, {
169
+ default: () => [createTextVNode("+"), tempEvents.length, createTextVNode(" \u66F4\u591A")]
170
+ });
171
+ },
172
+ default: () => {
173
+ return createVNode("div", {
174
+ "class": [ns.em("more-popover", "body")]
175
+ }, [createVNode("div", {
176
+ "class": ns.em("more-popover", "title")
177
+ }, [cell.curDate ? cell.curDate.format("YYYY-MM-DD") : cell.text]), createVNode("div", {
178
+ "class": ns.em("more-popover", "events-content")
179
+ }, [tempEvents.map((event, eventIndex) => renderEventItem(event, eventIndex))])]);
180
+ }
181
+ }) : null;
182
+ }
183
+ return createVNode("div", {
184
+ "class": [ns.e("container__events")]
185
+ }, [eventsNode, moreNode]);
186
+ };
187
+ const renderThead = () => {
188
+ if (hideHeader.value) {
189
+ return null;
190
+ }
191
+ return createVNode("thead", null, [weekDays.value.map((day) => createVNode("th", {
192
+ "key": day
193
+ }, [day]))]);
194
+ };
195
+ const renderTbody = () => {
196
+ return createVNode("tbody", null, [rows.value.map((row, index) => createVNode("tr", {
197
+ "key": index,
198
+ "class": [ns.e("row"), index === 0 && hideHeader.value ? "el-calendar-table__row--hide-border" : ""]
199
+ }, [row.map((cell, key) => {
200
+ var _a;
201
+ return createVNode("td", {
202
+ "key": key,
203
+ "class": [...getCellClass(cell), ns.em("row", "td")],
204
+ "onClick": () => handlePickDay(cell),
205
+ "ref": (el) => {
206
+ tableTd.value = el;
207
+ }
208
+ }, [createVNode("div", {
209
+ "class": [ns.e("cell")]
210
+ }, [createVNode("div", {
211
+ "class": [ns.em("row", "calendar-day")]
212
+ }, [slots["date-cell"] ? (_a = slots["date-cell"]) == null ? void 0 : _a.call(slots, {
213
+ key,
214
+ data: getSlotData(cell)
215
+ }) : createVNode("span", null, [cell.text])]), createVNode("div", {
216
+ "class": ns.e("container")
217
+ }, [renderEvents(cell)])])]);
218
+ })]))]);
219
+ };
220
+ return {
221
+ ns,
222
+ isInRange,
223
+ renderThead,
224
+ renderTbody
225
+ };
226
+ },
227
+ render() {
228
+ return createVNode("div", {
229
+ "class": this.ns.b()
230
+ }, [createVNode("table", {
231
+ "class": [this.ns.e("thead")]
232
+ }, [this.renderThead()]), createVNode("div", {
233
+ "class": this.ns.e("table-body")
234
+ }, [createVNode("div", {
235
+ "class": this.ns.em("table-body", "scroll")
236
+ }, [createVNode("table", {
237
+ "class": [this.ns.e("tbody"), this.isInRange && "is-range"]
238
+ }, [this.renderTbody()])])])]);
239
+ }
240
+ });
241
+
242
+ export { CalendarMonth };
@@ -0,0 +1,18 @@
1
+ export declare const IBizCalendarMonth: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<IParams, {
2
+ ns: import("@ibiz-template/core").Namespace;
3
+ isInRange: any;
4
+ renderThead: () => JSX.Element | null;
5
+ renderTbody: () => JSX.Element;
6
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
7
+ pickEvent: (value: import("dayjs").Dayjs) => import("dayjs").Dayjs;
8
+ eventClick: (value: IParams) => IParams;
9
+ eventDblClick: (value: IParams) => IParams;
10
+ }, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<IParams>> & {
11
+ onEventClick?: ((value: IParams) => any) | undefined;
12
+ onEventDblClick?: ((value: IParams) => any) | undefined;
13
+ onPickEvent?: ((value: import("dayjs").Dayjs) => any) | undefined;
14
+ }, {
15
+ [x: string]: any;
16
+ [x: symbol]: any;
17
+ }, {}>>;
18
+ export default IBizCalendarMonth;
@@ -0,0 +1,9 @@
1
+ import { withInstall } from '@ibiz-template/vue3-util';
2
+ import { CalendarMonth } from './calendar-month.mjs';
3
+
4
+ "use strict";
5
+ const IBizCalendarMonth = withInstall(CalendarMonth, function(v) {
6
+ v.component(CalendarMonth.name, CalendarMonth);
7
+ });
8
+
9
+ export { IBizCalendarMonth, IBizCalendarMonth as default };
@@ -0,0 +1,3 @@
1
+ import type { SetupContext } from 'vue';
2
+ import { CalendarMonthEmits, CalendarMonthProps } from '../interface';
3
+ export declare const useCalendarMonth: (props: CalendarMonthProps, emit: SetupContext<CalendarMonthEmits>['emit']) => IData;