@ibiz-template/vue3-util 0.7.41-alpha.2 → 0.7.41-alpha.21

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 (128) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +1 -1
  3. package/es/common/badge/badge.css +1 -1
  4. package/es/common/control-base/control-base.css +1 -1
  5. package/es/common/control-base/control-base.d.ts +1 -0
  6. package/es/common/control-base/control-base.d.ts.map +1 -1
  7. package/es/common/control-base/control-base.mjs +38 -4
  8. package/es/common/custom-render/custom-render.d.ts.map +1 -1
  9. package/es/common/custom-render/custom-render.mjs +2 -2
  10. package/es/common/index.d.ts +1 -0
  11. package/es/common/index.d.ts.map +1 -1
  12. package/es/common/index.mjs +1 -0
  13. package/es/common/signature-pad/signature-pad.css +1 -0
  14. package/es/common/signature-pad/signature-pad.d.ts +19 -0
  15. package/es/common/signature-pad/signature-pad.d.ts.map +1 -0
  16. package/es/common/signature-pad/signature-pad.mjs +165 -0
  17. package/es/common/signature-pad/util/bezier.d.ts +58 -0
  18. package/es/common/signature-pad/util/bezier.d.ts.map +1 -0
  19. package/es/common/signature-pad/util/bezier.mjs +109 -0
  20. package/es/common/signature-pad/util/point.d.ts +55 -0
  21. package/es/common/signature-pad/util/point.d.ts.map +1 -0
  22. package/es/common/signature-pad/util/point.mjs +51 -0
  23. package/es/common/signature-pad/util/signature_pad.d.ts +593 -0
  24. package/es/common/signature-pad/util/signature_pad.d.ts.map +1 -0
  25. package/es/common/signature-pad/util/signature_pad.mjs +1018 -0
  26. package/es/common/view-shell/view-shell.d.ts +8 -1
  27. package/es/common/view-shell/view-shell.d.ts.map +1 -1
  28. package/es/common/view-shell/view-shell.mjs +13 -2
  29. package/es/control/panel/panel/panel.d.ts.map +1 -1
  30. package/es/control/panel/panel/panel.mjs +12 -1
  31. package/es/control/panel/view-layout-panel/view-layout-panel.d.ts +1 -1
  32. package/es/control/panel/view-layout-panel/view-layout-panel.d.ts.map +1 -1
  33. package/es/control/panel/view-layout-panel/view-layout-panel.mjs +12 -1
  34. package/es/index.mjs +3 -1
  35. package/es/locale/en/index.d.ts +1 -0
  36. package/es/locale/en/index.d.ts.map +1 -1
  37. package/es/locale/en/index.mjs +2 -1
  38. package/es/locale/zh-CN/index.d.ts +1 -0
  39. package/es/locale/zh-CN/index.d.ts.map +1 -1
  40. package/es/locale/zh-CN/index.mjs +2 -1
  41. package/es/panel-component/multi-data-container/multi-data-container.controller.d.ts.map +1 -1
  42. package/es/panel-component/multi-data-container/multi-data-container.controller.mjs +10 -3
  43. package/es/panel-component/multi-data-container/multi-data-container.d.ts +1 -1
  44. package/es/panel-component/multi-data-container/multi-data-container.d.ts.map +1 -1
  45. package/es/panel-component/multi-data-container-raw/multi-data-container-raw.d.ts +1 -1
  46. package/es/panel-component/multi-data-container-raw/multi-data-container-raw.d.ts.map +1 -1
  47. package/es/panel-component/nav-pos/nav-pos.controller.d.ts +1 -1
  48. package/es/panel-component/nav-pos/nav-pos.d.ts +1 -1
  49. package/es/panel-component/panel-container/panel-container.d.ts.map +1 -1
  50. package/es/panel-component/panel-container/panel-container.mjs +30 -2
  51. package/es/panel-component/panel-field/panel-field.controller.mjs +1 -1
  52. package/es/panel-component/panel-tab-page/panel-tab-page.d.ts +1 -1
  53. package/es/panel-component/single-data-container/single-data-container.d.ts +1 -1
  54. package/es/panel-component/single-data-container/single-data-container.d.ts.map +1 -1
  55. package/es/panel-component/teleport-placeholder/teleport-placeholder.d.ts +1 -0
  56. package/es/panel-component/teleport-placeholder/teleport-placeholder.d.ts.map +1 -1
  57. package/es/panel-component/teleport-placeholder/teleport-placeholder.state.d.ts +1 -1
  58. package/es/panel-component/teleport-placeholder/teleport-placeholder.state.mjs +1 -1
  59. package/es/plugin/plugin-factory/plugin-factory.d.ts +13 -12
  60. package/es/plugin/plugin-factory/plugin-factory.d.ts.map +1 -1
  61. package/es/plugin/plugin-factory/plugin-factory.mjs +24 -18
  62. package/es/use/index.d.ts +1 -0
  63. package/es/use/index.d.ts.map +1 -1
  64. package/es/use/index.mjs +3 -1
  65. package/es/use/popover/popover.d.ts +7 -0
  66. package/es/use/popover/popover.d.ts.map +1 -1
  67. package/es/use/popover/popover.mjs +9 -2
  68. package/es/use/storage/index.d.ts +4 -6
  69. package/es/use/storage/index.d.ts.map +1 -1
  70. package/es/use/storage/index.mjs +16 -11
  71. package/es/use/vue-use/computed-async.d.ts +51 -0
  72. package/es/use/vue-use/computed-async.d.ts.map +1 -0
  73. package/es/use/vue-use/computed-async.mjs +66 -0
  74. package/es/use/vue-use/index.d.ts +2 -0
  75. package/es/use/vue-use/index.d.ts.map +1 -0
  76. package/es/use/vue-use/index.mjs +3 -0
  77. package/es/util/install.d.ts.map +1 -1
  78. package/es/util/overlay-container/overlay-container.d.ts +1 -1
  79. package/es/util/overlay-container/overlay-container.d.ts.map +1 -1
  80. package/es/util/overlay-container/overlay-container.mjs +7 -2
  81. package/es/util/overlay-view-util/overlay-view-util.d.ts +2 -2
  82. package/es/util/overlay-view-util/overlay-view-util.d.ts.map +1 -1
  83. package/es/util/overlay-view-util/overlay-view-util.mjs +2 -1
  84. package/es/util/render/render.d.ts.map +1 -1
  85. package/es/util/render/render.mjs +4 -1
  86. package/es/util/route/route.d.ts.map +1 -1
  87. package/es/util/route/route.mjs +18 -3
  88. package/es/view/common/index.d.ts.map +1 -1
  89. package/es/view/common/index.mjs +2 -0
  90. package/es/view/common/view.d.ts.map +1 -1
  91. package/es/view/common/view.mjs +14 -1
  92. package/es/view/md-custom-view/md-custom-view.provider.d.ts +13 -0
  93. package/es/view/md-custom-view/md-custom-view.provider.d.ts.map +1 -0
  94. package/es/view/md-custom-view/md-custom-view.provider.mjs +13 -0
  95. package/lib/common/badge/badge.css +1 -1
  96. package/lib/common/control-base/control-base.cjs +37 -3
  97. package/lib/common/control-base/control-base.css +1 -1
  98. package/lib/common/custom-render/custom-render.cjs +1 -1
  99. package/lib/common/index.cjs +2 -0
  100. package/lib/common/signature-pad/signature-pad.cjs +167 -0
  101. package/lib/common/signature-pad/signature-pad.css +1 -0
  102. package/lib/common/signature-pad/util/bezier.cjs +111 -0
  103. package/lib/common/signature-pad/util/point.cjs +53 -0
  104. package/lib/common/signature-pad/util/signature_pad.cjs +1022 -0
  105. package/lib/common/view-shell/view-shell.cjs +13 -2
  106. package/lib/control/panel/panel/panel.cjs +12 -1
  107. package/lib/control/panel/view-layout-panel/view-layout-panel.cjs +12 -1
  108. package/lib/index.cjs +5 -0
  109. package/lib/locale/en/index.cjs +2 -1
  110. package/lib/locale/zh-CN/index.cjs +2 -1
  111. package/lib/panel-component/multi-data-container/multi-data-container.controller.cjs +10 -3
  112. package/lib/panel-component/panel-container/panel-container.cjs +29 -1
  113. package/lib/panel-component/panel-field/panel-field.controller.cjs +1 -1
  114. package/lib/panel-component/teleport-placeholder/teleport-placeholder.state.cjs +1 -1
  115. package/lib/plugin/plugin-factory/plugin-factory.cjs +24 -18
  116. package/lib/use/index.cjs +4 -0
  117. package/lib/use/popover/popover.cjs +8 -0
  118. package/lib/use/storage/index.cjs +16 -11
  119. package/lib/use/vue-use/computed-async.cjs +68 -0
  120. package/lib/use/vue-use/index.cjs +7 -0
  121. package/lib/util/overlay-container/overlay-container.cjs +7 -2
  122. package/lib/util/overlay-view-util/overlay-view-util.cjs +2 -1
  123. package/lib/util/render/render.cjs +4 -1
  124. package/lib/util/route/route.cjs +18 -3
  125. package/lib/view/common/index.cjs +2 -0
  126. package/lib/view/common/view.cjs +13 -0
  127. package/lib/view/md-custom-view/md-custom-view.provider.cjs +15 -0
  128. package/package.json +7 -7
