@ibiz-template/vue3-components 0.7.41-alpha.136 → 0.7.41-alpha.138

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 (40) hide show
  1. package/dist/index-dK7NHPF1.js +339 -0
  2. package/dist/{index.es-Cg7SaUZt.js → index.es-FZv4rjHr.js} +1 -1
  3. package/dist/index.min.css +1 -1
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{wang-editor-DpxK_csh.js → wang-editor-BaOTSy3S.js} +1 -1
  6. package/dist/{xlsx-util-CNqFg89T.js → xlsx-util-ByzdGnKz.js} +1 -1
  7. package/es/common/back-top/back-top.css +1 -0
  8. package/es/common/back-top/back-top.mjs +201 -0
  9. package/es/common/index.mjs +2 -0
  10. package/es/control/data-view/data-view.mjs +17 -5
  11. package/es/control/list/list.mjs +16 -3
  12. package/es/editor/text-box/input/input.mjs +18 -1
  13. package/es/index.mjs +16 -0
  14. package/es/panel-component/index.mjs +16 -0
  15. package/es/panel-component/panel-button/panel-button.mjs +13 -1
  16. package/es/util/ai-chat-util/ai-chat-util.mjs +21 -21
  17. package/es/view/login-view/login-view.mjs +6 -3
  18. package/lib/common/back-top/back-top.cjs +203 -0
  19. package/lib/common/back-top/back-top.css +1 -0
  20. package/lib/common/index.cjs +2 -0
  21. package/lib/control/data-view/data-view.cjs +15 -3
  22. package/lib/control/list/list.cjs +14 -1
  23. package/lib/editor/text-box/input/input.cjs +18 -1
  24. package/lib/index.cjs +32 -0
  25. package/lib/panel-component/index.cjs +32 -0
  26. package/lib/panel-component/panel-button/panel-button.cjs +13 -1
  27. package/lib/util/ai-chat-util/ai-chat-util.cjs +21 -21
  28. package/lib/view/login-view/login-view.cjs +6 -3
  29. package/package.json +5 -5
  30. package/src/common/back-top/back-top.scss +30 -0
  31. package/src/common/back-top/back-top.tsx +224 -0
  32. package/src/common/index.ts +2 -0
  33. package/src/control/data-view/data-view.tsx +20 -0
  34. package/src/control/list/list.tsx +20 -0
  35. package/src/editor/text-box/input/input.tsx +18 -0
  36. package/src/panel-component/index.ts +17 -0
  37. package/src/panel-component/panel-button/panel-button.tsx +15 -0
  38. package/src/util/ai-chat-util/ai-chat-util.ts +31 -33
  39. package/src/view/login-view/login-view.tsx +3 -0
  40. package/dist/index-scbUG9yD.js +0 -339
