@pihanga2/core 0.3.3 → 0.3.5
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/card.d.ts +3 -2
- package/dist/card.d.ts.map +1 -1
- package/dist/card.js +17 -8
- package/dist/card.js.map +1 -1
- package/dist/index.d.ts +5 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +63 -3
- package/dist/index.js.map +1 -1
- package/dist/reducer.d.ts.map +1 -1
- package/dist/reducer.js +65 -18
- package/dist/reducer.js.map +1 -1
- package/dist/redux.d.ts.map +1 -1
- package/dist/redux.js.map +1 -1
- package/dist/register.d.ts +1 -0
- package/dist/register.d.ts.map +1 -0
- package/dist/register.js +28 -0
- package/dist/register.js.map +1 -0
- package/dist/register_cards.d.ts +2 -2
- package/dist/register_cards.d.ts.map +1 -1
- package/dist/register_cards.js +3 -3
- package/dist/register_cards.js.map +1 -1
- package/dist/router.d.ts +11 -5
- package/dist/router.d.ts.map +1 -1
- package/dist/router.js +33 -28
- package/dist/router.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/dist/types.d.ts +2 -1
- package/dist/types.d.ts.map +1 -1
- package/dist/types.js +1 -1
- package/dist/types.js.map +1 -1
- package/package.json +2 -2
- package/src/card.tsx +17 -9
- package/src/index.ts +72 -4
- package/src/reducer.ts +133 -76
- package/src/redux.ts +26 -25
- package/src/register.ts +31 -0
- package/src/register_cards.ts +27 -26
- package/src/router.ts +129 -100
- package/src/types.ts +10 -7
package/dist/router.d.ts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { DispatchF, PathQuery, PiReducer, ReduceF, ReduxAction, ReduxState, Route } from
|
|
2
|
-
import { PiRegister } from
|
|
1
|
+
import { DispatchF, PathQuery, PiReducer, ReduceF, ReduxAction, ReduxState, Route } from "./types";
|
|
2
|
+
import { PiRegister } from ".";
|
|
3
3
|
export declare const browserHistory: import("history").BrowserHistory;
|
|
4
4
|
export declare const ACTION_TYPES: {
|
|
5
5
|
SHOW_PAGE: string;
|
|
@@ -10,16 +10,22 @@ export type ShowPageEvent = {
|
|
|
10
10
|
query?: PathQuery;
|
|
11
11
|
fromBrowser?: boolean;
|
|
12
12
|
};
|
|
13
|
-
export declare const onShowPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction &
|
|
13
|
+
export declare const onShowPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction & {
|
|
14
|
+
cardID: string;
|
|
15
|
+
} & ShowPageEvent>) => void;
|
|
14
16
|
export declare const showPage: (dispatch: DispatchF, path: string[], query?: PathQuery) => void;
|
|
15
17
|
export declare const createShowPageAction: (path: string[], query?: PathQuery) => ReduxAction & ShowPageEvent;
|
|
16
18
|
export type NavigateToPageEvent = {
|
|
17
19
|
url: string;
|
|
18
20
|
fromBrowser: boolean;
|
|
19
21
|
};
|
|
20
|
-
export declare const onNavigateToPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction &
|
|
22
|
+
export declare const onNavigateToPage: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction & {
|
|
23
|
+
cardID: string;
|
|
24
|
+
} & NavigateToPageEvent>) => void;
|
|
21
25
|
export declare const ON_INIT_ACTION = "pi/start";
|
|
22
|
-
export declare const onInit: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction
|
|
26
|
+
export declare const onInit: <S extends ReduxState>(register: PiRegister, f: ReduceF<S, ReduxAction & {
|
|
27
|
+
cardID: string;
|
|
28
|
+
}>) => void;
|
|
23
29
|
export declare function currentRoute(pathPrefix?: string): Route;
|
|
24
30
|
export declare function init(reducer: PiReducer, pathPrefix?: string): Route;
|
|
25
31
|
//# sourceMappingURL=router.d.ts.map
|
package/dist/router.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAGA,OAAO,
|
|
1
|
+
{"version":3,"file":"router.d.ts","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAGA,OAAO,EAEL,SAAS,EACT,SAAS,EACT,SAAS,EACT,OAAO,EACP,WAAW,EACX,UAAU,EACV,KAAK,EACN,MAAM,SAAS,CAAC;AACjB,OAAO,EAAC,UAAU,EAAC,MAAM,GAAG,CAAC;AAG7B,eAAO,MAAM,cAAc,kCAAyB,CAAC;AASrD,eAAO,MAAM,YAAY;;;CAGvB,CAAC;AAEH,MAAM,MAAM,aAAa,GAAG;IAC1B,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB,CAAC;AACF,eAAO,MAAM,UAAU;;2BAAwD,CAAC;AAEhF,eAAO,MAAM,QAAQ,aACT,SAAS,QACb,MAAM,EAAE,UACN,SAAS,SAGlB,CAAC;AAEF,eAAO,MAAM,oBAAoB,SACzB,MAAM,EAAE,UACN,SAAS,KAChB,WAAW,GAAG,aAKf,CAAC;AAEH,MAAM,MAAM,mBAAmB,GAAG;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,WAAW,EAAE,OAAO,CAAC;CACtB,CAAC;AACF,eAAO,MAAM,gBAAgB;;iCAE5B,CAAC;AAEF,eAAO,MAAM,cAAc,aAAa,CAAC;AACzC,eAAO,MAAM,MAAM;;WAAqC,CAAC;AAEzD,wBAAgB,YAAY,CAAC,UAAU,SAAK,GAAG,KAAK,CAKnD;AAED,wBAAgB,IAAI,CAAC,OAAO,EAAE,SAAS,EAAE,UAAU,SAAK,GAAG,KAAK,CA4E/D"}
|
package/dist/router.js
CHANGED
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { createBrowserHistory } from
|
|
2
|
-
import { getLogger } from
|
|
3
|
-
import { registerActions } from
|
|
1
|
+
import { createBrowserHistory } from "history";
|
|
2
|
+
import { getLogger } from "./logger";
|
|
3
|
+
import { createOnAction, registerActions } from "./redux";
|
|
4
|
+
import { DEF_REDUCER_PRIORITY, } from "./types";
|
|
4
5
|
const logger = getLogger("router");
|
|
5
6
|
export const browserHistory = createBrowserHistory();
|
|
6
7
|
// type Route = {
|
|
@@ -9,33 +10,38 @@ export const browserHistory = createBrowserHistory();
|
|
|
9
10
|
// url: string
|
|
10
11
|
// fromBrowser?: boolean
|
|
11
12
|
// }
|
|
12
|
-
export const ACTION_TYPES = registerActions(
|
|
13
|
+
export const ACTION_TYPES = registerActions("pi/router", [
|
|
14
|
+
"show_page",
|
|
15
|
+
"navigate_to_page",
|
|
16
|
+
]);
|
|
13
17
|
export const onShowPage = createOnAction(ACTION_TYPES.SHOW_PAGE);
|
|
14
18
|
export const showPage = (dispatch, path, query) => {
|
|
15
19
|
dispatch(createShowPageAction(path, query));
|
|
16
20
|
};
|
|
17
21
|
export const createShowPageAction = (path, query) => ({
|
|
18
22
|
type: ACTION_TYPES.SHOW_PAGE,
|
|
19
|
-
path,
|
|
23
|
+
path,
|
|
24
|
+
query,
|
|
25
|
+
fromBrowser: false,
|
|
20
26
|
});
|
|
21
27
|
export const onNavigateToPage = createOnAction(ACTION_TYPES.NAVIGATE_TO_PAGE);
|
|
22
28
|
export const ON_INIT_ACTION = "pi/start";
|
|
23
29
|
export const onInit = createOnAction(ON_INIT_ACTION);
|
|
24
|
-
export function currentRoute(pathPrefix =
|
|
30
|
+
export function currentRoute(pathPrefix = "") {
|
|
25
31
|
const f = route_functions(pathPrefix);
|
|
26
32
|
const r2 = f.url2route(window.location.href);
|
|
27
33
|
const r = f.location2route(browserHistory.location);
|
|
28
34
|
return r;
|
|
29
35
|
}
|
|
30
|
-
export function init(reducer, pathPrefix =
|
|
36
|
+
export function init(reducer, pathPrefix = "") {
|
|
31
37
|
let workingURL;
|
|
32
38
|
const f = route_functions(pathPrefix);
|
|
33
39
|
browserHistory.listen(({ action, location }) => {
|
|
34
40
|
// location is an object like window.location
|
|
35
41
|
const { url } = f.location2route(location);
|
|
36
42
|
if (workingURL !== url) {
|
|
37
|
-
logger.info(
|
|
38
|
-
setTimeout(() => navigateToPage(url, action ===
|
|
43
|
+
logger.info("browser history:", url, action);
|
|
44
|
+
setTimeout(() => navigateToPage(url, action === "POP"));
|
|
39
45
|
}
|
|
40
46
|
});
|
|
41
47
|
function browserPath() {
|
|
@@ -60,7 +66,7 @@ export function init(reducer, pathPrefix = '') {
|
|
|
60
66
|
...r,
|
|
61
67
|
});
|
|
62
68
|
return state;
|
|
63
|
-
});
|
|
69
|
+
}, DEF_REDUCER_PRIORITY, "@builtin:router:NAVIGATE_TO_PAGE");
|
|
64
70
|
reducer.register(ACTION_TYPES.SHOW_PAGE, (state, { path, query = {}, fromBrowser = false }) => {
|
|
65
71
|
const route = f.pathl2route(path, query);
|
|
66
72
|
workingURL = route.url;
|
|
@@ -75,17 +81,16 @@ export function init(reducer, pathPrefix = '') {
|
|
|
75
81
|
fromBrowser,
|
|
76
82
|
};
|
|
77
83
|
return state;
|
|
78
|
-
});
|
|
79
|
-
reducer.register(
|
|
84
|
+
}, DEF_REDUCER_PRIORITY, "@builtin:router:SHOW_PAGE");
|
|
85
|
+
reducer.register("@@INIT", (state) => {
|
|
80
86
|
const url = browserPath().url;
|
|
81
87
|
logger.info(`Request navigation to '${url}'`);
|
|
82
88
|
setTimeout(() => navigateToPage(url, true));
|
|
83
89
|
return state;
|
|
84
|
-
});
|
|
90
|
+
}, DEF_REDUCER_PRIORITY, "@builtin:router:@@INIT");
|
|
85
91
|
return f.location2route(browserHistory.location);
|
|
86
92
|
}
|
|
87
|
-
|
|
88
|
-
function route_functions(pathPrefix = '') {
|
|
93
|
+
function route_functions(pathPrefix = "") {
|
|
89
94
|
const location2route = (location) => {
|
|
90
95
|
const [p, s] = [location.pathname, location.search];
|
|
91
96
|
const url = s ? `${p}${s}` : p;
|
|
@@ -93,34 +98,39 @@ function route_functions(pathPrefix = '') {
|
|
|
93
98
|
};
|
|
94
99
|
const url2route = (url) => {
|
|
95
100
|
const [pn, search] = url.split("?");
|
|
96
|
-
const path = pn
|
|
101
|
+
const path = pn
|
|
102
|
+
.substring(pathPrefix.length)
|
|
103
|
+
.split("/")
|
|
104
|
+
.filter((s) => s !== "");
|
|
97
105
|
const query = {};
|
|
98
106
|
const s = search;
|
|
99
107
|
if (s && s.length > 0) {
|
|
100
|
-
s.split(
|
|
101
|
-
const [k, v] = el.split(
|
|
108
|
+
s.split("&").forEach((el) => {
|
|
109
|
+
const [k, v] = el.split("=");
|
|
102
110
|
query[decodeURI(k)] = v ? decodeURI(v) : true;
|
|
103
111
|
});
|
|
104
112
|
}
|
|
105
113
|
return { url, path, query };
|
|
106
114
|
};
|
|
107
115
|
const pathl2route = (path, query) => {
|
|
108
|
-
let url = `${pathPrefix}/${path.join(
|
|
116
|
+
let url = `${pathPrefix}/${path.join("/")}`;
|
|
109
117
|
if (query) {
|
|
110
118
|
const qa = Object.entries(query);
|
|
111
119
|
if (qa.length > 0) {
|
|
112
|
-
const s = qa
|
|
120
|
+
const s = qa
|
|
121
|
+
.map(([k, v]) => {
|
|
113
122
|
const n = encodeURI(k);
|
|
114
|
-
if (typeof v ===
|
|
123
|
+
if (typeof v === "boolean") {
|
|
115
124
|
return n;
|
|
116
125
|
}
|
|
117
|
-
else if (typeof v ===
|
|
126
|
+
else if (typeof v === "number") {
|
|
118
127
|
return `${n}=${v}`;
|
|
119
128
|
}
|
|
120
129
|
else {
|
|
121
130
|
return `${n}=${encodeURI(v)}`;
|
|
122
131
|
}
|
|
123
|
-
})
|
|
132
|
+
})
|
|
133
|
+
.join("&");
|
|
124
134
|
url = `${url}?${s}`;
|
|
125
135
|
}
|
|
126
136
|
}
|
|
@@ -128,9 +138,4 @@ function route_functions(pathPrefix = '') {
|
|
|
128
138
|
};
|
|
129
139
|
return { location2route, url2route, pathl2route };
|
|
130
140
|
}
|
|
131
|
-
function createOnAction(actionType) {
|
|
132
|
-
return (register, f) => {
|
|
133
|
-
register.reducer.register(actionType, f);
|
|
134
|
-
};
|
|
135
|
-
}
|
|
136
141
|
//# sourceMappingURL=router.js.map
|
package/dist/router.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,
|
|
1
|
+
{"version":3,"file":"router.js","sourceRoot":"","sources":["../src/router.ts"],"names":[],"mappings":"AAAA,OAAO,EAAS,oBAAoB,EAAW,MAAM,SAAS,CAAC;AAC/D,OAAO,EAAC,SAAS,EAAC,MAAM,UAAU,CAAC;AACnC,OAAO,EAAC,cAAc,EAAE,eAAe,EAAC,MAAM,SAAS,CAAC;AACxD,OAAO,EACL,oBAAoB,GAQrB,MAAM,SAAS,CAAC;AAGjB,MAAM,MAAM,GAAG,SAAS,CAAC,QAAQ,CAAC,CAAC;AACnC,MAAM,CAAC,MAAM,cAAc,GAAG,oBAAoB,EAAE,CAAC;AAErD,iBAAiB;AACjB,mBAAmB;AACnB,qBAAqB;AACrB,gBAAgB;AAChB,0BAA0B;AAC1B,IAAI;AAEJ,MAAM,CAAC,MAAM,YAAY,GAAG,eAAe,CAAC,WAAW,EAAE;IACvD,WAAW;IACX,kBAAkB;CACnB,CAAC,CAAC;AAOH,MAAM,CAAC,MAAM,UAAU,GAAG,cAAc,CAAgB,YAAY,CAAC,SAAS,CAAC,CAAC;AAEhF,MAAM,CAAC,MAAM,QAAQ,GAAG,CACtB,QAAmB,EACnB,IAAc,EACd,KAAiB,EACjB,EAAE;IACF,QAAQ,CAAC,oBAAoB,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC,CAAC;AAC9C,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAClC,IAAc,EACd,KAAiB,EACY,EAAE,CAAC,CAAC;IACjC,IAAI,EAAE,YAAY,CAAC,SAAS;IAC5B,IAAI;IACJ,KAAK;IACL,WAAW,EAAE,KAAK;CACnB,CAAC,CAAC;AAMH,MAAM,CAAC,MAAM,gBAAgB,GAAG,cAAc,CAC5C,YAAY,CAAC,gBAAgB,CAC9B,CAAC;AAEF,MAAM,CAAC,MAAM,cAAc,GAAG,UAAU,CAAC;AACzC,MAAM,CAAC,MAAM,MAAM,GAAG,cAAc,CAAK,cAAc,CAAC,CAAC;AAEzD,MAAM,UAAU,YAAY,CAAC,UAAU,GAAG,EAAE;IAC1C,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IACtC,MAAM,EAAE,GAAG,CAAC,CAAC,SAAS,CAAC,MAAM,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,CAAC,GAAG,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACpD,OAAO,CAAC,CAAC;AACX,CAAC;AAED,MAAM,UAAU,IAAI,CAAC,OAAkB,EAAE,UAAU,GAAG,EAAE;IACtD,IAAI,UAAkB,CAAC;IACvB,MAAM,CAAC,GAAG,eAAe,CAAC,UAAU,CAAC,CAAC;IAEtC,cAAc,CAAC,MAAM,CAAC,CAAC,EAAC,MAAM,EAAE,QAAQ,EAAS,EAAE,EAAE;QACnD,6CAA6C;QAC7C,MAAM,EAAC,GAAG,EAAC,GAAG,CAAC,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;QACzC,IAAI,UAAU,KAAK,GAAG,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,CAAC,kBAAkB,EAAE,GAAG,EAAE,MAAM,CAAC,CAAC;YAC7C,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,MAAM,KAAK,KAAK,CAAC,CAAC,CAAC;QAC1D,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,SAAS,WAAW;QAClB,OAAO,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;IACnD,CAAC;IAED,SAAS,cAAc,CAAC,GAAW,EAAE,WAAW,GAAG,KAAK;QACtD,OAAO,CAAC,QAAQ,CAAC;YACf,IAAI,EAAE,YAAY,CAAC,gBAAgB;YACnC,GAAG;YACH,WAAW;SACZ,CAAC,CAAC;IACL,CAAC;IAED,OAAO,CAAC,QAAQ,CACd,YAAY,CAAC,gBAAgB,EAC7B,CAAC,KAAK,EAAE,EAAC,GAAG,EAAE,WAAW,EAAC,EAAE,QAAQ,EAAE,EAAE;;QACtC,MAAM,CAAC,GAAG,CAAC,CAAC,SAAS,CAAC,GAAG,CAAC,CAAC;QAC3B,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC;QAC5B,IAAI,UAAU,IAAI,CAAA,MAAA,KAAK,CAAC,KAAK,0CAAE,GAAG,MAAK,CAAC,CAAC,GAAG,EAAE,CAAC;YAC7C,OAAO,KAAK,CAAC;QACf,CAAC;QACD,QAAQ,CAAC;YACP,IAAI,EAAE,YAAY,CAAC,SAAS;YAC5B,GAAG,CAAC;SACL,CAAC,CAAC;QACH,OAAO,KAAK,CAAC;IACf,CAAC,EACD,oBAAoB,EACpB,kCAAkC,CACnC,CAAC;IAEF,OAAO,CAAC,QAAQ,CACd,YAAY,CAAC,SAAS,EACtB,CAAC,KAAK,EAAE,EAAC,IAAI,EAAE,KAAK,GAAG,EAAE,EAAE,WAAW,GAAG,KAAK,EAAC,EAAE,EAAE;QACjD,MAAM,KAAK,GAAG,CAAC,CAAC,WAAW,CAAC,IAAI,EAAE,KAAK,CAAC,CAAC;QACzC,UAAU,GAAG,KAAK,CAAC,GAAG,CAAC;QACvB,IAAI,CAAC,WAAW,EAAE,CAAC;YACjB,MAAM,EAAE,GAAG,WAAW,EAAE,CAAC;YACzB,IAAI,KAAK,CAAC,GAAG,KAAK,EAAE,CAAC,GAAG,EAAE,CAAC;gBACzB,cAAc,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;YACjC,CAAC;QACH,CAAC;QACD,KAAK,CAAC,KAAK,GAAG;YACZ,GAAG,KAAK;YACR,WAAW;SACZ,CAAC;QACF,OAAO,KAAK,CAAC;IACf,CAAC,EACD,oBAAoB,EACpB,2BAA2B,CAC5B,CAAC;IAEF,OAAO,CAAC,QAAQ,CACd,QAAQ,EACR,CAAC,KAAK,EAAE,EAAE;QACR,MAAM,GAAG,GAAG,WAAW,EAAE,CAAC,GAAG,CAAC;QAC9B,MAAM,CAAC,IAAI,CAAC,0BAA0B,GAAG,GAAG,CAAC,CAAC;QAC9C,UAAU,CAAC,GAAG,EAAE,CAAC,cAAc,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC,CAAC;QAC5C,OAAO,KAAK,CAAC;IACf,CAAC,EACD,oBAAoB,EACpB,wBAAwB,CACzB,CAAC;IACF,OAAO,CAAC,CAAC,cAAc,CAAC,cAAc,CAAC,QAAQ,CAAC,CAAC;AACnD,CAAC;AAED,SAAS,eAAe,CAAC,UAAU,GAAG,EAAE;IACtC,MAAM,cAAc,GAAG,CAAC,QAAkB,EAAS,EAAE;QACnD,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;QAC/B,OAAO,SAAS,CAAC,GAAG,CAAC,CAAC;IACxB,CAAC,CAAC;IAEF,MAAM,SAAS,GAAG,CAAC,GAAW,EAAS,EAAE;QACvC,MAAM,CAAC,EAAE,EAAE,MAAM,CAAC,GAAG,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEpC,MAAM,IAAI,GAAG,EAAE;aACZ,SAAS,CAAC,UAAU,CAAC,MAAM,CAAC;aAC5B,KAAK,CAAC,GAAG,CAAC;aACV,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,KAAK,EAAE,CAAC,CAAC;QAC3B,MAAM,KAAK,GAAG,EAAe,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC;QACjB,IAAI,CAAC,IAAI,CAAC,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACtB,CAAC,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC,CAAC,EAAE,EAAE,EAAE;gBAC1B,MAAM,CAAC,CAAC,EAAE,CAAC,CAAC,GAAG,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;gBAC7B,KAAK,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAChD,CAAC,CAAC,CAAC;QACL,CAAC;QACD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IAC5B,CAAC,CAAC;IAEF,MAAM,WAAW,GAAG,CAAC,IAAc,EAAE,KAAgB,EAAS,EAAE;QAC9D,IAAI,GAAG,GAAG,GAAG,UAAU,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC;QAC5C,IAAI,KAAK,EAAE,CAAC;YACV,MAAM,EAAE,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACjC,IAAI,EAAE,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAClB,MAAM,CAAC,GAAG,EAAE;qBACT,GAAG,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE;oBACd,MAAM,CAAC,GAAG,SAAS,CAAC,CAAC,CAAC,CAAC;oBACvB,IAAI,OAAO,CAAC,KAAK,SAAS,EAAE,CAAC;wBAC3B,OAAO,CAAC,CAAC;oBACX,CAAC;yBAAM,IAAI,OAAO,CAAC,KAAK,QAAQ,EAAE,CAAC;wBACjC,OAAO,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;oBACrB,CAAC;yBAAM,CAAC;wBACN,OAAO,GAAG,CAAC,IAAI,SAAS,CAAC,CAAC,CAAC,EAAE,CAAC;oBAChC,CAAC;gBACH,CAAC,CAAC;qBACD,IAAI,CAAC,GAAG,CAAC,CAAC;gBACb,GAAG,GAAG,GAAG,GAAG,IAAI,CAAC,EAAE,CAAC;YACtB,CAAC;QACH,CAAC;QACD,OAAO,EAAC,GAAG,EAAE,IAAI,EAAE,KAAK,EAAC,CAAC;IAC5B,CAAC,CAAC;IACF,OAAO,EAAC,cAAc,EAAE,SAAS,EAAE,WAAW,EAAC,CAAC;AAClD,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"root":["../src/card.tsx","../src/index.ts","../src/logger.ts","../src/reducer.ts","../src/redux.ts","../src/register_cards.ts","../src/root.tsx","../src/router.ts","../src/store.ts","../src/types.ts","../src/rest/delete.ts","../src/rest/enums.ts","../src/rest/get.ts","../src/rest/index.ts","../src/rest/postputpatch.ts","../src/rest/types.ts","../src/rest/utils.ts"],"version":"5.7.2"}
|
|
1
|
+
{"root":["../src/card.tsx","../src/index.ts","../src/logger.ts","../src/reducer.ts","../src/redux.ts","../src/register.ts","../src/register_cards.ts","../src/root.tsx","../src/router.ts","../src/store.ts","../src/types.ts","../src/rest/delete.ts","../src/rest/enums.ts","../src/rest/get.ts","../src/rest/index.ts","../src/rest/postputpatch.ts","../src/rest/types.ts","../src/rest/utils.ts"],"version":"5.7.2"}
|
package/dist/types.d.ts
CHANGED
|
@@ -35,8 +35,9 @@ export interface PiReducer {
|
|
|
35
35
|
dispatch: DispatchF;
|
|
36
36
|
dispatchFromReducer: DispatchF;
|
|
37
37
|
}
|
|
38
|
+
export declare const DEF_REDUCER_PRIORITY = 0;
|
|
38
39
|
export type PiRegisterReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceF<S, A>, // (state: S, action: A, dispatch: DispatchF) => S,
|
|
39
|
-
priority?: number, key?: string) => PiReducerCancelF;
|
|
40
|
+
priority?: number, key?: string, targetMapper?: ReduceF<S, A>) => PiReducerCancelF;
|
|
40
41
|
export type PiReducerCancelF = () => void;
|
|
41
42
|
export type PiRegisterOneShotReducerF = <S extends ReduxState, A extends ReduxAction>(eventType: string, mapper: ReduceOnceF<S, A>, priority?: number) => void;
|
|
42
43
|
export type PiDefCtxtProps = {
|
package/dist/types.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAAG;IACvB,KAAK,EAAE,KAAK,CAAC;IAEb,OAAO,CAAC,EAAE;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"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"}
|
package/dist/types.js
CHANGED
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
export
|
|
1
|
+
export const DEF_REDUCER_PRIORITY = 0;
|
|
2
2
|
//# sourceMappingURL=types.js.map
|
package/dist/types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":""}
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../src/types.ts"],"names":[],"mappings":"AAkDA,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAAC,CAAC"}
|
package/package.json
CHANGED
package/src/card.tsx
CHANGED
|
@@ -71,13 +71,19 @@ export function Card(props: CardProp): JSX.Element {
|
|
|
71
71
|
|
|
72
72
|
export function usePiReducer<S extends ReduxState, A extends ReduxAction>(
|
|
73
73
|
eventType: string,
|
|
74
|
-
mapper: ReduceF<S, A
|
|
74
|
+
mapper: ReduceF<S, A>, // (state: S, action: A, dispatch: DispatchF) => S,
|
|
75
|
+
cardName: string
|
|
75
76
|
) {
|
|
76
77
|
const store = useStore();
|
|
77
|
-
|
|
78
|
+
let key: string;
|
|
79
|
+
if (cardName !== "") {
|
|
80
|
+
key = `inside card '${cardName}'`;
|
|
81
|
+
} else {
|
|
82
|
+
key = useId();
|
|
83
|
+
}
|
|
78
84
|
useEffect(() => {
|
|
79
85
|
const r = (store as any).piReducer as PiReducer;
|
|
80
|
-
return r.register(eventType, mapper, 0,
|
|
86
|
+
return r.register(eventType, mapper, 0, key);
|
|
81
87
|
});
|
|
82
88
|
}
|
|
83
89
|
|
|
@@ -184,14 +190,17 @@ function getCardProps(
|
|
|
184
190
|
props: CardProp
|
|
185
191
|
): CompProps {
|
|
186
192
|
const mapping = cardMappings[cardName];
|
|
193
|
+
// fetch all the usage specific props in 'rest' and pass them down
|
|
194
|
+
const {cardName: _n, cardKey, parentCard: _p, children: _c, ...rest} = props;
|
|
187
195
|
const ctxt: StateMapperContext<unknown> = {
|
|
188
196
|
cardName,
|
|
189
|
-
cardKey
|
|
197
|
+
cardKey,
|
|
190
198
|
ctxtProps: props,
|
|
191
199
|
};
|
|
192
200
|
const init: CompProps = {
|
|
193
201
|
cardName,
|
|
194
|
-
cardKey
|
|
202
|
+
cardKey,
|
|
203
|
+
...rest,
|
|
195
204
|
};
|
|
196
205
|
const cprops = Object.entries(mapping.props).reduce((p, [key, vf]) => {
|
|
197
206
|
let v = vf;
|
|
@@ -306,7 +315,7 @@ type CardState = {
|
|
|
306
315
|
dispatch: Dispatch<Action>
|
|
307
316
|
) => void;
|
|
308
317
|
changed: (cardName: string, isUnchanged: boolean, props: CompProps) => void;
|
|
309
|
-
reducer:
|
|
318
|
+
reducer: ReduceF<ReduxState, Action>;
|
|
310
319
|
};
|
|
311
320
|
|
|
312
321
|
export const RegisterCardState = createCardState();
|
|
@@ -376,7 +385,7 @@ function createCardState(): CardState {
|
|
|
376
385
|
resetTimer();
|
|
377
386
|
}
|
|
378
387
|
};
|
|
379
|
-
const reducer = (state: ReduxState)
|
|
388
|
+
const reducer = (state: ReduxState) => {
|
|
380
389
|
const pi = Object.values(s)
|
|
381
390
|
.filter((s) => s.reportedAt > lastReport)
|
|
382
391
|
.reduce((p, s) => {
|
|
@@ -392,9 +401,8 @@ function createCardState(): CardState {
|
|
|
392
401
|
p[name] = props;
|
|
393
402
|
return p;
|
|
394
403
|
}, {} as {[k: string]: any});
|
|
395
|
-
state.pihanga = pi;
|
|
404
|
+
(state.pihanga ??= {}).cards = pi;
|
|
396
405
|
lastReport = Date.now();
|
|
397
|
-
return state;
|
|
398
406
|
};
|
|
399
407
|
return {props, changed, reducer};
|
|
400
408
|
}
|
package/src/index.ts
CHANGED
|
@@ -17,8 +17,8 @@ import {
|
|
|
17
17
|
} from "./types";
|
|
18
18
|
import {
|
|
19
19
|
createCardDeclaration,
|
|
20
|
-
|
|
21
|
-
|
|
20
|
+
addCard,
|
|
21
|
+
addCardComponent,
|
|
22
22
|
registerMetacard,
|
|
23
23
|
updateOrRegisterCard,
|
|
24
24
|
} from "./register_cards";
|
|
@@ -121,6 +121,73 @@ export interface PiRegister {
|
|
|
121
121
|
reducer: PiReducer;
|
|
122
122
|
}
|
|
123
123
|
|
|
124
|
+
type RegisterCbk = (register: PiRegister) => void;
|
|
125
|
+
|
|
126
|
+
// These remain private and shared across all imports
|
|
127
|
+
let registerF: PiRegister | null = null;
|
|
128
|
+
let pendingRegistrations: RegisterCbk[] = [];
|
|
129
|
+
|
|
130
|
+
function setRegisterF<T>(f: PiRegister): void {
|
|
131
|
+
registerF = f;
|
|
132
|
+
|
|
133
|
+
// Flush buffer
|
|
134
|
+
while (pendingRegistrations.length > 0) {
|
|
135
|
+
const cbk = pendingRegistrations.shift();
|
|
136
|
+
if (cbk) {
|
|
137
|
+
cbk(registerF);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
// Register a callback which allows for eventual
|
|
143
|
+
// registration when the Pihanga environment is setup
|
|
144
|
+
//
|
|
145
|
+
// Usage:
|
|
146
|
+
//
|
|
147
|
+
// import {register} from "@pihanga2/core";
|
|
148
|
+
// register((register: PiRegister) => {
|
|
149
|
+
// register.foo(..)
|
|
150
|
+
// });
|
|
151
|
+
//
|
|
152
|
+
export function register(cbk: RegisterCbk): void {
|
|
153
|
+
if (registerF) {
|
|
154
|
+
cbk(registerF);
|
|
155
|
+
} else {
|
|
156
|
+
pendingRegistrations.push(cbk);
|
|
157
|
+
}
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
// Added: Helper to clear the buffer if needed
|
|
161
|
+
export function clearPendingRegistration(): void {
|
|
162
|
+
pendingRegistrations = [];
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
// Register a card component
|
|
166
|
+
//
|
|
167
|
+
// Usage:
|
|
168
|
+
//
|
|
169
|
+
// import {registerCardComponent} from "@pihanga2/core";
|
|
170
|
+
// registerCardComponent({
|
|
171
|
+
// name: JSON_VIEWER_CARD,
|
|
172
|
+
// component: ImageViewerComponent,
|
|
173
|
+
// events: actionTypesToEvents(JSON_VIEWER_ACTION),
|
|
174
|
+
// })
|
|
175
|
+
//
|
|
176
|
+
export function registerCardComponent(declaration: PiRegisterComponent) {
|
|
177
|
+
register((r: PiRegister) => r.cardComponent(declaration));
|
|
178
|
+
}
|
|
179
|
+
|
|
180
|
+
// Register a card
|
|
181
|
+
//
|
|
182
|
+
// Usage:
|
|
183
|
+
//
|
|
184
|
+
// import {registerCard} from "@pihanga2/core";
|
|
185
|
+
// registerCard("page/main"", FlexGrid({...}))
|
|
186
|
+
//
|
|
187
|
+
export function registerCard(name: string, parameters: PiCardDef) {
|
|
188
|
+
register((r: PiRegister) => r.card(name, parameters));
|
|
189
|
+
}
|
|
190
|
+
|
|
124
191
|
export const DEFAULT_REDUX_STATE = {
|
|
125
192
|
route: {path: [], query: {}, url: "", fromBrowser: false},
|
|
126
193
|
pihanga: {},
|
|
@@ -189,7 +256,7 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
189
256
|
|
|
190
257
|
dispatchF = store.dispatch;
|
|
191
258
|
|
|
192
|
-
const card =
|
|
259
|
+
const card = addCard(piReducer.register, dispatchF);
|
|
193
260
|
const updateCard = updateOrRegisterCard(piReducer.register, dispatchF);
|
|
194
261
|
const window = <S extends ReduxState>(
|
|
195
262
|
p: PiMapProps<WindowProps, S, {}>
|
|
@@ -201,7 +268,7 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
201
268
|
window,
|
|
202
269
|
card,
|
|
203
270
|
updateCard,
|
|
204
|
-
cardComponent:
|
|
271
|
+
cardComponent: addCardComponent,
|
|
205
272
|
metaCard: registerMetacard(card),
|
|
206
273
|
reducer: piReducer,
|
|
207
274
|
GET: registerGET(piReducer),
|
|
@@ -218,5 +285,6 @@ export function start<S extends Partial<ReduxState>>(
|
|
|
218
285
|
const root = ReactDOM.createRoot(document.getElementById("root")!);
|
|
219
286
|
root.render(rootComp);
|
|
220
287
|
|
|
288
|
+
setRegisterF(register);
|
|
221
289
|
return register;
|
|
222
290
|
}
|