layplux 0.0.1
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/cjs/components/center-view/index.cjs +41 -0
- package/dist/cjs/components/corner-glow/index.cjs +31 -0
- package/dist/cjs/components/dropdown/index.cjs +162 -0
- package/dist/cjs/components/icon/index.cjs +59 -0
- package/dist/cjs/components/index.cjs +25 -0
- package/dist/cjs/components/panel-view/index.cjs +166 -0
- package/dist/cjs/components/popup/index.cjs +280 -0
- package/dist/cjs/components/title/index.cjs +76 -0
- package/dist/cjs/components/tooltip/index.cjs +68 -0
- package/dist/cjs/components/widget/index.cjs +104 -0
- package/dist/cjs/index.cjs +40 -0
- package/dist/cjs/layout/glass-overlay.cjs +31 -0
- package/dist/cjs/layout/layered-manager.cjs +35 -0
- package/dist/cjs/layout/layplux.cjs +41 -0
- package/dist/cjs/layout/root-pane.cjs +46 -0
- package/dist/cjs/layout/skeleton/bottom-area.cjs +64 -0
- package/dist/cjs/layout/skeleton/bottom-left-area.cjs +42 -0
- package/dist/cjs/layout/skeleton/bottom-right-area.cjs +38 -0
- package/dist/cjs/layout/skeleton/center-area.cjs +467 -0
- package/dist/cjs/layout/skeleton/index.cjs +24 -0
- package/dist/cjs/layout/skeleton/left-bottom-area.cjs +42 -0
- package/dist/cjs/layout/skeleton/left-top-area.cjs +42 -0
- package/dist/cjs/layout/skeleton/right-bottom-area.cjs +38 -0
- package/dist/cjs/layout/skeleton/right-top-area.cjs +38 -0
- package/dist/cjs/layout/skeleton/skeleton.cjs +66 -0
- package/dist/cjs/layout/skeleton/top-area.cjs +64 -0
- package/dist/cjs/locales/en-US.cjs +34 -0
- package/dist/cjs/locales/index.cjs +39 -0
- package/dist/cjs/locales/zh-CN.cjs +34 -0
- package/dist/cjs/managers/area.cjs +32 -0
- package/dist/cjs/managers/index.cjs +20 -0
- package/dist/cjs/managers/pane.cjs +34 -0
- package/dist/cjs/managers/skeleton.cjs +208 -0
- package/dist/cjs/managers/theme.cjs +37 -0
- package/dist/cjs/managers/widget-container.cjs +96 -0
- package/dist/cjs/managers/widget.cjs +103 -0
- package/dist/cjs/types/config.cjs +16 -0
- package/dist/cjs/types/index.cjs +18 -0
- package/dist/cjs/types/locale.cjs +16 -0
- package/dist/cjs/utils/event-bus.cjs +154 -0
- package/dist/cjs/utils/focus-tracker.cjs +154 -0
- package/dist/cjs/utils/index.cjs +31 -0
- package/dist/cjs/utils/unique-id.cjs +27 -0
- package/dist/cjs/utils/vue.cjs +37 -0
- package/dist/esm/components/center-view/index.mjs +21 -0
- package/dist/esm/components/corner-glow/index.mjs +11 -0
- package/dist/esm/components/dropdown/index.mjs +146 -0
- package/dist/esm/components/icon/index.mjs +39 -0
- package/dist/esm/components/index.mjs +8 -0
- package/dist/esm/components/panel-view/index.mjs +152 -0
- package/dist/esm/components/popup/index.mjs +268 -0
- package/dist/esm/components/title/index.mjs +56 -0
- package/dist/esm/components/tooltip/index.mjs +48 -0
- package/dist/esm/components/widget/index.mjs +84 -0
- package/dist/esm/index.mjs +10 -0
- package/dist/esm/layout/glass-overlay.mjs +11 -0
- package/dist/esm/layout/layered-manager.mjs +15 -0
- package/dist/esm/layout/layplux.mjs +21 -0
- package/dist/esm/layout/root-pane.mjs +26 -0
- package/dist/esm/layout/skeleton/bottom-area.mjs +44 -0
- package/dist/esm/layout/skeleton/bottom-left-area.mjs +22 -0
- package/dist/esm/layout/skeleton/bottom-right-area.mjs +18 -0
- package/dist/esm/layout/skeleton/center-area.mjs +454 -0
- package/dist/esm/layout/skeleton/index.mjs +4 -0
- package/dist/esm/layout/skeleton/left-bottom-area.mjs +22 -0
- package/dist/esm/layout/skeleton/left-top-area.mjs +22 -0
- package/dist/esm/layout/skeleton/right-bottom-area.mjs +18 -0
- package/dist/esm/layout/skeleton/right-top-area.mjs +18 -0
- package/dist/esm/layout/skeleton/skeleton.mjs +46 -0
- package/dist/esm/layout/skeleton/top-area.mjs +44 -0
- package/dist/esm/locales/en-US.mjs +14 -0
- package/dist/esm/locales/index.mjs +19 -0
- package/dist/esm/locales/zh-CN.mjs +14 -0
- package/dist/esm/managers/area.mjs +12 -0
- package/dist/esm/managers/index.mjs +3 -0
- package/dist/esm/managers/pane.mjs +14 -0
- package/dist/esm/managers/skeleton.mjs +192 -0
- package/dist/esm/managers/theme.mjs +17 -0
- package/dist/esm/managers/widget-container.mjs +76 -0
- package/dist/esm/managers/widget.mjs +83 -0
- package/dist/esm/types/config.mjs +0 -0
- package/dist/esm/types/index.mjs +1 -0
- package/dist/esm/types/locale.mjs +0 -0
- package/dist/esm/utils/event-bus.mjs +124 -0
- package/dist/esm/utils/focus-tracker.mjs +135 -0
- package/dist/esm/utils/index.mjs +10 -0
- package/dist/esm/utils/unique-id.mjs +7 -0
- package/dist/esm/utils/vue.mjs +17 -0
- package/dist/style/base/_tokens-dark.scss +51 -0
- package/dist/style/base/_tokens.scss +56 -0
- package/dist/style/components/_bottom-area.scss +30 -0
- package/dist/style/components/_bottom-left-area.scss +8 -0
- package/dist/style/components/_bottom-right-area.scss +8 -0
- package/dist/style/components/_center-area.scss +162 -0
- package/dist/style/components/_corner-glow.scss +17 -0
- package/dist/style/components/_dropdown.scss +91 -0
- package/dist/style/components/_glass-pane.scss +6 -0
- package/dist/style/components/_layered-manager.scss +6 -0
- package/dist/style/components/_left-bottom-area.scss +8 -0
- package/dist/style/components/_left-top-area.scss +9 -0
- package/dist/style/components/_pane-view.scss +79 -0
- package/dist/style/components/_popup.scss +19 -0
- package/dist/style/components/_right-bottom-area.scss +8 -0
- package/dist/style/components/_right-top-area.scss +8 -0
- package/dist/style/components/_root-pane.scss +17 -0
- package/dist/style/components/_skeleton.scss +38 -0
- package/dist/style/components/_title-view.scss +176 -0
- package/dist/style/components/_tooltip.scss +65 -0
- package/dist/style/components/_top-area.scss +25 -0
- package/dist/style/index.css +768 -0
- package/dist/style/layplux.scss +21 -0
- package/dist/types/components/center-view/index.d.ts +16 -0
- package/dist/types/components/center-view/index.d.ts.map +1 -0
- package/dist/types/components/corner-glow/index.d.ts +2 -0
- package/dist/types/components/corner-glow/index.d.ts.map +1 -0
- package/dist/types/components/dropdown/index.d.ts +116 -0
- package/dist/types/components/dropdown/index.d.ts.map +1 -0
- package/dist/types/components/icon/index.d.ts +22 -0
- package/dist/types/components/icon/index.d.ts.map +1 -0
- package/dist/types/components/index.d.ts +9 -0
- package/dist/types/components/index.d.ts.map +1 -0
- package/dist/types/components/panel-view/index.d.ts +22 -0
- package/dist/types/components/panel-view/index.d.ts.map +1 -0
- package/dist/types/components/popup/index.d.ts +99 -0
- package/dist/types/components/popup/index.d.ts.map +1 -0
- package/dist/types/components/title/index.d.ts +57 -0
- package/dist/types/components/title/index.d.ts.map +1 -0
- package/dist/types/components/tooltip/index.d.ts +69 -0
- package/dist/types/components/tooltip/index.d.ts.map +1 -0
- package/dist/types/components/widget/index.d.ts +15 -0
- package/dist/types/components/widget/index.d.ts.map +1 -0
- package/dist/types/index.d.ts +10 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/layout/glass-overlay.d.ts +2 -0
- package/dist/types/layout/glass-overlay.d.ts.map +1 -0
- package/dist/types/layout/layered-manager.d.ts +8 -0
- package/dist/types/layout/layered-manager.d.ts.map +1 -0
- package/dist/types/layout/layplux.d.ts +25 -0
- package/dist/types/layout/layplux.d.ts.map +1 -0
- package/dist/types/layout/root-pane.d.ts +8 -0
- package/dist/types/layout/root-pane.d.ts.map +1 -0
- package/dist/types/layout/skeleton/bottom-area.d.ts +9 -0
- package/dist/types/layout/skeleton/bottom-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/bottom-left-area.d.ts +9 -0
- package/dist/types/layout/skeleton/bottom-left-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/bottom-right-area.d.ts +9 -0
- package/dist/types/layout/skeleton/bottom-right-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/center-area.d.ts +11 -0
- package/dist/types/layout/skeleton/center-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/index.d.ts +2 -0
- package/dist/types/layout/skeleton/index.d.ts.map +1 -0
- package/dist/types/layout/skeleton/left-bottom-area.d.ts +9 -0
- package/dist/types/layout/skeleton/left-bottom-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/left-top-area.d.ts +9 -0
- package/dist/types/layout/skeleton/left-top-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/right-bottom-area.d.ts +9 -0
- package/dist/types/layout/skeleton/right-bottom-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/right-top-area.d.ts +9 -0
- package/dist/types/layout/skeleton/right-top-area.d.ts.map +1 -0
- package/dist/types/layout/skeleton/skeleton.d.ts +8 -0
- package/dist/types/layout/skeleton/skeleton.d.ts.map +1 -0
- package/dist/types/layout/skeleton/top-area.d.ts +9 -0
- package/dist/types/layout/skeleton/top-area.d.ts.map +1 -0
- package/dist/types/locales/en-US.d.ts +3 -0
- package/dist/types/locales/en-US.d.ts.map +1 -0
- package/dist/types/locales/index.d.ts +7 -0
- package/dist/types/locales/index.d.ts.map +1 -0
- package/dist/types/locales/zh-CN.d.ts +3 -0
- package/dist/types/locales/zh-CN.d.ts.map +1 -0
- package/dist/types/managers/area.d.ts +10 -0
- package/dist/types/managers/area.d.ts.map +1 -0
- package/dist/types/managers/index.d.ts +5 -0
- package/dist/types/managers/index.d.ts.map +1 -0
- package/dist/types/managers/pane.d.ts +8 -0
- package/dist/types/managers/pane.d.ts.map +1 -0
- package/dist/types/managers/skeleton.d.ts +38 -0
- package/dist/types/managers/skeleton.d.ts.map +1 -0
- package/dist/types/managers/theme.d.ts +2 -0
- package/dist/types/managers/theme.d.ts.map +1 -0
- package/dist/types/managers/widget-container.d.ts +21 -0
- package/dist/types/managers/widget-container.d.ts.map +1 -0
- package/dist/types/managers/widget.d.ts +26 -0
- package/dist/types/managers/widget.d.ts.map +1 -0
- package/dist/types/types/config.d.ts +54 -0
- package/dist/types/types/config.d.ts.map +1 -0
- package/dist/types/types/index.d.ts +2 -0
- package/dist/types/types/index.d.ts.map +1 -0
- package/dist/types/types/locale.d.ts +12 -0
- package/dist/types/types/locale.d.ts.map +1 -0
- package/dist/types/utils/event-bus.d.ts +18 -0
- package/dist/types/utils/event-bus.d.ts.map +1 -0
- package/dist/types/utils/focus-tracker.d.ts +37 -0
- package/dist/types/utils/focus-tracker.d.ts.map +1 -0
- package/dist/types/utils/index.d.ts +6 -0
- package/dist/types/utils/index.d.ts.map +1 -0
- package/dist/types/utils/unique-id.d.ts +2 -0
- package/dist/types/utils/unique-id.d.ts.map +1 -0
- package/dist/types/utils/vue.d.ts +5 -0
- package/dist/types/utils/vue.d.ts.map +1 -0
- package/dist/umd/index.js +4000 -0
- package/package.json +46 -0
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var center_view_exports = {};
|
|
20
|
+
__export(center_view_exports, {
|
|
21
|
+
CenterView: () => CenterView
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(center_view_exports);
|
|
24
|
+
var import_jsx_runtime = require("vue/jsx-runtime");
|
|
25
|
+
var import_vue = require("vue");
|
|
26
|
+
const CenterView = (0, import_vue.defineComponent)({
|
|
27
|
+
name: "CenterView",
|
|
28
|
+
props: {
|
|
29
|
+
widget: Object,
|
|
30
|
+
anchor: {
|
|
31
|
+
type: String,
|
|
32
|
+
required: true
|
|
33
|
+
}
|
|
34
|
+
},
|
|
35
|
+
setup(props) {
|
|
36
|
+
return () => {
|
|
37
|
+
if (!props.widget) return null;
|
|
38
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_vue.Teleport, { defer: true, to: props.anchor, children: props.widget.renderContent() });
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
});
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var corner_glow_exports = {};
|
|
20
|
+
__export(corner_glow_exports, {
|
|
21
|
+
CornerGlow: () => CornerGlow
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(corner_glow_exports);
|
|
24
|
+
var import_jsx_runtime = require("vue/jsx-runtime");
|
|
25
|
+
var import_vue = require("vue");
|
|
26
|
+
const CornerGlow = (0, import_vue.defineComponent)({
|
|
27
|
+
name: "CornerGlow",
|
|
28
|
+
setup() {
|
|
29
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "corner-glow" });
|
|
30
|
+
}
|
|
31
|
+
});
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var dropdown_exports = {};
|
|
20
|
+
__export(dropdown_exports, {
|
|
21
|
+
Dropdown: () => Dropdown,
|
|
22
|
+
DropdownDivider: () => DropdownDivider,
|
|
23
|
+
DropdownItem: () => DropdownItem,
|
|
24
|
+
DropdownMenu: () => DropdownMenu,
|
|
25
|
+
DropdownSubmenu: () => DropdownSubmenu
|
|
26
|
+
});
|
|
27
|
+
module.exports = __toCommonJS(dropdown_exports);
|
|
28
|
+
var import_jsx_runtime = require("vue/jsx-runtime");
|
|
29
|
+
var import_vue = require("vue");
|
|
30
|
+
var import_popup = require("../popup");
|
|
31
|
+
var import_icon = require("../icon");
|
|
32
|
+
const DROPDOWN_CLOSE = Symbol("dropdown-close");
|
|
33
|
+
const DROPDOWN_ON_CLICK = Symbol("dropdown-on-click");
|
|
34
|
+
const Dropdown = (0, import_vue.defineComponent)({
|
|
35
|
+
name: "LaypluxDropdown",
|
|
36
|
+
props: {
|
|
37
|
+
visible: Boolean,
|
|
38
|
+
trigger: { type: String, default: "click" },
|
|
39
|
+
placement: { type: String, default: "bottom-start" },
|
|
40
|
+
disabled: { type: Boolean, default: false },
|
|
41
|
+
destroyOnClose: { type: Boolean, default: true },
|
|
42
|
+
onClick: Function,
|
|
43
|
+
getContainer: { type: Function }
|
|
44
|
+
},
|
|
45
|
+
emits: ["update:visible"],
|
|
46
|
+
setup(props, { emit, slots }) {
|
|
47
|
+
const closeDropdown = () => {
|
|
48
|
+
emit("update:visible", false);
|
|
49
|
+
};
|
|
50
|
+
(0, import_vue.provide)(DROPDOWN_CLOSE, closeDropdown);
|
|
51
|
+
(0, import_vue.provide)(DROPDOWN_ON_CLICK, props.onClick);
|
|
52
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
53
|
+
import_popup.Popup,
|
|
54
|
+
{
|
|
55
|
+
visible: props.visible,
|
|
56
|
+
trigger: props.trigger,
|
|
57
|
+
placement: props.placement,
|
|
58
|
+
disabled: props.disabled,
|
|
59
|
+
destroyOnClose: props.destroyOnClose,
|
|
60
|
+
getContainer: props.getContainer,
|
|
61
|
+
"onUpdate:visible": (v) => emit("update:visible", v),
|
|
62
|
+
children: {
|
|
63
|
+
default: () => slots.default?.(),
|
|
64
|
+
content: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown", children: slots.overlay?.() })
|
|
65
|
+
}
|
|
66
|
+
}
|
|
67
|
+
);
|
|
68
|
+
}
|
|
69
|
+
});
|
|
70
|
+
const DropdownMenu = (0, import_vue.defineComponent)({
|
|
71
|
+
name: "LaypluxDropdownMenu",
|
|
72
|
+
setup(_props, { slots }) {
|
|
73
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown-menu", children: slots.default?.() });
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
const DropdownItem = (0, import_vue.defineComponent)({
|
|
77
|
+
name: "LaypluxDropdownItem",
|
|
78
|
+
props: {
|
|
79
|
+
eventKey: { type: String, required: true },
|
|
80
|
+
disabled: { type: Boolean, default: false },
|
|
81
|
+
danger: { type: Boolean, default: false }
|
|
82
|
+
},
|
|
83
|
+
setup(props, { slots }) {
|
|
84
|
+
const closeDropdown = (0, import_vue.inject)(DROPDOWN_CLOSE);
|
|
85
|
+
const onItemClick = (0, import_vue.inject)(DROPDOWN_ON_CLICK);
|
|
86
|
+
const handleClick = () => {
|
|
87
|
+
if (props.disabled) return;
|
|
88
|
+
onItemClick?.(props.eventKey);
|
|
89
|
+
closeDropdown?.();
|
|
90
|
+
};
|
|
91
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
92
|
+
"div",
|
|
93
|
+
{
|
|
94
|
+
class: [
|
|
95
|
+
"layplux-dropdown-menu__item",
|
|
96
|
+
props.disabled && "layplux-dropdown-menu__item--disabled",
|
|
97
|
+
props.danger && "layplux-dropdown-menu__item--danger"
|
|
98
|
+
],
|
|
99
|
+
onClick: handleClick,
|
|
100
|
+
children: slots.default?.()
|
|
101
|
+
}
|
|
102
|
+
);
|
|
103
|
+
}
|
|
104
|
+
});
|
|
105
|
+
const DropdownDivider = (0, import_vue.defineComponent)({
|
|
106
|
+
name: "LaypluxDropdownDivider",
|
|
107
|
+
setup() {
|
|
108
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown-menu__divider" });
|
|
109
|
+
}
|
|
110
|
+
});
|
|
111
|
+
const DropdownSubmenu = (0, import_vue.defineComponent)({
|
|
112
|
+
name: "LaypluxDropdownSubmenu",
|
|
113
|
+
props: {
|
|
114
|
+
title: { type: String },
|
|
115
|
+
icon: Object,
|
|
116
|
+
disabled: { type: Boolean, default: false },
|
|
117
|
+
getContainer: { type: Function }
|
|
118
|
+
},
|
|
119
|
+
setup(props, { slots }) {
|
|
120
|
+
const closeParent = (0, import_vue.inject)(DROPDOWN_CLOSE);
|
|
121
|
+
const onParentClick = (0, import_vue.inject)(DROPDOWN_ON_CLICK);
|
|
122
|
+
if (closeParent) {
|
|
123
|
+
(0, import_vue.provide)(DROPDOWN_CLOSE, closeParent);
|
|
124
|
+
}
|
|
125
|
+
const handleClick = (key) => {
|
|
126
|
+
onParentClick?.(key);
|
|
127
|
+
closeParent?.();
|
|
128
|
+
};
|
|
129
|
+
(0, import_vue.provide)(DROPDOWN_ON_CLICK, handleClick);
|
|
130
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
131
|
+
import_popup.Popup,
|
|
132
|
+
{
|
|
133
|
+
trigger: "hover",
|
|
134
|
+
placement: "right-start",
|
|
135
|
+
offset: { x: 4, y: 0 },
|
|
136
|
+
mouseEnterDelay: 150,
|
|
137
|
+
mouseLeaveDelay: 100,
|
|
138
|
+
destroyOnClose: true,
|
|
139
|
+
disabled: props.disabled,
|
|
140
|
+
getContainer: props.getContainer,
|
|
141
|
+
children: {
|
|
142
|
+
default: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
|
|
143
|
+
"div",
|
|
144
|
+
{
|
|
145
|
+
class: [
|
|
146
|
+
"layplux-dropdown-menu__item",
|
|
147
|
+
"layplux-dropdown-menu__item--submenu",
|
|
148
|
+
props.disabled && "layplux-dropdown-menu__item--disabled"
|
|
149
|
+
],
|
|
150
|
+
children: [
|
|
151
|
+
props.icon,
|
|
152
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { children: props.title }),
|
|
153
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.ChevronRightIcon, { size: 12, class: "layplux-dropdown-menu__submenu-arrow" })
|
|
154
|
+
]
|
|
155
|
+
}
|
|
156
|
+
),
|
|
157
|
+
content: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { class: "layplux-dropdown", children: slots.default?.() })
|
|
158
|
+
}
|
|
159
|
+
}
|
|
160
|
+
);
|
|
161
|
+
}
|
|
162
|
+
});
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var icon_exports = {};
|
|
20
|
+
__export(icon_exports, {
|
|
21
|
+
ChevronRightIcon: () => ChevronRightIcon,
|
|
22
|
+
MinimizeIcon: () => MinimizeIcon,
|
|
23
|
+
MoreIcon: () => MoreIcon
|
|
24
|
+
});
|
|
25
|
+
module.exports = __toCommonJS(icon_exports);
|
|
26
|
+
var import_jsx_runtime = require("vue/jsx-runtime");
|
|
27
|
+
var import_vue = require("vue");
|
|
28
|
+
const iconProps = {
|
|
29
|
+
size: { type: [Number, String], default: 16 }
|
|
30
|
+
};
|
|
31
|
+
function createIcon(d, viewBox = "0 0 16 16") {
|
|
32
|
+
return (0, import_vue.defineComponent)({
|
|
33
|
+
name: "LaypluxIcon",
|
|
34
|
+
props: iconProps,
|
|
35
|
+
setup(props) {
|
|
36
|
+
return () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
37
|
+
"svg",
|
|
38
|
+
{
|
|
39
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
40
|
+
viewBox,
|
|
41
|
+
width: props.size,
|
|
42
|
+
height: props.size,
|
|
43
|
+
fill: "currentColor",
|
|
44
|
+
style: { flexShrink: 0 },
|
|
45
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("path", { d })
|
|
46
|
+
}
|
|
47
|
+
);
|
|
48
|
+
}
|
|
49
|
+
});
|
|
50
|
+
}
|
|
51
|
+
const MoreIcon = createIcon(
|
|
52
|
+
"M16 12a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2m-6 0a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2m-6 0a2 2 0 0 1 2-2a2 2 0 0 1 2 2a2 2 0 0 1-2 2a2 2 0 0 1-2-2",
|
|
53
|
+
"0 0 24 24"
|
|
54
|
+
);
|
|
55
|
+
const MinimizeIcon = createIcon("M19 13H5v-2h14z", "0 0 24 24");
|
|
56
|
+
const ChevronRightIcon = createIcon(
|
|
57
|
+
"M8.59 16.58L13.17 12L8.59 7.41L10 6l6 6l-6 6z",
|
|
58
|
+
"0 0 24 24"
|
|
59
|
+
);
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __copyProps = (to, from, except, desc) => {
|
|
7
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
8
|
+
for (let key of __getOwnPropNames(from))
|
|
9
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
10
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
11
|
+
}
|
|
12
|
+
return to;
|
|
13
|
+
};
|
|
14
|
+
var __reExport = (target, mod, secondTarget) => (__copyProps(target, mod, "default"), secondTarget && __copyProps(secondTarget, mod, "default"));
|
|
15
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
16
|
+
var components_exports = {};
|
|
17
|
+
module.exports = __toCommonJS(components_exports);
|
|
18
|
+
__reExport(components_exports, require("./corner-glow"), module.exports);
|
|
19
|
+
__reExport(components_exports, require("./panel-view"), module.exports);
|
|
20
|
+
__reExport(components_exports, require("./widget"), module.exports);
|
|
21
|
+
__reExport(components_exports, require("./title"), module.exports);
|
|
22
|
+
__reExport(components_exports, require("./panel-view"), module.exports);
|
|
23
|
+
__reExport(components_exports, require("./dropdown"), module.exports);
|
|
24
|
+
__reExport(components_exports, require("./tooltip"), module.exports);
|
|
25
|
+
__reExport(components_exports, require("./center-view"), module.exports);
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
var __defProp = Object.defineProperty;
|
|
3
|
+
var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
|
|
4
|
+
var __getOwnPropNames = Object.getOwnPropertyNames;
|
|
5
|
+
var __hasOwnProp = Object.prototype.hasOwnProperty;
|
|
6
|
+
var __export = (target, all) => {
|
|
7
|
+
for (var name in all)
|
|
8
|
+
__defProp(target, name, { get: all[name], enumerable: true });
|
|
9
|
+
};
|
|
10
|
+
var __copyProps = (to, from, except, desc) => {
|
|
11
|
+
if (from && typeof from === "object" || typeof from === "function") {
|
|
12
|
+
for (let key of __getOwnPropNames(from))
|
|
13
|
+
if (!__hasOwnProp.call(to, key) && key !== except)
|
|
14
|
+
__defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
|
|
15
|
+
}
|
|
16
|
+
return to;
|
|
17
|
+
};
|
|
18
|
+
var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
|
|
19
|
+
var panel_view_exports = {};
|
|
20
|
+
__export(panel_view_exports, {
|
|
21
|
+
PanelView: () => PanelView
|
|
22
|
+
});
|
|
23
|
+
module.exports = __toCommonJS(panel_view_exports);
|
|
24
|
+
var import_jsx_runtime = require("vue/jsx-runtime");
|
|
25
|
+
var import_vue = require("vue");
|
|
26
|
+
var import_dropdown = require("../dropdown");
|
|
27
|
+
var import_icon = require("../icon");
|
|
28
|
+
var import_utils = require("../../utils");
|
|
29
|
+
var import_locales = require("../../locales");
|
|
30
|
+
const viewModeKeys = /* @__PURE__ */ new Set(["DockPinned", "DockUnpinned", "Undock"]);
|
|
31
|
+
function findItem(items, key) {
|
|
32
|
+
if (!items) return;
|
|
33
|
+
for (const item of items) {
|
|
34
|
+
if (item.key === key) return item;
|
|
35
|
+
if (item.children?.length) {
|
|
36
|
+
const found = findItem(item.children, key);
|
|
37
|
+
if (found) return found;
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
const PanelView = (0, import_vue.defineComponent)({
|
|
42
|
+
name: "PanelView",
|
|
43
|
+
props: {
|
|
44
|
+
anchor: String,
|
|
45
|
+
title: String,
|
|
46
|
+
widget: Object,
|
|
47
|
+
menuItems: Array
|
|
48
|
+
},
|
|
49
|
+
setup(props, { slots }) {
|
|
50
|
+
const panelRef = (0, import_vue.ref)();
|
|
51
|
+
const defaultLocale = (0, import_vue.ref)((0, import_locales.getBuiltInLocale)("zh-CN"));
|
|
52
|
+
const locale = (0, import_vue.inject)("layplux-locale", defaultLocale);
|
|
53
|
+
const handleClick = (key) => {
|
|
54
|
+
const widget = props.widget;
|
|
55
|
+
widget?.event?.emitGlobal(`panel:${widget.name}:menu-click`, { widget, key });
|
|
56
|
+
const widgetProps = widget?.config.props;
|
|
57
|
+
const panelItems = widgetProps?.panelMenuItems;
|
|
58
|
+
const panelItem = findItem(panelItems, key);
|
|
59
|
+
if (panelItem?.onClick) {
|
|
60
|
+
panelItem.onClick(key, widget);
|
|
61
|
+
return;
|
|
62
|
+
}
|
|
63
|
+
if (viewModeKeys.has(key)) {
|
|
64
|
+
widget?.pane.setViewMode(key);
|
|
65
|
+
} else if (key === "help") {
|
|
66
|
+
widgetProps?.onHelpClick?.();
|
|
67
|
+
}
|
|
68
|
+
};
|
|
69
|
+
function handlePanelClick() {
|
|
70
|
+
props.widget?.focusable.active();
|
|
71
|
+
}
|
|
72
|
+
function renderItems(items, currentMode) {
|
|
73
|
+
return items.map((item) => {
|
|
74
|
+
if (item.type === "divider") {
|
|
75
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}, item.key ?? "divider");
|
|
76
|
+
}
|
|
77
|
+
const k = item.key ?? "";
|
|
78
|
+
if (item.children?.length) {
|
|
79
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
80
|
+
import_dropdown.DropdownSubmenu,
|
|
81
|
+
{
|
|
82
|
+
title: item.label,
|
|
83
|
+
icon: item.icon,
|
|
84
|
+
getContainer: () => panelRef.value,
|
|
85
|
+
children: renderItems(item.children, currentMode)
|
|
86
|
+
},
|
|
87
|
+
k
|
|
88
|
+
);
|
|
89
|
+
}
|
|
90
|
+
const disabled = currentMode !== void 0 && viewModeKeys.has(k) && currentMode === k;
|
|
91
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown.DropdownItem, { eventKey: k, disabled, children: [
|
|
92
|
+
item.icon,
|
|
93
|
+
" ",
|
|
94
|
+
item.label
|
|
95
|
+
] }, k);
|
|
96
|
+
});
|
|
97
|
+
}
|
|
98
|
+
return () => {
|
|
99
|
+
const widget = props.widget;
|
|
100
|
+
const currentMode = widget?.pane.viewMode.value;
|
|
101
|
+
const widgetProps = widget?.config.props;
|
|
102
|
+
const hasCustomItems = props.menuItems && props.menuItems.length > 0;
|
|
103
|
+
const panelMenuItems = widgetProps?.panelMenuItems;
|
|
104
|
+
const hasPanelMenuItems = panelMenuItems && panelMenuItems.length > 0;
|
|
105
|
+
const showHelp = widgetProps?.showHelp !== false;
|
|
106
|
+
const loc = locale.value.panel;
|
|
107
|
+
const finalInnerItems = [
|
|
108
|
+
{
|
|
109
|
+
key: "viewMode",
|
|
110
|
+
label: loc.viewMode,
|
|
111
|
+
children: [
|
|
112
|
+
{ key: "DockPinned", label: loc.dockPinned },
|
|
113
|
+
{ key: "DockUnpinned", label: loc.dockUnpinned },
|
|
114
|
+
{ key: "Undock", label: loc.undock }
|
|
115
|
+
]
|
|
116
|
+
},
|
|
117
|
+
{ type: "divider" },
|
|
118
|
+
...showHelp ? [{ key: "help", label: loc.help }] : []
|
|
119
|
+
];
|
|
120
|
+
const panelTitleExtra = widgetProps?.panelTitleExtra;
|
|
121
|
+
const panelActionsExtra = widgetProps?.panelActionsExtra;
|
|
122
|
+
return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { ref: panelRef, id: widget?.id, class: "layplux-panel", onClick: handlePanelClick, children: [
|
|
123
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { class: "layplux-panel__header", children: [
|
|
124
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("span", { class: "layplux-panel__title", children: props.title ?? widget?.name }),
|
|
125
|
+
panelTitleExtra && (0, import_utils.createContent)(panelTitleExtra),
|
|
126
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsxs)("div", { class: "layplux-panel__actions", children: [
|
|
127
|
+
panelActionsExtra && (0, import_utils.createContent)(panelActionsExtra),
|
|
128
|
+
slots.actionsExtra?.(),
|
|
129
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
130
|
+
import_dropdown.Dropdown,
|
|
131
|
+
{
|
|
132
|
+
trigger: "click",
|
|
133
|
+
placement: "bottom-start",
|
|
134
|
+
onClick: handleClick,
|
|
135
|
+
getContainer: () => panelRef.value,
|
|
136
|
+
children: {
|
|
137
|
+
default: () => /* @__PURE__ */ (0, import_jsx_runtime.jsx)("button", { class: "layplux-panel__action-btn", title: loc.more, children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.MoreIcon, { size: 16 }) }),
|
|
138
|
+
overlay: () => /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_dropdown.DropdownMenu, { children: [
|
|
139
|
+
hasPanelMenuItems && renderItems(panelMenuItems),
|
|
140
|
+
hasPanelMenuItems && hasCustomItems && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}),
|
|
141
|
+
hasCustomItems && renderItems(props.menuItems),
|
|
142
|
+
(hasPanelMenuItems || hasCustomItems) && /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_dropdown.DropdownDivider, {}),
|
|
143
|
+
renderItems(finalInnerItems, currentMode)
|
|
144
|
+
] })
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
),
|
|
148
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)(
|
|
149
|
+
"button",
|
|
150
|
+
{
|
|
151
|
+
class: "layplux-panel__action-btn",
|
|
152
|
+
title: loc.minimize,
|
|
153
|
+
onClick: () => {
|
|
154
|
+
widget?.event?.emitGlobal(`panel:${widget.name}:minimize`, { widget });
|
|
155
|
+
widget?.container?.deactivate();
|
|
156
|
+
},
|
|
157
|
+
children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_icon.MinimizeIcon, { size: 16 })
|
|
158
|
+
}
|
|
159
|
+
)
|
|
160
|
+
] })
|
|
161
|
+
] }),
|
|
162
|
+
/* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { id: props.anchor, class: "layplux-panel__body" })
|
|
163
|
+
] });
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
});
|