@ibiz-template/vue3-components 0.7.41-alpha.13 → 0.7.41-alpha.15

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 (139) hide show
  1. package/dist/index-1hn7qv2s.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/map-chart-3dojS1dZ.js +1 -0
  5. package/dist/{wang-editor-Iw-hqw1q.js → wang-editor-yDknWojV.js} +1 -1
  6. package/dist/{xlsx-util-FnTIZeKq.js → xlsx-util-8l4wyK1s.js} +1 -1
  7. package/es/common/carousel/carousel.css +1 -1
  8. package/es/common/map-chart/map-chart.mjs +6 -14
  9. package/es/control/calendar/calendar-util.d.ts +12 -0
  10. package/es/control/calendar/calendar-util.mjs +30 -1
  11. package/es/control/calendar/calendar.css +1 -1
  12. package/es/control/calendar/calendar.d.ts +2 -0
  13. package/es/control/calendar/calendar.mjs +110 -26
  14. package/es/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  15. package/es/control/calendar/components/calendar-daily/calendar-daily.d.ts +2 -0
  16. package/es/control/calendar/components/calendar-daily/calendar-daily.mjs +66 -16
  17. package/es/control/calendar/components/calendar-daily/index.d.ts +2 -0
  18. package/es/control/calendar/components/calendar-daily/use-calendar-daily.d.ts +3 -1
  19. package/es/control/calendar/components/calendar-daily/use-calendar-daily.mjs +99 -44
  20. package/es/control/calendar/components/calendar-week/calendar-week.css +1 -1
  21. package/es/control/calendar/components/calendar-week/calendar-week.d.ts +6 -0
  22. package/es/control/calendar/components/calendar-week/calendar-week.mjs +74 -38
  23. package/es/control/calendar/components/calendar-week/index.d.ts +6 -0
  24. package/es/control/calendar/components/calendar-week/use-calendar-week.d.ts +12 -1
  25. package/es/control/calendar/components/calendar-week/use-calendar-week.mjs +313 -155
  26. package/es/control/calendar/components/constant/event.d.ts +1 -0
  27. package/es/control/calendar/components/constant/event.mjs +2 -1
  28. package/es/control/calendar/components/constant/index.mjs +1 -1
  29. package/es/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  30. package/es/control/calendar/components/custom-calendar/custom-calendar.d.ts +2 -0
  31. package/es/control/calendar/components/custom-calendar/custom-calendar.mjs +8 -10
  32. package/es/control/calendar/components/custom-calendar/index.d.ts +2 -0
  33. package/es/control/calendar/components/custom-calendar/use-custom-calendar.mjs +4 -0
  34. package/es/control/calendar/components/interface/calendar-daily.d.ts +1 -0
  35. package/es/control/calendar/components/interface/calendar-daily.mjs +6 -1
  36. package/es/control/calendar/components/interface/calendar-week.d.ts +1 -0
  37. package/es/control/calendar/components/interface/calendar-week.mjs +2 -1
  38. package/es/control/calendar/components/interface/common.d.ts +20 -18
  39. package/es/control/calendar/components/interface/custom-calendar.d.ts +1 -0
  40. package/es/control/calendar/components/interface/custom-calendar.mjs +3 -2
  41. package/es/control/calendar/components/util/index.mjs +1 -1
  42. package/es/control/calendar/components/util/util.d.ts +20 -1
  43. package/es/control/calendar/components/util/util.mjs +10 -2
  44. package/es/control/calendar/index.d.ts +2 -0
  45. package/es/control/drbar/drbar.controller.d.ts +6 -0
  46. package/es/control/drbar/drbar.controller.mjs +8 -0
  47. package/es/control/drbar/drbar.mjs +6 -0
  48. package/es/control/drtab/drtab-control.util.mjs +1 -1
  49. package/es/control/drtab/drtab.controller.d.ts +6 -0
  50. package/es/control/drtab/drtab.controller.mjs +9 -0
  51. package/es/control/drtab/drtab.mjs +13 -0
  52. package/es/control/drtab/flow-drtab.css +1 -1
  53. package/es/control/drtab/flow-drtab.mjs +3 -1
  54. package/es/control/gantt/gantt.mjs +4 -1
  55. package/es/control/grid/virtualized-table/virtualized-table.css +1 -1
  56. package/es/control/grid/virtualized-table/virtualized-table.mjs +4 -3
  57. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +4 -4
  58. package/es/control/kanban/kanban.css +1 -1
  59. package/es/control/kanban/kanban.mjs +6 -9
  60. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  61. package/es/control/kanban/{lane-kanban/lane-kanban.d.ts → swimlane-kanban/swimlane-kanban.d.ts} +3 -2
  62. package/es/control/kanban/{lane-kanban/lane-kanban.mjs → swimlane-kanban/swimlane-kanban.mjs} +22 -29
  63. package/es/control/map/map.mjs +1 -1
  64. package/es/control/medit-view-panel/index.d.ts +2 -0
  65. package/es/control/medit-view-panel/medit-view-panel.d.ts +2 -0
  66. package/es/control/medit-view-panel/medit-view-panel.mjs +19 -6
  67. package/es/control/search-bar/search-bar.mjs +1 -1
  68. package/es/control/tab-exp-panel/index.d.ts +1 -0
  69. package/es/control/tab-exp-panel/tab-exp-panel.css +1 -1
  70. package/es/control/tab-exp-panel/tab-exp-panel.d.ts +2 -1
  71. package/es/control/tab-exp-panel/tab-exp-panel.mjs +21 -2
  72. package/es/control/tree/tree.mjs +4 -1
  73. package/es/editor/span/span/span.mjs +2 -1
  74. package/es/util/fullscreen/fullscreen-util.mjs +1 -1
  75. package/es/view-engine/custom-view.engine.d.ts +1 -1
  76. package/es/view-engine/custom-view.engine.mjs +5 -5
  77. package/es/view-engine/de-index-view-engine.mjs +1 -1
  78. package/es/view-engine/edit-view.engine.mjs +1 -1
  79. package/es/view-engine/index.mjs +4 -0
  80. package/es/view-engine/md-custom-view.engine.d.ts +1 -1
  81. package/es/view-engine/md-custom-view.engine.mjs +5 -5
  82. package/es/view-engine/opt-view.engine.mjs +1 -1
  83. package/lib/common/carousel/carousel.css +1 -1
  84. package/lib/common/map-chart/map-chart.cjs +5 -13
  85. package/lib/control/calendar/calendar-util.cjs +30 -0
  86. package/lib/control/calendar/calendar.cjs +108 -24
  87. package/lib/control/calendar/calendar.css +1 -1
  88. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +64 -14
  89. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  90. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +98 -43
  91. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +73 -37
  92. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
  93. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +311 -153
  94. package/lib/control/calendar/components/constant/event.cjs +2 -0
  95. package/lib/control/calendar/components/constant/index.cjs +1 -0
  96. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +8 -10
  97. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  98. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +4 -0
  99. package/lib/control/calendar/components/interface/calendar-daily.cjs +6 -1
  100. package/lib/control/calendar/components/interface/calendar-week.cjs +2 -1
  101. package/lib/control/calendar/components/interface/custom-calendar.cjs +2 -1
  102. package/lib/control/calendar/components/util/index.cjs +2 -0
  103. package/lib/control/calendar/components/util/util.cjs +11 -1
  104. package/lib/control/drbar/drbar.cjs +6 -0
  105. package/lib/control/drbar/drbar.controller.cjs +8 -0
  106. package/lib/control/drtab/drtab-control.util.cjs +1 -1
  107. package/lib/control/drtab/drtab.cjs +13 -0
  108. package/lib/control/drtab/drtab.controller.cjs +9 -0
  109. package/lib/control/drtab/flow-drtab.cjs +3 -1
  110. package/lib/control/drtab/flow-drtab.css +1 -1
  111. package/lib/control/gantt/gantt.cjs +4 -1
  112. package/lib/control/grid/virtualized-table/virtualized-table.cjs +3 -2
  113. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -1
  114. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +4 -4
  115. package/lib/control/kanban/kanban.cjs +6 -9
  116. package/lib/control/kanban/kanban.css +1 -1
  117. package/lib/control/kanban/{lane-kanban/lane-kanban.cjs → swimlane-kanban/swimlane-kanban.cjs} +22 -29
  118. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  119. package/lib/control/map/map.cjs +1 -1
  120. package/lib/control/medit-view-panel/medit-view-panel.cjs +19 -6
  121. package/lib/control/search-bar/search-bar.cjs +1 -1
  122. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +20 -1
  123. package/lib/control/tab-exp-panel/tab-exp-panel.css +1 -1
  124. package/lib/control/tree/tree.cjs +4 -1
  125. package/lib/editor/span/span/span.cjs +2 -1
  126. package/lib/util/fullscreen/fullscreen-util.cjs +1 -1
  127. package/lib/view-engine/custom-view.engine.cjs +5 -5
  128. package/lib/view-engine/de-index-view-engine.cjs +1 -1
  129. package/lib/view-engine/edit-view.engine.cjs +1 -1
  130. package/lib/view-engine/index.cjs +4 -0
  131. package/lib/view-engine/md-custom-view.engine.cjs +5 -5
  132. package/lib/view-engine/opt-view.engine.cjs +1 -1
  133. package/package.json +5 -5
  134. package/dist/index-LzKAcXeH.js +0 -4
  135. package/dist/map-chart-HL7emT5a.js +0 -1
  136. package/es/control/kanban/lane-kanban/lane-kanban.css +0 -1
  137. package/lib/control/kanban/lane-kanban/lane-kanban.css +0 -1
  138. /package/es/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.12_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.14_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.mjs +0 -0
  139. /package/lib/node_modules/.pnpm/{@ibiz-template_core@0.7.41-alpha.12_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1 → @ibiz-template_core@0.7.41-alpha.14_axios@1.6.8_lodash-es@4.17.21_qs@6.11.2_qx-util@0.4.8_ramda@0.29.1}/node_modules/@ibiz-template/core/out/utils/namespace/namespace.cjs +0 -0
