@ibiz-template/mob-vue3-components 0.7.41-alpha.12 → 0.7.41-alpha.14

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 (83) hide show
  1. package/dist/index-Pq2AnubY.js +76 -0
  2. package/dist/index-Pq2AnubY.js.map +1 -0
  3. package/dist/index.min.css +8 -8
  4. package/dist/index.system.min.js +1 -1
  5. package/dist/{quill-7fiycnP7.js → quill-QfnovuHC.js} +2 -2
  6. package/dist/{quill-7fiycnP7.js.map → quill-QfnovuHC.js.map} +1 -1
  7. package/dist/{quill-editor-preview-GUdcFmjn.js → quill-editor-preview-0dI65Nu7.js} +2 -2
  8. package/dist/{quill-editor-preview-GUdcFmjn.js.map → quill-editor-preview-0dI65Nu7.js.map} +1 -1
  9. package/dist/{quill-editor-Nndlb9WE.js → quill-editor-x-OFlakL.js} +2 -2
  10. package/dist/{quill-editor-Nndlb9WE.js.map → quill-editor-x-OFlakL.js.map} +1 -1
  11. package/dist/tree-4CqtwsXL.js +2 -0
  12. package/dist/tree-4CqtwsXL.js.map +1 -0
  13. package/es/_virtual/index12.mjs +2 -2
  14. package/es/_virtual/index13.mjs +2 -2
  15. package/es/common/action-group/action-group.css +1 -0
  16. package/es/common/action-group/action-group.d.ts +54 -0
  17. package/es/common/action-group/action-group.mjs +165 -0
  18. package/es/common/action-toolbar/action-toolbar.d.ts +1 -0
  19. package/es/common/action-toolbar/action-toolbar.mjs +20 -8
  20. package/es/common/button-list/button-list.css +1 -1
  21. package/es/common/button-list/button-list.d.ts +3 -2
  22. package/es/common/button-list/button-list.mjs +83 -63
  23. package/es/common/index.mjs +2 -0
  24. package/es/common/rawitem/rawitem.mjs +2 -2
  25. package/es/control/list/md-ctrl/md-ctrl.mjs +13 -15
  26. package/es/control/tab-exp-panel/index.d.ts +1 -0
  27. package/es/control/tab-exp-panel/tab-exp-panel.css +1 -0
  28. package/es/control/tab-exp-panel/tab-exp-panel.d.ts +2 -0
  29. package/es/control/tab-exp-panel/tab-exp-panel.mjs +28 -1
  30. package/es/control/tree/tree.css +1 -1
  31. package/es/control/tree/tree.d.ts +15 -0
  32. package/es/control/tree/tree.mjs +14 -2
  33. package/es/editor/raw/ibiz-raw/ibiz-raw.d.ts +2 -2
  34. package/es/editor/span/span/span.d.ts +5 -3
  35. package/es/editor/span/span/span.mjs +5 -5
  36. package/es/editor/upload/use/use-van-upload.mjs +19 -1
  37. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.mjs +1 -1
  38. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.mjs +1 -1
  39. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.d.ts +54 -0
  40. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.mjs +76 -0
  41. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.css +1 -0
  42. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.d.ts +43 -0
  43. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.mjs +80 -0
  44. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.provider.d.ts +14 -0
  45. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.provider.mjs +21 -0
  46. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.state.d.ts +10 -0
  47. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.state.mjs +7 -0
  48. package/es/panel-component/index-blank-placeholder/index.d.ts +25 -0
  49. package/es/panel-component/index-blank-placeholder/index.mjs +19 -0
  50. package/es/panel-component/index.mjs +2 -0
  51. package/es/panel-component/panel-button-list/panel-button-list.controller.d.ts +1 -1
  52. package/es/panel-component/panel-button-list/panel-button-list.controller.mjs +19 -18
  53. package/lib/_virtual/index12.cjs +2 -2
  54. package/lib/_virtual/index13.cjs +2 -2
  55. package/lib/common/action-group/action-group.cjs +167 -0
  56. package/lib/common/action-group/action-group.css +1 -0
  57. package/lib/common/action-toolbar/action-toolbar.cjs +20 -8
  58. package/lib/common/button-list/button-list.cjs +82 -62
  59. package/lib/common/button-list/button-list.css +1 -1
  60. package/lib/common/index.cjs +2 -0
  61. package/lib/common/rawitem/rawitem.cjs +2 -2
  62. package/lib/control/list/md-ctrl/md-ctrl.cjs +12 -14
  63. package/lib/control/tab-exp-panel/tab-exp-panel.cjs +27 -0
  64. package/lib/control/tab-exp-panel/tab-exp-panel.css +1 -0
  65. package/lib/control/tree/tree.cjs +14 -2
  66. package/lib/control/tree/tree.css +1 -1
  67. package/lib/editor/span/span/span.cjs +5 -5
  68. package/lib/editor/upload/use/use-van-upload.cjs +19 -1
  69. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.cjs +1 -1
  70. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.cjs +1 -1
  71. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.cjs +82 -0
  72. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.controller.cjs +78 -0
  73. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.css +1 -0
  74. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.provider.cjs +23 -0
  75. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.state.cjs +9 -0
  76. package/lib/panel-component/index-blank-placeholder/index.cjs +25 -0
  77. package/lib/panel-component/index.cjs +2 -0
  78. package/lib/panel-component/panel-button-list/panel-button-list.controller.cjs +18 -17
  79. package/package.json +6 -6
  80. package/dist/index-yGM1h2Ma.js +0 -76
  81. package/dist/index-yGM1h2Ma.js.map +0 -1
  82. package/dist/tree-nburezSg.js +0 -2
  83. package/dist/tree-nburezSg.js.map +0 -1
