@codeleap/portals 7.0.2 → 7.1.2
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/factors/alert.js +7 -11
- package/dist/factors/alert.js.map +1 -1
- package/dist/factors/bottomSheet.js +19 -36
- package/dist/factors/bottomSheet.js.map +1 -1
- package/dist/factors/drawer.js +11 -30
- package/dist/factors/drawer.js.map +1 -1
- package/dist/factors/modal.js +11 -30
- package/dist/factors/modal.js.map +1 -1
- package/dist/globals.js +1 -2
- package/dist/globals.js.map +1 -1
- package/dist/index.js +12 -28
- package/dist/index.js.map +1 -1
- package/dist/lib/Portal.d.ts +1 -1
- package/dist/lib/Portal.d.ts.map +1 -1
- package/dist/lib/Portal.js +64 -96
- package/dist/lib/Portal.js.map +1 -1
- package/dist/lib/PortalRegistry.js +3 -9
- package/dist/lib/PortalRegistry.js.map +1 -1
- package/dist/lib/PortalRequest.js +5 -5
- package/dist/lib/PortalRequest.js.map +1 -1
- package/dist/lib/PortalState.d.ts +2 -2
- package/dist/lib/PortalState.js +55 -60
- package/dist/lib/PortalState.js.map +1 -1
- package/dist/types/index.js +1 -17
- package/dist/types/index.js.map +1 -1
- package/dist/types/misc.js +1 -2
- package/dist/types/portal.js +1 -2
- package/dist/utils.js +6 -22
- package/dist/utils.js.map +1 -1
- package/package.json +9 -8
package/dist/factors/alert.js
CHANGED
|
@@ -1,11 +1,8 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.alert = exports.Alert = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Alert utility for displaying typed alert modals (info, error, warn, ask, custom).
|
|
6
3
|
* Provides convenient methods for common alert scenarios.
|
|
7
4
|
*/
|
|
8
|
-
class Alert {
|
|
5
|
+
export class Alert {
|
|
9
6
|
/**
|
|
10
7
|
* Returns the Modal instance used to display alerts.
|
|
11
8
|
* Must be implemented by the consuming app before calling any alert method.
|
|
@@ -19,26 +16,25 @@ class Alert {
|
|
|
19
16
|
}
|
|
20
17
|
/** Opens an alert with 'ask' type. */
|
|
21
18
|
ask(args) {
|
|
22
|
-
this.trigger(
|
|
19
|
+
this.trigger({ ...args, type: 'ask' });
|
|
23
20
|
}
|
|
24
21
|
/** Opens an alert with 'error' type. */
|
|
25
22
|
error(args) {
|
|
26
|
-
this.trigger(
|
|
23
|
+
this.trigger({ ...args, type: 'error' });
|
|
27
24
|
}
|
|
28
25
|
/** Opens an alert with 'warn' type. */
|
|
29
26
|
warn(args) {
|
|
30
|
-
this.trigger(
|
|
27
|
+
this.trigger({ ...args, type: 'warn' });
|
|
31
28
|
}
|
|
32
29
|
/** Opens an alert with 'info' type. */
|
|
33
30
|
info(args) {
|
|
34
|
-
this.trigger(
|
|
31
|
+
this.trigger({ ...args, type: 'info' });
|
|
35
32
|
}
|
|
36
33
|
/** Opens a custom alert with user-defined options and type. */
|
|
37
34
|
custom(options) {
|
|
38
|
-
this.trigger(
|
|
35
|
+
this.trigger({ ...options, type: 'custom' });
|
|
39
36
|
}
|
|
40
37
|
}
|
|
41
|
-
exports.Alert = Alert;
|
|
42
38
|
/** Global alert instance for showing alerts throughout the app. */
|
|
43
|
-
|
|
39
|
+
export const alert = new Alert();
|
|
44
40
|
//# sourceMappingURL=alert.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/factors/alert.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"alert.js","sourceRoot":"","sources":["../../src/factors/alert.ts"],"names":[],"mappings":"AAsBA;;;GAGG;AACH,MAAM,OAAO,KAAK;IAEhB;;;;OAIG;IACH,MAAM,CAAC,SAAS;QACd,MAAM,IAAI,KAAK,CAAC,0DAA0D,CAAC,CAAA;IAC7E,CAAC;IAEO,OAAO,CAAC,IAAkB;QAChC,KAAK,CAAC,SAAS,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAA;IAC9B,CAAC;IAED,sCAAsC;IACtC,GAAG,CAAC,IAAkB;QACpB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,CAAA;IACxC,CAAC;IAED,wCAAwC;IACxC,KAAK,CAAC,IAAkB;QACtB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC,CAAA;IAC1C,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,IAAkB;QACrB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,uCAAuC;IACvC,IAAI,CAAC,IAAkB;QACrB,IAAI,CAAC,OAAO,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC,CAAA;IACzC,CAAC;IAED,+DAA+D;IAC/D,MAAM,CAAI,OAAkC;QAC1C,IAAI,CAAC,OAAO,CAAC,EAAE,GAAI,OAAe,EAAE,IAAI,EAAE,QAAQ,EAAE,CAAC,CAAA;IACvD,CAAC;CACF;AAED,mEAAmE;AACnE,MAAM,CAAC,MAAM,KAAK,GAAG,IAAI,KAAK,EAAE,CAAA"}
|
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.BottomSheet = void 0;
|
|
13
|
-
exports.bottomSheet = bottomSheet;
|
|
14
|
-
const Portal_1 = require("../lib/Portal");
|
|
1
|
+
import { Portal } from '../lib/Portal';
|
|
15
2
|
/**
|
|
16
3
|
* Bottom sheet portal for bottom-sliding panels.
|
|
17
4
|
* Extends Portal with bottom sheet-specific wrapper, configuration and ref methods.
|
|
@@ -20,11 +7,12 @@ const Portal_1 = require("../lib/Portal");
|
|
|
20
7
|
* @template Result - Type of result returned by request
|
|
21
8
|
* @template Metadata - Additional configuration metadata
|
|
22
9
|
*/
|
|
23
|
-
class BottomSheet extends
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
export class BottomSheet extends Portal {
|
|
11
|
+
displayName = 'BottomSheet';
|
|
12
|
+
/** Wrapper component used to render bottom sheet UI. Must be assigned by the consuming app. */
|
|
13
|
+
static WrapperComponent = () => null;
|
|
14
|
+
/** Default transition duration in milliseconds for bottom sheet open/close animations. */
|
|
15
|
+
static DEFAULT_TRANSITION_DURATION = 200;
|
|
28
16
|
/** @inheritdoc */
|
|
29
17
|
get defaultTransitionDuration() {
|
|
30
18
|
return BottomSheet.DEFAULT_TRANSITION_DURATION;
|
|
@@ -34,12 +22,14 @@ class BottomSheet extends Portal_1.Portal {
|
|
|
34
22
|
return BottomSheet.WrapperComponent;
|
|
35
23
|
}
|
|
36
24
|
/** Closes all open BottomSheet instances. */
|
|
37
|
-
static closeAll() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
yield Promise.all(registries.map(instance => instance.close()));
|
|
41
|
-
});
|
|
25
|
+
static async closeAll() {
|
|
26
|
+
const registries = BottomSheet.registry.getAll();
|
|
27
|
+
await Promise.all(registries.map(instance => instance.close()));
|
|
42
28
|
}
|
|
29
|
+
/** Name of the ref method to call imperatively when opening the sheet (set by the consuming app). */
|
|
30
|
+
static openKeyMethod;
|
|
31
|
+
/** Name of the ref method to call imperatively when closing the sheet (set by the consuming app). */
|
|
32
|
+
static closeKeyMethod;
|
|
43
33
|
/** Returns default config: `rendersWhenHidden=true` and `resetParamsOnClose=false`. */
|
|
44
34
|
getDefaultConfig() {
|
|
45
35
|
return {
|
|
@@ -49,16 +39,14 @@ class BottomSheet extends Portal_1.Portal {
|
|
|
49
39
|
}
|
|
50
40
|
/** Calls the native open method on the ref via `openKeyMethod`, if configured. */
|
|
51
41
|
openBottomSheet() {
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
(_d = (_c = (_b = this.ref) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c[BottomSheet.openKeyMethod]) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
42
|
+
if (!!BottomSheet.openKeyMethod && !!this.ref?.current) {
|
|
43
|
+
this.ref?.current?.[BottomSheet.openKeyMethod]?.();
|
|
55
44
|
}
|
|
56
45
|
}
|
|
57
46
|
/** Calls the native close method on the ref via `closeKeyMethod`, if configured. */
|
|
58
47
|
closeBottomSheet() {
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
(_d = (_c = (_b = this.ref) === null || _b === void 0 ? void 0 : _b.current) === null || _c === void 0 ? void 0 : _c[BottomSheet.closeKeyMethod]) === null || _d === void 0 ? void 0 : _d.call(_c);
|
|
48
|
+
if (!!BottomSheet.closeKeyMethod && !!this.ref?.current) {
|
|
49
|
+
this.ref?.current?.[BottomSheet.closeKeyMethod]?.();
|
|
62
50
|
}
|
|
63
51
|
}
|
|
64
52
|
/** @inheritdoc — also triggers the native open animation via `openBottomSheet()`. */
|
|
@@ -96,17 +84,12 @@ class BottomSheet extends Portal_1.Portal {
|
|
|
96
84
|
return this;
|
|
97
85
|
}
|
|
98
86
|
}
|
|
99
|
-
exports.BottomSheet = BottomSheet;
|
|
100
|
-
/** Wrapper component used to render bottom sheet UI. Must be assigned by the consuming app. */
|
|
101
|
-
BottomSheet.WrapperComponent = () => null;
|
|
102
|
-
/** Default transition duration in milliseconds for bottom sheet open/close animations. */
|
|
103
|
-
BottomSheet.DEFAULT_TRANSITION_DURATION = 200;
|
|
104
87
|
/**
|
|
105
88
|
* Factory function to create a new BottomSheet instance.
|
|
106
89
|
* @param idOrConfig - BottomSheet ID or configuration object
|
|
107
90
|
* @returns New BottomSheet instance
|
|
108
91
|
*/
|
|
109
|
-
function bottomSheet(idOrConfig) {
|
|
92
|
+
export function bottomSheet(idOrConfig) {
|
|
110
93
|
return new BottomSheet(idOrConfig);
|
|
111
94
|
}
|
|
112
95
|
//# sourceMappingURL=bottomSheet.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bottomSheet.js","sourceRoot":"","sources":["../../src/factors/bottomSheet.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"bottomSheet.js","sourceRoot":"","sources":["../../src/factors/bottomSheet.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAMtC;;;;;;;GAOG;AACH,MAAM,OAAO,WAAqD,SAAQ,MAAyE;IACjJ,WAAW,GAAG,aAAa,CAAA;IAE3B,+FAA+F;IAC/F,MAAM,CAAC,gBAAgB,GAAgG,GAAG,EAAE,CAAC,IAAI,CAAA;IAEjI,0FAA0F;IAC1F,MAAM,CAAC,2BAA2B,GAAG,GAAG,CAAA;IAExC,kBAAkB;IAClB,IAAc,yBAAyB;QACrC,OAAO,WAAW,CAAC,2BAA2B,CAAA;IAChD,CAAC;IAED,kBAAkB;IAClB,IAAc,gBAAgB;QAC5B,OAAO,WAAW,CAAC,gBAAgB,CAAA;IACrC,CAAC;IAED,6CAA6C;IAC7C,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,MAAM,UAAU,GAAG,WAAW,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAChD,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC;IAED,qGAAqG;IACrG,MAAM,CAAC,aAAa,CAAuB;IAE3C,qGAAqG;IACrG,MAAM,CAAC,cAAc,CAAuB;IAE5C,uFAAuF;IAC7E,gBAAgB;QACxB,OAAO;YACL,iBAAiB,EAAE,IAAI;YACvB,kBAAkB,EAAE,KAAK;SACiB,CAAA;IAC9C,CAAC;IAED,kFAAkF;IACxE,eAAe;QACvB,IAAI,CAAC,CAAC,WAAW,CAAC,aAAa,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YACtD,IAAI,CAAC,GAAG,EAAE,OAAoD,EAAE,CAAC,WAAW,CAAC,aAAuB,CAAC,EAAE,EAAE,CAAA;QAC5G,CAAC;IACH,CAAC;IAED,oFAAoF;IAC1E,gBAAgB;QACxB,IAAI,CAAC,CAAC,WAAW,CAAC,cAAc,IAAI,CAAC,CAAC,IAAI,CAAC,GAAG,EAAE,OAAO,EAAE,CAAC;YACvD,IAAI,CAAC,GAAG,EAAE,OAAoD,EAAE,CAAC,WAAW,CAAC,cAAwB,CAAC,EAAE,EAAE,CAAA;QAC7G,CAAC;IACH,CAAC;IAED,qFAAqF;IAC3E,UAAU;QAClB,IAAI,CAAC,eAAe,EAAE,CAAA;IACxB,CAAC;IAED,uFAAuF;IAC7E,WAAW;QACnB,IAAI,CAAC,gBAAgB,EAAE,CAAA;IACzB,CAAC;IAED;;;;;OAKG;IACH,MAAM,CAAC,QAAqG;QAC1G,IAAI,CAAC,UAAU,GAAG,GAAG,EAAE;YACrB,IAAI,CAAC,eAAe,EAAE,CAAA;YACtB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,QAAqG;QAC3G,IAAI,CAAC,WAAW,GAAG,GAAG,EAAE;YACtB,IAAI,CAAC,gBAAgB,EAAE,CAAA;YACvB,QAAQ,CAAC,IAAI,CAAC,CAAA;QAChB,CAAC,CAAA;QAED,OAAO,IAAI,CAAA;IACb,CAAC;;AAGH;;;;GAIG;AACH,MAAM,UAAU,WAAW,CAA0C,UAAqD;IACxH,OAAO,IAAI,WAAW,CAA2B,UAAU,CAAC,CAAA;AAC9D,CAAC"}
|
package/dist/factors/drawer.js
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Drawer = void 0;
|
|
13
|
-
exports.drawer = drawer;
|
|
14
|
-
const Portal_1 = require("../lib/Portal");
|
|
1
|
+
import { Portal } from '../lib/Portal';
|
|
15
2
|
/**
|
|
16
3
|
* Drawer portal for side-sliding panels.
|
|
17
4
|
* Extends Portal with drawer-specific wrapper and configuration.
|
|
@@ -20,11 +7,12 @@ const Portal_1 = require("../lib/Portal");
|
|
|
20
7
|
* @template Result - Type of result returned by request
|
|
21
8
|
* @template Metadata - Additional configuration metadata
|
|
22
9
|
*/
|
|
23
|
-
class Drawer extends
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
export class Drawer extends Portal {
|
|
11
|
+
displayName = 'Drawer';
|
|
12
|
+
/** Wrapper component used to render drawer UI. Must be assigned by the consuming app. */
|
|
13
|
+
static WrapperComponent = () => null;
|
|
14
|
+
/** Default transition duration in milliseconds for drawer open/close animations. */
|
|
15
|
+
static DEFAULT_TRANSITION_DURATION = 200;
|
|
28
16
|
/** @inheritdoc */
|
|
29
17
|
get defaultTransitionDuration() {
|
|
30
18
|
return Drawer.DEFAULT_TRANSITION_DURATION;
|
|
@@ -34,24 +22,17 @@ class Drawer extends Portal_1.Portal {
|
|
|
34
22
|
return Drawer.WrapperComponent;
|
|
35
23
|
}
|
|
36
24
|
/** Closes all open Drawer instances. */
|
|
37
|
-
static closeAll() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
yield Promise.all(registries.map(instance => instance.close()));
|
|
41
|
-
});
|
|
25
|
+
static async closeAll() {
|
|
26
|
+
const registries = Drawer.registry.getAll();
|
|
27
|
+
await Promise.all(registries.map(instance => instance.close()));
|
|
42
28
|
}
|
|
43
29
|
}
|
|
44
|
-
exports.Drawer = Drawer;
|
|
45
|
-
/** Wrapper component used to render drawer UI. Must be assigned by the consuming app. */
|
|
46
|
-
Drawer.WrapperComponent = () => null;
|
|
47
|
-
/** Default transition duration in milliseconds for drawer open/close animations. */
|
|
48
|
-
Drawer.DEFAULT_TRANSITION_DURATION = 200;
|
|
49
30
|
/**
|
|
50
31
|
* Factory function to create a new Drawer instance.
|
|
51
32
|
* @param idOrConfig - Drawer ID or configuration object
|
|
52
33
|
* @returns New Drawer instance
|
|
53
34
|
*/
|
|
54
|
-
function drawer(idOrConfig) {
|
|
35
|
+
export function drawer(idOrConfig) {
|
|
55
36
|
return new Drawer(idOrConfig);
|
|
56
37
|
}
|
|
57
38
|
//# sourceMappingURL=drawer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/factors/drawer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"drawer.js","sourceRoot":"","sources":["../../src/factors/drawer.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGtC;;;;;;;GAOG;AACH,MAAM,OAAO,MAAgD,SAAQ,MAA+D;IAClI,WAAW,GAAG,QAAQ,CAAA;IAEtB,yFAAyF;IACzF,MAAM,CAAC,gBAAgB,GAAsF,GAAG,EAAE,CAAC,IAAI,CAAA;IAEvH,oFAAoF;IACpF,MAAM,CAAC,2BAA2B,GAAG,GAAG,CAAA;IAExC,kBAAkB;IAClB,IAAc,yBAAyB;QACrC,OAAO,MAAM,CAAC,2BAA2B,CAAA;IAC3C,CAAC;IAED,kBAAkB;IAClB,IAAc,gBAAgB;QAC5B,OAAO,MAAM,CAAC,gBAAgB,CAAA;IAChC,CAAC;IAED,wCAAwC;IACxC,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,MAAM,UAAU,GAAG,MAAM,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC3C,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC;;AAGH;;;;GAIG;AACH,MAAM,UAAU,MAAM,CAA0C,UAAqD;IACnH,OAAO,IAAI,MAAM,CAA2B,UAAU,CAAC,CAAA;AACzD,CAAC"}
|
package/dist/factors/modal.js
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.Modal = void 0;
|
|
13
|
-
exports.modal = modal;
|
|
14
|
-
const Portal_1 = require("../lib/Portal");
|
|
1
|
+
import { Portal } from '../lib/Portal';
|
|
15
2
|
/**
|
|
16
3
|
* Modal portal for centered overlay dialogs.
|
|
17
4
|
* Extends Portal with modal-specific wrapper and configuration.
|
|
@@ -20,11 +7,12 @@ const Portal_1 = require("../lib/Portal");
|
|
|
20
7
|
* @template Result - Type of result returned by request
|
|
21
8
|
* @template Metadata - Additional configuration metadata
|
|
22
9
|
*/
|
|
23
|
-
class Modal extends
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
10
|
+
export class Modal extends Portal {
|
|
11
|
+
displayName = 'Modal';
|
|
12
|
+
/** Wrapper component used to render modal UI. Must be assigned by the consuming app. */
|
|
13
|
+
static WrapperComponent = () => null;
|
|
14
|
+
/** Default transition duration in milliseconds for modal open/close animations. */
|
|
15
|
+
static DEFAULT_TRANSITION_DURATION = 200;
|
|
28
16
|
/** @inheritdoc */
|
|
29
17
|
get defaultTransitionDuration() {
|
|
30
18
|
return Modal.DEFAULT_TRANSITION_DURATION;
|
|
@@ -34,24 +22,17 @@ class Modal extends Portal_1.Portal {
|
|
|
34
22
|
return Modal.WrapperComponent;
|
|
35
23
|
}
|
|
36
24
|
/** Closes all open Modal instances. */
|
|
37
|
-
static closeAll() {
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
yield Promise.all(registries.map(instance => instance.close()));
|
|
41
|
-
});
|
|
25
|
+
static async closeAll() {
|
|
26
|
+
const registries = Modal.registry.getAll();
|
|
27
|
+
await Promise.all(registries.map(instance => instance.close()));
|
|
42
28
|
}
|
|
43
29
|
}
|
|
44
|
-
exports.Modal = Modal;
|
|
45
|
-
/** Wrapper component used to render modal UI. Must be assigned by the consuming app. */
|
|
46
|
-
Modal.WrapperComponent = () => null;
|
|
47
|
-
/** Default transition duration in milliseconds for modal open/close animations. */
|
|
48
|
-
Modal.DEFAULT_TRANSITION_DURATION = 200;
|
|
49
30
|
/**
|
|
50
31
|
* Factory function to create a new Modal instance.
|
|
51
32
|
* @param idOrConfig - Modal ID or configuration object
|
|
52
33
|
* @returns New Modal instance
|
|
53
34
|
*/
|
|
54
|
-
function modal(idOrConfig) {
|
|
35
|
+
export function modal(idOrConfig) {
|
|
55
36
|
return new Modal(idOrConfig);
|
|
56
37
|
}
|
|
57
38
|
//# sourceMappingURL=modal.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/factors/modal.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"modal.js","sourceRoot":"","sources":["../../src/factors/modal.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,MAAM,EAAE,MAAM,eAAe,CAAA;AAGtC;;;;;;;GAOG;AACH,MAAM,OAAO,KAA+C,SAAQ,MAA6D;IAC/H,WAAW,GAAG,OAAO,CAAA;IAErB,wFAAwF;IACxF,MAAM,CAAC,gBAAgB,GAAoF,GAAG,EAAE,CAAC,IAAI,CAAA;IAErH,mFAAmF;IACnF,MAAM,CAAC,2BAA2B,GAAG,GAAG,CAAA;IAExC,kBAAkB;IAClB,IAAc,yBAAyB;QACrC,OAAO,KAAK,CAAC,2BAA2B,CAAA;IAC1C,CAAC;IAED,kBAAkB;IAClB,IAAc,gBAAgB;QAC5B,OAAO,KAAK,CAAC,gBAAgB,CAAA;IAC/B,CAAC;IAED,uCAAuC;IACvC,MAAM,CAAC,KAAK,CAAC,QAAQ;QACnB,MAAM,UAAU,GAAG,KAAK,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAA;QAC1C,MAAM,OAAO,CAAC,GAAG,CAAC,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC,CAAA;IACjE,CAAC;;AAGH;;;;GAIG;AACH,MAAM,UAAU,KAAK,CAA0C,UAAqD;IAClH,OAAO,IAAI,KAAK,CAA2B,UAAU,CAAC,CAAA;AACxD,CAAC"}
|
package/dist/globals.js
CHANGED
package/dist/globals.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"globals.js","sourceRoot":"","sources":["../src/globals.ts"],"names":[],"mappings":"AAAA,0DAA0D"}
|
package/dist/index.js
CHANGED
|
@@ -1,30 +1,14 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./lib/Portal"), exports);
|
|
18
|
-
__exportStar(require("./lib/PortalRegistry"), exports);
|
|
19
|
-
__exportStar(require("./lib/PortalState"), exports);
|
|
20
|
-
__exportStar(require("./lib/PortalRequest"), exports);
|
|
21
|
-
__exportStar(require("./types/misc"), exports);
|
|
22
|
-
__exportStar(require("./types/portal"), exports);
|
|
23
|
-
__exportStar(require("./utils"), exports);
|
|
1
|
+
export * from './lib/Portal';
|
|
2
|
+
export * from './lib/PortalRegistry';
|
|
3
|
+
export * from './lib/PortalState';
|
|
4
|
+
export * from './lib/PortalRequest';
|
|
5
|
+
export * from './types/misc';
|
|
6
|
+
export * from './types/portal';
|
|
7
|
+
export * from './utils';
|
|
24
8
|
// export * from './lib/modalFlow'
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
9
|
+
export * from './factors/alert';
|
|
10
|
+
export * from './factors/modal';
|
|
11
|
+
export * from './factors/bottomSheet';
|
|
12
|
+
export * from './factors/drawer';
|
|
13
|
+
export * from './globals';
|
|
30
14
|
//# sourceMappingURL=index.js.map
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,cAAc,cAAc,CAAA;AAC5B,cAAc,sBAAsB,CAAA;AACpC,cAAc,mBAAmB,CAAA;AACjC,cAAc,qBAAqB,CAAA;AACnC,cAAc,cAAc,CAAA;AAC5B,cAAc,gBAAgB,CAAA;AAC9B,cAAc,SAAS,CAAA;AACvB,kCAAkC;AAClC,cAAc,iBAAiB,CAAA;AAC/B,cAAc,iBAAiB,CAAA;AAC/B,cAAc,uBAAuB,CAAA;AACrC,cAAc,kBAAkB,CAAA;AAChC,cAAc,WAAW,CAAA"}
|
package/dist/lib/Portal.d.ts
CHANGED
|
@@ -11,7 +11,7 @@ type IAtom<T> = ReturnType<typeof atom<T>>;
|
|
|
11
11
|
* Drives `GlobalOutlet` re-renders when portals are added or removed (including ephemeral ones).
|
|
12
12
|
* Read-only outside of portal lifecycle code — mutate only via `Portal` constructor/`onVisibilityChanged`.
|
|
13
13
|
*/
|
|
14
|
-
export declare const registeredIds: import("nanostores"
|
|
14
|
+
export declare const registeredIds: import("nanostores").PreinitializedWritableAtom<string[]> & object;
|
|
15
15
|
/**
|
|
16
16
|
* Base class for creating portals (modal, drawer, bottom sheet, etc).
|
|
17
17
|
* Manages state, visibility, params and lifecycle of floating components.
|
package/dist/lib/Portal.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../../src/lib/Portal.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,EAAE,GAAG,EAAmB,MAAM,OAAO,CAAA;AACnD,OAAO,EAAE,IAAI,EAAE,MAAM,YAAY,CAAA;AAEjC,OAAO,EAAE,SAAS,EAAc,MAAM,iBAAiB,CAAA;AAGvD,OAAO,EAAE,YAAY,EAAE,sBAAsB,EAAE,mBAAmB,EAAE,MAAM,UAAU,CAAA;AACpF,OAAO,EAAE,cAAc,EAAE,MAAM,kBAAkB,CAAA;AACjD,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAA;AAC3C,OAAO,EAAE,aAAa,EAAE,MAAM,iBAAiB,CAAA;AAE/C,KAAK,KAAK,CAAC,CAAC,IAAI,UAAU,CAAC,OAAO,IAAI,CAAC,CAAC,CAAC,CAAC,CAAA;AAE1C;;;;GAIG;AACH,eAAO,MAAM,aAAa
|
|
1
|
+
{"version":3,"file":"Portal.d.ts","sourceRoot":"","sources":["../../src/lib/Portal.tsx"],"names":[],"mappings":"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"}
|
package/dist/lib/Portal.js
CHANGED
|
@@ -1,65 +1,18 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
14
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
15
|
-
}) : function(o, v) {
|
|
16
|
-
o["default"] = v;
|
|
17
|
-
});
|
|
18
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
19
|
-
var ownKeys = function(o) {
|
|
20
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
21
|
-
var ar = [];
|
|
22
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
23
|
-
return ar;
|
|
24
|
-
};
|
|
25
|
-
return ownKeys(o);
|
|
26
|
-
};
|
|
27
|
-
return function (mod) {
|
|
28
|
-
if (mod && mod.__esModule) return mod;
|
|
29
|
-
var result = {};
|
|
30
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
31
|
-
__setModuleDefault(result, mod);
|
|
32
|
-
return result;
|
|
33
|
-
};
|
|
34
|
-
})();
|
|
35
|
-
var __rest = (this && this.__rest) || function (s, e) {
|
|
36
|
-
var t = {};
|
|
37
|
-
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
|
38
|
-
t[p] = s[p];
|
|
39
|
-
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
|
40
|
-
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
|
41
|
-
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
|
42
|
-
t[p[i]] = s[p[i]];
|
|
43
|
-
}
|
|
44
|
-
return t;
|
|
45
|
-
};
|
|
46
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
47
|
-
exports.Portal = exports.registeredIds = void 0;
|
|
48
|
-
const react_1 = __importStar(require("react"));
|
|
49
|
-
const nanostores_1 = require("nanostores");
|
|
50
|
-
const react_2 = require("@nanostores/react");
|
|
51
|
-
const types_1 = require("@codeleap/types");
|
|
52
|
-
const logger_1 = require("@codeleap/logger");
|
|
53
|
-
const utils_1 = require("../utils");
|
|
54
|
-
const PortalRegistry_1 = require("./PortalRegistry");
|
|
55
|
-
const PortalState_1 = require("./PortalState");
|
|
56
|
-
const PortalRequest_1 = require("./PortalRequest");
|
|
1
|
+
import React, { useLayoutEffect } from 'react';
|
|
2
|
+
import { atom } from 'nanostores';
|
|
3
|
+
import { useStore } from '@nanostores/react';
|
|
4
|
+
import { TypeGuards } from '@codeleap/types';
|
|
5
|
+
import { logger } from '@codeleap/logger';
|
|
6
|
+
import { randomId } from '../utils';
|
|
7
|
+
import { PortalRegistry } from './PortalRegistry';
|
|
8
|
+
import { PortalState } from './PortalState';
|
|
9
|
+
import { PortalRequest } from './PortalRequest';
|
|
57
10
|
/**
|
|
58
11
|
* Nanostores atom holding the IDs of all currently registered portals in creation order.
|
|
59
12
|
* Drives `GlobalOutlet` re-renders when portals are added or removed (including ephemeral ones).
|
|
60
13
|
* Read-only outside of portal lifecycle code — mutate only via `Portal` constructor/`onVisibilityChanged`.
|
|
61
14
|
*/
|
|
62
|
-
|
|
15
|
+
export const registeredIds = atom([]);
|
|
63
16
|
/**
|
|
64
17
|
* Base class for creating portals (modal, drawer, bottom sheet, etc).
|
|
65
18
|
* Manages state, visibility, params and lifecycle of floating components.
|
|
@@ -70,7 +23,17 @@ exports.registeredIds = (0, nanostores_1.atom)([]);
|
|
|
70
23
|
* @template RefType - Type of wrapper component ref
|
|
71
24
|
* @template WrapperProps - Props for wrapper component
|
|
72
25
|
*/
|
|
73
|
-
class Portal extends
|
|
26
|
+
export class Portal extends PortalState {
|
|
27
|
+
displayName = 'Portal';
|
|
28
|
+
id;
|
|
29
|
+
RenderContent;
|
|
30
|
+
ref;
|
|
31
|
+
requestHandler;
|
|
32
|
+
_config;
|
|
33
|
+
_wrapperProps;
|
|
34
|
+
_lazyWrapperProps;
|
|
35
|
+
static registry = new PortalRegistry();
|
|
36
|
+
static generateId = randomId;
|
|
74
37
|
getDefaultConfig() {
|
|
75
38
|
return {};
|
|
76
39
|
}
|
|
@@ -104,7 +67,6 @@ class Portal extends PortalState_1.PortalState {
|
|
|
104
67
|
return this.requestHandler.reject;
|
|
105
68
|
}
|
|
106
69
|
onVisibilityChanged(visible, wasVisible) {
|
|
107
|
-
var _a, _b;
|
|
108
70
|
if (this._config.independent) {
|
|
109
71
|
return;
|
|
110
72
|
}
|
|
@@ -114,12 +76,12 @@ class Portal extends PortalState_1.PortalState {
|
|
|
114
76
|
else {
|
|
115
77
|
if (wasVisible && !visible) {
|
|
116
78
|
if (this.hasPendingRequest) {
|
|
117
|
-
|
|
79
|
+
this.requestHandler.resolve?.(undefined);
|
|
118
80
|
this.requestHandler.clearRequest();
|
|
119
81
|
}
|
|
120
82
|
if (this._config.ephemeral) {
|
|
121
83
|
this.registry.unregister(this.id);
|
|
122
|
-
|
|
84
|
+
registeredIds.set(registeredIds.get().filter(id => id !== this.id));
|
|
123
85
|
return;
|
|
124
86
|
}
|
|
125
87
|
}
|
|
@@ -136,22 +98,31 @@ class Portal extends PortalState_1.PortalState {
|
|
|
136
98
|
*/
|
|
137
99
|
constructor(idOrConfig) {
|
|
138
100
|
super();
|
|
139
|
-
|
|
140
|
-
const
|
|
141
|
-
|
|
142
|
-
|
|
101
|
+
const id = TypeGuards.isString(idOrConfig) ? idOrConfig : idOrConfig?.id;
|
|
102
|
+
const config = TypeGuards.isObject(idOrConfig) ? idOrConfig : {};
|
|
103
|
+
this._config = {
|
|
104
|
+
initialParams: {},
|
|
105
|
+
startsOpen: false,
|
|
106
|
+
independent: false,
|
|
107
|
+
rendersWhenHidden: false,
|
|
108
|
+
metadata: {},
|
|
109
|
+
resetParamsOnClose: true,
|
|
110
|
+
transitionDuration: this.constructor.DEFAULT_TRANSITION_DURATION,
|
|
111
|
+
...this.getDefaultConfig(),
|
|
112
|
+
...config,
|
|
113
|
+
};
|
|
143
114
|
this.initializeState({
|
|
144
115
|
initialParams: this._config.initialParams,
|
|
145
116
|
startsOpen: this._config.startsOpen,
|
|
146
117
|
resetParamsOnClose: this._config.resetParamsOnClose,
|
|
147
118
|
transitionDuration: this._config.transitionDuration,
|
|
148
119
|
});
|
|
149
|
-
this.id = id
|
|
150
|
-
this.requestHandler = new
|
|
151
|
-
this._wrapperProps =
|
|
152
|
-
this.ref =
|
|
120
|
+
this.id = id ?? this.idGenerator();
|
|
121
|
+
this.requestHandler = new PortalRequest(this.open.bind(this), this.close.bind(this));
|
|
122
|
+
this._wrapperProps = atom({});
|
|
123
|
+
this.ref = React.createRef();
|
|
153
124
|
this.registry.register(this.id, this);
|
|
154
|
-
|
|
125
|
+
registeredIds.set([...registeredIds.get(), this.id]);
|
|
155
126
|
this.subscribe((visible, wasVisible) => {
|
|
156
127
|
this.onVisibilityChanged(visible, wasVisible);
|
|
157
128
|
});
|
|
@@ -191,7 +162,7 @@ class Portal extends PortalState_1.PortalState {
|
|
|
191
162
|
* @returns The portal instance for chaining
|
|
192
163
|
*/
|
|
193
164
|
props(props) {
|
|
194
|
-
if (
|
|
165
|
+
if (TypeGuards.isFunction(props)) {
|
|
195
166
|
this._lazyWrapperProps = props;
|
|
196
167
|
}
|
|
197
168
|
else {
|
|
@@ -205,8 +176,11 @@ class Portal extends PortalState_1.PortalState {
|
|
|
205
176
|
* @param deps - Dependency array for effect
|
|
206
177
|
*/
|
|
207
178
|
useProps(props, deps = []) {
|
|
208
|
-
|
|
209
|
-
this._wrapperProps.set(
|
|
179
|
+
useLayoutEffect(() => {
|
|
180
|
+
this._wrapperProps.set({
|
|
181
|
+
...this._wrapperProps.get(),
|
|
182
|
+
...props,
|
|
183
|
+
});
|
|
210
184
|
}, deps);
|
|
211
185
|
}
|
|
212
186
|
/**
|
|
@@ -215,8 +189,8 @@ class Portal extends PortalState_1.PortalState {
|
|
|
215
189
|
*/
|
|
216
190
|
useState() {
|
|
217
191
|
const { visible: visibleStore, params: paramsStore } = this.assertInitialized();
|
|
218
|
-
const visible =
|
|
219
|
-
const params =
|
|
192
|
+
const visible = useStore(visibleStore);
|
|
193
|
+
const params = useStore(paramsStore);
|
|
220
194
|
return { visible, params };
|
|
221
195
|
}
|
|
222
196
|
/** Whether there is a pending request awaiting resolution. */
|
|
@@ -229,32 +203,30 @@ class Portal extends PortalState_1.PortalState {
|
|
|
229
203
|
* @returns JSX element with portal content wrapped in wrapper component
|
|
230
204
|
*/
|
|
231
205
|
Component(props) {
|
|
232
|
-
var _a;
|
|
233
206
|
const { visible, params } = this.useState();
|
|
234
|
-
const wrapperProps =
|
|
235
|
-
const
|
|
236
|
-
const [mounted, setMounted] =
|
|
237
|
-
|
|
238
|
-
var _a, _b;
|
|
207
|
+
const wrapperProps = useStore(this._wrapperProps);
|
|
208
|
+
const { portalProps = {}, ...propParams } = props || {};
|
|
209
|
+
const [mounted, setMounted] = React.useState(visible);
|
|
210
|
+
React.useEffect(() => {
|
|
239
211
|
if (visible) {
|
|
240
212
|
setMounted(true);
|
|
241
213
|
return;
|
|
242
214
|
}
|
|
243
|
-
const timer = setTimeout(() => setMounted(false),
|
|
215
|
+
const timer = setTimeout(() => setMounted(false), this._config?.transitionDuration ?? 0);
|
|
244
216
|
return () => clearTimeout(timer);
|
|
245
217
|
}, [visible]);
|
|
246
218
|
const Content = this.RenderContent;
|
|
247
219
|
if (!Content) {
|
|
248
|
-
|
|
220
|
+
logger.warn(`${this.displayName} ${this.id} has no content. Did you forget to call .content()?`);
|
|
249
221
|
return null;
|
|
250
222
|
}
|
|
251
|
-
if (!visible && !mounted && !
|
|
223
|
+
if (!visible && !mounted && !this._config?.rendersWhenHidden)
|
|
252
224
|
return null;
|
|
253
225
|
const request = this.requestHandler.getRequestHandlers();
|
|
254
|
-
const lazyWrapperProps =
|
|
226
|
+
const lazyWrapperProps = this?._lazyWrapperProps ? this._lazyWrapperProps(params) : {};
|
|
255
227
|
const WrapperComponent = this.wrapperComponent;
|
|
256
|
-
return
|
|
257
|
-
|
|
228
|
+
return React.createElement(WrapperComponent, { ...this._config, ...this._wrapperProps, ...portalProps, ...wrapperProps, ...lazyWrapperProps, close: this.close, open: this.open, visible: visible, toggle: this.toggle, zIndex: this.stackIndex, ref: this.ref },
|
|
229
|
+
React.createElement(Content, { visible: visible, toggle: this.toggle, close: this.close, open: this.open, setParams: this.setParams, ...params, ...(propParams ?? {}), request: this.hasPendingRequest ? request : undefined, nextOrToggle: this.toggle, previousOrToggle: this.toggle, ref: this.ref }));
|
|
258
230
|
}
|
|
259
231
|
/**
|
|
260
232
|
* Creates a request promise that resolves when portal is closed with result.
|
|
@@ -271,10 +243,9 @@ class Portal extends PortalState_1.PortalState {
|
|
|
271
243
|
*/
|
|
272
244
|
static resetAll() {
|
|
273
245
|
Portal.registry.getAll().forEach(portal => {
|
|
274
|
-
|
|
275
|
-
(_a = portal.visible) === null || _a === void 0 ? void 0 : _a.set(false);
|
|
246
|
+
portal.visible?.set(false);
|
|
276
247
|
if (portal._initialParams !== undefined) {
|
|
277
|
-
|
|
248
|
+
portal.params?.set(portal._initialParams);
|
|
278
249
|
}
|
|
279
250
|
});
|
|
280
251
|
}
|
|
@@ -284,12 +255,9 @@ class Portal extends PortalState_1.PortalState {
|
|
|
284
255
|
* @returns JSX element rendering all registered portals
|
|
285
256
|
*/
|
|
286
257
|
static GlobalOutlet() {
|
|
287
|
-
|
|
288
|
-
const portals = Portal.registry.filter(p =>
|
|
289
|
-
return
|
|
258
|
+
useStore(registeredIds);
|
|
259
|
+
const portals = Portal.registry.filter(p => !p._config?.independent);
|
|
260
|
+
return React.createElement(React.Fragment, null, portals.map(portal => React.createElement(portal.Component, { key: portal.id })));
|
|
290
261
|
}
|
|
291
262
|
}
|
|
292
|
-
exports.Portal = Portal;
|
|
293
|
-
Portal.registry = new PortalRegistry_1.PortalRegistry();
|
|
294
|
-
Portal.generateId = utils_1.randomId;
|
|
295
263
|
//# sourceMappingURL=Portal.js.map
|
package/dist/lib/Portal.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Portal.js","sourceRoot":"","sources":["../../src/lib/Portal.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"Portal.js","sourceRoot":"","sources":["../../src/lib/Portal.tsx"],"names":[],"mappings":"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"}
|
|
@@ -1,17 +1,12 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PortalRegistry = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Registry for managing portal instances and their stacking order.
|
|
6
3
|
* Maintains a registry of portals by ID and tracks their z-index stack.
|
|
7
4
|
*
|
|
8
5
|
* @template T - Type of portal instances to manage
|
|
9
6
|
*/
|
|
10
|
-
class PortalRegistry {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
this.stack = [];
|
|
14
|
-
}
|
|
7
|
+
export class PortalRegistry {
|
|
8
|
+
registry = {};
|
|
9
|
+
stack = [];
|
|
15
10
|
/**
|
|
16
11
|
* Registers a portal instance with an ID.
|
|
17
12
|
* @param id - Unique identifier for the portal
|
|
@@ -84,5 +79,4 @@ class PortalRegistry {
|
|
|
84
79
|
this.stack = [];
|
|
85
80
|
}
|
|
86
81
|
}
|
|
87
|
-
exports.PortalRegistry = PortalRegistry;
|
|
88
82
|
//# sourceMappingURL=PortalRegistry.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalRegistry.js","sourceRoot":"","sources":["../../src/lib/PortalRegistry.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortalRegistry.js","sourceRoot":"","sources":["../../src/lib/PortalRegistry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AACH,MAAM,OAAO,cAAc;IACjB,QAAQ,GAAsB,EAAE,CAAA;IAEhC,KAAK,GAAa,EAAE,CAAA;IAE5B;;;;OAIG;IACH,QAAQ,CAAC,EAAU,EAAE,QAAW;QAC9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,QAAQ,CAAA;IAC9B,CAAC;IAED;;;OAGG;IACH,UAAU,CAAC,EAAU;QACnB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;QACxB,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;IACjB,CAAC;IAED;;;;OAIG;IACH,WAAW,CAAC,EAAU;QACpB,OAAO,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAA;IAC1B,CAAC;IAED;;;OAGG;IACH,IAAI,CAAC,EAAU;QACb,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC,CAAA;IACrB,CAAC;IAED;;;OAGG;IACH,MAAM,CAAC,EAAU;QACf,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;QACpC,IAAI,KAAK,GAAG,CAAC,CAAC,EAAE,CAAC;YACf,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAA;QACzC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,aAAa,CAAC,EAAU;QACtB,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,EAAE,CAAC,CAAA;IAC/B,CAAC;IAED;;;OAGG;IACH,MAAM;QACJ,OAAO,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAA;IACrC,CAAC;IAED;;;;OAIG;IACH,MAAM,CAAC,SAAmC;QACxC,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,SAAS,CAAC,CAAA;IACxC,CAAC;IAED;;OAEG;IACH,KAAK;QACH,IAAI,CAAC,QAAQ,GAAG,EAAE,CAAA;QAClB,IAAI,CAAC,KAAK,GAAG,EAAE,CAAA;IACjB,CAAC;CACF"}
|
|
@@ -1,6 +1,3 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.PortalRequest = void 0;
|
|
4
1
|
/**
|
|
5
2
|
* Handles promise-based portal requests with resolve/reject semantics.
|
|
6
3
|
* Manages the async flow of opening a portal and waiting for a result.
|
|
@@ -8,7 +5,11 @@ exports.PortalRequest = void 0;
|
|
|
8
5
|
* @template Params - Parameters for opening the portal
|
|
9
6
|
* @template Result - Type of result returned when request resolves
|
|
10
7
|
*/
|
|
11
|
-
class PortalRequest {
|
|
8
|
+
export class PortalRequest {
|
|
9
|
+
resolve;
|
|
10
|
+
reject;
|
|
11
|
+
onOpen;
|
|
12
|
+
onClose;
|
|
12
13
|
/**
|
|
13
14
|
* Creates a portal request handler.
|
|
14
15
|
* @param onOpen - Function to call when opening portal
|
|
@@ -69,5 +70,4 @@ class PortalRequest {
|
|
|
69
70
|
};
|
|
70
71
|
}
|
|
71
72
|
}
|
|
72
|
-
exports.PortalRequest = PortalRequest;
|
|
73
73
|
//# sourceMappingURL=PortalRequest.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalRequest.js","sourceRoot":"","sources":["../../src/lib/PortalRequest.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortalRequest.js","sourceRoot":"","sources":["../../src/lib/PortalRequest.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AACH,MAAM,OAAO,aAAa;IACxB,OAAO,CAAuC;IAE9C,MAAM,CAA4B;IAE1B,MAAM,CAAoC;IAE1C,OAAO,CAAqB;IAEpC;;;;OAIG;IACH,YACE,MAA0C,EAC1C,OAA4B;QAE5B,IAAI,CAAC,MAAM,GAAG,MAAM,CAAA;QACpB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAA;IACxB,CAAC;IAED;;;OAGG;IACH,IAAI,iBAAiB;QACnB,OAAO,CAAC,CAAC,IAAI,CAAC,OAAO,IAAI,CAAC,CAAC,IAAI,CAAC,MAAM,CAAA;IACxC,CAAC;IAED;;;;;OAKG;IACH,OAAO,CAAC,MAAe,EAAE,KAAK,GAAG,KAAK;QACpC,IAAI,IAAI,CAAC,iBAAiB,IAAI,CAAC,KAAK,EAAE,CAAC;YACrC,OAAO,OAAO,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,2CAA2C,CAAC,CAAC,CAAA;QAC/E,CAAC;QAED,OAAO,IAAI,OAAO,CAAmB,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE;YACvD,MAAM,SAAS,GAAG,CAAC,MAAwB,EAAE,EAAE;gBAC7C,OAAO,CAAC,MAAM,CAAC,CAAA;gBACf,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC,CAAA;YAED,MAAM,QAAQ,GAAG,CAAC,MAAe,EAAE,EAAE;gBACnC,MAAM,CAAC,MAAM,CAAC,CAAA;gBACd,IAAI,CAAC,OAAO,EAAE,CAAA;gBACd,IAAI,CAAC,YAAY,EAAE,CAAA;YACrB,CAAC,CAAA;YAED,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;YACxB,IAAI,CAAC,MAAM,GAAG,QAAQ,CAAA;YAEtB,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAA;QACrB,CAAC,CAAC,CAAA;IACJ,CAAC;IAED;;OAEG;IACH,YAAY;QACV,IAAI,CAAC,OAAO,GAAG,SAAS,CAAA;QACxB,IAAI,CAAC,MAAM,GAAG,SAAS,CAAA;IACzB,CAAC;IAED;;;OAGG;IACH,kBAAkB;QAChB,OAAO;YACL,OAAO,EAAE,IAAI,CAAC,OAAO;YACrB,MAAM,EAAE,IAAI,CAAC,MAAM;SACpB,CAAA;IACH,CAAC;CACF"}
|
|
@@ -26,8 +26,8 @@ export declare class PortalState<Params = {}> {
|
|
|
26
26
|
* @throws Error if `initializeState()` has not been called yet
|
|
27
27
|
*/
|
|
28
28
|
assertInitialized(): {
|
|
29
|
-
visible: import("nanostores"
|
|
30
|
-
params: import("nanostores"
|
|
29
|
+
visible: import("nanostores").PreinitializedWritableAtom<boolean> & object;
|
|
30
|
+
params: import("nanostores").PreinitializedWritableAtom<Params> & object;
|
|
31
31
|
config: PortalStateConfig<Params>;
|
|
32
32
|
initialParams: Params & ({} | null);
|
|
33
33
|
};
|
package/dist/lib/PortalState.js
CHANGED
|
@@ -1,23 +1,11 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.PortalState = void 0;
|
|
13
|
-
const nanostores_1 = require("nanostores");
|
|
14
|
-
const types_1 = require("@codeleap/types");
|
|
15
|
-
const utils_1 = require("../utils");
|
|
1
|
+
import { atom, onMount, task } from 'nanostores';
|
|
2
|
+
import { TypeGuards } from '@codeleap/types';
|
|
3
|
+
import { awaitTransition } from '../utils';
|
|
16
4
|
function initAtomWithPromise(a, promise) {
|
|
17
|
-
|
|
18
|
-
(
|
|
19
|
-
a.set(
|
|
20
|
-
})
|
|
5
|
+
onMount(a, () => {
|
|
6
|
+
task(async () => {
|
|
7
|
+
a.set(await promise);
|
|
8
|
+
});
|
|
21
9
|
});
|
|
22
10
|
}
|
|
23
11
|
/**
|
|
@@ -26,7 +14,14 @@ function initAtomWithPromise(a, promise) {
|
|
|
26
14
|
*
|
|
27
15
|
* @template Params - Type of parameters managed by the state
|
|
28
16
|
*/
|
|
29
|
-
class PortalState {
|
|
17
|
+
export class PortalState {
|
|
18
|
+
/** Nanostores atom managing portal visibility state. */
|
|
19
|
+
visible;
|
|
20
|
+
/** Nanostores atom managing portal parameters. */
|
|
21
|
+
params;
|
|
22
|
+
/** Initial parameter values used when resetting. */
|
|
23
|
+
_initialParams;
|
|
24
|
+
config;
|
|
30
25
|
/**
|
|
31
26
|
* Asserts the portal state has been initialized and returns the initialized stores.
|
|
32
27
|
* @throws Error if `initializeState()` has not been called yet
|
|
@@ -47,19 +42,18 @@ class PortalState {
|
|
|
47
42
|
* @param config - Configuration for initial state, visibility and params
|
|
48
43
|
*/
|
|
49
44
|
initializeState(config) {
|
|
50
|
-
var _a;
|
|
51
45
|
this.config = config;
|
|
52
|
-
const initialVisible =
|
|
53
|
-
const initialParams =
|
|
46
|
+
const initialVisible = TypeGuards.isBoolean(config.startsOpen) ? config.startsOpen : false;
|
|
47
|
+
const initialParams = TypeGuards.isFunction(config.initialParams)
|
|
54
48
|
? {}
|
|
55
|
-
: (
|
|
49
|
+
: (config.initialParams ?? {});
|
|
56
50
|
this._initialParams = initialParams;
|
|
57
|
-
this.visible =
|
|
58
|
-
this.params =
|
|
59
|
-
if (
|
|
51
|
+
this.visible = atom(initialVisible);
|
|
52
|
+
this.params = atom(initialParams);
|
|
53
|
+
if (TypeGuards.isFunction(config.startsOpen)) {
|
|
60
54
|
initAtomWithPromise(this.visible, config.startsOpen());
|
|
61
55
|
}
|
|
62
|
-
if (
|
|
56
|
+
if (TypeGuards.isFunction(config.initialParams)) {
|
|
63
57
|
initAtomWithPromise(this.params, config.initialParams().then(p => {
|
|
64
58
|
this._initialParams = p;
|
|
65
59
|
return p;
|
|
@@ -78,7 +72,7 @@ class PortalState {
|
|
|
78
72
|
}
|
|
79
73
|
awaitTransition(count = 1) {
|
|
80
74
|
const { config } = this.assertInitialized();
|
|
81
|
-
return
|
|
75
|
+
return awaitTransition(count, config.transitionDuration);
|
|
82
76
|
}
|
|
83
77
|
/** Lifecycle hook called after the portal opens. Override in subclasses to run custom logic. */
|
|
84
78
|
handleOpen() { }
|
|
@@ -86,40 +80,39 @@ class PortalState {
|
|
|
86
80
|
* Opens the portal with optional parameters.
|
|
87
81
|
* @param params - Parameters to merge with current params
|
|
88
82
|
*/
|
|
89
|
-
open(params) {
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
paramsAtom.
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
83
|
+
async open(params) {
|
|
84
|
+
const { visible, params: paramsAtom } = this.assertInitialized();
|
|
85
|
+
if (visible.get()) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
if (params) {
|
|
89
|
+
paramsAtom.set({
|
|
90
|
+
...paramsAtom.get(),
|
|
91
|
+
...params,
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
visible.set(true);
|
|
95
|
+
await this.awaitTransition();
|
|
96
|
+
this.handleOpen();
|
|
102
97
|
}
|
|
103
98
|
/** Lifecycle hook called after the portal closes. Override in subclasses to run custom logic. */
|
|
104
99
|
handleClose() { }
|
|
105
100
|
/**
|
|
106
101
|
* Closes the portal and optionally resets parameters.
|
|
107
102
|
*/
|
|
108
|
-
close() {
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
yield this.awaitTransition();
|
|
122
|
-
});
|
|
103
|
+
async close() {
|
|
104
|
+
const { visible, config } = this.assertInitialized();
|
|
105
|
+
if (!visible.get()) {
|
|
106
|
+
return this.awaitTransition();
|
|
107
|
+
}
|
|
108
|
+
visible.set(false);
|
|
109
|
+
if (config.resetParamsOnClose) {
|
|
110
|
+
setTimeout(() => {
|
|
111
|
+
this.resetParams();
|
|
112
|
+
}, 1000);
|
|
113
|
+
}
|
|
114
|
+
this.handleClose();
|
|
115
|
+
await this.awaitTransition();
|
|
123
116
|
}
|
|
124
117
|
/**
|
|
125
118
|
* Toggles portal visibility (opens if closed, closes if open).
|
|
@@ -140,8 +133,11 @@ class PortalState {
|
|
|
140
133
|
setParams(next) {
|
|
141
134
|
const { params } = this.assertInitialized();
|
|
142
135
|
const prev = params.get();
|
|
143
|
-
const patch =
|
|
144
|
-
params.set(
|
|
136
|
+
const patch = TypeGuards.isFunction(next) ? next(prev) : next;
|
|
137
|
+
params.set({
|
|
138
|
+
...prev,
|
|
139
|
+
...patch,
|
|
140
|
+
});
|
|
145
141
|
}
|
|
146
142
|
/**
|
|
147
143
|
* Resets parameters to initial values.
|
|
@@ -168,5 +164,4 @@ class PortalState {
|
|
|
168
164
|
return visible.subscribe(callback);
|
|
169
165
|
}
|
|
170
166
|
}
|
|
171
|
-
exports.PortalState = PortalState;
|
|
172
167
|
//# sourceMappingURL=PortalState.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"PortalState.js","sourceRoot":"","sources":["../../src/lib/PortalState.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"PortalState.js","sourceRoot":"","sources":["../../src/lib/PortalState.ts"],"names":[],"mappings":"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"}
|
package/dist/types/index.js
CHANGED
|
@@ -1,18 +1,2 @@
|
|
|
1
|
-
|
|
2
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
|
-
if (k2 === undefined) k2 = k;
|
|
4
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
-
}
|
|
8
|
-
Object.defineProperty(o, k2, desc);
|
|
9
|
-
}) : (function(o, m, k, k2) {
|
|
10
|
-
if (k2 === undefined) k2 = k;
|
|
11
|
-
o[k2] = m[k];
|
|
12
|
-
}));
|
|
13
|
-
var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
14
|
-
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
15
|
-
};
|
|
16
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
17
|
-
__exportStar(require("./portal"), exports);
|
|
1
|
+
export * from './portal';
|
|
18
2
|
//# sourceMappingURL=index.js.map
|
package/dist/types/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/types/index.ts"],"names":[],"mappings":"AAAA,cAAc,UAAU,CAAA"}
|
package/dist/types/misc.js
CHANGED
package/dist/types/portal.js
CHANGED
package/dist/utils.js
CHANGED
|
@@ -1,35 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
|
|
3
|
-
function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
|
|
4
|
-
return new (P || (P = Promise))(function (resolve, reject) {
|
|
5
|
-
function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
|
|
6
|
-
function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
|
|
7
|
-
function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
|
|
8
|
-
step((generator = generator.apply(thisArg, _arguments || [])).next());
|
|
9
|
-
});
|
|
10
|
-
};
|
|
11
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
12
|
-
exports.randomId = void 0;
|
|
13
|
-
exports.awaitTransition = awaitTransition;
|
|
14
|
-
const utils_1 = require("@codeleap/utils");
|
|
1
|
+
import { waitFor } from '@codeleap/utils';
|
|
15
2
|
/**
|
|
16
3
|
* Generates a random 7-character alphanumeric ID.
|
|
17
4
|
* @returns Random ID string
|
|
18
5
|
*/
|
|
19
|
-
const randomId = () => {
|
|
6
|
+
export const randomId = () => {
|
|
20
7
|
return Math.random().toString(36).slice(2, 9);
|
|
21
8
|
};
|
|
22
|
-
exports.randomId = randomId;
|
|
23
9
|
/**
|
|
24
10
|
* Waits for one or more animation transitions to complete.
|
|
25
11
|
* @param count - Number of transitions to wait for (defaults to 1)
|
|
26
12
|
* @param duration - Duration per transition in milliseconds (defaults to 1000)
|
|
27
13
|
*/
|
|
28
|
-
function awaitTransition(
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
}
|
|
33
|
-
});
|
|
14
|
+
export async function awaitTransition(count, duration = 1000) {
|
|
15
|
+
for (let i = 0; i < (count ?? 1); i++) {
|
|
16
|
+
await waitFor(duration);
|
|
17
|
+
}
|
|
34
18
|
}
|
|
35
19
|
//# sourceMappingURL=utils.js.map
|
package/dist/utils.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,iBAAiB,CAAA;AAEzC;;;GAGG;AACH,MAAM,CAAC,MAAM,QAAQ,GAAG,GAAG,EAAE;IAC3B,OAAO,IAAI,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAA;AAC/C,CAAC,CAAA;AAED;;;;GAIG;AACH,MAAM,CAAC,KAAK,UAAU,eAAe,CAAC,KAAc,EAAE,QAAQ,GAAG,IAAI;IACnE,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,KAAK,IAAI,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC;QACtC,MAAM,OAAO,CAAC,QAAQ,CAAC,CAAA;IACzB,CAAC;AACH,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@codeleap/portals",
|
|
3
|
-
"
|
|
3
|
+
"type": "module",
|
|
4
|
+
"version": "7.1.2",
|
|
4
5
|
"main": "dist/index.js",
|
|
5
6
|
"types": "dist/index.d.ts",
|
|
6
7
|
"exports": {
|
|
@@ -22,10 +23,10 @@
|
|
|
22
23
|
"directory": "packages/portals"
|
|
23
24
|
},
|
|
24
25
|
"devDependencies": {
|
|
25
|
-
"@codeleap/types": "7.
|
|
26
|
-
"@codeleap/config": "7.
|
|
27
|
-
"@codeleap/utils": "7.
|
|
28
|
-
"@codeleap/logger": "7.
|
|
26
|
+
"@codeleap/types": "7.1.1",
|
|
27
|
+
"@codeleap/config": "7.1.1",
|
|
28
|
+
"@codeleap/utils": "7.1.1",
|
|
29
|
+
"@codeleap/logger": "7.1.1",
|
|
29
30
|
"ts-node-dev": "1.1.8"
|
|
30
31
|
},
|
|
31
32
|
"scripts": {
|
|
@@ -35,9 +36,9 @@
|
|
|
35
36
|
"run-sc": "tsnd --transpile-only"
|
|
36
37
|
},
|
|
37
38
|
"peerDependencies": {
|
|
38
|
-
"@codeleap/types": "7.
|
|
39
|
-
"@codeleap/utils": "7.
|
|
40
|
-
"@codeleap/logger": "7.
|
|
39
|
+
"@codeleap/types": "7.1.1",
|
|
40
|
+
"@codeleap/utils": "7.1.1",
|
|
41
|
+
"@codeleap/logger": "7.1.1",
|
|
41
42
|
"typescript": "6.0.3",
|
|
42
43
|
"react": "19.1.0",
|
|
43
44
|
"nanostores": "*",
|