@ibiz-template/vue3-components 0.7.29-alpha.0 → 0.7.29

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 (44) hide show
  1. package/dist/index-dIj05Kls.js +4 -0
  2. package/dist/index.min.css +1 -1
  3. package/dist/index.system.min.js +1 -1
  4. package/dist/{xlsx-util-jxc7ylyH.js → xlsx-util-bhQVAaEM.js} +1 -1
  5. package/es/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.css +1 -0
  6. package/es/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.d.ts +9 -0
  7. package/es/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.mjs +87 -0
  8. package/es/common/fullscreen-toolbar/fullscreen-toolbar.css +1 -0
  9. package/es/common/fullscreen-toolbar/fullscreen-toolbar.d.ts +13 -0
  10. package/es/common/fullscreen-toolbar/fullscreen-toolbar.mjs +244 -0
  11. package/es/common/index.mjs +2 -0
  12. package/es/common/pagination/pagination.mjs +1 -1
  13. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.d.ts +1 -0
  14. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +6 -0
  15. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  16. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +3 -2
  17. package/es/control/grid/grid/grid.mjs +1 -1
  18. package/es/editor/span/span/span.mjs +18 -9
  19. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +2 -1
  20. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +14 -5
  21. package/es/index.mjs +1 -0
  22. package/es/util/fullscreen/fullscreen-util.d.ts +25 -0
  23. package/es/util/fullscreen/fullscreen-util.mjs +43 -0
  24. package/es/util/index.d.ts +1 -0
  25. package/es/util/index.mjs +1 -0
  26. package/es/web-app/main.mjs +2 -0
  27. package/lib/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.cjs +89 -0
  28. package/lib/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.css +1 -0
  29. package/lib/common/fullscreen-toolbar/fullscreen-toolbar.cjs +246 -0
  30. package/lib/common/fullscreen-toolbar/fullscreen-toolbar.css +1 -0
  31. package/lib/common/index.cjs +2 -0
  32. package/lib/common/pagination/pagination.cjs +1 -1
  33. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +6 -0
  34. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +3 -2
  35. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  36. package/lib/control/grid/grid/grid.cjs +1 -1
  37. package/lib/editor/span/span/span.cjs +18 -9
  38. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +14 -5
  39. package/lib/index.cjs +2 -0
  40. package/lib/util/fullscreen/fullscreen-util.cjs +45 -0
  41. package/lib/util/index.cjs +2 -0
  42. package/lib/web-app/main.cjs +2 -0
  43. package/package.json +5 -5
  44. package/dist/index-5QrDXG59.js +0 -4