@@ -0,0 +1 @@
1
+ .ibiz-back-top{position:absolute;display:flex;align-items:center;justify-content:center;width:40px;height:40px;font-size:20px;color:var(--ibiz-color-text-0);cursor:pointer;-webkit-user-select:none;-moz-user-select:none;user-select:none;background-color:var(--ibiz-color-white);border-radius:50%;box-shadow:0 0 6px rgba(0,0,0,.12)}.ibiz-back-top:hover{color:var(--ibiz-color-white);background-color:var(--ibiz-color-primary-hover)}.fade-enter-active,.fade-leave-active{transition:opacity .3s ease}.fade-enter-from,.fade-leave-to{opacity:0}
@@ -0,0 +1,201 @@
1
+ import { isVNode, defineComponent, createVNode, Teleport, ref, computed, watch, onMounted, onUnmounted, Transition } from 'vue';
2
+ import { useUIStore, useNamespace } from '@ibiz-template/vue3-util';
3
+ import './back-top.css';
4
+
5
+ "use strict";
6
+ function _isSlot(s) {
7
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
8
+ }
9
+ const IBizBackTop = /* @__PURE__ */ defineComponent({
10
+ name: "IBizBackTop",
11
+ props: {
12
+ mode: {
13
+ type: String,
14
+ default: "bottom"
15
+ },
16
+ target: {
17
+ type: [String, Object],
18
+ default: ""
19
+ },
20
+ right: {
21
+ type: [Number, String],
22
+ default: 30
23
+ },
24
+ bottom: {
25
+ type: [Number, String],
26
+ default: 40
27
+ },
28
+ offset: {
29
+ type: Number,
30
+ default: 200
31
+ },
32
+ teleport: {
33
+ type: [String, Object],
34
+ default: ""
35
+ },
36
+ immediate: {
37
+ type: Boolean,
38
+ default: false
39
+ },
40
+ zIndex: {
41
+ type: [Number, String],
42
+ default: 5
43
+ }
44
+ },
45
+ setup(props, {
46
+ slots
47
+ }) {
48
+ const {
49
+ zIndex
50
+ } = useUIStore();
51
+ const ns = useNamespace("back-top");
52
+ const zIndexVal = zIndex.increment();
53
+ const isVisible = ref(false);
54
+ const isAtBottom = ref(false);
55
+ const scrollContainer = ref(null);
56
+ const positionStyle = computed(() => {
57
+ const rightVal = typeof props.right === "number" ? "".concat(props.right, "px") : props.right;
58
+ const bottomVal = typeof props.bottom === "number" ? "".concat(props.bottom, "px") : props.bottom;
59
+ return {
60
+ right: rightVal,
61
+ bottom: bottomVal,
62
+ zIndex: props.zIndex || zIndexVal
63
+ };
64
+ });
65
+ const getScrollContainer = () => {
66
+ if (!props.target)
67
+ return document.documentElement;
68
+ if (typeof props.target === "string") {
69
+ return document.querySelector(props.target);
70
+ }
71
+ return props.target;
72
+ };
73
+ const getScrollData = () => {
74
+ const el = scrollContainer.value;
75
+ if (!el)
76
+ return {
77
+ scrollTop: 0,
78
+ scrollHeight: 0,
79
+ clientHeight: 0
80
+ };
81
+ return {
82
+ scrollTop: el.scrollTop,
83
+ scrollHeight: el.scrollHeight,
84
+ clientHeight: el.clientHeight
85
+ };
86
+ };
87
+ const handleScroll = () => {
88
+ const {
89
+ scrollTop,
90
+ scrollHeight,
91
+ clientHeight
92
+ } = getScrollData();
93
+ const atBottom = scrollTop + clientHeight >= scrollHeight - props.offset;
94
+ isAtBottom.value = atBottom;
95
+ if (props.mode === "top") {
96
+ isVisible.value = scrollTop > props.offset;
97
+ } else if (props.mode === "bottom") {
98
+ const distanceToBottom = scrollHeight - scrollTop - clientHeight;
99
+ isVisible.value = distanceToBottom > props.offset;
100
+ } else {
101
+ if (atBottom) {
102
+ isVisible.value = scrollTop > props.offset;
103
+ } else {
104
+ if (scrollHeight - scrollTop - clientHeight > props.offset)
105
+ isVisible.value = true;
106
+ }
107
+ }
108
+ };
109
+ const scrollTo = () => {
110
+ const el = scrollContainer.value;
111
+ if (!el)
112
+ return;
113
+ let targetPosition = 0;
114
+ if (props.mode === "bottom") {
115
+ targetPosition = getScrollData().scrollHeight;
116
+ } else if (props.mode === "auto") {
117
+ targetPosition = isAtBottom.value ? 0 : getScrollData().scrollHeight;
118
+ } else {
119
+ targetPosition = 0;
120
+ }
121
+ el.scrollTo({
122
+ top: targetPosition,
123
+ behavior: props.immediate ? "auto" : "smooth"
124
+ });
125
+ };
126
+ const bindEvents = () => {
127
+ scrollContainer.value = getScrollContainer();
128
+ if (scrollContainer.value) {
129
+ scrollContainer.value.addEventListener("scroll", handleScroll, {
130
+ passive: true
131
+ });
132
+ setTimeout(() => handleScroll(), 300);
133
+ }
134
+ };
135
+ const unbindEvents = () => {
136
+ if (scrollContainer.value) {
137
+ scrollContainer.value.removeEventListener("scroll", handleScroll);
138
+ }
139
+ };
140
+ watch(() => props.target, () => {
141
+ unbindEvents();
142
+ bindEvents();
143
+ });
144
+ onMounted(() => {
145
+ bindEvents();
146
+ });
147
+ onUnmounted(() => {
148
+ zIndex.decrement();
149
+ unbindEvents();
150
+ });
151
+ const renderIcon = () => {
152
+ if (props.mode === "bottom")
153
+ return createVNode("ion-icon", {
154
+ "name": "chevron-down-outline"
155
+ }, null);
156
+ if (props.mode === "top")
157
+ return createVNode("ion-icon", {
158
+ "name": "chevron-up-outline"
159
+ }, null);
160
+ if (isAtBottom.value)
161
+ return createVNode("ion-icon", {
162
+ "name": "chevron-up-outline"
163
+ }, null);
164
+ return createVNode("ion-icon", {
165
+ "name": "chevron-down-outline"
166
+ }, null);
167
+ };
168
+ const renderContent = () => {
169
+ return createVNode(Transition, {
170
+ "name": "fade"
171
+ }, {
172
+ default: () => [isVisible.value && createVNode("div", {
173
+ "class": ns.b(),
174
+ "onClick": scrollTo,
175
+ "style": positionStyle.value
176
+ }, [slots.default ? slots.default() : renderIcon()])]
177
+ });
178
+ };
179
+ return {
180
+ ns,
181
+ isVisible,
182
+ positionStyle,
183
+ scrollTo,
184
+ renderIcon,
185
+ renderContent
186
+ };
187
+ },
188
+ render() {
189
+ let _slot;
190
+ if (!this.teleport)
191
+ return this.renderContent();
192
+ return createVNode(Teleport, {
193
+ "to": this.teleport,
194
+ "disabled": !this.teleport
195
+ }, _isSlot(_slot = this.renderContent()) ? _slot : {
196
+ default: () => [_slot]
197
+ });
198
+ }
199
+ });
200
+
201
+ export { IBizBackTop };
@@ -35,10 +35,12 @@ import { IBizCropping } from './cropping/cropping.mjs';
35
35
  import { IBizEditorEmptyText } from './editor-empty-text/editor-empty-text.mjs';
