@ibiz-template/mob-vue3-components 0.7.41-alpha.7 → 0.7.41-alpha.8

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 (158) hide show
  1. package/dist/{index-O-XmMUt3.js → index-JSf84k9b.js} +2 -2
  2. package/dist/index-JSf84k9b.js.map +1 -0
  3. package/dist/{index-NP0RBfWK.js → index-OsiEgFnw.js} +2 -2
  4. package/dist/index-OsiEgFnw.js.map +1 -0
  5. package/dist/index-xh-oAbbH.js +76 -0
  6. package/dist/index-xh-oAbbH.js.map +1 -0
  7. package/dist/index.min.css +4 -4
  8. package/dist/index.system.min.js +1 -1
  9. package/dist/{quill-editor-BMC0diFC.js → quill-editor-8Y2QTf1T.js} +2 -2
  10. package/dist/{quill-editor-BMC0diFC.js.map → quill-editor-8Y2QTf1T.js.map} +1 -1
  11. package/dist/{quill-editor-preview-Dui7L0ne.js → quill-editor-preview-Afg5ZCWy.js} +2 -2
  12. package/dist/{quill-editor-preview-Dui7L0ne.js.map → quill-editor-preview-Afg5ZCWy.js.map} +1 -1
  13. package/dist/{quill-O7hIDmrl.js → quill-sc_3kAlj.js} +2 -2
  14. package/dist/{quill-O7hIDmrl.js.map → quill-sc_3kAlj.js.map} +1 -1
  15. package/es/_virtual/index12.mjs +2 -2
  16. package/es/_virtual/index13.mjs +2 -2
  17. package/es/_virtual/index17.mjs +2 -2
  18. package/es/_virtual/index18.mjs +2 -2
  19. package/es/common/button-list/button-list.d.ts +1 -0
  20. package/es/common/date-range-picker/components/range-picker/range-picker.d.ts +1 -1
  21. package/es/common/date-range-picker/date-range-picker.d.ts +2 -2
  22. package/es/common/emoji-select/components/emoji-list/emoji-list.d.ts +1 -1
  23. package/es/common/emoji-select/icons/search.d.ts +1 -0
  24. package/es/common/index.mjs +2 -1
  25. package/es/common/md-ctrl-setting/md-ctrl-setting.d.ts +3 -3
  26. package/es/control/app-menu/custom-menu-design/custom-menu-design.d.ts +1 -1
  27. package/es/control/dashboard/portlet/portlet-part/portlet-part.state.d.ts +1 -0
  28. package/es/control/dashboard/portlet/portlet-part/portlet-part.state.mjs +1 -0
  29. package/es/control/data-view/data-view.d.ts +2 -2
  30. package/es/control/data-view/data-view.mjs +2 -3
  31. package/es/control/data-view/index.d.ts +2 -2
  32. package/es/control/drbar/drbar.controller.d.ts +1 -0
  33. package/es/control/drbar/drbar.controller.mjs +3 -0
  34. package/es/control/drbar/drbar.d.ts +2 -2
  35. package/es/control/drbar/index.d.ts +2 -2
  36. package/es/control/drtab/drtab.controller.d.ts +1 -0
  37. package/es/control/drtab/drtab.controller.mjs +3 -0
  38. package/es/control/drtab/drtab.d.ts +2 -2
  39. package/es/control/drtab/index.d.ts +2 -2
  40. package/es/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
  41. package/es/control/form/form-detail/form-item/form-item-container/form-item-container.d.ts +1 -1
  42. package/es/control/form/form-detail/form-mdctrl/form-mdctrl-form/form-mdctrl-form.d.ts +1 -1
  43. package/es/control/form/form-detail/form-mdctrl/mdctrl-container/mdctrl-container.d.ts +3 -3
  44. package/es/control/list/list/index.d.ts +2 -2
  45. package/es/control/list/list/list.d.ts +2 -2
  46. package/es/control/list/list-render-util.d.ts +1 -0
  47. package/es/control/list/md-ctrl/index.d.ts +2 -2
  48. package/es/control/list/md-ctrl/md-ctrl.d.ts +2 -2
  49. package/es/control/pickup-view-panel/pickup-view-panel.controller.d.ts +2 -0
  50. package/es/control/pickup-view-panel/pickup-view-panel.controller.mjs +3 -0
  51. package/es/control/search-bar/filter-tree/filter-tree.d.ts +2 -2
  52. package/es/control/toolbar/index.d.ts +2 -2
  53. package/es/control/toolbar/popper-toolbar/popper-toolbar.d.ts +1 -1
  54. package/es/control/toolbar/toolbar.d.ts +2 -2
  55. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +1 -1
  56. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +144 -26
  57. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +2 -2
  58. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +2 -2
  59. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +2 -2
  60. package/es/editor/dropdown-list/ibiz-emoji-picker/ibiz-emoji-picker.d.ts +1 -0
  61. package/es/editor/index.mjs +7 -1
  62. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +1 -1
  63. package/es/editor/text-box/index.d.ts +1 -0
  64. package/es/editor/text-box/index.mjs +1 -0
  65. package/es/editor/text-box/signature/signature.css +1 -0
  66. package/es/editor/text-box/signature/signature.d.ts +104 -0
  67. package/es/editor/text-box/signature/signature.mjs +256 -0
  68. package/es/editor/text-box/text-box-editor.provider.mjs +3 -0
  69. package/es/index.mjs +1 -0
  70. package/es/locale/en/index.d.ts +28 -5
  71. package/es/locale/en/index.mjs +14 -0
  72. package/es/locale/zh-CN/index.d.ts +28 -5
  73. package/es/locale/zh-CN/index.mjs +14 -0
  74. package/es/mob-app/App.mjs +17 -1
  75. package/es/mob-app/guard/auth-guard/auth-guard.mjs +83 -1
  76. package/es/mob-app/util/unauthorized-handler/unauthorized-handler.d.ts +13 -5
  77. package/es/mob-app/util/unauthorized-handler/unauthorized-handler.mjs +47 -15
  78. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.mjs +1 -1
  79. package/es/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.mjs +1 -1
  80. package/es/node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.mjs +1 -1
  81. package/es/node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.mjs +1 -1
  82. package/es/panel-component/auth-sso/auth-sso.css +1 -1
  83. package/es/panel-component/auth-sso/auth-sso.d.ts +8 -3
  84. package/es/panel-component/auth-sso/auth-sso.mjs +78 -6
  85. package/es/panel-component/auth-sso/index.d.ts +7 -1
  86. package/es/panel-component/user-message/index.d.ts +1 -1
  87. package/es/panel-component/user-message/user-message.d.ts +1 -1
  88. package/es/util/app-util/app-util.d.ts +59 -1
  89. package/es/util/app-util/app-util.mjs +56 -1
  90. package/es/view-engine/login-view.engine.d.ts +2 -2
  91. package/es/view-engine/login-view.engine.mjs +2 -0
  92. package/es/view-engine/mob-data-view-engine.d.ts +2 -2
  93. package/es/view-engine/mob-data-view-engine.mjs +0 -1
  94. package/es/view-engine/mob-edit-view.engine.d.ts +2 -2
  95. package/es/view-engine/mob-edit-view.engine.mjs +5 -1
  96. package/es/view-engine/mob-md-view-engine.d.ts +2 -2
  97. package/es/view-engine/mob-md-view-engine.mjs +0 -1
  98. package/es/view-engine/mob-mpickup-view-engine.d.ts +20 -14
  99. package/es/view-engine/mob-mpickup-view-engine.mjs +34 -26
  100. package/es/view-engine/mob-opt-view.engine.d.ts +2 -2
  101. package/es/view-engine/mob-pickup-md-view.engine.d.ts +2 -2
  102. package/es/view-engine/mob-pickup-md-view.engine.mjs +0 -1
  103. package/es/view-engine/mob-pickup-view.engine.d.ts +9 -2
  104. package/es/view-engine/mob-pickup-view.engine.mjs +15 -1
  105. package/es/view-engine/mob-tab-search-view.engine.d.ts +2 -2
  106. package/es/view-engine/mob-tab-search-view.engine.mjs +0 -1
  107. package/es/view-engine/mob-wf-dyna-action-view.engine.d.ts +2 -2
  108. package/es/view-engine/mob-wf-dyna-action-view.engine.mjs +0 -1
  109. package/es/view-engine/mob-wf-dyna-edit-view.engine.d.ts +2 -2
  110. package/es/view-engine/mob-wf-dyna-edit-view.engine.mjs +0 -1
  111. package/es/view-engine/mob-wf-dyna-start-view.engine.d.ts +2 -2
  112. package/es/view-engine/mob-wf-dyna-start-view.engine.mjs +0 -1
  113. package/lib/_virtual/index12.cjs +2 -2
  114. package/lib/_virtual/index13.cjs +2 -2
  115. package/lib/_virtual/index17.cjs +2 -2
  116. package/lib/_virtual/index18.cjs +2 -2
  117. package/lib/common/index.cjs +1 -0
  118. package/lib/control/dashboard/portlet/portlet-part/portlet-part.state.cjs +1 -0
  119. package/lib/control/data-view/data-view.cjs +2 -3
  120. package/lib/control/drbar/drbar.controller.cjs +3 -0
  121. package/lib/control/drtab/drtab.controller.cjs +3 -0
  122. package/lib/control/form/form-detail/form-group-panel/form-group-panel.css +1 -1
  123. package/lib/control/pickup-view-panel/pickup-view-panel.controller.cjs +3 -0
  124. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +144 -26
  125. package/lib/editor/index.cjs +7 -0
  126. package/lib/editor/text-box/index.cjs +2 -0
  127. package/lib/editor/text-box/signature/signature.cjs +258 -0
  128. package/lib/editor/text-box/signature/signature.css +1 -0
  129. package/lib/editor/text-box/text-box-editor.provider.cjs +3 -0
  130. package/lib/index.cjs +2 -0
  131. package/lib/locale/en/index.cjs +14 -0
  132. package/lib/locale/zh-CN/index.cjs +14 -0
  133. package/lib/mob-app/App.cjs +16 -0
  134. package/lib/mob-app/guard/auth-guard/auth-guard.cjs +83 -1
  135. package/lib/mob-app/util/unauthorized-handler/unauthorized-handler.cjs +47 -15
  136. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/packages/frame-talk-client-pc/index.cjs +1 -1
  137. package/lib/node_modules/.pnpm/dingtalk-jsapi@3.0.38/node_modules/dingtalk-jsapi/lib/sdk/middlewares/index.cjs +1 -1
  138. package/lib/node_modules/.pnpm/lodash.clonedeep@4.5.0/node_modules/lodash.clonedeep/index.cjs +1 -1
  139. package/lib/node_modules/.pnpm/lodash.isequal@4.5.0/node_modules/lodash.isequal/index.cjs +1 -1
  140. package/lib/panel-component/auth-sso/auth-sso.cjs +77 -5
  141. package/lib/panel-component/auth-sso/auth-sso.css +1 -1
  142. package/lib/util/app-util/app-util.cjs +55 -0
  143. package/lib/view-engine/login-view.engine.cjs +2 -0
  144. package/lib/view-engine/mob-data-view-engine.cjs +0 -1
  145. package/lib/view-engine/mob-edit-view.engine.cjs +5 -1
  146. package/lib/view-engine/mob-md-view-engine.cjs +0 -1
  147. package/lib/view-engine/mob-mpickup-view-engine.cjs +34 -26
  148. package/lib/view-engine/mob-pickup-md-view.engine.cjs +0 -1
  149. package/lib/view-engine/mob-pickup-view.engine.cjs +15 -1
  150. package/lib/view-engine/mob-tab-search-view.engine.cjs +0 -1
  151. package/lib/view-engine/mob-wf-dyna-action-view.engine.cjs +0 -1
  152. package/lib/view-engine/mob-wf-dyna-edit-view.engine.cjs +0 -1
  153. package/lib/view-engine/mob-wf-dyna-start-view.engine.cjs +0 -1
  154. package/package.json +6 -6
  155. package/dist/index-NP0RBfWK.js.map +0 -1
  156. package/dist/index-O-XmMUt3.js.map +0 -1
  157. package/dist/index-komJV5bQ.js +0 -76
  158. package/dist/index-komJV5bQ.js.map +0 -1
