@ibiz-template/mob-vue3-components 0.0.5 → 0.0.7

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 (134) hide show
  1. package/dist/index.min.css +1 -1
  2. package/dist/index.system.min.js +6 -6
  3. package/dist/index.system.min.js.map +1 -1
  4. package/es/_virtual/customParseFormat.mjs +3 -0
  5. package/es/common/index.mjs +6 -1
  6. package/es/common/preset-view-back/preset-view-back.css +1 -0
  7. package/es/common/preset-view-back/preset-view-back.d.ts +17 -0
  8. package/es/common/preset-view-back/preset-view-back.mjs +49 -0
  9. package/es/common/preset-view-header/preset-view-header.css +1 -0
  10. package/es/common/preset-view-header/preset-view-header.d.ts +20 -0
  11. package/es/common/preset-view-header/preset-view-header.mjs +47 -0
  12. package/es/control/app-menu/app-menu.css +1 -1
  13. package/es/control/app-menu/app-menu.d.ts +1 -3
  14. package/es/control/app-menu/app-menu.mjs +35 -134
  15. package/es/control/app-menu/index.d.ts +1 -3
  16. package/es/control/app-menu-icon-view/app-menu-icon-view.css +1 -0
  17. package/es/control/app-menu-icon-view/app-menu-icon-view.d.ts +38 -0
  18. package/es/control/app-menu-icon-view/app-menu-icon-view.mjs +76 -0
  19. package/es/control/app-menu-icon-view/app-menu-icon-view.provider.d.ts +13 -0
  20. package/es/control/app-menu-icon-view/app-menu-icon-view.provider.mjs +14 -0
  21. package/es/control/app-menu-icon-view/index.d.ts +35 -0
  22. package/es/control/app-menu-icon-view/index.mjs +18 -0
  23. package/es/control/app-menu-list-view/app-menu-list-view.css +1 -0
  24. package/es/control/app-menu-list-view/app-menu-list-view.d.ts +37 -0
  25. package/es/control/app-menu-list-view/app-menu-list-view.mjs +84 -0
  26. package/es/control/app-menu-list-view/app-menu-list-view.provider.d.ts +13 -0
  27. package/es/control/app-menu-list-view/app-menu-list-view.provider.mjs +14 -0
  28. package/es/control/app-menu-list-view/index.d.ts +34 -0
  29. package/es/control/app-menu-list-view/index.mjs +18 -0
  30. package/es/control/dashboard/portlet/menu-portlet/menu-portlet.mjs +1 -2
  31. package/es/control/form/form-detail/form-button/form-button.css +1 -1
  32. package/es/control/form/form-detail/form-button/form-button.mjs +2 -1
  33. package/es/control/form/form-detail/form-page/form-page-item/form-page-item.css +1 -1
  34. package/es/control/form/form-detail/form-page/form-page-item/form-page-item.mjs +1 -1
  35. package/es/control/form/form-detail/form-tab-page/form-tab-page.mjs +1 -1
  36. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  37. package/es/control/form/form-detail/form-tab-panel/form-tab-panel.mjs +14 -6
  38. package/es/control/index.d.ts +2 -0
  39. package/es/control/index.mjs +2 -0
  40. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.css +1 -1
  41. package/es/editor/cascader/ibiz-cascader/ibiz-cascader.d.ts +1 -1
  42. package/es/editor/check-box/ibiz-checkbox/ibiz-checkbox.d.ts +1 -1
  43. package/es/editor/check-box-list/ibiz-checkbox-list/ibiz-checkbox-list.d.ts +1 -1
  44. package/es/editor/color-picker/ibiz-color-picker/ibiz-color-picker.d.ts +1 -1
  45. package/es/editor/common/data-mpicker/ibiz-data-mpicker.css +1 -0
  46. package/es/editor/common/data-mpicker/ibiz-data-mpicker.d.ts +44 -0
  47. package/es/editor/common/data-mpicker/ibiz-data-mpicker.mjs +139 -0
  48. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  49. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.d.ts +4 -3
  50. package/es/editor/data-picker/ibiz-mpicker/ibiz-mpicker.mjs +38 -31
  51. package/es/editor/data-picker/ibiz-picker/ibiz-picker.d.ts +1 -1
  52. package/es/editor/data-picker/ibiz-picker-select-view/ibiz-picker-select-view.d.ts +1 -1
  53. package/es/editor/date-picker/ibiz-date-picker/ibiz-date-picker.d.ts +1 -1
  54. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  55. package/es/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.d.ts +1 -1
  56. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.d.ts +1 -1
  57. package/es/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.mjs +5 -1
  58. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  59. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.d.ts +3 -6
  60. package/es/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.mjs +25 -103
  61. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.css +1 -1
  62. package/es/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.d.ts +1 -1
  63. package/es/editor/radio-button-list/ibiz-radio/ibiz-radio.d.ts +1 -1
  64. package/es/editor/rate/ibiz-rate/ibiz-rate.d.ts +1 -1
  65. package/es/editor/slider/ibiz-slider/ibiz-slider.d.ts +1 -1
  66. package/es/editor/span/span/span.d.ts +27 -1
  67. package/es/editor/span/span/span.mjs +78 -28
  68. package/es/editor/span/span-link/span-link.d.ts +1 -1
  69. package/es/editor/stepper/ibiz-stepper/ibiz-stepper.d.ts +1 -1
  70. package/es/editor/switch/ibiz-switch/ibiz-switch.d.ts +1 -1
  71. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.css +1 -1
  72. package/es/editor/text-box/ibiz-input-number/ibiz-input-number.d.ts +1 -1
  73. package/es/editor/text-box/input/input.d.ts +1 -1
  74. package/es/editor/upload/ibiz-carousel/ibiz-carousel.d.ts +1 -1
  75. package/es/editor/upload/ibiz-file-upload/ibiz-file-upload.d.ts +1 -1
  76. package/es/editor/upload/ibiz-image-select/ibiz-image-select.d.ts +1 -1
  77. package/es/editor/upload/ibiz-image-upload/ibiz-image-upload.d.ts +1 -1
  78. package/es/index.mjs +5 -1
  79. package/es/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.mjs +13 -0
  80. package/es/panel-component/panel-button/index.d.ts +1 -1
  81. package/es/panel-component/panel-button/panel-button.d.ts +1 -1
  82. package/es/panel-component/view-content-panel-container/view-content-panel-container.mjs +7 -2
  83. package/es/panel-component/view-header-panel-container/index.d.ts +1 -1
  84. package/es/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  85. package/es/panel-component/view-header-panel-container/view-header-panel-container.d.ts +1 -1
  86. package/es/panel-component/view-header-panel-container/view-header-panel-container.mjs +6 -12
  87. package/es/util/store/view-stack/view-stack.d.ts +1 -1
  88. package/es/view-engine/mob-wf-dyna-action-view.engine.mjs +1 -1
  89. package/es/view-engine/mob-wf-dyna-start-view.engine.mjs +1 -1
  90. package/lib/_virtual/customParseFormat.cjs +5 -0
  91. package/lib/common/index.cjs +5 -0
  92. package/lib/common/preset-view-back/preset-view-back.cjs +51 -0
  93. package/lib/common/preset-view-back/preset-view-back.css +1 -0
  94. package/lib/common/preset-view-header/preset-view-header.cjs +49 -0
  95. package/lib/common/preset-view-header/preset-view-header.css +1 -0
  96. package/lib/control/app-menu/app-menu.cjs +34 -133
  97. package/lib/control/app-menu/app-menu.css +1 -1
  98. package/lib/control/app-menu-icon-view/app-menu-icon-view.cjs +78 -0
  99. package/lib/control/app-menu-icon-view/app-menu-icon-view.css +1 -0
  100. package/lib/control/app-menu-icon-view/app-menu-icon-view.provider.cjs +16 -0
  101. package/lib/control/app-menu-icon-view/index.cjs +23 -0
  102. package/lib/control/app-menu-list-view/app-menu-list-view.cjs +86 -0
  103. package/lib/control/app-menu-list-view/app-menu-list-view.css +1 -0
  104. package/lib/control/app-menu-list-view/app-menu-list-view.provider.cjs +16 -0
  105. package/lib/control/app-menu-list-view/index.cjs +23 -0
  106. package/lib/control/dashboard/portlet/menu-portlet/menu-portlet.cjs +1 -2
  107. package/lib/control/form/form-detail/form-button/form-button.cjs +2 -1
  108. package/lib/control/form/form-detail/form-button/form-button.css +1 -1
  109. package/lib/control/form/form-detail/form-page/form-page-item/form-page-item.cjs +1 -1
  110. package/lib/control/form/form-detail/form-page/form-page-item/form-page-item.css +1 -1
  111. package/lib/control/form/form-detail/form-tab-page/form-tab-page.cjs +1 -1
  112. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.cjs +14 -6
  113. package/lib/control/form/form-detail/form-tab-panel/form-tab-panel.css +1 -1
  114. package/lib/control/index.cjs +60 -56
  115. package/lib/editor/cascader/ibiz-cascader/ibiz-cascader.css +1 -1
  116. package/lib/editor/common/data-mpicker/ibiz-data-mpicker.cjs +141 -0
  117. package/lib/editor/common/data-mpicker/ibiz-data-mpicker.css +1 -0
  118. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.cjs +38 -31
  119. package/lib/editor/data-picker/ibiz-mpicker/ibiz-mpicker.css +1 -1
  120. package/lib/editor/date-range/ibiz-date-range-picker/ibiz-date-range-picker.css +1 -1
  121. package/lib/editor/dropdown-list/ibiz-dropdown/ibiz-dropdown.cjs +5 -1
  122. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.cjs +24 -102
  123. package/lib/editor/dropdown-list/ibiz-dropdown-list/ibiz-dropdown-list.css +1 -1
  124. package/lib/editor/number-range/ibiz-number-range-picker/ibiz-number-range-picker.css +1 -1
  125. package/lib/editor/span/span/span.cjs +77 -27
  126. package/lib/editor/text-box/ibiz-input-number/ibiz-input-number.css +1 -1
  127. package/lib/index.cjs +80 -74
  128. package/lib/node_modules/.pnpm/dayjs@1.11.10/node_modules/dayjs/plugin/customParseFormat.cjs +17 -0
  129. package/lib/panel-component/view-content-panel-container/view-content-panel-container.cjs +7 -2
  130. package/lib/panel-component/view-header-panel-container/view-header-panel-container.cjs +6 -12
  131. package/lib/panel-component/view-header-panel-container/view-header-panel-container.css +1 -1
  132. package/lib/view-engine/mob-wf-dyna-action-view.engine.cjs +1 -1
  133. package/lib/view-engine/mob-wf-dyna-start-view.engine.cjs +1 -1
  134. package/package.json +4 -4
