@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,203 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./back-top.css');
6
+
7
+ "use strict";
8
+ function _isSlot(s) {
9
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !vue.isVNode(s);
10
+ }
11
+ const IBizBackTop = /* @__PURE__ */ vue.defineComponent({
12
+ name: "IBizBackTop",
13
+ props: {
14
+ mode: {
15
+ type: String,
16
+ default: "bottom"
17
+ },
18
+ target: {
19
+ type: [String, Object],
20
+ default: ""
21
+ },
22
+ right: {
23
+ type: [Number, String],
24
+ default: 30
25
+ },
26
+ bottom: {
27
+ type: [Number, String],
28
+ default: 40
29
+ },
30
+ offset: {
31
+ type: Number,
32
+ default: 200
33
+ },
34
+ teleport: {
35
+ type: [String, Object],
36
+ default: ""
37
+ },
38
+ immediate: {
39
+ type: Boolean,
40
+ default: false
41
+ },
42
+ zIndex: {
43
+ type: [Number, String],
44
+ default: 5
45
+ }
46
+ },
47
+ setup(props, {
48
+ slots
49
+ }) {
50
+ const {
51
+ zIndex
52
+ } = vue3Util.useUIStore();
53
+ const ns = vue3Util.useNamespace("back-top");
54
+ const zIndexVal = zIndex.increment();
55
+ const isVisible = vue.ref(false);
56
+ const isAtBottom = vue.ref(false);
57
+ const scrollContainer = vue.ref(null);
58
+ const positionStyle = vue.computed(() => {
59
+ const rightVal = typeof props.right === "number" ? "".concat(props.right, "px") : props.right;
60
+ const bottomVal = typeof props.bottom === "number" ? "".concat(props.bottom, "px") : props.bottom;
61
+ return {
62
+ right: rightVal,
63
+ bottom: bottomVal,
64
+ zIndex: props.zIndex || zIndexVal
65
+ };
66
+ });
67
+ const getScrollContainer = () => {
68
+ if (!props.target)
69
+ return document.documentElement;
70
+ if (typeof props.target === "string") {
71
+ return document.querySelector(props.target);
72
+ }
73
+ return props.target;
74
+ };
75
+ const getScrollData = () => {
76
+ const el = scrollContainer.value;
77
+ if (!el)
78
+ return {
79
+ scrollTop: 0,
80
+ scrollHeight: 0,
81
+ clientHeight: 0
82
+ };
83
+ return {
84
+ scrollTop: el.scrollTop,
85
+ scrollHeight: el.scrollHeight,
86
+ clientHeight: el.clientHeight
87
+ };
88
+ };
89
+ const handleScroll = () => {
90
+ const {
91
+ scrollTop,
92
+ scrollHeight,
93
+ clientHeight
94
+ } = getScrollData();
95
+ const atBottom = scrollTop + clientHeight >= scrollHeight - props.offset;
96
+ isAtBottom.value = atBottom;
97
+ if (props.mode === "top") {
98
+ isVisible.value = scrollTop > props.offset;
99
+ } else if (props.mode === "bottom") {
100
+ const distanceToBottom = scrollHeight - scrollTop - clientHeight;
101
+ isVisible.value = distanceToBottom > props.offset;
102
+ } else {
103
+ if (atBottom) {
104
+ isVisible.value = scrollTop > props.offset;
105
+ } else {
106
+ if (scrollHeight - scrollTop - clientHeight > props.offset)
107
+ isVisible.value = true;
108
+ }
109
+ }
110
+ };
111
+ const scrollTo = () => {
112
+ const el = scrollContainer.value;
113
+ if (!el)
114
+ return;
115
+ let targetPosition = 0;
116
+ if (props.mode === "bottom") {
117
+ targetPosition = getScrollData().scrollHeight;
118
+ } else if (props.mode === "auto") {
119
+ targetPosition = isAtBottom.value ? 0 : getScrollData().scrollHeight;
120
+ } else {
121
+ targetPosition = 0;
122
+ }
123
+ el.scrollTo({
124
+ top: targetPosition,
125
+ behavior: props.immediate ? "auto" : "smooth"
126
+ });
127
+ };
128
+ const bindEvents = () => {
129
+ scrollContainer.value = getScrollContainer();
130
+ if (scrollContainer.value) {
131
+ scrollContainer.value.addEventListener("scroll", handleScroll, {
132
+ passive: true
133
+ });
134
+ setTimeout(() => handleScroll(), 300);
135
+ }
136
+ };
137
+ const unbindEvents = () => {
138
+ if (scrollContainer.value) {
139
+ scrollContainer.value.removeEventListener("scroll", handleScroll);
140
+ }
141
+ };
142
+ vue.watch(() => props.target, () => {
143
+ unbindEvents();
144
+ bindEvents();
145
+ });
146
+ vue.onMounted(() => {
147
+ bindEvents();
148
+ });
149
+ vue.onUnmounted(() => {
150
+ zIndex.decrement();
151
+ unbindEvents();
152
+ });
153
+ const renderIcon = () => {
154
+ if (props.mode === "bottom")
155
+ return vue.createVNode("ion-icon", {
156
+ "name": "chevron-down-outline"
157
+ }, null);
158
+ if (props.mode === "top")
159
+ return vue.createVNode("ion-icon", {
160
+ "name": "chevron-up-outline"
161
+ }, null);
162
+ if (isAtBottom.value)
163
+ return vue.createVNode("ion-icon", {
164
+ "name": "chevron-up-outline"
165
+ }, null);
166
+ return vue.createVNode("ion-icon", {
167
+ "name": "chevron-down-outline"
168
+ }, null);
169
+ };
170
+ const renderContent = () => {
171
+ return vue.createVNode(vue.Transition, {
172
+ "name": "fade"
173
+ }, {
174
+ default: () => [isVisible.value && vue.createVNode("div", {
175
+ "class": ns.b(),
176
+ "onClick": scrollTo,
177
+ "style": positionStyle.value
178
+ }, [slots.default ? slots.default() : renderIcon()])]
179
+ });
180
+ };
181
+ return {
182
+ ns,
183
+ isVisible,
184
+ positionStyle,
185
+ scrollTo,
186
+ renderIcon,
187
+ renderContent
188
+ };
189
+ },
190
+ render() {
191
+ let _slot;
192
+ if (!this.teleport)
193
+ return this.renderContent();
194
+ return vue.createVNode(vue.Teleport, {
195
+ "to": this.teleport,
196
+ "disabled": !this.teleport
197
+ }, _isSlot(_slot = this.renderContent()) ? _slot : {
198
+ default: () => [_slot]
199
+ });
200
+ }
201
+ });
202
+
203
+ exports.IBizBackTop = IBizBackTop;
@@ -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}
@@ -39,10 +39,12 @@ var cropping = require('./cropping/cropping.cjs');
39
39
  var editorEmptyText = require('./editor-empty-text/editor-empty-text.cjs');
