@ibiz-template/vue3-util 0.6.14 → 0.6.15
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.
- package/dist/index.min.css +1 -1
- package/dist/index.system.min.js +1 -1
- package/es/index.mjs +3 -0
- package/es/panel-component/index.d.ts +2 -0
- package/es/panel-component/index.d.ts.map +1 -1
- package/es/panel-component/index.mjs +3 -0
- package/es/panel-component/panel-container-tabs/index.d.ts +23 -0
- package/es/panel-component/panel-container-tabs/index.d.ts.map +1 -0
- package/es/panel-component/panel-container-tabs/index.mjs +19 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.css +1 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.d.ts +26 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.d.ts.map +1 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.mjs +35 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.provider.d.ts +16 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.provider.d.ts.map +1 -0
- package/es/panel-component/panel-container-tabs/panel-container-tabs.provider.mjs +15 -0
- package/es/panel-component/teleport-placeholder/index.d.ts +28 -0
- package/es/panel-component/teleport-placeholder/index.d.ts.map +1 -0
- package/es/panel-component/teleport-placeholder/index.mjs +19 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.css +1 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.d.ts +29 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.d.ts.map +1 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.mjs +63 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.provider.d.ts +17 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.provider.d.ts.map +1 -0
- package/es/panel-component/teleport-placeholder/teleport-placeholder.provider.mjs +16 -0
- package/es/view/common/index.d.ts +5 -0
- package/es/view/common/index.d.ts.map +1 -1
- package/es/view/common/view.d.ts +6 -3
- package/es/view/common/view.d.ts.map +1 -1
- package/es/view/common/view.mjs +62 -43
- package/lib/index.cjs +21 -15
- package/lib/panel-component/index.cjs +6 -0
- package/lib/panel-component/panel-container-tabs/index.cjs +24 -0
- package/lib/panel-component/panel-container-tabs/panel-container-tabs.cjs +37 -0
- package/lib/panel-component/panel-container-tabs/panel-container-tabs.css +1 -0
- package/lib/panel-component/panel-container-tabs/panel-container-tabs.provider.cjs +17 -0
- package/lib/panel-component/teleport-placeholder/index.cjs +25 -0
- package/lib/panel-component/teleport-placeholder/teleport-placeholder.cjs +65 -0
- package/lib/panel-component/teleport-placeholder/teleport-placeholder.css +1 -0
- package/lib/panel-component/teleport-placeholder/teleport-placeholder.provider.cjs +18 -0
- package/lib/view/common/view.cjs +60 -41
- package/package.json +6 -6
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
|
|
2
|
+
import { IPanelContainer } from '@ibiz/model-core';
|
|
3
|
+
/**
|
|
4
|
+
* 面板图片容器适配器
|
|
5
|
+
*
|
|
6
|
+
* @author lxm
|
|
7
|
+
* @date 2022-09-19 22:09:03
|
|
8
|
+
* @export
|
|
9
|
+
* @class PanelContainerTabsProvider
|
|
10
|
+
* @implements {EditorProvider}
|
|
11
|
+
*/
|
|
12
|
+
export declare class PanelContainerTabsProvider implements IPanelItemProvider {
|
|
13
|
+
component: string;
|
|
14
|
+
createController(panelItem: IPanelContainer, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelItemController>;
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=panel-container-tabs.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"panel-container-tabs.provider.d.ts","sourceRoot":"","sources":["../../../src/panel-component/panel-container-tabs/panel-container-tabs.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,eAAe,EAAE,MAAM,kBAAkB,CAAC;AAGnD;;;;;;;;GAQG;AACH,qBAAa,0BAA2B,YAAW,kBAAkB;IACnE,SAAS,EAAE,MAAM,CAA4B;IAEvC,gBAAgB,CACpB,SAAS,EAAE,eAAe,EAC1B,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,mBAAmB,CAAC;CAKhC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { PanelContainerController } from '../panel-container/panel-container.controller.mjs';
|
|
2
|
+
|
|
3
|
+
"use strict";
|
|
4
|
+
class PanelContainerTabsProvider {
|
|
5
|
+
constructor() {
|
|
6
|
+
this.component = "IBizPanelContainerTabs";
|
|
7
|
+
}
|
|
8
|
+
async createController(panelItem, panel, parent) {
|
|
9
|
+
const c = new PanelContainerController(panelItem, panel, parent);
|
|
10
|
+
await c.init();
|
|
11
|
+
return c;
|
|
12
|
+
}
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
export { PanelContainerTabsProvider };
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import { TeleportPlaceholderProvider } from './teleport-placeholder.provider';
|
|
2
|
+
export { TeleportPlaceholderProvider };
|
|
3
|
+
export declare const IBizTeleportPlaceholder: import("../../util").TypeWithInstall<import("vue").DefineComponent<{
|
|
4
|
+
modelData: {
|
|
5
|
+
type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
|
|
6
|
+
required: true;
|
|
7
|
+
};
|
|
8
|
+
controller: {
|
|
9
|
+
type: import("vue").PropType<import("..").PanelRawItemController>;
|
|
10
|
+
required: true;
|
|
11
|
+
};
|
|
12
|
+
}, {
|
|
13
|
+
ns: import("@ibiz-template/core").Namespace;
|
|
14
|
+
classArr: import("vue").ComputedRef<(string | false)[]>;
|
|
15
|
+
tempStyle: import("vue").Ref<string>;
|
|
16
|
+
teleportTag: string;
|
|
17
|
+
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
18
|
+
modelData: {
|
|
19
|
+
type: import("vue").PropType<import("@ibiz/model-core").IPanelRawItem>;
|
|
20
|
+
required: true;
|
|
21
|
+
};
|
|
22
|
+
controller: {
|
|
23
|
+
type: import("vue").PropType<import("..").PanelRawItemController>;
|
|
24
|
+
required: true;
|
|
25
|
+
};
|
|
26
|
+
}>>, {}, {}>>;
|
|
27
|
+
export default IBizTeleportPlaceholder;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/panel-component/teleport-placeholder/index.ts"],"names":[],"mappings":"AAIA,OAAO,EAAE,2BAA2B,EAAE,MAAM,iCAAiC,CAAC;AAE9E,OAAO,EAAE,2BAA2B,EAAE,CAAC;AAEvC,eAAO,MAAM,uBAAuB;;;;;;;;;;;;;;;;;;;;;;;aASnC,CAAC;AAEF,eAAe,uBAAuB,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { registerPanelItemProvider } from '@ibiz-template/runtime';
|
|
2
|
+
import '../../util/index.mjs';
|
|
3
|
+
import { TeleportPlaceholder } from './teleport-placeholder.mjs';
|
|
4
|
+
import { TeleportPlaceholderProvider } from './teleport-placeholder.provider.mjs';
|
|
5
|
+
import { withInstall } from '../../util/install.mjs';
|
|
6
|
+
|
|
7
|
+
"use strict";
|
|
8
|
+
const IBizTeleportPlaceholder = withInstall(
|
|
9
|
+
TeleportPlaceholder,
|
|
10
|
+
function(v) {
|
|
11
|
+
v.component(TeleportPlaceholder.name, TeleportPlaceholder);
|
|
12
|
+
registerPanelItemProvider(
|
|
13
|
+
"RAWITEM_TELEPORT_PLACEHOLDER",
|
|
14
|
+
() => new TeleportPlaceholderProvider()
|
|
15
|
+
);
|
|
16
|
+
}
|
|
17
|
+
);
|
|
18
|
+
|
|
19
|
+
export { IBizTeleportPlaceholder, TeleportPlaceholderProvider, IBizTeleportPlaceholder as default };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ibiz-teleport-placeholder{width:auto;height:auto}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import { IPanelRawItem } from '@ibiz/model-core';
|
|
2
|
+
import { PropType } from 'vue';
|
|
3
|
+
import { PanelRawItemController } from '../panel-rawitem';
|
|
4
|
+
import './teleport-placeholder.scss';
|
|
5
|
+
export declare const TeleportPlaceholder: import("vue").DefineComponent<{
|
|
6
|
+
modelData: {
|
|
7
|
+
type: PropType<IPanelRawItem>;
|
|
8
|
+
required: true;
|
|
9
|
+
};
|
|
10
|
+
controller: {
|
|
11
|
+
type: PropType<PanelRawItemController>;
|
|
12
|
+
required: true;
|
|
13
|
+
};
|
|
14
|
+
}, {
|
|
15
|
+
ns: import("@ibiz-template/core").Namespace;
|
|
16
|
+
classArr: import("vue").ComputedRef<(string | false)[]>;
|
|
17
|
+
tempStyle: import("vue").Ref<string>;
|
|
18
|
+
teleportTag: string;
|
|
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: PropType<IPanelRawItem>;
|
|
22
|
+
required: true;
|
|
23
|
+
};
|
|
24
|
+
controller: {
|
|
25
|
+
type: PropType<PanelRawItemController>;
|
|
26
|
+
required: true;
|
|
27
|
+
};
|
|
28
|
+
}>>, {}, {}>;
|
|
29
|
+
//# sourceMappingURL=teleport-placeholder.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teleport-placeholder.d.ts","sourceRoot":"","sources":["../../../src/panel-component/teleport-placeholder/teleport-placeholder.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAA6B,QAAQ,EAAO,MAAM,KAAK,CAAC;AAE/D,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAC1D,OAAO,6BAA6B,CAAC;AAErC,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;YA2D9B,CAAC"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, createVNode } from 'vue';
|
|
2
|
+
import '../../use/index.mjs';
|
|
3
|
+
import './teleport-placeholder.css';
|
|
4
|
+
import { useNamespace } from '../../use/namespace/namespace.mjs';
|
|
5
|
+
|
|
6
|
+
"use strict";
|
|
7
|
+
const TeleportPlaceholder = /* @__PURE__ */ defineComponent({
|
|
8
|
+
name: "IBizTeleportPlaceholder",
|
|
9
|
+
props: {
|
|
10
|
+
modelData: {
|
|
11
|
+
type: Object,
|
|
12
|
+
required: true
|
|
13
|
+
},
|
|
14
|
+
controller: {
|
|
15
|
+
type: Object,
|
|
16
|
+
required: true
|
|
17
|
+
}
|
|
18
|
+
},
|
|
19
|
+
setup(props) {
|
|
20
|
+
var _a, _b;
|
|
21
|
+
const ns = useNamespace("teleport-placeholder");
|
|
22
|
+
const tempStyle = ref("");
|
|
23
|
+
const {
|
|
24
|
+
rawItem
|
|
25
|
+
} = props.modelData;
|
|
26
|
+
if (rawItem && rawItem.cssStyle) {
|
|
27
|
+
tempStyle.value = rawItem.cssStyle;
|
|
28
|
+
}
|
|
29
|
+
const classArr = computed(() => {
|
|
30
|
+
const {
|
|
31
|
+
id
|
|
32
|
+
} = props.modelData;
|
|
33
|
+
const result = [ns.b(), ns.m(id)];
|
|
34
|
+
result.push(...props.controller.containerClass);
|
|
35
|
+
return result;
|
|
36
|
+
});
|
|
37
|
+
const viewCodeName = props.controller.panel.view.model.codeName;
|
|
38
|
+
let teleportTag = "".concat(viewCodeName == null ? void 0 : viewCodeName.toLowerCase(), "-").concat(props.modelData.id);
|
|
39
|
+
const paramTag = (_b = (_a = props.modelData.rawItem) == null ? void 0 : _a.rawItemParams) == null ? void 0 : _b.find((item) => item.key === "TeleportTag");
|
|
40
|
+
if (paramTag && paramTag.value) {
|
|
41
|
+
teleportTag = paramTag.value;
|
|
42
|
+
}
|
|
43
|
+
ibiz.log.debug("\u89C6\u56FE".concat(viewCodeName, "\u7684\u9762\u677F\u6210\u5458").concat(props.modelData.id, "\u7684\u5360\u4F4D\u6807\u8BC6\u662F\uFF1A"), teleportTag);
|
|
44
|
+
return {
|
|
45
|
+
ns,
|
|
46
|
+
classArr,
|
|
47
|
+
tempStyle,
|
|
48
|
+
teleportTag
|
|
49
|
+
};
|
|
50
|
+
},
|
|
51
|
+
render() {
|
|
52
|
+
if (!this.controller.state.visible) {
|
|
53
|
+
return;
|
|
54
|
+
}
|
|
55
|
+
return createVNode("div", {
|
|
56
|
+
"id": this.teleportTag,
|
|
57
|
+
"class": this.classArr,
|
|
58
|
+
"style": this.tempStyle
|
|
59
|
+
}, null);
|
|
60
|
+
}
|
|
61
|
+
});
|
|
62
|
+
|
|
63
|
+
export { TeleportPlaceholder };
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { IPanelItemProvider, PanelController, PanelItemController } from '@ibiz-template/runtime';
|
|
2
|
+
import { IPanelCtrlPos } from '@ibiz/model-core';
|
|
3
|
+
import { PanelRawItemController } from '../panel-rawitem';
|
|
4
|
+
/**
|
|
5
|
+
* 面板控件teleport占位适配器
|
|
6
|
+
*
|
|
7
|
+
* @author lxm
|
|
8
|
+
* @date 2022-09-19 22:09:03
|
|
9
|
+
* @export
|
|
10
|
+
* @class TeleportPlaceholderProvider
|
|
11
|
+
* @implements {EditorProvider}
|
|
12
|
+
*/
|
|
13
|
+
export declare class TeleportPlaceholderProvider implements IPanelItemProvider {
|
|
14
|
+
component: string;
|
|
15
|
+
createController(panelItem: IPanelCtrlPos, panel: PanelController, parent: PanelItemController | undefined): Promise<PanelRawItemController>;
|
|
16
|
+
}
|
|
17
|
+
//# sourceMappingURL=teleport-placeholder.provider.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"teleport-placeholder.provider.d.ts","sourceRoot":"","sources":["../../../src/panel-component/teleport-placeholder/teleport-placeholder.provider.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,kBAAkB,EAClB,eAAe,EACf,mBAAmB,EACpB,MAAM,wBAAwB,CAAC;AAChC,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,sBAAsB,EAAE,MAAM,kBAAkB,CAAC;AAE1D;;;;;;;;GAQG;AACH,qBAAa,2BAA4B,YAAW,kBAAkB;IACpE,SAAS,EAAE,MAAM,CAA6B;IAExC,gBAAgB,CACpB,SAAS,EAAE,aAAa,EACxB,KAAK,EAAE,eAAe,EACtB,MAAM,EAAE,mBAAmB,GAAG,SAAS,GACtC,OAAO,CAAC,sBAAsB,CAAC;CAKnC"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import '../panel-rawitem/index.mjs';
|
|
2
|
+
import { PanelRawItemController } from '../panel-rawitem/panel-rawitem.controller.mjs';
|
|
3
|
+
|
|
4
|
+
"use strict";
|
|
5
|
+
class TeleportPlaceholderProvider {
|
|
6
|
+
constructor() {
|
|
7
|
+
this.component = "IBizTeleportPlaceholder";
|
|
8
|
+
}
|
|
9
|
+
async createController(panelItem, panel, parent) {
|
|
10
|
+
const c = new PanelRawItemController(panelItem, panel, parent);
|
|
11
|
+
await c.init();
|
|
12
|
+
return c;
|
|
13
|
+
}
|
|
14
|
+
}
|
|
15
|
+
|
|
16
|
+
export { TeleportPlaceholderProvider };
|
|
@@ -20,9 +20,14 @@ export declare const IBizView: import("../../util").TypeWithInstall<import("vue"
|
|
|
20
20
|
}, {
|
|
21
21
|
c: import("@ibiz-template/runtime").ViewController<import("@ibiz/model-core").IAppView, import("@ibiz-template/runtime").IViewState, import("@ibiz-template/runtime").IViewEvent>;
|
|
22
22
|
controls: import("@ibiz/model-core").IControl[];
|
|
23
|
+
teleportControls: import("@ibiz/model-core").IControl[];
|
|
23
24
|
viewClassNames: import("vue").ComputedRef<(string | undefined)[]>;
|
|
24
25
|
onLayoutPanelCreated: (controller: import("@ibiz-template/runtime").IViewLayoutPanelController) => void;
|
|
25
26
|
renderViewMessage: (position: "TOP" | "BOTTOM" | "BODY") => JSX.Element | null;
|
|
27
|
+
getCtrlProps: (ctrl: import("@ibiz/model-core").IControl) => IParams;
|
|
28
|
+
renderControl: (ctrl: import("@ibiz/model-core").IControl) => import("vue").VNode<import("vue").RendererNode, import("vue").RendererElement, {
|
|
29
|
+
[key: string]: any;
|
|
30
|
+
}>;
|
|
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
|
context: import("vue").PropType<IContext>;
|
|
28
33
|
params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/view/common/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/view/common/index.ts"],"names":[],"mappings":"AAMA,eAAO,MAAM,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;OAGnB,CAAC"}
|
package/es/view/common/view.d.ts
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { IModal, IViewLayoutPanelController, IViewProvider, ViewController } from '@ibiz-template/runtime';
|
|
2
|
-
import { IAppView } from '@ibiz/model-core';
|
|
3
|
-
import { PropType } from 'vue';
|
|
2
|
+
import { IAppView, IControl } from '@ibiz/model-core';
|
|
3
|
+
import { PropType, VNode } from 'vue';
|
|
4
4
|
import './view.scss';
|
|
5
5
|
export declare const View: import("vue").DefineComponent<{
|
|
6
6
|
context: PropType<IContext>;
|
|
@@ -23,10 +23,13 @@ export declare const View: import("vue").DefineComponent<{
|
|
|
23
23
|
};
|
|
24
24
|
}, {
|
|
25
25
|
c: ViewController<IAppView, import("@ibiz-template/runtime").IViewState, import("@ibiz-template/runtime").IViewEvent>;
|
|
26
|
-
controls:
|
|
26
|
+
controls: IControl[];
|
|
27
|
+
teleportControls: IControl[];
|
|
27
28
|
viewClassNames: import("vue").ComputedRef<(string | undefined)[]>;
|
|
28
29
|
onLayoutPanelCreated: (controller: IViewLayoutPanelController) => void;
|
|
29
30
|
renderViewMessage: (position: 'TOP' | 'BOTTOM' | 'BODY') => JSX.Element | null;
|
|
31
|
+
getCtrlProps: (ctrl: IControl) => IParams;
|
|
32
|
+
renderControl: (ctrl: IControl) => VNode;
|
|
30
33
|
}, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, {}, string, import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{
|
|
31
34
|
context: PropType<IContext>;
|
|
32
35
|
params: {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"view.d.ts","sourceRoot":"","sources":["../../../src/view/common/view.tsx"],"names":[],"mappings":"AAAA,OAAO,EAGL,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;;;;;;;;;;;;;;;;;;;;;;;;uCAmCC,0BAA0B,KACrC,IAAI;kCAI8B,KAAK,GAAG,QAAQ,GAAG,MAAM;yBAsBlC,QAAQ,KAAG,OAAO;0BAiBjB,QAAQ,KAAG,KAAK;;;;;;;;;;;;;;;;;;;;;;MAiG/C,CAAC"}
|
package/es/view/common/view.mjs
CHANGED
|
@@ -1,11 +1,14 @@
|
|
|
1
|
-
import { defineComponent, computed, createVNode, resolveComponent, h, createTextVNode, withDirectives, resolveDirective } from 'vue';
|
|
2
|
-
import { ViewController, getControlsByView } from '@ibiz-template/runtime';
|
|
1
|
+
import { isVNode, defineComponent, computed, createVNode, resolveComponent, renderSlot, h, createTextVNode, Teleport, withDirectives, resolveDirective } from 'vue';
|
|
2
|
+
import { ViewController, getControlsByView, getCtrlTeleportTag } from '@ibiz-template/runtime';
|
|
3
3
|
import './view.css';
|
|
4
4
|
import '../../use/index.mjs';
|
|
5
5
|
import { useNamespace } from '../../use/namespace/namespace.mjs';
|
|
6
6
|
import { useViewController } from '../../use/view/use-view-controller/use-view-controller.mjs';
|
|
7
7
|
|
|
8
8
|
"use strict";
|
|
9
|
+
function _isSlot(s) {
|
|
10
|
+
return typeof s === "function" || Object.prototype.toString.call(s) === "[object Object]" && !isVNode(s);
|
|
11
|
+
}
|
|
9
12
|
const View = /* @__PURE__ */ defineComponent({
|
|
10
13
|
name: "IBizView",
|
|
11
14
|
props: {
|
|
@@ -28,10 +31,14 @@ const View = /* @__PURE__ */ defineComponent({
|
|
|
28
31
|
type: Object
|
|
29
32
|
}
|
|
30
33
|
},
|
|
31
|
-
setup(
|
|
34
|
+
setup(_props, {
|
|
35
|
+
slots
|
|
36
|
+
}) {
|
|
32
37
|
const ns = useNamespace("view");
|
|
33
38
|
const c = useViewController((...args) => new ViewController(...args));
|
|
34
|
-
const
|
|
39
|
+
const allControls = getControlsByView(c.model);
|
|
40
|
+
const teleportControls = allControls.filter((ctrl) => !!getCtrlTeleportTag(ctrl));
|
|
41
|
+
const controls = allControls.filter((ctrl) => !teleportControls.includes(ctrl));
|
|
35
42
|
const {
|
|
36
43
|
viewType,
|
|
37
44
|
sysCss,
|
|
@@ -55,59 +62,59 @@ const View = /* @__PURE__ */ defineComponent({
|
|
|
55
62
|
}
|
|
56
63
|
return null;
|
|
57
64
|
};
|
|
65
|
+
const getCtrlProps = (ctrl) => {
|
|
66
|
+
const slotKey = ctrl.name || ctrl.id;
|
|
67
|
+
return {
|
|
68
|
+
context: c.context,
|
|
69
|
+
params: c.params,
|
|
70
|
+
...c.slotProps[slotKey] || {},
|
|
71
|
+
modelData: ctrl
|
|
72
|
+
};
|
|
73
|
+
};
|
|
74
|
+
const renderControl = (ctrl) => {
|
|
75
|
+
const slotKey = ctrl.name || ctrl.id;
|
|
76
|
+
const ctrlProps = getCtrlProps(ctrl);
|
|
77
|
+
if (slots[slotKey]) {
|
|
78
|
+
return renderSlot(slots, slotKey, ctrlProps);
|
|
79
|
+
}
|
|
80
|
+
const provider = c.providers[slotKey];
|
|
81
|
+
const comp = resolveComponent((provider == null ? void 0 : provider.component) || "IBizControlShell");
|
|
82
|
+
if (provider) {
|
|
83
|
+
ctrlProps.provider = provider;
|
|
84
|
+
}
|
|
85
|
+
return h(comp, ctrlProps);
|
|
86
|
+
};
|
|
58
87
|
return {
|
|
59
88
|
c,
|
|
60
89
|
controls,
|
|
90
|
+
teleportControls,
|
|
61
91
|
viewClassNames,
|
|
62
92
|
onLayoutPanelCreated,
|
|
63
|
-
renderViewMessage
|
|
93
|
+
renderViewMessage,
|
|
94
|
+
getCtrlProps,
|
|
95
|
+
renderControl
|
|
64
96
|
};
|
|
65
97
|
},
|
|
66
98
|
render() {
|
|
67
|
-
var _a;
|
|
99
|
+
var _a, _b;
|
|
68
100
|
let layoutPanel = null;
|
|
69
101
|
if (this.c.state.isCreated) {
|
|
70
|
-
const slots = {
|
|
71
|
-
...this.$slots
|
|
72
|
-
};
|
|
73
|
-
if ((_a = this.controls) == null ? void 0 : _a.length) {
|
|
74
|
-
this.controls.forEach((ctrl) => {
|
|
75
|
-
const slotKey = ctrl.name || ctrl.id;
|
|
76
|
-
const ctrlProps = {
|
|
77
|
-
context: this.c.context,
|
|
78
|
-
params: this.c.params
|
|
79
|
-
};
|
|
80
|
-
if (this.c.slotProps[slotKey]) {
|
|
81
|
-
Object.assign(ctrlProps, this.c.slotProps[slotKey]);
|
|
82
|
-
}
|
|
83
|
-
const outCtrlSlot = slots[slotKey];
|
|
84
|
-
if (outCtrlSlot) {
|
|
85
|
-
slots[slotKey] = () => {
|
|
86
|
-
return outCtrlSlot({
|
|
87
|
-
modelData: ctrl,
|
|
88
|
-
...ctrlProps
|
|
89
|
-
});
|
|
90
|
-
};
|
|
91
|
-
return;
|
|
92
|
-
}
|
|
93
|
-
const provider = this.c.providers[slotKey];
|
|
94
|
-
if (provider) {
|
|
95
|
-
slots[slotKey] = () => {
|
|
96
|
-
const comp = resolveComponent(provider.component);
|
|
97
|
-
return h(comp, {
|
|
98
|
-
modelData: ctrl,
|
|
99
|
-
...ctrlProps,
|
|
100
|
-
provider
|
|
101
|
-
});
|
|
102
|
-
};
|
|
103
|
-
}
|
|
104
|
-
});
|
|
105
|
-
}
|
|
106
102
|
if (this.c.engines.length === 0) {
|
|
107
103
|
layoutPanel = createVNode("span", {
|
|
108
104
|
"style": "color:red;"
|
|
109
105
|
}, [createTextVNode("\u89C6\u56FE\u7C7B\u578B"), this.modelData.viewType, createTextVNode("\u6682\u672A\u652F\u6301")]);
|
|
110
106
|
} else {
|
|
107
|
+
const slots = {
|
|
108
|
+
...this.$slots
|
|
109
|
+
};
|
|
110
|
+
if ((_a = this.controls) == null ? void 0 : _a.length) {
|
|
111
|
+
this.controls.forEach((ctrl) => {
|
|
112
|
+
const slotKey = ctrl.name || ctrl.id;
|
|
113
|
+
slots[slotKey] = () => {
|
|
114
|
+
return this.renderControl(ctrl);
|
|
115
|
+
};
|
|
116
|
+
});
|
|
117
|
+
}
|
|
111
118
|
const viewLayoutPanel = this.c.model.viewLayoutPanel;
|
|
112
119
|
const provider = this.c.providers[viewLayoutPanel.name];
|
|
113
120
|
layoutPanel = h(resolveComponent(provider.component), {
|
|
@@ -120,10 +127,22 @@ const View = /* @__PURE__ */ defineComponent({
|
|
|
120
127
|
}, slots);
|
|
121
128
|
}
|
|
122
129
|
}
|
|
130
|
+
let teleportContent = null;
|
|
131
|
+
if (this.c.state.isCreated && ((_b = this.teleportControls) == null ? void 0 : _b.length)) {
|
|
132
|
+
teleportContent = this.teleportControls.map((ctrl) => {
|
|
133
|
+
let _slot;
|
|
134
|
+
return createVNode(Teleport, {
|
|
135
|
+
"to": getCtrlTeleportTag(ctrl),
|
|
136
|
+
"disabled": !this.c.state.activated
|
|
137
|
+
}, _isSlot(_slot = this.renderControl(ctrl)) ? _slot : {
|
|
138
|
+
default: () => [_slot]
|
|
139
|
+
});
|
|
140
|
+
});
|
|
141
|
+
}
|
|
123
142
|
return withDirectives(createVNode("div", {
|
|
124
143
|
"class": this.viewClassNames,
|
|
125
144
|
"id": this.c.id
|
|
126
|
-
}, [this.renderViewMessage("TOP"), layoutPanel, this.renderViewMessage("BOTTOM")]), [[resolveDirective("loading"), this.c.state.isLoading]]);
|
|
145
|
+
}, [this.renderViewMessage("TOP"), layoutPanel, this.renderViewMessage("BOTTOM"), teleportContent]), [[resolveDirective("loading"), this.c.state.isLoading]]);
|
|
127
146
|
}
|
|
128
147
|
});
|
|
129
148
|
|
package/lib/index.cjs
CHANGED
|
@@ -53,13 +53,16 @@ var panelContainerGroup_controller = require('./panel-component/panel-container-
|
|
|
53
53
|
var index$a = require('./panel-component/panel-container-group/index.cjs');
|
|
54
54
|
var index$b = require('./panel-component/panel-tab-page/index.cjs');
|
|
55
55
|
var index$c = require('./panel-component/panel-item-render/index.cjs');
|
|
56
|
+
var teleportPlaceholder_provider = require('./panel-component/teleport-placeholder/teleport-placeholder.provider.cjs');
|
|
57
|
+
var index$d = require('./panel-component/teleport-placeholder/index.cjs');
|
|
58
|
+
var index$e = require('./panel-component/panel-container-tabs/index.cjs');
|
|
56
59
|
var appRedirectView = require('./view/app-redirect-view/app-redirect-view.cjs');
|
|
57
|
-
var index$
|
|
60
|
+
var index$f = require('./view/common/index.cjs');
|
|
58
61
|
var todoRedirect = require('./view/todo-redirect/todo-redirect.cjs');
|
|
59
|
-
var index$
|
|
60
|
-
var index$
|
|
61
|
-
var index$
|
|
62
|
-
var index$
|
|
62
|
+
var index$g = require('./view/portal-view/index.cjs');
|
|
63
|
+
var index$h = require('./view/de-redirect-view/index.cjs');
|
|
64
|
+
var index$i = require('./control/panel/view-layout-panel/index.cjs');
|
|
65
|
+
var index$j = require('./control/panel/panel/index.cjs');
|
|
63
66
|
var pluginFactory = require('./plugin/plugin-factory/plugin-factory.cjs');
|
|
64
67
|
var clickOutside = require('./use/click-outside/click-outside.cjs');
|
|
65
68
|
var useControlController = require('./use/control/use-control-controller/use-control-controller.cjs');
|
|
@@ -67,7 +70,7 @@ var event = require('./use/event/event.cjs');
|
|
|
67
70
|
var focusBlur = require('./use/focus-blur/focus-blur.cjs');
|
|
68
71
|
var namespace = require('./use/namespace/namespace.cjs');
|
|
69
72
|
var route = require('./use/route/route.cjs');
|
|
70
|
-
var index$
|
|
73
|
+
var index$k = require('./use/util/index.cjs');
|
|
71
74
|
var useViewController = require('./use/view/use-view-controller/use-view-controller.cjs');
|
|
72
75
|
var vue = require('./use/vue/vue.cjs');
|
|
73
76
|
var overlayContainer = require('./util/overlay-container/overlay-container.cjs');
|
|
@@ -81,7 +84,7 @@ var render = require('./util/render/render.cjs');
|
|
|
81
84
|
var overlayViewUtil = require('./util/overlay-view-util/overlay-view-util.cjs');
|
|
82
85
|
var appStore = require('./util/store/app-store/app-store.cjs');
|
|
83
86
|
var uiStore = require('./util/store/ui-store/ui-store.cjs');
|
|
84
|
-
var index$
|
|
87
|
+
var index$l = require('./util/store/index.cjs');
|
|
85
88
|
var common = require('./props/common.cjs');
|
|
86
89
|
var textBox = require('./props/editor/text-box.cjs');
|
|
87
90
|
var span = require('./props/editor/span.cjs');
|
|
@@ -154,13 +157,16 @@ exports.PanelContainerGroupController = panelContainerGroup_controller.PanelCont
|
|
|
154
157
|
exports.IBizPanelContainerGroup = index$a.IBizPanelContainerGroup;
|
|
155
158
|
exports.IBizPanelTabPage = index$b.IBizPanelTabPage;
|
|
156
159
|
exports.IBizPanelItemRender = index$c.IBizPanelItemRender;
|
|
160
|
+
exports.TeleportPlaceholderProvider = teleportPlaceholder_provider.TeleportPlaceholderProvider;
|
|
161
|
+
exports.IBizTeleportPlaceholder = index$d.IBizTeleportPlaceholder;
|
|
162
|
+
exports.IBizPanelContainerTabs = index$e.IBizPanelContainerTabs;
|
|
157
163
|
exports.AppRedirectView = appRedirectView.AppRedirectView;
|
|
158
|
-
exports.IBizView = index$
|
|
164
|
+
exports.IBizView = index$f.IBizView;
|
|
159
165
|
exports.TodoRedirect = todoRedirect.TodoRedirect;
|
|
160
|
-
exports.IBizPortalView = index$
|
|
161
|
-
exports.IBizDeRedirectView = index$
|
|
162
|
-
exports.IBizViewLayoutPanelControl = index$
|
|
163
|
-
exports.IBizPanelControl = index$
|
|
166
|
+
exports.IBizPortalView = index$g.IBizPortalView;
|
|
167
|
+
exports.IBizDeRedirectView = index$h.IBizDeRedirectView;
|
|
168
|
+
exports.IBizViewLayoutPanelControl = index$i.IBizViewLayoutPanelControl;
|
|
169
|
+
exports.IBizPanelControl = index$j.IBizPanelControl;
|
|
164
170
|
exports.PluginFactory = pluginFactory.PluginFactory;
|
|
165
171
|
exports.useClickOutside = clickOutside.useClickOutside;
|
|
166
172
|
exports.useControlController = useControlController.useControlController;
|
|
@@ -169,8 +175,8 @@ exports.useFocusAndBlur = focusBlur.useFocusAndBlur;
|
|
|
169
175
|
exports.useNamespace = namespace.useNamespace;
|
|
170
176
|
exports.useRouteKey = route.useRouteKey;
|
|
171
177
|
exports.useRouterQuery = route.useRouterQuery;
|
|
172
|
-
exports.useCtx = index$
|
|
173
|
-
exports.useMobCtx = index$
|
|
178
|
+
exports.useCtx = index$k.useCtx;
|
|
179
|
+
exports.useMobCtx = index$k.useMobCtx;
|
|
174
180
|
exports.useViewController = useViewController.useViewController;
|
|
175
181
|
exports.EmptyVNode = vue.EmptyVNode;
|
|
176
182
|
exports.getOrigin = vue.getOrigin;
|
|
@@ -205,7 +211,7 @@ exports.openViewModal = overlayViewUtil.openViewModal;
|
|
|
205
211
|
exports.openViewPopover = overlayViewUtil.openViewPopover;
|
|
206
212
|
exports.useAppStore = appStore.useAppStore;
|
|
207
213
|
exports.useUIStore = uiStore.useUIStore;
|
|
208
|
-
exports.piniaInstance = index$
|
|
214
|
+
exports.piniaInstance = index$l.piniaInstance;
|
|
209
215
|
exports.RequiredProp = common.RequiredProp;
|
|
210
216
|
exports.getGridInputIpProps = textBox.getGridInputIpProps;
|
|
211
217
|
exports.getGridInputNumberProps = textBox.getGridInputNumberProps;
|
|
@@ -13,6 +13,8 @@ var index$9 = require('./panel-container-image/index.cjs');
|
|
|
13
13
|
var index$a = require('./panel-container-group/index.cjs');
|
|
14
14
|
var index$b = require('./panel-tab-page/index.cjs');
|
|
15
15
|
var index$c = require('./panel-item-render/index.cjs');
|
|
16
|
+
var index$d = require('./teleport-placeholder/index.cjs');
|
|
17
|
+
var index$e = require('./panel-container-tabs/index.cjs');
|
|
16
18
|
var panelContainer_state = require('./panel-container/panel-container.state.cjs');
|
|
17
19
|
var panelContainer_controller = require('./panel-container/panel-container.controller.cjs');
|
|
18
20
|
var panelCtrlPos_controller = require('./panel-ctrl-pos/panel-ctrl-pos.controller.cjs');
|
|
@@ -34,6 +36,7 @@ var panelContainerImage_state = require('./panel-container-image/panel-container
|
|
|
34
36
|
var panelContainerImage_controller = require('./panel-container-image/panel-container-image.controller.cjs');
|
|
35
37
|
var panelContainerGroup_state = require('./panel-container-group/panel-container-group.state.cjs');
|
|
36
38
|
var panelContainerGroup_controller = require('./panel-container-group/panel-container-group.controller.cjs');
|
|
39
|
+
var teleportPlaceholder_provider = require('./teleport-placeholder/teleport-placeholder.provider.cjs');
|
|
37
40
|
|
|
38
41
|
"use strict";
|
|
39
42
|
|
|
@@ -50,6 +53,8 @@ exports.IBizPanelContainerImage = index$9.IBizPanelContainerImage;
|
|
|
50
53
|
exports.IBizPanelContainerGroup = index$a.IBizPanelContainerGroup;
|
|
51
54
|
exports.IBizPanelTabPage = index$b.IBizPanelTabPage;
|
|
52
55
|
exports.IBizPanelItemRender = index$c.IBizPanelItemRender;
|
|
56
|
+
exports.IBizTeleportPlaceholder = index$d.IBizTeleportPlaceholder;
|
|
57
|
+
exports.IBizPanelContainerTabs = index$e.IBizPanelContainerTabs;
|
|
53
58
|
exports.PanelContainerState = panelContainer_state.PanelContainerState;
|
|
54
59
|
exports.PanelContainerController = panelContainer_controller.PanelContainerController;
|
|
55
60
|
exports.PanelCtrlPosController = panelCtrlPos_controller.PanelCtrlPosController;
|
|
@@ -71,3 +76,4 @@ exports.PanelContainerImageState = panelContainerImage_state.PanelContainerImage
|
|
|
71
76
|
exports.PanelContainerImageController = panelContainerImage_controller.PanelContainerImageController;
|
|
72
77
|
exports.PanelContainerGroupState = panelContainerGroup_state.PanelContainerGroupState;
|
|
73
78
|
exports.PanelContainerGroupController = panelContainerGroup_controller.PanelContainerGroupController;
|
|
79
|
+
exports.TeleportPlaceholderProvider = teleportPlaceholder_provider.TeleportPlaceholderProvider;
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, '__esModule', { value: true });
|
|
4
|
+
|
|
5
|
+
var runtime = require('@ibiz-template/runtime');
|
|
6
|
+
require('../../util/index.cjs');
|
|
7
|
+
var panelContainerTabs = require('./panel-container-tabs.cjs');
|
|
8
|
+
var panelContainerTabs_provider = require('./panel-container-tabs.provider.cjs');
|
|
9
|
+
var install = require('../../util/install.cjs');
|
|
10
|
+
|
|
11
|
+
"use strict";
|
|
12
|
+
const IBizPanelContainerTabs = install.withInstall(
|
|
13
|
+
panelContainerTabs.PanelContainerTabs,
|
|
14
|
+
function(v) {
|
|
15
|
+
v.component(panelContainerTabs.PanelContainerTabs.name, panelContainerTabs.PanelContainerTabs);
|
|
16
|
+
runtime.registerPanelItemProvider(
|
|
17
|
+
"CONTAINER_TABS",
|
|
18
|
+
() => new panelContainerTabs_provider.PanelContainerTabsProvider()
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
);
|
|
22
|
+
|
|
23
|
+
exports.IBizPanelContainerTabs = IBizPanelContainerTabs;
|
|
24
|
+
exports.default = IBizPanelContainerTabs;
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var vue = require('vue');
|
|
4
|
+
require('../../use/index.cjs');
|
|
5
|
+
require('./panel-container-tabs.css');
|
|
6
|
+
var panelContainer_controller = require('../panel-container/panel-container.controller.cjs');
|
|
7
|
+
var namespace = require('../../use/namespace/namespace.cjs');
|
|
8
|
+
|
|
9
|
+
"use strict";
|
|
10
|
+
const PanelContainerTabs = /* @__PURE__ */ vue.defineComponent({
|
|
11
|
+
name: "IBizPanelContainerTabs",
|
|
12
|
+
props: {
|
|
13
|
+
modelData: {
|
|
14
|
+
type: Object,
|
|
15
|
+
required: true
|
|
16
|
+
},
|
|
17
|
+
controller: {
|
|
18
|
+
type: panelContainer_controller.PanelContainerController,
|
|
19
|
+
required: true
|
|
20
|
+
}
|
|
21
|
+
},
|
|
22
|
+
setup() {
|
|
23
|
+
const ns = namespace.useNamespace("panel-container-tabs");
|
|
24
|
+
return {
|
|
25
|
+
ns
|
|
26
|
+
};
|
|
27
|
+
},
|
|
28
|
+
render() {
|
|
29
|
+
return vue.h(vue.resolveComponent("IBizPanelContainer"), {
|
|
30
|
+
...this.$props,
|
|
31
|
+
...this.$attrs,
|
|
32
|
+
class: this.ns.b()
|
|
33
|
+
}, this.$slots);
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
|
|
37
|
+
exports.PanelContainerTabs = PanelContainerTabs;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
.ibiz-panel-container-tabs{position:relative}.ibiz-panel-container-tabs .el-tabs{--el-tabs-header-height:52px}.ibiz-panel-container-tabs .el-tabs__nav-wrap::after{display:none}.ibiz-panel-container-tabs::after{position:absolute;bottom:0;left:0;z-index:var(--el-index-normal);width:100%;height:2px;content:"";background-color:var(--el-border-color-light)}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
'use strict';
|
|
2
|
+
|
|
3
|
+
var panelContainer_controller = require('../panel-container/panel-container.controller.cjs');
|
|
4
|
+
|
|
5
|
+
"use strict";
|
|
6
|
+
class PanelContainerTabsProvider {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.component = "IBizPanelContainerTabs";
|
|
9
|
+
}
|
|
10
|
+
async createController(panelItem, panel, parent) {
|
|
11
|
+
const c = new panelContainer_controller.PanelContainerController(panelItem, panel, parent);
|
|
12
|
+
await c.init();
|
|
13
|
+
return c;
|
|
14
|
+
}
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
exports.PanelContainerTabsProvider = PanelContainerTabsProvider;
|