@niibase/bottom-sheet-manager 1.2.0 → 1.4.0
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/README.md +414 -69
- package/lib/commonjs/events.js +100 -15
- package/lib/commonjs/events.js.map +1 -1
- package/lib/commonjs/index.js +14 -0
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/manager.js +153 -35
- package/lib/commonjs/manager.js.map +1 -1
- package/lib/commonjs/provider.js +92 -54
- package/lib/commonjs/provider.js.map +1 -1
- package/lib/commonjs/router/index.js +80 -21
- package/lib/commonjs/router/index.js.map +1 -1
- package/lib/commonjs/router/router.js +137 -12
- package/lib/commonjs/router/router.js.map +1 -1
- package/lib/commonjs/router/view.js +93 -126
- package/lib/commonjs/router/view.js.map +1 -1
- package/lib/commonjs/sheet.js +122 -98
- package/lib/commonjs/sheet.js.map +1 -1
- package/lib/module/events.js +100 -15
- package/lib/module/events.js.map +1 -1
- package/lib/module/index.js +2 -2
- package/lib/module/index.js.map +1 -1
- package/lib/module/manager.js +154 -35
- package/lib/module/manager.js.map +1 -1
- package/lib/module/provider.js +87 -50
- package/lib/module/provider.js.map +1 -1
- package/lib/module/router/index.js +66 -19
- package/lib/module/router/index.js.map +1 -1
- package/lib/module/router/router.js +135 -11
- package/lib/module/router/router.js.map +1 -1
- package/lib/module/router/view.js +92 -126
- package/lib/module/router/view.js.map +1 -1
- package/lib/module/sheet.js +124 -100
- package/lib/module/sheet.js.map +1 -1
- package/lib/typescript/events.d.ts +46 -12
- package/lib/typescript/events.d.ts.map +1 -1
- package/lib/typescript/index.d.ts +2 -2
- package/lib/typescript/index.d.ts.map +1 -1
- package/lib/typescript/manager.d.ts +73 -7
- package/lib/typescript/manager.d.ts.map +1 -1
- package/lib/typescript/provider.d.ts +22 -16
- package/lib/typescript/provider.d.ts.map +1 -1
- package/lib/typescript/router/index.d.ts +47 -17
- package/lib/typescript/router/index.d.ts.map +1 -1
- package/lib/typescript/router/router.d.ts +44 -5
- package/lib/typescript/router/router.d.ts.map +1 -1
- package/lib/typescript/router/types.d.ts +142 -32
- package/lib/typescript/router/types.d.ts.map +1 -1
- package/lib/typescript/router/view.d.ts +3 -3
- package/lib/typescript/router/view.d.ts.map +1 -1
- package/lib/typescript/sheet.d.ts +1 -1
- package/lib/typescript/sheet.d.ts.map +1 -1
- package/lib/typescript/types.d.ts +52 -21
- package/lib/typescript/types.d.ts.map +1 -1
- package/package.json +14 -15
- package/src/events.ts +118 -27
- package/src/index.ts +2 -1
- package/src/manager.ts +209 -42
- package/src/provider.tsx +144 -71
- package/src/router/index.tsx +77 -33
- package/src/router/router.ts +188 -15
- package/src/router/types.ts +172 -57
- package/src/router/view.tsx +111 -213
- package/src/sheet.tsx +192 -124
- package/src/types.ts +51 -24
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["EventManager","_handlers","Map","_nextId","subscribe","name","handler","Error","id","entry","handlers","get","push","set","unsubscribe","currentHandlers","index","findIndex","h","splice","length","delete","publish","args","handlersSnapshot","slice","i","publishAsync","queueMicrotask","hasSubscribers","subscriberCount","remove","names","clear","once","subscription","eventManager","exports","_default","default"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":"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","ignoreList":[]}
|
package/lib/commonjs/index.js
CHANGED
|
@@ -6,10 +6,12 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
var _exportNames = {
|
|
7
7
|
BottomSheet: true,
|
|
8
8
|
SheetManager: true,
|
|
9
|
+
PrivateManager: true,
|
|
9
10
|
SheetProvider: true,
|
|
10
11
|
useSheetPayload: true,
|
|
11
12
|
useSheetRef: true,
|
|
12
13
|
useOnSheet: true,
|
|
14
|
+
useSheetStackBehavior: true,
|
|
13
15
|
registerSheet: true
|
|
14
16
|
};
|
|
15
17
|
Object.defineProperty(exports, "BottomSheet", {
|
|
@@ -18,6 +20,12 @@ Object.defineProperty(exports, "BottomSheet", {
|
|
|
18
20
|
return _sheet.default;
|
|
19
21
|
}
|
|
20
22
|
});
|
|
23
|
+
Object.defineProperty(exports, "PrivateManager", {
|
|
24
|
+
enumerable: true,
|
|
25
|
+
get: function () {
|
|
26
|
+
return _manager.PrivateManager;
|
|
27
|
+
}
|
|
28
|
+
});
|
|
21
29
|
Object.defineProperty(exports, "SheetManager", {
|
|
22
30
|
enumerable: true,
|
|
23
31
|
get: function () {
|
|
@@ -54,6 +62,12 @@ Object.defineProperty(exports, "useSheetRef", {
|
|
|
54
62
|
return _provider.useSheetRef;
|
|
55
63
|
}
|
|
56
64
|
});
|
|
65
|
+
Object.defineProperty(exports, "useSheetStackBehavior", {
|
|
66
|
+
enumerable: true,
|
|
67
|
+
get: function () {
|
|
68
|
+
return _provider.useStackBehaviorContext;
|
|
69
|
+
}
|
|
70
|
+
});
|
|
57
71
|
var _sheet = _interopRequireDefault(require("./sheet"));
|
|
58
72
|
var _manager = require("./manager");
|
|
59
73
|
var _router = require("./router");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_sheet","_interopRequireDefault","require","_manager","_router","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_provider","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"names":["_sheet","_interopRequireDefault","require","_manager","_router","Object","keys","forEach","key","prototype","hasOwnProperty","call","_exportNames","exports","defineProperty","enumerable","get","_types","_provider","e","__esModule","default"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,IAAAA,MAAA,GAAAC,sBAAA,CAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAF,OAAA,EAAAG,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAJ,OAAA,CAAAI,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAZ,OAAA,CAAAI,GAAA;IAAA;EAAA;AAAA;AACA,IAAAS,MAAA,GAAAf,OAAA;AAAAG,MAAA,CAAAC,IAAA,CAAAW,MAAA,EAAAV,OAAA,WAAAC,GAAA;EAAA,IAAAA,GAAA,kBAAAA,GAAA;EAAA,IAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAC,YAAA,EAAAJ,GAAA;EAAA,IAAAA,GAAA,IAAAK,OAAA,IAAAA,OAAA,CAAAL,GAAA,MAAAS,MAAA,CAAAT,GAAA;EAAAH,MAAA,CAAAS,cAAA,CAAAD,OAAA,EAAAL,GAAA;IAAAO,UAAA;IAAAC,GAAA,WAAAA,CAAA;MAAA,OAAAC,MAAA,CAAAT,GAAA;IAAA;EAAA;AAAA;AACA,IAAAU,SAAA,GAAAhB,OAAA;AAOoB,SAAAD,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
|
package/lib/commonjs/manager.js
CHANGED
|
@@ -4,8 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.SheetManager = exports.PrivateManager = void 0;
|
|
7
|
-
var _events = require("./events");
|
|
8
7
|
var _provider = require("./provider");
|
|
8
|
+
var _events = require("./events");
|
|
9
9
|
// Array of all the ids of Sheets currently rendered in the app.
|
|
10
10
|
const ids = [];
|
|
11
11
|
const keys = [];
|
|
@@ -13,18 +13,28 @@ const refs = {};
|
|
|
13
13
|
const DEFAULT_Z_INDEX = 999;
|
|
14
14
|
const makeKey = (id, context) => `${id}:${context}`;
|
|
15
15
|
const PrivateManager = exports.PrivateManager = {
|
|
16
|
-
//
|
|
16
|
+
// Stack of sheet history for restoration when sheets are closed
|
|
17
17
|
history: [],
|
|
18
18
|
context(options) {
|
|
19
19
|
if (!options) options = {};
|
|
20
20
|
if (!options?.context) {
|
|
21
|
-
//
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
21
|
+
// First try to find a context where this sheet is registered
|
|
22
|
+
if (options?.id) {
|
|
23
|
+
for (const context of _provider.providerRegistryStack.slice().reverse()) {
|
|
24
|
+
if (_provider.sheetsRegistry[context]?.[options.id]) {
|
|
25
|
+
options.context = context;
|
|
26
|
+
break;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
// Fall back to the top-most auto-generated nested context
|
|
32
|
+
if (!options.context) {
|
|
33
|
+
for (const context of _provider.providerRegistryStack.slice().reverse()) {
|
|
34
|
+
if (context.startsWith("$$-auto") && !context.includes(options?.id)) {
|
|
35
|
+
options.context = context;
|
|
36
|
+
break;
|
|
37
|
+
}
|
|
28
38
|
}
|
|
29
39
|
}
|
|
30
40
|
}
|
|
@@ -33,10 +43,11 @@ const PrivateManager = exports.PrivateManager = {
|
|
|
33
43
|
registerRef: (id, context, instance) => {
|
|
34
44
|
const key = makeKey(id, context);
|
|
35
45
|
refs[key] = instance;
|
|
36
|
-
keys.
|
|
46
|
+
if (!keys.includes(key)) {
|
|
47
|
+
keys.push(key);
|
|
48
|
+
}
|
|
37
49
|
},
|
|
38
50
|
/**
|
|
39
|
-
*
|
|
40
51
|
* Get internal ref of a sheet by the given id.
|
|
41
52
|
*
|
|
42
53
|
* @param id Id of the sheet
|
|
@@ -44,8 +55,8 @@ const PrivateManager = exports.PrivateManager = {
|
|
|
44
55
|
*/
|
|
45
56
|
get: (id, context) => {
|
|
46
57
|
if (!context) {
|
|
47
|
-
for (
|
|
48
|
-
for (
|
|
58
|
+
for (const ctx of _provider.providerRegistryStack.slice().reverse()) {
|
|
59
|
+
for (const _id in _provider.sheetsRegistry[ctx]) {
|
|
49
60
|
if (_id === id) {
|
|
50
61
|
context = ctx;
|
|
51
62
|
break;
|
|
@@ -56,25 +67,61 @@ const PrivateManager = exports.PrivateManager = {
|
|
|
56
67
|
return refs[makeKey(id, context)];
|
|
57
68
|
},
|
|
58
69
|
add: (id, context) => {
|
|
59
|
-
|
|
60
|
-
|
|
70
|
+
const key = makeKey(id, context);
|
|
71
|
+
if (!ids.includes(key)) {
|
|
72
|
+
ids.push(key);
|
|
61
73
|
}
|
|
62
74
|
},
|
|
63
75
|
remove: (id, context) => {
|
|
64
|
-
|
|
65
|
-
|
|
76
|
+
const key = makeKey(id, context);
|
|
77
|
+
const index = ids.indexOf(key);
|
|
78
|
+
if (index > -1) {
|
|
79
|
+
ids.splice(index, 1);
|
|
66
80
|
}
|
|
67
81
|
},
|
|
68
82
|
zIndex: (id, context = "global") => {
|
|
69
83
|
const index = keys.indexOf(makeKey(id, context));
|
|
70
84
|
return index > -1 ? DEFAULT_Z_INDEX + index + 1 : DEFAULT_Z_INDEX;
|
|
71
85
|
},
|
|
72
|
-
stack: () => ids.map(id => {
|
|
86
|
+
stack: () => ids.map(id => ({
|
|
87
|
+
id: id.split(":")[0],
|
|
88
|
+
context: id.split(":")?.[1] || "global"
|
|
89
|
+
})),
|
|
90
|
+
/**
|
|
91
|
+
* Get the top-most sheet in the stack
|
|
92
|
+
*/
|
|
93
|
+
topSheet: () => {
|
|
94
|
+
if (ids.length === 0) return null;
|
|
95
|
+
const topId = ids[ids.length - 1];
|
|
73
96
|
return {
|
|
74
|
-
id:
|
|
75
|
-
context:
|
|
97
|
+
id: topId.split(":")[0],
|
|
98
|
+
context: topId.split(":")?.[1] || "global"
|
|
76
99
|
};
|
|
77
|
-
}
|
|
100
|
+
},
|
|
101
|
+
/**
|
|
102
|
+
* Check if a sheet is currently visible
|
|
103
|
+
*/
|
|
104
|
+
isSheetVisible: (id, context) => {
|
|
105
|
+
if (context) {
|
|
106
|
+
return ids.includes(makeKey(id, context));
|
|
107
|
+
}
|
|
108
|
+
return ids.some(key => key.startsWith(`${id}:`));
|
|
109
|
+
},
|
|
110
|
+
/**
|
|
111
|
+
* Clear all history entries
|
|
112
|
+
*/
|
|
113
|
+
clearHistory: () => {
|
|
114
|
+
PrivateManager.history = [];
|
|
115
|
+
},
|
|
116
|
+
/**
|
|
117
|
+
* Reset all internal state. Useful for testing or HMR.
|
|
118
|
+
*/
|
|
119
|
+
reset: () => {
|
|
120
|
+
ids.length = 0;
|
|
121
|
+
keys.length = 0;
|
|
122
|
+
for (const key in refs) delete refs[key];
|
|
123
|
+
PrivateManager.history = [];
|
|
124
|
+
}
|
|
78
125
|
};
|
|
79
126
|
class _SheetManager {
|
|
80
127
|
/**
|
|
@@ -89,30 +136,41 @@ class _SheetManager {
|
|
|
89
136
|
...options,
|
|
90
137
|
id: id
|
|
91
138
|
});
|
|
92
|
-
const
|
|
139
|
+
const behavior = options?.stackBehavior ?? "switch";
|
|
140
|
+
const handler = (data, context = "global", _reopened, _behavior) => {
|
|
93
141
|
if (context !== "global" && currentContext && currentContext !== context) return;
|
|
94
142
|
options?.onClose?.(data);
|
|
95
143
|
sub?.unsubscribe();
|
|
96
144
|
resolve(data);
|
|
97
145
|
};
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
146
|
+
const sub = _events.eventManager.subscribe(`onclose_${id}`, handler);
|
|
147
|
+
|
|
148
|
+
// Handle existing sheets based on stack behavior.
|
|
149
|
+
// For "push" we do NOT hide existing sheets — they stay underneath.
|
|
150
|
+
if (behavior !== "push") {
|
|
151
|
+
const currentStack = PrivateManager.stack();
|
|
152
|
+
if (currentStack.length > 0) {
|
|
153
|
+
currentStack.forEach(({
|
|
154
|
+
id: sheetId,
|
|
155
|
+
context
|
|
156
|
+
}) => {
|
|
157
|
+
_events.eventManager.publish(`hide_${sheetId}`, undefined, context, true, behavior);
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
}
|
|
105
161
|
|
|
106
162
|
// Check if the sheet is registered with any `SheetProviders`.
|
|
107
163
|
let isRegisteredWithSheetProvider = false;
|
|
108
|
-
for (
|
|
109
|
-
for (
|
|
164
|
+
for (const ctx in _provider.sheetsRegistry) {
|
|
165
|
+
for (const _id in _provider.sheetsRegistry[ctx]) {
|
|
110
166
|
if (_id === id) {
|
|
111
167
|
isRegisteredWithSheetProvider = true;
|
|
168
|
+
break;
|
|
112
169
|
}
|
|
113
170
|
}
|
|
171
|
+
if (isRegisteredWithSheetProvider) break;
|
|
114
172
|
}
|
|
115
|
-
_events.eventManager.publish(isRegisteredWithSheetProvider ? `show_wrap_${id}` : `show_${id}`, options?.payload, currentContext || "global");
|
|
173
|
+
_events.eventManager.publish(isRegisteredWithSheetProvider ? `show_wrap_${id}` : `show_${id}`, options?.payload, currentContext || "global", false, behavior);
|
|
116
174
|
});
|
|
117
175
|
}
|
|
118
176
|
|
|
@@ -120,10 +178,10 @@ class _SheetManager {
|
|
|
120
178
|
* An async hide function. This is useful when you want to show one Sheet after closing another.
|
|
121
179
|
*
|
|
122
180
|
* @param id id of the Sheet to show
|
|
123
|
-
* @param
|
|
181
|
+
* @param options
|
|
124
182
|
*/
|
|
125
183
|
async hide(id, options) {
|
|
126
|
-
|
|
184
|
+
const currentContext = PrivateManager.context({
|
|
127
185
|
...options,
|
|
128
186
|
id: id
|
|
129
187
|
});
|
|
@@ -143,7 +201,7 @@ class _SheetManager {
|
|
|
143
201
|
sub?.unsubscribe();
|
|
144
202
|
resolve(data);
|
|
145
203
|
};
|
|
146
|
-
|
|
204
|
+
const sub = _events.eventManager.subscribe(`onclose_${id}`, hideHandler);
|
|
147
205
|
_events.eventManager.publish(isRegisteredWithSheetProvider ? `hide_wrap_${id}` : `hide_${id}`, options?.payload, !isRegisteredWithSheetProvider ? "global" : currentContext);
|
|
148
206
|
});
|
|
149
207
|
}
|
|
@@ -154,6 +212,8 @@ class _SheetManager {
|
|
|
154
212
|
* @param id Hide all sheets for the specific id.
|
|
155
213
|
*/
|
|
156
214
|
hideAll(id) {
|
|
215
|
+
// Clear history when hiding all sheets
|
|
216
|
+
PrivateManager.clearHistory();
|
|
157
217
|
PrivateManager.stack().forEach(({
|
|
158
218
|
id: _id,
|
|
159
219
|
context
|
|
@@ -162,6 +222,64 @@ class _SheetManager {
|
|
|
162
222
|
_events.eventManager.publish(`hide_${_id}`, undefined, context);
|
|
163
223
|
});
|
|
164
224
|
}
|
|
225
|
+
|
|
226
|
+
/**
|
|
227
|
+
* Replace the current sheet with a new one using crossfade animation.
|
|
228
|
+
* This is a convenience method for show() with stackBehavior: 'replace'.
|
|
229
|
+
*/
|
|
230
|
+
async replace(id, options) {
|
|
231
|
+
return this.show(id, {
|
|
232
|
+
...options,
|
|
233
|
+
stackBehavior: "replace"
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
|
|
237
|
+
/**
|
|
238
|
+
* Push a new sheet on top of the current one, creating a stack.
|
|
239
|
+
* This is a convenience method for show() with stackBehavior: 'push'.
|
|
240
|
+
*
|
|
241
|
+
*/
|
|
242
|
+
async push(id, options) {
|
|
243
|
+
return this.show(id, {
|
|
244
|
+
...options,
|
|
245
|
+
stackBehavior: "push"
|
|
246
|
+
});
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/**
|
|
250
|
+
* Pop the top sheet from the stack and restore the previous one.
|
|
251
|
+
* Only works when sheets were opened with stackBehavior: 'push'.
|
|
252
|
+
*/
|
|
253
|
+
pop() {
|
|
254
|
+
const topSheet = PrivateManager.topSheet();
|
|
255
|
+
if (topSheet) {
|
|
256
|
+
_events.eventManager.publish(`hide_${topSheet.id}`, undefined, topSheet.context);
|
|
257
|
+
}
|
|
258
|
+
}
|
|
259
|
+
|
|
260
|
+
/**
|
|
261
|
+
* Get the internal ref of a sheet instance.
|
|
262
|
+
*
|
|
263
|
+
* @param id Id of the sheet
|
|
264
|
+
* @param context Optional context of the SheetProvider
|
|
265
|
+
*/
|
|
266
|
+
get(id, context) {
|
|
267
|
+
return PrivateManager.get(id, context)?.current ?? undefined;
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
/**
|
|
271
|
+
* Check if a specific sheet is currently visible.
|
|
272
|
+
*/
|
|
273
|
+
isVisible(id, context) {
|
|
274
|
+
return PrivateManager.isSheetVisible(id, context);
|
|
275
|
+
}
|
|
276
|
+
|
|
277
|
+
/**
|
|
278
|
+
* Reset all internal state. Useful for testing environments.
|
|
279
|
+
*/
|
|
280
|
+
reset() {
|
|
281
|
+
PrivateManager.reset();
|
|
282
|
+
}
|
|
165
283
|
}
|
|
166
284
|
|
|
167
285
|
/**
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_provider","require","_events","ids","keys","refs","DEFAULT_Z_INDEX","makeKey","id","context","PrivateManager","exports","history","options","providerRegistryStack","slice","reverse","sheetsRegistry","startsWith","includes","registerRef","instance","key","push","get","ctx","_id","add","remove","index","indexOf","splice","zIndex","stack","map","split","topSheet","length","topId","isSheetVisible","some","clearHistory","reset","_SheetManager","show","Promise","resolve","currentContext","behavior","stackBehavior","handler","data","_reopened","_behavior","onClose","sub","unsubscribe","eventManager","subscribe","currentStack","forEach","sheetId","publish","undefined","isRegisteredWithSheetProvider","payload","hide","hideHandler","hideAll","replace","pop","current","isVisible","SheetManager"],"sourceRoot":"../../src","sources":["manager.ts"],"mappings":"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","ignoreList":[]}
|