40
40
  var kanbenSetting = require('./kanben-setting/kanben-setting.cjs');
41
41
  var highLightCode = require('./high-light-code/high-light-code.cjs');
42
+ var backTop = require('./back-top/back-top.cjs');
42
43
 
43
44
  "use strict";
44
45
  const IBizCommonComponents = {
45
46
  install: (v) => {
47
+ v.component(backTop.IBizBackTop.name, backTop.IBizBackTop);
46
48
  v.component(kanbenSetting.IBizKanbanSetting.name, kanbenSetting.IBizKanbanSetting);
47
49
  v.component(editorEmptyText.IBizEditorEmptyText.name, editorEmptyText.IBizEditorEmptyText);
48
50
  v.component(cropping.IBizCropping.name, cropping.IBizCropping);
@@ -776,17 +776,26 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
776
776
  return renderUserStyle();
777
777
  return renderDefaultStyle();
778
778
  };
779
+ function renderAttrs() {
780
+ const attrs = {};
781
+ runtime.filterPresetAttrs(c.model.controlAttributes).forEach((item) => {
782
+ attrs[item.attrName] = runtime.ScriptFactory.execSingleLine(item.attrValue, {
783
+ ...c.getEventArgs()
784
+ });
785
+ });
786
+ return attrs;
787
+ }
779
788
  return {
780
789
  c,
781
790
  ns,
782
791
  semanticClass,
783
792
  semanticStyle,
784
793
  infiniteScroll,
794
+ renderAttrs,
785
795
  renderLayoutByStyle
786
796
  };
787
797
  },