36
36
  import { IBizKanbanSetting } from './kanben-setting/kanben-setting.mjs';
37
37
  import { IBizHighLightCode } from './high-light-code/high-light-code.mjs';
38
+ import { IBizBackTop } from './back-top/back-top.mjs';
38
39
 
39
40
  "use strict";
40
41
  const IBizCommonComponents = {
41
42
  install: (v) => {
43
+ v.component(IBizBackTop.name, IBizBackTop);
42
44
  v.component(IBizKanbanSetting.name, IBizKanbanSetting);
43
45
  v.component(IBizEditorEmptyText.name, IBizEditorEmptyText);
44
46
  v.component(IBizCropping.name, IBizCropping);
@@ -1,6 +1,6 @@
1
- import { isVNode, defineComponent, createVNode, resolveComponent, ref, computed, watch, h, withDirectives, resolveDirective, Fragment } from 'vue';
1
+ import { isVNode, defineComponent, createVNode, resolveComponent, mergeProps, ref, computed, watch, h, withDirectives, resolveDirective, Fragment } from 'vue';
2
2
  import { useControlController, useNamespace, useControlPopoverzIndex, useSemanticNode, hasEmptyPanelRenderer, IBizCustomRender } from '@ibiz-template/vue3-util';
3
- import { DataViewControlController, ControlVO, getMDCtrlItemProvider, getControl } from '@ibiz-template/runtime';
3
+ import { DataViewControlController, ControlVO, getMDCtrlItemProvider, getControl, filterPresetAttrs, ScriptFactory } from '@ibiz-template/runtime';
4
4
  import { createUUID } from 'qx-util';
5
5
  import draggable from 'vuedraggable';
6
6
  import '../../util/index.mjs';
@@ -774,17 +774,26 @@ const DataViewControl = /* @__PURE__ */ defineComponent({
774
774
  return renderUserStyle();
775
775
  return renderDefaultStyle();
776
776
  };
777
+ function renderAttrs() {
778
+ const attrs = {};
779
+ filterPresetAttrs(c.model.controlAttributes).forEach((item) => {
780
+ attrs[item.attrName] = ScriptFactory.execSingleLine(item.attrValue, {
781
+ ...c.getEventArgs()
782
+ });
783
+ });
784
+ return attrs;
785
+ }
777
786
  return {
778
787
  c,
779
788
  ns,
780
789
  semanticClass,
781
790
  semanticStyle,
782
791
  infiniteScroll,
792
+ renderAttrs,
783
793
  renderLayoutByStyle
784
794
  };
785
795
  },
786
796
  render() {
787
- let _slot;
788
797
  return createVNode(resolveComponent("iBizControlNavigation"), {
789
798
  "controller": this.c
790
799
  }, {
@@ -792,8 +801,11 @@ const DataViewControl = /* @__PURE__ */ defineComponent({
792
801
  "class": [this.semanticClass("root"), this.ns.is("enable-page", !!this.c.state.enablePagingBar)],
793
802
  "style": this.semanticStyle("root"),
794
803
  "controller": this.c
795
- }, _isSlot(_slot = this.renderLayoutByStyle()) ? _slot : {
796
- default: () => [_slot]
804
+ }, {
805
+ default: () => [this.renderLayoutByStyle(), this.c.state.isLoaded && this.c.showScrollTo !== "none" && createVNode(resolveComponent("iBizBackTop"), mergeProps({
806
+ "target": this.infiniteScroll,
807
+ "mode": this.c.showScrollTo
808
+ }, this.renderAttrs()), null)]
797
809
  })]
798
810
  });
799
811
  }
@@ -1,7 +1,7 @@
1
- import { isVNode, defineComponent, createVNode, resolveComponent, ref, computed, watch, h } from 'vue';
1
+ import { isVNode, defineComponent, createVNode, resolveComponent, mergeProps, ref, computed, watch, h } from 'vue';
2
2
  import { useControlController, useNamespace, useControlPopoverzIndex, useSemanticNode, hasEmptyPanelRenderer, IBizCustomRender } from '@ibiz-template/vue3-util';
3
3
  import { isNil, debounce } from 'lodash-es';
4
- import { ListController, ControlVO, getMDCtrlItemProvider } from '@ibiz-template/runtime';
4
+ import { ListController, ControlVO, getMDCtrlItemProvider, filterPresetAttrs, ScriptFactory } from '@ibiz-template/runtime';
5
5
  import draggable from 'vuedraggable';
6
6
  import { showTitle } from '@ibiz-template/core';
7
7
  import '../../util/index.mjs';
@@ -669,6 +669,15 @@ const ListControl = /* @__PURE__ */ defineComponent({
669
669
  length: Math.min(count, 20)
670
670
  }, () => renderSkeletonItem())])]);
