@ibiz-template/vue3-components 0.7.41-alpha.18 → 0.7.41-alpha.19

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 (78) hide show
  1. package/dist/index-BoV5htv9.js +11 -0
  2. package/dist/{index-swminiXb.js → index-Bt6TkADL.js} +1 -1
  3. package/dist/{index-AOFxMmyX.js → index-K6B-Odyq.js} +1 -1
  4. package/dist/index.min.css +1 -1
  5. package/dist/index.system.min.js +1 -1
  6. package/dist/{wang-editor-4OlaBV3P.js → wang-editor-exnzt_I1.js} +1 -1
  7. package/dist/{xlsx-util-Rg-AbK_G.js → xlsx-util-fuTLwrKA.js} +1 -1
  8. package/es/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  9. package/es/control/drtab/flow-drtab.css +1 -1
  10. package/es/control/drtab/flow-drtab.mjs +13 -5
  11. package/es/editor/markdown/ibiz-markdown-editor/ibiz-markdown-editor.d.ts +3 -0
  12. package/es/index.mjs +1 -0
  13. package/es/locale/en/index.d.ts +4 -0
  14. package/es/locale/en/index.mjs +4 -0
  15. package/es/locale/zh-CN/index.d.ts +4 -0
  16. package/es/locale/zh-CN/index.mjs +4 -0
  17. package/es/panel-component/app-switch/app-switch.controller.mjs +4 -1
  18. package/es/panel-component/app-switch/app-switch.d.ts +1 -1
  19. package/es/panel-component/auth-userinfo/auth-userinfo.controller.d.ts +31 -0
  20. package/es/panel-component/auth-userinfo/auth-userinfo.controller.mjs +51 -0
  21. package/es/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  22. package/es/panel-component/auth-userinfo/auth-userinfo.d.ts +7 -4
  23. package/es/panel-component/auth-userinfo/auth-userinfo.mjs +20 -5
  24. package/es/panel-component/auth-userinfo/auth-userinfo.provider.d.ts +2 -1
  25. package/es/panel-component/auth-userinfo/auth-userinfo.provider.mjs +2 -2
  26. package/es/panel-component/auth-userinfo/index.d.ts +4 -3
  27. package/es/panel-component/global-search/global-search.controller.d.ts +10 -3
  28. package/es/panel-component/global-search/global-search.controller.mjs +39 -18
  29. package/es/panel-component/global-search/global-search.d.ts +3 -1
  30. package/es/panel-component/global-search/global-search.mjs +8 -1
  31. package/es/panel-component/global-search/index.d.ts +1 -0
  32. package/es/panel-component/index-blank-placeholder/index-blank-placeholder.controller.mjs +0 -2
  33. package/es/panel-component/panel-app-title/panel-app-title.controller.mjs +5 -2
  34. package/es/panel-component/panel-app-title/panel-app-title.d.ts +1 -0
  35. package/es/panel-component/panel-app-title/panel-app-title.mjs +6 -0
  36. package/es/panel-component/panel-index-view-search/index.d.ts +4 -3
  37. package/es/panel-component/panel-index-view-search/panel-index-view-search.controller.d.ts +31 -0
  38. package/es/panel-component/panel-index-view-search/panel-index-view-search.controller.mjs +51 -0
  39. package/es/panel-component/panel-index-view-search/panel-index-view-search.d.ts +8 -5
  40. package/es/panel-component/panel-index-view-search/panel-index-view-search.mjs +17 -3
  41. package/es/panel-component/panel-index-view-search/panel-index-view-search.provider.d.ts +2 -1
  42. package/es/panel-component/panel-index-view-search/panel-index-view-search.provider.mjs +2 -2
  43. package/es/panel-component/panel-tab-panel/panel-tab-panel.mjs +2 -2
  44. package/es/panel-component/user-action/user-action.d.ts +1 -1
  45. package/es/panel-component/view-msg-pos/view-msg-pos.d.ts +2 -1
  46. package/es/util/app-modal/app-modal-component.css +1 -1
  47. package/es/util/app-modal/app-modal-component.d.ts +6 -1
  48. package/es/util/app-modal/app-modal-component.mjs +45 -4
  49. package/es/util/icon/icon.d.ts +3 -0
  50. package/es/util/icon/icon.mjs +25 -0
  51. package/es/util/index.d.ts +1 -0
  52. package/es/util/index.mjs +1 -0
  53. package/lib/control/dashboard/portlet/menu-portlet/app-menu-portlet/app-menu-portlet.css +1 -1
  54. package/lib/control/drtab/flow-drtab.cjs +13 -5
  55. package/lib/control/drtab/flow-drtab.css +1 -1
  56. package/lib/index.cjs +3 -0
  57. package/lib/locale/en/index.cjs +4 -0
  58. package/lib/locale/zh-CN/index.cjs +4 -0
  59. package/lib/panel-component/app-switch/app-switch.controller.cjs +4 -1
  60. package/lib/panel-component/auth-userinfo/auth-userinfo.cjs +20 -5
  61. package/lib/panel-component/auth-userinfo/auth-userinfo.controller.cjs +53 -0
  62. package/lib/panel-component/auth-userinfo/auth-userinfo.css +1 -1
  63. package/lib/panel-component/auth-userinfo/auth-userinfo.provider.cjs +2 -2
  64. package/lib/panel-component/global-search/global-search.cjs +8 -1
  65. package/lib/panel-component/global-search/global-search.controller.cjs +39 -18
  66. package/lib/panel-component/index-blank-placeholder/index-blank-placeholder.controller.cjs +0 -2
  67. package/lib/panel-component/panel-app-title/panel-app-title.cjs +6 -0
  68. package/lib/panel-component/panel-app-title/panel-app-title.controller.cjs +5 -2
  69. package/lib/panel-component/panel-index-view-search/panel-index-view-search.cjs +16 -2
  70. package/lib/panel-component/panel-index-view-search/panel-index-view-search.controller.cjs +53 -0
  71. package/lib/panel-component/panel-index-view-search/panel-index-view-search.provider.cjs +2 -2
  72. package/lib/panel-component/panel-tab-panel/panel-tab-panel.cjs +2 -2
  73. package/lib/util/app-modal/app-modal-component.cjs +43 -2
  74. package/lib/util/app-modal/app-modal-component.css +1 -1
  75. package/lib/util/icon/icon.cjs +28 -0
  76. package/lib/util/index.cjs +3 -0
  77. package/package.json +4 -4
  78. package/dist/index-dXwgWAM8.js +0 -11