788
798
  render() {
789
- let _slot;
790
799
  return vue.createVNode(vue.resolveComponent("iBizControlNavigation"), {
791
800
  "controller": this.c
792
801
  }, {
@@ -794,8 +803,11 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
794
803
  "class": [this.semanticClass("root"), this.ns.is("enable-page", !!this.c.state.enablePagingBar)],
795
804
  "style": this.semanticStyle("root"),
796
805
  "controller": this.c
797
- }, _isSlot(_slot = this.renderLayoutByStyle()) ? _slot : {
798
- default: () => [_slot]
806
+ }, {
807
+ default: () => [this.renderLayoutByStyle(), this.c.state.isLoaded && this.c.showScrollTo !== "none" && vue.createVNode(vue.resolveComponent("iBizBackTop"), vue.mergeProps({
808
+ "target": this.infiniteScroll,
809
+ "mode": this.c.showScrollTo
810
+ }, this.renderAttrs()), null)]
799
811
  })]
800
812
  });
801
813
  }
@@ -671,6 +671,15 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
671
671
  length: Math.min(count, 20)
672
672
  }, () => renderSkeletonItem())])]);
673
673
  };
674
+ function renderAttrs() {
675
+ const attrs = {};
676
+ runtime.filterPresetAttrs(c.model.controlAttributes).forEach((item) => {
677
+ attrs[item.attrName] = runtime.ScriptFactory.execSingleLine(item.attrValue, {
678
+ ...c.getEventArgs()
679
+ });
680
+ });
681
+ return attrs;
682
+ }
674
683
  return {
675
684
  c,
676
685
  ns,
@@ -679,6 +688,7 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
679
688
  semanticStyle,
680
689
  reverseScroll,
681
690
  infiniteScroll,
691
+ renderAttrs,
682
692
  renderNoData,
683
693
  onPageChange,
684
694
  onPageRefresh,
@@ -724,7 +734,10 @@ const ListControl = /* @__PURE__ */ vue.defineComponent({
724
734
  "title": ibiz.i18n.t("component.controlNavigation.hiddenNav"),
725
735
  "name": "eye-off-outline",
726
736
  "onClick": () => this.c.onShowNavViewChange()
727
- }, null) : null, !this.reverseScroll && this.renderCollapseExpandIcon()]
737
+ }, null) : null, !this.reverseScroll && this.renderCollapseExpandIcon(), this.c.state.isLoaded && this.c.showScrollTo !== "none" && vue.createVNode(vue.resolveComponent("iBizBackTop"), vue.mergeProps({
738
+ "target": this.infiniteScroll,
739
+ "mode": this.c.showScrollTo
740
+ }, this.renderAttrs()), null)]
728
741
  })]
729
742
  });
730
743
  }
@@ -2,6 +2,7 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var lodashEs = require('lodash-es');
5
+ var qxUtil = require('qx-util');
5
6
  var vue3Util = require('@ibiz-template/vue3-util');
6
7
  var core = require('@ibiz-template/core');
7
8
  require('./input.css');
@@ -283,6 +284,20 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
283
284
  }
284
285
  };
285
286
  vue3Util.useCodeListListen(c.model.appCodeListId, c.context.srfappid, fn);