671
671
  };
672
+ function renderAttrs() {
673
+ const attrs = {};
674
+ filterPresetAttrs(c.model.controlAttributes).forEach((item) => {
675
+ attrs[item.attrName] = ScriptFactory.execSingleLine(item.attrValue, {
676
+ ...c.getEventArgs()
677
+ });
678
+ });
679
+ return attrs;
680
+ }
672
681
  return {
673
682
  c,
674
683
  ns,
@@ -677,6 +686,7 @@ const ListControl = /* @__PURE__ */ defineComponent({
677
686
  semanticStyle,
678
687
  reverseScroll,
679
688
  infiniteScroll,
689
+ renderAttrs,
680
690
  renderNoData,
681
691
  onPageChange,
682
692
  onPageRefresh,
@@ -722,7 +732,10 @@ const ListControl = /* @__PURE__ */ defineComponent({
722
732
  "title": ibiz.i18n.t("component.controlNavigation.hiddenNav"),
723
733
  "name": "eye-off-outline",
724
734
  "onClick": () => this.c.onShowNavViewChange()
725
- }, null) : null, !this.reverseScroll && this.renderCollapseExpandIcon()]
735
+ }, null) : null, !this.reverseScroll && this.renderCollapseExpandIcon(), this.c.state.isLoaded && this.c.showScrollTo !== "none" && createVNode(resolveComponent("iBizBackTop"), mergeProps({
736
+ "target": this.infiniteScroll,
737
+ "mode": this.c.showScrollTo
738
+ }, this.renderAttrs()), null)]
726
739
  })]
727
740
  });
728
741
  }
@@ -1,5 +1,6 @@
1
1
  import { isVNode, defineComponent, createVNode, resolveComponent, withDirectives, mergeProps, resolveDirective, ref, computed, watch, onUnmounted } from 'vue';
2
2
  import { debounce } from 'lodash-es';
3
+ import { createUUID } from 'qx-util';
3
4
  import { useNamespace, useSemanticNode, useUIStore, useCodeListListen, getEditorEmits, getInputProps } from '@ibiz-template/vue3-util';
4
5
  import { isEmoji, base64ToStr } from '@ibiz-template/core';
5
6
  import './input.css';
@@ -281,6 +282,20 @@ const IBizInput = /* @__PURE__ */ defineComponent({
281
282
  }
282
283
  };
