@ibiz-template/vue3-components 0.7.28 → 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 (48) 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-z-jllHFG.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 +4 -1
  14. package/es/control/dashboard/custom-dashboard-container/custom-dashboard-container.mjs +2 -2
  15. package/es/control/dashboard/dashboard-design/dashboard-design.mjs +7 -1
  16. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  17. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.mjs +3 -2
  18. package/es/control/grid/grid/grid.mjs +1 -1
  19. package/es/editor/span/span/span.mjs +18 -9
  20. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.mjs +1 -1
  21. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +2 -1
  22. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.mjs +14 -5
  23. package/es/index.mjs +1 -0
  24. package/es/util/fullscreen/fullscreen-util.d.ts +25 -0
  25. package/es/util/fullscreen/fullscreen-util.mjs +43 -0
  26. package/es/util/index.d.ts +1 -0
  27. package/es/util/index.mjs +1 -0
  28. package/es/web-app/main.mjs +2 -0
  29. package/lib/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.cjs +89 -0
  30. package/lib/common/fullscreen-toolbar/fullscreen-toolbar-alarm-clock/fullscreen-toolbar-alarm-clock.css +1 -0
  31. package/lib/common/fullscreen-toolbar/fullscreen-toolbar.cjs +246 -0
  32. package/lib/common/fullscreen-toolbar/fullscreen-toolbar.css +1 -0
  33. package/lib/common/index.cjs +2 -0
  34. package/lib/common/pagination/pagination.cjs +1 -1
  35. package/lib/control/dashboard/custom-dashboard-container/custom-dashboard-container.cjs +2 -2
  36. package/lib/control/dashboard/dashboard-design/dashboard-design.cjs +7 -1
  37. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.cjs +3 -2
  38. package/lib/control/form/form-detail/form-item/form-item-container/form-item-container.css +1 -1
  39. package/lib/control/grid/grid/grid.cjs +1 -1
  40. package/lib/editor/span/span/span.cjs +18 -9
  41. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.cjs +1 -1
  42. package/lib/editor/upload/ibiz-image-upload/ibiz-image-upload.cjs +14 -5
  43. package/lib/index.cjs +2 -0
  44. package/lib/util/fullscreen/fullscreen-util.cjs +45 -0
  45. package/lib/util/index.cjs +2 -0
  46. package/lib/web-app/main.cjs +2 -0
  47. package/package.json +6 -6
  48. package/dist/index-X_i16UJh.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>;
@@ -21135,9 +21136,11 @@ export declare const CustomDashboardContainer: import("vue").DefineComponent<{
21135
21136
  srfpaginationviewid?: string | undefined;
21136
21137
  };
21137
21138
  params: IParams;
21138
- type: "data" | "public" | "personal" | "dynamic";
21139
+ type: "data" | "public" | "personal";
21139
21140
  ownerType: string;
21140
21141
  ownerId: string;
21142
+ multiMode: boolean;
21143
+ showDesignBtn: boolean;
21141
21144
  loadCustomModelData: () => Promise<IData>;
21142
21145
  resetCustomModelData: () => Promise<IData>;
21143
21146
  saveCustomModelData: (model: IData[], opts?: IData | undefined) => Promise<IData>;
@@ -129,7 +129,7 @@ const CustomDashboardContainer = /* @__PURE__ */ defineComponent({
129
129
  var _a, _b;
130
130
  return createVNode("div", {
131
131
  "class": [this.ns.b()]
132
- }, [createVNode("div", {
132
+ }, [this.customC.showDesignBtn ? createVNode("div", {
133
133
  "class": this.ns.b("build-btn")
134
134
  }, [this.showTypeDir ? createVNode("div", null, [createVNode(resolveComponent("el-button"), {
135
135
  "class": this.ns.b("deisgn-btn"),
@@ -153,7 +153,7 @@ const CustomDashboardContainer = /* @__PURE__ */ defineComponent({
153
153
  default: () => [createVNode("ion-icon", {
154
154
  "name": "chevron-back-outline"
155
155
  }, null)]
156
- })]), createVNode(resolveComponent("el-drawer"), {
156
+ })]) : null, createVNode(resolveComponent("el-drawer"), {
157
157
  "modelValue": this.isShowDesign,
158
158
  "onUpdate:modelValue": ($event) => this.isShowDesign = $event,
159
159
  "with-header": false,
@@ -117,7 +117,7 @@ const DashboardDesign = /* @__PURE__ */ defineComponent({
117
117
  type: "app",
118
118
  dynamodelFlag: 1,
119
119
  portletId: portlet.psappportletid,
120
- portletCodeName: portlet.psappportletid.split(".").pop().toLowerCase(),
120
+ portletCodeName: portlet.codename,
121
121
  portletName: portlet.psappportletname,
122
122
  groupCodeName: portlet.groupcodename || "Ungroup",
123
123
  groupName: portlet.groupname || "\u672A\u5206\u7C7B",
@@ -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 {
@@ -165,7 +165,7 @@ const IBizInputNumber = /* @__PURE__ */ defineComponent({
165
165
  "precision": this.c.precision,
166
166
  "disabled": this.disabled,
167
167
  "controls": false,
168
- "onChange": this.handleChange,
168
+ "onChange": (val) => this.handleChange(val, "blur"),
169
169
  "onInput": (value) => this.handleChange(value, "input"),
170
170
  "onFocus": this.onFocus,
171
171
  "onBlur": this.onBlur,
@@ -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
+ }