@@ -58,6 +58,12 @@ const PanelAppTitle = /* @__PURE__ */ defineComponent({
58
58
  return false;
59
59
  });
60
60
  const isCollapse = computed(() => {
61
+ const {
62
+ strictly
63
+ } = c.rawItemParams;
64
+ if (strictly && strictly === "true") {
65
+ return false;
66
+ }
61
67
  return c.panel.view.state.isCollapse;
62
68
  });
63
69
  const showIcon = computed(() => {
@@ -4,16 +4,17 @@ export declare const IBizPanelIndexViewSearch: import("@ibiz-template/vue3-util"
4
4
  required: true;
5
5
  };
6
6
  controller: {
7
- type: typeof import("@ibiz-template/runtime").PanelItemController;
7
+ type: typeof import("./panel-index-view-search.controller").PanelIndexViewSearchController;
8
8
  required: true;
9
9
  };
10
10
  }, {
11
11
  ns: import("@ibiz-template/core").Namespace;
12
12
  classArr: import("vue").ComputedRef<(string | false)[]>;
13
13
  isCollapse: import("vue").ComputedRef<any>;
14
+ curPlaceholder: import("vue").ComputedRef<any>;
14
15
  onInput: (value: string) => void;
15
16
  onSearch: () => Promise<void>;
16
- c: import("@ibiz-template/runtime").PanelItemController<import("@ibiz/model-core").IPanelItem>;
17
+ c: import("./panel-index-view-search.controller").PanelIndexViewSearchController;
17
18
  query: import("vue").Ref<string>;
18
19
  menuAlign: import("vue").ComputedRef<string>;
19
20
  onEnter: (event: KeyboardEvent) => void;
@@ -23,7 +24,7 @@ export declare const IBizPanelIndexViewSearch: import("@ibiz-template/vue3-util"
23
24
  required: true;
24
25
  };
25
26
  controller: {
26
- type: typeof import("@ibiz-template/runtime").PanelItemController;
27
+ type: typeof import("./panel-index-view-search.controller").PanelIndexViewSearchController;
27
28
  required: true;
28
29
  };
29
30
  }>>, {}, {}>>;
@@ -0,0 +1,31 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+ import { IPanelRawItem } from '@ibiz/model-core';
3
+ /**
4
+ * 面板首页搜索控制器
5
+ *
6
+ * @export
7
+ * @class PanelIndexViewSearchController
8
+ * @extends {PanelItemController<IPanelRawItem>}
9
+ */
10
+ export declare class PanelIndexViewSearchController extends PanelItemController<IPanelRawItem> {
11
+ /**
12
+ * @description 自定义补充参数
13
+ * @exposedoc
14
+ * @type {IData}
15
+ * @memberof PanelIndexViewSearchController
16
+ */
17
+ rawItemParams: IData;
18
+ /**
19
+ * 初始化
20
+ *
21
+ * @return {*} {Promise<void>}
22
+ * @memberof PanelIndexViewSearchController
23
+ */
24
+ onInit(): Promise<void>;
25
+ /**
26
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
27
+ * @protected
28
+ * @memberof PanelIndexViewSearchController
29
+ */
30
+ protected handleRawItemParams(): void;
31
+ }
@@ -0,0 +1,51 @@
1
+ import { PanelItemController } from '@ibiz-template/runtime';
2
+
3
+ "use strict";
4
+ var __defProp = Object.defineProperty;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __publicField = (obj, key, value) => {
7
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
8
+ return value;
9
+ };
10
+ class PanelIndexViewSearchController extends PanelItemController {
11
+ constructor() {
12
+ super(...arguments);
13
+ /**
14
+ * @description 自定义补充参数
15
+ * @exposedoc
16
+ * @type {IData}
17
+ * @memberof PanelIndexViewSearchController
18
+ */
19
+ __publicField(this, "rawItemParams", {});
20
+ }
21
+ /**
22
+ * 初始化
23
+ *
24
+ * @return {*} {Promise<void>}
25
+ * @memberof PanelIndexViewSearchController
26
+ */
27
+ async onInit() {
28
+ await super.onInit();
29
+ this.handleRawItemParams();
30
+ }
31
+ /**
32
+ * @description 处理自定义补充参数 [{key:'name',value:'data'}] => {name:'data'}
33
+ * @protected
34
+ * @memberof PanelIndexViewSearchController
35
+ */
36
+ handleRawItemParams() {
37
+ var _a;
38
+ const rawItemParams = (_a = this.model.rawItem) == null ? void 0 : _a.rawItemParams;
39
+ if (Array.isArray(rawItemParams)) {
40
+ rawItemParams.forEach((item) => {
41
+ const key = item.key;
42
+ const value = item.value;
43
+ if (key && value) {
44
+ this.rawItemParams[key.toLowerCase()] = value;
45
+ }
46
+ });
47
+ }
48
+ }
49
+ }
50
+
51
+ export { PanelIndexViewSearchController };
@@ -1,11 +1,13 @@
1
1
  import { IPanelRawItem } from '@ibiz/model-core';
2
2
  import { PropType } from 'vue';
3
- import { PanelItemController } from '@ibiz-template/runtime';
3
+ import { PanelIndexViewSearchController } from './panel-index-view-search.controller';
4
4
  import './panel-index-view-search.scss';
5
5
  /**
6
6
  * 首页搜索
7
7
  * @primary
8
- * @description 输入搜索词点击搜索后,会执行绑定的菜单项应用功能,打开全局搜索界面。
8
+ * @description 用于快速查找应用数据,需在菜单上配置标识与本面板项一样的标识,默认标识为index_view_search,输入搜索词点击搜索后,会执行绑定的菜单项应用功能,打开对应的全局搜索界面。
9
+ * @panelitemparams {name:strictly,parameterType:boolean,defaultvalue:false,description:是否取消与首页菜单的关联,即菜单收缩时不会跟随改变,当首页搜索未配置在首页左侧时应启用}
10
+ * @panelitemparams {name:placeholder,parameterType:string,description:搜索框提示信息}
9
11
  */
10
12
  export declare const PanelIndexViewSearch: import("vue").DefineComponent<{
11
13
  /**
@@ -19,16 +21,17 @@ export declare const PanelIndexViewSearch: import("vue").DefineComponent<{
19
21
  * @description 首页搜索控件控制器
20
22
  */
21
23
  controller: {
22
- type: typeof PanelItemController;
24
+ type: typeof PanelIndexViewSearchController;
23
25
  required: true;
24
26
  };
25
27
  }, {
26
28
  ns: import("@ibiz-template/core").Namespace;
27
29
  classArr: import("vue").ComputedRef<(string | false)[]>;
28
30
  isCollapse: import("vue").ComputedRef<any>;
31
+ curPlaceholder: import("vue").ComputedRef<any>;
29
32
  onInput: (value: string) => void;
30
33
  onSearch: () => Promise<void>;
31
- c: PanelItemController<import("@ibiz/model-core").IPanelItem>;
34
+ c: PanelIndexViewSearchController;
32
35
  query: import("vue").Ref<string>;
33
36
  menuAlign: import("vue").ComputedRef<string>;
34
37
  onEnter: (event: KeyboardEvent) => void;
@@ -44,7 +47,7 @@ export declare const PanelIndexViewSearch: import("vue").DefineComponent<{
44
47
  * @description 首页搜索控件控制器
45
48
  */
46
49
  controller: {
47
- type: typeof PanelItemController;
50
+ type: typeof PanelIndexViewSearchController;
48
51
  required: true;
49
52
  };
50
53
  }>>, {}, {}>;
@@ -1,7 +1,8 @@
1
1
  import { ref, inject, computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useNamespace } from '@ibiz-template/vue3-util';
3
- import { PanelItemController, AppFuncCommand } from '@ibiz-template/runtime';
3
+ import { AppFuncCommand } from '@ibiz-template/runtime';
4
4
  import { debounce } from 'lodash-es';
5
+ import { PanelIndexViewSearchController } from './panel-index-view-search.controller.mjs';
5
6
  import './panel-index-view-search.css';
6
7
 
7
8
  "use strict";
@@ -19,7 +20,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
19
20
  * @description 首页搜索控件控制器
20
21
  */
21
22
  controller: {
22
- type: PanelItemController,
23
+ type: PanelIndexViewSearchController,
23
24
  required: true
24
25
  }
25
26
  },
@@ -41,8 +42,20 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
41
42
  return "LEFT";
42
43
  });