283
284
  useCodeListListen(c.model.appCodeListId, c.context.srfappid, fn);
285
+ const curInstanceUUID = ref("");
286
+ const initCurInstanceUUID = () => {
287
+ const {
288
+ predefinedType
289
+ } = c.model;
290
+ if (predefinedType === "AUTH_USERID") {
291
+ curInstanceUUID.value = "login-username";
292
+ } else if (predefinedType === "AUTH_PASSWORD") {
293
+ curInstanceUUID.value = "login-password";
294
+ } else {
295
+ curInstanceUUID.value = createUUID();
296
+ }
297
+ };
298
+ initCurInstanceUUID();
284
299
  return {
285
300
  c,
286
301
  ns,
@@ -300,6 +315,7 @@ const IBizInput = /* @__PURE__ */ defineComponent({
300
315
  currentFormatVal,
301
316
  shouldAutoComplete,
302
317
  showFormDefaultContent,
318
+ curInstanceUUID,
303
319
  onBlur,
304
320
  onFocus,
305
321
  onClick,
@@ -380,7 +396,8 @@ const IBizInput = /* @__PURE__ */ defineComponent({
380
396
  "disabled": this.disabled,
381
397
  "style": this.semanticStyle("editor.content"),
382
398
  "show-password": this.type === "password",
383
- "autocomplete": this.shouldAutoComplete
399
+ "autocomplete": this.shouldAutoComplete,
400
+ "id": this.curInstanceUUID
384
401
  }, this.$attrs), _isSlot(slots) ? slots : {
385
402
  default: () => [slots]
386
403
  }), [[resolveDirective("child-class"), this.childClass], [resolveDirective("child-style"), this.childStyle]]);
package/es/index.mjs CHANGED
@@ -117,6 +117,22 @@ export { PanelRememberMeController } from './panel-component/panel-remember-me/p
117
117
  export { PanelTabPanelController } from './panel-component/panel-tab-panel/panel-tab-panel.controller.mjs';
118
118
  export { SearchFormButtonsController } from './panel-component/searchform-buttons/searchform-buttons.controller.mjs';
119
119
  export { ViewMsgPosController } from './panel-component/view-msg-pos/view-msg-pos.controller.mjs';
120
+ export { ExtendMenuBase } from './panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.mjs';
121
+ export { AppSwitchState } from './panel-component/app-switch/app-switch.state.mjs';
122
+ export { AuthCaptchaState } from './panel-component/auth-captcha/auth-captcha.state.mjs';
123
+ export { CoopPosState } from './panel-component/coop-pos/coop-pos.state.mjs';
124
+ export { GlobalSearchState } from './panel-component/global-search/global-search.state.mjs';
125
+ export { IndexBlankPlaceholderState } from './panel-component/index-blank-placeholder/index-blank-placeholder.state.mjs';
126
+ export { NavBreadcrumbState } from './panel-component/nav-breadcrumb/nav-breadcrumb.state.mjs';
127
+ export { NavTabsState } from './panel-component/nav-tabs/nav-tabs.state.mjs';
128
+ export { PanelAppLoginViewState } from './panel-component/panel-app-login-view/panel-app-login-view.state.mjs';
129
+ export { PanelAppTitleState } from './panel-component/panel-app-title/panel-app-title.state.mjs';
130
+ export { PanelButtonListState } from './panel-component/panel-button-list/panel-button-list.state.mjs';
131
+ export { PanelButtonState } from './panel-component/panel-button/panel-button.state.mjs';
132
+ export { PanelContainerGroupState } from './panel-component/panel-container-group/panel-container-group.state.mjs';
133
+ export { PanelRememberMeState } from './panel-component/panel-remember-me/panel-remember-me.state.mjs';
134
+ export { PanelTabPanelState } from './panel-component/panel-tab-panel/panel-tab-panel.state.mjs';
135
+ export { SplitContainerState } from './panel-component/split-container/split-container.state.mjs';
120
136
  export { IBizAuthUserinfo } from './panel-component/auth-userinfo/index.mjs';
121
137
  export { NavPosIndexState } from './panel-component/nav-pos-index/nav-pos-index.state.mjs';
122
138
  export { NavPosIndexController } from './panel-component/nav-pos-index/nav-pos-index.controller.mjs';
@@ -54,6 +54,22 @@ export { PanelRememberMeController } from './panel-remember-me/panel-remember-me
54
54
  export { PanelTabPanelController } from './panel-tab-panel/panel-tab-panel.controller.mjs';
55
55
  export { SearchFormButtonsController } from './searchform-buttons/searchform-buttons.controller.mjs';
56
56
  export { ViewMsgPosController } from './view-msg-pos/view-msg-pos.controller.mjs';
57
+ export { ExtendMenuBase } from './app-extend-menu/extend-menu-base/extend-menu-base.state.mjs';
58
+ export { AppSwitchState } from './app-switch/app-switch.state.mjs';
59
+ export { AuthCaptchaState } from './auth-captcha/auth-captcha.state.mjs';
60
+ export { CoopPosState } from './coop-pos/coop-pos.state.mjs';
61
+ export { GlobalSearchState } from './global-search/global-search.state.mjs';
62
+ export { IndexBlankPlaceholderState } from './index-blank-placeholder/index-blank-placeholder.state.mjs';
63
+ export { NavBreadcrumbState } from './nav-breadcrumb/nav-breadcrumb.state.mjs';
64
+ export { NavTabsState } from './nav-tabs/nav-tabs.state.mjs';
65
+ export { PanelAppLoginViewState } from './panel-app-login-view/panel-app-login-view.state.mjs';
66
+ export { PanelAppTitleState } from './panel-app-title/panel-app-title.state.mjs';
67
+ export { PanelButtonListState } from './panel-button-list/panel-button-list.state.mjs';
68
+ export { PanelButtonState } from './panel-button/panel-button.state.mjs';
69
+ export { PanelContainerGroupState } from './panel-container-group/panel-container-group.state.mjs';
70
+ export { PanelRememberMeState } from './panel-remember-me/panel-remember-me.state.mjs';
71
+ export { PanelTabPanelState } from './panel-tab-panel/panel-tab-panel.state.mjs';
72
+ export { SplitContainerState } from './split-container/split-container.state.mjs';
57
73
  export { NavPosIndexState } from './nav-pos-index/nav-pos-index.state.mjs';
58
74
  export { NavPosIndexController } from './nav-pos-index/nav-pos-index.controller.mjs';
59
75
  export { PanelAppTitleController } from './panel-app-title/panel-app-title.controller.mjs';
@@ -1,4 +1,5 @@
1
1
  import { defineComponent, createVNode, resolveComponent, ref, computed } from 'vue';
2
+ import { createUUID } from 'qx-util';
2
3
  import { useNamespace, useSemanticNode } from '@ibiz-template/vue3-util';
3
4
  import { showTitle } from '@ibiz-template/core';
4
5
  import { PanelButtonController } from './panel-button.controller.mjs';
@@ -75,6 +76,15 @@ const PanelButton = /* @__PURE__ */ defineComponent({
75
76
  state.loading = false;
76
77
  }
77
78
  };
79
+ const curInstanceUUID = ref("");
80
+ const initCurInstanceUUID = () => {
81
+ if (props.modelData && props.modelData.uiactionId === "app_login") {
82
+ curInstanceUUID.value = "login-submit";
83
+ } else {
84
+ curInstanceUUID.value = createUUID();
85
+ }
86
+ };
87
+ initCurInstanceUUID();
78
88
  return {
79
89
  ns,
80
90
  isText,
@@ -90,7 +100,8 @@ const PanelButton = /* @__PURE__ */ defineComponent({
90
100
  tempStyle,
91
101
  itemStyle,
92
102
  semanticClass,
93
- semanticStyle
103
+ semanticStyle,
104
+ curInstanceUUID
94
105
  };
95
106
  },
96
107
  render() {
@@ -103,6 +114,7 @@ const PanelButton = /* @__PURE__ */ defineComponent({
103
114
  "text": this.isText,
104
115
  "data-id": this.modelData.id,
105
116
  "title": showTitle(this.tooltip),
117
+ "id": this.curInstanceUUID,
106
118
  "disabled": this.state.disabled,
107
119
  "loading": this.state.loading,
108
120
  "onClick": this.handleButtonClick
@@ -37,19 +37,17 @@ class AIChatUtil {
37
37
  */
38
38
  async getEditorExAIChatParams(editorParams, context, params, data, deACMode, args) {
39
39
  var _a;
40
- const containerOptions = {};
41
- if (editorParams.enableaiminimize) {
42
- containerOptions.enableAIMinimize = editorParams.enableaiminimize === "true";
43
- }
44
- if (editorParams.openmode) {
45
- containerOptions.openMode = containerOptions.enableAIMinimize ? editorParams.openmode : "default";
46
- } else {
47
- containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
48
- }
40
+ const containerOptions = {
41
+ minimizeOptions: {
42
+ enable: editorParams.enableaiminimize === "true" || ibiz.config.common.enableAIMinimize,
43
+ openMode: editorParams.openmode || "default",
44
+ containerId: editorParams.minimizecontainerid || ibiz.config.common.aiMinimizeContainerId
45
+ }
46
+ };
49
47
  if (editorParams.autoclose) {
50
48
  try {
51
49
  const autoClose = JSON.parse(editorParams.autoclose);
52
- if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
50
+ if (autoClose && autoClose.mode === "minimize" && !containerOptions.minimizeOptions.enable) {
53
51
  autoClose.mode = "close";
54
52
  }
55
53
  containerOptions.autoClose = autoClose;
@@ -638,21 +636,23 @@ class AIChatUtil {
638
636
  */
639
637
  async getUIActionExAIChatParams(context, params, data, deACMode, args) {
640
638
  var _a;
641
- const containerOptions = {};
642
- if (params.hasOwnProperty("enableaiminimize")) {
643
- containerOptions.enableAIMinimize = params.enableaiminimize === "true";
644
- delete params.disableminimize;
645
- } else {
646
- containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
647
- }
648
- if (params.hasOwnProperty("openmode")) {
649
- containerOptions.openMode = containerOptions.enableAIMinimize ? params.openmode : "default";
639
+ const containerOptions = {
640
+ minimizeOptions: {
641
+ enable: params.enableaiminimize === "true" || ibiz.config.common.enableAIMinimize,
642
+ openMode: params.openmode || "default",
643
+ containerId: params.minimizecontainerid || ibiz.config.common.aiMinimizeContainerId
644
+ }
645
+ };
646
+ if (params.hasOwnProperty("enableaiminimize"))
647
+ delete params.enableaiminimize;
648
+ if (params.hasOwnProperty("openmode"))
650
649
  delete params.openmode;
651
- }
650
+ if (params.hasOwnProperty("minimizecontainerid"))
651
+ delete params.minimizecontainerid;
652
652
  if (params.hasOwnProperty("autoclose")) {
653
653
  try {
654
654
  const autoClose = JSON.parse(params.autoclose);
655
- if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
655
+ if (autoClose && autoClose.mode === "minimize" && !containerOptions.minimizeOptions.enable) {
656
656
  autoClose.mode = "close";
657
657
  }
658
658
  containerOptions.autoClose = autoClose;
@@ -164,7 +164,8 @@ const LoginView = /* @__PURE__ */ defineComponent({
164
164
  "modelValue": loginData.username,
165
165
  "onUpdate:modelValue": ($event) => loginData.username = $event,
166
166
  "clearable": true,
167
- "placeholder": ibiz.i18n.t("app.pleaseEnterAccount")
167
+ "placeholder": ibiz.i18n.t("app.pleaseEnterAccount"),
168
+ "id": "login-username"
168
169
  }, {
169
170
  prefix: () => createVNode("ion-icon", {
170
171
  "name": "person"
@@ -179,7 +180,8 @@ const LoginView = /* @__PURE__ */ defineComponent({
179
180
  "modelValue": loginData.password,
180
181
  "onUpdate:modelValue": ($event) => loginData.password = $event,
181
182
  "show-password": true,
182
- "placeholder": ibiz.i18n.t("app.pleaseEnterPassword")
183
+ "placeholder": ibiz.i18n.t("app.pleaseEnterPassword"),
184
+ "id": "login-password"
183
185
  }, {
184
186
  prefix: () => createVNode("ion-icon", {
185
187
  "name": "unlock-alt"
@@ -198,7 +200,8 @@ const LoginView = /* @__PURE__ */ defineComponent({
198
200
  "size": "large",
199
201
  "round": true,
200
202
  "loading": loading.value,
201
- "onKeyup": (e) => onKeyUp(e)
203
+ "onKeyup": (e) => onKeyUp(e),
204
+ "id": "login-submit"
202
205
  }, _isSlot(_slot = ibiz.i18n.t("view.loginView.login")) ? _slot : {
203
206
  default: () => [_slot]
204
207
  })]