@@ -75,7 +75,6 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
75
75
  this.view.layoutPanel.panelItems.simplelist.state.visible = false;
76
76
  }
77
77
  }
78
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
79
78
  async call(key, args) {
80
79
  if (key === SysUIActionTag.CANCEL) {
81
80
  this.cancel();
@@ -102,28 +101,11 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
102
101
  /**
103
102
  * 选择面板激活数据
104
103
  *
105
- * @param {IData[]} data
106
- * @memberof MobMPickupViewEngine
107
- */
108
- pickupViewPanelDataActive(data) {
109
- const allData = this.simpleList.getAllData();
110
- const items = [...allData, ...data];
111
- const uniqueItems = this.handleUniqueItems(items);
112
- this.simpleList.setData(uniqueItems);
113
- }
114
- /**
115
- * 去重数组
116
- *
117
- * @protected
118
- * @param {IData[]} arr
119
- * @return {*} {IData[]}
120
104
  * @memberof MobMPickupViewEngine
121
105
  */
122
- handleUniqueItems(arr) {
123
- const res = /* @__PURE__ */ new Map();
124
- return arr.filter(
125
- (item) => !res.has(item.srfkey) && res.set(item.srfkey, 1)
126
- );
106
+ async pickupViewPanelDataActive() {
107
+ const selectedData = await this.pickupViewPanel.getSelectedData();
108
+ await this.handlePushSimpleListItems(selectedData);
127
109
  }
128
110
  /**
129
111
  * 选则面板激活数据
@@ -167,10 +149,26 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
167
149
  * @param {IData[]} data
168
150
  * @memberof MobMPickupViewEngine
169
151
  */
170
- handlePushSimpleListItems(data) {
171
- const allData = this.simpleList.getAllData();
172
- const items = this.calcDuplicateData(allData, data);
173
- this.simpleList.setData(items);
152
+ async handlePushSimpleListItems(data) {
153
+ const items = await this.pickupViewPanel.getAllData();
154
+ const selectItems = this.simpleList.getAllData().filter((selected) => !items.some((item) => item.srfkey === selected.srfkey));
155
+ selectItems.push(...data);
156
+ const uniqueItems = this.handleUniqueItems(selectItems);
157
+ this.setSelectedData(uniqueItems);
158
+ }
159
+ /**
160
+ * 去重数组
161
+ *
162
+ * @protected
163
+ * @param {IData[]} arr
164
+ * @return {*} {IData[]}
165
+ * @memberof MobMPickupViewEngine
166
+ */
167
+ handleUniqueItems(arr) {
168
+ const res = /* @__PURE__ */ new Map();
169
+ return arr.filter(
170
+ (item) => !res.has(item.srfkey) && res.set(item.srfkey, 1)
171
+ );
174
172
  }
175
173
  /**
176
174
  * 添加所有
@@ -191,7 +189,7 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
191
189
  * @memberof MobMPickupViewEngine
192
190
  */
193
191
  removeAll() {
194
- this.simpleList.setData([]);
192
+ this.setSelectedData([]);
195
193
  }
196
194
  /**
197
195
  * 添加选中
@@ -221,6 +219,16 @@ class MobMPickupViewEngine extends MobPickupViewEngine {
221
219
  items.splice(index, 1);
222
220
  }
223
221
  });
222
+ this.setSelectedData(items);
223
+ }
224
+ /**
225
+ * @description 设置选中数据
226
+ * @protected
227
+ * @param {IData[]} items
228
+ * @memberof MPickupViewEngine
229
+ */
230
+ setSelectedData(items) {
231
+ super.setSelectedData(items);
224
232
  this.simpleList.setData(items);
225
233
  }
226
234
  /**
@@ -1,4 +1,4 @@
1
- import { ViewController, IOptViewState, IOptViewEvent } from '@ibiz-template/runtime';
1
+ import { ViewController, IOptViewState, IOptViewEvent, IApiMobOptViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEEditView } from '@ibiz/model-core';
3
3
  import { MobEditViewEngine } from './mob-edit-view.engine';
4
4
  export declare class MobOptViewEngine extends MobEditViewEngine {
@@ -10,7 +10,7 @@ export declare class MobOptViewEngine extends MobEditViewEngine {
10
10
  * @memberof MobOptViewEngine
11
11
  */
12
12
  protected view: ViewController<IAppDEEditView, IOptViewState, IOptViewEvent>;
13
- call(key: string, args: any): Promise<any>;
13
+ call(key: keyof IApiMobOptViewCall, args: any): Promise<any>;
14
14
  /**
15
15
  * 确认
16
16
  *
@@ -1,4 +1,4 @@
1
- import { ViewController, IPickupMDViewEvent, IPickupMDViewState, IMobMDCtrlController, MDViewEngine } from '@ibiz-template/runtime';
1
+ import { ViewController, IPickupMDViewEvent, IPickupMDViewState, IMobMDCtrlController, MDViewEngine, IApiMobPickupMDViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEDataView } from '@ibiz/model-core';
3
3
  export declare class PickupMDViewEngine extends MDViewEngine {
4
4
  protected view: ViewController<IAppDEDataView, IPickupMDViewState, IPickupMDViewEvent>;
@@ -13,5 +13,5 @@ export declare class PickupMDViewEngine extends MDViewEngine {
13
13
  get mdctrl(): IMobMDCtrlController;
14
14
  onCreated(): Promise<void>;
15
15
  onMounted(): Promise<void>;
16
- call(key: string, args: any): Promise<IData | null | undefined>;
16
+ call(key: keyof IApiMobPickupMDViewCall, args: any): Promise<IData | null | undefined>;
17
17
  }
@@ -35,7 +35,6 @@ class PickupMDViewEngine extends MDViewEngine {
35
35
  this.load();
36
36
  }
37
37
  }
38
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
39
38
  async call(key, args) {
40
39
  if (key === "GetAllData") {
41
40
  return this.mdctrl.state.items;
@@ -1,4 +1,4 @@
1
- import { ViewController, IPickupViewPanelController, IPickupViewState, IPickupViewEvent, ViewEngineBase } from '@ibiz-template/runtime';
1
+ import { ViewController, IPickupViewPanelController, IPickupViewState, IPickupViewEvent, ViewEngineBase, IApiMobPickupViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEMobPickupView } from '@ibiz/model-core';
3
3
  export declare class MobPickupViewEngine extends ViewEngineBase {
4
4
  /**
@@ -37,6 +37,13 @@ export declare class MobPickupViewEngine extends ViewEngineBase {
37
37
  * @memberof MobPickupViewEngine
38
38
  */
39
39
  onMounted(): Promise<void>;
40
+ /**
41
+ * @description 设置选中数据
42
+ * @protected
43
+ * @param {IData[]} items
44
+ * @memberof PickupViewEngine
45
+ */
46
+ protected setSelectedData(items: IData[]): void;
40
47
  /**
41
48
  * 选则面板激活数据
42
49
  *
@@ -46,7 +53,7 @@ export declare class MobPickupViewEngine extends ViewEngineBase {
46
53
  * @memberof MobPickupViewEngine
47
54
  */
48
55
  pickupViewPanelDataActive(data: IData[]): void;
49
- call(key: string, args: any): Promise<IData | null | undefined>;
56
+ call(key: keyof IApiMobPickupViewCall, args: any): Promise<IData | null | undefined>;
50
57
  /**
51
58
  * 确认
52
59
  *
@@ -43,6 +43,10 @@ class MobPickupViewEngine extends ViewEngineBase {
43
43
  this.view.slotProps.pickupviewpanel = {};
44
44
  }
45
45
  this.view.slotProps.pickupviewpanel.singleSelect = true;
46
+ if (this.view.params.selecteddata) {
47
+ this.selectedData = JSON.parse(this.view.params.selecteddata);
48
+ delete this.view.params.selecteddata;
49
+ }
46
50
  }
47
51
  /**
48
52
  * 视图mounted生命周期执行逻辑
@@ -58,6 +62,17 @@ class MobPickupViewEngine extends ViewEngineBase {
58
62
  this.pickupViewPanel.evt.on("onDataActive", (event) => {
59
63
  this.pickupViewPanelDataActive(event.data);
60
64
  });
65
+ this.setSelectedData(this.selectedData);
66
+ }
67
+ /**
68
+ * @description 设置选中数据
69
+ * @protected
70
+ * @param {IData[]} items
71
+ * @memberof PickupViewEngine
72
+ */
73
+ setSelectedData(items) {
74
+ this.selectedData = items;
75
+ this.pickupViewPanel.setSelectedData(items);
61
76
  }
62
77
  /**
63
78
  * 选则面板激活数据
@@ -71,7 +86,6 @@ class MobPickupViewEngine extends ViewEngineBase {
71
86
  this.selectedData = data;
72
87
  this.view.closeView({ ok: true, data: this.selectedData });
73
88
  }
74
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
75
89
  async call(key, args) {
76
90
  if (key === SysUIActionTag.CANCEL) {
77
91
  this.cancel();
@@ -1,4 +1,4 @@
1
- import { ISearchBarController, ISearchFormController, ITabExpPanelController, ITabSearchViewEvent, ITabSearchViewState, ViewController } from '@ibiz-template/runtime';
1
+ import { IApiMobTabSearchViewCall, ISearchBarController, ISearchFormController, ITabExpPanelController, ITabSearchViewEvent, ITabSearchViewState, ViewController } from '@ibiz-template/runtime';
2
2
  import { IAppDETabSearchView, IDETabViewPanel } from '@ibiz/model-core';
3
3
  import { MobTabExpViewEngine } from './mob-tab-exp-view.engine';
4
4
  /**
@@ -53,7 +53,7 @@ export declare class MobTabSearchViewEngine extends MobTabExpViewEngine {
53
53
  * @memberof MobTabSearchViewEngine
54
54
  */
55
55
  onQuickSearchPlaceHolder(tab: IDETabViewPanel): Promise<void>;
56
- call(key: string, args: any): Promise<IData | null | undefined>;
56
+ call(key: keyof IApiMobTabSearchViewCall, args: any): Promise<IData | null | undefined>;
57
57
  /**
58
58
  * 获取搜索相关的查询参数
59
59
  * @author lxm
@@ -116,7 +116,6 @@ class MobTabSearchViewEngine extends MobTabExpViewEngine {
116
116
  this.searchBar.placeHolder = caption || "";
117
117
  this.searchBar.state.quickSearchPlaceHolder = caption || "";
118
118
  }
119
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
120
119
  async call(key, args) {
121
120
  if (key === SysUIActionTag.SEARCH) {
122
121
  await this.searchForm.search();
@@ -1,4 +1,4 @@
1
- import { ViewController, IWFDynaActionViewState, IWFDynaActionViewEvent } from '@ibiz-template/runtime';
1
+ import { ViewController, IWFDynaActionViewState, IWFDynaActionViewEvent, IApiMobWFDynaActionViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEMobWFDynaActionView } from '@ibiz/model-core';
3
3
  import { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';
4
4
  export declare class MobWFDynaActionViewEngine extends MobWFDynaEditViewEngine {
@@ -12,7 +12,7 @@ export declare class MobWFDynaActionViewEngine extends MobWFDynaEditViewEngine {
12
12
  protected view: ViewController<IAppDEMobWFDynaActionView, IWFDynaActionViewState, IWFDynaActionViewEvent>;
13
13
  isCalcWFToolbar: boolean;
14
14
  calcProcessFormName(): Promise<string>;
15
- call(key: string, args: any): Promise<IData | null | undefined>;
15
+ call(key: keyof IApiMobWFDynaActionViewCall, args: any): Promise<IData | null | undefined>;
16
16
  /**
17
17
  * 确认按钮回调
18
18
  *
@@ -18,7 +18,6 @@ class MobWFDynaActionViewEngine extends MobWFDynaEditViewEngine {
18
18
  const processForm = this.view.context.processForm ? `wfform_${this.view.context.processForm}` : "form";
19
19
  return processForm;
20
20
  }
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
22
21
  async call(key, args) {
23
22
  if (key === SysUIActionTag.OK) {
24
23
  this.onOkButtonClick();
@@ -1,4 +1,4 @@
1
- import { ViewController, IEditFormController, IWFDynaEditViewEvent, IWFDynaEditViewState, WFLink, IAppDEService, IToolbarController } from '@ibiz-template/runtime';
1
+ import { ViewController, IEditFormController, IWFDynaEditViewEvent, IWFDynaEditViewState, WFLink, IAppDEService, IToolbarController, IApiMobWFDynaEditViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEMobWFDynaEditView, IDEEditForm } from '@ibiz/model-core';
3
3
  import { WFActionButtonController } from '../panel-component/wf-action-button';
4
4
  import { MobEditViewEngine } from './mob-edit-view.engine';
@@ -119,7 +119,7 @@ export declare class MobWFDynaEditViewEngine extends MobEditViewEngine {
119
119
  * @memberof WFDynaEditViewController
120
120
  */
121
121
  wfSubmitByLink(link: WFLink): Promise<void>;
122
- call(key: string, args: any): Promise<IData | null | undefined>;
122
+ call(key: keyof IApiMobWFDynaEditViewCall, args: any): Promise<IData | null | undefined>;
123
123
  /**
124
124
  * 初始化工作流动态按钮
125
125
  *
@@ -245,7 +245,6 @@ class MobWFDynaEditViewEngine extends MobEditViewEngine {
245
245
  await this.view.closeView();
246
246
  }
247
247
  }
248
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
249
248
  async call(key, args) {
250
249
  if (key === "WFAction") {
251
250
  this.onLinkClick(args.id);
@@ -1,4 +1,4 @@
1
- import { ViewController, IWFDynaStartViewState, IWFDynaStartViewEvent } from '@ibiz-template/runtime';
1
+ import { ViewController, IWFDynaStartViewState, IWFDynaStartViewEvent, IApiMobWFDynaStartViewCall } from '@ibiz-template/runtime';
2
2
  import { IAppDEMobWFDynaStartView } from '@ibiz/model-core';
3
3
  import { MobWFDynaEditViewEngine } from './mob-wf-dyna-edit-view.engine';
4
4
  export declare class MobWFDynaStartViewEngine extends MobWFDynaEditViewEngine {
@@ -12,7 +12,7 @@ export declare class MobWFDynaStartViewEngine extends MobWFDynaEditViewEngine {
12
12
  protected view: ViewController<IAppDEMobWFDynaStartView, IWFDynaStartViewState, IWFDynaStartViewEvent>;
13
13
  isCalcWFToolbar: boolean;
14
14
  calcProcessFormName(): Promise<string>;
15
- call(key: string, args: any): Promise<IData | null | undefined>;
15
+ call(key: keyof IApiMobWFDynaStartViewCall, args: any): Promise<IData | null | undefined>;
16
16
  /**
17
17
  * 确认按钮回调
18
18
  *
@@ -18,7 +18,6 @@ class MobWFDynaStartViewEngine extends MobWFDynaEditViewEngine {
18
18
  const processForm = this.view.context.processForm ? `wfform_${this.view.context.processForm}` : "form";
19
19
  return processForm;
20
20
  }
21
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, @typescript-eslint/explicit-module-boundary-types
22
21
  async call(key, args) {
23
22
  if (key === SysUIActionTag.OK) {
24
23
  this.onOkButtonClick();
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var middlewares = {};
3
+ var frameTalkClientPc = {exports: {}};
4
4
 
5
- exports.__exports = middlewares;
5
+ exports.__module = frameTalkClientPc;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var frameTalkClientPc = {exports: {}};
3
+ var middlewares = {};
4
4
 
5
- exports.__module = frameTalkClientPc;
5
+ exports.__exports = middlewares;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var lodash_clonedeep = {exports: {}};
3
+ var lodash_isequal = {exports: {}};
4
4
 
5
- exports.__module = lodash_clonedeep;
5
+ exports.__module = lodash_isequal;
@@ -1,5 +1,5 @@
1
1
  'use strict';
2
2
 
3
- var lodash_isequal = {exports: {}};
3
+ var lodash_clonedeep = {exports: {}};
4
4
 
5
- exports.__module = lodash_isequal;
5
+ exports.__module = lodash_clonedeep;
@@ -46,6 +46,7 @@ const IBizCommonComponents = {
46
46
  v.component(mdCtrlSetting.IBizMdCtrlSetting.name, mdCtrlSetting.IBizMdCtrlSetting);
47
47
  v.component(previewImage.IBizPreviewImage.name, previewImage.IBizPreviewImage);
48
48
  v.component(cropping.IBizCropping.name, cropping.IBizCropping);
49
+ v.component(vue3Util.IBizSignaturePad.name, vue3Util.IBizSignaturePad);
49
50
  }
50
51
  };
51
52
 
@@ -9,6 +9,7 @@ var __publicField = (obj, key, value) => {
9
9
  };
10
10
  class PortletPartState {
11
11
  constructor() {
12
+ __publicField(this, "hightLight", false);
12
13
  __publicField(this, "visible", true);
13
14
  __publicField(this, "keepAlive", false);
14
15
  __publicField(this, "layout", {
@@ -91,11 +91,10 @@ const DataViewControl = /* @__PURE__ */ vue.defineComponent({
91
91
  }, null);
92
92
  };
93
93
  const renderItemAction = (item) => {
94
- var _a;
95
94
  return vue.createVNode(vue.resolveComponent("iBizActionToolbar"), {
96
95
  "class": ns.bem("item-content", "bottom", "actions"),
97
- "action-details": (_a = c.getOptItemModel().deuiactionGroup) == null ? void 0 : _a.uiactionGroupDetails,
98
- "actions-state": c.getOptItemAction(item),
96
+ "action-details": c.getOptItemModel(),
97
+ "actions-state": c.state.uaState[item.srfkey],
99
98
  "onActionClick": (detail, event) => c.onActionClick(detail, item, event)
100
99
  }, null);
101
100
  };
@@ -27,6 +27,9 @@ class DRBarController extends runtime.ControlController {
27
27
  */
28
28
  __publicField(this, "router");
29
29
  }
30
+ setActive(_name) {
31
+ throw new Error("Method not implemented.");
32
+ }
30
33
  /**
31
34
  * 导航占位控制器
32
35
  *
@@ -28,6 +28,9 @@ class DRTabController extends runtime.ControlController {
28
28
  */
29
29
  __publicField(this, "router");
30
30
  }
31
+ setActive(_name) {
32
+ throw new Error("Method not implemented.");
33
+ }
31
34
  /**
32
35
  * 导航占位控制器
33
36
  *
@@ -1 +1 @@
1
- .ibiz-form-group{--ibiz-form-group-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-footer-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-show-more-color:var(--ibiz-color-primary);--ibiz-form-group-padding:var(--ibiz-spacing-extra-tight);--ibiz-form-group-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-header-padding:var(--ibiz-spacing-base) var(--ibiz-spacing-base) var(--ibiz-spacing-tight);--ibiz-form-group-header-border-color:var(--ibiz-color-border);--ibiz-form-group-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-group-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-group-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-group-content-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-content-padding:var(--ibiz-spacing-tight);--ibiz-form-group-content-margin:0}.ibiz-form-group{overflow:hidden;background-color:var(--ibiz-form-group-bg-color)}.ibiz-form-group__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-group-caption-font-size);font-weight:var(--ibiz-form-group-caption-font-weight);color:var(--ibiz-form-group-caption-text-color)}.ibiz-form-group__toolbar{text-align:right}.ibiz-form-group--style2{background-color:var(--ibiz-color-bg-0);padding:var(--ibiz-form-group-padding)}.ibiz-form-group--style2>.ibiz-form-group-header{border-radius:var(--ibiz-border-radius-large) var(--ibiz-border-radius-large) 0 0}.ibiz-form-group--style2 .ibiz-form-group__content{padding:var(--ibiz-border-radius-large) 0;border-radius:var(--ibiz-border-radius-large);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group--style2>.ibiz-form-group-header+.ibiz-form-group__content{padding-top:0;border-radius:0 0 var(--ibiz-border-radius-large) var(--ibiz-border-radius-large)}.ibiz-form-group .ibiz-form-item-container{border-radius:0}.ibiz-form-group-collapse>.ibiz-form-group-content{display:block}.ibiz-form-group-collapse.is-collapse>.ibiz-form-group-content{display:none}.ibiz-form-group-header{display:flex;align-items:center;padding:var(--ibiz-form-group-header-padding);background-color:var(--ibiz-form-group-header-bg-color)}.ibiz-form-group-header__left,.ibiz-form-group-header__right{display:inline-block;width:50%}.ibiz-form-group-header__right{display:flex;align-items:center;justify-content:flex-end;height:100%}.ibiz-form-group-header__right .van-button{height:100%;color:var(--ibiz-color-link);background:0 0;border:none}.ibiz-form-group--show-header content,.ibiz-form-group--show-header>.ibiz-form-group{margin-bottom:var(--ibiz-form-group-content-margin);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group-footer{padding:var(--ibiz-form-group-footer-padding)}.ibiz-form-group-footer__show-more-button{display:inline-block;color:var(--ibiz-form-group-show-more-color)}
1
+ .ibiz-form-group{--ibiz-form-group-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-footer-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);--ibiz-form-group-show-more-color:var(--ibiz-color-primary);--ibiz-form-group-padding:var(--ibiz-spacing-extra-tight);--ibiz-form-group-header-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-header-padding:var(--ibiz-spacing-base) var(--ibiz-spacing-base) var(--ibiz-spacing-tight);--ibiz-form-group-header-border-color:var(--ibiz-color-border);--ibiz-form-group-caption-text-color:var(--ibiz-color-text-2);--ibiz-form-group-caption-font-size:var(--ibiz-font-size-header-6);--ibiz-form-group-caption-font-weight:var(--ibiz-font-weight-regular);--ibiz-form-group-content-bg-color:var(--ibiz-color-bg-1);--ibiz-form-group-content-padding:var(--ibiz-spacing-tight);--ibiz-form-group-content-margin:0}.ibiz-form-group{overflow:hidden;background-color:var(--ibiz-form-group-bg-color)}.ibiz-form-group__caption{overflow:hidden;text-overflow:ellipsis;white-space:nowrap;font-size:var(--ibiz-form-group-caption-font-size);font-weight:var(--ibiz-form-group-caption-font-weight);color:var(--ibiz-form-group-caption-text-color)}.ibiz-form-group__toolbar{text-align:right}.ibiz-form-group--style2{background-color:var(--ibiz-color-bg-0);padding:var(--ibiz-form-group-padding)}.ibiz-form-group--style2>.ibiz-form-group-header{border-radius:var(--ibiz-border-radius-large) var(--ibiz-border-radius-large) 0 0}.ibiz-form-group--style2 .ibiz-form-group__content{padding:var(--ibiz-border-radius-large) 0;border-radius:var(--ibiz-border-radius-large);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group--style2>.ibiz-form-group-header+.ibiz-form-group__content{padding-top:0;border-radius:0 0 var(--ibiz-border-radius-large) var(--ibiz-border-radius-large)}.ibiz-form-group .ibiz-form-item-container{border-radius:0}.ibiz-form-group-collapse>.ibiz-form-group__content{display:block}.ibiz-form-group-collapse.is-collapse>.ibiz-form-group__content{display:none}.ibiz-form-group-header{display:flex;align-items:center;padding:var(--ibiz-form-group-header-padding);background-color:var(--ibiz-form-group-header-bg-color)}.ibiz-form-group-header__left,.ibiz-form-group-header__right{display:inline-block;width:50%}.ibiz-form-group-header__right{display:flex;align-items:center;justify-content:flex-end;height:100%}.ibiz-form-group-header__right .van-button{height:100%;color:var(--ibiz-color-link);background:0 0;border:none}.ibiz-form-group--show-header content,.ibiz-form-group--show-header>.ibiz-form-group{margin-bottom:var(--ibiz-form-group-content-margin);background-color:var(--ibiz-form-group-content-bg-color)}.ibiz-form-group-footer{padding:var(--ibiz-form-group-footer-padding)}.ibiz-form-group-footer__show-more-button{display:inline-block;color:var(--ibiz-form-group-show-more-color)}
@@ -20,6 +20,9 @@ class PickupViewPanelController extends runtime.ControlController {
20
20
  */
21
21
  __publicField(this, "embedView");
22
22
  }
23
+ setSelectedData(_items) {
24
+ throw new Error("Method not implemented.");
25
+ }
23
26
  /**
24
27
  * 生命周期-创建完成
25
28
  *
@@ -2,6 +2,7 @@
2
2
 
3
3
  var vue = require('vue');
4
4
  var vue3Util = require('@ibiz-template/vue3-util');
5
+ var lodashEs = require('lodash-es');
5
6
  require('./ibiz-mpicker.css');
6
7
  var ibizDataMpicker = require('../../common/data-mpicker/ibiz-data-mpicker.cjs');
7
8
  var rightIcon = require('../../common/right-icon/right-icon.cjs');
@@ -26,39 +27,119 @@ const IBizMPicker = /* @__PURE__ */ vue.defineComponent({
26
27
  value: item[c.keyName] || item.srfkey,
27
28
  srfmajortext: item[c.textName] || item.srfmajortext,
28
29
  text: item[c.textName] || item.srfmajortext,
30
+ [c.keyName]: item[c.keyName] || item.srfkey,
31
+ [c.textName]: item[c.textName] || item.srfmajortext,
29
32
  ...item
30
33
  };
31
34
  };
32
- vue.watch(() => props.value, (newVal) => {
35
+ const resetCurValue = () => {
33
36
  curValue.value = [];
34
37
  selectItems.value = [];
35
- if (newVal) {
36
- selectItems.value = JSON.parse(newVal).map(formatter);
38
+ if (props.value) {
39
+ if (c.model.valueType === "OBJECTS") {
40
+ props.value.forEach((item) => {
41
+ const _item = lodashEs.clone(item);
42
+ Object.assign(_item, {
43
+ [c.keyName]: item[c.objectIdField],
44
+ [c.textName]: item[c.objectNameField]
45
+ });
46
+ if (c.objectValueField) {
47
+ Object.assign(_item, {
48
+ ...item[c.objectValueField]
49
+ });
50
+ delete _item[c.objectValueField];
51
+ }
52
+ if (_item[c.keyName]) {
53
+ selectItems.value.push(formatter(_item));
54
+ }
55
+ });
56
+ } else if (c.objectIdField && c.model.valueSeparator) {
57
+ const values = props.value.split(c.model.valueSeparator);
58
+ values.forEach((value) => {
59
+ selectItems.value.push(formatter({
60
+ [c.keyName]: value
61
+ }));
62
+ });
63
+ } else {
64
+ try {
65
+ selectItems.value = JSON.parse(props.value).map(formatter);
66
+ } catch (error) {
67
+ ibiz.log.error(ibiz.i18n.t("editor.mpicker.simpleErr", {
68
+ value: props.value
69
+ }));
70
+ }
71
+ }
37
72
  selectItems.value.forEach((item) => {
38
- curValue.value.push(item.srfkey);
39
- const index = items.value.findIndex((i) => Object.is(i.srfkey, item.srfkey));
73
+ curValue.value.push(item[c.keyName]);
74
+ const index = items.value.findIndex(
75
+ (i) => Object.is(i[c.keyName], item[c.keyName]) || Object.is(i.srfkey, item.srfkey)
76
+ // 兼容写法,适配移动端老逻辑
77
+ );
40
78
  if (index < 0) {
41
79
  items.value.push(formatter(item));
42
80
  }
43
81
  });
44
82
  }
83
+ };
84
+ vue.watch(() => props.value, () => {
85
+ resetCurValue();
45
86
  }, {
46
87
  immediate: true,
47
88
  deep: true
48
89
  });
49
- const handleOpenViewClose = (result) => {
50
- const valArr = [];
90
+ const handleOpenViewClose = async (result) => {
91
+ const selects = [];
51
92
  if (result && Array.isArray(result)) {
52
- result.forEach((select) => {
53
- const formattedItem = formatter(select);
54
- valArr.push(formattedItem);
93
+ const calcPromises = result.map(async (select) => {
94
+ const item = formatter(select);
95
+ if (select.srfnodeid) {
96
+ Object.assign(item, select._deData);
97
+ }
98
+ const dataItems = await c.calcFillDataItems(item);
99
+ const res = {};
100
+ dataItems.forEach((dataItem) => {
101
+ Object.assign(res, {
102
+ [dataItem.id]: dataItem.value
103
+ });
104
+ });
105
+ return res;
106
+ });
107
+ const dataItemsList = await Promise.all(calcPromises);
108
+ result.forEach((select, _index) => {
109
+ Object.assign(select, {
110
+ ...formatter(select),
111
+ [c.keyName]: select[c.keyName] ? select[c.keyName] : select.srfkey,
112
+ [c.textName]: select[c.textName] ? select[c.textName] : select.srfmajortext
113
+ });
114
+ const data = dataItemsList[_index];
115
+ if (c.model.valueType === "OBJECTS") {
116
+ selects.push({
117
+ ...c.handleObjectParams(select),
118
+ ...data
119
+ });
120
+ } else if (c.objectIdField && c.model.valueSeparator) {
121
+ selects.push(select[c.keyName]);
122
+ } else {
123
+ selects.push({
124
+ [c.keyName]: select[c.keyName],
125
+ [c.textName]: select[c.textName],
126
+ ...data
127
+ });
128
+ }
55
129
  const index = items.value.findIndex((item) => Object.is(item[c.keyName], select[c.keyName]));
56
130
  if (index < 0) {
57
- items.value.push(formattedItem);
131
+ items.value.push(select);
58
132
  }
59
133
  });
60
134
  }
61
- const value = valArr.length > 0 ? JSON.stringify(valArr) : "";
135
+ let value = null;
136
+ if (selects.length > 0) {
137
+ if (c.model.valueType === "OBJECTS") {
138
+ value = selects;
139
+ } else {
140
+ value = c.objectIdField && c.model.valueSeparator ? selects.join(c.model.valueSeparator) : JSON.stringify(selects);
141
+ }
142
+ }
62
143
  emit("change", value);
63
144
  };
64
145
  const openPickUpView = async (event) => {
@@ -76,21 +157,58 @@ const IBizMPicker = /* @__PURE__ */ vue.defineComponent({
76
157
  handleOpenViewClose(res);
77
158
  }
78
159
  };
79
- const onSelect = (selects) => {
80
- const valArr = [];
81
- if (selects.length > 0) {
82
- selects.forEach((select) => {
83
- const findItem = items.value.find((item) => Object.is(item.srfkey, select));
84
- if (findItem) {
85
- valArr.push(formatter(findItem));
160
+ const onSelect = async (selects) => {
161
+ const val = [];
162
+ let value = null;
163
+ const selections = selects.map((select) => {
164
+ let index = items.value.findIndex((item2) => Object.is(item2[c.keyName], select));
165
+ let item = {};
166
+ if (index >= 0) {
167
+ item = items.value[index];
168
+ } else {
169
+ index = selectItems.value.findIndex((selectItem) => Object.is(selectItem[c.keyName], select));
170
+ if (index >= 0) {
171
+ item = selectItems.value[index];
86
172
  }
173
+ }
174
+ return item;
175
+ });
176
+ const calcPromises = selections.map(async (select) => {
177
+ const dataItems = await c.calcFillDataItems(select);
178
+ const res = {};
179
+ dataItems.forEach((dataItem) => {
180
+ Object.assign(res, {
181
+ [dataItem.id]: dataItem.value
182
+ });
87
183
  });
88
- const value = valArr.length > 0 ? JSON.stringify(valArr) : "";
89
- selectItems.value = valArr;
90
- emit("change", value);
91
- } else {
92
- emit("change", "");
184
+ return res;
185
+ });
186
+ const dataItemsList = await Promise.all(calcPromises);
187
+ selections.forEach((item, index) => {
188
+ const data = dataItemsList[index];
189
+ if (c.model.valueType === "OBJECTS") {
190
+ val.push({
191
+ ...c.handleObjectParams(item),
192
+ ...data
193
+ });
194
+ } else if (c.objectIdField && c.model.valueSeparator) {
195
+ val.push(item[c.keyName]);
196
+ } else {
197
+ val.push({
198
+ [c.keyName]: item[c.keyName],
199
+ [c.textName]: item[c.textName],
200
+ ...data
201
+ });
202
+ }
203
+ });
204
+ if (val.length > 0) {
205
+ if (c.model.valueType === "OBJECTS") {
206
+ value = val;
207
+ } else {
208
+ value = c.objectIdField && c.model.valueSeparator ? val.join(c.model.valueSeparator) : JSON.stringify(val);
209
+ }
93
210
  }
211
+ emit("change", value);
94
212
  };
95
213
  const onSearch = async (query = "") => {
96
214
  if (c.model.appDataEntityId) {
@@ -113,7 +231,7 @@ const IBizMPicker = /* @__PURE__ */ vue.defineComponent({
113
231
  selectItems.value.forEach((select) => {
114
232
  if (c.model.valueType === "OBJECTS") {
115
233
  val.push(c.handleObjectParams(select));
116
- } else if (c.objectIdField) {
234
+ } else if (c.objectIdField && c.model.valueSeparator) {
117
235
  val.push(select[c.keyName]);
118
236
  } else {
119
237
  val.push({
@@ -126,7 +244,7 @@ const IBizMPicker = /* @__PURE__ */ vue.defineComponent({
126
244
  if (c.model.valueType === "OBJECTS") {
127
245
  value = val;
128
246
  } else {
129
- value = c.objectIdField ? val.join(c.model.valueSeparator) : JSON.stringify(val);
247
+ value = c.objectIdField && c.model.valueSeparator ? val.join(c.model.valueSeparator) : JSON.stringify(val);
130
248
  }
131
249
  }
132
250
  emit("change", value);