@@ -0,0 +1 @@
1
+ .ibiz-alarm-clock{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#000}.ibiz-alarm-clock__wrapper{position:absolute;top:50%;left:50%;line-height:1;text-align:center;transform:translate(-50%,-50%)}.ibiz-alarm-clock__light-counter{font-family:"Chinese Quote",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,"PingFang SC","Hiragino Sans GB","Microsoft YaHei","Helvetica Neue",Helvetica,Arial,sans-serif;font-size:240px;font-feature-settings:"tnum";font-variant:tabular-nums}.ibiz-alarm-clock__svg-wrapper{display:flex;flex-flow:row nowrap;place-content:center center;align-items:center;margin-top:40px;cursor:pointer}.ibiz-alarm-clock__svg{display:inline-flex;flex-flow:row nowrap;place-content:center center;align-items:center;width:80px;height:80px;cursor:pointer;border:2px solid #666;border-radius:50%}.ibiz-alarm-clock__svg:hover{fill:#999}.ibiz-alarm-clock__svg>svg{width:24px;height:24px;fill:#666}.ibiz-alarm-clock__svg>svg:hover{fill:#6698ff}
@@ -0,0 +1,9 @@
1
+ /// <reference types="node" />
2
+ import './fullscreen-toolbar-alarm-clock.scss';
3
+ export declare const IBizAlarmClock: import("vue").DefineComponent<{}, {
4
+ ns: import("@ibiz-template/core").Namespace;
5
+ close: () => void;
6
+ closeSvg: () => JSX.Element;
7
+ formattedTime: import("vue").Ref<string>;
8
+ timerInterval: string | number | NodeJS.Timeout | undefined;
9
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
@@ -0,0 +1,87 @@
1
+ import { ref, onMounted, onBeforeUnmount, createVNode, defineComponent } from 'vue';
2
+ import './fullscreen-toolbar-alarm-clock.css';
3
+ import { useNamespace } from '@ibiz-template/vue3-util';
4
+
5
+ "use strict";
6
+ const IBizAlarmClock = /* @__PURE__ */ defineComponent({
7
+ name: "AlarmClock",
8
+ setup() {
9
+ const ns = useNamespace("alarm-clock");
10
+ const close = () => {
11
+ const div = document.getElementById("alarm-clock");
12
+ if (div) {
13
+ if (div.parentElement) {
14
+ div.parentElement.removeChild(div);
15
+ }
16
+ }
17
+ };
18
+ const formattedTime = ref("00:00");
19
+ let minutes = 0;
20
+ let seconds = 0;
21
+ let timerInterval;
22
+ const formatTime = (m, s) => {
23
+ return "".concat(m < 10 ? "0".concat(m) : m, ":").concat(s < 10 ? "0".concat(s) : s);
24
+ };
25
+ function updateTimer() {
26
+ seconds++;
27
+ if (seconds === 60) {
28
+ seconds = 0;
29
+ minutes++;
30
+ }
31
+ if (minutes === 60) {
32
+ minutes = 0;
33
+ }
34
+ formattedTime.value = formatTime(minutes, seconds);
35
+ }
36
+ const startTimer = () => {
37
+ timerInterval = setInterval(updateTimer, 1e3);
38
+ };
39
+ onMounted(() => {
40
+ startTimer();
41
+ });
42
+ onBeforeUnmount(() => {
43
+ clearInterval(timerInterval);
44
+ });
45
+ const closeSvg = () => {
46
+ return createVNode("svg", {
47
+ "viewBox": "0 0 16 16",
48
+ "xmlns": "http://www.w3.org/2000/svg",
49
+ "height": "1em",
50
+ "width": "1em",
51
+ "preserveAspectRatio": "xMidYMid meet",
52
+ "focusable": "false"
53
+ }, [createVNode("g", {
54
+ "id": "atjaction/quit",
55
+ "stroke-width": "1",
56
+ "fill-rule": "evenodd"
57
+ }, [createVNode("path", {
58
+ "d": "M11.628 2.015a7.438 7.438 0 0 1 1.855 1.5 7.256 7.256 0 0 1 1.858 4.853c0 4.05-3.324 7.332-7.42 7.332C3.824 15.7.5 12.419.5 8.368c0-1.812.668-3.523 1.858-4.854a7.428 7.428 0 0 1 1.855-1.5.6.6 0 0 1 .595 1.043 6.238 6.238 0 0 0-1.556 1.257A6.056 6.056 0 0 0 1.7 8.368c0 3.385 2.783 6.132 6.22 6.132 3.438 0 6.221-2.747 6.221-6.132 0-1.514-.558-2.941-1.552-4.054a6.228 6.228 0 0 0-1.556-1.257.6.6 0 1 1 .595-1.042zM7.921.5a.6.6 0 0 1 .592.503l.008.097v7.18a.6.6 0 0 1-1.193.097l-.007-.098V1.1a.6.6 0 0 1 .6-.6z",
59
+ "id": "atj\u5F62\u72B6\u7ED3\u5408"
60
+ }, null)])]);
61
+ };
62
+ return {
63
+ ns,
64
+ close,
65
+ closeSvg,
66
+ formattedTime,
67
+ timerInterval
68
+ };
69
+ },
70
+ render() {
71
+ return createVNode("div", {
72
+ "ref": "componentRef",
73
+ "class": this.ns.b()
74
+ }, [createVNode("div", {
75
+ "class": this.ns.e("wrapper")
76
+ }, [createVNode("div", {
77
+ "class": this.ns.e("light-counter")
78
+ }, [this.formattedTime]), createVNode("div", {
79
+ "class": this.ns.e("svg-wrapper")
80
+ }, [createVNode("div", {
81
+ "class": this.ns.e("svg"),
82
+ "onClick": () => this.close()
83
+ }, [this.closeSvg()])])])]);
84
+ }
85
+ });
86
+
87
+ export { IBizAlarmClock };
@@ -0,0 +1 @@
1
+ .ibiz-fullscreen-toolbar{position:fixed;bottom:28px;left:0;display:flex;flex-flow:row nowrap;place-content:center center;align-items:center;width:100%;height:30px}.ibiz-fullscreen-toolbar__wrapper{z-index:101;display:flex;flex-flow:row nowrap;place-content:center center;align-items:center;width:100%;height:inherit}.ibiz-fullscreen-toolbar__wrapper:hover .ibiz-fullscreen-toolbar__wrapper-content{display:flex}.ibiz-fullscreen-toolbar__wrapper-content{z-index:101;display:none;flex-flow:row nowrap;place-content:center center;align-items:center;width:169px;height:56px;padding:12px 16px;background-color:#333;border-radius:6px}.ibiz-fullscreen-toolbar__item{display:flex;flex-flow:row nowrap;place-content:center center;align-items:center;width:32px;height:32px;padding:8px;margin-right:8px;cursor:pointer;border-radius:4px;fill:#fff}.ibiz-fullscreen-toolbar__item:hover{background-color:#5c5c5c;fill:#6698ff}.ibiz-fullscreen-toolbar__divider{position:relative;box-sizing:border-box;display:inline-block;height:1rem;padding:0;margin:0;margin:0 16px;font-size:.875rem;line-height:1.5715;color:#333;vertical-align:middle;list-style:none;border-top:0;border-left:1px solid #666}.ibiz-fullscreen-toolbar__canvas{z-index:100}.ibiz-fullscreen-toolbar__canvas>.cursor{cursor:none!important}.ibiz-fullscreen-toolbar__canvas>.nocursor{display:none!important}.ibiz-fullscreen-toolbar__canvas>canvas{position:fixed;top:0;left:0;z-index:-1;width:100vw;height:100vh;background:0 0}.ibiz-fullscreen-toolbar__tooltip .el-popper__arrow{display:block}
@@ -0,0 +1,13 @@
1
+ import './fullscreen-toolbar.scss';
2
+ export declare const IBizFullscreenToolbar: import("vue").DefineComponent<{}, {
3
+ ns: import("@ibiz-template/core").Namespace;
4
+ laserPointerSvg: () => JSX.Element;
5
+ alarmClockSvg: () => JSX.Element;
6
+ compressArrowsSvg: () => JSX.Element;
7
+ laserPointerClick: () => void;
8
+ alarmClockClick: () => void;
9
+ compressArrowsClick: () => void;
10
+ laserPointerCanvas: import("vue").Ref<any>;
11
+ isLaserEnabled: import("vue").Ref<boolean>;
12
+ editorRef: import("vue").Ref<any>;
13
+ }, {}, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{}>>, {}, {}>;
@@ -0,0 +1,244 @@
1
+ import { createVNode, ref, createApp, onMounted, onBeforeUnmount, resolveComponent, defineComponent } from 'vue';
2
+ import './fullscreen-toolbar.css';
3
+ import { useNamespace } from '@ibiz-template/vue3-util';
4
+ import { IBizAlarmClock } from './fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.mjs';
5
+
6
+ "use strict";
7
+ const IBizFullscreenToolbar = /* @__PURE__ */ defineComponent({
8
+ name: "IBizFullscreenToolbar",
9
+ setup() {
10
+ const ns = useNamespace("fullscreen-toolbar");
11
+ const laserPointerSvg = () => {
12
+ return createVNode("svg", {
13
+ "viewBox": "0 0 16 16",
14
+ "xmlns": "http://www.w3.org/2000/svg",
15
+ "height": "1em",
16
+ "width": "1em",
17
+ "preserveAspectRatio": "xMidYMid meet",
18
+ "focusable": "false"
19
+ }, [createVNode("g", {
20
+ "id": "aoeeditor/laser-pointer",
21
+ "stroke-width": "1",
22
+ "fill-rule": "evenodd"
23
+ }, [createVNode("path", {
24
+ "d": "M8.203 15.947a3 3 0 0 1-.198-5.993l-.069.005.926-1.19H3c-1.543 0-2.461-1.648-1.762-2.945l.075-.129.086-.125.083-.103.098-.093L8.97.097c.42-.3.941.15.755.593l-.04.078-2.483 4h5.75c1.488 0 2.414 1.548 1.813 2.841l-.067.133-.079.13-.066.092-3.351 5.098.002-.115a3 3 0 0 1-3 3zm0-4.8a1.8 1.8 0 1 0 0 3.6 1.8 1.8 0 0 0 0-3.6zm-.685-8.785L2.215 6.149l-.024.032c-.436.59-.092 1.416.589 1.564l.11.018.11.006h6.884a.5.5 0 0 1 .442.734l-.047.073-1.174 1.51-.011-.004a3.008 3.008 0 0 1 1.826 1.592l-.001-.003L13.728 7.4l.064-.09c.408-.624-.003-1.456-.73-1.534l-.112-.006H6.304a.5.5 0 0 1-.462-.69l.037-.074 1.64-2.643z",
25
+ "id": "aoe\u5F62\u72B6\u7ED3\u5408"
26
+ }, null)])]);
27
+ };
28
+ const alarmClockSvg = () => {
29
+ return createVNode("svg", {
30
+ "viewBox": "0 0 16 16",
31
+ "xmlns": "http://www.w3.org/2000/svg",
32
+ "height": "1em",
33
+ "width": "1em",
34
+ "preserveAspectRatio": "xMidYMid meet",
35
+ "focusable": "false"
36
+ }, [createVNode("g", {
37
+ "id": "aah\u5DE5\u65F6",
38
+ "stroke-width": "1",
39
+ "fill-rule": "evenodd"
40
+ }, [createVNode("path", {
41
+ "d": "M9.6.2v1.2H8.099v1.427a6.486 6.486 0 0 1 4.27 2.167l.663-.528-.332-.41.933-.756 1.321 1.632-.932.755-.235-.289-.708.565A6.5 6.5 0 1 1 6.9 2.827V1.4H5.4V.2h4.2zM7.5 4a5.3 5.3 0 1 0 0 10.6A5.3 5.3 0 0 0 7.5 4zm.6 1.687v3.45l3.187.001v1.2H6.9v-4.65h1.2z",
42
+ "id": "aah\u5F62\u72B6\u7ED3\u5408"
43
+ }, null)])]);
44
+ };
45
+ const compressArrowsSvg = () => {
46
+ return createVNode("svg", {
47
+ "viewBox": "0 0 16 16",
48
+ "xmlns": "http://www.w3.org/2000/svg",
49
+ "height": "1em",
50
+ "width": "1em",
51
+ "preserveAspectRatio": "xMidYMid meet",
52
+ "focusable": "false"
53
+ }, [createVNode("g", {
54
+ "id": "ahsaction/compress-arrows",
55
+ "stroke-width": "1",
56
+ "fill-rule": "evenodd"
57
+ }, [createVNode("path", {
58
+ "d": "M4.069 5.246L.792 1.815a.6.6 0 1 1 .868-.83l3.204 3.356V2.92a.6.6 0 1 1 1.2 0V5.84l.002.007a.6.6 0 0 1-.601.6H2.543a.6.6 0 0 1 0-1.2h1.526zm6.175 1.01l-.007.002a.599.599 0 0 1-.6-.6V2.737a.6.6 0 1 1 1.2 0v1.526l3.43-3.277a.601.601 0 0 1 .83.868l-3.355 3.204h1.419a.6.6 0 0 1 0 1.2h-2.917zm1.586 4.802l3.276 3.431a.6.6 0 1 1-.868.829l-3.204-3.355v1.419a.6.6 0 1 1-1.2 0v-2.917l-.001-.007a.6.6 0 0 1 .6-.6h2.922a.6.6 0 1 1 0 1.2H11.83zm-6.185-.996a.6.6 0 0 1 .6.6v2.922a.6.6 0 1 1-1.2 0v-1.526l-3.43 3.277a.6.6 0 1 1-.83-.868l3.355-3.204H2.721a.6.6 0 1 1 0-1.2h2.917l.007-.001z",
59
+ "id": "ahs\u5F62\u72B6\u7ED3\u5408"
60
+ }, null)])]);
61
+ };
62
+ const laserPointerCanvas = ref();
63
+ const ctx = ref();
64
+ const isLaserEnabled = ref(false);
65
+ const mouseX = ref(0);
66
+ const mouseY = ref(0);
67
+ let lastX = 0;
68
+ let lastY = 0;
69
+ const dotColor = "#eb4c4a";
70
+ const dotSize = 5;
71
+ const draw = () => {
72
+ ctx.value.globalCompositeOperation = "destination-out";
73
+ ctx.value.fillStyle = "rgba(0, 0, 0, 0.05)";
74
+ ctx.value.fillRect(0, 0, laserPointerCanvas.value.width, laserPointerCanvas.value.height);
75
+ ctx.value.globalCompositeOperation = "source-over";
76
+ if (isLaserEnabled.value) {
77
+ const dist = Math.sqrt((mouseX.value - lastX) ** 2 + (mouseY.value - lastY) ** 2);
78
+ const count = Math.max(Math.round(dist / 5), 1);
79
+ for (let i = 0; i < count; i++) {
80
+ const ratio = i / count;
81
+ const x = lastX + (mouseX.value - lastX) * ratio;
82
+ const y = lastY + (mouseY.value - lastY) * ratio;
83
+ ctx.value.beginPath();
84
+ ctx.value.arc(x, y, dotSize, 0, Math.PI * 2);
85
+ ctx.value.fillStyle = dotColor;
86
+ ctx.value.fill();
87
+ }
88
+ lastX = mouseX.value;
89
+ lastY = mouseY.value;
90
+ }
91
+ requestAnimationFrame(draw);
92
+ };
93
+ const laserPointerClick = () => {
94
+ isLaserEnabled.value = !isLaserEnabled.value;
95
+ };
96
+ const alarmClockClick = () => {
97
+ const fullscreen = document.getElementById("fullscreen");
98
+ const content = document.createElement("div");
99
+ content.id = "alarm-clock";
100
+ content.style.zIndex = "9999";
101
+ if (fullscreen) {
102
+ fullscreen.appendChild(content);
103
+ const app = createApp(IBizAlarmClock);
104
+ app.mount(content);
105
+ }
106
+ };
107
+ const compressArrowsClick = () => {
108
+ const div = document.getElementById("fullscreen");
109
+ if (div) {
110
+ document.exitFullscreen();
111
+ if (div.parentElement) {
112
+ div.parentElement.removeChild(div);
113
+ }
114
+ }
115
+ };
116
+ const editorRef = ref();
117
+ const handleFullScreenChange = () => {
118
+ if (document.fullscreenElement) {
119
+ } else {
120
+ const div = document.getElementById("fullscreen");
121
+ if (div) {
122
+ if (div.parentElement) {
123
+ div.parentElement.removeChild(div);
124
+ }
125
+ }
126
+ }
127
+ };
128
+ onMounted(() => {
129
+ ctx.value = laserPointerCanvas.value.getContext("2d");
130
+ window.addEventListener("resize", () => {
131
+ laserPointerCanvas.value.width = window.innerWidth;
132
+ laserPointerCanvas.value.height = window.innerHeight;
133
+ });
134
+ laserPointerCanvas.value.addEventListener("mousemove", (event) => {
135
+ mouseX.value = event.clientX;
136
+ mouseY.value = event.clientY;
137
+ });
138
+ ctx.value.clearRect(0, 0, laserPointerCanvas.value.width, laserPointerCanvas.value.height);
139
+ ctx.value.fillStyle = "lightgray";
140
+ ctx.value.fillRect(0, 0, laserPointerCanvas.value.width, laserPointerCanvas.value.height);
141
+ draw();
142
+ window.dispatchEvent(new Event("resize"));
143
+ document.addEventListener("fullscreenchange", handleFullScreenChange);
144
+ });
145
+ onBeforeUnmount(() => {
146
+ document.removeEventListener("fullscreenchange", handleFullScreenChange);
147
+ });
148
+ return {
149
+ ns,
150
+ laserPointerSvg,
151
+ alarmClockSvg,
152
+ compressArrowsSvg,
153
+ laserPointerClick,
154
+ alarmClockClick,
155
+ compressArrowsClick,
156
+ laserPointerCanvas,
157
+ isLaserEnabled,
158
+ editorRef
159
+ };
160
+ },
161
+ render() {
162
+ return createVNode("div", {
163
+ "class": [this.ns.b()],
164
+ "ref": "editorRef"
165
+ }, [createVNode("div", {
166
+ "class": [this.ns.e("wrapper")]
167
+ }, [createVNode("div", {
168
+ "class": [this.ns.e("wrapper-content")]
169
+ }, [createVNode(resolveComponent("el-tooltip"), {
170
+ "effect": "dark",
171
+ "content": "\u6FC0\u5149\u7B14",
172
+ "placement": "top",
173
+ "offset": 10,
174
+ "teleported": true,
175
+ "append-to": this.editorRef,
176
+ "popper-class": this.ns.e("tooltip"),
177
+ "popper-options": {
178
+ modifiers: [{
179
+ name: "offset",
180
+ options: {
181
+ offset: [0, 20]
182
+ }
183
+ }]
184
+ }
185
+ }, {
186
+ default: () => [createVNode("div", {
187
+ "class": this.ns.e("item"),
188
+ "onClick": () => this.laserPointerClick()
189
+ }, [this.laserPointerSvg()])]
190
+ }), createVNode(resolveComponent("el-tooltip"), {
191
+ "effect": "dark",
192
+ "content": "\u5173\u706F\u8BA1\u65F6",
193
+ "placement": "top",
194
+ "offset": 10,
195
+ "teleported": true,
196
+ "append-to": this.editorRef,
197
+ "popper-class": this.ns.e("tooltip"),
198
+ "popper-options": {
199
+ modifiers: [{
200
+ name: "offset",
201
+ options: {
202
+ offset: [0, 20]
203
+ }
204
+ }]
205
+ }
206
+ }, {
207
+ default: () => [createVNode("div", {
208
+ "class": this.ns.e("item"),
209
+ "onClick": () => this.alarmClockClick()
210
+ }, [this.alarmClockSvg()])]
211
+ }), createVNode("div", {
212
+ "class": this.ns.e("divider")
213
+ }, null), createVNode(resolveComponent("el-tooltip"), {
214
+ "effect": "dark",
215
+ "content": "\u9000\u51FA\u6F14\u793A\u6A21\u5F0F",
216
+ "placement": "top",
217
+ "offset": 10,
218
+ "teleported": true,
219
+ "append-to": this.editorRef,
220
+ "popper-class": this.ns.e("tooltip"),
221
+ "popper-options": {
222
+ modifiers: [{
223
+ name: "offset",
224
+ options: {
225
+ offset: [0, 20]
226
+ }
227
+ }]
228
+ }
229
+ }, {
230
+ default: () => [createVNode("div", {
231
+ "class": this.ns.e("item"),
232
+ "onClick": () => this.compressArrowsClick()
233
+ }, [this.compressArrowsSvg()])]
234
+ })])]), createVNode("div", {
235
+ "class": this.ns.e("canvas")
236
+ }, [createVNode("canvas", {
237
+ "ref": "laserPointerCanvas",
238
+ "style": "background-color: transparent;",
239
+ "class": this.isLaserEnabled ? "cursor" : "nocursor"
240
+ }, null)])]);
241
+ }
242
+ });
243
+
244
+ export { IBizFullscreenToolbar };
@@ -23,6 +23,7 @@ import { CustomTheme } from './custom-theme/custom-theme.mjs';
23
23
  import { IBizCarouselCard } from './carousel-card/carousel-card.mjs';
24
24
  import { IBizEmojiSelect } from './emoji-select/emoji-select.mjs';
25
25
  import { IBizQuickEdit } from './quick-edit/quick-edit.mjs';
26
+ import { IBizFullscreenToolbar } from './fullscreen-toolbar/fullscreen-toolbar.mjs';
26
27
 
27
28
  "use strict";
28
29
  const IBizCommonComponents = {
@@ -63,6 +64,7 @@ const IBizCommonComponents = {
63
64
  v.component(IBizCoopAlert.name, IBizCoopAlert);
64
65
  v.component(CustomTheme.name, CustomTheme);
65
66
  v.component(IBizCarouselCard.name, IBizCarouselCard);
67
+ v.component(IBizFullscreenToolbar.name, IBizFullscreenToolbar);
66
68
  }
67
69
  };
68
70
 
@@ -85,7 +85,7 @@ const IBizPagination = /* @__PURE__ */ defineComponent({
85
85
  "onClick": this.pageRefresh
86
86
  }, {
87
87
  default: () => [createVNode("ion-icon", {
88
- "name": "refresh"
88
+ "src": "./assets/images/svg/refresh.svg"
89
89
  }, null)]
90
90
  })]), isNil(this.totalPages) || this.calcTotalPages === this.totalPages ? createVNode("span", null, [ibiz.i18n.t("component.pagination.display"), createTextVNode("\xA0"), this.start, createTextVNode("\xA0-\xA0"), this.end, createTextVNode("\xA0"), ibiz.i18n.t("component.pagination.piece"), createTextVNode("\uFF0C")]) : null, createVNode("span", null, [ibiz.i18n.t("component.pagination.total"), createTextVNode("\xA0"), this.total, createTextVNode("\xA0"), ibiz.i18n.t("component.pagination.pieceData")])]