@@ -31,6 +31,36 @@ const IBizButtonList = /* @__PURE__ */ vue.defineComponent({
31
31
  }) {
32
32
  const ns = vue3Util.useNamespace("button-list");
33
33
  const showPopover = vue.ref(false);
34
+ const buttonRef = vue.ref();
35
+ const childPopover = vue.ref(false);
36
+ const details = vue.computed(() => {
37
+ const {
38
+ buttonListType,
39
+ uiactionGroup
40
+ } = props.model;
41
+ if (buttonListType === "UIACTIONGROUP")
42
+ return (uiactionGroup == null ? void 0 : uiactionGroup.uiactionGroupDetails) || [];
43
+ return props.model.panelButtons || props.model.deformButtons || [];
44
+ });
45
+ const placement = vue.computed(() => {
46
+ if (!buttonRef.value)
47
+ return "bottom";
48
+ const {
49
+ innerWidth,
50
+ innerHeight
51
+ } = window;
52
+ const {
53
+ offsetLeft: x,
54
+ offsetTop: y,
55
+ offsetWidth: width
56
+ } = buttonRef.value.$el;
57
+ const centerX = innerWidth - width - 128;
58
+ const centerY = details.value.length ? innerHeight - details.value.length * 44 : innerHeight / 2;
59
+ if (y > centerY) {
60
+ return x > centerX ? "top-end" : "top-start";
61
+ }
62
+ return x > centerX ? "bottom-end" : "bottom-start";
63
+ });
34
64
  const buttonListStyle = vue.computed(() => {
35
65
  const {
36
66
  itemStyle,
@@ -39,102 +69,90 @@ const IBizButtonList = /* @__PURE__ */ vue.defineComponent({
39
69
  return itemStyle || detailStyle || "DEFAULT";
40
70
  });
41
71
  const handleClick = (item, e) => {
72
+ e == null ? void 0 : e.stopPropagation();
42
73
  emit("click", item.id, e);
43
74
  };
44
75
  const onChangePopover = (e) => {
45
76
  e.stopPropagation();
46
77
  showPopover.value = !showPopover.value;
47
78
  };
48
- const details = vue.computed(() => {
49
- const {
50
- buttonListType,
51
- uiactionGroup
52
- } = props.model;
53
- if (buttonListType === "UIACTIONGROUP")
54
- return (uiactionGroup == null ? void 0 : uiactionGroup.uiactionGroupDetails) || [];
55
- return props.model.panelButtons || props.model.deformButtons || [];
56
- });
57
- const actions = vue.computed(() => {
58
- return details.value.filter((detail) => {
59
- var _a;
60
- return ((_a = props.buttonsState[detail.id]) == null ? void 0 : _a.visible) !== false;
61
- }).map((detail) => {
62
- var _a, _b;
63
- return {
64
- ...detail,
65
- disabled: (_a = props.buttonsState[detail.id]) == null ? void 0 : _a.disabled,
66
- className: (_b = detail.sysCss) == null ? void 0 : _b.cssName
67
- };
68
- });
69
- });
70
- const renderActions = () => {
71
- return vue.createVNode("div", {
72
- "class": ns.e("content")
73
- }, [details.value.map((item) => {
79
+ const renderSeparator = (visible) => {
80
+ if (visible)
81
+ return vue.createVNode("div", {
82
+ "class": ns.e("separator")
83
+ }, null);
84
+ };
85
+ const renderActions = (direction) => {
86
+ const showSeparator = direction === "vertical";
87
+ return details.value.map((item) => {
74
88
  var _a, _b, _c, _d;
75
- if (((_a = props.buttonsState[item.id]) == null ? void 0 : _a.visible) === false)
76
- return;
77
- return vue.createVNode(vue.resolveComponent("van-button"), {
78
- "class": [ns.e("item"), ns.em("item", `${(_b = item.id) == null ? void 0 : _b.toLowerCase()}`), (_c = item.sysCss) == null ? void 0 : _c.cssName],
79
- "size": "small",
80
- "type": buttonUtil.convertBtnType(item.buttonStyle),
81
- "disabled": ((_d = props.buttonsState[item.id]) == null ? void 0 : _d.disabled) || props.disabled,
82
- "onClick": (event) => handleClick(item, event)
83
- }, {
84
- default: () => [item.showIcon !== false && vue.createVNode(vue.resolveComponent("iBizIcon"), {
85
- "icon": item.sysImage,
86
- "class": ns.em("item", "icon")
87
- }, null), item.showCaption && vue.createVNode("span", {
88
- "class": ns.em("item", "caption")
89
- }, [item.caption])]
90
- });
91
- })]);
89
+ if (item.detailType === "DEUIACTIONGROUP")
90
+ return [renderSeparator(item.addSeparator && showSeparator), vue.createVNode(vue.resolveComponent("iBizActionGroup"), {
91
+ "actionDetail": item,
92
+ "onActionClick": handleClick,
93
+ "actionsState": props.buttonsState,
94
+ "popoverClassName": ns.b("action-group"),
95
+ "onPopoverVisibleChange": (visible) => childPopover.value = visible,
96
+ "direction": direction === "horizontal" ? "vertical" : "horizontal"
97
+ }, null)];
98
+ if ((_a = props.buttonsState[item.id]) == null ? void 0 : _a.visible)
99
+ return [renderSeparator(item.addSeparator && showSeparator), vue.createVNode(vue.resolveComponent("van-button"), {
100
+ "size": "small",
101
+ "class": [ns.e("item"), ns.em("item", `${(_b = item.id) == null ? void 0 : _b.toLowerCase()}`), (_c = item.sysCss) == null ? void 0 : _c.cssName],
102
+ "type": buttonUtil.convertBtnType(item.buttonStyle),
103
+ "disabled": ((_d = props.buttonsState[item.id]) == null ? void 0 : _d.disabled) || props.disabled,
104
+ "onClick": (event) => handleClick(item, event)
105
+ }, {
106
+ default: () => [item.showIcon !== false && vue.createVNode(vue.resolveComponent("iBizIcon"), {
107
+ "icon": item.sysImage,
108
+ "class": ns.em("item", "icon")
109
+ }, null), item.showCaption && vue.createVNode("span", {
110
+ "class": ns.em("item", "caption")
111
+ }, [item.caption])]
112
+ })];
113
+ return null;
114
+ });
92
115
  };
93
116
  const renderDropdown = () => {
94
117
  return vue.createVNode(vue.resolveComponent("van-popover"), {
95
118
  "class": ns.e("popover"),
96
- "placement": "bottom-end",
97
- "actions": actions.value,
119
+ "placement": placement.value,
98
120
  "show": showPopover.value,
99
121
  "onUpdate:show": ($event) => showPopover.value = $event,
100
- "onSelect": (data) => handleClick(data)
122
+ "close-on-click-outside": !childPopover.value
101
123
  }, {
102
- action: ({
103
- action
104
- }) => {
105
- return vue.createVNode("span", {
106
- "class": ns.em("popover", "item")
107
- }, [action.showIcon !== false && action.sysImage && vue.createVNode(vue.resolveComponent("iBizIcon"), {
108
- "icon": action.sysImage
109
- }, null), action.showCaption && action.caption]);
110
- },
111
124
  reference: () => {
112
125
  const {
113
126
  caption,
114
- sysImage,
115
- showCaption
127
+ sysImage
116
128
  } = props.model;
117
129
  return vue.createVNode(vue.resolveComponent("van-button"), {
118
130
  "size": "small",
131
+ "ref": "buttonRef",
132
+ "class": ns.e("button"),
119
133
  "disabled": props.disabled,
120
134
  "onClick": onChangePopover,
121
135
  "type": buttonUtil.convertBtnType(buttonListStyle.value)
122
136
  }, {
123
137
  default: () => [sysImage && vue.createVNode(vue.resolveComponent("iBizIcon"), {
124
- "class": ns.em("popover", "icon"),
138
+ "class": ns.em("button", "icon"),
125
139
  "icon": sysImage
126
- }, null), showCaption && vue.createVNode("span", {
127
- "class": ns.em("popover", "caption")
140
+ }, null), caption && vue.createVNode("span", {
141
+ "class": ns.em("button", "caption")
128
142
  }, [caption, vue.createVNode("ion-icon", {
129
143
  "name": "chevron-down-outline",
130
- "class": ns.em("popover", "more")
144
+ "class": ns.em("button", "more")
131
145
  }, null)])]
132
146
  });
147
+ },
148
+ default: () => {
149
+ return renderActions("vertical");
133
150
  }
134
151
  });
135
152
  };
136
153
  return {
137
154
  ns,
155
+ buttonRef,
138
156
  renderDropdown,
139
157
  renderActions
140
158
  };
@@ -144,7 +162,9 @@ const IBizButtonList = /* @__PURE__ */ vue.defineComponent({
144
162
  return vue.createVNode("div", {
145
163
  "class": [this.ns.b(), this.ns.m(this.model.id), this.ns.m((_a = this.model.actionGroupExtractMode) == null ? void 0 : _a.toLowerCase())],
146
164
  "style": this.model.cssStyle
147
- }, [this.model.actionGroupExtractMode === "ITEM" || this.model.buttonListType === "BUTTONS" ? this.renderActions() : this.renderDropdown()]);
165
+ }, [this.model.actionGroupExtractMode === "ITEM" || this.model.buttonListType === "BUTTONS" ? vue.createVNode("div", {
166
+ "class": this.ns.e("content")
167
+ }, [this.renderActions("horizontal")]) : this.renderDropdown()]);
148
168
  }
149
169
  });
150
170
 
@@ -1 +1 @@
1
- .ibiz-button-list{width:100%;height:100%}.ibiz-button-list .van-button{border:none}.ibiz-button-list .van-button .van-button__text{display:flex;align-items:center;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list .van-button .van-button__text .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);font-size:var(--ibiz-width-icon-medium)}.ibiz-button-list__content{display:flex;flex-wrap:wrap;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list__popover{--ibiz-color-bg-0:var(--van-popover-light-text-color)}.ibiz-button-list__popover .van-popover__action--disabled,.ibiz-button-list__popover .van-popover__action--disabled:active{color:var(--ibiz-color-disabled-text)!important;background-color:var(--ibiz-color-disabled-bg)}.ibiz-button-list__popover--item{display:flex;align-items:center;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list__popover--item .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);font-size:var(--ibiz-width-icon-medium)}.ibiz-button-list__popover--caption{display:flex;line-height:100%;align-items:center;gap:var(--ibiz-spacing-extra-tight)}
1
+ .ibiz-button-list{width:100%;height:100%}.ibiz-button-list .van-button{border:none}.ibiz-button-list .van-button .van-button__text{display:flex;align-items:center;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list .van-button .van-button__text .ibiz-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-width-icon-medium);height:var(--ibiz-width-icon-medium);font-size:var(--ibiz-width-icon-medium)}.ibiz-button-list__content{display:flex;flex-wrap:wrap;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list__button--caption{display:flex;line-height:100%;align-items:center;gap:var(--ibiz-spacing-extra-tight)}.ibiz-button-list__popover{--ibiz-color-bg-0:var(--van-popover-light-text-color)}.ibiz-button-list__popover .van-popover__action--disabled,.ibiz-button-list__popover .van-popover__action--disabled:active{color:var(--ibiz-color-disabled-text)!important;background-color:var(--ibiz-color-disabled-bg)}.ibiz-button-list__popover .van-popover__content{display:flex;flex-direction:column}.ibiz-button-list__popover .van-popover__content .van-button{padding:0;font-size:var(--van-popover-action-font-size);line-height:var(--van-line-height-md);width:var(--van-popover-action-width);height:var(--van-popover-action-height);border-color:var(--ibiz-color-white)}.ibiz-button-list__popover .van-popover__content .van-button:before{border-color:var(--ibiz-color-white)}.ibiz-button-list__popover .van-popover__content .van-button .van-button__text{display:flex;align-items:center;gap:var(--ibiz-spacing-extra-tight)}
@@ -19,10 +19,12 @@ var mdCtrlSetting = require('./md-ctrl-setting/md-ctrl-setting.cjs');
19
19
  var previewImage = require('./preview-image/preview-image.cjs');
20
20
  var dateRangePicker = require('./date-range-picker/date-range-picker.cjs');
21
21
  var cropping = require('./cropping/cropping.cjs');
22
+ var actionGroup = require('./action-group/action-group.cjs');
22
23
 
23
24
  "use strict";
24
25
  const IBizCommonComponents = {
25
26
  install: (v) => {
27
+ v.component(actionGroup.IBizActionGroup.name, actionGroup.IBizActionGroup);
26
28
  v.component(dateRangePicker.IBizDateRangeCalendar.name, dateRangePicker.IBizDateRangeCalendar);
27
29
  v.component(vue3Util.IBizViewShell.name, vue3Util.IBizViewShell);
28
30
  v.component(row.IBizRow.name, row.IBizRow);
@@ -87,7 +87,7 @@ const IBizRawItem = /* @__PURE__ */ vue.defineComponent({
87
87
  }
88
88
  }
89
89
  }
90
- if (["TEXT", "HEADING1", "HEADING2", "HEADING3", "HEADING4", "HEADING5", "HEADING6", "PARAGRAPH", "HTML"].includes(rawItemType.value)) {
90
+ if (["TEXT", "HEADING1", "HEADING2", "HEADING3", "HEADING4", "HEADING5", "HEADING6", "PARAGRAPH", "HTML", "RAW"].includes(rawItemType.value)) {
91
91
  rawItemText.value = rawItemContent.value;
92
92
  if (typeof rawItemText.value === "string") {
93
93
  rawItemText.value = rawItemText.value.replaceAll("&lt;", "<");
@@ -163,7 +163,7 @@ const IBizRawItem = /* @__PURE__ */ vue.defineComponent({
163
163
  "icon": this.rawItemContent
164
164
  }, null);
165
165
  }
166
- if (this.rawItemType === "TEXT") {
166
+ if (this.rawItemType === "TEXT" || this.rawItemType === "RAW") {
167
167
  return vue.createVNode("span", {
168
168
  "class": this.ns.e("text")
169
169
  }, [this.rawItemText]);
@@ -149,24 +149,22 @@ const MDCtrlControl = /* @__PURE__ */ vue.defineComponent({
149
149
  const leftSlidingActionGroup = c.model.deuiactionGroup;
150
150
  const rightSlidingActionGroup = c.model.deuiactionGroup2;
151
151
  const renderSlidingActionGroup = (group, data) => {
152
- const groupDetails = group.uiactionGroupDetails || [];
153
- if (!groupDetails || groupDetails.length === 0) {
152
+ const groupDetails = runtime.getAllUIActionItems(group.uiactionGroupDetails);
153
+ if (!groupDetails || groupDetails.length === 0)
154
154
  return null;
155
- }
156
155
  const row = c.state.rows.find((rowData) => data.srfkey === rowData.data.srfkey);
157
156
  const btnContainer = row.uaColStates[group.id];
158
157
  return groupDetails.map((detail) => {
159
- const btn = btnContainer[detail.id];
160
- if (btn.visible === false) {
161
- return null;
162
- }
163
- return vue.createVNode(vue.resolveComponent("van-button"), {
164
- "square": true,
165
- "type": "primary",
166
- "text": detail.caption,
167
- "disabled": btn.disabled || btn.loading,
168
- "onClick": (e) => c.onActionClick(detail, row, e)
169
- }, null);
158
+ const btn = btnContainer == null ? void 0 : btnContainer[detail.id];
159
+ if (btn == null ? void 0 : btn.visible)
160
+ return vue.createVNode(vue.resolveComponent("van-button"), {
161
+ "square": true,
162
+ "type": "primary",
163
+ "text": detail.caption,
164
+ "disabled": btn.disabled || btn.loading,
165
+ "onClick": (e) => c.onActionClick(detail, row, e)
166
+ }, null);
167
+ return null;
170
168
  });
171
169
  };
172
170
  const renderDefaultItem = (data) => {
@@ -3,6 +3,7 @@
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
5
  var runtime = require('@ibiz-template/runtime');
6
+ require('./tab-exp-panel.css');
6
7
 
7
8
  "use strict";
8
9
  function _isSlot(s) {
@@ -48,8 +49,11 @@ const TabExpPanelControl = /* @__PURE__ */ vue.defineComponent({
48
49
  }
49
50
  },
50
51
  setup() {
52
+ var _a, _b;
51
53
  const c = vue3Util.useControlController((...args) => new runtime.TabExpPanelController(...args));
52
54
  const ns = vue3Util.useNamespace(`control-${c.model.controlType.toLowerCase()}`);
55
+ const model = (_a = c.view) == null ? void 0 : _a.model;
56
+ const tabPosition = ((_b = model == null ? void 0 : model.tabLayout) == null ? void 0 : _b.toLowerCase()) || "top";
53
57
  const onTabChange = (value) => {
54
58
  c.state.activeName = value;
55
59
  c.handleTabChange();
@@ -57,6 +61,7 @@ const TabExpPanelControl = /* @__PURE__ */ vue.defineComponent({
57
61
  return {
58
62
  c,
59
63
  ns,
64
+ tabPosition,
60
65
  onTabChange
61
66
  };
62
67
  },
@@ -66,6 +71,28 @@ const TabExpPanelControl = /* @__PURE__ */ vue.defineComponent({
66
71
  isCreated,
67
72
  tabPages
68
73
  } = this.c.state;
74
+ if (this.tabPosition === "flow" || this.tabPosition === "flow_noheader") {
75
+ if (!isCreated) {
76
+ return;
77
+ }
78
+ return vue.createVNode("div", {
79
+ "class": this.ns.b()
80
+ }, [tabPages.map((page) => {
81
+ var _a;
82
+ const target = (_a = this.c.model.controls) == null ? void 0 : _a.find((tab) => tab.id === page.tabTag);
83
+ return vue.createVNode("div", {
84
+ "class": this.ns.b("tab-item")
85
+ }, [vue.createVNode("div", {
86
+ "class": this.ns.b("tab-item-header")
87
+ }, [page.caption]), vue.createVNode("div", {
88
+ "class": this.ns.b("tab-item-content")
89
+ }, [vue.h(vue.resolveComponent("IBizViewShell"), {
90
+ context: this.context,
91
+ params: this.params,
92
+ viewId: target == null ? void 0 : target.embeddedAppDEViewId
93
+ })])]);
94
+ })]);
95
+ }
69
96
  return isCreated && vue.createVNode(vue.resolveComponent("van-tabs"), {
70
97
  "class": [this.ns.b("header")],
71
98
  "active": this.c.state.activeName,
@@ -0,0 +1 @@
1
+ .ibiz-control-tabexppanel-tab-item-header{padding:.5rem 1rem;overflow:hidden;font-size:var(--ibiz-font-size-regular);line-height:var(--van-cell-line-height);color:var(--ibiz-color-text-2);text-overflow:ellipsis;white-space:nowrap;background:var(--ibiz-color-bg-0)}
@@ -63,6 +63,13 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
63
63
  singleSelect: {
64
64
  type: Boolean,
65
65
  default: true
66
+ },
67
+ /**
68
+ * @description 是否是导航内的(即树导航里的树)
69
+ */
70
+ navigational: {
71
+ type: Boolean,
72
+ default: void 0
66
73
  }
67
74
  },
68
75
  setup() {
@@ -310,12 +317,14 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
310
317
  };
311
318
  const key = this.c.controlPanel ? "tree" : "default";
312
319
  slots[key] = () => {
313
- return [this.breadcrumb && vue.createVNode(vue.resolveComponent("van-sticky"), null, {
320
+ const content = [this.breadcrumb && vue.createVNode("div", {
321
+ "class": this.ns.be("header", "container")
322
+ }, [vue.createVNode(vue.resolveComponent("van-sticky"), null, {
314
323
  default: () => [vue.createVNode("div", {
315
324
  "id": `breadcrumb${this.uuid}`,
316
325
  "class": [this.ns.b("header"), this.ns.is("no-root", !this.c.model.rootVisible)]
317
326
  }, null)]
318
- }), this.c.state.isCreated && this.c.state.isLoaded && vue.createVNode(vue.resolveComponent("vs-tree"), {
327
+ })]), this.c.state.isCreated && this.c.state.isLoaded && vue.createVNode(vue.resolveComponent("vs-tree"), {
319
328
  "show-line": true,
320
329
  "ref": "treeRef",
321
330
  "key": this.treeRefreshKey,
@@ -332,6 +341,9 @@ const TreeControl = /* @__PURE__ */ vue.defineComponent({
332
341
  "load": this.loadData,
333
342
  "onCheck": this.onNodeCheck
334
343
  }, null)];
344
+ return vue.createVNode("div", {
345
+ "class": this.ns.b("container")
346
+ }, [content]);
335
347
  };
336
348
  return vue.createVNode(vue.resolveComponent("iBizControlBase"), {
337
349
  "controller": this.c
@@ -1 +1 @@
1
- .ibiz-control-treeview{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);height:100%;padding:0 var(--ibiz-control-treeview-padding);background:var(--ibiz-control-treeview-bg-color)}.ibiz-control-treeview-content{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);height:100%}.ibiz-control-treeview-content .vs-tree-node{position:relative;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-content .vs-tree-node .vs-tree-inner{display:flex;align-items:center}.ibiz-control-treeview-content .vs-tree-node .vs-icon-leaf,.ibiz-control-treeview-content .vs-tree-node .vs-icon-parent{width:auto;margin-right:0}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right)}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-content .tree-button{color:var(--ibiz-color-primary)}.ibiz-control-treeview-header{--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);--ibiz-control-treeview-crumb-icon-top:0.1875rem}.ibiz-control-treeview-header__crumb{display:inline-flex;align-items:center;height:var(--ibiz-height-control-small)}.ibiz-control-treeview-header__crumb .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right);margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-treeview-header__crumb .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-header__crumb>span:has(img),.ibiz-control-treeview-header__crumb>span:has(svg){position:relative}.ibiz-control-treeview-header__crumb>span:has(img) .ibiz-icon,.ibiz-control-treeview-header__crumb>span:has(svg) .ibiz-icon{position:absolute;top:var(--ibiz-control-treeview-crumb-icon-top)}.ibiz-control-treeview-header__crumb>span:has(img)::after,.ibiz-control-treeview-header__crumb>span:has(svg)::after{display:inline-block;width:var(--ibiz-control-treeview-node-icon-width);margin-right:var(--ibiz-spacing-extra-tight);content:"\e710";opacity:0}.ibiz-control-treeview-header.is-no-root>span:has(.ibiz-control-treeview-header__crumb.is-root){display:none}
1
+ .ibiz-control-treeview{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);height:100%;padding:0 var(--ibiz-control-treeview-padding);background:var(--ibiz-control-treeview-bg-color)}.ibiz-control-treeview-content{--ibiz-control-treeview-text-color:var(--ibiz-color-text);--ibiz-control-treeview-hover-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-active-bg-color:var(--ibiz-color-primary);--ibiz-control-treeview-padding:0.625rem;--ibiz-control-treeview-bg-color:var(--ibiz-color-bg-2);height:100%}.ibiz-control-treeview-content .vs-tree-node{position:relative;padding:var(--ibiz-control-treeview-padding)}.ibiz-control-treeview-content .vs-tree-node .vs-tree-inner{display:flex;align-items:center}.ibiz-control-treeview-content .vs-tree-node .vs-icon-leaf,.ibiz-control-treeview-content .vs-tree-node .vs-icon-parent{width:auto;margin-right:0}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right)}.ibiz-control-treeview-content .vs-tree-node .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-content .tree-button{color:var(--ibiz-color-primary)}.ibiz-control-treeview-header{--ibiz-control-treeview-node-icon-height:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-width:var(--ibiz-spacing-base);--ibiz-control-treeview-node-icon-margin-right:var(--ibiz-spacing-tight);--ibiz-control-treeview-crumb-icon-top:0.1875rem}.ibiz-control-treeview-header__crumb{display:inline-flex;align-items:center;height:var(--ibiz-height-control-small)}.ibiz-control-treeview-header__crumb .ibiz-icon{display:inline-flex;align-items:center;width:var(--ibiz-control-treeview-node-icon-width);height:var(--ibiz-control-treeview-node-icon-height);margin-right:var(--ibiz-control-treeview-node-icon-margin-right);margin-right:var(--ibiz-spacing-extra-tight)}.ibiz-control-treeview-header__crumb .ibiz-icon>svg{width:100%;height:100%}.ibiz-control-treeview-header__crumb>span:has(img),.ibiz-control-treeview-header__crumb>span:has(svg){position:relative}.ibiz-control-treeview-header__crumb>span:has(img) .ibiz-icon,.ibiz-control-treeview-header__crumb>span:has(svg) .ibiz-icon{position:absolute;top:var(--ibiz-control-treeview-crumb-icon-top)}.ibiz-control-treeview-header__crumb>span:has(img)::after,.ibiz-control-treeview-header__crumb>span:has(svg)::after{display:inline-block;width:var(--ibiz-control-treeview-node-icon-width);margin-right:var(--ibiz-spacing-extra-tight);content:"\e710";opacity:0}.ibiz-control-treeview-header__container{height:auto}.ibiz-control-treeview-header__container .van-sticky,.ibiz-control-treeview-header__container>div{height:auto!important}.ibiz-control-treeview-header.is-no-root>span:has(.ibiz-control-treeview-header__crumb.is-root){display:none}.ibiz-control-treeview-container{width:100%;height:100%;display:flex;flex-direction:column}
@@ -22,12 +22,12 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
22
22
  setup(props, {
23
23
  emit
24
24
  }) {
25
- var _a;
25
+ var _a, _b;
26
26
  const ns = vue3Util.useNamespace("span");
27
27
  const c = props.controller;
28
28
  const text = vue.ref("");
29
29
  const codeList = c.codeList;
30
- const textSeparator = c.model.textSeparator || ((_a = c.editorParams) == null ? void 0 : _a.TEXTSEPARATOR) || ",";
30
+ const textSeparator = c.model.textSeparator || ((_a = c.editorParams) == null ? void 0 : _a.TEXTSEPARATOR) || ((_b = c.editorParams) == null ? void 0 : _b.textseparator) || ",";
31
31
  vue.watch(() => props.value, (newVal, oldVal) => {
32
32
  if (newVal !== oldVal) {
33
33
  if (ramda.isNil(newVal)) {
@@ -111,14 +111,14 @@ const IBizSpan = /* @__PURE__ */ vue.defineComponent({
111
111
  };
112
112
  },
113
113
  render() {
114
- var _a, _b;
114
+ var _a, _b, _c, _d;
115
115
  let content = null;
116
116
  if (this.c.codeList && this.items.length > 0) {
117
117
  content = vue.createVNode(vue.resolveComponent("iBizCodeList"), {
118
- "class": [this.ns.e("code-list"), this.ns.is("reverse-color", !!((_a = this.c.editorParams) == null ? void 0 : _a.REVERSECOLOR))],
118
+ "class": [this.ns.e("code-list"), this.ns.is("reverse-color", !!((_a = this.c.editorParams) == null ? void 0 : _a.REVERSECOLOR) || !!((_b = this.c.editorParams) == null ? void 0 : _b.reversecolor))],
119
119
  "codeListItems": this.items,
120
120
  "codeList": this.c.codeList,
121
- "showMode": (_b = this.c.editorParams) == null ? void 0 : _b.SHOWMODE,
121
+ "showMode": ((_c = this.c.editorParams) == null ? void 0 : _c.SHOWMODE) || ((_d = this.c.editorParams) == null ? void 0 : _d.showmode),
122
122
  "value": this.text
123
123
  }, null);
124
124
  } else if (this.text) {
@@ -41,6 +41,22 @@ function useVanUpload(props, valueChange, c) {
41
41
  if ((newVal == null ? void 0 : newVal.length) && downloadUrl.value) {
42
42
  newVal.forEach((file) => {
43
43
  file.url = file.url || downloadUrl.value.replace("%fileId%", file.id);
44
+ if (ibiz.config.common.enableDownloadTicket)
45
+ ibiz.util.file.getDownloadTicket(
46
+ c.context,
47
+ c.params,
48
+ props.data,
49
+ {
50
+ fileId: file.id
51
+ },
52
+ c.downloadTicketParams
53
+ ).then((downloadTicket) => {
54
+ if (downloadTicket && downloadTicket.ticket)
55
+ file.url = downloadUrl.value.replace(
56
+ "%fileId%",
57
+ downloadTicket.ticket
58
+ );
59
+ });
44
60
  });
45
61
  }
46
62
  },
@@ -69,8 +85,10 @@ function useVanUpload(props, valueChange, c) {
69
85
  return true;
70
86
  };
71
87
  const onSuccess = (response) => {
72
- if (!response) {
88
+ if (!response)
73
89
  return;
90
+ if (ibiz.config.common.enableDownloadTicket && response.ticket) {
91
+ ibiz.util.file.setDownloadTicket(response.id, response.ticket);
74
92
  }
75
93
  files.value.push({
76
94
  name: response.filename,
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _commonjsHelpers = require('../../../../../../../../_virtual/_commonjsHelpers.cjs');
4
- var index = require('../../../../../../../../_virtual/index13.cjs');
4
+ var index = require('../../../../../../../../_virtual/index12.cjs');
5
5
 
6
6
  var frameTalkClientPc = index.__module.exports;
7
7
 
@@ -1,7 +1,7 @@
1
1
  'use strict';
2
2
 
3
3
  var _commonjsHelpers = require('../../../../../../../../_virtual/_commonjsHelpers.cjs');
4
- var index = require('../../../../../../../../_virtual/index12.cjs');
4
+ var index = require('../../../../../../../../_virtual/index13.cjs');
5
5
  require('../../../../../../../../_virtual/bridge.cjs');
6
6
  var retry = require('./retry.cjs');
7
7
  require('../../../../../../../../_virtual/dealParamsAndResult.cjs');
@@ -0,0 +1,82 @@
1
+ 'use strict';
2
+
3
+ var vue = require('vue');
4
+ var vue3Util = require('@ibiz-template/vue3-util');
5
+ require('./index-blank-placeholder.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 IndexBlankPlaceholder = /* @__PURE__ */ vue.defineComponent({
12
+ name: "IBizIndexBlankPlaceholder",
13
+ props: {
14
+ /**
15
+ * @description 空白占位模型数据
16
+ */
17
+ modelData: {
18
+ type: Object,
19
+ required: true
20
+ },
21
+ /**
22
+ * @description 空白占位控制器
23
+ */
24
+ controller: {
25
+ type: Object,
26
+ required: true
27
+ }
28
+ },
29
+ setup(props) {
30
+ const c = props.controller;
31
+ const ns = vue3Util.useNamespace("index-blank-placeholder");
32
+ const {
33
+ id
34
+ } = props.modelData;
35
+ const classArr = vue.computed(() => {
36
+ let result = [ns.b(), ns.m(id)];
37
+ result = [...result, ...props.controller.containerClass, ns.is("hidden", !props.controller.state.visible)];
38
+ return result;
39
+ });
40
+ if (c.routeDepth) {
41
+ vue3Util.onRouteChange((args) => {
42
+ c.setVisible(!args.currentKey);
43
+ }, c.routeDepth + 1);
44
+ }
45
+ return {
46
+ ns,
47
+ classArr
48
+ };
49
+ },
50
+ render() {
51
+ var _a, _b;
52
+ let _slot;
53
+ const defaultSlots = ((_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a)) || [];
54
+ const content = vue.createVNode(vue.resolveComponent("iBizRow"), {
55
+ "slot": "content",
56
+ "layout": this.modelData.layout
57
+ }, _isSlot(_slot = defaultSlots.map((slot) => {
58
+ const props = slot.props;
59
+ if (!props || !props.controller) {
60
+ return slot;
61
+ }
62
+ return vue.createVNode(vue.resolveComponent("iBizCol"), {
63
+ "layoutPos": props.modelData.layoutPos,
64
+ "state": props.controller.state
65
+ }, _isSlot(slot) ? slot : {
66
+ default: () => [slot]
67
+ });
68
+ })) ? _slot : {
69
+ default: () => [_slot]
70
+ });
71
+ return vue.createVNode("div", {
72
+ "class": this.classArr,
73
+ "onClick": () => {
74
+ this.controller.onClick();
75
+ }
76
+ }, [this.controller.model.cssStyle ? vue.createVNode("style", {
77
+ "type": "text/css"
78
+ }, [this.controller.model.cssStyle]) : null, content]);
79
+ }
80
+ });
81
+
82
+ exports.IndexBlankPlaceholder = IndexBlankPlaceholder;
@@ -0,0 +1,78 @@
1
+ 'use strict';
2
+
3
+ var runtime = require('@ibiz-template/runtime');
4
+ var indexBlankPlaceholder_state = require('./index-blank-placeholder.state.cjs');
5
+
6
+ "use strict";
7
+ class IndexBlankPlaceholderController extends runtime.PanelItemController {
8
+ createState() {
9
+ var _a;
10
+ return new indexBlankPlaceholder_state.IndexBlankPlaceholderState((_a = this.parent) == null ? void 0 : _a.state);
11
+ }
12
+ /**
13
+ * @description 当前视图路由层级
14
+ * @exposedoc
15
+ * @readonly
16
+ * @type {(number | undefined)}
17
+ * @memberof IndexBlankPlaceholderController
18
+ */
19
+ get routeDepth() {
20
+ return this.panel.view.modal.routeDepth;
21
+ }
22
+ /**
23
+ * @description 应用菜单
24
+ * @exposedoc
25
+ * @readonly
26
+ * @type {(AppMenuController | undefined)}
27
+ * @memberof IndexBlankPlaceholderController
28
+ */
29
+ get appmenu() {
30
+ return this.panel.getController("appmenu");
31
+ }
32
+ /**
33
+ * @description 首页导航栏
34
+ * @exposedoc
35
+ * @readonly
36
+ * @type {(NavPosIndexController | undefined)}
37
+ * @memberof IndexBlankPlaceholderController
38
+ */
39
+ get navPos() {
40
+ return this.panel.panelItems.nav_pos_index;
41
+ }
42
+ /**
43
+ * 初始化
44
+ *
45
+ * @protected
46
+ * @return {*} {Promise<void>}
47
+ * @memberof IndexBlankPlaceholderController
48
+ */
49
+ async onInit() {
50
+ await super.onInit();
51
+ this.state.keepAlive = true;
52
+ this.state.visible = false;
53
+ this.panel.evt.on("onMounted", async () => {
54
+ var _a;
55
+ if (this.navPos)
56
+ this.navPos.state.keepAlive = true;
57
+ const appViewId = (_a = this.appmenu) == null ? void 0 : _a.getDefaultOpenView();
58
+ if (appViewId) {
59
+ const appView = await ibiz.hub.config.view.get(appViewId);
60
+ const { openMode = "INDEXVIEWTAB" } = appView;
61
+ this.state.visible = !openMode.startsWith("INDEXVIEWTAB");
62
+ }
63
+ });
64
+ }
65
+ /**
66
+ * @description 设置显示状态
67
+ * @exposedoc
68
+ * @param {boolean} state
69
+ * @memberof IndexBlankPlaceholderController
70
+ */
71
+ setVisible(state) {
72
+ this.state.visible = state;
73
+ if (this.navPos)
74
+ this.navPos.state.visible = !state;
75
+ }
76
+ }
77
+
78
+ exports.IndexBlankPlaceholderController = IndexBlankPlaceholderController;
@@ -0,0 +1 @@
1
+ .ibiz-index-blank-placeholder{width:100%;height:100%}.ibiz-index-blank-placeholder>.ibiz-row{height:100%;overflow:hidden auto}.ibiz-index-blank-placeholder.is-hidden{display:none}