@@ -70,10 +70,54 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
70
70
  setup() {
71
71
  const c = vue3Util.useControlController((...args) => new runtime.CalendarController(...args));
72
72
  const ns = vue3Util.useNamespace("control-".concat(c.model.controlType.toLowerCase()));
73
+ const {
74
+ UIStore
75
+ } = vue3Util.useUIStore();
76
+ const {
77
+ getFontColor,
78
+ getBkColor,
79
+ getActBdrColors
80
+ } = calendarUtil.useCalendarLegend(ns);
73
81
  const calendarRef = vue.ref();
74
82
  const curPopover = vue.ref();
75
83
  const showDateRange = vue.ref(c.controlParams.showmode === "daterange");
76
84
  const showDateList = vue.ref(c.controlParams.showmode === "expand");
85
+ const monthLegendClick = (_item) => {
86
+ Object.assign(_item, {
87
+ isShow: !_item.isShow
88
+ });
89
+ };
90
+ const legendItems = vue.ref([]);
91
+ const legendType = ["DAY", "WEEK", "MONTH"];
92
+ const calcLegend = () => {
93
+ legendItems.value = c.state.legends.map((_item, index) => {
94
+ const tempItem = {
95
+ ..._item,
96
+ isShow: true
97
+ };
98
+ if (!c.model.calendarStyle || !legendType.includes(c.model.calendarStyle))
99
+ return tempItem;
100
+ if (!_item.bkcolor) {
101
+ Object.assign(tempItem, {
102
+ bkcolor: getBkColor(index),
103
+ actBdrColor: getActBdrColors(index)
104
+ });
105
+ }
106
+ if (!_item.color)
107
+ Object.assign(tempItem, {
108
+ color: getFontColor()
109
+ });
110
+ return tempItem;
111
+ });
112
+ };
113
+ vue.watch(() => c.state.legends, () => {
114
+ calcLegend();
115
+ }, {
116
+ deep: true
117
+ });
118
+ vue.watch(() => UIStore.theme, () => {
119
+ calcLegend();
120
+ });
77
121
  const popoverValue = vue.ref("");
78
122
  const selectDate = (tag) => {
79
123
  if (!calendarRef.value)
@@ -121,6 +165,9 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
121
165
  }
122
166
  return false;
123
167
  }
168
+ if (c.model.calendarStyle === "TIMELINE") {
169
+ return dayjs(newVal).isSame(dayjs(oldVal), "millisecond");
170
+ }
124
171
  return false;
125
172
  };
126
173
  vue.watch(() => c.state.selectedDate, (newVal, oldVal) => {
@@ -130,14 +177,20 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
130
177
  c.load();
131
178
  });
132
179
  const calcItemStyle = (data) => {
180
+ const _legend = legendItems.value.find((_item) => _item.id === data.itemType);
133
181
  return {
134
182
  color: data.color,
135
- backgroundColor: data.bkColor
183
+ backgroundColor: data.bkColor,
184
+ ["".concat(ns.cssVarBlockName("item-color"))]: data.color,
185
+ ["".concat(ns.cssVarBlockName("item-active-border-color"))]: _legend == null ? void 0 : _legend.actBdrColor
136
186
  };
137
187
  };
138
188
  const calcCalendarItems = (date) => {
139
189
  const weekRange = calendarUtil.getWeekRange(date);
140
190
  const calendarItems = c.state.items.filter((item) => {
191
+ const _legend = legendItems.value.find((legend) => legend.id === item.itemType);
192
+ if (_legend && !_legend.isShow)
193
+ return false;
141
194
  if (!showDateRange.value) {
142
195
  return dayjs(date).isSame(item.beginTime, "day");
143
196
  }
@@ -158,7 +211,20 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
158
211
  return result;
159
212
  });
160
213
  }
