bani-ui 1.0.2-alpha.1 → 1.0.2-alpha.11
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/es/{Button-Bwc0dTzv.js → Button-CsYVYbtY.js} +7 -4
- package/dist/es/{ButtonGroup-C4UHHgrM.js → ButtonGroup-CUSVCVC9.js} +5 -3
- package/dist/es/Dropdown-BVnXCHJZ.js +175 -0
- package/dist/es/{Icon-CseJvWyQ.js → Icon-C5WM3GNh.js} +3 -2
- package/dist/es/Loading-DEDOSX2q.js +269 -0
- package/dist/es/Message-DxBWtBTF.js +203 -0
- package/dist/es/Popconfirm-C_5V4HaP.js +116 -0
- package/dist/es/Tooltip-BF6cY52d.js +263 -0
- package/dist/es/hooks-D92zul9o.js +78 -0
- package/dist/es/index.js +34 -6
- package/dist/es/locale/lang/af.js +257 -0
- package/dist/es/locale/lang/ar-eg.js +228 -0
- package/dist/es/locale/lang/ar.js +239 -0
- package/dist/es/locale/lang/az.js +251 -0
- package/dist/es/locale/lang/bg.js +262 -0
- package/dist/es/locale/lang/bn.js +247 -0
- package/dist/es/locale/lang/ca.js +249 -0
- package/dist/es/locale/lang/ckb.js +225 -0
- package/dist/es/locale/lang/cs.js +254 -0
- package/dist/es/locale/lang/da.js +253 -0
- package/dist/es/locale/lang/de.js +238 -0
- package/dist/es/locale/lang/el.js +252 -0
- package/dist/es/locale/lang/en.js +197 -0
- package/dist/es/locale/lang/eo.js +250 -0
- package/dist/es/locale/lang/es.js +249 -0
- package/dist/es/locale/lang/et.js +248 -0
- package/dist/es/locale/lang/eu.js +249 -0
- package/dist/es/locale/lang/fa.js +211 -0
- package/dist/es/locale/lang/fi.js +252 -0
- package/dist/es/locale/lang/fr.js +203 -0
- package/dist/es/locale/lang/he.js +248 -0
- package/dist/es/locale/lang/hi.js +211 -0
- package/dist/es/locale/lang/hr.js +252 -0
- package/dist/es/locale/lang/hu.js +252 -0
- package/dist/es/locale/lang/hy-am.js +252 -0
- package/dist/es/locale/lang/id.js +247 -0
- package/dist/es/locale/lang/index.js +136 -0
- package/dist/es/locale/lang/it.js +253 -0
- package/dist/es/locale/lang/ja.js +245 -0
- package/dist/es/locale/lang/kk.js +252 -0
- package/dist/es/locale/lang/km.js +211 -0
- package/dist/es/locale/lang/ko.js +224 -0
- package/dist/es/locale/lang/ku.js +252 -0
- package/dist/es/locale/lang/ky.js +252 -0
- package/dist/es/locale/lang/lo.js +211 -0
- package/dist/es/locale/lang/lt.js +249 -0
- package/dist/es/locale/lang/lv.js +252 -0
- package/dist/es/locale/lang/mg.js +247 -0
- package/dist/es/locale/lang/mn.js +252 -0
- package/dist/es/locale/lang/ms.js +215 -0
- package/dist/es/locale/lang/my.js +211 -0
- package/dist/es/locale/lang/nb-no.js +249 -0
- package/dist/es/locale/lang/nl.js +228 -0
- package/dist/es/locale/lang/no.js +211 -0
- package/dist/es/locale/lang/pa.js +250 -0
- package/dist/es/locale/lang/pl.js +245 -0
- package/dist/es/locale/lang/pt-br.js +245 -0
- package/dist/es/locale/lang/pt.js +262 -0
- package/dist/es/locale/lang/ro.js +252 -0
- package/dist/es/locale/lang/ru.js +235 -0
- package/dist/es/locale/lang/sk.js +254 -0
- package/dist/es/locale/lang/sl.js +253 -0
- package/dist/es/locale/lang/sr.js +244 -0
- package/dist/es/locale/lang/sv.js +251 -0
- package/dist/es/locale/lang/sw.js +219 -0
- package/dist/es/locale/lang/ta.js +258 -0
- package/dist/es/locale/lang/te.js +211 -0
- package/dist/es/locale/lang/th.js +251 -0
- package/dist/es/locale/lang/tk.js +256 -0
- package/dist/es/locale/lang/tr.js +248 -0
- package/dist/es/locale/lang/ug-cn.js +252 -0
- package/dist/es/locale/lang/uk.js +249 -0
- package/dist/es/locale/lang/uz-uz.js +250 -0
- package/dist/es/locale/lang/vi.js +197 -0
- package/dist/es/locale/lang/zh-cn.js +197 -0
- package/dist/es/locale/lang/zh-hk.js +209 -0
- package/dist/es/locale/lang/zh-mo.js +209 -0
- package/dist/es/locale/lang/zh-tw.js +209 -0
- package/dist/es/utils-Uf9tqvV5.js +69 -0
- package/dist/es/vendor-R0ZbR4ac.js +3515 -0
- package/dist/index.css +1 -1
- package/dist/theme/Button.css +1 -46
- package/dist/theme/ButtonGroup.css +15 -13
- package/dist/theme/Dropdown.css +117 -0
- package/dist/theme/Loading.css +55 -0
- package/dist/theme/Message.css +97 -0
- package/dist/theme/Popconfirm.css +11 -0
- package/dist/theme/Tooltip.css +74 -0
- package/dist/types/components/Button/constants.d.ts +1 -0
- package/dist/types/components/Button/index.d.ts +156 -16
- package/dist/types/components/Button/types.d.ts +3 -2
- package/dist/types/components/ButtonGroup/index.d.ts +34 -3
- package/dist/types/components/ButtonGroup/types.d.ts +1 -0
- package/dist/types/components/Dropdown/constants.d.ts +4 -0
- package/dist/types/components/Dropdown/index.d.ts +266 -0
- package/dist/types/components/Dropdown/types.d.ts +31 -0
- package/dist/types/components/Icon/index.d.ts +235 -3
- package/dist/types/components/Icon/types.d.ts +1 -0
- package/dist/types/components/Loading/directive.d.ts +13 -0
- package/dist/types/components/Loading/index.d.ts +13 -0
- package/dist/types/components/Loading/service.d.ts +12 -0
- package/dist/types/components/Loading/types.d.ts +20 -0
- package/dist/types/components/Message/index.d.ts +2 -0
- package/dist/types/components/Message/methods.d.ts +27 -0
- package/dist/types/components/Message/types.d.ts +41 -0
- package/dist/types/components/Popconfirm/index.d.ts +163 -0
- package/dist/types/components/Popconfirm/types.d.ts +19 -0
- package/dist/types/components/Tooltip/index.d.ts +178 -0
- package/dist/types/components/Tooltip/types.d.ts +25 -0
- package/dist/types/components/Tooltip/useEventsToTiggerNode.d.ts +10 -0
- package/dist/types/components/index.d.ts +5 -0
- package/dist/types/core/index.d.ts +2 -1
- package/dist/types/hooks/index.d.ts +8 -0
- package/dist/types/hooks/useClickOutside.d.ts +3 -0
- package/dist/types/hooks/useEventListener.d.ts +3 -0
- package/dist/types/hooks/useId.d.ts +4 -0
- package/dist/types/hooks/useLocale.d.ts +6 -0
- package/dist/types/hooks/useOffset.d.ts +13 -0
- package/dist/types/hooks/useZIndex.d.ts +5 -0
- package/dist/types/locale/index.d.ts +74 -0
- package/dist/types/locale/lang/af.d.ts +195 -0
- package/dist/types/locale/lang/ar-eg.d.ts +195 -0
- package/dist/types/locale/lang/ar.d.ts +195 -0
- package/dist/types/locale/lang/az.d.ts +198 -0
- package/dist/types/locale/lang/bg.d.ts +195 -0
- package/dist/types/locale/lang/bn.d.ts +195 -0
- package/dist/types/locale/lang/ca.d.ts +195 -0
- package/dist/types/locale/lang/ckb.d.ts +195 -0
- package/dist/types/locale/lang/cs.d.ts +197 -0
- package/dist/types/locale/lang/da.d.ts +195 -0
- package/dist/types/locale/lang/de.d.ts +197 -0
- package/dist/types/locale/lang/el.d.ts +195 -0
- package/dist/types/locale/lang/en.d.ts +195 -0
- package/dist/types/locale/lang/eo.d.ts +195 -0
- package/dist/types/locale/lang/es.d.ts +195 -0
- package/dist/types/locale/lang/et.d.ts +195 -0
- package/dist/types/locale/lang/eu.d.ts +195 -0
- package/dist/types/locale/lang/fa.d.ts +195 -0
- package/dist/types/locale/lang/fi.d.ts +195 -0
- package/dist/types/locale/lang/fr.d.ts +195 -0
- package/dist/types/locale/lang/he.d.ts +195 -0
- package/dist/types/locale/lang/hi.d.ts +195 -0
- package/dist/types/locale/lang/hr.d.ts +195 -0
- package/dist/types/locale/lang/hu.d.ts +195 -0
- package/dist/types/locale/lang/hy-am.d.ts +195 -0
- package/dist/types/locale/lang/id.d.ts +195 -0
- package/dist/types/locale/lang/it.d.ts +195 -0
- package/dist/types/locale/lang/ja.d.ts +195 -0
- package/dist/types/locale/lang/kk.d.ts +195 -0
- package/dist/types/locale/lang/km.d.ts +195 -0
- package/dist/types/locale/lang/ko.d.ts +195 -0
- package/dist/types/locale/lang/ku.d.ts +195 -0
- package/dist/types/locale/lang/ky.d.ts +195 -0
- package/dist/types/locale/lang/lo.d.ts +195 -0
- package/dist/types/locale/lang/lt.d.ts +195 -0
- package/dist/types/locale/lang/lv.d.ts +195 -0
- package/dist/types/locale/lang/mg.d.ts +195 -0
- package/dist/types/locale/lang/mn.d.ts +195 -0
- package/dist/types/locale/lang/ms.d.ts +197 -0
- package/dist/types/locale/lang/my.d.ts +195 -0
- package/dist/types/locale/lang/nb-no.d.ts +195 -0
- package/dist/types/locale/lang/nl.d.ts +195 -0
- package/dist/types/locale/lang/no.d.ts +195 -0
- package/dist/types/locale/lang/pa.d.ts +195 -0
- package/dist/types/locale/lang/pl.d.ts +195 -0
- package/dist/types/locale/lang/pt-br.d.ts +195 -0
- package/dist/types/locale/lang/pt.d.ts +195 -0
- package/dist/types/locale/lang/ro.d.ts +195 -0
- package/dist/types/locale/lang/ru.d.ts +195 -0
- package/dist/types/locale/lang/sk.d.ts +197 -0
- package/dist/types/locale/lang/sl.d.ts +195 -0
- package/dist/types/locale/lang/sr.d.ts +195 -0
- package/dist/types/locale/lang/sv.d.ts +195 -0
- package/dist/types/locale/lang/sw.d.ts +195 -0
- package/dist/types/locale/lang/ta.d.ts +195 -0
- package/dist/types/locale/lang/te.d.ts +195 -0
- package/dist/types/locale/lang/th.d.ts +195 -0
- package/dist/types/locale/lang/tk.d.ts +195 -0
- package/dist/types/locale/lang/tr.d.ts +195 -0
- package/dist/types/locale/lang/ug-cn.d.ts +195 -0
- package/dist/types/locale/lang/uk.d.ts +195 -0
- package/dist/types/locale/lang/uz-uz.d.ts +195 -0
- package/dist/types/locale/lang/vi.d.ts +195 -0
- package/dist/types/locale/lang/zh-cn.d.ts +195 -0
- package/dist/types/locale/lang/zh-hk.d.ts +195 -0
- package/dist/types/locale/lang/zh-mo.d.ts +195 -0
- package/dist/types/locale/lang/zh-tw.d.ts +195 -0
- package/dist/types/utils/RenderVnode.d.ts +11 -0
- package/dist/types/utils/iconMap.d.ts +1 -0
- package/dist/types/utils/index.d.ts +3 -0
- package/dist/types/utils/install.d.ts +2 -0
- package/dist/types/utils/style.d.ts +1 -0
- package/dist/umd/index.css +1 -1
- package/dist/umd/index.css.br +0 -0
- package/dist/umd/index.css.gz +0 -0
- package/dist/umd/index.umd.cjs +16 -14
- package/dist/umd/index.umd.cjs.br +0 -0
- package/dist/umd/index.umd.cjs.gz +0 -0
- package/package.json +5 -2
- package/dist/es/utils-B5aZ4w8w.js +0 -16
- package/dist/es/vendor-BkjRo-uZ.js +0 -1176
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import { defineComponent, inject, computed, useSlots, ref, openBlock, createBlock, resolveDynamicComponent, unref, normalizeClass, withCtx, renderSlot, createVNode, normalizeStyle, createCommentVNode } from "vue";
|
|
2
|
-
import { _ as _sfc_main$1 } from "./Icon-
|
|
2
|
+
import { _ as _sfc_main$1 } from "./Icon-C5WM3GNh.js";
|
|
3
3
|
import { faSpinner } from "@fortawesome/free-solid-svg-icons";
|
|
4
4
|
import { library } from "@fortawesome/fontawesome-svg-core";
|
|
5
|
-
import { t as throttle } from "./vendor-
|
|
6
|
-
import { w as withInstall } from "./utils-
|
|
5
|
+
import { t as throttle } from "./vendor-R0ZbR4ac.js";
|
|
6
|
+
import { w as withInstall } from "./utils-Uf9tqvV5.js";
|
|
7
7
|
const BUTTON_GROUP_CTX_KEY = Symbol(
|
|
8
8
|
"BUTTON_GROUP_CTX_KEY"
|
|
9
9
|
);
|
|
@@ -49,7 +49,9 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
49
49
|
{ trailing: false }
|
|
50
50
|
);
|
|
51
51
|
__expose({
|
|
52
|
-
ref
|
|
52
|
+
get ref() {
|
|
53
|
+
return _ref.value ?? void 0;
|
|
54
|
+
},
|
|
53
55
|
disabled,
|
|
54
56
|
size,
|
|
55
57
|
type
|
|
@@ -98,5 +100,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
98
100
|
const BnButton = withInstall(_sfc_main);
|
|
99
101
|
export {
|
|
100
102
|
BUTTON_GROUP_CTX_KEY as B,
|
|
103
|
+
_sfc_main as _,
|
|
101
104
|
BnButton as a
|
|
102
105
|
};
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import { defineComponent, provide, reactive, toRef, openBlock, createElementBlock, renderSlot } from "vue";
|
|
2
|
-
import { B as BUTTON_GROUP_CTX_KEY } from "./Button-
|
|
3
|
-
import { w as withInstall } from "./utils-
|
|
2
|
+
import { B as BUTTON_GROUP_CTX_KEY } from "./Button-CsYVYbtY.js";
|
|
3
|
+
import { w as withInstall } from "./utils-Uf9tqvV5.js";
|
|
4
|
+
import "@fortawesome/free-solid-svg-icons";
|
|
4
5
|
const _hoisted_1 = { class: "er-button-group" };
|
|
5
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
7
|
...{
|
|
@@ -31,5 +32,6 @@ const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
|
31
32
|
});
|
|
32
33
|
const BnButtonGroup = withInstall(_sfc_main);
|
|
33
34
|
export {
|
|
34
|
-
BnButtonGroup as B
|
|
35
|
+
BnButtonGroup as B,
|
|
36
|
+
_sfc_main as _
|
|
35
37
|
};
|
|
@@ -0,0 +1,175 @@
|
|
|
1
|
+
import { defineComponent, inject, computed, openBlock, createElementBlock, Fragment, createCommentVNode, createElementVNode, normalizeClass, unref, renderSlot, createTextVNode, toDisplayString, useSlots, ref, provide, createVNode, mergeProps, withCtx, createBlock, renderList } from "vue";
|
|
2
|
+
import { b as useId } from "./hooks-D92zul9o.js";
|
|
3
|
+
import { _ as _sfc_main$2 } from "./ButtonGroup-CUSVCVC9.js";
|
|
4
|
+
import { _ as _sfc_main$3 } from "./Button-CsYVYbtY.js";
|
|
5
|
+
import { B as BnTooltip } from "./Tooltip-BF6cY52d.js";
|
|
6
|
+
import { faAngleDown } from "@fortawesome/free-solid-svg-icons";
|
|
7
|
+
import { library } from "@fortawesome/fontawesome-svg-core";
|
|
8
|
+
import { p as omit, k as isNil } from "./vendor-R0ZbR4ac.js";
|
|
9
|
+
import { w as withInstall } from "./utils-Uf9tqvV5.js";
|
|
10
|
+
const DROPDOWN_CTX_KEY = Symbol("dropdownContext");
|
|
11
|
+
const _hoisted_1$1 = {
|
|
12
|
+
key: 0,
|
|
13
|
+
role: "separator",
|
|
14
|
+
class: "divided-placeholder"
|
|
15
|
+
};
|
|
16
|
+
const _hoisted_2 = ["id"];
|
|
17
|
+
const _sfc_main$1 = /* @__PURE__ */ defineComponent({
|
|
18
|
+
...{
|
|
19
|
+
name: "BnDropdownItem",
|
|
20
|
+
inheritAttrs: false
|
|
21
|
+
},
|
|
22
|
+
__name: "DropdownItem",
|
|
23
|
+
props: {
|
|
24
|
+
command: { default: useId().value },
|
|
25
|
+
label: {},
|
|
26
|
+
disabled: { type: Boolean, default: false },
|
|
27
|
+
divided: { type: Boolean }
|
|
28
|
+
},
|
|
29
|
+
setup(__props) {
|
|
30
|
+
const props = __props;
|
|
31
|
+
const ctx = inject(DROPDOWN_CTX_KEY);
|
|
32
|
+
const size = computed(() => ctx == null ? void 0 : ctx.size.value);
|
|
33
|
+
function handleClick() {
|
|
34
|
+
if (props.disabled) return;
|
|
35
|
+
ctx == null ? void 0 : ctx.handleItemClick(props);
|
|
36
|
+
}
|
|
37
|
+
return (_ctx, _cache) => {
|
|
38
|
+
return openBlock(), createElementBlock(Fragment, null, [
|
|
39
|
+
__props.divided ? (openBlock(), createElementBlock("li", _hoisted_1$1)) : createCommentVNode("", true),
|
|
40
|
+
createElementVNode("li", {
|
|
41
|
+
id: `dropdown-item-${__props.command ?? unref(useId)().value}`,
|
|
42
|
+
class: normalizeClass({
|
|
43
|
+
"er-dropdown__item": true,
|
|
44
|
+
["er-dropdown__item--" + size.value]: size.value,
|
|
45
|
+
"is-disabled": __props.disabled,
|
|
46
|
+
"is-divided": __props.divided
|
|
47
|
+
}),
|
|
48
|
+
onClick: handleClick
|
|
49
|
+
}, [
|
|
50
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
51
|
+
createTextVNode(toDisplayString(__props.label), 1)
|
|
52
|
+
])
|
|
53
|
+
], 10, _hoisted_2)
|
|
54
|
+
], 64);
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
const _hoisted_1 = { class: "er-dropdown__menu" };
|
|
59
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
60
|
+
...{
|
|
61
|
+
name: "BnDropdown",
|
|
62
|
+
inheritAttrs: false
|
|
63
|
+
},
|
|
64
|
+
__name: "Dropdown",
|
|
65
|
+
props: {
|
|
66
|
+
type: {},
|
|
67
|
+
size: {},
|
|
68
|
+
items: { default: () => [] },
|
|
69
|
+
hideOnClick: { type: Boolean, default: true },
|
|
70
|
+
splitButton: { type: Boolean },
|
|
71
|
+
content: {},
|
|
72
|
+
trigger: {},
|
|
73
|
+
placement: {},
|
|
74
|
+
manual: { type: Boolean },
|
|
75
|
+
disabled: { type: Boolean },
|
|
76
|
+
popperOptions: {},
|
|
77
|
+
transition: {},
|
|
78
|
+
showTimeout: {},
|
|
79
|
+
hideTimeout: {}
|
|
80
|
+
},
|
|
81
|
+
emits: ["visible-change", "command", "click"],
|
|
82
|
+
setup(__props, { expose: __expose, emit: __emit }) {
|
|
83
|
+
library.add(faAngleDown);
|
|
84
|
+
const props = __props;
|
|
85
|
+
const emits = __emit;
|
|
86
|
+
useSlots();
|
|
87
|
+
const tooltipRef = ref();
|
|
88
|
+
const triggerRef = ref();
|
|
89
|
+
const virtualRef = computed(() => {
|
|
90
|
+
var _a;
|
|
91
|
+
return ((_a = triggerRef.value) == null ? void 0 : _a.ref) ?? void 0;
|
|
92
|
+
});
|
|
93
|
+
const tooltipProps = computed(
|
|
94
|
+
() => omit(props, ["items", "hideAfterClick", "size", "type", "splitButton"])
|
|
95
|
+
);
|
|
96
|
+
function handleItemClick(e) {
|
|
97
|
+
var _a;
|
|
98
|
+
props.hideOnClick && ((_a = tooltipRef.value) == null ? void 0 : _a.hide());
|
|
99
|
+
!isNil(e.command) && emits("command", e.command);
|
|
100
|
+
}
|
|
101
|
+
provide(DROPDOWN_CTX_KEY, {
|
|
102
|
+
handleItemClick,
|
|
103
|
+
size: computed(() => props.size)
|
|
104
|
+
});
|
|
105
|
+
__expose({
|
|
106
|
+
open: () => {
|
|
107
|
+
var _a;
|
|
108
|
+
return (_a = tooltipRef.value) == null ? void 0 : _a.show();
|
|
109
|
+
},
|
|
110
|
+
close: () => {
|
|
111
|
+
var _a;
|
|
112
|
+
return (_a = tooltipRef.value) == null ? void 0 : _a.hide();
|
|
113
|
+
}
|
|
114
|
+
});
|
|
115
|
+
return (_ctx, _cache) => {
|
|
116
|
+
return openBlock(), createElementBlock("div", {
|
|
117
|
+
class: normalizeClass(["er-dropdown", { "is-disabled": props.disabled }])
|
|
118
|
+
}, [
|
|
119
|
+
createVNode(BnTooltip, mergeProps({
|
|
120
|
+
ref_key: "tooltipRef",
|
|
121
|
+
ref: tooltipRef
|
|
122
|
+
}, tooltipProps.value, {
|
|
123
|
+
"virtual-triggering": __props.splitButton,
|
|
124
|
+
"virtual-ref": virtualRef.value,
|
|
125
|
+
onVisibleChange: _cache[1] || (_cache[1] = ($event) => _ctx.$emit("visible-change", $event))
|
|
126
|
+
}), {
|
|
127
|
+
content: withCtx(() => [
|
|
128
|
+
createElementVNode("div", _hoisted_1, [
|
|
129
|
+
renderSlot(_ctx.$slots, "dropdown", {}, () => [
|
|
130
|
+
(openBlock(true), createElementBlock(Fragment, null, renderList(__props.items, (item) => {
|
|
131
|
+
return openBlock(), createBlock(_sfc_main$1, mergeProps({
|
|
132
|
+
key: item.command,
|
|
133
|
+
ref_for: true
|
|
134
|
+
}, item), null, 16);
|
|
135
|
+
}), 128))
|
|
136
|
+
])
|
|
137
|
+
])
|
|
138
|
+
]),
|
|
139
|
+
default: withCtx(() => [
|
|
140
|
+
__props.splitButton ? (openBlock(), createBlock(_sfc_main$2, {
|
|
141
|
+
key: 0,
|
|
142
|
+
type: __props.type,
|
|
143
|
+
size: __props.size,
|
|
144
|
+
disabled: __props.disabled
|
|
145
|
+
}, {
|
|
146
|
+
default: withCtx(() => [
|
|
147
|
+
createVNode(_sfc_main$3, {
|
|
148
|
+
onClick: _cache[0] || (_cache[0] = ($event) => _ctx.$emit("click", $event))
|
|
149
|
+
}, {
|
|
150
|
+
default: withCtx(() => [
|
|
151
|
+
renderSlot(_ctx.$slots, "default")
|
|
152
|
+
]),
|
|
153
|
+
_: 3
|
|
154
|
+
}),
|
|
155
|
+
createVNode(_sfc_main$3, {
|
|
156
|
+
ref_key: "triggerRef",
|
|
157
|
+
ref: triggerRef,
|
|
158
|
+
icon: "angle-down"
|
|
159
|
+
}, null, 512)
|
|
160
|
+
]),
|
|
161
|
+
_: 3
|
|
162
|
+
}, 8, ["type", "size", "disabled"])) : renderSlot(_ctx.$slots, "default", { key: 1 })
|
|
163
|
+
]),
|
|
164
|
+
_: 3
|
|
165
|
+
}, 16, ["virtual-triggering", "virtual-ref"])
|
|
166
|
+
], 2);
|
|
167
|
+
};
|
|
168
|
+
}
|
|
169
|
+
});
|
|
170
|
+
const BnDropdown = withInstall(_sfc_main);
|
|
171
|
+
const BnDropdownItem = withInstall(_sfc_main$1);
|
|
172
|
+
export {
|
|
173
|
+
BnDropdown as B,
|
|
174
|
+
BnDropdownItem as a
|
|
175
|
+
};
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import { defineComponent, computed, openBlock, createElementBlock, mergeProps, createVNode, unref, normalizeProps, guardReactiveProps } from "vue";
|
|
2
2
|
import { FontAwesomeIcon } from "@fortawesome/vue-fontawesome";
|
|
3
|
-
import {
|
|
4
|
-
import { w as withInstall } from "./utils-
|
|
3
|
+
import { p as omit } from "./vendor-R0ZbR4ac.js";
|
|
4
|
+
import { w as withInstall } from "./utils-Uf9tqvV5.js";
|
|
5
|
+
import "@fortawesome/free-solid-svg-icons";
|
|
5
6
|
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
6
7
|
...{
|
|
7
8
|
name: "BnIcon",
|
|
@@ -0,0 +1,269 @@
|
|
|
1
|
+
import { defineComponent, useCssVars, computed, openBlock, createBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeClass, createCommentVNode, createElementBlock, toDisplayString, vShow, nextTick, ref, reactive, createApp } from "vue";
|
|
2
|
+
import { e as useZIndex } from "./hooks-D92zul9o.js";
|
|
3
|
+
import { _ as _sfc_main$1 } from "./Icon-C5WM3GNh.js";
|
|
4
|
+
import { m as isString, k as isNil, a as defer, e as delay } from "./vendor-R0ZbR4ac.js";
|
|
5
|
+
const _hoisted_1 = { class: "er-loading__spinner" };
|
|
6
|
+
const _hoisted_2 = {
|
|
7
|
+
key: 1,
|
|
8
|
+
class: "er-loading-text"
|
|
9
|
+
};
|
|
10
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
11
|
+
...{
|
|
12
|
+
name: "BnLoading",
|
|
13
|
+
inheritAttrs: false
|
|
14
|
+
},
|
|
15
|
+
__name: "Loading",
|
|
16
|
+
props: {
|
|
17
|
+
visible: {},
|
|
18
|
+
background: {},
|
|
19
|
+
spinner: {},
|
|
20
|
+
text: {},
|
|
21
|
+
fullscreen: {},
|
|
22
|
+
lock: {},
|
|
23
|
+
beforeClose: { type: Function },
|
|
24
|
+
closed: { type: Function },
|
|
25
|
+
target: {},
|
|
26
|
+
body: { type: Boolean },
|
|
27
|
+
zIndex: {},
|
|
28
|
+
onAfterLeave: { type: Function }
|
|
29
|
+
},
|
|
30
|
+
setup(__props) {
|
|
31
|
+
useCssVars((_ctx) => ({
|
|
32
|
+
"v098d7d6e": _ctx.background,
|
|
33
|
+
"v1880a613": _ctx.zIndex
|
|
34
|
+
}));
|
|
35
|
+
const props = __props;
|
|
36
|
+
const iconName = computed(() => {
|
|
37
|
+
if (isString(props.spinner)) {
|
|
38
|
+
return props.spinner;
|
|
39
|
+
}
|
|
40
|
+
return "spinner";
|
|
41
|
+
});
|
|
42
|
+
return (_ctx, _cache) => {
|
|
43
|
+
return openBlock(), createBlock(Transition, {
|
|
44
|
+
name: "fade-in-linear",
|
|
45
|
+
onAfterLeave: __props.onAfterLeave
|
|
46
|
+
}, {
|
|
47
|
+
default: withCtx(() => [
|
|
48
|
+
withDirectives(createElementVNode("div", {
|
|
49
|
+
class: normalizeClass(["er-loading er-loading__mask", { "is-fullscreen": __props.fullscreen }])
|
|
50
|
+
}, [
|
|
51
|
+
createElementVNode("div", _hoisted_1, [
|
|
52
|
+
props.spinner !== false ? (openBlock(), createBlock(_sfc_main$1, {
|
|
53
|
+
key: 0,
|
|
54
|
+
icon: iconName.value,
|
|
55
|
+
spin: ""
|
|
56
|
+
}, null, 8, ["icon"])) : createCommentVNode("", true),
|
|
57
|
+
__props.text ? (openBlock(), createElementBlock("p", _hoisted_2, toDisplayString(__props.text), 1)) : createCommentVNode("", true)
|
|
58
|
+
])
|
|
59
|
+
], 2), [
|
|
60
|
+
[vShow, props.visible.value]
|
|
61
|
+
])
|
|
62
|
+
]),
|
|
63
|
+
_: 1
|
|
64
|
+
}, 8, ["onAfterLeave"]);
|
|
65
|
+
};
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
const RELATIVE_CLASS = "er-loading-parent--relative";
|
|
69
|
+
const HIDDEN_CLASS = "er-loading-parent--hiden";
|
|
70
|
+
const LOADING_NUMB_KEY = "er-loading-numb";
|
|
71
|
+
const instanceMap = /* @__PURE__ */ new Map();
|
|
72
|
+
const { nextZIndex } = useZIndex(3e4);
|
|
73
|
+
function createLoadingComponent(options) {
|
|
74
|
+
const visible = ref(options.visible);
|
|
75
|
+
const afterLeaveFlag = ref(false);
|
|
76
|
+
const handleAfterLeave = () => {
|
|
77
|
+
if (!afterLeaveFlag.value) return;
|
|
78
|
+
destory();
|
|
79
|
+
};
|
|
80
|
+
const data = reactive({
|
|
81
|
+
...options,
|
|
82
|
+
onAfterLeave: handleAfterLeave
|
|
83
|
+
});
|
|
84
|
+
const setText = (text) => data.text = text;
|
|
85
|
+
const destory = () => {
|
|
86
|
+
var _a, _b;
|
|
87
|
+
const target = data.parent;
|
|
88
|
+
subtLoadingNumb(target);
|
|
89
|
+
if (getLoadingNumb(target)) return;
|
|
90
|
+
delay(() => {
|
|
91
|
+
removeRelativeClass(target);
|
|
92
|
+
removeHiddenClass(target);
|
|
93
|
+
}, 1);
|
|
94
|
+
instanceMap.delete(target ?? document.body);
|
|
95
|
+
(_b = (_a = vm.$el) == null ? void 0 : _a.parentNode) == null ? void 0 : _b.removeChild(vm.$el);
|
|
96
|
+
app.unmount();
|
|
97
|
+
};
|
|
98
|
+
let afterLeaveTimer;
|
|
99
|
+
const close = () => {
|
|
100
|
+
var _a;
|
|
101
|
+
if (options.beforeClose && !options.beforeClose()) return;
|
|
102
|
+
afterLeaveFlag.value = true;
|
|
103
|
+
clearTimeout(afterLeaveTimer);
|
|
104
|
+
afterLeaveTimer = defer(handleAfterLeave);
|
|
105
|
+
visible.value = false;
|
|
106
|
+
(_a = options.closed) == null ? void 0 : _a.call(options);
|
|
107
|
+
};
|
|
108
|
+
const app = createApp(_sfc_main, {
|
|
109
|
+
...data,
|
|
110
|
+
zIndex: data.fullscreen ? nextZIndex() : void 0,
|
|
111
|
+
visible
|
|
112
|
+
});
|
|
113
|
+
const vm = app.mount(document.createElement("div"));
|
|
114
|
+
return {
|
|
115
|
+
get $el() {
|
|
116
|
+
return vm.$el;
|
|
117
|
+
},
|
|
118
|
+
vm,
|
|
119
|
+
close,
|
|
120
|
+
visible,
|
|
121
|
+
setText
|
|
122
|
+
};
|
|
123
|
+
}
|
|
124
|
+
function resolveOptions(options) {
|
|
125
|
+
let target;
|
|
126
|
+
if (isString(options.target)) {
|
|
127
|
+
target = document.querySelector(options.target) ?? document.body;
|
|
128
|
+
} else {
|
|
129
|
+
target = options.target || document.body;
|
|
130
|
+
}
|
|
131
|
+
return {
|
|
132
|
+
parent: target === document.body || options.body ? document.body : target,
|
|
133
|
+
background: options.background ?? "rgba(0, 0, 0, 0.5)",
|
|
134
|
+
spinner: options.spinner,
|
|
135
|
+
text: options.text,
|
|
136
|
+
fullscreen: target === document.body && (options.fullscreen ?? true),
|
|
137
|
+
lock: options.lock ?? false,
|
|
138
|
+
visible: options.visible ?? true,
|
|
139
|
+
target
|
|
140
|
+
};
|
|
141
|
+
}
|
|
142
|
+
function addRelativeClass(target = document.body) {
|
|
143
|
+
target.classList.add(RELATIVE_CLASS);
|
|
144
|
+
}
|
|
145
|
+
function removeRelativeClass(target = document.body) {
|
|
146
|
+
target.classList.remove(RELATIVE_CLASS);
|
|
147
|
+
}
|
|
148
|
+
function addHiddenClass(target = document.body) {
|
|
149
|
+
target.classList.add(HIDDEN_CLASS);
|
|
150
|
+
}
|
|
151
|
+
function removeHiddenClass(target = document.body) {
|
|
152
|
+
target.classList.remove(HIDDEN_CLASS);
|
|
153
|
+
}
|
|
154
|
+
function getLoadingNumb(target = document.body) {
|
|
155
|
+
return target.getAttribute(LOADING_NUMB_KEY);
|
|
156
|
+
}
|
|
157
|
+
function removeLoadingNumb(target = document.body) {
|
|
158
|
+
target.removeAttribute(LOADING_NUMB_KEY);
|
|
159
|
+
}
|
|
160
|
+
function addLoadingNumb(target = document.body) {
|
|
161
|
+
const numb = getLoadingNumb(target) ?? "0";
|
|
162
|
+
target.setAttribute(LOADING_NUMB_KEY, `${Number.parseInt(numb) + 1}`);
|
|
163
|
+
}
|
|
164
|
+
function subtLoadingNumb(target = document.body) {
|
|
165
|
+
const numb = getLoadingNumb(target);
|
|
166
|
+
if (numb) {
|
|
167
|
+
const newNumb = Number.parseInt(numb) - 1;
|
|
168
|
+
if (newNumb === 0) {
|
|
169
|
+
removeLoadingNumb(target);
|
|
170
|
+
} else {
|
|
171
|
+
target.setAttribute(LOADING_NUMB_KEY, `${newNumb}`);
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
function addClass(options, parent = document.body) {
|
|
176
|
+
if (options.lock) {
|
|
177
|
+
addHiddenClass(parent);
|
|
178
|
+
} else {
|
|
179
|
+
removeHiddenClass(parent);
|
|
180
|
+
}
|
|
181
|
+
addRelativeClass(parent);
|
|
182
|
+
}
|
|
183
|
+
let fullscreenInstance = null;
|
|
184
|
+
function Loading(options = {}) {
|
|
185
|
+
var _a;
|
|
186
|
+
const resolved = resolveOptions(options);
|
|
187
|
+
const target = resolved.parent ?? document.body;
|
|
188
|
+
if (resolved.fullscreen && !isNil(fullscreenInstance)) {
|
|
189
|
+
return fullscreenInstance;
|
|
190
|
+
}
|
|
191
|
+
addLoadingNumb(resolved == null ? void 0 : resolved.parent);
|
|
192
|
+
if (instanceMap.has(target)) {
|
|
193
|
+
return instanceMap.get(target);
|
|
194
|
+
}
|
|
195
|
+
const instance = createLoadingComponent({
|
|
196
|
+
...resolved,
|
|
197
|
+
closed: () => {
|
|
198
|
+
var _a2;
|
|
199
|
+
(_a2 = resolved.closed) == null ? void 0 : _a2.call(resolved);
|
|
200
|
+
if (resolved.fullscreen) {
|
|
201
|
+
fullscreenInstance = null;
|
|
202
|
+
}
|
|
203
|
+
}
|
|
204
|
+
});
|
|
205
|
+
addClass(options, resolved == null ? void 0 : resolved.parent);
|
|
206
|
+
(_a = resolved.parent) == null ? void 0 : _a.appendChild(instance.$el);
|
|
207
|
+
nextTick(() => instance.visible.value = !!resolved.visible);
|
|
208
|
+
if (resolved.fullscreen) {
|
|
209
|
+
fullscreenInstance = instance;
|
|
210
|
+
}
|
|
211
|
+
instanceMap.set(target, instance);
|
|
212
|
+
return instance;
|
|
213
|
+
}
|
|
214
|
+
const INSTANCE_KEY = Symbol("loading");
|
|
215
|
+
function createInstance(el, binding) {
|
|
216
|
+
const getProp = (name) => {
|
|
217
|
+
return el.getAttribute(`er-loading-${name}`);
|
|
218
|
+
};
|
|
219
|
+
const getModifier = (name) => {
|
|
220
|
+
return binding.modifiers[name];
|
|
221
|
+
};
|
|
222
|
+
const fullscreen = getModifier("fullscreen");
|
|
223
|
+
const options = {
|
|
224
|
+
text: getProp("text"),
|
|
225
|
+
spinner: getProp("spinner"),
|
|
226
|
+
background: getProp("background"),
|
|
227
|
+
target: fullscreen ? void 0 : el,
|
|
228
|
+
body: getModifier("body"),
|
|
229
|
+
lock: getModifier("lock"),
|
|
230
|
+
fullscreen
|
|
231
|
+
};
|
|
232
|
+
el[INSTANCE_KEY] = {
|
|
233
|
+
options,
|
|
234
|
+
instance: Loading(options)
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
const vLoading = {
|
|
238
|
+
mounted(el, binding) {
|
|
239
|
+
if (binding.value) createInstance(el, binding);
|
|
240
|
+
},
|
|
241
|
+
updated(el, binding) {
|
|
242
|
+
var _a, _b;
|
|
243
|
+
if (binding.oldValue === binding.value) return;
|
|
244
|
+
if (binding.value && !binding.oldValue) {
|
|
245
|
+
createInstance(el, binding);
|
|
246
|
+
return;
|
|
247
|
+
}
|
|
248
|
+
(_b = (_a = el[INSTANCE_KEY]) == null ? void 0 : _a.instance) == null ? void 0 : _b.close();
|
|
249
|
+
},
|
|
250
|
+
unmounted(el) {
|
|
251
|
+
var _a;
|
|
252
|
+
(_a = el[INSTANCE_KEY]) == null ? void 0 : _a.instance.close();
|
|
253
|
+
el[INSTANCE_KEY] = void 0;
|
|
254
|
+
}
|
|
255
|
+
};
|
|
256
|
+
const BnLoading = {
|
|
257
|
+
name: "BnLoading",
|
|
258
|
+
install(app) {
|
|
259
|
+
app.directive("loading", vLoading);
|
|
260
|
+
app.config.globalProperties.$loading = Loading;
|
|
261
|
+
},
|
|
262
|
+
directive: vLoading,
|
|
263
|
+
service: Loading
|
|
264
|
+
};
|
|
265
|
+
export {
|
|
266
|
+
BnLoading as B,
|
|
267
|
+
Loading as L,
|
|
268
|
+
vLoading as v
|
|
269
|
+
};
|
|
@@ -0,0 +1,203 @@
|
|
|
1
|
+
import { defineComponent, ref, computed, onMounted, watch, openBlock, createBlock, Transition, withCtx, withDirectives, createElementVNode, normalizeStyle, normalizeClass, createVNode, renderSlot, unref, createCommentVNode, createElementBlock, withModifiers, vShow, shallowReactive, isVNode, h, render } from "vue";
|
|
2
|
+
import { d as useOffset, a as useEventListener, e as useZIndex, b as useId } from "./hooks-D92zul9o.js";
|
|
3
|
+
import { t as typeIconMap, R as RenderVnode, b as withInstallFunction } from "./utils-Uf9tqvV5.js";
|
|
4
|
+
import { _ as _sfc_main$1 } from "./Icon-C5WM3GNh.js";
|
|
5
|
+
import { faCircleInfo } from "@fortawesome/free-solid-svg-icons";
|
|
6
|
+
import { b as bind, e as delay, g as forEach, m as isString, f as findIndex, h as get, s as set } from "./vendor-R0ZbR4ac.js";
|
|
7
|
+
const messageTypes = [
|
|
8
|
+
"info",
|
|
9
|
+
"success",
|
|
10
|
+
"warning",
|
|
11
|
+
"danger",
|
|
12
|
+
"error"
|
|
13
|
+
];
|
|
14
|
+
const _hoisted_1 = { class: "er-message__content" };
|
|
15
|
+
const _hoisted_2 = {
|
|
16
|
+
key: 0,
|
|
17
|
+
class: "er-message__close"
|
|
18
|
+
};
|
|
19
|
+
const _sfc_main = /* @__PURE__ */ defineComponent({
|
|
20
|
+
...{
|
|
21
|
+
name: "BnMessage"
|
|
22
|
+
},
|
|
23
|
+
__name: "Message",
|
|
24
|
+
props: {
|
|
25
|
+
id: {},
|
|
26
|
+
message: {},
|
|
27
|
+
duration: { default: 3e3 },
|
|
28
|
+
showClose: { type: Boolean },
|
|
29
|
+
center: { type: Boolean },
|
|
30
|
+
type: { default: "info" },
|
|
31
|
+
offset: { default: 10 },
|
|
32
|
+
zIndex: {},
|
|
33
|
+
transitionName: { default: "fade-up" },
|
|
34
|
+
onDestory: {}
|
|
35
|
+
},
|
|
36
|
+
setup(__props, { expose: __expose }) {
|
|
37
|
+
const props = __props;
|
|
38
|
+
const visible = ref(false);
|
|
39
|
+
const messageRef = ref();
|
|
40
|
+
const iconName = computed(() => typeIconMap.get(props.type) ?? faCircleInfo);
|
|
41
|
+
const boxHeight = ref(0);
|
|
42
|
+
const { topOffset, bottomOffset } = useOffset({
|
|
43
|
+
getLastBottomOffset: bind(getLastBottomOffset, props),
|
|
44
|
+
offset: props.offset,
|
|
45
|
+
boxHeight
|
|
46
|
+
});
|
|
47
|
+
const cssStyle = computed(() => ({
|
|
48
|
+
top: topOffset.value + "px",
|
|
49
|
+
zIndex: props.zIndex
|
|
50
|
+
}));
|
|
51
|
+
let timer;
|
|
52
|
+
function startTimmer() {
|
|
53
|
+
if (props.duration === 0) return;
|
|
54
|
+
timer = delay(close, props.duration);
|
|
55
|
+
}
|
|
56
|
+
function clearTimer() {
|
|
57
|
+
clearTimeout(timer);
|
|
58
|
+
}
|
|
59
|
+
function close() {
|
|
60
|
+
visible.value = false;
|
|
61
|
+
}
|
|
62
|
+
onMounted(() => {
|
|
63
|
+
visible.value = true;
|
|
64
|
+
startTimmer();
|
|
65
|
+
});
|
|
66
|
+
watch(visible, (val) => {
|
|
67
|
+
if (!val) boxHeight.value = -props.offset;
|
|
68
|
+
});
|
|
69
|
+
useEventListener(document, "keydown", (e) => {
|
|
70
|
+
const { code } = e;
|
|
71
|
+
if (code === "Escape") {
|
|
72
|
+
close();
|
|
73
|
+
}
|
|
74
|
+
});
|
|
75
|
+
__expose({
|
|
76
|
+
bottomOffset,
|
|
77
|
+
close
|
|
78
|
+
});
|
|
79
|
+
return (_ctx, _cache) => {
|
|
80
|
+
return openBlock(), createBlock(Transition, {
|
|
81
|
+
name: __props.transitionName,
|
|
82
|
+
onEnter: _cache[0] || (_cache[0] = ($event) => boxHeight.value = messageRef.value.getBoundingClientRect().height),
|
|
83
|
+
onAfterLeave: _cache[1] || (_cache[1] = ($event) => !visible.value && __props.onDestory())
|
|
84
|
+
}, {
|
|
85
|
+
default: withCtx(() => [
|
|
86
|
+
withDirectives(createElementVNode("div", {
|
|
87
|
+
ref_key: "messageRef",
|
|
88
|
+
ref: messageRef,
|
|
89
|
+
class: normalizeClass(["er-message", {
|
|
90
|
+
[`er-message--${__props.type}`]: __props.type,
|
|
91
|
+
"is-close": __props.showClose,
|
|
92
|
+
"text-center": __props.center
|
|
93
|
+
}]),
|
|
94
|
+
style: normalizeStyle(cssStyle.value),
|
|
95
|
+
role: "alert",
|
|
96
|
+
onMouseenter: clearTimer,
|
|
97
|
+
onMouseleave: startTimmer
|
|
98
|
+
}, [
|
|
99
|
+
createVNode(_sfc_main$1, {
|
|
100
|
+
class: "er-message__icon",
|
|
101
|
+
icon: iconName.value
|
|
102
|
+
}, null, 8, ["icon"]),
|
|
103
|
+
createElementVNode("div", _hoisted_1, [
|
|
104
|
+
renderSlot(_ctx.$slots, "default", {}, () => [
|
|
105
|
+
__props.message ? (openBlock(), createBlock(unref(RenderVnode), {
|
|
106
|
+
key: 0,
|
|
107
|
+
vNode: __props.message
|
|
108
|
+
}, null, 8, ["vNode"])) : createCommentVNode("", true)
|
|
109
|
+
])
|
|
110
|
+
]),
|
|
111
|
+
__props.showClose ? (openBlock(), createElementBlock("div", _hoisted_2, [
|
|
112
|
+
createVNode(_sfc_main$1, {
|
|
113
|
+
icon: "xmark",
|
|
114
|
+
onClick: withModifiers(close, ["stop"])
|
|
115
|
+
})
|
|
116
|
+
])) : createCommentVNode("", true)
|
|
117
|
+
], 38), [
|
|
118
|
+
[vShow, visible.value]
|
|
119
|
+
])
|
|
120
|
+
]),
|
|
121
|
+
_: 3
|
|
122
|
+
}, 8, ["name"]);
|
|
123
|
+
};
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
const instances = shallowReactive([]);
|
|
127
|
+
const { nextZIndex } = useZIndex();
|
|
128
|
+
const messageDefaults = {
|
|
129
|
+
type: "info",
|
|
130
|
+
duration: 3e3,
|
|
131
|
+
offset: 10,
|
|
132
|
+
transitionName: "fade-up"
|
|
133
|
+
};
|
|
134
|
+
function normalizeOptions(options) {
|
|
135
|
+
const result = !options || isVNode(options) || isString(options) ? {
|
|
136
|
+
message: options
|
|
137
|
+
} : options;
|
|
138
|
+
return { ...messageDefaults, ...result };
|
|
139
|
+
}
|
|
140
|
+
function createMessage(props) {
|
|
141
|
+
const id = useId().value;
|
|
142
|
+
const container = document.createElement("div");
|
|
143
|
+
const destory = () => {
|
|
144
|
+
const idx = findIndex(instances, { id });
|
|
145
|
+
if (idx === -1) return;
|
|
146
|
+
instances.splice(idx, 1);
|
|
147
|
+
render(null, container);
|
|
148
|
+
};
|
|
149
|
+
const _props = {
|
|
150
|
+
...props,
|
|
151
|
+
id,
|
|
152
|
+
zIndex: nextZIndex(),
|
|
153
|
+
onDestory: destory
|
|
154
|
+
};
|
|
155
|
+
const vnode = h(_sfc_main, _props);
|
|
156
|
+
render(vnode, container);
|
|
157
|
+
document.body.appendChild(container.firstElementChild);
|
|
158
|
+
const vm = vnode.component;
|
|
159
|
+
const handler = {
|
|
160
|
+
close: () => vm.exposed.close()
|
|
161
|
+
};
|
|
162
|
+
const instance = {
|
|
163
|
+
props: _props,
|
|
164
|
+
id,
|
|
165
|
+
vm,
|
|
166
|
+
vnode,
|
|
167
|
+
handler
|
|
168
|
+
};
|
|
169
|
+
instances.push(instance);
|
|
170
|
+
return instance;
|
|
171
|
+
}
|
|
172
|
+
const message = function(options = {}) {
|
|
173
|
+
const normalized = normalizeOptions(options);
|
|
174
|
+
const instance = createMessage(normalized);
|
|
175
|
+
return instance.handler;
|
|
176
|
+
};
|
|
177
|
+
function getLastBottomOffset() {
|
|
178
|
+
const idx = findIndex(instances, { id: this.id });
|
|
179
|
+
if (idx <= 0) return 0;
|
|
180
|
+
return get(instances, [idx - 1, "vm", "exposed", "bottomOffset", "value"]);
|
|
181
|
+
}
|
|
182
|
+
function closeAll(type) {
|
|
183
|
+
forEach(instances, (instance) => {
|
|
184
|
+
if (type) {
|
|
185
|
+
instance.props.type === type && instance.handler.close();
|
|
186
|
+
return;
|
|
187
|
+
}
|
|
188
|
+
instance.handler.close();
|
|
189
|
+
});
|
|
190
|
+
}
|
|
191
|
+
forEach(
|
|
192
|
+
messageTypes,
|
|
193
|
+
(type) => set(message, type, (options) => {
|
|
194
|
+
const normalized = normalizeOptions(options);
|
|
195
|
+
return message({ ...normalized, type });
|
|
196
|
+
})
|
|
197
|
+
);
|
|
198
|
+
message.closeAll = closeAll;
|
|
199
|
+
const BnMessage = withInstallFunction(message, "$message");
|
|
200
|
+
export {
|
|
201
|
+
BnMessage as B,
|
|
202
|
+
messageTypes as m
|
|
203
|
+
};
|