@ibiz-template/vue3-components 0.7.41-alpha.14 → 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 (105) 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-z0RY8bO1.js → wang-editor-yDknWojV.js} +1 -1
  6. package/dist/{xlsx-util-8Du1A340.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 +106 -25
  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.mjs +6 -6
  46. package/es/control/drtab/drtab.mjs +6 -6
  47. package/es/control/drtab/flow-drtab.css +1 -1
  48. package/es/control/drtab/flow-drtab.mjs +3 -1
  49. package/es/control/grid/virtualized-table/virtualized-table.css +1 -1
  50. package/es/control/grid/virtualized-table/virtualized-table.mjs +4 -3
  51. package/es/control/grid/virtualized-table/virtualized-table.util.mjs +4 -4
  52. package/es/control/kanban/kanban.css +1 -1
  53. package/es/control/kanban/kanban.mjs +6 -9
  54. package/es/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  55. package/es/control/kanban/{lane-kanban/lane-kanban.d.ts → swimlane-kanban/swimlane-kanban.d.ts} +3 -2
  56. package/es/control/kanban/{lane-kanban/lane-kanban.mjs → swimlane-kanban/swimlane-kanban.mjs} +22 -29
  57. package/es/control/map/map.mjs +1 -1
  58. package/es/control/medit-view-panel/index.d.ts +2 -0
  59. package/es/control/medit-view-panel/medit-view-panel.d.ts +2 -0
  60. package/es/control/medit-view-panel/medit-view-panel.mjs +19 -6
  61. package/es/control/search-bar/search-bar.mjs +1 -1
  62. package/es/editor/span/span/span.mjs +2 -1
  63. package/es/view-engine/index.mjs +4 -0
  64. package/lib/common/carousel/carousel.css +1 -1
  65. package/lib/common/map-chart/map-chart.cjs +5 -13
  66. package/lib/control/calendar/calendar-util.cjs +30 -0
  67. package/lib/control/calendar/calendar.cjs +104 -23
  68. package/lib/control/calendar/calendar.css +1 -1
  69. package/lib/control/calendar/components/calendar-daily/calendar-daily.cjs +64 -14
  70. package/lib/control/calendar/components/calendar-daily/calendar-daily.css +1 -1
  71. package/lib/control/calendar/components/calendar-daily/use-calendar-daily.cjs +98 -43
  72. package/lib/control/calendar/components/calendar-week/calendar-week.cjs +73 -37
  73. package/lib/control/calendar/components/calendar-week/calendar-week.css +1 -1
  74. package/lib/control/calendar/components/calendar-week/use-calendar-week.cjs +311 -153
  75. package/lib/control/calendar/components/constant/event.cjs +2 -0
  76. package/lib/control/calendar/components/constant/index.cjs +1 -0
  77. package/lib/control/calendar/components/custom-calendar/custom-calendar.cjs +8 -10
  78. package/lib/control/calendar/components/custom-calendar/custom-calendar.css +1 -1
  79. package/lib/control/calendar/components/custom-calendar/use-custom-calendar.cjs +4 -0
  80. package/lib/control/calendar/components/interface/calendar-daily.cjs +6 -1
  81. package/lib/control/calendar/components/interface/calendar-week.cjs +2 -1
  82. package/lib/control/calendar/components/interface/custom-calendar.cjs +2 -1
  83. package/lib/control/calendar/components/util/index.cjs +2 -0
  84. package/lib/control/calendar/components/util/util.cjs +11 -1
  85. package/lib/control/drbar/drbar.cjs +6 -6
  86. package/lib/control/drtab/drtab.cjs +6 -6
  87. package/lib/control/drtab/flow-drtab.cjs +3 -1
  88. package/lib/control/drtab/flow-drtab.css +1 -1
  89. package/lib/control/grid/virtualized-table/virtualized-table.cjs +3 -2
  90. package/lib/control/grid/virtualized-table/virtualized-table.css +1 -1
  91. package/lib/control/grid/virtualized-table/virtualized-table.util.cjs +4 -4
  92. package/lib/control/kanban/kanban.cjs +6 -9
  93. package/lib/control/kanban/kanban.css +1 -1
  94. package/lib/control/kanban/{lane-kanban/lane-kanban.cjs → swimlane-kanban/swimlane-kanban.cjs} +22 -29
  95. package/lib/control/kanban/swimlane-kanban/swimlane-kanban.css +1 -0
  96. package/lib/control/map/map.cjs +1 -1
  97. package/lib/control/medit-view-panel/medit-view-panel.cjs +19 -6
  98. package/lib/control/search-bar/search-bar.cjs +1 -1
  99. package/lib/editor/span/span/span.cjs +2 -1
  100. package/lib/view-engine/index.cjs +4 -0
  101. package/package.json +4 -4
  102. package/dist/index-1fHusiqt.js +0 -4
  103. package/dist/map-chart-HL7emT5a.js +0 -1
  104. package/es/control/kanban/lane-kanban/lane-kanban.css +0 -1
  105. package/lib/control/kanban/lane-kanban/lane-kanban.css +0 -1
@@ -2,14 +2,14 @@ import { isVNode, ref, computed, resolveComponent, createVNode, createTextVNode,
2
2
  import { useNamespace, useUIStore } from '@ibiz-template/vue3-util';
3
3
  import draggable from 'vuedraggable';
4
4
  import { showTitle } from '@ibiz-template/core';
5
- import './lane-kanban.css';
5
+ import './swimlane-kanban.css';
6
6
 
7
7
  "use strict";
8
8
  function _isSlot(s) {
9
9
  return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
10
10
  }
11
- const LaneKanban = /* @__PURE__ */ defineComponent({
12
- name: "IBizLaneKanban",
11
+ const SwimlaneKanban = /* @__PURE__ */ defineComponent({
12
+ name: "IBizSwimlaneKanban",
13
13
  components: {
14
14
  draggable
15
15
  },
@@ -24,7 +24,7 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
24
24
  },
25
25
  setup(props) {
26
26
  var _a, _b;
27
- const ns = useNamespace("lane-kanban");
27
+ const ns = useNamespace("swimlane-kanban");
28
28
  const c = props.controller;
29
29
  const {
30
30
  zIndex
@@ -35,25 +35,16 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
35
35
  };
36
36
  const expandAll = ref(true);
37
37
  const dropdownKey = ref();
38
- const cardStyle = computed(() => {
39
- const {
40
- cardWidth,
41
- cardHeight
42
- } = c.model;
43
- const style = {};
44
- if (cardWidth)
45
- Object.assign(style, {
46
- width: "".concat(cardWidth, "px")
47
- });
48
- if (cardHeight)
49
- Object.assign(style, {
50
- height: "".concat(cardHeight, "px")
51
- });
52
- return style;
53
- });
54
38
  const disabled = computed(() => {
55
39
  return !c.state.draggable || c.draggableMode === 0 || c.state.updating || c.state.readonly;
56
40
  });
41
+ const width = computed(() => {
42
+ const {
43
+ groupWidth,
44
+ cardWidth
45
+ } = c.model;
46
+ return groupWidth || cardWidth || 320;
47
+ });
57
48
  const batchKey = computed(() => {
58
49
  return c.state.batching ? c.state.selectGroupKey : "";
59
50
  });
@@ -115,7 +106,7 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
115
106
  };
116
107
  const handleExpandAll = () => {
117
108
  expandAll.value = !expandAll.value;
118
- c.state.lanes.forEach((lane) => {
109
+ c.state.swimlanes.forEach((lane) => {
119
110
  lane.isExpand = expandAll.value;
120
111
  });
121
112
  };
@@ -317,7 +308,7 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
317
308
  }, _isSlot(_slot2 = ibiz.i18n.t("control.kanban.selectAll")) ? _slot2 : {
318
309
  default: () => [_slot2]
319
310
  }), createVNode("span", {
320
- "class": ns.be("batch", "info"),
311
+ "class": ns.em("batch", "info"),
321
312
  "innerHTML": ibiz.i18n.t("control.kanban.selectedDataCount", {
322
313
  length: selectedData.length
323
314
  })
@@ -347,7 +338,6 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
347
338
  return createVNode(resolveComponent("el-card"), {
348
339
  "shadow": "hover",
349
340
  "class": [ns.e("card"), ns.is("selected", isSelected(element)), ns.is("disabled", c.state.draggable && c.state.updating)],
350
- "body-style": cardStyle.value,
351
341
  "onClick": () => c.onRowClick(element),
352
342
  "onDblclick": () => c.onDbRowClick(element)
353
343
  }, {
@@ -363,9 +353,7 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
363
353
  const renderBody = () => {
364
354
  return createVNode("div", {
365
355
  "class": ns.e("body")
366
- }, [createVNode("div", {
367
- "class": ns.em("body", "scollor")
368
- }, [c.state.lanes.map((lane, index) => {
356
+ }, [c.state.swimlanes.map((lane, index) => {
369
357
  return createVNode("div", {
370
358
  "class": [ns.em("body", "row"), ns.is("expand", lane.isExpand)]
371
359
  }, [createVNode("div", {
@@ -389,21 +377,26 @@ const LaneKanban = /* @__PURE__ */ defineComponent({
389
377
  }, ["".concat(lane.count, " \u4E2A").concat(c.laneDescription)])])])]), c.state.groups.map((group) => {
390
378
  return renderBodyCell(index, lane, group);
391
379
  })]);
392
- })])]);
380
+ })]);
393
381
  };
394
382
  return {
395
383
  ns,
384
+ width,
396
385
  renderHeader,
397
386
  renderBody
398
387
  };
399
388
  },
400
389
  render() {
390
+ var _a;
401
391
  return createVNode("div", {
402
- "class": this.ns.b()
392
+ "class": [this.ns.b(), this.ns.e((_a = this.controller.model.groupStyle) == null ? void 0 : _a.toLowerCase())],
393
+ "style": {
394
+ "--ibiz-swimlane-kanban-width": "".concat(this.width, "px")
395
+ }
403
396
  }, [createVNode("div", {
404
397
  "class": this.ns.e("table")
405
398
  }, [this.renderHeader(), this.renderBody()])]);
406
399
  }
407
400
  });