161
- return calendarItems;
214
+ return calendarItems.map((_item) => {
215
+ const targetLegend = legendItems.value.find((legendItem) => Object.is(legendItem.id, _item.itemType));
216
+ if (!targetLegend)
217
+ return _item;
218
+ if (!_item.bkColor)
219
+ Object.assign(_item, {
220
+ bkColor: targetLegend.bkcolor
221
+ });
222
+ if (!_item.color)
223
+ Object.assign(_item, {
224
+ color: targetLegend.color
225
+ });
226
+ return _item;
227
+ });
162
228
  };
163
229
  let ContextMenu;
164
230
  const iBizRawItem = vue.resolveComponent("IBizRawItem");
@@ -286,7 +352,10 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
286
352
  if (!contextMenuC.model.detoolbarItems) {
287
353
  return;
288
354
  }
289
- await contextMenuC.calcButtonState(item.deData || (item.deData ? item : void 0), targetCalendarItem.appDataEntityId);
355
+ await contextMenuC.calcButtonState(item.deData || (item.deData ? item : void 0), targetCalendarItem.appDataEntityId, {
356
+ view: c.view,
357
+ ctrl: c
358
+ });
290
359
  const menuState = contextMenuC.state.buttonsState;
291
360
  const menus = calcContextMenuItems(contextMenuC.model.detoolbarItems, item, evt, menuState);
292
361
  if (!menus.length) {
@@ -308,10 +377,12 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
308
377
  showDateRange,
309
378
  showDateList,
310
379
  popoverValue,
380
+ legendItems,
311
381
  selectDate,
312
382
  calcItemStyle,
313
383
  calcCalendarItems,
314
- onNodeContextmenu
384
+ onNodeContextmenu,
385
+ monthLegendClick
315
386
  };
316
387
  },