287
+ const curInstanceUUID = vue.ref("");
288
+ const initCurInstanceUUID = () => {
289
+ const {
290
+ predefinedType
291
+ } = c.model;
292
+ if (predefinedType === "AUTH_USERID") {
293
+ curInstanceUUID.value = "login-username";
294
+ } else if (predefinedType === "AUTH_PASSWORD") {
295
+ curInstanceUUID.value = "login-password";
296
+ } else {
297
+ curInstanceUUID.value = qxUtil.createUUID();
298
+ }
299
+ };
300
+ initCurInstanceUUID();
286
301
  return {
287
302
  c,
288
303
  ns,
@@ -302,6 +317,7 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
302
317
  currentFormatVal,
303
318
  shouldAutoComplete,
304
319
  showFormDefaultContent,
320
+ curInstanceUUID,
305
321
  onBlur,
306
322
  onFocus,
307
323
  onClick,
@@ -382,7 +398,8 @@ const IBizInput = /* @__PURE__ */ vue.defineComponent({
382
398
  "disabled": this.disabled,
383
399
  "style": this.semanticStyle("editor.content"),
384
400
  "show-password": this.type === "password",
385
- "autocomplete": this.shouldAutoComplete
401
+ "autocomplete": this.shouldAutoComplete,
402
+ "id": this.curInstanceUUID
386
403
  }, this.$attrs), _isSlot(slots) ? slots : {
387
404
  default: () => [slots]
388
405
  }), [[vue.resolveDirective("child-class"), this.childClass], [vue.resolveDirective("child-style"), this.childStyle]]);
