@mantou/gem 1.7.11 → 2.0.0-alpha.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +1 -1
- package/dist/gem.es.js +1962 -1689
- package/dist/gem.umd.js +52 -54
- package/elements/base/dialog.d.ts +0 -11
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +93 -66
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/gesture.d.ts +1 -2
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +157 -96
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +5 -5
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +249 -145
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +147 -139
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +84 -25
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/reflect.d.ts +0 -1
- package/elements/base/reflect.d.ts.map +1 -1
- package/elements/base/reflect.js +83 -38
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +12 -24
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +263 -164
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts +3 -11
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +110 -59
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +0 -1
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +82 -33
- package/elements/base/unsafe.js.map +1 -1
- package/elements/base/use.d.ts.map +1 -1
- package/elements/base/use.js +95 -47
- package/elements/base/use.js.map +1 -1
- package/helper/i18n.d.ts +4 -9
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js +69 -65
- package/helper/i18n.js.map +1 -1
- package/helper/logger.js +10 -9
- package/helper/logger.js.map +1 -1
- package/helper/react-shim.d.ts +15 -0
- package/helper/react-shim.d.ts.map +1 -0
- package/helper/react-shim.js +56 -0
- package/helper/react-shim.js.map +1 -0
- package/helper/react-utils.d.ts +15 -0
- package/helper/react-utils.d.ts.map +1 -0
- package/helper/react-utils.js +50 -0
- package/helper/react-utils.js.map +1 -0
- package/helper/request.d.ts +17 -7
- package/helper/request.d.ts.map +1 -1
- package/helper/request.js +103 -53
- package/helper/request.js.map +1 -1
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +8 -1
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +14 -21
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +55 -38
- package/helper/theme.js.map +1 -1
- package/index.d.ts +4 -3
- package/index.d.ts.map +1 -1
- package/index.js +5 -3
- package/index.js.map +1 -1
- package/lib/decorators.d.ts +74 -41
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +324 -84
- package/lib/decorators.js.map +1 -1
- package/lib/directives.d.ts +4 -0
- package/lib/directives.d.ts.map +1 -0
- package/lib/directives.js +5 -0
- package/lib/directives.js.map +1 -0
- package/lib/element.d.ts +112 -110
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +431 -470
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +4 -0
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +12 -13
- package/lib/history.js.map +1 -1
- package/lib/store.d.ts +1 -1
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +4 -5
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +3 -43
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +61 -246
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +2 -1
- package/lib/version.js.map +1 -1
- package/package.json +12 -11
- package/src/dist.ts +3 -2
- package/src/elements/base/dialog.ts +10 -20
- package/src/elements/base/gesture.ts +16 -14
- package/src/elements/base/link.ts +65 -44
- package/src/elements/base/modal-factory.ts +14 -14
- package/src/elements/base/reflect.ts +24 -32
- package/src/elements/base/route.ts +55 -68
- package/src/elements/base/title.ts +25 -42
- package/src/elements/base/unsafe.ts +12 -21
- package/src/elements/base/use.ts +17 -13
- package/src/helper/i18n.ts +20 -14
- package/src/helper/react-utils.ts +66 -0
- package/src/helper/request.ts +122 -53
- package/src/helper/ssr-shim.ts +8 -1
- package/src/helper/theme.ts +72 -45
- package/src/index.ts +6 -4
- package/src/lib/decorators.ts +394 -93
- package/src/lib/directives.ts +6 -0
- package/src/lib/element.ts +473 -499
- package/src/lib/history.ts +4 -3
- package/src/lib/store.ts +2 -1
- package/src/lib/utils.ts +19 -205
- package/src/lib/version.ts +2 -1
- package/src/test/elements/link.test.ts +1 -1
- package/src/test/elements/title.test.ts +1 -0
- package/src/test/gem-element/advance.test.ts +72 -49
- package/src/test/gem-element/basic.test.ts +37 -50
- package/src/test/gem-element/decorators.test.ts +22 -21
- package/src/test/gem-element/multi.test.ts +5 -5
- package/src/test/utils.test.ts +16 -38
package/helper/i18n.js
CHANGED
|
@@ -1,17 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
|
|
3
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot read private member from an object whose class did not declare it");
|
|
4
|
-
return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
|
|
5
|
-
};
|
|
6
|
-
var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
|
|
7
|
-
if (kind === "m") throw new TypeError("Private method is not writable");
|
|
8
|
-
if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
|
|
9
|
-
if (typeof state === "function" ? receiver !== state || !f : !state.has(receiver)) throw new TypeError("Cannot write private member to an object whose class did not declare it");
|
|
10
|
-
return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
|
|
11
|
-
};
|
|
12
|
-
var _I18n_instances, _I18n_cacheCurrentKey_get, _I18n_urlParamsLang_get, _I18n_cacheLang_get, _I18n_isMain_get, _I18n_lang_set;
|
|
13
|
-
import { createStore, updateStore } from '../lib/store';
|
|
14
|
-
import { html } from '../lib/element';
|
|
1
|
+
import { html, UpdateToken } from '../lib/element';
|
|
15
2
|
import { GemError } from '../lib/utils';
|
|
16
3
|
import { logger } from './logger';
|
|
17
4
|
// Hello, $1
|
|
@@ -34,18 +21,54 @@ export function splice(rawValue, ...rest) {
|
|
|
34
21
|
}
|
|
35
22
|
const modules = new Set();
|
|
36
23
|
export class I18n {
|
|
24
|
+
resources;
|
|
25
|
+
fallbackLanguage;
|
|
26
|
+
currentLanguage;
|
|
27
|
+
cache;
|
|
28
|
+
cachePrefix = 'gem-i18n';
|
|
29
|
+
urlParamsType;
|
|
30
|
+
urlParamsName;
|
|
31
|
+
onChange;
|
|
32
|
+
// 兼容 `<gem-route>`
|
|
33
|
+
replace = ({ path }) => this.setLanguage(path);
|
|
34
|
+
getParams = () => ({ path: this.currentLanguage });
|
|
35
|
+
get #cacheCurrentKey() {
|
|
36
|
+
return `${this.cachePrefix}:current`;
|
|
37
|
+
}
|
|
38
|
+
get #urlParamsLang() {
|
|
39
|
+
const { hostname, pathname, search } = location;
|
|
40
|
+
const parts = hostname.split('.');
|
|
41
|
+
switch (this.urlParamsType) {
|
|
42
|
+
case 'ccTLD':
|
|
43
|
+
return parts.pop();
|
|
44
|
+
case 'gTLD':
|
|
45
|
+
return parts.shift();
|
|
46
|
+
case 'path':
|
|
47
|
+
return pathname.split('/')[1];
|
|
48
|
+
default:
|
|
49
|
+
const fragment = (this.urlParamsName && new URLSearchParams(search).get(this.urlParamsName)) || '';
|
|
50
|
+
return fragment in this.resources ? fragment : '';
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
get #cacheLang() {
|
|
54
|
+
return (this.cache && localStorage.getItem(this.#cacheCurrentKey)) || '';
|
|
55
|
+
}
|
|
56
|
+
get #isMain() {
|
|
57
|
+
return !modules.has(this);
|
|
58
|
+
}
|
|
59
|
+
set #lang(lang) {
|
|
60
|
+
if (this.#isMain) {
|
|
61
|
+
document.documentElement.lang = lang;
|
|
62
|
+
}
|
|
63
|
+
this.currentLanguage = lang;
|
|
64
|
+
this.onChange?.(lang);
|
|
65
|
+
}
|
|
37
66
|
constructor(options) {
|
|
38
|
-
_I18n_instances.add(this);
|
|
39
|
-
this.cachePrefix = 'gem-i18n';
|
|
40
|
-
// 兼容 `<gem-route>`
|
|
41
|
-
this.replace = ({ path }) => this.setLanguage(path);
|
|
42
|
-
this.getParams = () => ({ path: this.currentLanguage });
|
|
43
67
|
if (!options.resources[options.fallbackLanguage]) {
|
|
44
68
|
throw new GemError('i18n: fallbackLanguage invalid');
|
|
45
69
|
}
|
|
46
|
-
this.store = createStore(this);
|
|
47
70
|
Object.assign(this, options);
|
|
48
|
-
let currentLanguage =
|
|
71
|
+
let currentLanguage = this.#urlParamsLang || this.currentLanguage || this.#cacheLang;
|
|
49
72
|
const ele = document.querySelector(`[type*=${this.cachePrefix}]`);
|
|
50
73
|
if (ele) {
|
|
51
74
|
try {
|
|
@@ -53,12 +76,12 @@ export class I18n {
|
|
|
53
76
|
currentLanguage = prerenderData.currentLanguage;
|
|
54
77
|
this.resources[prerenderData.currentLanguage] = prerenderData.currentLanguagePack;
|
|
55
78
|
}
|
|
56
|
-
catch
|
|
79
|
+
catch {
|
|
57
80
|
//
|
|
58
81
|
}
|
|
59
82
|
}
|
|
60
83
|
if (currentLanguage) {
|
|
61
|
-
|
|
84
|
+
this.#lang = currentLanguage;
|
|
62
85
|
this.setLanguage(currentLanguage);
|
|
63
86
|
}
|
|
64
87
|
else {
|
|
@@ -69,7 +92,7 @@ export class I18n {
|
|
|
69
92
|
const currentLanguagePack = this.resources[this.currentLanguage];
|
|
70
93
|
const fallbackLanguagePack = this.resources[this.fallbackLanguage];
|
|
71
94
|
const msg = currentLanguagePack[s] || fallbackLanguagePack[s];
|
|
72
|
-
const rawValue =
|
|
95
|
+
const rawValue = msg?.message || msg || `[${s}]`;
|
|
73
96
|
if (!rest.length)
|
|
74
97
|
return rawValue;
|
|
75
98
|
return splice(rawValue, ...rest);
|
|
@@ -85,7 +108,7 @@ export class I18n {
|
|
|
85
108
|
return this.fallbackLanguage;
|
|
86
109
|
}
|
|
87
110
|
async setLanguage(lang) {
|
|
88
|
-
if (
|
|
111
|
+
if (this.#isMain) {
|
|
89
112
|
modules.forEach(async (i18n) => await i18n.setLanguage(lang));
|
|
90
113
|
}
|
|
91
114
|
let pack;
|
|
@@ -99,7 +122,7 @@ export class I18n {
|
|
|
99
122
|
const localKey = `${prefix}${data}`;
|
|
100
123
|
const localPackString = localStorage.getItem(localKey);
|
|
101
124
|
const fetchPack = async () => {
|
|
102
|
-
const
|
|
125
|
+
const pkg = await (await fetch(data)).json();
|
|
103
126
|
if (this.cache) {
|
|
104
127
|
// 移除之前的版本缓存
|
|
105
128
|
for (let i = 0; i < localStorage.length; i++) {
|
|
@@ -108,9 +131,9 @@ export class I18n {
|
|
|
108
131
|
localStorage.removeItem(key);
|
|
109
132
|
}
|
|
110
133
|
}
|
|
111
|
-
localStorage.setItem(localKey, JSON.stringify(
|
|
134
|
+
localStorage.setItem(localKey, JSON.stringify(pkg));
|
|
112
135
|
}
|
|
113
|
-
return
|
|
136
|
+
return pkg;
|
|
114
137
|
};
|
|
115
138
|
if (localPackString) {
|
|
116
139
|
try {
|
|
@@ -128,9 +151,20 @@ export class I18n {
|
|
|
128
151
|
pack = data;
|
|
129
152
|
}
|
|
130
153
|
this.resources[lang] = pack;
|
|
131
|
-
|
|
154
|
+
// update all element
|
|
155
|
+
const temp = [document.documentElement];
|
|
156
|
+
while (!!temp.length) {
|
|
157
|
+
const element = temp.pop();
|
|
158
|
+
element[UpdateToken]?.();
|
|
159
|
+
if (element.shadowRoot?.firstElementChild)
|
|
160
|
+
temp.push(element.shadowRoot.firstElementChild);
|
|
161
|
+
if (element.firstElementChild)
|
|
162
|
+
temp.push(element.firstElementChild);
|
|
163
|
+
if (element.nextElementSibling)
|
|
164
|
+
temp.push(element.nextElementSibling);
|
|
165
|
+
}
|
|
132
166
|
if (lang !== this.currentLanguage) {
|
|
133
|
-
|
|
167
|
+
this.#lang = lang;
|
|
134
168
|
}
|
|
135
169
|
// auto cache
|
|
136
170
|
if (this.cache === true) {
|
|
@@ -139,21 +173,21 @@ export class I18n {
|
|
|
139
173
|
return lang;
|
|
140
174
|
}
|
|
141
175
|
resetLanguage() {
|
|
142
|
-
if (
|
|
176
|
+
if (this.#isMain) {
|
|
143
177
|
modules.forEach((i18n) => i18n.resetLanguage());
|
|
144
178
|
}
|
|
145
|
-
|
|
179
|
+
this.#lang = this.fallbackLanguage;
|
|
146
180
|
if (this.cache) {
|
|
147
|
-
localStorage.removeItem(
|
|
181
|
+
localStorage.removeItem(this.#cacheCurrentKey);
|
|
148
182
|
}
|
|
149
183
|
return this.setLanguage(this.detectLanguage());
|
|
150
184
|
}
|
|
151
185
|
// 一般用在 `onChange` 中
|
|
152
186
|
setCache() {
|
|
153
|
-
if (
|
|
187
|
+
if (this.#isMain) {
|
|
154
188
|
modules.forEach((i18n) => i18n.setCache());
|
|
155
189
|
}
|
|
156
|
-
localStorage.setItem(
|
|
190
|
+
localStorage.setItem(this.#cacheCurrentKey, this.currentLanguage);
|
|
157
191
|
}
|
|
158
192
|
createSubModule(name, resources) {
|
|
159
193
|
const module = new I18n({
|
|
@@ -167,8 +201,6 @@ export class I18n {
|
|
|
167
201
|
return module;
|
|
168
202
|
}
|
|
169
203
|
/**
|
|
170
|
-
* prepare: @connectStore(i18n.store)
|
|
171
|
-
*
|
|
172
204
|
* @example
|
|
173
205
|
*
|
|
174
206
|
* html`
|
|
@@ -184,32 +216,4 @@ export class I18n {
|
|
|
184
216
|
};
|
|
185
217
|
}
|
|
186
218
|
}
|
|
187
|
-
_I18n_instances = new WeakSet(), _I18n_cacheCurrentKey_get = function _I18n_cacheCurrentKey_get() {
|
|
188
|
-
return `${this.cachePrefix}:current`;
|
|
189
|
-
}, _I18n_urlParamsLang_get = function _I18n_urlParamsLang_get() {
|
|
190
|
-
const { hostname, pathname, search } = location;
|
|
191
|
-
const parts = hostname.split('.');
|
|
192
|
-
switch (this.urlParamsType) {
|
|
193
|
-
case 'ccTLD':
|
|
194
|
-
return parts.pop();
|
|
195
|
-
case 'gTLD':
|
|
196
|
-
return parts.shift();
|
|
197
|
-
case 'path':
|
|
198
|
-
return pathname.split('/')[1];
|
|
199
|
-
default:
|
|
200
|
-
const fragment = (this.urlParamsName && new URLSearchParams(search).get(this.urlParamsName)) || '';
|
|
201
|
-
return fragment in this.resources ? fragment : '';
|
|
202
|
-
}
|
|
203
|
-
}, _I18n_cacheLang_get = function _I18n_cacheLang_get() {
|
|
204
|
-
return (this.cache && localStorage.getItem(__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_cacheCurrentKey_get))) || '';
|
|
205
|
-
}, _I18n_isMain_get = function _I18n_isMain_get() {
|
|
206
|
-
return !modules.has(this);
|
|
207
|
-
}, _I18n_lang_set = function _I18n_lang_set(lang) {
|
|
208
|
-
var _a;
|
|
209
|
-
if (__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_isMain_get)) {
|
|
210
|
-
document.documentElement.lang = lang;
|
|
211
|
-
}
|
|
212
|
-
this.currentLanguage = lang;
|
|
213
|
-
(_a = this.onChange) === null || _a === void 0 ? void 0 : _a.call(this, lang);
|
|
214
|
-
};
|
|
215
219
|
//# sourceMappingURL=i18n.js.map
|
package/helper/i18n.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"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"}
|
package/helper/logger.js
CHANGED
|
@@ -1,16 +1,17 @@
|
|
|
1
1
|
export class Logger {
|
|
2
|
+
_type;
|
|
2
3
|
constructor(type) {
|
|
3
|
-
this.info = (...args) => {
|
|
4
|
-
console.log(`[${this._type}]:`, ...args);
|
|
5
|
-
};
|
|
6
|
-
this.warn = (...args) => {
|
|
7
|
-
console.warn(`[${this._type}]:`, ...args);
|
|
8
|
-
};
|
|
9
|
-
this.error = (...args) => {
|
|
10
|
-
console.error(`[${this._type}]:`, ...args);
|
|
11
|
-
};
|
|
12
4
|
this._type = type;
|
|
13
5
|
}
|
|
6
|
+
info = (...args) => {
|
|
7
|
+
console.log(`[${this._type}]:`, ...args);
|
|
8
|
+
};
|
|
9
|
+
warn = (...args) => {
|
|
10
|
+
console.warn(`[${this._type}]:`, ...args);
|
|
11
|
+
};
|
|
12
|
+
error = (...args) => {
|
|
13
|
+
console.error(`[${this._type}]:`, ...args);
|
|
14
|
+
};
|
|
14
15
|
}
|
|
15
16
|
export const logger = new Logger('GEM');
|
|
16
17
|
//# sourceMappingURL=logger.js.map
|
package/helper/logger.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/helper/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../src/helper/logger.ts"],"names":[],"mappings":"AAAA,MAAM,OAAO,MAAM;IACjB,KAAK,CAAS;IAEd,YAAY,IAAY;QACtB,IAAI,CAAC,KAAK,GAAG,IAAI,CAAC;IACpB,CAAC;IAED,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACxB,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC3C,CAAC,CAAC;IAEF,IAAI,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACxB,OAAO,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC5C,CAAC,CAAC;IAEF,KAAK,GAAG,CAAC,GAAG,IAAW,EAAE,EAAE;QACzB,OAAO,CAAC,KAAK,CAAC,IAAI,IAAI,CAAC,KAAK,IAAI,EAAE,GAAG,IAAI,CAAC,CAAC;IAC7C,CAAC,CAAC;CACH;AAED,MAAM,CAAC,MAAM,MAAM,GAAG,IAAI,MAAM,CAAC,KAAK,CAAC,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ReactNode } from 'react';
|
|
2
|
+
import { Store } from '../lib/store';
|
|
3
|
+
/**
|
|
4
|
+
* `<gem-route>.routes.getContent`
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderReactNode(ele: any, node: ReactNode): void;
|
|
7
|
+
/**
|
|
8
|
+
* Same as `@connectStore`
|
|
9
|
+
*/
|
|
10
|
+
export declare function connectStore<T extends object>(store: Store<T>): void;
|
|
11
|
+
/**
|
|
12
|
+
* Warning: https://github.com/facebook/react/issues/25675
|
|
13
|
+
*/
|
|
14
|
+
export declare function useReactNode(node: ReactNode): any;
|
|
15
|
+
//# sourceMappingURL=react-shim.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-shim.d.ts","sourceRoot":"","sources":["../src/helper/react-shim.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,SAAS,EAA+B,MAAM,OAAO,CAAC;AAM/D,OAAO,EAAE,KAAK,EAAW,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,QAgBxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAG7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,OAe3C"}
|
|
@@ -0,0 +1,56 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
// eslint-disable-next-line import/no-unresolved
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
// eslint-disable-next-line import/no-unresolved
|
|
8
|
+
import { createRoot } from 'react-dom/client';
|
|
9
|
+
import { connect } from '../lib/store';
|
|
10
|
+
/**
|
|
11
|
+
* `<gem-route>.routes.getContent`
|
|
12
|
+
*/
|
|
13
|
+
export function renderReactNode(ele, node) {
|
|
14
|
+
var _a;
|
|
15
|
+
(_a = ele.react) === null || _a === void 0 ? void 0 : _a.unmount();
|
|
16
|
+
ele.react = createRoot(ele);
|
|
17
|
+
// async
|
|
18
|
+
ele.react.render(node);
|
|
19
|
+
// override
|
|
20
|
+
const routeEle = ele instanceof HTMLElement ? ele : ele.host;
|
|
21
|
+
const originUnmounted = routeEle.unmounted;
|
|
22
|
+
if (!(originUnmounted === null || originUnmounted === void 0 ? void 0 : originUnmounted.react)) {
|
|
23
|
+
routeEle.unmounted = () => {
|
|
24
|
+
originUnmounted === null || originUnmounted === void 0 ? void 0 : originUnmounted.apply(routeEle);
|
|
25
|
+
ele.react.unmount();
|
|
26
|
+
};
|
|
27
|
+
routeEle.unmounted.react = true;
|
|
28
|
+
}
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Same as `@connectStore`
|
|
32
|
+
*/
|
|
33
|
+
export function connectStore(store) {
|
|
34
|
+
const [_, update] = useState({});
|
|
35
|
+
useEffect(() => connect(store, () => update({})), []);
|
|
36
|
+
}
|
|
37
|
+
/**
|
|
38
|
+
* Warning: https://github.com/facebook/react/issues/25675
|
|
39
|
+
*/
|
|
40
|
+
export function useReactNode(node) {
|
|
41
|
+
const ref = useRef();
|
|
42
|
+
// Warning: Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.
|
|
43
|
+
useEffect(() => () => { var _a; return (_a = ref.current) === null || _a === void 0 ? void 0 : _a.root.unmount(); }, []);
|
|
44
|
+
if (ref.current) {
|
|
45
|
+
ref.current.root.render(node);
|
|
46
|
+
return ref.current.container;
|
|
47
|
+
}
|
|
48
|
+
const container = document.createElement('div');
|
|
49
|
+
container.style.display = 'contents';
|
|
50
|
+
const root = createRoot(container);
|
|
51
|
+
ref.current = { root, container };
|
|
52
|
+
// Warning: Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.
|
|
53
|
+
root.render(node);
|
|
54
|
+
return container;
|
|
55
|
+
}
|
|
56
|
+
//# sourceMappingURL=react-shim.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-shim.js","sourceRoot":"","sources":["../src/helper/react-shim.ts"],"names":[],"mappings":"AAAA,6DAA6D;AAC7D,aAAa;AACb,gDAAgD;AAChD,OAAO,EAAa,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAC/D,6DAA6D;AAC7D,aAAa;AACb,gDAAgD;AAChD,OAAO,EAAQ,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAEpD,OAAO,EAAS,OAAO,EAAE,MAAM,cAAc,CAAC;AAE9C;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAQ,EAAE,IAAe;;IACvD,MAAA,GAAG,CAAC,KAAK,0CAAE,OAAO,EAAE,CAAC;IACrB,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,QAAQ;IACR,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,WAAW;IACX,MAAM,QAAQ,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7D,MAAM,eAAe,GAAG,QAAQ,CAAC,SAAS,CAAC;IAC3C,IAAI,CAAC,CAAA,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAA,EAAE,CAAC;QAC5B,QAAQ,CAAC,SAAS,GAAG,GAAG,EAAE;YACxB,eAAe,aAAf,eAAe,uBAAf,eAAe,CAAE,KAAK,CAAC,QAAQ,CAAC,CAAC;YACjC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,CAAC;QACtB,CAAC,CAAC;QACF,QAAQ,CAAC,SAAS,CAAC,KAAK,GAAG,IAAI,CAAC;IAClC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAmB,KAAe;IAC5D,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,MAAM,GAAG,GAAG,MAAM,EAA0C,CAAC;IAC7D,4MAA4M;IAC5M,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,WAAC,OAAA,MAAA,GAAG,CAAC,OAAO,0CAAE,IAAI,CAAC,OAAO,EAAE,CAAA,EAAA,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClC,oMAAoM;IACpM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import type { ReactNode } from 'react';
|
|
2
|
+
import type { Store } from '../lib/store';
|
|
3
|
+
/**
|
|
4
|
+
* `<gem-route>.routes.getContent`
|
|
5
|
+
*/
|
|
6
|
+
export declare function renderReactNode(ele: any, node: ReactNode): void;
|
|
7
|
+
/**
|
|
8
|
+
* Same as `@connectStore`
|
|
9
|
+
*/
|
|
10
|
+
export declare function connectStore<T extends object>(store: Store<T>): void;
|
|
11
|
+
/**
|
|
12
|
+
* Warning: https://github.com/facebook/react/issues/25675
|
|
13
|
+
*/
|
|
14
|
+
export declare function useReactNode(node: ReactNode): any;
|
|
15
|
+
//# sourceMappingURL=react-utils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-utils.d.ts","sourceRoot":"","sources":["../src/helper/react-utils.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAcvC,OAAO,KAAK,EAAE,KAAK,EAAE,MAAM,cAAc,CAAC;AAG1C;;GAEG;AACH,wBAAgB,eAAe,CAAC,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,SAAS,QAcxD;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,CAAC,SAAS,MAAM,EAAE,KAAK,EAAE,KAAK,CAAC,CAAC,CAAC,QAG7D;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,IAAI,EAAE,SAAS,OAe3C"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
2
|
+
// @ts-ignore
|
|
3
|
+
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
4
|
+
import { useEffect, useRef, useState } from 'react';
|
|
5
|
+
// eslint-disable-next-line @typescript-eslint/ban-ts-comment
|
|
6
|
+
// @ts-ignore
|
|
7
|
+
// eslint-disable-next-line import/no-unresolved, import/no-extraneous-dependencies
|
|
8
|
+
import { createRoot } from 'react-dom/client';
|
|
9
|
+
import { connect } from '../lib/store';
|
|
10
|
+
/**
|
|
11
|
+
* `<gem-route>.routes.getContent`
|
|
12
|
+
*/
|
|
13
|
+
export function renderReactNode(ele, node) {
|
|
14
|
+
ele.react?.unmount();
|
|
15
|
+
ele.react = createRoot(ele);
|
|
16
|
+
// async
|
|
17
|
+
ele.react.render(node);
|
|
18
|
+
const routeEle = ele instanceof HTMLElement ? ele : ele.host;
|
|
19
|
+
if (!routeEle.reactCallback) {
|
|
20
|
+
routeEle.effect(() => () => ele.react.unmount(), () => []);
|
|
21
|
+
routeEle.reactCallback = true;
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
/**
|
|
25
|
+
* Same as `@connectStore`
|
|
26
|
+
*/
|
|
27
|
+
export function connectStore(store) {
|
|
28
|
+
const [_, update] = useState({});
|
|
29
|
+
useEffect(() => connect(store, () => update({})), []);
|
|
30
|
+
}
|
|
31
|
+
/**
|
|
32
|
+
* Warning: https://github.com/facebook/react/issues/25675
|
|
33
|
+
*/
|
|
34
|
+
export function useReactNode(node) {
|
|
35
|
+
const ref = useRef();
|
|
36
|
+
// Warning: Attempted to synchronously unmount a root while React was already rendering. React cannot finish unmounting the root until the current render has completed, which may lead to a race condition.
|
|
37
|
+
useEffect(() => () => ref.current?.root.unmount(), []);
|
|
38
|
+
if (ref.current) {
|
|
39
|
+
ref.current.root.render(node);
|
|
40
|
+
return ref.current.container;
|
|
41
|
+
}
|
|
42
|
+
const container = document.createElement('div');
|
|
43
|
+
container.style.display = 'contents';
|
|
44
|
+
const root = createRoot(container);
|
|
45
|
+
ref.current = { root, container };
|
|
46
|
+
// Warning: Render methods should be a pure function of props and state; triggering nested component updates from render is not allowed. If necessary, trigger nested updates in componentDidUpdate.
|
|
47
|
+
root.render(node);
|
|
48
|
+
return container;
|
|
49
|
+
}
|
|
50
|
+
//# sourceMappingURL=react-utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"react-utils.js","sourceRoot":"","sources":["../src/helper/react-utils.ts"],"names":[],"mappings":"AAIA,6DAA6D;AAC7D,aAAa;AACb,mFAAmF;AACnF,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,OAAO,CAAC;AAKpD,6DAA6D;AAC7D,aAAa;AACb,mFAAmF;AACnF,OAAO,EAAE,UAAU,EAAE,MAAM,kBAAkB,CAAC;AAG9C,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC;;GAEG;AACH,MAAM,UAAU,eAAe,CAAC,GAAQ,EAAE,IAAe;IACvD,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,CAAC;IACrB,GAAG,CAAC,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,CAAC;IAC5B,QAAQ;IACR,GAAG,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAEvB,MAAM,QAAQ,GAAG,GAAG,YAAY,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC;IAC7D,IAAI,CAAC,QAAQ,CAAC,aAAa,EAAE,CAAC;QAC5B,QAAQ,CAAC,MAAM,CACb,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,KAAK,CAAC,OAAO,EAAE,EAC/B,GAAG,EAAE,CAAC,EAAE,CACT,CAAC;QACF,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAC;IAChC,CAAC;AACH,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAmB,KAAe;IAC5D,MAAM,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,QAAQ,CAAC,EAAE,CAAC,CAAC;IACjC,SAAS,CAAC,GAAG,EAAE,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE,CAAC,MAAM,CAAC,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC;AACxD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,IAAe;IAC1C,MAAM,GAAG,GAAG,MAAM,EAA0C,CAAC;IAC7D,4MAA4M;IAC5M,SAAS,CAAC,GAAG,EAAE,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,OAAO,EAAE,IAAI,CAAC,OAAO,EAAE,EAAE,EAAE,CAAC,CAAC;IACvD,IAAI,GAAG,CAAC,OAAO,EAAE,CAAC;QAChB,GAAG,CAAC,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC;IAC/B,CAAC;IACD,MAAM,SAAS,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;IAChD,SAAS,CAAC,KAAK,CAAC,OAAO,GAAG,UAAU,CAAC;IACrC,MAAM,IAAI,GAAG,UAAU,CAAC,SAAS,CAAC,CAAC;IACnC,GAAG,CAAC,OAAO,GAAG,EAAE,IAAI,EAAE,SAAS,EAAE,CAAC;IAClC,oMAAoM;IACpM,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;IAClB,OAAO,SAAS,CAAC;AACnB,CAAC"}
|
package/helper/request.d.ts
CHANGED
|
@@ -1,9 +1,19 @@
|
|
|
1
|
-
export declare const defaultReqInit: RequestInit;
|
|
2
|
-
export declare function request<T>(uri: string, options?: RequestInit): Promise<T>;
|
|
3
1
|
type ReqBody = Record<string, unknown> | BodyInit;
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
2
|
+
type ReqParams = Record<string, string | number>;
|
|
3
|
+
type Options = {
|
|
4
|
+
origin?: string;
|
|
5
|
+
base?: string;
|
|
6
|
+
appendHeaders?: (input?: any) => HeadersInit;
|
|
7
|
+
transformInput?: (input?: any) => any;
|
|
8
|
+
transformOutput?: (output: any, req: Request) => any;
|
|
9
|
+
} & RequestInit;
|
|
10
|
+
declare function initRequest(options?: Options): {
|
|
11
|
+
request: <T>(uri: string, reqOptions?: RequestInit) => Promise<T>;
|
|
12
|
+
get<T>(path: string, params?: ReqParams): Promise<T>;
|
|
13
|
+
del<T>(path: string, params?: ReqParams): Promise<T>;
|
|
14
|
+
put<T>(path: string, body?: ReqBody): Promise<T>;
|
|
15
|
+
post<T>(path: string, body?: ReqBody): Promise<T>;
|
|
16
|
+
};
|
|
17
|
+
declare const request: <T>(uri: string, reqOptions?: RequestInit) => Promise<T>, del: <T>(path: string, params?: ReqParams) => Promise<T>, get: <T>(path: string, params?: ReqParams) => Promise<T>, post: <T>(path: string, body?: ReqBody) => Promise<T>, put: <T>(path: string, body?: ReqBody) => Promise<T>;
|
|
18
|
+
export { initRequest, request, del, get, post, put };
|
|
9
19
|
//# sourceMappingURL=request.d.ts.map
|
package/helper/request.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/helper/request.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"request.d.ts","sourceRoot":"","sources":["../src/helper/request.ts"],"names":[],"mappings":"AAEA,KAAK,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,QAAQ,CAAC;AAClD,KAAK,SAAS,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAAC,CAAC;AAGjD,KAAK,OAAO,GAAG;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,CAAC,EAAE,MAAM,CAAC;IAEd,aAAa,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,WAAW,CAAC;IAC7C,cAAc,CAAC,EAAE,CAAC,KAAK,CAAC,EAAE,GAAG,KAAK,GAAG,CAAC;IACtC,eAAe,CAAC,EAAE,CAAC,MAAM,EAAE,GAAG,EAAE,GAAG,EAAE,OAAO,KAAK,GAAG,CAAC;CACtD,GAAG,WAAW,CAAC;AAEhB,iBAAS,WAAW,CAAC,OAAO,GAAE,OAAY;cA2CjB,CAAC,OAAO,MAAM,eAAc,WAAW,KAAQ,OAAO,CAAC,CAAC,CAAC;QAmC1E,CAAC,QAAQ,MAAM,WAAW,SAAS;QAOnC,CAAC,QAAQ,MAAM,WAAW,SAAS;QAOnC,CAAC,QAAQ,MAAM,SAAS,OAAO;SAQ9B,CAAC,QAAQ,MAAM,SAAS,OAAO;EASvC;AAED,QAAA,MAAQ,OAAO,GApEU,CAAC,OAAO,MAAM,eAAc,WAAW,KAAQ,OAAO,CAAC,CAAC,CAAC,EAoEjE,GAAG,GA1BZ,CAAC,QAAQ,MAAM,WAAW,SAAS,iBA0BrB,GAAG,GAjCjB,CAAC,QAAQ,MAAM,WAAW,SAAS,iBAiChB,IAAI,GAXtB,CAAC,QAAQ,MAAM,SAAS,OAAO,iBAWP,GAAG,GAnB5B,CAAC,QAAQ,MAAM,SAAS,OAAO,eAmBe,CAAC;AAEvD,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,GAAG,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC"}
|