@@ -0,0 +1,3 @@
1
+ var customParseFormat = {exports: {}};
2
+
3
+ export { customParseFormat as __module };
@@ -1,4 +1,4 @@
1
- import { IBizViewShell, IBizIcon, IBizControlBase, IBizRouterView, IBizControlShell } from '@ibiz-template/vue3-util';
1
+ import { IBizViewShell, IBizIcon, IBizControlBase, IBizRouterView, IBizControlShell, IBizCodeList } from '@ibiz-template/vue3-util';
2
2
  import { IBizActionToolbar } from './action-toolbar/action-toolbar.mjs';
3
3
  import { IBizCarousel } from './carousel/carousel.mjs';
4
4
  import { IBizCol } from './col/col.mjs';
@@ -7,6 +7,8 @@ export { MoveType, ShapeFlags, devtoolsComponentAdded, invokeArrayFns, invokeVNo
7
7
  import { IBizNoData } from './no-data/no-data.mjs';
8
8
  import { IBizRawItem } from './rawitem/rawitem.mjs';
9
9
  import { IBizRow } from './row/row.mjs';
10
+ import { IBizPresetViewBack } from './preset-view-back/preset-view-back.mjs';
11
+ import { IBizPresetViewHeader } from './preset-view-header/preset-view-header.mjs';
10
12
 
11
13
  "use strict";
12
14
  const IBizCommonComponents = {
@@ -23,6 +25,9 @@ const IBizCommonComponents = {
23
25
  v.component(IBizControlShell.name, IBizControlShell);
24
26
  v.component(IBizRawItem.name, IBizRawItem);
25
27
  v.component(IBizCarousel.name, IBizCarousel);
28
+ v.component(IBizPresetViewBack.name, IBizPresetViewBack);
29
+ v.component(IBizPresetViewHeader.name, IBizPresetViewHeader);
30
+ v.component(IBizCodeList.name, IBizCodeList);
26
31
  }
27
32
  };
28
33
 
@@ -0,0 +1 @@
1
+ .ibiz-preset-view-back{position:absolute;display:flex;align-items:center;width:var(--ibiz-panel-component-view-header-back-width);height:var(--ibiz-panel-component-view-header-back-height);padding:var(--ibiz-panel-component-view-header-back-padding);font-size:var(--ibiz-panel-component-view-header-back-font-size)}.ibiz-view-header-precut-back .ibiz-control-toolbar-left{padding-left:var(--ibiz-panel-component-view-header-back-width)}
@@ -0,0 +1,17 @@
1
+ import { PropType } from 'vue';
2
+ import './preset-view-back.scss';
3
+ export declare const IBizPresetViewBack: import("vue").DefineComponent<{
4
+ view: {
5
+ type: PropType<IData>;
6
+ required: true;
7
+ };
8
+ }, {
9
+ ns: import("@ibiz-template/core").Namespace;
10
+ backButtonVisible: import("vue").Ref<boolean>;
11
+ goBack: () => void;
12
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
13
+ view: {
14
+ type: PropType<IData>;
15
+ required: true;
16
+ };
17
+ }>>, {}, {}>;
@@ -0,0 +1,49 @@
1
+ import { ref, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace } from '@ibiz-template/vue3-util';
3
+ import './preset-view-back.css';
4
+ import { useRoute } from 'vue-router';
5
+ import '../../util/index.mjs';
6
+ import { useViewStack } from '../../util/store/view-stack/view-stack.mjs';
7
+
8
+ "use strict";
9
+ const IBizPresetViewBack = /* @__PURE__ */ defineComponent({
10
+ name: "IBizPresetViewBack",
11
+ props: {
12
+ view: {
13
+ type: Object,
14
+ required: true
15
+ }
16
+ },
17
+ setup(props) {
18
+ const ns = useNamespace("preset-view-back");
19
+ const route = useRoute();
20
+ const {
21
+ viewStack
22
+ } = useViewStack();
23
+ const backButtonVisible = ref(false);
24
+ const initButtonVisible = () => {
25
+ if (props.view.modal.viewUsage === 1 && viewStack.cacheKeys.length > 1 && route.meta.home || props.view.modal.viewUsage === 2) {
26
+ backButtonVisible.value = true;
27
+ }
28
+ };
29
+ initButtonVisible();
30
+ const goBack = () => {
31
+ props.view.modal.dismiss();
32
+ };
33
+ return {
34
+ ns,
35
+ backButtonVisible,
36
+ goBack
37
+ };
38
+ },
39
+ render() {
40
+ return this.backButtonVisible && createVNode("div", {
41
+ "class": this.ns.b(),
42
+ "onClick": this.goBack
43
+ }, [createVNode("ion-icon", {
44
+ "name": "chevron-back-outline"
45
+ }, null)]);
46
+ }
47
+ });
48
+
49
+ export { IBizPresetViewBack };
@@ -0,0 +1 @@
1
+ .ibiz-preset-view-header{display:flex;justify-content:center;width:100%}.ibiz-preset-view-header .ibiz-preset-view-back{left:0}
@@ -0,0 +1,20 @@
1
+ import { ICaptionBar, IPanelContainer } from '@ibiz/model-core';
2
+ import { PropType } from 'vue';
3
+ import './preset-view-header.scss';
4
+ export declare const IBizPresetViewHeader: import("vue").DefineComponent<{
5
+ modelData: {
6
+ type: PropType<IPanelContainer>;
7
+ required: true;
8
+ };
9
+ }, {
10
+ ns: import("@ibiz-template/core").Namespace;
11
+ ns2: import("@ibiz-template/core").Namespace;
12
+ view: import("@ibiz-template/runtime").IViewController<import("@ibiz/model-core").IAppView, import("@ibiz-template/runtime").IViewState, import("@ibiz-template/runtime").IViewEvent>;
13
+ captionBar: ICaptionBar | undefined;
14
+ context: IContext;
15
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
16
+ modelData: {
17
+ type: PropType<IPanelContainer>;
18
+ required: true;
19
+ };
20
+ }>>, {}, {}>;
@@ -0,0 +1,47 @@
1
+ import { resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useNamespace, useCtx } from '@ibiz-template/vue3-util';
3
+ import './preset-view-header.css';
4
+
5
+ "use strict";
6
+ const IBizPresetViewHeader = /* @__PURE__ */ defineComponent({
7
+ name: "IBizPresetViewHeader",
8
+ props: {
9
+ modelData: {
10
+ type: Object,
11
+ required: true
12
+ }
13
+ },
14
+ setup() {
15
+ const ns = useNamespace("preset-view-header");
16
+ const ns2 = useNamespace("view-header");
17
+ const ctx = useCtx();
18
+ const view = ctx.view;
19
+ const context = ctx.view.context;
20
+ const captionBar = view.model.controls.find((item) => item.controlType === "CAPTIONBAR");
21
+ return {
22
+ ns,
23
+ ns2,
24
+ view,
25
+ captionBar,
26
+ context
27
+ };
28
+ },
29
+ render() {
30
+ return this.view.model.showCaptionBar && createVNode("div", {
31
+ "class": [this.ns.b(), this.ns2.b()]
32
+ }, [createVNode("div", {
33
+ "class": this.ns.b("left")
34
+ }, [createVNode(resolveComponent("iBizPresetViewBack"), {
35
+ "view": this.view
36
+ }, null)]), createVNode("div", {
37
+ "class": this.ns.b("center")
38
+ }, [this.captionBar && this.view.model.showCaptionBar && createVNode(resolveComponent("iBizCaptionBarControl"), {
39
+ "modelData": this.captionBar,
40
+ "context": this.context
41
+ }, null)]), createVNode("div", {
42
+ "class": this.ns.b("right")
43
+ }, null)]);
44
+ }
45
+ });
46
+
47
+ export { IBizPresetViewHeader };
@@ -1 +1 @@
1
- .ibiz-control-appmenu{--ibiz-control-appmenu-list-view-icon-size:var(--ibiz-font-size-header-4);--ibiz-control-appmenu-list-view-font-size:var(--ibiz-font-size-regular);--ibiz-control-appmenu-list-view-padding:0 1rem;--ibiz-control-appmenu-list-view-item-padding:0.5rem 0;--ibiz-control-appmenu-icon-width:100%;--ibiz-control-appmenu-icon-view-icon-size:2.1875rem;--ibiz-control-appmenu-icon-view-icon-margin:0.3125rem;width:100%;height:100%}.ibiz-control-appmenu--default{height:var(--van-tabbar-height)}.ibiz-control-appmenu-listview{--van-cell-border-color:var(--ibiz-color-border);--van-divider-margin:0.125rem;--van-divider-border-color:transparent;--van-cell-horizontal-padding:0.75rem;--van-cell-active-color:transparent;--van-cell-right-icon-color:var(--van-gray-6);padding:var(--ibiz-control-appmenu-list-view-padding)}.ibiz-control-appmenu-listview .ibiz-control-appmenu-item{padding:var(--ibiz-control-appmenu-list-view-item-padding);font-size:var(--ibiz-control-appmenu-list-view-font-size);border-bottom:var(--ibiz-color-border) solid .0625rem}.ibiz-control-appmenu-listview .ibiz-control-appmenu-item:last-child{border-width:0}.ibiz-control-appmenu-listview .ibiz-control-appmenu-icon{display:flex;align-items:center;justify-content:center;margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-control-appmenu-list-view-icon-size)}.ibiz-control-appmenu-iconview .van-grid-item__text{display:-webkit-box;flex:1;height:-moz-fit-content;height:fit-content;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ibiz-control-appmenu-iconview .van-badge__wrapper{display:flex;justify-content:center;width:100%}.ibiz-control-appmenu-iconview .van-grid-item__content--clickable:active{background-color:inherit}.ibiz-control-appmenu-iconview .ibiz-control-appmenu-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-appmenu-icon-width);margin-bottom:var(--ibiz-control-appmenu-icon-view-icon-margin);font-size:var(--ibiz-control-appmenu-icon-view-icon-size)}.ibiz-control-appmenu-nav{height:calc(100% - var(--van-tabbar-height))}
1
+ .ibiz-control-appmenu{width:100%;height:100%}.ibiz-control-appmenu--default{height:var(--van-tabbar-height)}.ibiz-control-appmenu-nav{height:calc(100% - var(--van-tabbar-height))}
@@ -17,12 +17,10 @@ export declare const AppMenuControl: import("vue").DefineComponent<{
17
17
  };
