@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.
Files changed (64) hide show
  1. package/README.md +414 -69
  2. package/lib/commonjs/events.js +100 -15
  3. package/lib/commonjs/events.js.map +1 -1
  4. package/lib/commonjs/index.js +14 -0
  5. package/lib/commonjs/index.js.map +1 -1
  6. package/lib/commonjs/manager.js +153 -35
  7. package/lib/commonjs/manager.js.map +1 -1
  8. package/lib/commonjs/provider.js +92 -54
  9. package/lib/commonjs/provider.js.map +1 -1
  10. package/lib/commonjs/router/index.js +80 -21
  11. package/lib/commonjs/router/index.js.map +1 -1
  12. package/lib/commonjs/router/router.js +137 -12
  13. package/lib/commonjs/router/router.js.map +1 -1
  14. package/lib/commonjs/router/view.js +93 -126
  15. package/lib/commonjs/router/view.js.map +1 -1
  16. package/lib/commonjs/sheet.js +122 -98
  17. package/lib/commonjs/sheet.js.map +1 -1
  18. package/lib/module/events.js +100 -15
  19. package/lib/module/events.js.map +1 -1
  20. package/lib/module/index.js +2 -2
  21. package/lib/module/index.js.map +1 -1
  22. package/lib/module/manager.js +154 -35
  23. package/lib/module/manager.js.map +1 -1
  24. package/lib/module/provider.js +87 -50
  25. package/lib/module/provider.js.map +1 -1
  26. package/lib/module/router/index.js +66 -19
  27. package/lib/module/router/index.js.map +1 -1
  28. package/lib/module/router/router.js +135 -11
  29. package/lib/module/router/router.js.map +1 -1
  30. package/lib/module/router/view.js +92 -126
  31. package/lib/module/router/view.js.map +1 -1
  32. package/lib/module/sheet.js +124 -100
  33. package/lib/module/sheet.js.map +1 -1
  34. package/lib/typescript/events.d.ts +46 -12
  35. package/lib/typescript/events.d.ts.map +1 -1
  36. package/lib/typescript/index.d.ts +2 -2
  37. package/lib/typescript/index.d.ts.map +1 -1
  38. package/lib/typescript/manager.d.ts +73 -7
  39. package/lib/typescript/manager.d.ts.map +1 -1
  40. package/lib/typescript/provider.d.ts +22 -16
  41. package/lib/typescript/provider.d.ts.map +1 -1
  42. package/lib/typescript/router/index.d.ts +47 -17
  43. package/lib/typescript/router/index.d.ts.map +1 -1
  44. package/lib/typescript/router/router.d.ts +44 -5
  45. package/lib/typescript/router/router.d.ts.map +1 -1
  46. package/lib/typescript/router/types.d.ts +142 -32
  47. package/lib/typescript/router/types.d.ts.map +1 -1
  48. package/lib/typescript/router/view.d.ts +3 -3
  49. package/lib/typescript/router/view.d.ts.map +1 -1
  50. package/lib/typescript/sheet.d.ts +1 -1
  51. package/lib/typescript/sheet.d.ts.map +1 -1
  52. package/lib/typescript/types.d.ts +52 -21
  53. package/lib/typescript/types.d.ts.map +1 -1
  54. package/package.json +14 -15
  55. package/src/events.ts +118 -27
  56. package/src/index.ts +2 -1
  57. package/src/manager.ts +209 -42
  58. package/src/provider.tsx +144 -71
  59. package/src/router/index.tsx +77 -33
  60. package/src/router/router.ts +188 -15
  61. package/src/router/types.ts +172 -57
  62. package/src/router/view.tsx +111 -213
  63. package/src/sheet.tsx +192 -124
  64. package/src/types.ts +51 -24