43
44
  const isCollapse = computed(() => {
45
+ const {
46
+ strictly
47
+ } = c.rawItemParams;
48
+ if (strictly && strictly === "true") {
49
+ return false;
50
+ }
44
51
  return c.panel.view.state.isCollapse;
45
52
  });
53
+ const curPlaceholder = computed(() => {
54
+ const {
55
+ placeholder
56
+ } = c.rawItemParams;
57
+ return placeholder || ibiz.i18n.t("component.indexSearch.placeholder");
58
+ });
46
59
  const classArr = computed(() => {
47
60
  const {
48
61
  id
@@ -78,6 +91,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
78
91
  ns,
79
92
  classArr,
80
93
  isCollapse,
94
+ curPlaceholder,
81
95
  onInput,
82
96
  onSearch,
83
97
  c,
@@ -95,7 +109,7 @@ const PanelIndexViewSearch = /* @__PURE__ */ defineComponent({
95
109
  }, [this.menuAlign === "LEFT" && !this.isCollapse && createVNode(resolveComponent("el-input"), {
96
110
  "model-value": this.query,
97
111
  "class": this.ns.b("search"),
98
- "placeholder": ibiz.i18n.t("component.indexSearch.placeholder"),
112
+ "placeholder": this.curPlaceholder,
99
113
  "onInput": this.onInput,
100
114
  "onKeyup": this.onEnter
101
115
  }, {
@@ -1,5 +1,6 @@
1
1
  import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
2
2
  import { IPanelItem } from '@ibiz/model-core';
3
+ import { PanelIndexViewSearchController } from './panel-index-view-search.controller';
3
4
  /**
4
5
  * 面板首页搜索适配器
5
6
  *
@@ -9,5 +10,5 @@ import { IPanelItem } from '@ibiz/model-core';
9
10
  */
10
11
  export declare class PanelIndexViewSearchProvider implements IPanelItemProvider {
11
12
  component: string;
12
- createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelItemController>;
13
+ createController(panelItem: IPanelItem, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelIndexViewSearchController>;
13
14
  }
@@ -1,4 +1,4 @@
1
- import { PanelItemController } from '@ibiz-template/runtime';
1
+ import { PanelIndexViewSearchController } from './panel-index-view-search.controller.mjs';
2
2
 
3
3
  "use strict";
4
4
  var __defProp = Object.defineProperty;
@@ -12,7 +12,7 @@ class PanelIndexViewSearchProvider {
12
12
  __publicField(this, "component", "IBizPanelIndexViewSearch");
13
13
  }
14
14
  async createController(panelItem, panel, parent) {
15
- const c = new PanelItemController(panelItem, panel, parent);
15
+ const c = new PanelIndexViewSearchController(panelItem, panel, parent);
16
16
  await c.init();
17
17
  return c;
18
18
  }
@@ -73,8 +73,8 @@ const PanelTabPanel = /* @__PURE__ */ defineComponent({
73
73
  "label": c.model.caption,
74
74
  "name": c.model.id,
75
75
  "lazy": true
76
- }, _isSlot(slot) ? slot : {
77
- default: () => [slot]
76
+ }, {
77
+ default: () => [this.state.activeTab === c.model.id && slot]
78
78
  });
79
79
  })) ? _slot : {
80
80
  default: () => [_slot]
@@ -5,7 +5,7 @@ import './user-action.scss';
5
5
  /**
6
6
  * 用户操作
7
7
  * @primary
8
- * @description 首页中用户操作行为按钮,点击后执行对应的应用功能。存在三种类型,分别为设置(Setting)、帮助(Helper)、自定义(Custom)。
8
+ * @description 首页中用户操作行为按钮,需在菜单上配置标识为设置(setting)、帮助(helper)、自定义(custom)的三种隐藏菜单项,点击按钮将会执行对应的菜单项应用功能。
9
9
  * @panelitemparams {name:noprivmode,parameterType:PARENT|SELF,defaultvalue:PARENT,description:无权限模式,为PARENT时会通过父容器进行显示隐藏}
10
10
  * @export
11
11
  * @class UserAction
@@ -5,7 +5,8 @@ import { ViewMsgPosController } from './view-msg-pos.controller';
5
5
  * 视图消息占位
6
6
  * @primary
7
7
  * @description 使用el-alert组件,读取视图状态的viewMessages数据,用于在界面布局中给视图消息提供一个显示位置。
8
- * @panelitemparams {name:scroll,parameterType:boolean,defaultvalue:false,description:是否滚动显示}
8
+ * @panelitemparams {name:scroll,parameterType:boolean,defaultvalue:false,description:是否滚动展示}
9
+ * @panelitemparams {name:position,parameterType:TOP | BOTTOM | BODY,defaultvalue:BODY,description:指定展示哪个位置的视图消息,TOP代表视图上方,BOTTOM代表视图下方,BODY代表视图内容区}
9
10
  */
10
11
  export declare const ViewMsgPos: import("vue").DefineComponent<{
11
12
  /**
@@ -1 +1 @@
1
- @charset "UTF-8";.ibiz-modal{--ibiz-modal-z-index:var(--ibiz-z-index-modal);--ibiz-modal-background-color:var(--ibiz-color-bg-1)}.ibiz-modal.el-dialog{overflow:visible}.ibiz-modal .el-dialog__header{position:relative;padding:0}.ibiz-modal .el-dialog__body{height:100%;padding:0;background-color:var(--ibiz-modal-background-color)}.ibiz-modal .el-dialog__headerbtn{top:-40px;right:-60px;border:var(--ibiz-spacing-super-tight) solid var(--ibiz-color-primary-text);border-radius:var(--ibiz-border-radius-circle);display:flex;align-items:center;justify-content:center}.ibiz-modal .el-dialog__headerbtn .el-dialog__close{font-size:var(--ibiz-font-size-header-4);color:var(--ibiz-color-primary-text)}
1
+ @charset "UTF-8";.ibiz-modal{--ibiz-modal-z-index:var(--ibiz-z-index-modal);--ibiz-modal-background-color:var(--ibiz-color-bg-1)}.ibiz-modal__record--prev{position:absolute;top:50%;left:-6px;transform:translate(-100%,-50%)}.ibiz-modal__record--next{position:absolute;top:50%;right:-6px;font-size:var(--ibiz-font-size-regular);transform:translate(100%,-50%)}.ibiz-modal__record .el-button{height:auto;padding:var(--ibiz-spacing-loose) var(--ibiz-spacing-tight);margin:0;--el-button-bg-color:var(--ibiz-color-bg-0);--el-button-text-color:var(--ibiz-color-text-2);--el-button-hover-bg-color:var(--ibiz-color-bg-1);--el-button-hover-text-color:var(--ibiz-color-text-3);--el-button-active-bg-color:var(--ibiz-color-bg-0);--el-button-active-text-color:var(--ibiz-color-text-2)}.ibiz-modal.el-dialog{overflow:visible}.ibiz-modal .el-dialog__header{position:relative;padding:0}.ibiz-modal .el-dialog__body{height:100%;padding:0;background-color:var(--ibiz-modal-background-color)}.ibiz-modal .el-dialog__headerbtn{top:-40px;right:-60px;border:var(--ibiz-spacing-super-tight) solid var(--ibiz-color-primary-text);border-radius:var(--ibiz-border-radius-circle);display:flex;align-items:center;justify-content:center}.ibiz-modal .el-dialog__headerbtn .el-dialog__close{font-size:var(--ibiz-font-size-header-4);color:var(--ibiz-color-primary-text)}
@@ -1,5 +1,5 @@
1
1
  import { PropType, VNode } from 'vue';
2
- import { IModalData, IModalOptions, IOverlayContainer, Modal } from '@ibiz-template/runtime';
2
+ import { EventBase, IModalData, IModalOptions, IOverlayContainer, Modal, ViewShellHooks } from '@ibiz-template/runtime';
3
3
  import './app-modal-component.scss';
4
4
  export declare const AppModalComponent: import("vue").DefineComponent<{
5
5
  opts: {
@@ -16,13 +16,18 @@ export declare const AppModalComponent: import("vue").DefineComponent<{
16
16
  placement?: "center" | undefined;
17
17
  modalClass?: string | undefined;
18
18
  isRouteModal?: boolean | undefined;
19
+ openIndicator?: boolean | undefined;
19
20
  }>;
20
21
  modalZIndex: number;
21
22
  customStyle: import("@ibiz-template/core").IApiData;
22
23
  modal: Modal;
24
+ viewShellHooks: ViewShellHooks;
23
25
  present: () => void;
24
26
  dismiss: (_data?: IModalData) => void;
25
27
  onBeforeClose: (done: () => void) => Promise<void>;
28
+ prevRecord: () => void;
29
+ nextRecord: () => void;
30
+ handleViewCreated: (event: EventBase) => void;
26
31
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
32
  opts: {
28
33
  type: PropType<IModalOptions>;
@@ -1,11 +1,15 @@
1
- import { ref, reactive, resolveComponent, h, defineComponent } from 'vue';
1
+ import { isVNode, ref, reactive, resolveComponent, createVNode, h, defineComponent } from 'vue';
2
2
  import { useNamespace, useUIStore, OverlayContainer } from '@ibiz-template/vue3-util';
3
3
  import { isNumber } from 'lodash-es';
4
- import { ViewMode, Modal } from '@ibiz-template/runtime';
4
+ import { ViewMode, Modal, ViewShellHooks, SysUIActionTag } from '@ibiz-template/runtime';
5
5
  import './app-modal-component.css';
6
6
  import { calcOpenModeStyle } from '@ibiz-template/core';
7
+ import { ArrowLeftBold, ArrowRightBold } from '../icon/icon.mjs';
7
8
 
8
9
  "use strict";
10
+ function _isSlot(s) {
11
+ return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
12
+ }
9
13
  const AppModalComponent = /* @__PURE__ */ defineComponent({
10
14
  props: {
11
15
  opts: {
@@ -20,6 +24,7 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
20
24
  zIndex
21
25
  } = useUIStore();
22
26
  const modalZIndex = zIndex.increment();
27
+ let modalView;
23
28
  const customStyle = reactive({});
24
29
  const {
25
30
  width,
@@ -55,6 +60,13 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
55
60
  ctx.emit("dismiss", data);
56
61
  }
57
62
  });
63
+ const viewShellHooks = new ViewShellHooks();
64
+ viewShellHooks.hooks.viewCreated.tapPromise(async (_event) => {
65
+ modalView = _event.view;
66
+ });
67
+ const handleViewCreated = (event) => {
68
+ modalView = event.view;
69
+ };
58
70
  const onBeforeClose = async (done) => {
59
71
  const isClose = await modal.dismiss();
60
72
  if (isClose) {
@@ -67,6 +79,12 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
67
79
  const present = () => {
68
80
  isShow.value = true;
69
81
  };
82
+ const prevRecord = () => {
83
+ modalView == null ? void 0 : modalView.call(SysUIActionTag.PREV_RECORD);
84
+ };
85
+ const nextRecord = () => {
86
+ modalView == null ? void 0 : modalView.call(SysUIActionTag.NEXT_RECORD);
87
+ };
70
88
  return {
71
89
  ns,
72
90
  isShow,
@@ -74,13 +92,18 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
74
92
  modalZIndex,
75
93
  customStyle,
76
94
  modal,
95
+ viewShellHooks,
77
96
  present,
78
97
  dismiss,
79
- onBeforeClose
98
+ onBeforeClose,
99
+ prevRecord,
100
+ nextRecord,
101
+ handleViewCreated
80
102
  };
81
103
  },
82
104
  render() {
83
105
  var _a, _b;
106
+ let _slot, _slot2;
84
107
  return h(resolveComponent("el-dialog"), {
85
108
  modelValue: this.isShow,
86
109
  alignCenter: true,
@@ -89,7 +112,25 @@ const AppModalComponent = /* @__PURE__ */ defineComponent({
89
112
  zIndex: this.modalZIndex,
90
113
  beforeClose: this.onBeforeClose,
91
114
  ...this.options
92
- }, (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a, this.modal));
115
+ }, [
116
+ // eslint-disable-next-line vue/no-multiple-slot-args
117
+ (_b = (_a = this.$slots).default) == null ? void 0 : _b.call(_a, this.modal, this.viewShellHooks),
118
+ this.options.openIndicator && createVNode("div", {
119
+ "class": this.ns.e("record")
120
+ }, [createVNode(resolveComponent("el-button"), {
121
+ "class": this.ns.em("record", "prev"),
122
+ "title": ibiz.i18n.t("util.appModal.prev"),
123
+ "onClick": this.prevRecord
124
+ }, _isSlot(_slot = ArrowLeftBold()) ? _slot : {
125
+ default: () => [_slot]
126
+ }), createVNode(resolveComponent("el-button"), {
127
+ "class": this.ns.em("record", "next"),
128
+ "title": ibiz.i18n.t("util.appModal.next"),
129
+ "onClick": this.nextRecord
130
+ }, _isSlot(_slot2 = ArrowRightBold()) ? _slot2 : {
131
+ default: () => [_slot2]
132
+ })])
133
+ ]);
93
134
  }
94
135
  });
95
136
  function createModal(render, opts) {
@@ -0,0 +1,3 @@
1
+ declare const ArrowLeftBold: () => JSX.Element;
2
+ declare const ArrowRightBold: () => JSX.Element;
3
+ export { ArrowLeftBold, ArrowRightBold };
@@ -0,0 +1,25 @@
1
+ import { createVNode } from 'vue';
2
+
3
+ "use strict";
4
+ const ArrowLeftBold = () => createVNode("svg", {
5
+ "data-v-9a20e128": "",
6
+ "xmlns": "http://www.w3.org/2000/svg",
7
+ "viewBox": "0 0 1024 1024",
8
+ "width": "1em",
9
+ "height": "1em"
10
+ }, [createVNode("path", {
11
+ "fill": "currentColor",
12
+ "d": "M685.248 104.704a64 64 0 0 1 0 90.496L368.448 512l316.8 316.8a64 64 0 0 1-90.496 90.496L232.704 557.248a64 64 0 0 1 0-90.496l362.048-362.048a64 64 0 0 1 90.496 0z"
13
+ }, null)]);
14
+ const ArrowRightBold = () => createVNode("svg", {
15
+ "data-v-9a20e128": "",
16
+ "xmlns": "http://www.w3.org/2000/svg",
17
+ "viewBox": "0 0 1024 1024",
18
+ "width": "1em",
19
+ "height": "1em"
20
+ }, [createVNode("path", {
21
+ "fill": "currentColor",
22
+ "d": "M338.752 104.704a64 64 0 0 0 0 90.496l316.8 316.8-316.8 316.8a64 64 0 0 0 90.496 90.496l362.048-362.048a64 64 0 0 0 0-90.496L429.248 104.704a64 64 0 0 0-90.496 0z"
23
+ }, null)]);
24
+
25
+ export { ArrowLeftBold, ArrowRightBold };
@@ -14,3 +14,4 @@ export * from './wang-editor-util/wang-editor-util';
14
14
  export { useFocusByEnter } from './keydown-util/keydown-util';
15
15
  export { calcAiToolbarItemsByAc } from './ai-util/ai-util';
16
16
  export { convertBtnType } from './button-util/button-util';
17
+ export * from './icon/icon';
package/es/util/index.mjs CHANGED
@@ -14,5 +14,6 @@ export { parseHtml } from './wang-editor-util/wang-editor-util.mjs';
14
14
  export { useFocusByEnter } from './keydown-util/keydown-util.mjs';
15
15
  export { calcAiToolbarItemsByAc } from './ai-util/ai-util.mjs';
16
16
  export { convertBtnType } from './button-util/button-util.mjs';
17
+ export { ArrowLeftBold, ArrowRightBold } from './icon/icon.mjs';
17
18
 
18
19
  "use strict";
@@ -1 +1 @@
1
- .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
1
+ .ibiz-control-appmenu-portlet{--ibiz-control-appmenu-portlet-margin:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-border-color:var(--ibiz-color-primary);--ibiz-control-appmenu-portlet-bg-color:var(--ibiz-color-bg-0);--ibiz-control-appmenu-portlet-padding:var(--ibiz-spacing-base-tight);--ibiz-control-appmenu-portlet-content-padding:var(--ibiz-spacing-tight) var(--ibiz-spacing-base);padding:var(--ibiz-control-appmenu-portlet-content-padding)}.ibiz-control-appmenu-portlet__content{display:flex;flex-wrap:wrap;width:100%}.ibiz-control-appmenu-portlet-item{position:relative;display:flex;flex-direction:column;flex-shrink:0;align-items:flex-start;justify-content:center;width:calc(25% - var(--ibiz-control-appmenu-portlet-margin) * 2);padding:var(--ibiz-control-appmenu-portlet-padding);margin:var(--ibiz-control-appmenu-portlet-margin);cursor:pointer;background-color:var(--ibiz-control-appmenu-portlet-bg-color)}.ibiz-control-appmenu-portlet-item::before{position:absolute;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-control-appmenu-portlet-border-color)}.ibiz-control-appmenu-portlet-group{width:100%}.ibiz-control-appmenu-portlet-group .el-collapse-item__content{display:flex;flex-wrap:wrap}
@@ -126,9 +126,6 @@ const FlowDrtab = /* @__PURE__ */ vue.defineComponent({
126
126
  }
127
127
  };
128
128
  const observer = new IntersectionObserver((entries) => {
129
- if (allVisibleViews.value !== completedViews.value) {
130
- return;
131
- }
132
129
  entries.forEach((entry) => {
133
130
  var _a, _b;
134
131
  if (entry.isIntersecting) {
@@ -152,6 +149,15 @@ const FlowDrtab = /* @__PURE__ */ vue.defineComponent({
152
149
  }
153
150
  }
154
151
  });
152
+ visibleViews.sort((a, b) => {
153
+ var _a, _b;
154
+ const aIndex = (_a = allNavTags.value) == null ? void 0 : _a.findIndex((tag) => tag === a);
155
+ const bIndex = (_b = allNavTags.value) == null ? void 0 : _b.findIndex((tag) => tag === b);
156
+ return aIndex - bIndex;
157
+ });
158
+ if (allVisibleViews.value !== completedViews.value || !c.enableAnchor) {
159
+ return;
160
+ }
155
161
  computeSelectItem();
156
162
  });
157
163
  const onViewMounted = (item) => {
@@ -166,7 +172,7 @@ const FlowDrtab = /* @__PURE__ */ vue.defineComponent({
166
172
  if (el) {
167
173
  observer.observe(el);
168
174
  }
169
- if (completedViews.value === allVisibleViews.value && props.activeTab) {
175
+ if (completedViews.value === allVisibleViews.value && props.activeTab && props.activeTab.tag !== props.drtabpages[0].id) {
170
176
  vue.nextTick(() => {
171
177
  scrollToTarget();
172
178
  });
@@ -178,7 +184,9 @@ const FlowDrtab = /* @__PURE__ */ vue.defineComponent({
178
184
  return page.id === newVal.tag;
179
185
  });
180
186
  navtag.value = "".concat(target == null ? void 0 : target.appViewId, "_").concat(newVal.tag);
181
- scrollToTarget();
187
+ if (newVal.tag !== props.drtabpages[0].id) {
188
+ scrollToTarget();
189
+ }
182
190
  }
183
191
  }, {
184
192
  deep: true,
@@ -1 +1 @@
1
- .ibiz-flow-drtab{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{height:100%;overflow:auto}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__tab-item+.ibiz-flow-drtab__tab-item{margin-top:var(--ibiz-spacing-base)}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}.ibiz-flow-drtab.is-enable-anchor{display:flex;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__container{flex:1}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar{display:flex;min-width:200px;padding:var(--ibiz-spacing-base) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topleft{align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomleft{align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topright{flex-direction:row-reverse;align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomright{flex-direction:row-reverse;align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleleft{align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleright{flex-direction:row-reverse;align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-items{width:100%;max-height:100%;overflow:auto}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item{width:100%;height:32px;padding:0 var(--ibiz-spacing-base);overflow:hidden;line-height:32px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item:hover{color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active{position:relative;color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active::before{position:absolute;top:0;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-color-primary);border-radius:2px}.ibiz-flow-drtab.is-enable-anchor.is-left{flex-direction:row;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}.ibiz-flow-drtab.is-enable-anchor.is-right{flex-direction:row-reverse;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__container{--navbarwidth:200;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}
1
+ .ibiz-flow-drtab{width:100%;height:100%;overflow:hidden;background-color:var(--ibiz-color-bg-0)}.ibiz-flow-drtab__container{height:100%;overflow:auto}.ibiz-flow-drtab__tab-item{background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab__tab-item--label{padding:var(--ibiz-spacing-base);font-size:var(--ibiz-font-size-header-5);border-bottom:1px solid var(--ibiz-color-fill-1)}.ibiz-flow-drtab__tab-item--tab-view{padding:var(--ibiz-spacing-tight) 0}.ibiz-flow-drtab__tab-item+.ibiz-flow-drtab__tab-item{margin-top:var(--ibiz-spacing-base)}.ibiz-flow-drtab__counter{font-size:var(--ibiz-font-size-regular);text-align:center}.ibiz-flow-drtab .ibiz-flow-drtab{background-color:inherit}.ibiz-flow-drtab.is-enable-anchor{display:flex;gap:var(--ibiz-spacing-base)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__container{flex:1}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar{display:flex;min-width:200px;padding:var(--ibiz-spacing-base) 0;font-size:var(--ibiz-font-size-regular);background-color:var(--ibiz-color-bg-1);border-radius:var(--ibiz-border-radius-medium)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topleft{align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomleft{align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-topright{flex-direction:row-reverse;align-items:start}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-bottomright{flex-direction:row-reverse;align-items:end}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleleft{align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-bar.is-middleright{flex-direction:row-reverse;align-items:center}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-items{width:100%;max-height:100%;overflow:auto}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item{width:100%;height:32px;padding:0 var(--ibiz-spacing-base);overflow:hidden;line-height:32px;text-overflow:ellipsis;white-space:nowrap;cursor:pointer}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item:hover{color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active{position:relative;color:var(--ibiz-color-primary)}.ibiz-flow-drtab.is-enable-anchor .ibiz-flow-drtab__anchor-item.is-active::before{position:absolute;top:0;left:0;width:4px;height:100%;content:"";background-color:var(--ibiz-color-primary);border-radius:2px}.ibiz-flow-drtab.is-enable-anchor.is-left{flex-direction:row;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-left>.ibiz-flow-drtab__container{--navbarwidth:200px;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-left .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}.ibiz-flow-drtab.is-enable-anchor.is-right{flex-direction:row-reverse;overflow:auto}.ibiz-flow-drtab.is-enable-anchor.is-right>.ibiz-flow-drtab__container{--navbarwidth:200px;flex:1 0;width:calc(100% - var(--navbarwidth) - 2 * var(--ibiz-spacing-base));overflow:unset}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-bar{position:sticky;top:0}.ibiz-flow-drtab.is-enable-anchor.is-right .ibiz-flow-drtab__anchor-items::-webkit-scrollbar{display:none}
package/lib/index.cjs CHANGED
@@ -183,6 +183,7 @@ var keydownUtil = require('./util/keydown-util/keydown-util.cjs');
183
183
  var aiUtil = require('./util/ai-util/ai-util.cjs');
184
184
  var buttonUtil = require('./util/button-util/button-util.cjs');
185
185
  var wangEditorUtil = require('./util/wang-editor-util/wang-editor-util.cjs');
186
+ var icon = require('./util/icon/icon.cjs');
186
187
  var authGuard = require('./web-app/guard/auth-guard/auth-guard.cjs');
187
188
  var main = require('./web-app/main.cjs');
188
189
  var index$1e = require('./web-app/router/index.cjs');
@@ -372,6 +373,8 @@ exports.useFocusByEnter = keydownUtil.useFocusByEnter;
372
373
  exports.calcAiToolbarItemsByAc = aiUtil.calcAiToolbarItemsByAc;
373
374
  exports.convertBtnType = buttonUtil.convertBtnType;
374
375
  exports.parseHtml = wangEditorUtil.parseHtml;
376
+ exports.ArrowLeftBold = icon.ArrowLeftBold;
377
+ exports.ArrowRightBold = icon.ArrowRightBold;
375
378
  exports.AuthGuard = authGuard.AuthGuard;
376
379
  exports.runApp = main.runApp;
377
380
  exports.AppRouter = index$1e.AppRouter;
@@ -808,6 +808,10 @@ var index = {
808
808
  aiDesc: "After deletion, the conversation will not be recoverable. Are you sure to delete?",
809
809
  clearTopic: "Clear conversation",
810
810
  clearTopicDesc: "Are you sure to clear all conversation data except for the current activation item?"
811
+ },
812
+ appModal: {
813
+ prev: "Previous record",
814
+ next: "Next record"
811
815
  }
812
816
  },
813
817
  // runTime
@@ -804,6 +804,10 @@ var index = {
804
804
  aiDesc: "\u5220\u9664\u540E\uFF0C\u8BE5\u5BF9\u8BDD\u5C06\u4E0D\u53EF\u6062\u590D\u3002\u786E\u8BA4\u5220\u9664\u5417\uFF1F",
805
805
  clearTopic: "\u6E05\u7A7A\u4F1A\u8BDD",
806
806
  clearTopicDesc: "\u786E\u8BA4\u6E05\u7A7A\u9664\u5F53\u524D\u6FC0\u6D3B\u9879\u5916\u7684\u6240\u6709\u4F1A\u8BDD\u6570\u636E\uFF1F"
807
+ },
808
+ appModal: {
809
+ prev: "\u4E0A\u4E00\u4E2A\u8BB0\u5F55",
810
+ next: "\u4E0B\u4E00\u4E2A\u8BB0\u5F55"
807
811
  }
808
812
  },
809
813
  // runTime
@@ -261,7 +261,10 @@ class AppSwitchController extends runtime.PanelItemController {
261
261
  await ibiz.hub.getAppAsync(tempKey);
262
262
  }
263
263
  const targetAppModel = ibiz.hub.getAppSourceModel(tempKey);
264
- if (targetAppModel.getDefaultPSAppIndexView) {
264
+ const defaultApp = ibiz.hub.getApp();
265
+ if (defaultApp.model.appId === tempKey && window.Environment.AppTitle) {
266
+ ibiz.env.AppTitle = window.Environment.AppTitle;
267
+ } else if (targetAppModel.getDefaultPSAppIndexView) {
265
268
  const view = targetAppModel.getDefaultPSAppIndexView;
266
269
  if (targetAppModel.caption) {
267
270
  ibiz.env.AppTitle = targetAppModel.caption;