18
18
  }, {
19
19
  controlClass: string[];
20
+ activeName: import("vue").Ref<any>;
20
21
  c: AppMenuController;
21
22
  onTabChange: (active: string, event?: MouseEvent) => Promise<void>;
22
23
  ns: import("@ibiz-template/core").Namespace;
23
- renderDefault: () => JSX.Element;
24
- renderIconView: () => JSX.Element;
25
- renderListView: () => JSX.Element;
26
24
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
27
25
  modelData: {
28
26
  type: PropType<IAppMenu>;
@@ -1,4 +1,4 @@
1
- import { isVNode, ref, computed, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
1
+ import { isVNode, ref, onMounted, resolveComponent, createVNode, defineComponent } from 'vue';
2
2
  import { useControlController, prepareControl } from '@ibiz-template/vue3-util';
3
3
  import './app-menu.css';
4
4
  import { useRoute } from 'vue-router';
@@ -24,16 +24,13 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
24
24
  default: () => ({})
25
25
  }
26
26
  },
27
- setup(props) {
27
+ setup() {
28
28
  const c = useControlController((...args) => new AppMenuController(...args));
29
29
  const {
30
30
  controlClass,
31
31
  ns
32
32
  } = prepareControl(c);
33
33
  const activeName = ref();
34
- const columnNum = computed(() => {
35
- return 5;
36
- });
37
34
  const route = useRoute();
38
35
  const calcCurMenu = () => {
39
36
  const allItems = c.getAllItems();
@@ -63,145 +60,49 @@ const AppMenuControl = /* @__PURE__ */ defineComponent({
63
60
  activeName.value = activeMenu ? activeMenu.id : "";
64
61
  }
65
62
  });
66
- const renderDefault = () => {
67
- var _a;
68
- const {
69
- model,
70
- state
71
- } = c;
72
- let appMenu = null;
73
- if (state.isCreated && ((_a = model.appMenuItems) == null ? void 0 : _a.length)) {
74
- appMenu = model.appMenuItems.map((item) => {
75
- if (item.itemType === "MENUITEM") {
76
- const itemState = state.menuItemsState[item.id];
77
- if (itemState.visible) {
78
- return createVNode(resolveComponent("van-tabbar-item"), {
79
- "name": item.id
80
- }, {
81
- icon: () => createVNode(resolveComponent("iBizIcon"), {
82
- "slot": "icon",
83
- "class": ns.e("icon"),
84
- "icon": item.sysImage
85
- }, null),
86
- default: () => createVNode("span", null, [item.caption])
87
- });
88
- }
89
- }
90
- return null;
91
- });
92
- }
93
- return createVNode("div", {
94
- "class": [ns.b(), ns.m(props.modelData.id), ns.m(model.controlStyle || "default")]
95
- }, [createVNode(resolveComponent("van-tabbar"), {
96
- "modelValue": activeName.value,
97
- "onChange": onTabChange
98
- }, _isSlot(appMenu) ? appMenu : {
99
- default: () => [appMenu]
100
- })]);
101
- };
102
- const renderIconView = () => {
103
- const {
104
- model
105
- } = c;
106
- const {
107
- controlStyle
108
- } = model;
109
- return createVNode(resolveComponent("van-grid"), {
110
- "clickable": true,
111
- "column-num": columnNum.value,
112
- "border": false,
113
- "class": [ns.b(), ns.b(controlStyle.toLowerCase()), ns.m(props.modelData.id)]
114
- }, {
115
- default: () => {
116
- var _a;
117
- return [(_a = model == null ? void 0 : model.appMenuItems) == null ? void 0 : _a.map((item) => {
118
- return item.itemType === "MENUITEM" && createVNode(resolveComponent("van-grid-item"), {
119
- "class": ns.b("item"),
120
- "text": item.caption,
121
- "onClick": (event) => c.onClickMenuItem(item.id, event, false)
122
- }, {
123
- icon: () => {
124
- return createVNode("div", {
125
- "class": ns.b("icon")
126
- }, [item.sysImage ? createVNode(resolveComponent("iBizIcon"), {
127
- "icon": item.sysImage
128
- }, null) : createVNode(resolveComponent("van-icon"), {
129
- "name": "setting-o"
130
- }, null)]);
131
- }
132
- });
133
- })];
134
- }
135
- });
136
- };
137
- const renderListView = () => {
138
- const {
139
- model
140
- } = c;
141
- const {
142
- controlStyle
143
- } = model;
144
- return createVNode(resolveComponent("van-list"), {
145
- "class": [ns.b(), ns.b(controlStyle.toLowerCase()), ns.m(props.modelData.id)]
146
- }, {
147
- default: () => {
148
- var _a;
149
- return [(_a = model == null ? void 0 : model.appMenuItems) == null ? void 0 : _a.map((item) => {
150
- let renderItem = null;
151
- switch (item.itemType) {
152
- case "MENUITEM":
153
- renderItem = createVNode(resolveComponent("van-cell"), {
154
- "class": [ns.b("item")],
155
- "is-link": true,
156
- "center": true,
157
- "title": item.caption,
158
- "onClick": (event) => c.onClickMenuItem(item.id, event, false)
159
- }, {
160
- icon: () => {
161
- return item.sysImage && createVNode("div", {
162
- "class": ns.b("icon")
163
- }, [createVNode(resolveComponent("iBizIcon"), {
164
- "icon": item.sysImage
165
- }, null)]);
166
- }
167
- });
168
- break;
169
- case "SEPERATOR":
170
- renderItem = createVNode(resolveComponent("van-divider"), null, null);
171
- break;
172
- default:
173
- break;
174
- }
175
- return renderItem;
176
- })];
177
- }
178
- });
179
- };
180
63
  return {
181
64
  controlClass,
65
+ activeName,
182
66
  c,
183
67
  onTabChange,
184
- ns,
185
- renderDefault,
186
- renderIconView,
187
- renderListView
68
+ ns
188
69
  };
189
70
  },
190
71
  render() {
72
+ var _a;
191
73
  const {
192
- model
74
+ model,
75
+ state
193
76
  } = this.c;
194
- const {
195
- controlStyle
196
- } = model;
197
- switch (controlStyle) {
198
- case "ICONVIEW":
199
- return this.renderIconView();
200
- case "LISTVIEW":
201
- return this.renderListView();
202
- default:
203
- return this.renderDefault();
77
+ let appMenu = null;
78
+ if (state.isCreated && ((_a = model.appMenuItems) == null ? void 0 : _a.length)) {
79
+ appMenu = model.appMenuItems.map((item) => {
80
+ if (item.itemType === "MENUITEM" && item.hidden !== true) {
81
+ const itemState = state.menuItemsState[item.id];
82
+ if (itemState.visible) {
83
+ return createVNode(resolveComponent("van-tabbar-item"), {
84
+ "name": item.id
85
+ }, {
86
+ icon: () => createVNode(resolveComponent("iBizIcon"), {
87
+ "slot": "icon",
88
+ "class": this.ns.e("icon"),
89
+ "icon": item.sysImage
90
+ }, null),
91
+ default: () => createVNode("span", null, [item.caption])
92
+ });
93
+ }
94
+ }
95
+ return null;
96
+ });
204
97
  }
98
+ return createVNode("div", {
99
+ "class": [this.ns.b(), this.ns.m(this.modelData.id), this.ns.m(model.controlStyle || "default")]
100
+ }, [createVNode(resolveComponent("van-tabbar"), {
101
+ "modelValue": this.activeName,
102
+ "onChange": this.onTabChange
103
+ }, _isSlot(appMenu) ? appMenu : {
104
+ default: () => [appMenu]
105
+ })]);
205
106
  }
206
107
  });
207
108
 
@@ -14,12 +14,10 @@ export declare const IBizAppMenuControl: import("@ibiz-template/vue3-util").Type
14
14
  };
