@rainbow-oh/yee-c 0.8.2 → 0.8.4
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/Form/form-store.js +3 -0
- package/dist/cjs/Input/style/index.less +1 -0
- package/dist/cjs/Select/interface.d.ts +1 -1
- package/dist/cjs/Selector/style/index.less +1 -0
- package/dist/cjs/Table/icon/arrow-icon.js +1 -1
- package/dist/cjs/Table/theader/cell.js +6 -3
- package/dist/cjs/TextArea/style/index.less +1 -0
- package/dist/cjs/VerificationCode/style/index.less +1 -0
- package/dist/cjs/hooks/useCountdown.d.ts +2 -1
- package/dist/cjs/hooks/useCountdown.js +46 -23
- package/dist/cjs/locale/interface.d.ts +3 -0
- package/dist/cjs/locale/lang/en_US.js +4 -1
- package/dist/cjs/locale/lang/ja_JP.js +4 -1
- package/dist/cjs/locale/lang/zh_CN.js +4 -1
- package/dist/cjs/locale/lang/zh_TW.js +4 -1
- package/dist/cjs/message/demo/base.js +1 -1
- package/dist/cjs/message/index.d.ts +1 -1
- package/dist/cjs/message/interface.d.ts +16 -7
- package/dist/cjs/message/message-provider.d.ts +2 -1
- package/dist/cjs/message/message-provider.js +1 -1
- package/dist/cjs/message/message.js +14 -9
- package/dist/cjs/message/style/index.less +3 -1
- package/dist/cjs/message/use-message.d.ts +3 -12
- package/dist/cjs/message/use-message.js +103 -45
- package/dist/cjs/message/wrapper.d.ts +21 -27
- package/dist/cjs/message/wrapper.js +49 -19
- package/dist/cjs/notice/index.d.ts +1 -1
- package/dist/cjs/notice/interface.d.ts +17 -7
- package/dist/cjs/notice/notice-list.d.ts +3 -3
- package/dist/cjs/notice/notice-provider.d.ts +2 -1
- package/dist/cjs/notice/notice-provider.js +1 -1
- package/dist/cjs/notice/notice.js +63 -20
- package/dist/cjs/notice/style/index.less +13 -1
- package/dist/cjs/notice/use-notice.d.ts +2 -11
- package/dist/cjs/notice/use-notice.js +156 -71
- package/dist/cjs/notice/wrapper.d.ts +19 -15
- package/dist/cjs/notice/wrapper.js +122 -52
- package/dist/cjs/style/size.css +3 -3
- package/dist/cjs/style/themes.css +1 -1
- package/dist/cjs/style/variables.css +4 -4
- package/dist/cjs/version.d.ts +1 -1
- package/dist/cjs/version.js +1 -1
- package/dist/esm/Form/form-store.js +25 -17
- package/dist/esm/Input/style/index.less +1 -0
- package/dist/esm/Select/interface.d.ts +1 -1
- package/dist/esm/Selector/style/index.less +1 -0
- package/dist/esm/Table/icon/arrow-icon.js +1 -1
- package/dist/esm/Table/theader/cell.js +7 -3
- package/dist/esm/TextArea/style/index.less +1 -0
- package/dist/esm/VerificationCode/style/index.less +1 -0
- package/dist/esm/hooks/useCountdown.d.ts +2 -1
- package/dist/esm/hooks/useCountdown.js +44 -14
- package/dist/esm/locale/interface.d.ts +3 -0
- package/dist/esm/locale/lang/en_US.js +4 -1
- package/dist/esm/locale/lang/ja_JP.js +4 -1
- package/dist/esm/locale/lang/zh_CN.js +4 -1
- package/dist/esm/locale/lang/zh_TW.js +4 -1
- package/dist/esm/message/demo/base.js +4 -1
- package/dist/esm/message/index.d.ts +1 -1
- package/dist/esm/message/interface.d.ts +16 -7
- package/dist/esm/message/message-provider.d.ts +2 -1
- package/dist/esm/message/message-provider.js +1 -1
- package/dist/esm/message/message.js +22 -9
- package/dist/esm/message/style/index.less +3 -1
- package/dist/esm/message/use-message.d.ts +3 -12
- package/dist/esm/message/use-message.js +129 -79
- package/dist/esm/message/wrapper.d.ts +21 -27
- package/dist/esm/message/wrapper.js +60 -18
- package/dist/esm/notice/index.d.ts +1 -1
- package/dist/esm/notice/interface.d.ts +17 -7
- package/dist/esm/notice/notice-list.d.ts +3 -3
- package/dist/esm/notice/notice-provider.d.ts +2 -1
- package/dist/esm/notice/notice-provider.js +1 -1
- package/dist/esm/notice/notice.js +73 -21
- package/dist/esm/notice/style/index.less +13 -1
- package/dist/esm/notice/use-notice.d.ts +2 -11
- package/dist/esm/notice/use-notice.js +180 -100
- package/dist/esm/notice/wrapper.d.ts +19 -15
- package/dist/esm/notice/wrapper.js +144 -62
- package/dist/esm/style/size.css +3 -3
- package/dist/esm/style/themes.css +1 -1
- package/dist/esm/style/variables.css +4 -4
- package/dist/esm/version.d.ts +1 -1
- package/dist/esm/version.js +1 -1
- package/dist/umd/yee-c.min.css +2 -2
- package/dist/umd/yee-c.min.js +1 -1
- package/package.json +1 -1
- package/src/Form/form-store.ts +5 -0
- package/src/Input/style/index.less +1 -0
- package/src/Select/interface.ts +1 -1
- package/src/Selector/style/index.less +1 -0
- package/src/Table/icon/arrow-icon.tsx +1 -1
- package/src/Table/theader/cell.tsx +6 -3
- package/src/TextArea/style/index.less +1 -0
- package/src/VerificationCode/style/index.less +1 -0
- package/src/hooks/useCountdown.ts +52 -21
- package/src/locale/interface.ts +3 -0
- package/src/locale/lang/en_US.ts +3 -0
- package/src/locale/lang/ja_JP.ts +3 -0
- package/src/locale/lang/zh_CN.ts +3 -0
- package/src/locale/lang/zh_TW.ts +3 -0
- package/src/message/demo/base.tsx +1 -1
- package/src/message/index.ts +1 -1
- package/src/message/interface.ts +22 -7
- package/src/message/message-provider.tsx +3 -2
- package/src/message/message.test.tsx +283 -0
- package/src/message/message.tsx +14 -9
- package/src/message/style/index.less +3 -1
- package/src/message/use-message.tsx +144 -67
- package/src/message/wrapper.tsx +62 -20
- package/src/notice/index.en-US.md +76 -75
- package/src/notice/index.ts +6 -1
- package/src/notice/index.zh-CN.md +3 -2
- package/src/notice/interface.ts +31 -14
- package/src/notice/notice-list.tsx +3 -9
- package/src/notice/notice-provider.tsx +3 -2
- package/src/notice/notice.test.tsx +450 -0
- package/src/notice/notice.tsx +69 -21
- package/src/notice/style/index.less +13 -1
- package/src/notice/use-notice.tsx +210 -94
- package/src/notice/wrapper.tsx +159 -71
- package/src/style/size.css +3 -3
- package/src/version.ts +1 -1
|
@@ -52,85 +52,170 @@ module.exports = __toCommonJS(use_notice_exports);
|
|
|
52
52
|
var import_react = __toESM(require("react"));
|
|
53
53
|
var import_react_dom = require("react-dom");
|
|
54
54
|
var import_notice_list = __toESM(require("./notice-list"));
|
|
55
|
+
var invokeOnClose = (notices) => {
|
|
56
|
+
const errors = [];
|
|
57
|
+
notices.forEach((notice) => {
|
|
58
|
+
var _a;
|
|
59
|
+
try {
|
|
60
|
+
(_a = notice.onClose) == null ? void 0 : _a.call(notice);
|
|
61
|
+
} catch (error) {
|
|
62
|
+
errors.push(error);
|
|
63
|
+
}
|
|
64
|
+
});
|
|
65
|
+
errors.forEach((error) => {
|
|
66
|
+
const reportError = globalThis.reportError;
|
|
67
|
+
if (reportError) {
|
|
68
|
+
reportError(error);
|
|
69
|
+
} else {
|
|
70
|
+
console.error(error);
|
|
71
|
+
}
|
|
72
|
+
});
|
|
73
|
+
};
|
|
55
74
|
var useNotice = () => {
|
|
56
75
|
const [noticesByPlacement, setNoticesByPlacement] = (0, import_react.useState)(/* @__PURE__ */ new Map());
|
|
57
|
-
const
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
76
|
+
const [portalContainer, setPortalContainer] = (0, import_react.useState)(
|
|
77
|
+
null
|
|
78
|
+
);
|
|
79
|
+
const noticesRef = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
80
|
+
const generationByKey = (0, import_react.useRef)(/* @__PURE__ */ new Map());
|
|
81
|
+
const generation = (0, import_react.useRef)(0);
|
|
82
|
+
const timerGeneration = (0, import_react.useRef)(0);
|
|
83
|
+
const autoKey = (0, import_react.useRef)(0);
|
|
84
|
+
(0, import_react.useEffect)(() => {
|
|
85
|
+
setPortalContainer(document.body);
|
|
67
86
|
}, []);
|
|
68
|
-
const
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
if (filtered.length === 0) {
|
|
74
|
-
newMap.delete(placement);
|
|
75
|
-
} else {
|
|
76
|
-
newMap.set(placement, filtered);
|
|
77
|
-
}
|
|
78
|
-
return newMap;
|
|
79
|
-
});
|
|
80
|
-
};
|
|
81
|
-
const noticeApi = {
|
|
82
|
-
open: (props) => {
|
|
83
|
-
add(
|
|
84
|
-
typeof props === "string" ? { content: props, status: "info" } : __spreadValues({ status: "info" }, props)
|
|
85
|
-
);
|
|
87
|
+
const updateNotices = (0, import_react.useCallback)(
|
|
88
|
+
(updater) => {
|
|
89
|
+
const nextNotices = updater(noticesRef.current);
|
|
90
|
+
noticesRef.current = nextNotices;
|
|
91
|
+
setNoticesByPlacement(nextNotices);
|
|
86
92
|
},
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
);
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
)
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
typeof props === "string" ? { content: props, status: "info" } : __spreadProps(__spreadValues({}, props), { status: "info" })
|
|
105
|
-
);
|
|
106
|
-
},
|
|
107
|
-
destroy: (key) => {
|
|
108
|
-
setNoticesByPlacement((prev) => {
|
|
109
|
-
const newMap = new Map(prev);
|
|
110
|
-
newMap.forEach((notices, placement) => {
|
|
111
|
-
const filtered = notices.filter((notice) => notice.key !== key);
|
|
93
|
+
[]
|
|
94
|
+
);
|
|
95
|
+
const onDestroy = (0, import_react.useCallback)(
|
|
96
|
+
(key, expectedTimerGeneration) => {
|
|
97
|
+
var _a;
|
|
98
|
+
let target;
|
|
99
|
+
noticesRef.current.forEach((items) => {
|
|
100
|
+
target != null ? target : target = items.find((item) => item.key === key);
|
|
101
|
+
});
|
|
102
|
+
if (!target || expectedTimerGeneration !== void 0 && target.timerGeneration !== expectedTimerGeneration) {
|
|
103
|
+
return;
|
|
104
|
+
}
|
|
105
|
+
generationByKey.current.delete(key);
|
|
106
|
+
updateNotices((current) => {
|
|
107
|
+
const next = new Map(current);
|
|
108
|
+
next.forEach((items, placement) => {
|
|
109
|
+
const filtered = items.filter((item) => item.key !== key);
|
|
112
110
|
if (filtered.length === 0) {
|
|
113
|
-
|
|
114
|
-
} else if (filtered.length !==
|
|
115
|
-
|
|
111
|
+
next.delete(placement);
|
|
112
|
+
} else if (filtered.length !== items.length) {
|
|
113
|
+
next.set(placement, filtered);
|
|
116
114
|
}
|
|
117
115
|
});
|
|
118
|
-
return
|
|
116
|
+
return next;
|
|
119
117
|
});
|
|
118
|
+
(_a = target.onClose) == null ? void 0 : _a.call(target);
|
|
120
119
|
},
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
|
|
126
|
-
|
|
127
|
-
|
|
128
|
-
|
|
129
|
-
|
|
120
|
+
[updateNotices]
|
|
121
|
+
);
|
|
122
|
+
const add = (0, import_react.useCallback)(
|
|
123
|
+
(props) => {
|
|
124
|
+
var _a, _b;
|
|
125
|
+
const placement = (_a = props.placement) != null ? _a : "topRight";
|
|
126
|
+
let key = props.key;
|
|
127
|
+
if (key === void 0 || key === null) {
|
|
128
|
+
do {
|
|
129
|
+
key = `__yee_notice_auto_${autoKey.current++}`;
|
|
130
|
+
} while (generationByKey.current.has(key));
|
|
130
131
|
}
|
|
132
|
+
const keyGeneration = (_b = generationByKey.current.get(key)) != null ? _b : generation.current++;
|
|
133
|
+
generationByKey.current.set(key, keyGeneration);
|
|
134
|
+
const nextNotice = __spreadProps(__spreadValues({}, props), {
|
|
135
|
+
key,
|
|
136
|
+
placement,
|
|
137
|
+
timerGeneration: timerGeneration.current++
|
|
138
|
+
});
|
|
139
|
+
updateNotices((current) => {
|
|
140
|
+
const next = new Map(current);
|
|
141
|
+
let existingIndex = -1;
|
|
142
|
+
next.forEach((items, currentPlacement) => {
|
|
143
|
+
const index = items.findIndex((item) => item.key === key);
|
|
144
|
+
if (index < 0) {
|
|
145
|
+
return;
|
|
146
|
+
}
|
|
147
|
+
if (currentPlacement === placement) {
|
|
148
|
+
existingIndex = index;
|
|
149
|
+
} else {
|
|
150
|
+
const filtered = items.filter((item) => item.key !== key);
|
|
151
|
+
if (filtered.length === 0) {
|
|
152
|
+
next.delete(currentPlacement);
|
|
153
|
+
} else {
|
|
154
|
+
next.set(currentPlacement, filtered);
|
|
155
|
+
}
|
|
156
|
+
}
|
|
157
|
+
});
|
|
158
|
+
const targetNotices = (next.get(placement) || []).filter(
|
|
159
|
+
(item) => item.key !== key
|
|
160
|
+
);
|
|
161
|
+
if (existingIndex >= 0) {
|
|
162
|
+
targetNotices.splice(existingIndex, 0, nextNotice);
|
|
163
|
+
} else {
|
|
164
|
+
targetNotices.push(nextNotice);
|
|
165
|
+
}
|
|
166
|
+
next.set(placement, targetNotices);
|
|
167
|
+
return next;
|
|
168
|
+
});
|
|
169
|
+
return () => {
|
|
170
|
+
if (generationByKey.current.get(key) === keyGeneration) {
|
|
171
|
+
onDestroy(key);
|
|
172
|
+
}
|
|
173
|
+
};
|
|
174
|
+
},
|
|
175
|
+
[onDestroy, updateNotices]
|
|
176
|
+
);
|
|
177
|
+
const clear = (0, import_react.useCallback)(
|
|
178
|
+
(placement) => {
|
|
179
|
+
const removed = placement ? noticesRef.current.get(placement) || [] : Array.from(noticesRef.current.values()).flat();
|
|
180
|
+
removed.forEach((item) => generationByKey.current.delete(item.key));
|
|
181
|
+
updateNotices((current) => {
|
|
182
|
+
if (!placement) {
|
|
183
|
+
return /* @__PURE__ */ new Map();
|
|
184
|
+
}
|
|
185
|
+
const next = new Map(current);
|
|
186
|
+
next.delete(placement);
|
|
187
|
+
return next;
|
|
188
|
+
});
|
|
189
|
+
invokeOnClose(removed);
|
|
190
|
+
},
|
|
191
|
+
[updateNotices]
|
|
192
|
+
);
|
|
193
|
+
const noticeApi = (0, import_react.useMemo)(
|
|
194
|
+
() => ({
|
|
195
|
+
open: (props) => add(
|
|
196
|
+
typeof props === "string" ? { content: props, status: "info" } : __spreadValues({ status: "info" }, props)
|
|
197
|
+
),
|
|
198
|
+
success: (props) => add(
|
|
199
|
+
typeof props === "string" ? { content: props, status: "success" } : __spreadProps(__spreadValues({}, props), { status: "success" })
|
|
200
|
+
),
|
|
201
|
+
error: (props) => add(
|
|
202
|
+
typeof props === "string" ? { content: props, status: "error" } : __spreadProps(__spreadValues({}, props), { status: "error" })
|
|
203
|
+
),
|
|
204
|
+
warning: (props) => add(
|
|
205
|
+
typeof props === "string" ? { content: props, status: "warning" } : __spreadProps(__spreadValues({}, props), { status: "warning" })
|
|
206
|
+
),
|
|
207
|
+
info: (props) => add(
|
|
208
|
+
typeof props === "string" ? { content: props, status: "info" } : __spreadProps(__spreadValues({}, props), { status: "info" })
|
|
209
|
+
),
|
|
210
|
+
destroy: onDestroy,
|
|
211
|
+
clear
|
|
212
|
+
}),
|
|
213
|
+
[add, clear, onDestroy]
|
|
214
|
+
);
|
|
215
|
+
const noticeHolders = (0, import_react.useMemo)(() => {
|
|
216
|
+
if (!portalContainer) {
|
|
217
|
+
return [];
|
|
131
218
|
}
|
|
132
|
-
};
|
|
133
|
-
const noticeHolders = import_react.default.useMemo(() => {
|
|
134
219
|
const holders = [];
|
|
135
220
|
noticesByPlacement.forEach((notices, placement) => {
|
|
136
221
|
holders.push(
|
|
@@ -140,16 +225,16 @@ var useNotice = () => {
|
|
|
140
225
|
{
|
|
141
226
|
items: notices,
|
|
142
227
|
placement,
|
|
143
|
-
onDestroy
|
|
228
|
+
onDestroy
|
|
144
229
|
}
|
|
145
230
|
),
|
|
146
|
-
|
|
231
|
+
portalContainer,
|
|
147
232
|
`notice-${placement}`
|
|
148
233
|
)
|
|
149
234
|
);
|
|
150
235
|
});
|
|
151
236
|
return holders;
|
|
152
|
-
}, [noticesByPlacement]);
|
|
237
|
+
}, [noticesByPlacement, onDestroy, portalContainer]);
|
|
153
238
|
return { noticeApi, noticeHolders };
|
|
154
239
|
};
|
|
155
240
|
var use_notice_default = useNotice;
|
|
@@ -1,31 +1,35 @@
|
|
|
1
1
|
import { Root } from 'react-dom/client';
|
|
2
|
-
import { NoticeConfig, NoticeType, WrapperedNoticeConfig } from './interface';
|
|
3
|
-
type PlacementType = 'topLeft' | 'topRight' | 'bottomLeft' | 'bottomRight' | 'top' | 'bottom';
|
|
2
|
+
import { NoticeClose, NoticeConfig, NoticeType, PlacementType, WrapperedNoticeConfig } from './interface';
|
|
4
3
|
declare class NoticeWrapper {
|
|
5
4
|
roots: Map<PlacementType, Root>;
|
|
6
5
|
containers: Map<PlacementType, HTMLElement>;
|
|
7
6
|
notices: Map<PlacementType, NoticeType[]>;
|
|
7
|
+
generationByKey: Map<string | number, number>;
|
|
8
|
+
generation: number;
|
|
9
|
+
timerGeneration: number;
|
|
8
10
|
constructor();
|
|
9
11
|
uuid(): string;
|
|
10
12
|
private createContainer;
|
|
11
13
|
private cleanupContainer;
|
|
12
14
|
unmount(placement?: PlacementType): void;
|
|
13
15
|
render(placement: PlacementType): void;
|
|
14
|
-
show(params: WrapperedNoticeConfig):
|
|
15
|
-
destroy(key: string | number,
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
16
|
+
show(params: WrapperedNoticeConfig): NoticeClose;
|
|
17
|
+
destroy(key: string | number, expectedTimerGeneration?: number): void;
|
|
18
|
+
clear(placement?: PlacementType): void;
|
|
19
|
+
open(params: string | NoticeConfig): NoticeClose;
|
|
20
|
+
info(params: string | NoticeConfig): NoticeClose;
|
|
21
|
+
success(params: string | NoticeConfig): NoticeClose;
|
|
22
|
+
warning(params: string | NoticeConfig): NoticeClose;
|
|
23
|
+
error(params: string | NoticeConfig): NoticeClose;
|
|
21
24
|
}
|
|
22
25
|
declare const noticeWrapper: NoticeWrapper;
|
|
23
26
|
export default noticeWrapper;
|
|
24
27
|
export declare const notice: {
|
|
25
|
-
open: (params: string | NoticeConfig) =>
|
|
26
|
-
info: (params: string | NoticeConfig) =>
|
|
27
|
-
success: (params: string | NoticeConfig) =>
|
|
28
|
-
warning: (params: string | NoticeConfig) =>
|
|
29
|
-
error: (params: string | NoticeConfig) =>
|
|
30
|
-
destroy: (key: string | number,
|
|
28
|
+
open: (params: string | NoticeConfig) => NoticeClose;
|
|
29
|
+
info: (params: string | NoticeConfig) => NoticeClose;
|
|
30
|
+
success: (params: string | NoticeConfig) => NoticeClose;
|
|
31
|
+
warning: (params: string | NoticeConfig) => NoticeClose;
|
|
32
|
+
error: (params: string | NoticeConfig) => NoticeClose;
|
|
33
|
+
destroy: (key: string | number, expectedTimerGeneration?: number) => void;
|
|
34
|
+
clear: (placement?: PlacementType) => void;
|
|
31
35
|
};
|
|
@@ -53,14 +53,44 @@ module.exports = __toCommonJS(wrapper_exports);
|
|
|
53
53
|
var import_react = __toESM(require("react"));
|
|
54
54
|
var import_client = require("react-dom/client");
|
|
55
55
|
var import_notice_list = __toESM(require("./notice-list"));
|
|
56
|
+
var noop = () => {
|
|
57
|
+
};
|
|
58
|
+
var invokeOnClose = (notices) => {
|
|
59
|
+
const errors = [];
|
|
60
|
+
notices.forEach((notice2) => {
|
|
61
|
+
var _a;
|
|
62
|
+
try {
|
|
63
|
+
(_a = notice2.onClose) == null ? void 0 : _a.call(notice2);
|
|
64
|
+
} catch (error) {
|
|
65
|
+
errors.push(error);
|
|
66
|
+
}
|
|
67
|
+
});
|
|
68
|
+
errors.forEach((error) => {
|
|
69
|
+
const reportError = globalThis.reportError;
|
|
70
|
+
if (reportError) {
|
|
71
|
+
reportError(error);
|
|
72
|
+
} else {
|
|
73
|
+
console.error(error);
|
|
74
|
+
}
|
|
75
|
+
});
|
|
76
|
+
};
|
|
56
77
|
var NoticeWrapper = class {
|
|
57
78
|
constructor() {
|
|
58
79
|
this.roots = /* @__PURE__ */ new Map();
|
|
59
80
|
this.containers = /* @__PURE__ */ new Map();
|
|
60
81
|
this.notices = /* @__PURE__ */ new Map();
|
|
82
|
+
this.generationByKey = /* @__PURE__ */ new Map();
|
|
83
|
+
this.generation = 0;
|
|
84
|
+
this.timerGeneration = 0;
|
|
85
|
+
this.destroy = this.destroy.bind(this);
|
|
61
86
|
}
|
|
62
87
|
uuid() {
|
|
63
|
-
|
|
88
|
+
var _a, _b;
|
|
89
|
+
const randomUUID = (_b = (_a = globalThis.crypto) == null ? void 0 : _a.randomUUID) == null ? void 0 : _b.call(_a);
|
|
90
|
+
if (randomUUID) {
|
|
91
|
+
return randomUUID;
|
|
92
|
+
}
|
|
93
|
+
return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (c) => {
|
|
64
94
|
const r = Math.random() * 16 | 0;
|
|
65
95
|
const v = c === "x" ? r : r & 3 | 8;
|
|
66
96
|
return v.toString(16);
|
|
@@ -77,39 +107,41 @@ var NoticeWrapper = class {
|
|
|
77
107
|
}
|
|
78
108
|
cleanupContainer(placement) {
|
|
79
109
|
const container = this.containers.get(placement);
|
|
80
|
-
if (container
|
|
110
|
+
if (container == null ? void 0 : container.parentNode) {
|
|
81
111
|
container.parentNode.removeChild(container);
|
|
82
|
-
this.containers.delete(placement);
|
|
83
112
|
}
|
|
113
|
+
this.containers.delete(placement);
|
|
84
114
|
}
|
|
85
115
|
unmount(placement) {
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
}
|
|
95
|
-
|
|
96
|
-
root.unmount();
|
|
97
|
-
this.cleanupContainer(placement2);
|
|
98
|
-
});
|
|
116
|
+
const placements = placement ? [placement] : Array.from(this.notices.keys());
|
|
117
|
+
const removed = placements.flatMap((item) => this.notices.get(item) || []);
|
|
118
|
+
placements.forEach((item) => {
|
|
119
|
+
var _a;
|
|
120
|
+
(_a = this.roots.get(item)) == null ? void 0 : _a.unmount();
|
|
121
|
+
this.roots.delete(item);
|
|
122
|
+
this.cleanupContainer(item);
|
|
123
|
+
this.notices.delete(item);
|
|
124
|
+
});
|
|
125
|
+
if (!placement) {
|
|
99
126
|
this.roots.clear();
|
|
100
127
|
this.containers.clear();
|
|
101
|
-
this.notices.clear();
|
|
102
128
|
}
|
|
129
|
+
removed.forEach((item) => {
|
|
130
|
+
this.generationByKey.delete(item.key);
|
|
131
|
+
});
|
|
132
|
+
invokeOnClose(removed);
|
|
103
133
|
}
|
|
104
134
|
render(placement) {
|
|
135
|
+
var _a;
|
|
136
|
+
if (typeof document === "undefined") {
|
|
137
|
+
return;
|
|
138
|
+
}
|
|
105
139
|
const notices = this.notices.get(placement) || [];
|
|
106
140
|
if (notices.length === 0) {
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
this.cleanupContainer(placement);
|
|
112
|
-
}
|
|
141
|
+
(_a = this.roots.get(placement)) == null ? void 0 : _a.unmount();
|
|
142
|
+
this.roots.delete(placement);
|
|
143
|
+
this.cleanupContainer(placement);
|
|
144
|
+
this.notices.delete(placement);
|
|
113
145
|
return;
|
|
114
146
|
}
|
|
115
147
|
const container = this.createContainer(placement);
|
|
@@ -124,60 +156,97 @@ var NoticeWrapper = class {
|
|
|
124
156
|
{
|
|
125
157
|
items: notices,
|
|
126
158
|
placement,
|
|
127
|
-
onDestroy:
|
|
159
|
+
onDestroy: this.destroy
|
|
128
160
|
}
|
|
129
161
|
)
|
|
130
162
|
);
|
|
131
163
|
}
|
|
132
164
|
show(params) {
|
|
133
|
-
|
|
134
|
-
if (
|
|
135
|
-
|
|
165
|
+
var _a, _b, _c;
|
|
166
|
+
if (typeof document === "undefined") {
|
|
167
|
+
return noop;
|
|
136
168
|
}
|
|
137
|
-
const
|
|
138
|
-
const
|
|
139
|
-
|
|
140
|
-
|
|
169
|
+
const placement = (_a = params.placement) != null ? _a : "topRight";
|
|
170
|
+
const key = (_b = params.key) != null ? _b : this.uuid();
|
|
171
|
+
const keyGeneration = (_c = this.generationByKey.get(key)) != null ? _c : this.generation++;
|
|
172
|
+
this.generationByKey.set(key, keyGeneration);
|
|
173
|
+
const affectedPlacements = /* @__PURE__ */ new Set([placement]);
|
|
174
|
+
this.notices.forEach((items, currentPlacement) => {
|
|
175
|
+
if (currentPlacement !== placement && items.some((item) => item.key === key)) {
|
|
176
|
+
this.notices.set(
|
|
177
|
+
currentPlacement,
|
|
178
|
+
items.filter((item) => item.key !== key)
|
|
179
|
+
);
|
|
180
|
+
affectedPlacements.add(currentPlacement);
|
|
181
|
+
}
|
|
182
|
+
});
|
|
183
|
+
const currentNotices = this.notices.get(placement) || [];
|
|
184
|
+
const existingIndex = currentNotices.findIndex((item) => item.key === key);
|
|
185
|
+
const nextNotice = __spreadProps(__spreadValues({}, params), {
|
|
186
|
+
key,
|
|
187
|
+
placement,
|
|
188
|
+
timerGeneration: this.timerGeneration++
|
|
189
|
+
});
|
|
190
|
+
const nextNotices = currentNotices.filter((item) => item.key !== key);
|
|
191
|
+
if (existingIndex >= 0) {
|
|
192
|
+
nextNotices.splice(existingIndex, 0, nextNotice);
|
|
141
193
|
} else {
|
|
142
|
-
|
|
194
|
+
nextNotices.push(nextNotice);
|
|
143
195
|
}
|
|
144
|
-
this.notices.set(placement,
|
|
145
|
-
this.render(
|
|
196
|
+
this.notices.set(placement, nextNotices);
|
|
197
|
+
affectedPlacements.forEach((item) => this.render(item));
|
|
198
|
+
return () => {
|
|
199
|
+
if (this.generationByKey.get(key) === keyGeneration) {
|
|
200
|
+
this.destroy(key);
|
|
201
|
+
}
|
|
202
|
+
};
|
|
146
203
|
}
|
|
147
|
-
destroy(key,
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
const filtered = notices.filter((item) => item.key !== key);
|
|
156
|
-
this.notices.set(p, filtered);
|
|
157
|
-
this.render(p);
|
|
158
|
-
});
|
|
204
|
+
destroy(key, expectedTimerGeneration) {
|
|
205
|
+
var _a;
|
|
206
|
+
let target;
|
|
207
|
+
this.notices.forEach((items) => {
|
|
208
|
+
target != null ? target : target = items.find((item) => item.key === key);
|
|
209
|
+
});
|
|
210
|
+
if (!target || expectedTimerGeneration !== void 0 && target.timerGeneration !== expectedTimerGeneration) {
|
|
211
|
+
return;
|
|
159
212
|
}
|
|
213
|
+
const affectedPlacements = /* @__PURE__ */ new Set();
|
|
214
|
+
this.notices.forEach((items, placement) => {
|
|
215
|
+
if (items.some((item) => item.key === key)) {
|
|
216
|
+
this.notices.set(
|
|
217
|
+
placement,
|
|
218
|
+
items.filter((item) => item.key !== key)
|
|
219
|
+
);
|
|
220
|
+
affectedPlacements.add(placement);
|
|
221
|
+
}
|
|
222
|
+
});
|
|
223
|
+
this.generationByKey.delete(key);
|
|
224
|
+
affectedPlacements.forEach((item) => this.render(item));
|
|
225
|
+
(_a = target.onClose) == null ? void 0 : _a.call(target);
|
|
226
|
+
}
|
|
227
|
+
clear(placement) {
|
|
228
|
+
this.unmount(placement);
|
|
160
229
|
}
|
|
161
230
|
open(params) {
|
|
162
|
-
this.show(typeof params === "string" ? { content: params } : params);
|
|
231
|
+
return this.show(typeof params === "string" ? { content: params } : params);
|
|
163
232
|
}
|
|
164
233
|
info(params) {
|
|
165
|
-
this.show(
|
|
234
|
+
return this.show(
|
|
166
235
|
typeof params === "string" ? { status: "info", content: params } : __spreadProps(__spreadValues({}, params), { status: "info" })
|
|
167
236
|
);
|
|
168
237
|
}
|
|
169
238
|
success(params) {
|
|
170
|
-
this.show(
|
|
239
|
+
return this.show(
|
|
171
240
|
typeof params === "string" ? { status: "success", content: params } : __spreadProps(__spreadValues({}, params), { status: "success" })
|
|
172
241
|
);
|
|
173
242
|
}
|
|
174
243
|
warning(params) {
|
|
175
|
-
this.show(
|
|
244
|
+
return this.show(
|
|
176
245
|
typeof params === "string" ? { status: "warning", content: params } : __spreadProps(__spreadValues({}, params), { status: "warning" })
|
|
177
246
|
);
|
|
178
247
|
}
|
|
179
248
|
error(params) {
|
|
180
|
-
this.show(
|
|
249
|
+
return this.show(
|
|
181
250
|
typeof params === "string" ? { status: "error", content: params } : __spreadProps(__spreadValues({}, params), { status: "error" })
|
|
182
251
|
);
|
|
183
252
|
}
|
|
@@ -190,5 +259,6 @@ var notice = {
|
|
|
190
259
|
success: noticeWrapper.success.bind(noticeWrapper),
|
|
191
260
|
warning: noticeWrapper.warning.bind(noticeWrapper),
|
|
192
261
|
error: noticeWrapper.error.bind(noticeWrapper),
|
|
193
|
-
destroy: noticeWrapper.destroy.bind(noticeWrapper)
|
|
262
|
+
destroy: noticeWrapper.destroy.bind(noticeWrapper),
|
|
263
|
+
clear: noticeWrapper.clear.bind(noticeWrapper)
|
|
194
264
|
};
|
package/dist/cjs/style/size.css
CHANGED
|
@@ -323,9 +323,9 @@
|
|
|
323
323
|
--yee-menu-submenu-vertical-top: -4px;
|
|
324
324
|
|
|
325
325
|
/* --Message-- */
|
|
326
|
-
--yee-message-gap:
|
|
327
|
-
--yee-message-padding: 12px
|
|
328
|
-
--yee-message-border-radius:
|
|
326
|
+
--yee-message-gap: 6px;
|
|
327
|
+
--yee-message-padding: 9px 12px;
|
|
328
|
+
--yee-message-border-radius: 8px;
|
|
329
329
|
--yee-message-box-shadow: 0 8px 24px 0 var(--yee-box-shadow-color);
|
|
330
330
|
--yee-message-icon-size: 20px;
|
|
331
331
|
--yee-message-list-top: 24px;
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* @rainbow-oh/yee-c CSS Variables
|
|
3
3
|
* Auto-generated, do not edit manually
|
|
4
|
-
* Generated on 2026-07-
|
|
4
|
+
* Generated on 2026-07-27T03:27:50.585Z
|
|
5
5
|
*/
|
|
6
6
|
|
|
7
7
|
/* ========== color.css ========== */
|
|
@@ -1445,9 +1445,9 @@
|
|
|
1445
1445
|
--yee-menu-submenu-vertical-top: -4px;
|
|
1446
1446
|
|
|
1447
1447
|
/* --Message-- */
|
|
1448
|
-
--yee-message-gap:
|
|
1449
|
-
--yee-message-padding: 12px
|
|
1450
|
-
--yee-message-border-radius:
|
|
1448
|
+
--yee-message-gap: 6px;
|
|
1449
|
+
--yee-message-padding: 9px 12px;
|
|
1450
|
+
--yee-message-border-radius: 8px;
|
|
1451
1451
|
--yee-message-box-shadow: 0 8px 24px 0 var(--yee-box-shadow-color);
|
|
1452
1452
|
--yee-message-icon-size: 20px;
|
|
1453
1453
|
--yee-message-list-top: 24px;
|
package/dist/cjs/version.d.ts
CHANGED
package/dist/cjs/version.js
CHANGED