package/lib/index.cjs CHANGED
@@ -119,6 +119,22 @@ var panelRememberMe_controller = require('./panel-component/panel-remember-me/pa
119
119
  var panelTabPanel_controller = require('./panel-component/panel-tab-panel/panel-tab-panel.controller.cjs');
120
120
  var searchformButtons_controller = require('./panel-component/searchform-buttons/searchform-buttons.controller.cjs');
121
121
  var viewMsgPos_controller = require('./panel-component/view-msg-pos/view-msg-pos.controller.cjs');
122
+ var extendMenuBase_state = require('./panel-component/app-extend-menu/extend-menu-base/extend-menu-base.state.cjs');
123
+ var appSwitch_state = require('./panel-component/app-switch/app-switch.state.cjs');
124
+ var authCaptcha_state = require('./panel-component/auth-captcha/auth-captcha.state.cjs');
125
+ var coopPos_state = require('./panel-component/coop-pos/coop-pos.state.cjs');
126
+ var globalSearch_state = require('./panel-component/global-search/global-search.state.cjs');
127
+ var indexBlankPlaceholder_state = require('./panel-component/index-blank-placeholder/index-blank-placeholder.state.cjs');
128
+ var navBreadcrumb_state = require('./panel-component/nav-breadcrumb/nav-breadcrumb.state.cjs');
129
+ var navTabs_state = require('./panel-component/nav-tabs/nav-tabs.state.cjs');
130
+ var panelAppLoginView_state = require('./panel-component/panel-app-login-view/panel-app-login-view.state.cjs');
131
+ var panelAppTitle_state = require('./panel-component/panel-app-title/panel-app-title.state.cjs');
132
+ var panelButtonList_state = require('./panel-component/panel-button-list/panel-button-list.state.cjs');
133
+ var panelButton_state = require('./panel-component/panel-button/panel-button.state.cjs');
134
+ var panelContainerGroup_state = require('./panel-component/panel-container-group/panel-container-group.state.cjs');
135
+ var panelRememberMe_state = require('./panel-component/panel-remember-me/panel-remember-me.state.cjs');
136
+ var panelTabPanel_state = require('./panel-component/panel-tab-panel/panel-tab-panel.state.cjs');
137
+ var splitContainer_state = require('./panel-component/split-container/split-container.state.cjs');
122
138
  var index$11 = require('./panel-component/auth-userinfo/index.cjs');
123
139
  var navPosIndex_state = require('./panel-component/nav-pos-index/nav-pos-index.state.cjs');
124
140
  var navPosIndex_controller = require('./panel-component/nav-pos-index/nav-pos-index.controller.cjs');
@@ -339,6 +355,22 @@ exports.PanelRememberMeController = panelRememberMe_controller.PanelRememberMeCo
339
355
  exports.PanelTabPanelController = panelTabPanel_controller.PanelTabPanelController;
340
356
  exports.SearchFormButtonsController = searchformButtons_controller.SearchFormButtonsController;
341
357
  exports.ViewMsgPosController = viewMsgPos_controller.ViewMsgPosController;
358
+ exports.ExtendMenuBase = extendMenuBase_state.ExtendMenuBase;
359
+ exports.AppSwitchState = appSwitch_state.AppSwitchState;
360
+ exports.AuthCaptchaState = authCaptcha_state.AuthCaptchaState;
361
+ exports.CoopPosState = coopPos_state.CoopPosState;
362
+ exports.GlobalSearchState = globalSearch_state.GlobalSearchState;
363
+ exports.IndexBlankPlaceholderState = indexBlankPlaceholder_state.IndexBlankPlaceholderState;
364
+ exports.NavBreadcrumbState = navBreadcrumb_state.NavBreadcrumbState;
365
+ exports.NavTabsState = navTabs_state.NavTabsState;
366
+ exports.PanelAppLoginViewState = panelAppLoginView_state.PanelAppLoginViewState;
367
+ exports.PanelAppTitleState = panelAppTitle_state.PanelAppTitleState;
368
+ exports.PanelButtonListState = panelButtonList_state.PanelButtonListState;
369
+ exports.PanelButtonState = panelButton_state.PanelButtonState;
370
+ exports.PanelContainerGroupState = panelContainerGroup_state.PanelContainerGroupState;
371
+ exports.PanelRememberMeState = panelRememberMe_state.PanelRememberMeState;
372
+ exports.PanelTabPanelState = panelTabPanel_state.PanelTabPanelState;
373
+ exports.SplitContainerState = splitContainer_state.SplitContainerState;
342
374
  exports.IBizAuthUserinfo = index$11.IBizAuthUserinfo;
343
375
  exports.NavPosIndexState = navPosIndex_state.NavPosIndexState;
344
376
  exports.NavPosIndexController = navPosIndex_controller.NavPosIndexController;
@@ -58,6 +58,22 @@ var panelRememberMe_controller = require('./panel-remember-me/panel-remember-me.
58
58
  var panelTabPanel_controller = require('./panel-tab-panel/panel-tab-panel.controller.cjs');
59
59
  var searchformButtons_controller = require('./searchform-buttons/searchform-buttons.controller.cjs');
60
60
  var viewMsgPos_controller = require('./view-msg-pos/view-msg-pos.controller.cjs');
61
+ var extendMenuBase_state = require('./app-extend-menu/extend-menu-base/extend-menu-base.state.cjs');
62
+ var appSwitch_state = require('./app-switch/app-switch.state.cjs');
63
+ var authCaptcha_state = require('./auth-captcha/auth-captcha.state.cjs');
64
+ var coopPos_state = require('./coop-pos/coop-pos.state.cjs');
65
+ var globalSearch_state = require('./global-search/global-search.state.cjs');
66
+ var indexBlankPlaceholder_state = require('./index-blank-placeholder/index-blank-placeholder.state.cjs');
67
+ var navBreadcrumb_state = require('./nav-breadcrumb/nav-breadcrumb.state.cjs');
68
+ var navTabs_state = require('./nav-tabs/nav-tabs.state.cjs');
69
+ var panelAppLoginView_state = require('./panel-app-login-view/panel-app-login-view.state.cjs');
70
+ var panelAppTitle_state = require('./panel-app-title/panel-app-title.state.cjs');
71
+ var panelButtonList_state = require('./panel-button-list/panel-button-list.state.cjs');
72
+ var panelButton_state = require('./panel-button/panel-button.state.cjs');
73
+ var panelContainerGroup_state = require('./panel-container-group/panel-container-group.state.cjs');
74
+ var panelRememberMe_state = require('./panel-remember-me/panel-remember-me.state.cjs');
75
+ var panelTabPanel_state = require('./panel-tab-panel/panel-tab-panel.state.cjs');
76
+ var splitContainer_state = require('./split-container/split-container.state.cjs');
61
77
  var navPosIndex_state = require('./nav-pos-index/nav-pos-index.state.cjs');
62
78
  var navPosIndex_controller = require('./nav-pos-index/nav-pos-index.controller.cjs');
63
79
  var panelAppTitle_controller = require('./panel-app-title/panel-app-title.controller.cjs');
@@ -150,6 +166,22 @@ exports.PanelRememberMeController = panelRememberMe_controller.PanelRememberMeCo
150
166
  exports.PanelTabPanelController = panelTabPanel_controller.PanelTabPanelController;
151
167
  exports.SearchFormButtonsController = searchformButtons_controller.SearchFormButtonsController;
152
168
  exports.ViewMsgPosController = viewMsgPos_controller.ViewMsgPosController;
169
+ exports.ExtendMenuBase = extendMenuBase_state.ExtendMenuBase;
170
+ exports.AppSwitchState = appSwitch_state.AppSwitchState;
171
+ exports.AuthCaptchaState = authCaptcha_state.AuthCaptchaState;
172
+ exports.CoopPosState = coopPos_state.CoopPosState;
173
+ exports.GlobalSearchState = globalSearch_state.GlobalSearchState;
174
+ exports.IndexBlankPlaceholderState = indexBlankPlaceholder_state.IndexBlankPlaceholderState;
175
+ exports.NavBreadcrumbState = navBreadcrumb_state.NavBreadcrumbState;
176
+ exports.NavTabsState = navTabs_state.NavTabsState;
177
+ exports.PanelAppLoginViewState = panelAppLoginView_state.PanelAppLoginViewState;
178
+ exports.PanelAppTitleState = panelAppTitle_state.PanelAppTitleState;
179
+ exports.PanelButtonListState = panelButtonList_state.PanelButtonListState;
180
+ exports.PanelButtonState = panelButton_state.PanelButtonState;
181
+ exports.PanelContainerGroupState = panelContainerGroup_state.PanelContainerGroupState;
182
+ exports.PanelRememberMeState = panelRememberMe_state.PanelRememberMeState;
183
+ exports.PanelTabPanelState = panelTabPanel_state.PanelTabPanelState;
184
+ exports.SplitContainerState = splitContainer_state.SplitContainerState;
153
185
  exports.NavPosIndexState = navPosIndex_state.NavPosIndexState;
154
186
  exports.NavPosIndexController = navPosIndex_controller.NavPosIndexController;
155
187
  exports.PanelAppTitleController = panelAppTitle_controller.PanelAppTitleController;
@@ -3,6 +3,7 @@
3
3
  Object.defineProperty(exports, '__esModule', { value: true });
4
4
 
5
5
  var vue = require('vue');
6
+ var qxUtil = require('qx-util');
6
7
  var vue3Util = require('@ibiz-template/vue3-util');
7
8
  var core = require('@ibiz-template/core');
8
9
  var panelButton_controller = require('./panel-button.controller.cjs');
@@ -79,6 +80,15 @@ const PanelButton = /* @__PURE__ */ vue.defineComponent({
79
80
  state.loading = false;
80
81
  }
81
82
  };
83
+ const curInstanceUUID = vue.ref("");
84
+ const initCurInstanceUUID = () => {
85
+ if (props.modelData && props.modelData.uiactionId === "app_login") {
86
+ curInstanceUUID.value = "login-submit";
87
+ } else {
88
+ curInstanceUUID.value = qxUtil.createUUID();
89
+ }
90
+ };
91
+ initCurInstanceUUID();
82
92
  return {
83
93
  ns,
84
94
  isText,
@@ -94,7 +104,8 @@ const PanelButton = /* @__PURE__ */ vue.defineComponent({
94
104
  tempStyle,
95
105
  itemStyle,
96
106
  semanticClass,
97
- semanticStyle
107
+ semanticStyle,
108
+ curInstanceUUID
98
109
  };
99
110
  },
100
111
  render() {
@@ -107,6 +118,7 @@ const PanelButton = /* @__PURE__ */ vue.defineComponent({
107
118
  "text": this.isText,
108
119
  "data-id": this.modelData.id,
109
120
  "title": core.showTitle(this.tooltip),
121
+ "id": this.curInstanceUUID,
110
122
  "disabled": this.state.disabled,
111
123
  "loading": this.state.loading,
112
124
  "onClick": this.handleButtonClick
@@ -39,19 +39,17 @@ class AIChatUtil {
39
39
  */
40
40
  async getEditorExAIChatParams(editorParams, context, params, data, deACMode, args) {
41
41
  var _a;
42
- const containerOptions = {};
43
- if (editorParams.enableaiminimize) {
44
- containerOptions.enableAIMinimize = editorParams.enableaiminimize === "true";
45
- }
46
- if (editorParams.openmode) {
47
- containerOptions.openMode = containerOptions.enableAIMinimize ? editorParams.openmode : "default";
48
- } else {
49
- containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
50
- }
42
+ const containerOptions = {
43
+ minimizeOptions: {
44
+ enable: editorParams.enableaiminimize === "true" || ibiz.config.common.enableAIMinimize,
45
+ openMode: editorParams.openmode || "default",
46
+ containerId: editorParams.minimizecontainerid || ibiz.config.common.aiMinimizeContainerId
47
+ }
48
+ };
51
49
  if (editorParams.autoclose) {
52
50
  try {
53
51
  const autoClose = JSON.parse(editorParams.autoclose);
54
- if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
52
+ if (autoClose && autoClose.mode === "minimize" && !containerOptions.minimizeOptions.enable) {
55
53
  autoClose.mode = "close";
56
54
  }
57
55
  containerOptions.autoClose = autoClose;
@@ -640,21 +638,23 @@ class AIChatUtil {
640
638
  */
641
639
  async getUIActionExAIChatParams(context, params, data, deACMode, args) {
642
640
  var _a;
643
- const containerOptions = {};
644
- if (params.hasOwnProperty("enableaiminimize")) {
645
- containerOptions.enableAIMinimize = params.enableaiminimize === "true";
646
- delete params.disableminimize;
647
- } else {
648
- containerOptions.enableAIMinimize = ibiz.config.common.enableAIMinimize;
649
- }
650
- if (params.hasOwnProperty("openmode")) {
651
- containerOptions.openMode = containerOptions.enableAIMinimize ? params.openmode : "default";
641
+ const containerOptions = {
642
+ minimizeOptions: {
643
+ enable: params.enableaiminimize === "true" || ibiz.config.common.enableAIMinimize,
644
+ openMode: params.openmode || "default",
645
+ containerId: params.minimizecontainerid || ibiz.config.common.aiMinimizeContainerId
646
+ }
647
+ };
648
+ if (params.hasOwnProperty("enableaiminimize"))
649
+ delete params.enableaiminimize;
650
+ if (params.hasOwnProperty("openmode"))
652
651
  delete params.openmode;
653
- }
652
+ if (params.hasOwnProperty("minimizecontainerid"))
653
+ delete params.minimizecontainerid;
654
654
  if (params.hasOwnProperty("autoclose")) {
655
655
  try {
656
656
  const autoClose = JSON.parse(params.autoclose);
657
- if (!containerOptions.enableAIMinimize && autoClose && autoClose.mode === "minimize") {
657
+ if (autoClose && autoClose.mode === "minimize" && !containerOptions.minimizeOptions.enable) {
658
658
  autoClose.mode = "close";
659
659
  }
660
660
  containerOptions.autoClose = autoClose;
@@ -166,7 +166,8 @@ const LoginView = /* @__PURE__ */ vue.defineComponent({
166
166
  "modelValue": loginData.username,
167
167
  "onUpdate:modelValue": ($event) => loginData.username = $event,
168
168
  "clearable": true,
169
- "placeholder": ibiz.i18n.t("app.pleaseEnterAccount")
169
+ "placeholder": ibiz.i18n.t("app.pleaseEnterAccount"),
170
+ "id": "login-username"
170
171
  }, {
171
172
  prefix: () => vue.createVNode("ion-icon", {
172
173
  "name": "person"
@@ -181,7 +182,8 @@ const LoginView = /* @__PURE__ */ vue.defineComponent({
181
182
  "modelValue": loginData.password,
182
183
  "onUpdate:modelValue": ($event) => loginData.password = $event,
183
184
  "show-password": true,
184
- "placeholder": ibiz.i18n.t("app.pleaseEnterPassword")
185
+ "placeholder": ibiz.i18n.t("app.pleaseEnterPassword"),
186
+ "id": "login-password"
185
187
  }, {
186
188
  prefix: () => vue.createVNode("ion-icon", {
187
189
  "name": "unlock-alt"
@@ -200,7 +202,8 @@ const LoginView = /* @__PURE__ */ vue.defineComponent({
200
202
  "size": "large",
201
203
  "round": true,
202
204
  "loading": loading.value,
203
- "onKeyup": (e) => onKeyUp(e)
205
+ "onKeyup": (e) => onKeyUp(e),
206
+ "id": "login-submit"
204
207
  }, _isSlot(_slot = ibiz.i18n.t("view.loginView.login")) ? _slot : {
205
208
  default: () => [_slot]
206
209
  })]
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ibiz-template/vue3-components",
3
- "version": "0.7.41-alpha.136",
3
+ "version": "0.7.41-alpha.138",
4
4
  "description": "web端组件库(vue3)",
5
5
  "main": "lib/index.cjs",
6
6
  "module": "es/index.mjs",
@@ -31,16 +31,16 @@
31
31
  "dependencies": {
32
32
  "@amap/amap-jsapi-loader": "^1.0.1",
33
33
  "@floating-ui/dom": "^1.5.3",
34
- "@ibiz-template-plugin/ai-chat": "^0.0.103",
34
+ "@ibiz-template-plugin/ai-chat": "^0.0.105",
35
35
  "@ibiz-template-plugin/gantt": "0.1.8-alpha.468",
36
36
  "@ibiz-template-plugin/bi-report": "0.0.32",
37
37
  "@ibiz-template-plugin/data-view": "0.0.8",
38
38
  "@ibiz-template/core": "0.7.41-alpha.140",
39
39
  "@ibiz-template/devtool": "0.0.17",
40
- "@ibiz-template/model-helper": "0.7.41-alpha.140",
41
- "@ibiz-template/runtime": "0.7.41-alpha.140",
40
+ "@ibiz-template/model-helper": "0.7.41-alpha.142",
41
+ "@ibiz-template/runtime": "0.7.41-alpha.142",
42
42
  "@ibiz-template/theme": "0.7.39",
43
- "@ibiz-template/vue3-util": "0.7.41-alpha.140",
43
+ "@ibiz-template/vue3-util": "0.7.41-alpha.142",
44
44
  "@ibiz-template/web-theme": "3.16.0",
45
45
  "@ibiz/model-core": "^0.1.89",
46
46
  "@imengyu/vue3-context-menu": "^1.3.5",
@@ -0,0 +1,30 @@
1
+ @include b('back-top') {
2
+ position: absolute;
3
+ display: flex;
4
+ align-items: center;
5
+ justify-content: center;
6
+ width: 40px;
7
+ height: 40px;
8
+ font-size: 20px;
9
+ color: getCssVar('color', 'text', '0');
10
+ cursor: pointer;
11
+ user-select: none;
12
+ background-color: getCssVar('color', 'white');
13
+ border-radius: 50%;
14
+ box-shadow: 0 0 6px rgb(0 0 0 / 12%);
15
+
16
+ &:hover {
17
+ color: getCssVar('color', 'white');
18
+ background-color: getCssVar('color', 'primary', 'hover');
19
+ }
20
+ }
21
+
22
+ .fade-enter-active,
23
+ .fade-leave-active {
24
+ transition: opacity 0.3s ease;
25
+ }
26
+
27
+ .fade-enter-from,
28
+ .fade-leave-to {
29
+ opacity: 0;
30
+ }