15
15
  }, {
16
16
  controlClass: string[];
17
+ activeName: import("vue").Ref<any>;
17
18
  c: import("@ibiz-template/runtime").AppMenuController;
18
19
  onTabChange: (active: string, event?: MouseEvent | undefined) => Promise<void>;
19
20
  ns: import("@ibiz-template/core").Namespace;
20
- renderDefault: () => JSX.Element;
21
- renderIconView: () => JSX.Element;
22
- renderListView: () => JSX.Element;
23
21
  }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
24
22
  modelData: {
25
23
  type: import("vue").PropType<import("@ibiz/model-core").IAppMenu>;
@@ -0,0 +1 @@
1
+ .ibiz-control-appmenu-iconview{--ibiz-control-appmenu-icon-width:100%;--ibiz-control-appmenu-icon-view-icon-size:2.1875rem;--ibiz-control-appmenu-icon-view-icon-margin:0.3125rem}.ibiz-control-appmenu-iconview .van-grid-item__text{display:-webkit-box;flex:1;height:-moz-fit-content;height:fit-content;overflow:hidden;text-overflow:ellipsis;-webkit-line-clamp:2;-webkit-box-orient:vertical}.ibiz-control-appmenu-iconview .van-badge__wrapper{display:flex;justify-content:center;width:100%}.ibiz-control-appmenu-iconview .van-grid-item__content--clickable:active{background-color:inherit}.ibiz-control-appmenu-iconview .ibiz-control-appmenu-icon{display:flex;align-items:center;justify-content:center;width:var(--ibiz-control-appmenu-icon-width);margin-bottom:var(--ibiz-control-appmenu-icon-view-icon-margin);font-size:var(--ibiz-control-appmenu-icon-view-icon-size)}
@@ -0,0 +1,38 @@
1
+ import { IAppMenu } from '@ibiz/model-core';
2
+ import { PropType } from 'vue';
3
+ import './app-menu-icon-view.scss';
4
+ import { AppMenuController } from '@ibiz-template/runtime';
5
+ export declare const AppMenuIconViewControl: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IAppMenu>;
8
+ required: true;
9
+ };
10
+ context: {
11
+ type: PropType<IContext>;
12
+ required: true;
13
+ };
14
+ params: {
15
+ type: PropType<IParams>;
16
+ default: () => {};
17
+ };
18
+ }, {
19
+ controlClass: string[];
20
+ c: AppMenuController;
21
+ columnNum: import("vue").ComputedRef<number>;
22
+ ns: import("@ibiz-template/core").Namespace;
23
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
24
+ modelData: {
25
+ type: PropType<IAppMenu>;
26
+ required: true;
27
+ };
28
+ context: {
29
+ type: PropType<IContext>;
30
+ required: true;
31
+ };
32
+ params: {
33
+ type: PropType<IParams>;
34
+ default: () => {};
35
+ };
36
+ }>>, {
37
+ params: IParams;
38
+ }, {}>;
@@ -0,0 +1,76 @@
1
+ import { computed, resolveComponent, createVNode, defineComponent } from 'vue';
2
+ import { useControlController, prepareControl } from '@ibiz-template/vue3-util';
3
+ import './app-menu-icon-view.css';
4
+ import { AppMenuController } from '@ibiz-template/runtime';
5
+
6
+ "use strict";
7
+ const AppMenuIconViewControl = /* @__PURE__ */ defineComponent({
8
+ name: "IBizAppMenuIconViewControl",
9
+ props: {
10
+ modelData: {
11
+ type: Object,
12
+ required: true
13
+ },
14
+ context: {
15
+ type: Object,
16
+ required: true
17
+ },
18
+ params: {
19
+ type: Object,
20
+ default: () => ({})
21
+ }
22
+ },
23
+ setup() {
24
+ const c = useControlController((...args) => new AppMenuController(...args));
25
+ const {
26
+ controlClass,
27
+ ns
28
+ } = prepareControl(c);
29
+ const columnNum = computed(() => {
30
+ return 5;
31
+ });
32
+ return {
33
+ controlClass,
34
+ c,
35
+ columnNum,
36
+ ns
37
+ };
38
+ },
39
+ render() {
40
+ const {
41
+ model
42
+ } = this.c;
43
+ const {
44
+ controlStyle
45
+ } = model;
46
+ return createVNode(resolveComponent("van-grid"), {
47
+ "clickable": true,
48
+ "column-num": this.columnNum,
49
+ "border": false,
50
+ "class": [this.ns.b(), this.ns.b(controlStyle.toLowerCase()), this.ns.m(this.modelData.id)]
51
+ }, {
52
+ default: () => {
53
+ var _a;
54
+ return [(_a = model == null ? void 0 : model.appMenuItems) == null ? void 0 : _a.map((item) => {
55
+ return item.itemType === "MENUITEM" && item.hidden !== true && createVNode(resolveComponent("van-grid-item"), {
56
+ "class": this.ns.b("item"),
57
+ "text": item.caption,
58
+ "onClick": (event) => this.c.onClickMenuItem(item.id, event, false)
59
+ }, {
60
+ icon: () => {
61
+ return createVNode("div", {
62
+ "class": this.ns.b("icon")
63
+ }, [item.sysImage ? createVNode(resolveComponent("iBizIcon"), {
64
+ "icon": item.sysImage
65
+ }, null) : createVNode(resolveComponent("van-icon"), {
66
+ "name": "setting-o"
67
+ }, null)]);
68
+ }
69
+ });
70
+ })];
71
+ }
72
+ });
73
+ }
74
+ });
75
+
76
+ export { AppMenuIconViewControl };
@@ -0,0 +1,13 @@
1
+ import { IControlProvider } from '@ibiz-template/runtime';
2
+ /**
3
+ * 应用菜单适配器
4
+ *
5
+ * @author lxm
6
+ * @date 2022-10-25 18:10:57
7
+ * @export
8
+ * @class AppMenuProvider
9
+ * @implements {IControlProvider}
10
+ */
11
+ export declare class AppMenuIconViewProvider implements IControlProvider {
12
+ component: string;
13
+ }
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
4
+ var __publicField = (obj, key, value) => {
5
+ __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
6
+ return value;
7
+ };
8
+ class AppMenuIconViewProvider {
9
+ constructor() {
10
+ __publicField(this, "component", "IBizAppMenuIconViewControl");
11
+ }
12
+ }
13
+
14
+ export { AppMenuIconViewProvider };
@@ -0,0 +1,35 @@
1
+ export declare const IBizAppMenuIconViewControl: import("@ibiz-template/vue3-util").TypeWithInstall<import("vue").DefineComponent<{
2
+ modelData: {
3
+ type: import("vue").PropType<import("@ibiz/model-core").IAppMenu>;
4
+ required: true;
5
+ };
6
+ context: {
7
+ type: import("vue").PropType<IContext>;
8
+ required: true;
9
+ };
10
+ params: {
11
+ type: import("vue").PropType<IParams>;
12
+ default: () => {};
13
+ };
14
+ }, {
15
+ controlClass: string[];
16
+ c: import("@ibiz-template/runtime").AppMenuController;
17
+ columnNum: import("vue").ComputedRef<number>;
18
+ ns: import("@ibiz-template/core").Namespace;
19
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
20
+ modelData: {
21
+ type: import("vue").PropType<import("@ibiz/model-core").IAppMenu>;
22
+ required: true;
23
+ };
24
+ context: {
25
+ type: import("vue").PropType<IContext>;
26
+ required: true;
27
+ };
28
+ params: {
29
+ type: import("vue").PropType<IParams>;
30
+ default: () => {};
31
+ };
32
+ }>>, {
33
+ params: IParams;
34
+ }, {}>>;
35
+ export default IBizAppMenuIconViewControl;
@@ -0,0 +1,18 @@
1
+ import { ControlType, registerControlProvider } from '@ibiz-template/runtime';
2
+ import { withInstall } from '@ibiz-template/vue3-util';
3
+ import { AppMenuIconViewProvider } from './app-menu-icon-view.provider.mjs';
4
+ import { AppMenuIconViewControl } from './app-menu-icon-view.mjs';
5
+
6
+ "use strict";
7
+ const IBizAppMenuIconViewControl = withInstall(
8
+ AppMenuIconViewControl,
9
+ function(v) {
10
+ v.component(AppMenuIconViewControl.name, AppMenuIconViewControl);
11
+ registerControlProvider(
12
+ `${ControlType.APP_MENU}_ICONVIEW`,
13
+ () => new AppMenuIconViewProvider()
14
+ );
15
+ }
16
+ );
17
+
18
+ export { IBizAppMenuIconViewControl, IBizAppMenuIconViewControl as default };
@@ -0,0 +1 @@
1
+ .ibiz-control-appmenu-listview{--ibiz-control-appmenu-list-view-icon-size:var(--ibiz-font-size-header-4);--ibiz-control-appmenu-list-view-font-size:var(--ibiz-font-size-regular);--ibiz-control-appmenu-list-view-padding:0;--ibiz-control-appmenu-list-view-item-padding:0.5rem 1rem;--van-cell-border-color:var(--ibiz-color-border);--van-divider-margin:0.125rem;--van-divider-border-color:transparent;--van-cell-horizontal-padding:0.75rem;--van-cell-active-color:transparent;--van-cell-right-icon-color:var(--van-gray-6);border-radius:var(--ibiz-border-radius-small)}.ibiz-control-appmenu-listview .ibiz-control-appmenu-item{padding:var(--ibiz-control-appmenu-list-view-item-padding);font-size:var(--ibiz-control-appmenu-list-view-font-size)}.ibiz-control-appmenu-listview .ibiz-control-appmenu-item:last-child{border-width:0}.ibiz-control-appmenu-listview .van-cell::after{left:0}.ibiz-control-appmenu-listview .ibiz-control-appmenu-icon{display:flex;align-items:center;justify-content:center;margin-right:var(--ibiz-spacing-tight);font-size:var(--ibiz-control-appmenu-list-view-icon-size)}
@@ -0,0 +1,37 @@
1
+ import { IAppMenu } from '@ibiz/model-core';
2
+ import { PropType } from 'vue';
3
+ import './app-menu-list-view.scss';
4
+ import { AppMenuController } from '@ibiz-template/runtime';
5
+ export declare const AppMenuListViewControl: import("vue").DefineComponent<{
6
+ modelData: {
7
+ type: PropType<IAppMenu>;
8
+ required: true;
9
+ };
10
+ context: {
11
+ type: PropType<IContext>;
12
+ required: true;
13
+ };
14
+ params: {
15
+ type: PropType<IParams>;
16
+ default: () => {};
17
+ };
18
+ }, {
19
+ controlClass: string[];
20
+ c: AppMenuController;
21
+ ns: import("@ibiz-template/core").Namespace;
22
+ }, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
23
+ modelData: {
24
+ type: PropType<IAppMenu>;
25
+ required: true;
26
+ };
27
+ context: {
28
+ type: PropType<IContext>;
29
+ required: true;
30
+ };
31
+ params: {
32
+ type: PropType<IParams>;
33
+ default: () => {};
34
+ };
35
+ }>>, {
36
+ params: IParams;
37
+ }, {}>;