@@ -1 +1 @@
1
- {"version":3,"names":["_reactNative","require","EventManager","constructor","_registry","Platform","select","ios","NativeAppEventEmitter","android","DeviceEventEmitter","subscribe","name","handler","Error","event","addListener","unsubscribe","remove","publish","args","emit","names","eventType","removeAllListeners","exports","default","eventManager"],"sourceRoot":"../../src","sources":["events.ts"],"mappings":";;;;;;AAAA,IAAAA,YAAA,GAAAC,OAAA;AAOA;;AAMe,MAAMC,YAAY,CAAC;EAE9BC,WAAWA,CAAA,EAAG;IACV,IAAI,CAACC,SAAS,GAAGC,qBAAQ,CAACC,MAAM,CAAC;MAC7BC,GAAG,EAAEC,kCAAqB;MAC1BC,OAAO,EAAEC;IACb,CAAC,CAAC;EACN;EAEAC,SAASA,CAACC,IAAY,EAAEC,OAAqB,EAAE;IAC3C,IAAI,CAACD,IAAI,IAAI,CAACC,OAAO,EAAE,MAAM,IAAIC,KAAK,CAAC,gCAAgC,CAAC;IACxE,MAAMC,KAAK,GAAG,IAAI,CAACX,SAAS,EAAEY,WAAW,CAACJ,IAAI,EAAEC,OAAO,CAAC;IACxD,OAAO;MAAEI,WAAW,EAAEA,CAAA,KAAMF,KAAK,EAAEG,MAAM,CAAC;IAAE,CAAC;EACjD;EAEAC,OAAOA,CAACP,IAAY,EAAE,GAAGQ,IAAW,EAAE;IAClC,IAAI,CAAChB,SAAS,EAAEiB,IAAI,CAACT,IAAI,EAAE,GAAGQ,IAAI,CAAC;EACvC;EAEAF,MAAMA,CAAC,GAAGI,KAAe,EAAE;IACvB,KAAK,MAAMC,SAAS,IAAID,KAAK,EAAE;MAC3B,IAAI,CAAClB,SAAS,EAAEoB,kBAAkB,CAACD,SAAS,CAAC;IACjD;EACJ;AACJ;AAACE,OAAA,CAAAC,OAAA,GAAAxB,YAAA;AAEM,MAAMyB,YAAY,GAAAF,OAAA,CAAAE,YAAA,GAAG,IAAIzB,YAAY,CAAC,CAAC","ignoreList":[]}
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":[]}
@@ -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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;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;AAMoB,SAAAD,uBAAAkB,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA","ignoreList":[]}
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":[]}
@@ -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
- // Return to the previous sheet when the current sheet is closed.
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
- // If no context is provided, use to current top most context
22
- // to render the sheet.
23
- for (const context of _provider.providerRegistryStack.slice().reverse()) {
24
- // We only automatically select nested sheet providers.
25
- if (context.startsWith("$$-auto") && !context.includes(options?.id)) {
26
- options.context = context;
27
- break;
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.push(key);
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 (let ctx of _provider.providerRegistryStack.slice().reverse()) {
48
- for (let _id in _provider.sheetsRegistry[ctx]) {
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
- if (ids.indexOf(id) < 0) {
60
- ids[ids.length] = makeKey(id, context);
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
- if (ids.indexOf(makeKey(id, context)) > -1) {
65
- ids.splice(ids.indexOf(makeKey(id, context)));
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: id.split(":")[0],
75
- context: id.split(":")?.[1] || "global"
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 handler = (data, context = "global") => {
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
- var sub = _events.eventManager.subscribe(`onclose_${id}`, handler);
99
- PrivateManager.stack().forEach(({
100
- id,
101
- context
102
- }) => {
103
- _events.eventManager.publish(`hide_${id}`, undefined, context, true);
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 (let ctx in _provider.sheetsRegistry) {
109
- for (let _id in _provider.sheetsRegistry[ctx]) {
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 data
181
+ * @param options
124
182
  */
125
183
  async hide(id, options) {
126
- let currentContext = PrivateManager.context({
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
- var sub = _events.eventManager.subscribe(`onclose_${id}`, hideHandler);
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":["_events","require","_provider","ids","keys","refs","DEFAULT_Z_INDEX","makeKey","id","context","PrivateManager","exports","history","options","providerRegistryStack","slice","reverse","startsWith","includes","registerRef","instance","key","push","get","ctx","_id","sheetsRegistry","add","indexOf","length","remove","splice","zIndex","index","stack","map","split","_SheetManager","show","Promise","resolve","currentContext","handler","data","onClose","sub","unsubscribe","eventManager","subscribe","forEach","publish","undefined","isRegisteredWithSheetProvider","payload","hide","hideHandler","hideAll","SheetManager"],"sourceRoot":"../../src","sources":["manager.ts"],"mappings":"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","ignoreList":[]}
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":[]}