91
91
  })]);
@@ -2038,6 +2038,7 @@ export declare const CustomDashboardContainer: import("vue").DefineComponent<{
2038
2038
  portlets: {
2039
2039
  [key: string]: import("@ibiz-template/runtime").IPortletController;
2040
2040
  };
2041
+ dynaPortletMap: Map<string, IData>;
2041
2042
  initPortlets: (portletModels: IDBPortletPart[], parent?: import("@ibiz-template/runtime").IPortletContainerController | undefined) => Promise<void>;
2042
2043
  initPortletsConfig: (config?: IData | undefined) => Promise<void>;
2043
2044
  resetPortlets: () => Promise<void>;
@@ -306,6 +306,12 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
306
306
  ...child
307
307
  };
308
308
  if (child.dynamodelFlag) {
309
+ const orignData = c.dynaPortletMap.get(child.portletId);
310
+ if (orignData) {
311
+ Object.assign(tempItemModel, {
312
+ controlmodeldigest: orignData.controlmodeldigest
313
+ });
314
+ }
309
315
  Object.assign(tempItemModel, {
310
316
  portletModel: tempModelDatas[0]
311
317
  });
@@ -1 +1 @@
1
- .ibiz-form-item-container{--ibiz-form-item-container-label-width:130px;--ibiz-form-item-container-line-height:var(--ibiz-height-control-default);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-label-left-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight) calc(var(--ibiz-spacing-base-tight) / 2) 0;--ibiz-form-item-container-label-right-padding:calc(var(--ibiz-spacing-base-tight) / 2) 0 calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-form-item-container-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-tight) var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-container-label-color:var(--ibiz-color-text-1);--ibiz-form-item-container-error-font-size:var(--ibiz-font-size-small);--ibiz-form-item-container-error-color:var(--ibiz-color-danger);width:100%;height:100%;padding:var(--ibiz-form-item-container-padding)}.ibiz-form-item-container__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:var(--ibiz-form-item-container-font-size);color:var(--ibiz-form-item-container-label-color)}.ibiz-form-item-container__label--tooltip{max-width:150px}.ibiz-form-item-container__label--tooltip:has(ion-icon){padding-right:var(--ibiz-spacing-base-tight)}.ibiz-form-item-container__label--tooltip a{padding:0 var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-link)}.ibiz-form-item-container__label--tooltip ion-icon{position:absolute;font-size:var(--ibiz-width-icon-large)}.ibiz-form-item-container__popper .el-popper__arrow{display:inherit}.ibiz-form-item-container--left,.ibiz-form-item-container--right{display:flex;min-height:var(--ibiz-form-item-container-line-height)}.ibiz-form-item-container--left .ibiz-form-item-container__label,.ibiz-form-item-container--right .ibiz-form-item-container__label{width:var(--ibiz-form-item-container-label-width)}.ibiz-form-item-container--bottom,.ibiz-form-item-container--top{display:flex;flex-flow:column nowrap}.ibiz-form-item-container--top .ibiz-form-item-container__label{margin-bottom:var(--ibiz-spacing-extra-tight)}.ibiz-form-item-container--bottom .ibiz-form-item-container__label{margin-top:var(--ibiz-spacing-extra-tight)}.ibiz-form-item-container--left .ibiz-form-item-container__label{padding:var(--ibiz-form-item-container-label-left-padding);text-align:right}.ibiz-form-item-container--right .ibiz-form-item-container__label{padding:var(--ibiz-form-item-container-label-right-padding);text-align:left}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{display:inline-block;margin-right:4px;font-family:SimSun;line-height:1;color:var(--ibiz-form-item-container-require-mark-color);content:"*"}.ibiz-form-item-container__content{display:flex;flex-flow:column nowrap;position:relative;flex-grow:1}.ibiz-form-item-container__content--label-left,.ibiz-form-item-container__content--label-none,.ibiz-form-item-container__content--label-right{height:100%}.ibiz-form-item-container__editor{position:relative;flex-grow:1;height:100%}.ibiz-form-item-container__error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;top:100%;width:100%;font-size:var(--ibiz-form-item-container-error-font-size);line-height:calc(var(--ibiz-form-item-container-error-font-size) + 2px);color:var(--ibiz-form-item-container-error-color);word-wrap:break-word}.ibiz-form-item-container.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--ibiz-form-item-container-error-color) inset}
1
+ .ibiz-form-item-container{--ibiz-form-item-container-label-width:130px;--ibiz-form-item-container-line-height:var(--ibiz-height-control-default);--ibiz-form-item-container-require-mark-color:var(--ibiz-color-danger);--ibiz-form-item-container-label-left-padding:calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight) calc(var(--ibiz-spacing-base-tight) / 2) 0;--ibiz-form-item-container-label-right-padding:calc(var(--ibiz-spacing-base-tight) / 2) 0 calc(var(--ibiz-spacing-base-tight) / 2) var(--ibiz-spacing-base-tight);--ibiz-form-item-container-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-extra-tight) var(--ibiz-spacing-tight) var(--ibiz-spacing-extra-tight);--ibiz-form-item-container-font-size:var(--ibiz-font-size-regular);--ibiz-form-item-container-label-color:var(--ibiz-color-text-1);--ibiz-form-item-container-error-font-size:var(--ibiz-font-size-small);--ibiz-form-item-container-error-color:var(--ibiz-color-danger);width:100%;height:100%;padding:var(--ibiz-form-item-container-padding)}.ibiz-form-item-container__label{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;flex-shrink:0;font-size:var(--ibiz-form-item-container-font-size);color:var(--ibiz-form-item-container-label-color)}.ibiz-form-item-container__label--tooltip{max-width:150px}.ibiz-form-item-container__label--tooltip:has(ion-icon){padding-right:var(--ibiz-width-icon-large)}.ibiz-form-item-container__label--tooltip a{padding:0 var(--ibiz-spacing-extra-tight);color:var(--ibiz-color-link)}.ibiz-form-item-container__label--tooltip ion-icon{position:absolute;font-size:var(--ibiz-width-icon-large);color:var(--ibiz-color-fill-2)}.ibiz-form-item-container__popper.el-popper.is-light{padding:0 var(--ibiz-spacing-extra-tight);border:1px solid var(--ibiz-color-text-0);border-radius:0}.ibiz-form-item-container--left,.ibiz-form-item-container--right{display:flex;min-height:var(--ibiz-form-item-container-line-height)}.ibiz-form-item-container--left .ibiz-form-item-container__label,.ibiz-form-item-container--right .ibiz-form-item-container__label{width:var(--ibiz-form-item-container-label-width)}.ibiz-form-item-container--bottom,.ibiz-form-item-container--top{display:flex;flex-flow:column nowrap}.ibiz-form-item-container--top .ibiz-form-item-container__label{margin-bottom:var(--ibiz-spacing-extra-tight)}.ibiz-form-item-container--bottom .ibiz-form-item-container__label{margin-top:var(--ibiz-spacing-extra-tight)}.ibiz-form-item-container--left .ibiz-form-item-container__label{padding:var(--ibiz-form-item-container-label-left-padding);text-align:right}.ibiz-form-item-container--right .ibiz-form-item-container__label{padding:var(--ibiz-form-item-container-label-right-padding);text-align:left}.ibiz-form-item-container.is-required .ibiz-form-item-container__label::before{display:inline-block;margin-right:4px;font-family:SimSun;line-height:1;color:var(--ibiz-form-item-container-require-mark-color);content:"*"}.ibiz-form-item-container__content{display:flex;flex-flow:column nowrap;position:relative;flex-grow:1}.ibiz-form-item-container__content--label-left,.ibiz-form-item-container__content--label-none,.ibiz-form-item-container__content--label-right{height:100%}.ibiz-form-item-container__editor{position:relative;flex-grow:1;height:100%}.ibiz-form-item-container__error{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;position:absolute;top:100%;width:100%;font-size:var(--ibiz-form-item-container-error-font-size);line-height:calc(var(--ibiz-form-item-container-error-font-size) + 2px);color:var(--ibiz-form-item-container-error-color);word-wrap:break-word}.ibiz-form-item-container.is-error .el-input__wrapper{box-shadow:0 0 0 1px var(--ibiz-form-item-container-error-color) inset}
@@ -61,8 +61,9 @@ const IBizFormItemContainer = /* @__PURE__ */ defineComponent({
61
61
  const classList = [ns.e("label"), ...props.labelClass || []];
62
62
  if (props.enableInputTip) {
63
63
  return createVNode(resolveComponent("el-tooltip"), {
64
+ "effect": "light",
65
+ "offset": 4,
64
66
  "popper-class": ns.e("popper"),
65
- "placement": props.labelPos.toLowerCase(),
66
67
  "ref": "tooltip"
67
68
  }, {
68
69
  default: () => {
@@ -77,7 +78,7 @@ const IBizFormItemContainer = /* @__PURE__ */ defineComponent({
77
78
  "href": props.inputTipUrl,
78
79
  "target": "_blank"
79
80
  }, [ibiz.i18n.t("component.formItemContainer.more")]), props.inputTipClosable && createVNode("ion-icon", {
80
- "name": "close-outline",
81
+ "name": "close-circle",
81
82
  "onClick": hiddenTooltip
82
83
  }, null)]);
83
84
  }
@@ -33,7 +33,7 @@ function renderColumn(c, model, renderColumns, index) {
33
33
  } = model;
34
34
  const columnC = c.columns[columnName];
35
35
  const columnState = c.state.columnStates.find((item) => item.key === columnName);
36
- const widthFlexGrow = columnC.isAdaptiveColumn || !c.hasAdaptiveColumn && index === renderColumns.length - 1;
36
+ const widthFlexGrow = columnC.isAdaptiveColumn || index === renderColumns.length - 1;
37
37
  const widthName = widthFlexGrow ? "min-width" : "width";
38
38
  return createVNode(resolveComponent("el-table-column"), mergeProps({
39
39
  "label": model.caption,
@@ -126,15 +126,24 @@ const IBizSpan = /* @__PURE__ */ defineComponent({
126
126
  render() {
127
127
  let content = null;
128
128
  if (this.c.codeList) {
129
- content = this.items.length > 0 && createVNode(resolveComponent("iBizCodeList"), {
130
- "class": this.ns.e("code-list"),
131
- "codeListItems": this.items,
132
- "codeList": this.c.codeList,
133
- "value": this.value,
134
- "valueFormat": this.valueFormat,
135
- "unitName": this.unitName,
136
- "convertToCodeItemText": this.c.convertToCodeItemText
137
- }, null);
129
+ if (this.c.codeList.thresholdGroup) {
130
+ content = this.items.length > 0 && createVNode(resolveComponent("iBizCodeList"), {
131
+ "class": this.ns.e("code-list"),
132
+ "codeListItems": this.items,
133
+ "codeList": this.c.codeList,
134
+ "value": this.value,
135
+ "valueFormat": this.valueFormat,
136
+ "unitName": this.unitName,
137
+ "convertToCodeItemText": this.c.convertToCodeItemText
138
+ }, null);
139
+ } else {
140
+ content = this.items.length > 0 && createVNode(resolveComponent("iBizCodeList"), {
141
+ "class": this.ns.e("code-list"),
142
+ "codeListItems": this.items,
143
+ "codeList": this.c.codeList,
144
+ "value": this.text
145
+ }, null);
146
+ }
138
147
  } else if (this.text) {
139
148
  content = this.text;
140
149
  } else {
@@ -33,7 +33,7 @@ export declare const IBizImageUpload: import("vue").DefineComponent<{
33
33
  limit: import("vue").ComputedRef<1 | 9999>;
34
34
  headers: import("vue").Ref<IData>;
35
35
  uploadUrl: import("vue").Ref<string>;
36
- dialogImageUrl: import("vue").Ref<string>;
36
+ dialogImageUrl: import("vue").Ref<string[]>;
37
37
  dialogVisible: import("vue").Ref<boolean>;
38
38
  noUploadIcon: import("vue").ComputedRef<boolean>;
39
39
  beforeUpload: (rawFile: import("element-plus").UploadRawFile) => boolean;
@@ -45,6 +45,7 @@ export declare const IBizImageUpload: import("vue").DefineComponent<{
45
45
  onPreview: (file: IData) => void;
46
46
  componentRef: import("vue").Ref<any>;
47
47
  showFormDefaultContent: import("vue").ComputedRef<boolean>;
48
+ dialogImageUrlIndex: import("vue").Ref<number>;
48
49
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {
49
50
  change: (_value: unknown, _name?: string | undefined) => boolean;
50
51
  blur: (_event?: IData | undefined) => boolean;
@@ -31,13 +31,20 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
31
31
  emit("change", value);
32
32
  useInValueChange();
33
33
  }, c);
34
- const dialogImageUrl = ref("");
34
+ const dialogImageUrl = ref([]);
35
+ const dialogImageUrlIndex = ref(0);
35
36
  const dialogVisible = ref(false);
36
37
  const onDialogVisibleChange = (value) => {
37
38
  dialogVisible.value = value;
38
39
  };
39
40
  const onPreview = (file) => {
40
- dialogImageUrl.value = file.url;
41
+ dialogImageUrl.value = [];
42
+ files.value.forEach((i) => {
43
+ if (i.url) {
44
+ dialogImageUrl.value.push(i.url);
45
+ }
46
+ });
47
+ dialogImageUrlIndex.value = files.value.findIndex((item) => item.url === file.url);
41
48
  dialogVisible.value = true;
42
49
  };
43
50
  const noUploadIcon = computed(() => {
@@ -70,7 +77,8 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
70
77
  onDialogVisibleChange,
71
78
  onPreview,
72
79
  componentRef,
73
- showFormDefaultContent
80
+ showFormDefaultContent,
81
+ dialogImageUrlIndex
74
82
  };
75
83
  },
76
84
  render() {
@@ -122,11 +130,12 @@ const IBizImageUpload = /* @__PURE__ */ defineComponent({
122
130
  }, null)]
123
131
  }), this.dialogVisible ? createVNode(resolveComponent("el-image-viewer"), mergeProps({
124
132
  "onClose": () => this.onDialogVisibleChange(false),
125
- "url-list": [this.dialogImageUrl],
133
+ "url-list": this.dialogImageUrl,
126
134
  "hide-on-click-modal": true,
127
135
  "close-on-press-escape": true,
128
136
  "teleported": true,
129
- "z-index": 9999
137
+ "z-index": 9999,
138
+ "initial-index": this.dialogImageUrlIndex
130
139
  }, this.$attrs), null) : null]);
131
140
  }
132
141
  });
package/es/index.mjs CHANGED
@@ -124,6 +124,7 @@ export { usePagination } from './util/pagination/use-pagination.mjs';
124
124
  export { NoticeUtil } from './util/notice-util/notice-util.mjs';
125
125
  export { RenderUtil } from './util/render-util/render-util.mjs';
126
126
  export { AppUtil } from './util/app-util/app-util.mjs';
127
+ export { FullscreenUtil } from './util/fullscreen/fullscreen-util.mjs';
127
128
  export { parseHtml } from './util/wang-editor-util/wang-editor-util.mjs';
128
129
  export { AuthGuard } from './web-app/guard/auth-guard/auth-guard.mjs';
129
130
  export { runApp } from './web-app/main.mjs';
@@ -0,0 +1,25 @@
1
+ /**
2
+ * 全屏全局工具类
3
+ *
4
+ * @export
5
+ * @class FullscreenUtil
6
+ */
7
+ export declare class FullscreenUtil {
8
+ /**
9
+ * Creates an instance of FullscreenUtil.
10
+ * @memberof FullscreenUtil
11
+ */
12
+ constructor();
13
+ /**
14
+ * 指定元素全屏
15
+ * @author fzh
16
+ * @date 2024-07-09 19:39:40
17
+ */
18
+ openElementFullscreen(div: HTMLDivElement): void;
19
+ /**
20
+ * 页面退出全屏
21
+ * @author fzh
22
+ * @date 2024-07-09 19:39:40
23
+ */
24
+ closeFullscreen(): void;
25
+ }
@@ -0,0 +1,43 @@
1
+ import { createApp } from 'vue';
2
+ import ElementPlus from 'element-plus';
3
+ import { IBizFullscreenToolbar } from '../../common/fullscreen-toolbar/fullscreen-toolbar.mjs';
4
+
5
+ "use strict";
6
+ class FullscreenUtil {
7
+ /**
8
+ * Creates an instance of FullscreenUtil.
9
+ * @memberof FullscreenUtil
10
+ */
11
+ constructor() {
12
+ }
13
+ /**
14
+ * 指定元素全屏
15
+ * @author fzh
16
+ * @date 2024-07-09 19:39:40
17
+ */
18
+ openElementFullscreen(div) {
19
+ if (!document.fullscreenElement && div) {
20
+ div.requestFullscreen();
21
+ div.style.background = "white";
22
+ const content = document.createElement("div");
23
+ content.id = "fullscreen";
24
+ content.style.position = "absolute";
25
+ content.style.bottom = "20px";
26
+ content.style.left = "45%";
27
+ div.appendChild(content);
28
+ const app = createApp(IBizFullscreenToolbar);
29
+ app.use(ElementPlus);
30
+ app.mount(content);
31
+ }
32
+ }
33
+ /**
34
+ * 页面退出全屏
35
+ * @author fzh
36
+ * @date 2024-07-09 19:39:40
37
+ */
38
+ closeFullscreen() {
39
+ document.exitFullscreen();
40
+ }
41
+ }
42
+
43
+ export { FullscreenUtil };
@@ -9,4 +9,5 @@ export { usePagination } from './pagination/use-pagination';
9
9
  export { NoticeUtil } from './notice-util/notice-util';
10
10
  export { RenderUtil } from './render-util/render-util';
11
11
  export { AppUtil } from './app-util/app-util';
12
+ export { FullscreenUtil } from './fullscreen/fullscreen-util';
12
13
  export * from './wang-editor-util/wang-editor-util';