@@ -34,12 +34,10 @@ class PluginFactory {
34
34
  */
35
35
  this.pluginCache = /* @__PURE__ */ new Map();
36
36
  /**
37
- * 所有的插件
38
- *
39
- * @author chitanda
40
- * @date 2023-02-02 16:02:55
37
+ * @description 所有的插件
41
38
  * @protected
42
- * @type {Plugin[]}
39
+ * @type {{ code: Plugin; extraParams: IParams }[]}
40
+ * @memberof PluginFactory
43
41
  */
44
42
  this.pluginCodes = [];
45
43
  /**
@@ -116,7 +114,7 @@ class PluginFactory {
116
114
  */
117
115
  register(app) {
118
116
  this.pluginCodes.forEach((plugin) => {
119
- app.use(plugin);
117
+ app.use(plugin.code, plugin.extraParams);
120
118
  });
121
119
  }
122
120
  /**
@@ -136,16 +134,15 @@ class PluginFactory {
136
134
  }
137
135
  }
138
136
  /**
139
- * 插件刚加载完成回来,设置到目前所有的 vue 实例当中
140
- *
141
- * @author chitanda
142
- * @date 2023-02-02 17:02:38
137
+ * @description 插件刚加载完成回来,设置到目前所有的 vue 实例当中
143
138
  * @protected
144
139
  * @param {Plugin} code
140
+ * @param {IParams} [extraParams={}]
141
+ * @memberof PluginFactory
145
142
  */
146
- setPluginCode(code) {
147
- this.pluginCodes.push(code);
148
- AppHooks.useComponent.callSync(null, code);
143
+ setPluginCode(code, extraParams = {}) {
144
+ this.pluginCodes.push({ code, extraParams });
145
+ AppHooks.useComponent.callSync(null, code, extraParams);
149
146
  }
150
147
  /**
151
148
  * @description 加载插件
@@ -160,6 +157,7 @@ class PluginFactory {
160
157
  if (pluginRef) {
161
158
  const rtObjectName = pluginRef.rtobjectName;
162
159
  const rtObjectRepo = pluginRef.rtobjectRepo;
160
+ const pluginParams = pluginRef.pluginParams || {};
163
161
  if (this.isIgnore(rtObjectRepo)) {
164
162
  return true;
165
163
  }
@@ -179,7 +177,8 @@ class PluginFactory {
179
177
  const p = this.loadPluginRef(
180
178
  pluginRef.rtobjectName,
181
179
  pluginRef.rtobjectRepo,
182
- appId
180
+ appId,
181
+ { ...pluginParams }
183
182
  );
184
183
  this.loadQueue.set(rtObjectRepo, p);
185
184
  const result = await p;
@@ -201,10 +200,11 @@ class PluginFactory {
201
200
  * @param {string} rtObjectName
202
201
  * @param {string} rtObjectRepo
203
202
  * @param {string} [appId=ibiz.env.appId]
203
+ * @param {IParams} [params={}]
204
204
  * @returns {*} {Promise<boolean>}
205
205
  * @memberof PluginFactory
206
206
  */
207
- async loadPluginRef(rtObjectName, rtObjectRepo, appId = ibiz.env.appId) {
207
+ async loadPluginRef(rtObjectName, rtObjectRepo, appId = ibiz.env.appId, extraParams = {}) {
208
208
  if (this.isIgnore(rtObjectRepo)) {
209
209
  return true;
210
210
  }
@@ -227,7 +227,7 @@ class PluginFactory {
227
227
  }
228
228
  configData = res.data;
229
229
  }
230
- Object.assign(configData, { appId });
230
+ Object.assign(configData, { appId, extraParams });
231
231
  const remotePlugin = new RemotePluginItem(
232
232
  rtObjectName,
233
233
  rtObjectRepo,
@@ -256,7 +256,13 @@ class PluginFactory {
256
256
  */
257
257
  async loadScript(remotePlugin) {
258
258
  const pluginPath = remotePlugin.repo;
259
- const { name, appId, system, styles = [] } = remotePlugin.config;
259
+ const {
260
+ name,
261
+ appId,
262
+ system,
263
+ styles = [],
264
+ extraParams = {}
265
+ } = remotePlugin.config;
260
266
  let scriptUrl = "";
261
267
  scriptUrl = pathBrowserify.join(pluginPath, system);
262
268
  if (scriptUrl) {
@@ -281,7 +287,7 @@ class PluginFactory {
281
287
  data = await System.import(name);
282
288
  if (data) {
283
289
  if (data.default) {
284
- this.setPluginCode(data.default);
290
+ this.setPluginCode(data.default, extraParams);
285
291
  } else {
286
292
  throw new RuntimeError(
287
293
  ibiz.i18n.t("vue3Util.plugin.failedRemotePluginLoad")
package/es/use/index.d.ts CHANGED
@@ -11,4 +11,5 @@ export * from './codeList-listen/codelist-listen';
11
11
  export * from './storage';
12
12
  export * from './autofocus-blur/autofocus-blur';
13
13
  export * from './popover/popover';
14
+ export * from './vue-use';
14
15
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC;AAClD,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/use/index.ts"],"names":[],"mappings":"AAAA,cAAc,+BAA+B,CAAC;AAC9C,cAAc,WAAW,CAAC;AAC1B,cAAc,eAAe,CAAC;AAC9B,cAAc,yBAAyB,CAAC;AACxC,cAAc,uBAAuB,CAAC;AACtC,cAAc,eAAe,CAAC;AAC9B,cAAc,QAAQ,CAAC;AACvB,cAAc,QAAQ,CAAC;AACvB,cAAc,WAAW,CAAC;AAC1B,cAAc,mCAAmC,CAAC;AAClD,cAAc,WAAW,CAAC;AAC1B,cAAc,iCAAiC,CAAC;AAChD,cAAc,mBAAmB,CAAC;AAClC,cAAc,WAAW,CAAC"}
package/es/use/index.mjs CHANGED
@@ -10,9 +10,11 @@ export { EmptyVNode, getOrigin, isEmptyVNode, useController, useForce, useForceT
10
10
  export { useCodeListListen } from './codeList-listen/codelist-listen.mjs';
11
11
  export { useLocalCacheKey } from './storage/index.mjs';
12
12
  export { useAutoFocusBlur } from './autofocus-blur/autofocus-blur.mjs';
13
- export { shareCommonAncestor, usePopoverVisible, usePopoverzIndex } from './popover/popover.mjs';
13
+ export { shareCommonAncestor, useControlPopoverzIndex, usePopoverVisible, usePopoverzIndex } from './popover/popover.mjs';
14
+ import './vue-use/index.mjs';
14
15
  export { useControlController } from './control/use-control-controller/use-control-controller.mjs';
15
16
  export { useViewController } from './view/use-view-controller/use-view-controller.mjs';
16
17
  export { useViewOperation } from './view/use-view-operation/use-view-operation.mjs';
18
+ export { computedAsync } from './vue-use/computed-async.mjs';
17
19
 
18
20
  "use strict";
@@ -1,4 +1,11 @@
1
1
  import { Ref } from 'vue';
2
+ import { ControlController } from '@ibiz-template/runtime';
3
+ /**
4
+ * @description 管理部件popover层级
5
+ * @export
6
+ * @param {ControlController} controller
7
+ */
8
+ export declare function useControlPopoverzIndex(controller: ControlController): void;
2
9
  /**
3
10
  * 手动管理popover层级
4
11
  *
@@ -1 +1 @@
1
- {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/use/popover/popover.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,GAAG,EAAc,MAAM,KAAK,CAAC;AAInD;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD,CAoBA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,IAAI,GAAG,IAAI,EACrB,QAAQ,EAAE,IAAI,GAAG,IAAI,GACpB,OAAO,CA+BT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,EACxB,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC/B;IACD,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,CA0CA"}
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/use/popover/popover.ts"],"names":[],"mappings":"AACA,OAAO,EAAe,GAAG,EAAc,MAAM,KAAK,CAAC;AAEnD,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAG3D;;;;GAIG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,iBAAiB,GAAG,IAAI,CAO3E;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,IAAI;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,CAAC,WAAW,EAAE,MAAM,KAAK,IAAI,CAAC;CACjD,CAoBA;AAED;;;;;;GAMG;AACH,wBAAgB,mBAAmB,CACjC,QAAQ,EAAE,IAAI,GAAG,IAAI,EACrB,QAAQ,EAAE,IAAI,GAAG,IAAI,GACpB,OAAO,CA+BT;AAED;;;;;;;;;;;;GAYG;AACH,wBAAgB,iBAAiB,CAC/B,UAAU,EAAE,GAAG,CAAC,OAAO,CAAC,EACxB,UAAU,EAAE,CAAC,GAAG,EAAE,KAAK,KAAK,IAAI,GAC/B;IACD,cAAc,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAC7B,iBAAiB,EAAE,CAAC,OAAO,EAAE,OAAO,KAAK,IAAI,CAAC;CAC/C,CA0CA"}
@@ -1,10 +1,17 @@
1
1
  import { createUUID } from 'qx-util';
2
- import { ref, watch, onUnmounted } from 'vue';
2
+ import { onUnmounted, ref, watch } from 'vue';
3
3
  import { listenJSEvent } from '@ibiz-template/core';
4
4
  import '../../util/index.mjs';
5
5
  import { useUIStore } from '../../util/store/ui-store/ui-store.mjs';
6
6
 
7
7
  "use strict";
8
+ function useControlPopoverzIndex(controller) {
9
+ const { zIndex } = useUIStore();
10
+ controller.state.zIndex = zIndex.increment();
11
+ onUnmounted(() => {
12
+ zIndex.decrement();
13
+ });
14
+ }
8
15
  function usePopoverzIndex() {
9
16
  const popoverid = "popover_".concat(createUUID());
10
17
  const setPopoverZIndex = (zIndexClass) => {
@@ -89,4 +96,4 @@ function usePopoverVisible(triggerRef, getElement) {
89
96
  };
90
97
  }
91
98
 
92
- export { shareCommonAncestor, usePopoverVisible, usePopoverzIndex };
99
+ export { shareCommonAncestor, useControlPopoverzIndex, usePopoverVisible, usePopoverzIndex };
@@ -1,14 +1,12 @@
1
1
  /**
2
- * 获取本地缓存key函数
3
- *
4
- * @author zhanghengfeng
5
- * @date 2024-05-29 21:05:53
2
+ * @description 获取本地缓存key函数
6
3
  * @export
7
4
  * @param {IContext} context
8
5
  * @param {string} type
9
6
  * @param {number} [routeDepth]
10
7
  * @param {string} [splitter='@']
11
- * @return {*} {(() => string | undefined)}
8
+ * @param {string} [noRouteTag='']
9
+ * @returns {*} {(() => string | undefined)}
12
10
  */
13
- export declare function useLocalCacheKey(context: IContext, type: string, routeDepth?: number, splitter?: string): () => string | undefined;
11
+ export declare function useLocalCacheKey(context: IContext, type: string, routeDepth?: number, splitter?: string, noRouteTag?: string): () => string | undefined;
14
12
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/use/storage/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;;;GAWG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAY,GACrB,MAAM,MAAM,GAAG,SAAS,CAoB1B"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/use/storage/index.ts"],"names":[],"mappings":"AAGA;;;;;;;;;GASG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,EAAE,QAAQ,EACjB,IAAI,EAAE,MAAM,EACZ,UAAU,CAAC,EAAE,MAAM,EACnB,QAAQ,GAAE,MAAY,EACtB,UAAU,GAAE,MAAW,GACtB,MAAM,MAAM,GAAG,SAAS,CA0B1B"}
@@ -3,24 +3,29 @@ import '../../util/index.mjs';
3
3
  import { route2routePath, routePath2string } from '../../util/route/route.mjs';
4
4
 
5
5
  "use strict";
6
- function useLocalCacheKey(context, type, routeDepth, splitter = "@") {
6
+ function useLocalCacheKey(context, type, routeDepth, splitter = "@", noRouteTag = "") {
7
7
  const router = useRouter();
8
8
  return () => {
9
9
  if (!router) {
10
10
  return;
11
11
  }
12
12
  const userId = context.srfuserid;
13
- const routePath = route2routePath(router.currentRoute.value);
14
13
  routeDepth = context.srfdefaulttoroutedepth || routeDepth;
15
- if (userId && routeDepth && routePath.pathNodes[routeDepth - 2]) {
16
- routePath.pathNodes = routePath.pathNodes.slice(0, routeDepth - 1);
17
- routePath.pathNodes.forEach((pathNode) => {
18
- if (pathNode.context) {
19
- delete pathNode.context.srfnavctrlid;
20
- }
21
- });
22
- const url = routePath2string(routePath);
23
- return "".concat(type).concat(splitter).concat(userId).concat(splitter).concat(url);
14
+ if (routeDepth) {
15
+ const routePath = route2routePath(router.currentRoute.value);
16
+ if (userId && routePath.pathNodes[routeDepth - 2]) {
17
+ routePath.pathNodes = routePath.pathNodes.slice(0, routeDepth - 1);
18
+ routePath.pathNodes.forEach((pathNode) => {
19
+ if (pathNode.context) {
20
+ delete pathNode.context.srfnavctrlid;
21
+ }
22
+ });
23
+ const url = routePath2string(routePath);
24
+ return "".concat(type).concat(splitter).concat(userId).concat(splitter).concat(url);
25
+ }
26
+ }
27
+ if (noRouteTag) {
28
+ return "".concat(type).concat(splitter).concat(userId).concat(splitter).concat(noRouteTag);
24
29
  }
25
30
  };
26
31
  }
@@ -0,0 +1,51 @@
1
+ import type { ComputedRef, Ref } from 'vue';
2
+ /**
3
+ * Handle overlapping async evaluations.
4
+ *
5
+ * @param cancelCallback The provided callback is invoked when a re-evaluation of the computed value is triggered before the previous one finished
6
+ */
7
+ export type AsyncComputedOnCancel = (cancelCallback: () => void) => void;
8
+ export interface AsyncComputedOptions<Lazy = boolean> {
9
+ /**
10
+ * Should value be evaluated lazily
11
+ *
12
+ * @default false
13
+ */
14
+ lazy?: Lazy;
15
+ /**
16
+ * Ref passed to receive the updated of async evaluation
17
+ */
18
+ evaluating?: Ref<boolean>;
19
+ /**
20
+ * Use shallowRef
21
+ *
22
+ * @default true
23
+ */
24
+ shallow?: boolean;
25
+ /**
26
+ * The flush option allows for greater control over the timing of a history point, default to `pre`
27
+ *
28
+ * Possible values: `pre`, `post`, `sync`
29
+ *
30
+ * It works in the same way as the flush option in watch and watch effect in vue reactivity
31
+ * @default 'pre'
32
+ */
33
+ flush?: 'pre' | 'post' | 'sync';
34
+ /**
35
+ * Callback when error is caught.
36
+ */
37
+ onError?: (e: unknown) => void;
38
+ }
39
+ /**
40
+ * Create an asynchronous computed dependency.
41
+ *
42
+ * @see https://vueuse.org/computedAsync
43
+ * @param evaluationCallback The promise-returning callback which generates the computed value
44
+ * @param initialState The initial state, used until the first evaluation finishes
45
+ * @param optionsOrRef Additional options or a ref passed to receive the updates of the async evaluation
46
+ */
47
+ export declare function computedAsync<T>(evaluationCallback: (onCancel: AsyncComputedOnCancel) => T | Promise<T>, initialState: T, optionsOrRef: AsyncComputedOptions<true>): ComputedRef<T>;
48
+ export declare function computedAsync<T>(evaluationCallback: (onCancel: AsyncComputedOnCancel) => T | Promise<T>, initialState: undefined, optionsOrRef: AsyncComputedOptions<true>): ComputedRef<T | undefined>;
49
+ export declare function computedAsync<T>(evaluationCallback: (onCancel: AsyncComputedOnCancel) => T | Promise<T>, initialState: T, optionsOrRef?: Ref<boolean> | AsyncComputedOptions): Ref<T>;
50
+ export declare function computedAsync<T>(evaluationCallback: (onCancel: AsyncComputedOnCancel) => T | Promise<T>, initialState?: undefined, optionsOrRef?: Ref<boolean> | AsyncComputedOptions): Ref<T | undefined>;
51
+ //# sourceMappingURL=computed-async.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"computed-async.d.ts","sourceRoot":"","sources":["../../../src/use/vue-use/computed-async.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,WAAW,EAAE,GAAG,EAAE,MAAM,KAAK,CAAC;AAG5C;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG,CAAC,cAAc,EAAE,MAAM,IAAI,KAAK,IAAI,CAAC;AAEzE,MAAM,WAAW,oBAAoB,CAAC,IAAI,GAAG,OAAO;IAClD;;;;OAIG;IACH,IAAI,CAAC,EAAE,IAAI,CAAC;IAEZ;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,CAAC;IAE1B;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;;;;;;OAOG;IACH,KAAK,CAAC,EAAE,KAAK,GAAG,MAAM,GAAG,MAAM,CAAC;IAEhC;;OAEG;IACH,OAAO,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,KAAK,IAAI,CAAC;CAChC;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAAC,CAAC,EAC7B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACvE,YAAY,EAAE,CAAC,EACf,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,GACvC,WAAW,CAAC,CAAC,CAAC,CAAC;AAClB,wBAAgB,aAAa,CAAC,CAAC,EAC7B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACvE,YAAY,EAAE,SAAS,EACvB,YAAY,EAAE,oBAAoB,CAAC,IAAI,CAAC,GACvC,WAAW,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC;AAC9B,wBAAgB,aAAa,CAAC,CAAC,EAC7B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACvE,YAAY,EAAE,CAAC,EACf,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,oBAAoB,GACjD,GAAG,CAAC,CAAC,CAAC,CAAC;AACV,wBAAgB,aAAa,CAAC,CAAC,EAC7B,kBAAkB,EAAE,CAAC,QAAQ,EAAE,qBAAqB,KAAK,CAAC,GAAG,OAAO,CAAC,CAAC,CAAC,EACvE,YAAY,CAAC,EAAE,SAAS,EACxB,YAAY,CAAC,EAAE,GAAG,CAAC,OAAO,CAAC,GAAG,oBAAoB,GACjD,GAAG,CAAC,CAAC,GAAG,SAAS,CAAC,CAAC"}
@@ -0,0 +1,66 @@
1
+ import { NOOP } from '@ibiz-template/core';
2
+ import { isRef, shallowRef, ref, watchEffect, computed } from 'vue';
3
+
4
+ "use strict";
5
+ function computedAsync(evaluationCallback, initialState, optionsOrRef) {
6
+ let options;
7
+ if (isRef(optionsOrRef)) {
8
+ options = {
9
+ evaluating: optionsOrRef
10
+ };
11
+ } else {
12
+ options = optionsOrRef || {};
13
+ }
14
+ const {
15
+ lazy = false,
16
+ flush = "pre",
17
+ evaluating = void 0,
18
+ shallow = true,
19
+ onError = NOOP
20
+ } = options;
21
+ const started = shallowRef(!lazy);
22
+ const current = shallow ? shallowRef(initialState) : ref(initialState);
23
+ let counter = 0;
24
+ watchEffect(
25
+ async (onInvalidate) => {
26
+ if (!started.value)
27
+ return;
28
+ counter++;
29
+ const counterAtBeginning = counter;
30
+ let hasFinished = false;
31
+ if (evaluating) {
32
+ Promise.resolve().then(() => {
33
+ evaluating.value = true;
34
+ });
35
+ }
36
+ try {
37
+ const result = await evaluationCallback((cancelCallback) => {
38
+ onInvalidate(() => {
39
+ if (evaluating)
40
+ evaluating.value = false;
41
+ if (!hasFinished)
42
+ cancelCallback();
43
+ });
44
+ });
45
+ if (counterAtBeginning === counter)
46
+ current.value = result;
47
+ } catch (e) {
48
+ onError(e);
49
+ } finally {
50
+ if (evaluating && counterAtBeginning === counter)
51
+ evaluating.value = false;
52
+ hasFinished = true;
53
+ }
54
+ },
55
+ { flush }
56
+ );
57
+ if (lazy) {
58
+ return computed(() => {
59
+ started.value = true;
60
+ return current.value;
61
+ });
62
+ }
63
+ return current;
64
+ }
65
+
66
+ export { computedAsync };
@@ -0,0 +1,2 @@
1
+ export * from './computed-async';
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/use/vue-use/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAC"}
@@ -0,0 +1,3 @@
1
+ export { computedAsync } from './computed-async.mjs';
2
+
3
+ "use strict";
@@ -1 +1 @@
1
- {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/util/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAE5C,eAAO,MAAM,WAAW,6BAER,GAAG,KAAK,IAAI,uBAM3B,CAAC"}
1
+ {"version":3,"file":"install.d.ts","sourceRoot":"","sources":["../../src/util/install.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,GAAG,EAAE,MAAM,EAAE,MAAM,KAAK,CAAC;AAEvC,MAAM,MAAM,eAAe,CAAC,CAAC,IAAI,CAAC,GAAG,MAAM,CAAC;AAE5C,eAAO,MAAM,WAAW,YAChB,CAAC,WACE,CAAC,EAAE,EAAE,GAAG,KAAK,IAAI,KACzB,gBAAgB,CAAC,CAKnB,CAAC"}
@@ -9,7 +9,7 @@ import { App, Component, VNode } from 'vue';
9
9
  * @export
10
10
  * @class OverlayContainer
11
11
  */
12
- export declare class OverlayContainer<O> implements IOverlayContainer {
12
+ export declare class OverlayContainer<O extends IData = IData> implements IOverlayContainer {
13
13
  protected component: unknown;
14
14
  protected render: (...args: any[]) => VNode;
15
15
  protected opts?: O | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-container.d.ts","sourceRoot":"","sources":["../../../src/util/overlay-container/overlay-container.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAG/C;;;;;;;GAOG;AACH,qBAAa,gBAAgB,CAAC,CAAC,CAAE,YAAW,iBAAiB;IA0CzD,SAAS,CAAC,SAAS,EAAE,OAAO;IAC5B,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;IAC3C,SAAS,CAAC,IAAI,CAAC;IA3CjB,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC,CAAiB;IAE9E;;;;;;;;OAQG;gBAES,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,EACjC,IAAI,CAAC,eAAG;IAKpB,MAAM,CAAC,YAAY,CACjB,cAAc,EAAE,SAAS,EACzB,UAAU,CAAC,EAAE,KAAK,GACjB,GAAG,CAAC,OAAO,CAAC;IAIf;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,IAAI,IAAI;IAkCtB;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;OAOG;IACG,aAAa,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;CAS/C"}
1
+ {"version":3,"file":"overlay-container.d.ts","sourceRoot":"","sources":["../../../src/util/overlay-container/overlay-container.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,OAAO,EAAE,MAAM,SAAS,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAC3D,OAAO,EAAE,GAAG,EAAE,SAAS,EAAK,KAAK,EAAE,MAAM,KAAK,CAAC;AAI/C;;;;;;;GAOG;AACH,qBAAa,gBAAgB,CAAC,CAAC,SAAS,KAAK,GAAG,KAAK,CACnD,YAAW,iBAAiB;IA2C1B,SAAS,CAAC,SAAS,EAAE,OAAO;IAC5B,SAAS,CAAC,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK;IAC3C,SAAS,CAAC,IAAI,CAAC;IA3CjB,SAAS,CAAC,EAAE,CAAC,EAAE,GAAG,CAAC;IAEnB;;;;;;;OAOG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC;IAErB;;;;;;;OAOG;IACH,SAAS,CAAC,MAAM,CAAC,EAAE,OAAO,CAAC;IAE3B;;;;;;OAMG;IACH,SAAS,CAAC,GAAG,EAAE,OAAO,CAAC;QAAE,OAAO,EAAE,CAAC,IAAI,CAAC,EAAE,OAAO,KAAK,IAAI,CAAA;KAAE,CAAC,CAAiB;IAE9E;;;;;;;;OAQG;gBAES,SAAS,EAAE,OAAO,EAClB,MAAM,EAAE,CAAC,GAAG,IAAI,EAAE,GAAG,EAAE,KAAK,KAAK,EACjC,IAAI,CAAC,eAAG;IAKpB,MAAM,CAAC,YAAY,CACjB,cAAc,EAAE,SAAS,EACzB,UAAU,CAAC,EAAE,KAAK,GACjB,GAAG,CAAC,OAAO,CAAC;IAIf;;;;;;;OAOG;IACH,SAAS,CAAC,IAAI,IAAI,IAAI;IAsCtB;;;;;;;OAOG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAI9B;;;;;;;OAOG;IACG,OAAO,CAAC,IAAI,CAAC,EAAE,OAAO,GAAG,OAAO,CAAC,IAAI,CAAC;IAI5C;;;;;;;OAOG;IACG,aAAa,CAAC,CAAC,GAAG,OAAO,KAAK,OAAO,CAAC,CAAC,CAAC;CAS/C"}
@@ -1,6 +1,7 @@
1
1
  import { QXEvent } from 'qx-util';
2
2
  import { h } from 'vue';
3
3
  import { RuntimeError } from '@ibiz-template/core';
4
+ import { isElement } from 'lodash-es';
4
5
 
5
6
  "use strict";
6
7
  class OverlayContainer {
@@ -42,13 +43,17 @@ class OverlayContainer {
42
43
  const self = this;
43
44
  const { render, opts } = this;
44
45
  const container = document.createElement("div");
45
- document.body.appendChild(container);
46
+ let appendTo = document.body;
47
+ if (isElement(opts == null ? void 0 : opts.appendTo)) {
48
+ appendTo = opts == null ? void 0 : opts.appendTo;
49
+ }
50
+ appendTo.appendChild(container);
46
51
  const vm = OverlayContainer.createVueApp({
47
52
  mounted() {
48
53
  self.modal = this.$refs.root;
49
54
  },
50
55
  unmounted() {
51
- document.body.removeChild(container);
56
+ appendTo.removeChild(container);
52
57
  self.evt.emit("dismiss", self.result);
53
58
  },
54
59
  render() {
@@ -1,6 +1,6 @@
1
- import { IDrawerOptions, IFloatWindowOptions, IModal, IModalData, IModalOptions, IPopoverOptions } from '@ibiz-template/runtime';
1
+ import { IDrawerOptions, IFloatWindowOptions, IModal, IModalData, IModalOptions, IPopoverOptions, IViewShellHooks } from '@ibiz-template/runtime';
2
2
  import { VNode } from 'vue';
3
- export declare function createOverlayView(props?: IParams): (modal: IModal) => VNode;
3
+ export declare function createOverlayView(props?: IParams): (modal: IModal, viewShellHooks?: IViewShellHooks) => VNode;
4
4
  export declare function openViewModal(props?: IParams, opts?: IModalOptions): Promise<IModalData>;
5
5
  export declare function openViewFloatWindow(props?: IParams, opts?: IFloatWindowOptions): Promise<IModalData>;
6
6
  export declare function openViewDrawer(props?: IParams, opts?: IDrawerOptions): Promise<IModalData>;
@@ -1 +1 @@
1
- {"version":3,"file":"overlay-view-util.d.ts","sourceRoot":"","sources":["../../../src/util/overlay-view-util/overlay-view-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,aAAa,EACb,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAuB,KAAK,EAAE,MAAM,KAAK,CAAC;AAEjD,wBAAgB,iBAAiB,CAAC,KAAK,CAAC,EAAE,OAAO,GAAG,CAAC,KAAK,EAAE,MAAM,KAAK,KAAK,CAQ3E;AAED,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,cAAc,CAClC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,UAAU,CAAC,CASrB;AASD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GACf,cAAc,CAAC,WAAW,CAAC,CAE7B"}
1
+ {"version":3,"file":"overlay-view-util.d.ts","sourceRoot":"","sources":["../../../src/util/overlay-view-util/overlay-view-util.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EACd,mBAAmB,EACnB,MAAM,EACN,UAAU,EACV,aAAa,EACb,eAAe,EACf,eAAe,EAChB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAuB,KAAK,EAAE,MAAM,KAAK,CAAC;AAEjD,wBAAgB,iBAAiB,CAC/B,KAAK,CAAC,EAAE,OAAO,GACd,CAAC,KAAK,EAAE,MAAM,EAAE,cAAc,CAAC,EAAE,eAAe,KAAK,KAAK,CAS5D;AAED,wBAAsB,aAAa,CACjC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,aAAa,GACnB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,mBAAmB,CACvC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,mBAAmB,GACzB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,cAAc,CAClC,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,cAAc,GACpB,OAAO,CAAC,UAAU,CAAC,CASrB;AAED,wBAAsB,eAAe,CACnC,KAAK,EAAE,UAAU,EACjB,KAAK,CAAC,EAAE,OAAO,EACf,IAAI,CAAC,EAAE,eAAe,GACrB,OAAO,CAAC,UAAU,CAAC,CASrB;AASD,wBAAgB,kBAAkB,CAChC,QAAQ,EAAE,MAAM,GACf,cAAc,CAAC,WAAW,CAAC,CAE7B"}
@@ -2,10 +2,11 @@ import { resolveComponent, h } from 'vue';
2
2
 
3
3
  "use strict";
4
4
  function createOverlayView(props) {
5
- return (modal) => {
5
+ return (modal, viewShellHooks) => {
6
6
  const viewShell = resolveComponent("IBizViewShell");
7
7
  return h(viewShell, {
8
8
  ...props,
9
+ viewShellHooks,
9
10
  modal
10
11
  });
11
12
  };
@@ -1 +1 @@
1
- {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/util/render/render.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,wBAAwB,CAAC;AAE3D;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBnD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,MAAO,iBAAiB,KAAG,OAO5D,CAAC"}
1
+ {"version":3,"file":"render.d.ts","sourceRoot":"","sources":["../../../src/util/render/render.ts"],"names":[],"mappings":"AACA,OAAO,EACL,iBAAiB,EAElB,MAAM,wBAAwB,CAAC;AAEhC;;;;;;;;;;GAUG;AACH,wBAAgB,YAAY,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAiBnD;AAED;;;;;;;GAOG;AACH,eAAO,MAAM,qBAAqB,MAAO,iBAAiB,KAAG,OAS5D,CAAC"}
@@ -1,4 +1,5 @@
1
1
  import { isNil } from 'ramda';
2
+ import { PredefinedControlRender } from '@ibiz-template/runtime';
2
3
 
3
4
  "use strict";
4
5
  function renderString(value) {
@@ -24,7 +25,9 @@ const hasEmptyPanelRenderer = (c) => {
24
25
  if (!controlRenders || controlRenders.length === 0) {
25
26
  return false;
26
27
  }
27
- return !!controlRenders.find((item) => item.id === "emptypanel");
28
+ return !!controlRenders.find(
29
+ (item) => item.id === PredefinedControlRender.EMPTYPANEL
30
+ );
28
31
  };
29
32
 
30
33
  export { hasEmptyPanelRenderer, renderString };
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/util/route/route.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,IAAI,KAAK,EAAY,MAAM,YAAY,CAAC;AAE9E,OAAO,EAGL,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAkB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7E;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,YAAY,GAAE,OAAe,GAC5B,UAAU,CAsEZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAuD9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CA0B7D;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAYpC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,QAAQ,EACjB,eAAe,CAAC,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAkE3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,cAAc,CAAC,CAoEzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAc,GACvB,MAAM,CA4BR;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EAClE,KAAK,EAAE,MAAM,GACZ,IAAI,CAaN"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../../../src/util/route/route.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,6BAA6B,IAAI,KAAK,EAAY,MAAM,YAAY,CAAC;AAE9E,OAAO,EAGL,WAAW,EAGZ,MAAM,wBAAwB,CAAC;AAEhC,OAAO,EAAE,UAAU,EAAkB,cAAc,EAAE,MAAM,iBAAiB,CAAC;AAE7E;;;;;;;;;GASG;AACH,wBAAgB,eAAe,CAC7B,KAAK,EAAE,KAAK,EACZ,YAAY,GAAE,OAAe,GAC5B,UAAU,CAsEZ;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAAC,SAAS,EAAE,UAAU,GAAG,MAAM,CAuD9D;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,CAiC7D;AA+BD;;;;;GAKG;AACH,eAAO,MAAM,gBAAgB,EAAE,MAAM,EAYpC,CAAC;AAEF;;;;;;;;;GASG;AACH,wBAAsB,gBAAgB,CACpC,SAAS,EAAE,UAAU,EACrB,OAAO,EAAE,QAAQ,EACjB,eAAe,CAAC,EAAE,MAAM,EACxB,KAAK,CAAC,EAAE,MAAM,GACb,OAAO,CAAC,IAAI,CAAC,CA2Bf;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CA4E3B;AAED;;;;;;;;;;;GAWG;AACH,wBAAsB,wBAAwB,CAC5C,OAAO,EAAE,WAAW,EACpB,KAAK,EAAE,KAAK,EACZ,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,OAAO,GACf,OAAO,CAAC;IAAE,IAAI,EAAE,MAAM,CAAA;CAAE,CAAC,CAkC3B;AAED;;;;;;;;;;GAUG;AACH,wBAAsB,kBAAkB,CACtC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,YAAY,GAAE,OAAe,GAC5B,OAAO,CAAC,cAAc,CAAC,CAoEzB;AAED;;;;;;;;GAQG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,KAAK,EACZ,KAAK,EAAE,MAAM,EACb,QAAQ,GAAE,OAAc,GACvB,MAAM,CA4BR;AAED;;;;;;;GAOG;AACH,wBAAgB,aAAa,CAC3B,QAAQ,EAAE,CAAC,IAAI,EAAE;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,KAAK,IAAI,EAClE,KAAK,EAAE,MAAM,GACZ,IAAI,CAcN"}
@@ -36,7 +36,7 @@ function route2routePath(route, isRouteModal = false) {
36
36
  params = void 0;
37
37
  } else {
38
38
  if (params.srfnavctx) {
39
- context = JSON.parse(decodeURIComponent(params.srfnavctx));
39
+ context = JSON.parse(params.srfnavctx);
40
40
  delete params.srfnavctx;
41
41
  }
42
42
  if (params.srfnav) {
@@ -117,8 +117,13 @@ function getOwnRouteContext(context) {
117
117
  }
118
118
  delete ownContext.attributekeys;
119
119
  }
120
+ let srfKeepNull = false;
121
+ if (Object.prototype.hasOwnProperty.call(ownContext, "srfkeepnull")) {
122
+ srfKeepNull = ownContext.srfkeepnull === true || ownContext.srfkeepnull === "true";
123
+ delete ownContext.srfkeepnull;
124
+ }
120
125
  Object.keys(ownContext).forEach((key) => {
121
- if (excludeKeys.includes(key) || isNil(ownContext[key])) {
126
+ if (excludeKeys.includes(key) || !srfKeepNull && isNil(ownContext[key])) {
122
127
  delete ownContext[key];
123
128
  }
124
129
  });
@@ -174,6 +179,7 @@ async function calcResRoutePath(routePath, context, appDataEntityId, appId) {
174
179
  }
175
180
  }
176
181
  async function generateRoutePath(appView, route, context, params) {
182
+ var _a;
177
183
  const routePath = route2routePath(route);
178
184
  let depth = context.srfdefaulttoroutedepth || 2;
179
185
  if (context.toRouteDepth) {
@@ -186,6 +192,10 @@ async function generateRoutePath(appView, route, context, params) {
186
192
  };
187
193
  }
188
194
  }
195
+ let srfmenuitem = params == null ? void 0 : params.srfmenuitem;
196
+ if (!srfmenuitem && routePath.pathNodes.length > 1) {
197
+ srfmenuitem = (_a = routePath.pathNodes[1].params) == null ? void 0 : _a.srfmenuitem;
198
+ }
189
199
  routePath.pathNodes.splice(depth - 1, routePath.pathNodes.length - depth + 1);
190
200
  if (context.currentSrfNav) {
191
201
  const currentNode = routePath.pathNodes[routePath.pathNodes.length - 1];
@@ -219,6 +229,10 @@ async function generateRoutePath(appView, route, context, params) {
219
229
  delete routePath.pathNodes[0].context[deName];
220
230
  }
221
231
  }
232
+ if (srfmenuitem && routePath.pathNodes.length > 1) {
233
+ const tempParams = routePath.pathNodes[1].params || {};
234
+ routePath.pathNodes[1].params = { ...tempParams, srfmenuitem };
235
+ }
222
236
  return { path: routePath2string(routePath) };
223
237
  }
224
238
  async function generateRoutePathByModal(appView, route, context, params) {
@@ -319,7 +333,8 @@ function onRouteChange(callback, depth) {
319
333
  throw new RuntimeError(ibiz.i18n.t("vue3Util.util.routeCorrectly"));
320
334
  }
321
335
  watch(
322
- () => route == null ? void 0 : route.path,
336
+ // fix: odoo脚本触发路径query变更未触发路由变更事件
337
+ () => route == null ? void 0 : route.fullPath,
323
338
  () => {
324
339
  const currentKey = getNestedRoutePath(route, depth);
325
340
  callback({ currentKey, fullPath: route.fullPath });
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/view/common/index.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAQnB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/view/common/index.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAUnB,CAAC"}
@@ -3,6 +3,7 @@ import '../../util/index.mjs';
3
3
  import { ViewProvider } from './view.provider.mjs';
4
4
  import { View } from './view.mjs';
5
5
  import { AppDataUploadViewProvider } from '../app-data-upload-view/app-data-upload-view.provider.mjs';
6
+ import { MDCustomViewProvider } from '../md-custom-view/md-custom-view.provider.mjs';
6
7
  import { withInstall } from '../../util/install.mjs';
7
8
 
8
9
  "use strict";
@@ -13,6 +14,7 @@ const IBizView = withInstall(View, function(v) {
13
14
  "APPDATAUPLOADVIEW",
14
15
  () => new AppDataUploadViewProvider()
15
16
  );
17
+ registerViewProvider("DEMDCUSTOMVIEW", () => new MDCustomViewProvider());
16
18
  });
17
19
 
18
20
  export { IBizView };
@@ -1 +1 @@
1
- {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,QAAQ,EAER,KAAK,EAIN,MAAM,KAAK,CAAC;AACb,OAAO,aAAa,CAAC;AAGrB,eAAO,MAAM,IAAI;IAGb;;OAEG;;;;IAEH;;;OAGG;;;;;IAEH;;OAEG;;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;;;;;;;uCAkDW,0BAA0B,KACrC,IAAI;yBAmBqB,QAAQ,cAAa,KAAK,KAAQ,OAAO;0BAkBxC,QAAQ,cAAa,KAAK,KAAQ,KAAK;+BA/DlC,QAAQ,KAAG,MAAM,GAAG,SAAS;;;IAhD/D;;OAEG;;;;IAEH;;;OAGG;;;;;IAEH;;OAEG;;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;;;MAgNL,CAAC"}
1
+ {"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAIL,MAAM,EACN,0BAA0B,EAC1B,aAAa,EACb,cAAc,EACf,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AACtD,OAAO,EAGL,QAAQ,EAER,KAAK,EAON,MAAM,KAAK,CAAC;AACb,OAAO,aAAa,CAAC;AAGrB,eAAO,MAAM,IAAI;IAGb;;OAEG;;;;IAEH;;;OAGG;;;;;IAEH;;OAEG;;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;;;;;;;uCAkDW,0BAA0B,KACrC,IAAI;yBAmBqB,QAAQ,cAAa,KAAK,KAAQ,OAAO;0BAkBxC,QAAQ,cAAa,KAAK,KAAQ,KAAK;+BA/DlC,QAAQ,KAAG,MAAM,GAAG,SAAS;;;IAhD/D;;OAEG;;;;IAEH;;;OAGG;;;;;IAEH;;OAEG;;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;IAEH;;OAEG;;;;;;MAuOL,CAAC"}
@@ -1,4 +1,4 @@
1
- import { isVNode, defineComponent, computed, renderSlot, resolveComponent, h, createVNode, Teleport, withDirectives, resolveDirective } from 'vue';
1
+ import { isVNode, defineComponent, computed, renderSlot, resolveComponent, h, onMounted, nextTick, onBeforeUnmount, createVNode, Teleport, withDirectives, resolveDirective } from 'vue';
2
2
  import { ViewController, getControlsByView, getCtrlTeleportParams, getErrorViewProvider } from '@ibiz-template/runtime';
3
3
  import './view.css';
4
4
  import '../../use/index.mjs';
@@ -127,6 +127,19 @@ const View = /* @__PURE__ */ defineComponent({
127
127
  }
128
128
  return h(comp, ctrlProps);
129
129
  };
130
+ let watermarkDestroy;
131
+ onMounted(() => {
132
+ nextTick(async () => {
133
+ const container = document.getElementById(c.id);
134
+ const appView = await ibiz.hub.config.view.get(c.model.id);
135
+ if (!container || !(appView == null ? void 0 : appView.waterMarkOption))
136
+ return;
137
+ watermarkDestroy = ibiz.util.watermark.mount(appView.waterMarkOption, container, c.context, c.params, c.state.srfactiveviewdata || {});
138
+ });
139
+ });
140
+ onBeforeUnmount(() => {
141
+ watermarkDestroy == null ? void 0 : watermarkDestroy();
142
+ });
130
143
  return {
131
144
  c,
132
145
  ns,
@@ -0,0 +1,13 @@
1
+ import { CTX, IMDCustomViewState, IViewController, IViewEvent, IViewProvider } from '@ibiz-template/runtime';
2
+ import { IAppDECustomView } from '@ibiz/model-core';
3
+ /**
4
+ * @description 实体多数据自定义视图适配器
5
+ * @export
6
+ * @class MDCustomViewProvider
7
+ * @implements {IViewProvider}
8
+ */
9
+ export declare class MDCustomViewProvider implements IViewProvider {
10
+ component: string;
11
+ createController(model: IAppDECustomView, context: IContext, params?: IParams | undefined, ctx?: CTX<IViewController<IAppDECustomView, IMDCustomViewState, IViewEvent>> | undefined): IViewController<IAppDECustomView, IMDCustomViewState, IViewEvent>;
12
+ }
13
+ //# sourceMappingURL=md-custom-view.provider.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"md-custom-view.provider.d.ts","sourceRoot":"","sources":["../../../src/view/md-custom-view/md-custom-view.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,GAAG,EACH,kBAAkB,EAClB,eAAe,EACf,UAAU,EACV,aAAa,EAEd,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAEpD;;;;;GAKG;AACH,qBAAa,oBAAqB,YAAW,aAAa;IACxD,SAAS,EAAE,MAAM,CAAc;IAE/B,gBAAgB,CACd,KAAK,EAAE,gBAAgB,EACvB,OAAO,EAAE,QAAQ,EACjB,MAAM,CAAC,EAAE,OAAO,GAAG,SAAS,EAC5B,GAAG,CAAC,EACA,GAAG,CAAC,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,CAAC,CAAC,GACtE,SAAS,GACZ,eAAe,CAAC,gBAAgB,EAAE,kBAAkB,EAAE,UAAU,CAAC;CAGrE"}