317
388
  render() {
@@ -351,7 +422,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
351
422
  const findIndex = this.c.state.selectedData.findIndex((data) => {
352
423
  return data.deData.srfkey === item.deData.srfkey;
353
424
  });
354
- const itemClass = [this.ns.b("item"), this.ns.is("active", findIndex !== -1), this.ns.is("begin-time", date && dayjs(date).isSame(item.beginTime, "day")), this.ns.is("hidden", this.showDateRange && !calendarUtil.isTimeBetween({
425
+ const itemClass = [this.ns.b("item"), this.ns.be("item", "default"), this.ns.is("active", findIndex !== -1), this.ns.is("begin-time", date && dayjs(date).isSame(item.beginTime, "day")), this.ns.is("hidden", this.showDateRange && !calendarUtil.isTimeBetween({
355
426
  beginTime: item.beginTime,
356
427
  endTime: item.endTime,
357
428
  date
@@ -419,11 +490,31 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
419
490
  header: ({
420
491
  date
421
492
  }) => {
422
- var _a;
423
493
  let _slot, _slot2, _slot3, _slot4, _slot5;
424
494
  return [vue.createVNode("span", {
425
495
  "class": this.ns.b("content-title")
426
496
  }, [date]), vue.createVNode("div", {
497
+ "class": this.ns.b("legend")
498
+ }, [this.legendItems && this.legendItems.length > 1 && this.legendItems.map((_legend) => {
499
+ var _a;
500
+ let label = _legend.name;
501
+ const _model = (_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.find((_calendarItem) => _calendarItem.id === _legend.id);
502
+ if (_model == null ? void 0 : _model.nameLanguageRes) {
503
+ label = ibiz.i18n.t(_model.nameLanguageRes.lanResTag, _model.name);
504
+ }
505
+ return vue.createVNode("div", {
506
+ "class": [this.ns.be("legend", "item")],
507
+ "onClick": () => this.monthLegendClick(_legend)
508
+ }, [vue.createVNode("div", {
509
+ "class": this.ns.bem("legend", "item", "tip"),
510
+ "style": {
511
+ background: _legend.isShow ? _legend == null ? void 0 : _legend.bkcolor : "var(".concat(this.ns.cssVarName("color-disabled-bg"), ")"),
512
+ color: _legend == null ? void 0 : _legend.color
513
+ }
514
+ }, null), vue.createVNode("div", {
515
+ "class": this.ns.bem("legend", "item", "text")
516
+ }, [label])]);
517
+ })]), vue.createVNode("div", {
427
518
  "class": this.ns.b("content-header")
428
519
  }, [vue.createVNode(vue.resolveComponent("el-date-picker"), {
429
520
  "modelValue": this.c.state.selectedDate,
@@ -461,23 +552,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
461
552
  }, _isSlot(_slot5 = ibiz.i18n.t("control.calendar.nextYear")) ? _slot5 : {
462
553
  default: () => [_slot5]
463
554
  })]
464
- })]), vue.createVNode("div", {
465
- "class": this.ns.b("legend")
466
- }, [this.c.model.sysCalendarItems && this.c.model.sysCalendarItems.length > 1 && ((_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.map((calendarItem) => {
467
- let label = calendarItem.name;
468
- if (calendarItem.nameLanguageRes) {
469
- label = ibiz.i18n.t(calendarItem.nameLanguageRes.lanResTag, calendarItem.name);
470
- }
471
- return vue.createVNode("div", {
472
- "class": this.ns.e("calendar-item")
473
- }, [vue.createVNode("div", {
474
- "class": this.ns.e("icon"),
475
- "style": {
476
- background: calendarItem.bkcolor,
477
- color: calendarItem.color
478
- }
479
- }, null), label]);
480
- }))])];
555
+ })])];
481
556
  },
482
557
  "date-cell": ({
483
558
  data
@@ -541,7 +616,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
541
616
  "ref": "calendarRef",
542
617
  "viewType": this.c.model.calendarStyle,
543
618
  "events": this.c.state.items,
544
- "legends": this.c.state.legends,
619
+ "legends": this.legendItems,
545
620
  "multiple": !this.c.state.singleSelect,
546
621
  "selectedData": this.c.state.selectedData,
547
622
  "onEventClick": (value) => {
@@ -559,6 +634,15 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
559
634
  const item = data[0];
560
635
  if (item)
561
636
  this.c.onDbRowClick(item);
637
+ },
638
+ "onEventContextmenu": (value) => {
639
+ const {
640
+ data,
641
+ evt
642
+ } = value;
643
+ const item = data[0];
644
+ if (item && evt)
645
+ this.onNodeContextmenu(item, evt);
562
646
  }
563
647
  }, _isSlot(slots) ? slots : {
564
648
  default: () => [slots]
@@ -1 +1 @@
1
- .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);position:relative;width:100%;height:100%}.ibiz-control-calendar__nav-icon{position:absolute;top:18px;right:0;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:var(--ibiz-width-icon-small);height:var(--ibiz-width-icon-small);margin-right:var(--ibiz-spacing-base-tight);border-radius:var(--ibiz-border-radius-circle)}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column;height:100%}.ibiz-control-calendar-content .el-calendar__header{flex-wrap:wrap}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;min-height:90px;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0;overflow:auto}.ibiz-control-calendar-content.is-show-date-range .el-calendar-day{padding:var(--ibiz-spacing-tight) 0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item{width:calc(100% + 1px);min-height:34px;border-radius:0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-begin-time{width:100%;margin-left:var(--ibiz-spacing-super-tight);border-radius:var(--ibiz-spacing-extra-tight) 0 0 var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-begin-time.is-end-time{width:calc(100% - var(--ibiz-spacing-super-tight) * 2);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-end-time{width:calc(100% - var(--ibiz-spacing-super-tight));border-radius:0 var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-extra-tight) 0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active{border-right:none;border-left:none}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active.is-begin-time{border-left:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active.is-end-time{border-right:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-hidden{position:relative;z-index:-1;opacity:0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-no-begin-time,.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-no-end-time{width:calc(100% - var(--ibiz-spacing-super-tight) * 2);margin-left:var(--ibiz-spacing-super-tight);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more{width:100%;font-size:var(--ibiz-font-size-small);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-border-color)}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding-bottom:var(--ibiz-control-calendar-item-padding);margin:0;text-align:center}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-title{line-height:var(--ibiz-editor-default-line-height)}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-legend{display:flex;justify-content:flex-end;width:100%}.ibiz-control-calendar-legend>*+*{margin-left:var(--ibiz-spacing-base-loose)}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
1
+ .ibiz-control-calendar{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);position:relative;width:100%;height:100%}.ibiz-control-calendar__nav-icon{position:absolute;top:18px;right:0;color:var(--ibiz-color-primary);cursor:pointer}.ibiz-control-calendar__calendar-item{display:flex;align-items:center;padding:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar__icon{width:var(--ibiz-width-icon-small);height:var(--ibiz-width-icon-small);margin-right:var(--ibiz-spacing-base-tight);border-radius:var(--ibiz-border-radius-circle)}.ibiz-control-calendar-content{display:flex;flex-direction:column;width:100%;height:100%}.ibiz-control-calendar-content .el-calendar{display:flex;flex-direction:column;height:100%}.ibiz-control-calendar-content .el-calendar__header{flex-wrap:nowrap}.ibiz-control-calendar-content .el-calendar-table,.ibiz-control-calendar-content .el-calendar-table .el-calendar-day{width:100%;height:100%;min-height:90px;cursor:pointer}.ibiz-control-calendar-content .el-calendar-table{flex:1;width:-moz-fit-content;width:fit-content}.ibiz-control-calendar-content .el-calendar-table .el-calendar-day:hover{cursor:pointer;background-color:var(--el-calendar-selected-bg-color)}.ibiz-control-calendar-content .el-calendar__body{display:flex;flex:1;padding:0;overflow:auto}.ibiz-control-calendar-content.is-show-date-range .el-calendar-day{padding:var(--ibiz-spacing-tight) 0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item{width:calc(100% + 1px);min-height:34px;border-radius:0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-begin-time{width:100%;margin-left:var(--ibiz-spacing-super-tight);border-radius:var(--ibiz-spacing-extra-tight) 0 0 var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-begin-time.is-end-time{width:calc(100% - var(--ibiz-spacing-super-tight) * 2);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-end-time{width:calc(100% - var(--ibiz-spacing-super-tight));border-radius:0 var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-extra-tight) 0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active{border-right:none;border-left:none}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active.is-begin-time{border-left:solid .5px var(--ibiz-control-calendar-item-active-border-color,var(--ibiz-control-calendar-border-color))}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-active.is-end-time{border-right:solid .5px var(--ibiz-control-calendar-item-active-border-color,var(--ibiz-control-calendar-border-color))}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-hidden{position:relative;z-index:-1;opacity:0}.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-no-begin-time,.ibiz-control-calendar-content.is-show-date-range .ibiz-control-calendar-item.is-no-end-time{width:calc(100% - var(--ibiz-spacing-super-tight) * 2);margin-left:var(--ibiz-spacing-super-tight);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more{width:100%;font-size:var(--ibiz-font-size-small);border-radius:var(--ibiz-spacing-extra-tight)}.ibiz-control-calendar-more:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);--ibiz-control-calendar-item-color:none;--ibiz-color-text-2:var(--ibiz-control-calendar-item-color);--ibiz-editor-default-text-color:var(--ibiz-control-calendar-item-color);height:100%;padding:var(--ibiz-control-calendar-item-padding);margin-bottom:var(--ibiz-control-calendar-margin);overflow:hidden;font-size:var(--ibiz-control-calendar-font-size);color:var(--ibiz-control-calendar-text-color);text-overflow:ellipsis;white-space:nowrap;cursor:pointer;border:solid .5px transparent;border-radius:var(--ibiz-control-calendar-border-radius)}.ibiz-control-calendar-item:hover{background-color:var(--ibiz-control-calendar-hover-bg-color)}.ibiz-control-calendar-item.is-active{background-color:var(--ibiz-control-calendar-active-bg-color);border:solid .5px var(--ibiz-control-calendar-item-active-border-color,var(--ibiz-control-calendar-border-color))}.ibiz-control-calendar-date-text{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);padding-bottom:var(--ibiz-control-calendar-item-padding);margin:0;text-align:center}.ibiz-control-calendar-day{height:-moz-fit-content;height:fit-content}.ibiz-control-calendar-content-title{line-height:var(--ibiz-editor-default-line-height);white-space:nowrap}.ibiz-control-calendar-content-header{--ibiz-control-calendar-text-color:var(--ibiz-color-text-0);--ibiz-control-calendar-hover-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-active-bg-color:var(--ibiz-color-fill-0);--ibiz-control-calendar-border-color:var(--ibiz-color-primary-active);--ibiz-control-calendar-font-size:var(--ibiz-font-size-small);--ibiz-control-calendar-item-padding:var(--ibiz-spacing-tight);--ibiz-control-calendar-border-radius:var(--ibiz-border-radius-small);--ibiz-control-calendar-margin:var(--ibiz-spacing-extra-tight);display:flex;align-items:center}.ibiz-control-calendar-content-header>*+*{margin-left:var(--ibiz-control-calendar-item-padding)}.ibiz-control-calendar-content-header .el-button-group{display:flex}.ibiz-control-calendar-legend{display:flex;justify-content:center;width:100%}.ibiz-control-calendar-legend__item{display:flex;align-items:center;padding:0 var(--ibiz-spacing-tight);line-height:1em;cursor:pointer}.ibiz-control-calendar-legend__item--tip{display:inline-block;width:1.5em;height:.9em;margin-right:var(--ibiz-spacing-extra-tight);border-radius:var(--ibiz-border-radius-extra-small)}.ibiz-control-calendar-legend__item--text{display:inline-block;width:auto;max-width:100px;overflow:hidden;text-align:left;text-overflow:ellipsis;white-space:nowrap}.ibiz-control-calendar-timeline-content{height:100%;overflow:auto}.ibiz-control-calendar-timeline-content .el-timeline{padding-left:0}
@@ -29,11 +29,13 @@ const CalendarDaily = /* @__PURE__ */ vue.defineComponent({
29
29
  curTimeTimer,
30
30
  calendarDaily,
31
31
  selectedData,
32
- eventClick,
32
+ handleEventClick,
33
+ handleEventDblClick,
33
34
  handleDrag,
34
35
  handleDragStart,
35
36
  handleCurTime,
36
- initDrawData
37
+ initDrawData,
38
+ eventContextmenu
37
39
  } = useCalendarDaily.useCalendarDaily(props, emit);
38
40
  vue.watch(() => props.selectedData, () => {
39
41
  if (props.selectedData && props.selectedData.length > 0) {
@@ -60,19 +62,31 @@ const CalendarDaily = /* @__PURE__ */ vue.defineComponent({
60
62
  });
61
63
  const renderEventItem = (location, eventBoxStyle, eventContentStyle, event, index, slotNme, classEName) => {
62
64
  var _a;
65
+ let title = "".concat(event.text || "");
66
+ if (location === "header" && event.timeRange)
67
+ title = "".concat(title, " ").concat(event.timeRange || "");
68
+ title = core.showTitle(title) || "";
69
+ if (props.showDetail)
70
+ title = "";
63
71
  return vue.createVNode("div", {
64
72
  "key": index,
65
73
  "class": [ns.em(classEName, "event-box")],
66
74
  "style": eventBoxStyle
67
75
  }, [vue.createVNode("button", {
68
76
  "class": [ns.em(classEName, "event-content"), event.isSelectedEvent ? "is-selected-event" : "", event.classname],
69
- "onClick": () => eventClick(event, "head"),
70
- "style": eventContentStyle
77
+ "onClick": () => {
78
+ handleEventClick(event, "head");
79
+ },
80
+ "onDblclick": () => {
81
+ handleEventDblClick(event, "head");
82
+ },
83
+ "onContextmenu": (e) => eventContextmenu(event, e),
84
+ "style": eventContentStyle,
85
+ "title": title
71
86
  }, [slots[slotNme] ? (_a = slots[slotNme]) == null ? void 0 : _a.call(slots, {
72
87
  data: event
73
88
  }) : vue.createVNode("div", {
74
- "class": [ns.em(classEName, "event-summary"), event.classname],
75
- "title": core.showTitle("".concat(event.text || "", " ").concat(event.timeRange || ""))
89
+ "class": [ns.em(classEName, "event-summary"), event.classname]
76
90
  }, [event.icon && vue.createVNode("span", {
77
91
  "class": [event.icon, ns.em(classEName, "event-icon")],
78
92
  "style": {
@@ -84,6 +98,41 @@ const CalendarDaily = /* @__PURE__ */ vue.defineComponent({
84
98
  "class": ["fa fa-check", ns.em(classEName, "check")]
85
99
  }, null) : ""])]);
86
100
  };
101
+ const renderPopover = (content, event, placement) => {
102
+ if (!props.showDetail) {
103
+ return content;
104
+ }
105
+ const _tempEvent = {
106
+ ...event,
107
+ color: "",
108
+ bkColor: ""
109
+ };
110
+ return vue.createVNode(vue.resolveComponent("el-popover"), {
111
+ "show-after": 100,
112
+ "offset": 4,
113
+ "width": "auto",
114
+ "popper-class": [ns.e("event-popover")],
115
+ "placement": placement || "right-start"
116
+ }, {
117
+ reference: () => content,
118
+ default: () => {
119
+ var _a;
120
+ return vue.createVNode("div", {
121
+ "class": [ns.em("event-popover", "body")]
122
+ }, [vue.createVNode("div", {
123
+ "class": [ns.em("event-popover", "close")],
124
+ "onClick": (el) => util.handlePopClose(el),
125
+ "innerHTML": util.closeIcon
126
+ }, null), vue.createVNode("div", {
127
+ "class": [ns.em("event-popover", "scroll")]
128
+ }, [(slots == null ? void 0 : slots.event) ? (_a = slots.event) == null ? void 0 : _a.call(slots, {
129
+ data: _tempEvent
130
+ }) : vue.createVNode("div", {
131
+ "class": [ns.em("event-popover", "content")]
132
+ }, ["".concat(event.text || "", " ").concat(event.timeRange || "")])])]);
133
+ }
134
+ });
135
+ };
87
136
  const renderHeader = () => {
88
137
  return vue.createVNode("div", {
89
138
  "class": [ns.e("calendar-daily__head")],
@@ -98,14 +147,16 @@ const CalendarDaily = /* @__PURE__ */ vue.defineComponent({
98
147
  "class": ns.em("allday-info", "work-items-scroll")
99
148
  }, [vue.createVNode("div", {
100
149
  "class": ns.em("allday-info", "work-items-body")
101
- }, [events.value.map((event, index) => {
150
+ }, [events.value.length > 0 ? events.value.map((event, index) => {
102
151
  const eventBoxStyle = {};
103
152
  const eventContentStyle = {
104
- color: event.color,
105
153
  background: event.bkColorFade
106
154
  };
107
- return renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "allday-info");
108
- })])])]), vue.createVNode("div", {
155
+ const tempContent = renderEventItem("header", eventBoxStyle, eventContentStyle, event, index, "head-event", "allday-info");
156
+ return renderPopover(tempContent, event, "bottom");
157
+ }) : vue.createVNode(vue.resolveComponent("iBizNoData"), {
158
+ "hideNoDataImage": true
159
+ }, null)])])]), vue.createVNode("div", {
109
160
  "class": ns.e("resizable-handle"),
110
161
  "draggable": "true",
111
162
  "onDrag": (event) => handleDrag(event),
@@ -148,11 +199,10 @@ const CalendarDaily = /* @__PURE__ */ vue.defineComponent({
148
199
  }
149
200
  const eventContentStyle = {
150
201
  background: event.bkColorFade,
151
- "border-left": "3px solid ".concat(event.bkColor),
152
- color: event.color
202
+ "border-left": "3px solid ".concat(event.bkColor)
153
203
  };
154
- const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "event", "time-pane");
155
- return tempContent;
204
+ const tempContent = renderEventItem("content", eventBoxStyle, eventContentStyle, event, index, "", "time-pane");
205
+ return renderPopover(tempContent, event);
156
206
  })])])]), util.isToday(props == null ? void 0 : props.selectedDay, /* @__PURE__ */ new Date()) ? vue.createVNode("div", {
157
207
  "class": ns.em("time-pane", "current-time"),
158
208
  "style": {
@@ -1 +1 @@
1
- .ibiz-calendar-daily{width:100%;height:100%;flex:1;display:flex;flex-direction:column;overflow:hidden}.ibiz-calendar-daily__calendar-daily__head{width:100%;height:58px;min-height:58px;padding-bottom:0;display:flex;position:relative;z-index:100}.ibiz-calendar-daily__allday-info{min-width:90px;height:100%;padding-left:40px;color:#999;overflow:hidden;display:flex;align-items:center}.ibiz-calendar-daily__allday-info--work-items{width:100%;height:100%;padding-top:5px;overflow:hidden}.ibiz-calendar-daily__allday-info--work-items-scroll{height:100%;overflow-y:scroll;overflow-x:hidden}.ibiz-calendar-daily__allday-info--work-items-body{height:auto}.ibiz-calendar-daily__allday-info--event-box{width:100%;height:22px;line-height:22px;padding:0 8px;margin-top:4px}.ibiz-calendar-daily__allday-info--event-box:nth-child(1){margin-top:0}.ibiz-calendar-daily__allday-info--event-content{display:block;width:100%;height:100%;border:none;outline:0;text-align:left;border-radius:4px;background:#f5f5f5;border-radius:4px;position:relative;cursor:pointer}.ibiz-calendar-daily__allday-info--event-content:active{animation:move 1s linear}.ibiz-calendar-daily__allday-info--morphing-animation{height:100%;position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);background-color:pink;animation:move 1s linear}.ibiz-calendar-daily__allday-info--event-summary{width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-daily__allday-info--event-icon{margin-right:6px}.ibiz-calendar-daily__allday-info--event-name{margin-right:6px}.ibiz-calendar-daily__allday-info--time-range{margin-right:6px}.ibiz-calendar-daily__allday-info--check{color:var(--ibiz-color-primary);position:absolute;right:6px;top:50%;transform:translate(0,-50%)}.ibiz-calendar-daily__allday-resize-line{width:100%;height:3px;background-color:var(--ibiz-color-border)}.ibiz-calendar-daily__resizable-handle{width:100%;height:10px;position:absolute;bottom:-4px;display:flex;align-items:center;cursor:row-resize}.ibiz-calendar-daily__scroll-area{flex:1;overflow-y:scroll;overflow-x:hidden}.ibiz-calendar-daily__time-pane{height:auto;width:calc(100% - 5px);display:flex;flex-basis:0%;flex-grow:1;flex-shrink:1;position:relative}.ibiz-calendar-daily__time-pane--time-labels{width:90px;min-width:90px;padding:27px 0 27px 40px;border-right:1px solid var(--ibiz-color-border);position:sticky;left:0}.ibiz-calendar-daily__time-pane--time-label{margin-top:38px;height:22px;text-align:left}.ibiz-calendar-daily__time-pane--time-label:nth-child(1){height:22px;margin-top:22px}.ibiz-calendar-daily__time-pane--time-columns{position:relative;flex:1;padding-bottom:59px}.ibiz-calendar-daily__time-pane--time-column{height:60px;border-top:1px dashed var(--ibiz-color-border)}.ibiz-calendar-daily__time-pane--time-column:first-child{border-top:none}.ibiz-calendar-daily__time-pane--time-column-last{border-bottom:1px dashed var(--ibiz-color-border)}.ibiz-calendar-daily__time-pane--event-timed-container{position:absolute;top:0;width:100%;height:100%;overflow:hidden}.ibiz-calendar-daily__time-pane--container-scroll{position:relative;top:0;overflow:auto;height:100%;width:auto;overflow-y:hidden;overflow-x:auto}.ibiz-calendar-daily__time-pane--event-box{position:absolute;width:auto;height:auto;padding-left:4px}.ibiz-calendar-daily__time-pane--event-content{width:100%;height:100%;padding:12px 8px;line-height:100%;border:none;outline:0;text-align:left;overflow:hidden;position:relative;z-index:3;cursor:pointer}.ibiz-calendar-daily__time-pane--event-content:active{animation:pulse 1s linear}.ibiz-calendar-daily__time-pane--event-content.is-selected-event{border:1px solid var(--ibiz-color-primary)}.ibiz-calendar-daily__time-pane--event-summary{width:100%;height:100%;line-height:30px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-daily__time-pane--event-summary>span{margin-right:4px}.ibiz-calendar-daily__time-pane--current-time{width:calc(100% - 36px);margin-left:40px;position:absolute;top:38px;left:-3px;height:2px;background-color:var(--ibiz-color-primary);display:flex;align-items:center}.ibiz-calendar-daily__time-pane--current-time-label{width:48px;min-width:48px;max-width:18px;height:24px;text-align:center;line-height:24px;border:none;border-radius:4px;background:var(--ibiz-color-primary);color:#fff}.ibiz-calendar-daily__event-popover{padding:0;width:auto;height:auto;position:relative}.ibiz-calendar-daily__event-popover.el-popover.el-popper{padding:24px 12px 8px 12px}.ibiz-calendar-daily__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-daily__event-popover--scroll{width:auto;height:auto;min-width:200px;min-height:100px;overflow:auto}.ibiz-calendar-daily__event-popover--close{position:absolute;right:8px;top:8px;cursor:pointer}.ibiz-calendar-daily__event-popover--close:hover .el-icon{background:var(--ibiz-color-primary);border-radius:50%}.ibiz-calendar-daily__event-popover--close:hover .el-icon svg{fill:#fff}.ibiz-calendar-daily__event-popover .el-icon{font-size:20px;min-height:24px;min-width:24px;display:flex;justify-content:center;align-items:center}.ibiz-calendar-daily__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)}}
1
+ .ibiz-calendar-daily{width:100%;height:100%;flex:1;display:flex;flex-direction:column;overflow:hidden}.ibiz-calendar-daily__calendar-daily__head{width:100%;height:58px;min-height:58px;padding-bottom:0;display:flex;position:relative;z-index:100}.ibiz-calendar-daily__allday-info{min-width:90px;height:100%;padding-left:40px;color:var(--ibiz-color-text-3);overflow:hidden;display:flex;align-items:center}.ibiz-calendar-daily__allday-info--work-items{width:100%;height:100%;padding-top:5px;overflow:hidden}.ibiz-calendar-daily__allday-info--work-items-scroll{height:100%;overflow-y:scroll;overflow-x:hidden}.ibiz-calendar-daily__allday-info--work-items-body{height:auto}.ibiz-calendar-daily__allday-info--work-items-body:has(.ibiz-no-data){height:100%}.ibiz-calendar-daily__allday-info--work-items-body:has(.ibiz-no-data) .ibiz-no-data{min-height:100%;min-width:100%}.ibiz-calendar-daily__allday-info--work-items-body:has(.ibiz-no-data) .ibiz-no-data .el-empty__description{margin:0}.ibiz-calendar-daily__allday-info--event-box{width:100%;height:22px;line-height:22px;padding:0 8px;margin-top:4px}.ibiz-calendar-daily__allday-info--event-box:nth-child(1){margin-top:0}.ibiz-calendar-daily__allday-info--event-content{display:block;width:100%;height:100%;border:none;outline:0;text-align:left;border-radius:4px;background:var(--ibiz-color-tertiary-light-hover);border-radius:4px;position:relative;cursor:pointer}.ibiz-calendar-daily__allday-info--event-content.is-selected-event{padding-right:20px}.ibiz-calendar-daily__allday-info--event-summary{width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-daily__allday-info--event-icon{margin-right:6px}.ibiz-calendar-daily__allday-info--event-name{margin-right:6px}.ibiz-calendar-daily__allday-info--time-range{margin-right:6px}.ibiz-calendar-daily__allday-info--check{color:var(--ibiz-color-primary);position:absolute;right:6px;top:50%;transform:translate(0,-50%)}.ibiz-calendar-daily__allday-resize-line{width:100%;height:3px;background-color:var(--ibiz-color-border)}.ibiz-calendar-daily__resizable-handle{width:100%;height:10px;position:absolute;bottom:-4px;display:flex;align-items:center;cursor:row-resize}.ibiz-calendar-daily__scroll-area{flex:1;overflow-y:scroll;overflow-x:hidden}.ibiz-calendar-daily__time-pane{height:auto;width:calc(100% - 5px);display:flex;flex-basis:0%;flex-grow:1;flex-shrink:1;position:relative}.ibiz-calendar-daily__time-pane--time-labels{width:90px;min-width:90px;padding:27px 0 27px 40px;border-right:1px solid var(--ibiz-color-border);position:sticky;left:0}.ibiz-calendar-daily__time-pane--time-label{margin-top:38px;height:22px;text-align:left}.ibiz-calendar-daily__time-pane--time-label:nth-child(1){height:22px;margin-top:22px}.ibiz-calendar-daily__time-pane--time-columns{position:relative;flex:1;padding-bottom:59px}.ibiz-calendar-daily__time-pane--time-column{height:60px;border-top:1px dashed var(--ibiz-color-border)}.ibiz-calendar-daily__time-pane--time-column:first-child{border-top:none}.ibiz-calendar-daily__time-pane--time-column-last{border-bottom:1px dashed var(--ibiz-color-border)}.ibiz-calendar-daily__time-pane--event-timed-container{position:absolute;top:0;width:100%;height:100%;overflow:hidden}.ibiz-calendar-daily__time-pane--container-scroll{position:relative;top:0;overflow:auto;height:100%;width:auto;overflow-y:hidden;overflow-x:auto}.ibiz-calendar-daily__time-pane--event-box{position:absolute;width:auto;height:auto;padding-left:4px}.ibiz-calendar-daily__time-pane--event-content{position:relative;z-index:3;width:100%;height:100%;min-height:22px;padding:8px;overflow:hidden;line-height:100%;text-align:left;cursor:pointer;border:none;outline:0}.ibiz-calendar-daily__time-pane--event-content.is-selected-event{border:1px solid var(--ibiz-color-primary)}.ibiz-calendar-daily__time-pane--event-summary{width:100%;height:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.ibiz-calendar-daily__time-pane--event-summary>span{margin-right:4px}.ibiz-calendar-daily__time-pane--current-time{width:calc(100% - 36px);margin-left:40px;position:absolute;top:38px;left:-3px;height:2px;background-color:var(--ibiz-color-primary);display:flex;align-items:center}.ibiz-calendar-daily__time-pane--current-time-label{width:48px;min-width:48px;max-width:18px;height:24px;text-align:center;line-height:24px;border:none;border-radius:4px;background:var(--ibiz-color-primary);color:var(--ibiz-color-primary-text)}.ibiz-calendar-daily__event-popover{position:relative;width:auto;height:auto;padding:0}.ibiz-calendar-daily__event-popover.el-popover.el-popper{padding:8px}.ibiz-calendar-daily__event-popover:has(.ibiz-control-calendar-item-default){display:none!important}.ibiz-calendar-daily__event-popover--body{width:auto;height:auto;overflow:hidden}.ibiz-calendar-daily__event-popover--scroll{width:auto;min-width:200px;height:auto;max-height:80%;overflow:auto;pointer-events:none}.ibiz-calendar-daily__event-popover--scroll .ibiz-control-calendar-item:last-child{margin-bottom:0}.ibiz-calendar-daily__event-popover--scroll .ibiz-control-calendar-item.is-active{background-color:transparent;border-color:transparent}.ibiz-calendar-daily__event-popover--close{position:absolute;top:8px;right:8px;display:none;cursor:pointer}.ibiz-calendar-daily__event-popover--close:hover .el-icon{background:var(--ibiz-color-primary);border-radius:50%}.ibiz-calendar-daily__event-popover--close:hover .el-icon svg{fill:var(--ibiz-color-white)}.ibiz-calendar-daily__event-popover .el-icon{display:flex;align-items:center;justify-content:center;min-width:24px;min-height:24px;font-size:20px}.ibiz-calendar-daily__event-popover .el-icon svg{fill:var(--el-text-color-secondary)}
@@ -26,7 +26,8 @@ const useCalendarDaily = (props, emit) => {
26
26
  };
27
27
  const handleDrag = (event) => {
28
28
  const heightChange = event.clientY - initialMouseY + initialHeight;
29
- resizableHand.value.style.height = "".concat(heightChange, "px");
29
+ if (heightChange < 320)
30
+ resizableHand.value.style.height = "".concat(heightChange, "px");
30
31
  };
31
32
  const events = vue.computed(() => {
32
33
  return computeUIEvents(
@@ -36,14 +37,17 @@ const useCalendarDaily = (props, emit) => {
36
37
  calendarDaily.value
37
38
  );
38
39
  });
39
- const computeUIEvents = (events2, curDate, legends2, calendarDaily2) => {
40
+ const computeUIEvents = (_events, curDate, _legends, _calendarDaily) => {
40
41
  const tempEvents = [];
41
42
  const tempColors = /* @__PURE__ */ new Map();
42
43
  let contentWidth = 0;
43
- if (calendarDaily2) {
44
- contentWidth = parseInt(window.getComputedStyle(calendarDaily2).width, 10);
44
+ if (_calendarDaily) {
45
+ contentWidth = parseInt(
46
+ window.getComputedStyle(_calendarDaily).width,
47
+ 10
48
+ );
45
49
  }
46
- events2.sort((a, b) => {
50
+ _events.sort((a, b) => {
47
51
  const beginTimeDifference = new Date(a.beginTime).getTime() - new Date(b.beginTime).getTime();
48
52
  let type;
49
53
  if (beginTimeDifference === 0) {
@@ -53,18 +57,33 @@ const useCalendarDaily = (props, emit) => {
53
57
  }
54
58
  return type;
55
59
  });
56
- const tempArray = events2.filter((event) => {
57
- return event && event.beginTime && event.endTime && util.isToday(curDate, event.beginTime) && util.isToday(curDate, event.endTime);
60
+ const tempArray = [];
61
+ _events.forEach((event) => {
62
+ const targetLegend = _legends.find(
63
+ (legendItem) => Object.is(legendItem.id, event.itemType)
64
+ );
65
+ if (!targetLegend || !targetLegend.isShow)
66
+ return;
67
+ if (event && event.beginTime && util.checkDateRangeIncludes(event.beginTime, event.endTime, curDate)) {
68
+ const item = { ...event, targetLegend };
69
+ const targetEvent = selectedData.value.find(
70
+ (tempItem) => tempItem.id === event.id
71
+ );
72
+ if (targetEvent) {
73
+ Object.assign(item, { isSelectedEvent: true });
74
+ } else {
75
+ Object.assign(item, { isSelectedEvent: false });
76
+ }
77
+ if (!event.endTime && event.beginTime) {
78
+ Object.assign(item, { endTime: event.beginTime });
79
+ }
80
+ tempArray.push(item);
81
+ }
58
82
  });
59
83
  tempArray.forEach((event, index) => {
84
+ const { targetLegend } = event;
60
85
  const tempItem = {};
61
86
  Object.assign(tempItem, event);
62
- const targetLegend = legends2.find(
63
- (legendItem) => Object.is(legendItem.id, event.itemType)
64
- );
65
- const targetEvent = selectedData.value.find(
66
- (item) => item.id === event.id
67
- );
68
87
  Object.assign(tempItem, { zIndex: index + 1 });
69
88
  const length = tempArray.length;
70
89
  const itemWidth = (contentWidth - 90) / length;
@@ -76,25 +95,40 @@ const useCalendarDaily = (props, emit) => {
76
95
  styleLeft = "".concat(index * 100, "px");
77
96
  }
78
97
  Object.assign(tempItem, { width, styleLeft });
79
- if (event.beginTime && event.endTime) {
80
- const height = handleEventHeight(
81
- event.beginTime,
82
- event.endTime,
83
- curDate
84
- );
85
- const timeRange = util.handleTimeRange(
86
- event.beginTime,
87
- event.endTime,
88
- "HH:mm"
89
- );
90
- Object.assign(tempItem, { height, timeRange });
91
- }
92
- if (event.beginTime) {
93
- const { styleTop } = handleTopOrCurVal(new Date(event.beginTime));
94
- Object.assign(tempItem, { styleTop });
98
+ let height = "auto";
99
+ let styleTop = 60;
100
+ const timeRange = util.handleTimeRange(
101
+ event.beginTime,
102
+ event.endTime,
103
+ "YYYY-MM-DD HH:mm:ss"
104
+ );
105
+ if (util.isToday(event.beginTime, event.endTime)) {
106
+ height = getEventHeight(event.beginTime, event.endTime);
107
+ const tempVal = handleTopOrCurVal(new Date(event.beginTime));
108
+ styleTop = tempVal.styleTop;
109
+ } else if (util.isToday(event.beginTime, curDate) && !util.isToday(event.endTime, curDate)) {
110
+ const endDate = new Date(curDate);
111
+ endDate.setHours(23, 59, 59, 0);
112
+ height = getEventHeight(event.beginTime, endDate);
113
+ const tempVal = handleTopOrCurVal(new Date(event.beginTime));
114
+ styleTop = tempVal.styleTop;
115
+ } else if (util.isToday(event.endTime, curDate) && !util.isToday(event.beginTime, curDate)) {
116
+ const beginDate = new Date(curDate);
117
+ beginDate.setHours(0, 0, 0, 0);
118
+ height = getEventHeight(beginDate, event.endTime);
119
+ const tempVal = handleTopOrCurVal(new Date(beginDate));
120
+ styleTop = tempVal.styleTop;
121
+ } else {
122
+ const date = new Date(curDate);
123
+ const beginDate = new Date(date.setHours(0, 0, 0, 0));
124
+ const endDate = new Date(date.setHours(23, 59, 59, 59));
125
+ height = getEventHeight(beginDate, endDate);
126
+ const tempVal = handleTopOrCurVal(new Date(beginDate));
127
+ styleTop = tempVal.styleTop;
95
128
  }
129
+ Object.assign(tempItem, { height, styleTop, timeRange });
96
130
  if (!(event == null ? void 0 : event.bkColor)) {
97
- const bkColor = targetLegend ? targetLegend.bkcolor : util.handleBkColor(tempColors, event.itemType);
131
+ const bkColor = targetLegend && targetLegend.bkcolor || util.handleBkColor(tempColors, event.itemType);
98
132
  Object.assign(tempItem, { bkColor });
99
133
  }
100
134
  if (tempItem.bkColor) {
@@ -103,27 +137,26 @@ const useCalendarDaily = (props, emit) => {
103
137
  bkColorFade: tempBkColor
104
138
  });
105
139
  }
140
+ if (!(event == null ? void 0 : event.color)) {
141
+ const tempColor = targetLegend && targetLegend.color;
142
+ Object.assign(tempItem, {
143
+ color: tempColor
144
+ });
145
+ }
106
146
  if ((tempItem == null ? void 0 : tempItem.height) && (tempItem == null ? void 0 : tempItem.height) > 10) {
107
147
  const border = "1px solid #FFF";
108
148
  Object.assign(tempItem, { border });
109
149
  } else {
110
150
  Object.assign(tempItem, { border: "none" });
111
151
  }
112
- if (targetEvent) {
113
- Object.assign(tempItem, { isSelectedEvent: true });
114
- } else {
115
- Object.assign(tempItem, { isSelectedEvent: false });
116
- }
117
- if (targetLegend && targetLegend.isShow || !targetLegend) {
118
- tempEvents.push(tempItem);
119
- }
152
+ tempEvents.push(tempItem);
120
153
  });
121
154
  tempColors.clear();
122
155
  return tempEvents;
123
156
  };
124
- const handleEventHeight = (startTime, endTime, date) => {
157
+ const getEventHeight = (startTime, endTime) => {
125
158
  let height = 1;
126
- if (util.isToday(startTime, date) && util.isToday(endTime, date)) {
159
+ if (util.isToday(startTime, endTime)) {
127
160
  const difference = new Date(endTime).getTime() - new Date(startTime).getTime();
128
161
  height = Math.floor(difference / (1e3 * 60));
129
162
  }
@@ -163,8 +196,25 @@ const useCalendarDaily = (props, emit) => {
163
196
  }
164
197
  return tempDrawData;
165
198
  };
166
- const eventClick = async (item, location) => {
167
- const res = await util.handleEVentClick(
199
+ const handleEventClick = (item, location) => {
200
+ const res = util.handleEmit(
201
+ "eventClick",
202
+ item,
203
+ location,
204
+ props.events,
205
+ multiple.value,
206
+ selectedData.value,
207
+ emit
208
+ );
209
+ const { tempSelectedData, isSelectedEvent } = res;
210
+ if (!isSelectedEvent) {
211
+ Object.assign(item, { isSelectedEvent });
212
+ }
213
+ selectedData.value = tempSelectedData;
214
+ };
215
+ const handleEventDblClick = (item, location) => {
216
+ const res = util.handleEmit(
217
+ "eventDblClick",
168
218
  item,
169
219
  location,
170
220
  props.events,
@@ -178,6 +228,9 @@ const useCalendarDaily = (props, emit) => {
178
228
  }
179
229
  selectedData.value = tempSelectedData;
180
230
  };
231
+ const eventContextmenu = async (item, evt) => {
232
+ emit("eventContextmenu", { evt, data: [item] });
233
+ };
181
234
  return {
182
235
  drawData,
183
236
  curTimeTimer,
@@ -190,7 +243,9 @@ const useCalendarDaily = (props, emit) => {
190
243
  handleCurTime,
191
244
  handleDrag,
192
245
  handleDragStart,
193
- eventClick,
246
+ handleEventClick,
247
+ handleEventDblClick,
248
+ eventContextmenu,
194
249
  initDrawData
195
250
  };
196
251
  };