408
401
 
409
- export { LaneKanban };
402
+ export { SwimlaneKanban };
@@ -82,7 +82,7 @@ const MapControl = /* @__PURE__ */ defineComponent({
82
82
  const {
83
83
  state
84
84
  } = this.c;
85
- if (!state.isCreated)
85
+ if (!state.isCreated || !state.isLoaded)
86
86
  return;
87
87
  return createVNode(resolveComponent("iBizControlNavigation"), {
88
88
  "controller": this.c
@@ -16,6 +16,8 @@ export declare const IBizMEditViewPanelControl: import("@ibiz-template/vue3-util
16
16
  ns: import("@ibiz-template/core").Namespace;
17
17
  panelContent: import("vue").Ref<Element | null>;
18
18
  handleDelete: (item: import("@ibiz-template/runtime").IPanelUiItem) => void;
19
+ onTabChange: (name: string) => void;
20
+ handleTabDelete: (item: import("@ibiz-template/runtime").IPanelUiItem, event: MouseEvent) => void;
19
21
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
22
  modelData: {
21
23
  type: import("vue").PropType<import("@ibiz/model-core").IDEMultiEditViewPanel>;
@@ -30,6 +30,8 @@ export declare const MEditViewPanelControl: import("vue").DefineComponent<{
30
30
  ns: import("@ibiz-template/core").Namespace;
31
31
  panelContent: Ref<Element | null>;
32
32
  handleDelete: (item: IPanelUiItem) => void;
33
+ onTabChange: (name: string) => void;
34
+ handleTabDelete: (item: IPanelUiItem, event: MouseEvent) => void;
33
35
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
34
36
  /**
35
37
  * @description 多编辑视图面板模型数据
@@ -42,6 +42,14 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
42
42
  const handleDelete = (item) => {
43
43
  c.handleDelete(item);
44
44
  };
45
+ const onTabChange = (name) => {
46
+ c.state.activeTab = name;
47
+ c.onTabChange(name);
48
+ };
49
+ const handleTabDelete = (item, event) => {
50
+ event.stopPropagation();
51
+ c.handleDelete(item);
52
+ };
45
53
  onMounted(() => {
46
54
  if (panelContent.value) {
47
55
  mutationObserver = new MutationObserver(() => {
@@ -74,7 +82,9 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
74
82
  c,
75
83
  ns,
76
84
  panelContent,
77
- handleDelete
85
+ handleDelete,
86
+ onTabChange,
87
+ handleTabDelete
78
88
  };
79
89
  },
80
90
  render() {
@@ -84,8 +94,9 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
84
94
  return createVNode(resolveComponent("el-tabs"), {
85
95
  "class": this.ns.b("tabs"),
86
96
  "modelValue": this.c.state.activeTab,
87
- "onUpdate:modelValue": ($event) => this.c.state.activeTab = $event
88
- }, _isSlot(_slot = this.c.state.panelUiItems.map((item, index) => {
97
+ "onUpdate:modelValue": ($event) => this.c.state.activeTab = $event,
98
+ "onTabChange": this.onTabChange
99
+ }, _isSlot(_slot = this.c.state.panelUiItems.map((item) => {
89
100
  return createVNode(resolveComponent("el-tab-pane"), {
90
101
  "key": item.id + item.srfmajortext,
91
102
  "name": item.id
@@ -95,7 +106,7 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
95
106
  "class": this.ns.b("tab-label")
96
107
  }, [createVNode("span", null, [item.srfmajortext]), createVNode("ion-icon", {
97
108
  "name": "close-outline",
98
- "onClick": () => this.c.handleTabDelete(item, index)
109
+ "onClick": (event) => this.handleTabDelete(item, event)
99
110
  }, null)]);
100
111
  },
101
112
  default: () => {
@@ -103,7 +114,8 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
103
114
  context: item.context,
104
115
  params: item.params,
105
116
  viewId: this.c.model.embeddedAppViewId,
106
- onDataChange: (args) => this.c.onViewDataChange(args, item.id)
117
+ onDataChange: (args) => this.c.onViewDataChange(args, item.id),
118
+ onCreated: (event) => this.c.onViewCreated(event, item.id)
107
119
  });
108
120
  }
109
121
  });
@@ -120,7 +132,8 @@ const MEditViewPanelControl = /* @__PURE__ */ defineComponent({
120
132
  context: item.context,
121
133
  params: item.params,
122
134
  viewId: this.c.model.embeddedAppViewId,
123
- onDataChange: (args) => this.c.onViewDataChange(args, item.id)
135
+ onDataChange: (args) => this.c.onViewDataChange(args, item.id),
136
+ onCreated: (event) => this.c.onViewCreated(event, item.id)
124
137
  }), createVNode("div", {
125
138
  "class": this.ns.b("close")
126
139
  }, [createVNode("ion-icon", {
@@ -40,7 +40,7 @@ const SearchBarControl = /* @__PURE__ */ defineComponent({
40
40
  setup() {
41
41
  var _a;
42
42
  const c = useControlController((...args) => new SearchBarController(...args));
43
- c.setStorageKeyFn(useLocalCacheKey(c.context, "SEARCH_BAR_SELECTED_GROUP", c.view.modal.routeDepth));
43
+ c.setStorageKeyFn(useLocalCacheKey(c.context, "SEARCH_BAR_SELECTED_GROUP", c.view.modal.routeDepth, "@", "".concat(c.view.model.codeName, "@").concat(c.model.codeName)));
44
44
  const ns = useNamespace("control-".concat(c.model.controlType.toLowerCase()));
45
45
  let isSearch = false;
46
46
  const onSearch = () => {
@@ -151,7 +151,8 @@ const IBizSpan = /* @__PURE__ */ defineComponent({
151
151
  "class": this.ns.e("code-list"),
152
152
  "codeListItems": this.items,
153
153
  "codeList": this.c.codeList,
154
- "value": this.text
154
+ "value": this.text,
155
+ "convertToCodeItemText": this.c.convertToCodeItemText
155
156
  }, null);
156
157
  }
157
158
  } else if (this.text) {
@@ -206,6 +206,10 @@ const IBizViewEngine = {
206
206
  "VIEW_DEPICKUPDATAVIEW",
207
207
  (c) => new PickupDataViewEngine(c)
208
208
  );
209
+ ibiz.engine.register(
210
+ "VIEW_PickupDataView",
211
+ (c) => new PickupDataViewEngine(c)
212
+ );
209
213
  ibiz.engine.register(
210
214
  "VIEW_DEINDEXPICKUPDATAVIEW",
211
215
  (c) => new PickupDataViewEngine(c)
@@ -1 +1 @@
1
- .ibiz-carousel-component .el-carousel__container .el-carousel__item{display:flex;align-items:center;justify-content:center}.ibiz-carousel-component .el-carousel__container .el-carousel__item img{display:inline-block;width:100%;height:100%}
1
+ .ibiz-carousel-component .el-carousel__container .el-carousel__item{display:flex;align-items:center;justify-content:center}.ibiz-carousel-component .el-carousel__container .el-carousel__item img{display:inline-block;width:100%;height:100%;-o-object-fit:contain;object-fit:contain}
@@ -46,8 +46,7 @@ const IBizMapChart = /* @__PURE__ */ vue.defineComponent({
46
46
  historyNames,
47
47
  changeMap,
48
48
  getCityName,
49
- goBack,
50
- refresh
49
+ goBack
51
50
  } = mapManager.useMapManager(options, (mapName) => {
52
51
  const {
53
52
  visualMap,
@@ -56,8 +55,8 @@ const IBizMapChart = /* @__PURE__ */ vue.defineComponent({
56
55
  hoverAreaColor,
57
56
  areaBorderColor
58
57
  } = options.value;
59
- const areaData2 = props.areaData || [];
60
- const pointData2 = props.pointData || [];
58
+ const areaData = props.areaData || [];
59
+ const pointData = props.pointData || [];
61
60
  const result = {
62
61
  geo: {
63
62
  map: mapName
@@ -127,7 +126,7 @@ const IBizMapChart = /* @__PURE__ */ vue.defineComponent({
127
126
  select: {
128
127
  disabled: true
129
128
  },
130
- data: areaData2.map((item) => ({
129
+ data: areaData.map((item) => ({
131
130
  name: "".concat(item._areaCode),
132
131
  value: item._value,
133
132
  _id: item._id
@@ -163,7 +162,7 @@ const IBizMapChart = /* @__PURE__ */ vue.defineComponent({
163
162
  return find == null ? void 0 : find._tooltip;
164
163
  }
165
164
  },
166
- data: pointData2.map((item) => {
165
+ data: pointData.map((item) => {
167
166
  return {
168
167
  _id: item._id,
169
168
  symbol: item._symbol ? "image://".concat(item._symbol) : void 0,
@@ -194,13 +193,6 @@ const IBizMapChart = /* @__PURE__ */ vue.defineComponent({
194
193
  vue.onMounted(() => {
195
194
  changeMap(options.value.defaultAreaCode, true);
196
195
  });
197
- const {
198
- areaData,
199
- pointData
200
- } = vue.toRefs(props);
201
- vue.watch([areaData, pointData], () => {
202
- refresh();
203
- });
204
196
  return {
205
197
  ns,
206
198
  chartRef,
@@ -19,6 +19,36 @@ const isTimeBetween = (_argrs) => {
19
19
  const { date, beginTime, endTime, unit = "day" } = _argrs;
20
20
  return !!(beginTime && dayjs(date).isSame(beginTime, unit) || endTime && dayjs(date).isSame(endTime, unit) || beginTime && endTime && dayjs(date).isAfter(beginTime, unit) && dayjs(date).isBefore(endTime, unit));
21
21
  };
22
+ function useCalendarLegend(ns) {
23
+ const getVarValue = (varName) => {
24
+ const root = document.documentElement;
25
+ return getComputedStyle(root).getPropertyValue(varName);
26
+ };
27
+ const bgColors = [
28
+ // 首个颜色用主题色
29
+ getVarValue("".concat(ns.cssVarName("color-primary"))),
30
+ "#2196F3",
31
+ "#4CAF50",
32
+ "#3F51B5",
33
+ "#FF9800",
34
+ "#673AB7",
35
+ "#757575"
36
+ ];
37
+ const actBdrColors = bgColors.map(
38
+ () => getVarValue("".concat(ns.cssVarName("color-black")))
39
+ );
40
+ const getBkColor = (_index) => {
41
+ return bgColors[_index] || bgColors[0];
42
+ };
43
+ const getActBdrColors = (_index) => {
44
+ return actBdrColors[_index] || getVarValue("".concat(ns.cssVarName("color-primary")));
45
+ };
46
+ const getFontColor = () => {
47
+ return getVarValue("".concat(ns.cssVarName("color-primary-text")));
48
+ };
49
+ return { getFontColor, getBkColor, getActBdrColors };
50
+ }
22
51
 
23
52
  exports.getWeekRange = getWeekRange;
24
53
  exports.isTimeBetween = isTimeBetween;
54
+ exports.useCalendarLegend = useCalendarLegend;
@@ -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");
@@ -311,10 +377,12 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
311
377
  showDateRange,
312
378
  showDateList,
313
379
  popoverValue,
380
+ legendItems,
314
381
  selectDate,
315
382
  calcItemStyle,
316
383
  calcCalendarItems,
317
- onNodeContextmenu
384
+ onNodeContextmenu,
385
+ monthLegendClick
318
386
  };
319
387
  },
320
388
  render() {
@@ -354,7 +422,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
354
422
  const findIndex = this.c.state.selectedData.findIndex((data) => {
355
423
  return data.deData.srfkey === item.deData.srfkey;
356
424
  });
357
- 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({
358
426
  beginTime: item.beginTime,
359
427
  endTime: item.endTime,
360
428
  date
@@ -422,11 +490,31 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
422
490
  header: ({
423
491
  date
424
492
  }) => {
425
- var _a;
426
493
  let _slot, _slot2, _slot3, _slot4, _slot5;
427
494
  return [vue.createVNode("span", {
428
495
  "class": this.ns.b("content-title")
429
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", {
430
518
  "class": this.ns.b("content-header")
431
519
  }, [vue.createVNode(vue.resolveComponent("el-date-picker"), {
432
520
  "modelValue": this.c.state.selectedDate,
@@ -464,23 +552,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
464
552
  }, _isSlot(_slot5 = ibiz.i18n.t("control.calendar.nextYear")) ? _slot5 : {
465
553
  default: () => [_slot5]
466
554
  })]
467
- })]), vue.createVNode("div", {
468
- "class": this.ns.b("legend")
469
- }, [this.c.model.sysCalendarItems && this.c.model.sysCalendarItems.length > 1 && ((_a = this.c.model.sysCalendarItems) == null ? void 0 : _a.map((calendarItem) => {
470
- let label = calendarItem.name;
471
- if (calendarItem.nameLanguageRes) {
472
- label = ibiz.i18n.t(calendarItem.nameLanguageRes.lanResTag, calendarItem.name);
473
- }
474
- return vue.createVNode("div", {
475
- "class": this.ns.e("calendar-item")
476
- }, [vue.createVNode("div", {
477
- "class": this.ns.e("icon"),
478
- "style": {
479
- background: calendarItem.bkcolor,
480
- color: calendarItem.color
481
- }
482
- }, null), label]);
483
- }))])];
555
+ })])];
484
556
  },
485
557
  "date-cell": ({
486
558
  data
@@ -544,7 +616,7 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
544
616
  "ref": "calendarRef",
545
617
  "viewType": this.c.model.calendarStyle,
546
618
  "events": this.c.state.items,
547
- "legends": this.c.state.legends,
619
+ "legends": this.legendItems,
548
620
  "multiple": !this.c.state.singleSelect,
549
621
  "selectedData": this.c.state.selectedData,
550
622
  "onEventClick": (value) => {
@@ -562,6 +634,15 @@ const CalendarControl = /* @__PURE__ */ vue.defineComponent({
562
634
  const item = data[0];
563
635
  if (item)
564
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);
565
646
  }
566
647
  }, _isSlot(slots) ? slots : {
567
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}