@mantou/gem 1.5.6 → 1.5.7

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/helper/i18n.d.ts CHANGED
@@ -26,6 +26,7 @@ interface Options<T> {
26
26
  onChange?: (currentLanguage: string) => void;
27
27
  }
28
28
  export declare class I18n<T = Record<string, Msg>> {
29
+ #private;
29
30
  resources: Resources<T>;
30
31
  fallbackLanguage: string;
31
32
  currentLanguage: string;
@@ -35,10 +36,6 @@ export declare class I18n<T = Record<string, Msg>> {
35
36
  urlParamsName?: string;
36
37
  onChange?: (currentLanguage: string) => void;
37
38
  store: Store<any>;
38
- get cacheCurrentKey(): string;
39
- get urlParamsLang(): string | undefined;
40
- get cacheLang(): string;
41
- set lang(lang: string);
42
39
  constructor(options: Options<T>);
43
40
  get(s: keyof T): string;
44
41
  get(s: keyof T, ...rest: (((s: string) => TemplateResult) | string)[]): TemplateResult;
@@ -46,6 +43,7 @@ export declare class I18n<T = Record<string, Msg>> {
46
43
  setLanguage(lang: string): Promise<string>;
47
44
  resetLanguage(): Promise<string>;
48
45
  setCache(): void;
46
+ createSubModule<K = Record<string, Msg>>(name: string, resources: Resources<K>): I18n<K>;
49
47
  /**
50
48
  * prepare: @connectStore(i18n.store)
51
49
  *
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAQ,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAUtD,aAAK,GAAG,GACJ;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD,MAAM,CAAC;AAEX,oBAAY,QAAQ,CAAC,CAAC,IAAI;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACjC,CAAC;AAEF,UAAU,SAAS,CAAC,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;CACpC;AAED,UAAU,OAAO,CAAC,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;IACvC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,WAAW,SAAc;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;IAElB,IAAI,eAAe,WAElB;IAED,IAAI,aAAa,uBAchB;IAED,IAAI,SAAS,WAEZ;IAED,IAAI,IAAI,CAAC,IAAI,EAAE,MAAM,EAIpB;gBAEW,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IA6B/B,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM;IACvB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,cAAc;IAoBtF,cAAc;IAUR,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAqDhD,aAAa;IASb,QAAQ;IAIR;;;;;;;;;;OAUG;IACH,MAAM;;;;CAMP"}
1
+ {"version":3,"file":"i18n.d.ts","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"AAAA,OAAO,EAA4B,KAAK,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAQ,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAWtD,aAAK,GAAG,GACJ;IACE,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB,GACD,MAAM,CAAC;AAEX,oBAAY,QAAQ,CAAC,CAAC,IAAI;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,mBAAmB,EAAE,OAAO,CAAC,CAAC,CAAC,CAAC;CACjC,CAAC;AAEF,UAAU,SAAS,CAAC,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,CAAC,GAAG,MAAM,CAAC;CACpC;AAED,UAAU,OAAO,CAAC,CAAC;IACjB,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IAEzB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB;;;OAGG;IACH,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAG3B,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;CAC9C;AAED,qBAAa,IAAI,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;;IACvC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC;IACxB,gBAAgB,EAAE,MAAM,CAAC;IACzB,eAAe,EAAE,MAAM,CAAC;IACxB,KAAK,CAAC,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC3B,WAAW,SAAc;IACzB,aAAa,CAAC,EAAE,MAAM,GAAG,aAAa,GAAG,OAAO,GAAG,MAAM,CAAC;IAC1D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,QAAQ,CAAC,EAAE,CAAC,eAAe,EAAE,MAAM,KAAK,IAAI,CAAC;IAE7C,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,CAAC;gBAsCN,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;IA6B/B,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,GAAG,MAAM;IACvB,GAAG,CAAC,CAAC,EAAE,MAAM,CAAC,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,MAAM,KAAK,cAAc,CAAC,GAAG,MAAM,CAAC,EAAE,GAAG,cAAc;IAoBtF,cAAc;IAUR,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAwDhD,aAAa;IAYb,QAAQ;IAOR,eAAe,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC;IAY9E;;;;;;;;;;OAUG;IACH,MAAM;;;;CAMP"}
package/helper/i18n.js CHANGED
@@ -7,6 +7,18 @@ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, ge
7
7
  step((generator = generator.apply(thisArg, _arguments || [])).next());
8
8
  });
9
9
  };
10
+ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
11
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
12
+ 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");
13
+ return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
14
+ };
15
+ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
16
+ if (kind === "m") throw new TypeError("Private method is not writable");
17
+ if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
18
+ 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");
19
+ return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
20
+ };
21
+ var _I18n_instances, _I18n_cacheCurrentKey_get, _I18n_urlParamsLang_get, _I18n_cacheLang_get, _I18n_isMain_get, _I18n_lang_set;
10
22
  import { createStore, updateStore } from '../lib/store';
11
23
  import { html } from '../lib/element';
12
24
  import { GemError } from '../lib/utils';
@@ -16,15 +28,17 @@ import { GemError } from '../lib/utils';
16
28
  const splitReg = /\$\d(?:<[^>]*>)?/;
17
29
  const matchReg = /\$(\d)(<([^>]*)>)?/g;
18
30
  const matchStrIndex = 3;
31
+ const modules = new Set();
19
32
  export class I18n {
20
33
  constructor(options) {
34
+ _I18n_instances.add(this);
21
35
  this.cachePrefix = 'gem-i18n';
22
36
  if (!options.resources[options.fallbackLanguage]) {
23
37
  throw new GemError('i18n: fallbackLanguage invalid');
24
38
  }
25
39
  this.store = createStore(this);
26
40
  Object.assign(this, options);
27
- let currentLanguage = this.urlParamsLang || this.currentLanguage || this.cacheLang;
41
+ let currentLanguage = __classPrivateFieldGet(this, _I18n_instances, "a", _I18n_urlParamsLang_get) || this.currentLanguage || __classPrivateFieldGet(this, _I18n_instances, "a", _I18n_cacheLang_get);
28
42
  const ele = document.querySelector(`[type*=${this.cachePrefix}]`);
29
43
  if (ele) {
30
44
  try {
@@ -37,40 +51,13 @@ export class I18n {
37
51
  }
38
52
  }
39
53
  if (currentLanguage) {
40
- this.lang = currentLanguage;
54
+ __classPrivateFieldSet(this, _I18n_instances, currentLanguage, "a", _I18n_lang_set);
41
55
  this.setLanguage(currentLanguage);
42
56
  }
43
57
  else {
44
58
  this.resetLanguage();
45
59
  }
46
60
  }
47
- get cacheCurrentKey() {
48
- return `${this.cachePrefix}:current`;
49
- }
50
- get urlParamsLang() {
51
- const { hostname, pathname, search } = location;
52
- const parts = hostname.split('.');
53
- switch (this.urlParamsType) {
54
- case 'ccTLD':
55
- return parts.pop();
56
- case 'gTLD':
57
- return parts.shift();
58
- case 'path':
59
- return pathname.split('/')[1];
60
- default:
61
- const fragment = (this.urlParamsName && new URLSearchParams(search).get(this.urlParamsName)) || '';
62
- return fragment in this.resources ? fragment : '';
63
- }
64
- }
65
- get cacheLang() {
66
- return (this.cache && localStorage.getItem(this.cacheCurrentKey)) || '';
67
- }
68
- set lang(lang) {
69
- var _a;
70
- this.currentLanguage = lang;
71
- document.documentElement.lang = lang;
72
- (_a = this.onChange) === null || _a === void 0 ? void 0 : _a.call(this, lang);
73
- }
74
61
  get(s, ...rest) {
75
62
  const currentLanguagePack = this.resources[this.currentLanguage];
76
63
  const fallbackLanguagePack = this.resources[this.fallbackLanguage];
@@ -101,11 +88,14 @@ export class I18n {
101
88
  }
102
89
  setLanguage(lang) {
103
90
  return __awaiter(this, void 0, void 0, function* () {
91
+ if (__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_isMain_get)) {
92
+ modules.forEach((i18n) => __awaiter(this, void 0, void 0, function* () { return yield i18n.setLanguage(lang); }));
93
+ }
104
94
  let pack;
105
95
  const data = this.resources[lang];
106
96
  if (!data) {
107
97
  // eslint-disable-next-line no-console
108
- console.warn(`i18n: not found \`${lang}\``);
98
+ console.warn(`${this.cachePrefix}: not found \`${lang}\``);
109
99
  return this.resetLanguage();
110
100
  }
111
101
  if (typeof data === 'string') {
@@ -144,7 +134,7 @@ export class I18n {
144
134
  this.resources[lang] = pack;
145
135
  updateStore(this.store, {});
146
136
  if (lang !== this.currentLanguage) {
147
- this.lang = lang;
137
+ __classPrivateFieldSet(this, _I18n_instances, lang, "a", _I18n_lang_set);
148
138
  }
149
139
  // auto cache
150
140
  if (this.cache === true) {
@@ -154,15 +144,32 @@ export class I18n {
154
144
  });
155
145
  }
156
146
  resetLanguage() {
157
- this.lang = this.fallbackLanguage;
147
+ if (__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_isMain_get)) {
148
+ modules.forEach((i18n) => i18n.resetLanguage());
149
+ }
150
+ __classPrivateFieldSet(this, _I18n_instances, this.fallbackLanguage, "a", _I18n_lang_set);
158
151
  if (this.cache) {
159
- localStorage.removeItem(this.cacheCurrentKey);
152
+ localStorage.removeItem(__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_cacheCurrentKey_get));
160
153
  }
161
154
  return this.setLanguage(this.detectLanguage());
162
155
  }
163
156
  // 一般用在 `onChange` 中
164
157
  setCache() {
165
- localStorage.setItem(this.cacheCurrentKey, this.currentLanguage);
158
+ if (__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_isMain_get)) {
159
+ modules.forEach((i18n) => i18n.setCache());
160
+ }
161
+ localStorage.setItem(__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_cacheCurrentKey_get), this.currentLanguage);
162
+ }
163
+ createSubModule(name, resources) {
164
+ const module = new I18n({
165
+ resources,
166
+ cachePrefix: `${this.cachePrefix}-${name}`,
167
+ currentLanguage: this.currentLanguage,
168
+ fallbackLanguage: this.fallbackLanguage,
169
+ cache: this.cache,
170
+ });
171
+ modules.add(module);
172
+ return module;
166
173
  }
167
174
  /**
168
175
  * prepare: @connectStore(i18n.store)
@@ -182,4 +189,32 @@ export class I18n {
182
189
  };
183
190
  }
184
191
  }
192
+ _I18n_instances = new WeakSet(), _I18n_cacheCurrentKey_get = function _I18n_cacheCurrentKey_get() {
193
+ return `${this.cachePrefix}:current`;
194
+ }, _I18n_urlParamsLang_get = function _I18n_urlParamsLang_get() {
195
+ const { hostname, pathname, search } = location;
196
+ const parts = hostname.split('.');
197
+ switch (this.urlParamsType) {
198
+ case 'ccTLD':
199
+ return parts.pop();
200
+ case 'gTLD':
201
+ return parts.shift();
202
+ case 'path':
203
+ return pathname.split('/')[1];
204
+ default:
205
+ const fragment = (this.urlParamsName && new URLSearchParams(search).get(this.urlParamsName)) || '';
206
+ return fragment in this.resources ? fragment : '';
207
+ }
208
+ }, _I18n_cacheLang_get = function _I18n_cacheLang_get() {
209
+ return (this.cache && localStorage.getItem(__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_cacheCurrentKey_get))) || '';
210
+ }, _I18n_isMain_get = function _I18n_isMain_get() {
211
+ return !modules.has(this);
212
+ }, _I18n_lang_set = function _I18n_lang_set(lang) {
213
+ var _a;
214
+ if (__classPrivateFieldGet(this, _I18n_instances, "a", _I18n_isMain_get)) {
215
+ document.documentElement.lang = lang;
216
+ }
217
+ this.currentLanguage = lang;
218
+ (_a = this.onChange) === null || _a === void 0 ? void 0 : _a.call(this, lang);
219
+ };
185
220
  //# sourceMappingURL=i18n.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"i18n.js","sourceRoot":"","sources":["../src/helper/i18n.ts"],"names":[],"mappings":"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"}
@@ -9,6 +9,8 @@ export declare const mediaQuery: {
9
9
  readonly isLaptop: boolean;
10
10
  DESKTOP: string;
11
11
  readonly isDesktop: boolean;
12
+ WIDTHSCREEN: string;
13
+ readonly isWidthScreen: boolean;
12
14
  PHONE_LANDSCAPE: string;
13
15
  readonly isPhoneLandscape: boolean;
14
16
  TABLET: string;
@@ -1 +1 @@
1
- {"version":3,"file":"mediaquery.d.ts","sourceRoot":"","sources":["../src/helper/mediaquery.ts"],"names":[],"mappings":"AAGA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;CAkEtB,CAAC"}
1
+ {"version":3,"file":"mediaquery.d.ts","sourceRoot":"","sources":["../src/helper/mediaquery.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,UAAU;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuEtB,CAAC"}
@@ -1,59 +1,64 @@
1
1
  // https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488
2
2
  // https://mediag.com/news/popular-screen-resolutions-designing-for-all/
3
+ const matche = (query) => window.matchMedia(query).matches;
3
4
  export const mediaQuery = {
4
5
  PRINT: 'print',
5
6
  get isPrint() {
6
- return window.matchMedia(this.PRINT).matches;
7
+ return matche(this.PRINT);
7
8
  },
8
9
  HOVER: '(hover: hover)',
9
10
  get isHover() {
10
- return window.matchMedia(this.HOVER).matches;
11
+ return matche(this.HOVER);
11
12
  },
12
13
  PHONE: '(min-width: 319px) and (max-width: 480px)',
13
14
  get isPhone() {
14
- return window.matchMedia(this.PHONE).matches;
15
+ return matche(this.PHONE);
15
16
  },
16
17
  LAPTOP: '(min-width: 1023px) and (max-width: 1280px) and (orientation: landscape)',
17
18
  get isLaptop() {
18
- return window.matchMedia(this.LAPTOP).matches;
19
+ return matche(this.LAPTOP);
19
20
  },
20
21
  DESKTOP: '(min-width: 1279px) and (orientation: landscape)',
21
22
  get isDesktop() {
22
- return window.matchMedia(this.DESKTOP).matches;
23
+ return matche(this.DESKTOP);
24
+ },
25
+ WIDTHSCREEN: '(min-width: 1919px) and (orientation: landscape)',
26
+ get isWidthScreen() {
27
+ return matche(this.WIDTHSCREEN);
23
28
  },
24
29
  PHONE_LANDSCAPE: '(min-width: 479px) and (max-width: 767px) and (orientation: landscape)',
25
30
  // PHONE_LANDSCAPE: '(min-width: 481px) and (max-width: 767px)',
26
31
  get isPhoneLandscape() {
27
- return window.matchMedia(this.PHONE_LANDSCAPE).matches;
32
+ return matche(this.PHONE_LANDSCAPE);
28
33
  },
29
34
  TABLET: '(min-width: 768px) and (max-width: 1024px)',
30
35
  get isTablet() {
31
- return window.matchMedia(this.TABLET).matches;
36
+ return matche(this.TABLET);
32
37
  },
33
38
  SMALL_PHONE: '(min-width: 319px) and (max-width: 480px) and (max-height: 640px)',
34
39
  get isSmallPhone() {
35
- return window.matchMedia(this.SMALL_PHONE).matches;
40
+ return matche(this.SMALL_PHONE);
36
41
  },
37
42
  WATCH: '(max-width: 319px)',
38
43
  get isWatch() {
39
- return window.matchMedia(this.WATCH).matches;
44
+ return matche(this.WATCH);
40
45
  },
41
46
  SHORT: '(min-width: 479px) and (max-height: 320px)',
42
47
  get isShort() {
43
- return window.matchMedia(this.SHORT).matches;
48
+ return matche(this.SHORT);
44
49
  },
45
50
  PWA: '(display-mode: standalone)',
46
51
  // PWA: '(display-mode: browser)', // debugging
47
52
  get isPWA() {
48
- return window.matchMedia(this.PWA).matches;
53
+ return matche(this.PWA);
49
54
  },
50
55
  MOTION_REDUCE: '(prefers-reduced-motion: reduce)',
51
56
  get isMotionReduce() {
52
- return window.matchMedia(this.MOTION_REDUCE).matches;
57
+ return matche(this.MOTION_REDUCE);
53
58
  },
54
59
  DATA_REDUCE: '(prefers-reduced-data: reduce)',
55
60
  get isDataReduce() {
56
- return window.matchMedia(this.DATA_REDUCE).matches;
61
+ return matche(this.DATA_REDUCE);
57
62
  },
58
63
  };
59
64
  //# sourceMappingURL=mediaquery.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"mediaquery.js","sourceRoot":"","sources":["../src/helper/mediaquery.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wEAAwE;AAExE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IACD,KAAK,EAAE,gBAAgB;IACvB,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IAED,KAAK,EAAE,2CAA2C;IAClD,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IAED,MAAM,EAAE,0EAA0E;IAClF,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAED,OAAO,EAAE,kDAAkD;IAC3D,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,OAAO,CAAC;IACjD,CAAC;IAED,eAAe,EAAE,wEAAwE;IACzF,gEAAgE;IAChE,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC,OAAO,CAAC;IACzD,CAAC;IAED,MAAM,EAAE,4CAA4C;IACpD,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,OAAO,CAAC;IAChD,CAAC;IAED,WAAW,EAAE,mEAAmE;IAChF,IAAI,YAAY;QACd,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;IACrD,CAAC;IAED,KAAK,EAAE,oBAAoB;IAC3B,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IAED,KAAK,EAAE,4CAA4C;IACnD,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;IAC/C,CAAC;IAED,GAAG,EAAE,4BAA4B;IACjC,+CAA+C;IAC/C,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,OAAO,CAAC;IAC7C,CAAC;IAED,aAAa,EAAE,kCAAkC;IACjD,IAAI,cAAc;QAChB,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC,OAAO,CAAC;IACvD,CAAC;IAED,WAAW,EAAE,gCAAgC;IAC7C,IAAI,YAAY;QACd,OAAO,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC,OAAO,CAAC;IACrD,CAAC;CACF,CAAC"}
1
+ {"version":3,"file":"mediaquery.js","sourceRoot":"","sources":["../src/helper/mediaquery.ts"],"names":[],"mappings":"AAAA,2DAA2D;AAC3D,wEAAwE;AAExE,MAAM,MAAM,GAAG,CAAC,KAAa,EAAE,EAAE,CAAC,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC,CAAC,OAAO,CAAC;AAEnE,MAAM,CAAC,MAAM,UAAU,GAAG;IACxB,KAAK,EAAE,OAAO;IACd,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IACD,KAAK,EAAE,gBAAgB;IACvB,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,EAAE,2CAA2C;IAClD,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,MAAM,EAAE,0EAA0E;IAClF,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,OAAO,EAAE,kDAAkD;IAC3D,IAAI,SAAS;QACX,OAAO,MAAM,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;IAC9B,CAAC;IAED,WAAW,EAAE,kDAAkD;IAC/D,IAAI,aAAa;QACf,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,eAAe,EAAE,wEAAwE;IACzF,gEAAgE;IAChE,IAAI,gBAAgB;QAClB,OAAO,MAAM,CAAC,IAAI,CAAC,eAAe,CAAC,CAAC;IACtC,CAAC;IAED,MAAM,EAAE,4CAA4C;IACpD,IAAI,QAAQ;QACV,OAAO,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAC7B,CAAC;IAED,WAAW,EAAE,mEAAmE;IAChF,IAAI,YAAY;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;IAED,KAAK,EAAE,oBAAoB;IAC3B,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,KAAK,EAAE,4CAA4C;IACnD,IAAI,OAAO;QACT,OAAO,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;IAC5B,CAAC;IAED,GAAG,EAAE,4BAA4B;IACjC,+CAA+C;IAC/C,IAAI,KAAK;QACP,OAAO,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;IAC1B,CAAC;IAED,aAAa,EAAE,kCAAkC;IACjD,IAAI,cAAc;QAChB,OAAO,MAAM,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;IACpC,CAAC;IAED,WAAW,EAAE,gCAAgC;IAC7C,IAAI,YAAY;QACd,OAAO,MAAM,CAAC,IAAI,CAAC,WAAW,CAAC,CAAC;IAClC,CAAC;CACF,CAAC"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "1.5.6";
1
+ export declare const version = "1.5.7";
2
2
  //# sourceMappingURL=version.d.ts.map
package/lib/version.js CHANGED
@@ -1,3 +1,3 @@
1
1
  // Do not modify manually
2
- export const version = '1.5.6';
2
+ export const version = '1.5.7';
3
3
  //# sourceMappingURL=version.js.map
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@mantou/gem",
3
- "version": "1.5.6",
3
+ "version": "1.5.7",
4
4
  "description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -22,7 +22,16 @@ const i18n = new I18n<typeof en>({
22
22
  onChange: console.log,
23
23
  });
24
24
 
25
+ const i18nModule = i18n.createSubModule<typeof en>('test', {
26
+ en,
27
+ de: {
28
+ title: 'Das ist I18n',
29
+ },
30
+ zh: 'data:text/plain;base64,eyJ0aXRsZSI6Iui/meaYr0kxOG4ifQ==',
31
+ });
32
+
25
33
  @connectStore(i18n.store)
34
+ @connectStore(i18nModule.store)
26
35
  @customElement('app-root')
27
36
  export class App extends GemElement {
28
37
  render() {
@@ -35,6 +44,11 @@ export class App extends GemElement {
35
44
  <p>${i18n.get('title')}</p>
36
45
  <p>${i18n.get('hello', 'World', 'reverse')}</p>
37
46
  <p>${i18n.get('detail', (s) => html`<a href="#">${s}</a>`)}</p>
47
+
48
+ <h2>sub module</h2>
49
+ <p>${i18nModule.get('title')}</p>
50
+ <p>${i18nModule.get('hello', 'World', 'reverse')}</p>
51
+ <p>${i18nModule.get('detail', (s) => html`<a href="#">${s}</a>`)}</p>
38
52
  `;
39
53
  }
40
54
  }
@@ -8,6 +8,7 @@ import { GemError } from '../lib/utils';
8
8
  const splitReg = /\$\d(?:<[^>]*>)?/;
9
9
  const matchReg = /\$(\d)(<([^>]*)>)?/g;
10
10
  const matchStrIndex = 3;
11
+ const modules = new Set<I18n<any>>();
11
12
 
12
13
  type Msg =
13
14
  | {
@@ -56,11 +57,11 @@ export class I18n<T = Record<string, Msg>> {
56
57
 
57
58
  store: Store<any>;
58
59
 
59
- get cacheCurrentKey() {
60
+ get #cacheCurrentKey() {
60
61
  return `${this.cachePrefix}:current`;
61
62
  }
62
63
 
63
- get urlParamsLang() {
64
+ get #urlParamsLang() {
64
65
  const { hostname, pathname, search } = location;
65
66
  const parts = hostname.split('.');
66
67
  switch (this.urlParamsType) {
@@ -76,13 +77,19 @@ export class I18n<T = Record<string, Msg>> {
76
77
  }
77
78
  }
78
79
 
79
- get cacheLang() {
80
- return (this.cache && localStorage.getItem(this.cacheCurrentKey)) || '';
80
+ get #cacheLang() {
81
+ return (this.cache && localStorage.getItem(this.#cacheCurrentKey)) || '';
81
82
  }
82
83
 
83
- set lang(lang: string) {
84
+ get #isMain(): boolean {
85
+ return !modules.has(this);
86
+ }
87
+
88
+ set #lang(lang: string) {
89
+ if (this.#isMain) {
90
+ document.documentElement.lang = lang;
91
+ }
84
92
  this.currentLanguage = lang;
85
- document.documentElement.lang = lang;
86
93
  this.onChange?.(lang);
87
94
  }
88
95
 
@@ -94,7 +101,7 @@ export class I18n<T = Record<string, Msg>> {
94
101
  this.store = createStore(this as any);
95
102
  Object.assign<I18n<T>, Options<T>>(this as I18n<T>, options);
96
103
 
97
- let currentLanguage = this.urlParamsLang || this.currentLanguage || this.cacheLang;
104
+ let currentLanguage = this.#urlParamsLang || this.currentLanguage || this.#cacheLang;
98
105
 
99
106
  const ele = document.querySelector(`[type*=${this.cachePrefix}]`);
100
107
  if (ele) {
@@ -108,7 +115,7 @@ export class I18n<T = Record<string, Msg>> {
108
115
  }
109
116
 
110
117
  if (currentLanguage) {
111
- this.lang = currentLanguage;
118
+ this.#lang = currentLanguage;
112
119
  this.setLanguage(currentLanguage);
113
120
  } else {
114
121
  this.resetLanguage();
@@ -147,11 +154,14 @@ export class I18n<T = Record<string, Msg>> {
147
154
  }
148
155
 
149
156
  async setLanguage(lang: string): Promise<string> {
157
+ if (this.#isMain) {
158
+ modules.forEach(async (i18n) => await i18n.setLanguage(lang));
159
+ }
150
160
  let pack: Partial<T>;
151
161
  const data = this.resources[lang];
152
162
  if (!data) {
153
163
  // eslint-disable-next-line no-console
154
- console.warn(`i18n: not found \`${lang}\``);
164
+ console.warn(`${this.cachePrefix}: not found \`${lang}\``);
155
165
  return this.resetLanguage();
156
166
  }
157
167
 
@@ -190,7 +200,7 @@ export class I18n<T = Record<string, Msg>> {
190
200
  this.resources[lang] = pack;
191
201
  updateStore(this.store, {});
192
202
  if (lang !== this.currentLanguage) {
193
- this.lang = lang;
203
+ this.#lang = lang;
194
204
  }
195
205
  // auto cache
196
206
  if (this.cache === true) {
@@ -200,16 +210,34 @@ export class I18n<T = Record<string, Msg>> {
200
210
  }
201
211
 
202
212
  resetLanguage() {
203
- this.lang = this.fallbackLanguage;
213
+ if (this.#isMain) {
214
+ modules.forEach((i18n) => i18n.resetLanguage());
215
+ }
216
+ this.#lang = this.fallbackLanguage;
204
217
  if (this.cache) {
205
- localStorage.removeItem(this.cacheCurrentKey);
218
+ localStorage.removeItem(this.#cacheCurrentKey);
206
219
  }
207
220
  return this.setLanguage(this.detectLanguage());
208
221
  }
209
222
 
210
223
  // 一般用在 `onChange` 中
211
224
  setCache() {
212
- localStorage.setItem(this.cacheCurrentKey, this.currentLanguage);
225
+ if (this.#isMain) {
226
+ modules.forEach((i18n) => i18n.setCache());
227
+ }
228
+ localStorage.setItem(this.#cacheCurrentKey, this.currentLanguage);
229
+ }
230
+
231
+ createSubModule<K = Record<string, Msg>>(name: string, resources: Resources<K>) {
232
+ const module = new I18n<K>({
233
+ resources,
234
+ cachePrefix: `${this.cachePrefix}-${name}`,
235
+ currentLanguage: this.currentLanguage,
236
+ fallbackLanguage: this.fallbackLanguage,
237
+ cache: this.cache,
238
+ });
239
+ modules.add(module);
240
+ return module;
213
241
  }
214
242
 
215
243
  /**
@@ -1,70 +1,77 @@
1
1
  // https://gist.github.com/gokulkrishh/242e68d1ee94ad05f488
2
2
  // https://mediag.com/news/popular-screen-resolutions-designing-for-all/
3
3
 
4
+ const matche = (query: string) => window.matchMedia(query).matches;
5
+
4
6
  export const mediaQuery = {
5
7
  PRINT: 'print',
6
8
  get isPrint() {
7
- return window.matchMedia(this.PRINT).matches;
9
+ return matche(this.PRINT);
8
10
  },
9
11
  HOVER: '(hover: hover)',
10
12
  get isHover() {
11
- return window.matchMedia(this.HOVER).matches;
13
+ return matche(this.HOVER);
12
14
  },
13
15
 
14
16
  PHONE: '(min-width: 319px) and (max-width: 480px)',
15
17
  get isPhone() {
16
- return window.matchMedia(this.PHONE).matches;
18
+ return matche(this.PHONE);
17
19
  },
18
20
 
19
21
  LAPTOP: '(min-width: 1023px) and (max-width: 1280px) and (orientation: landscape)',
20
22
  get isLaptop() {
21
- return window.matchMedia(this.LAPTOP).matches;
23
+ return matche(this.LAPTOP);
22
24
  },
23
25
 
24
26
  DESKTOP: '(min-width: 1279px) and (orientation: landscape)',
25
27
  get isDesktop() {
26
- return window.matchMedia(this.DESKTOP).matches;
28
+ return matche(this.DESKTOP);
29
+ },
30
+
31
+ WIDTHSCREEN: '(min-width: 1919px) and (orientation: landscape)',
32
+ get isWidthScreen() {
33
+ return matche(this.WIDTHSCREEN);
27
34
  },
28
35
 
29
36
  PHONE_LANDSCAPE: '(min-width: 479px) and (max-width: 767px) and (orientation: landscape)',
30
37
  // PHONE_LANDSCAPE: '(min-width: 481px) and (max-width: 767px)',
31
38
  get isPhoneLandscape() {
32
- return window.matchMedia(this.PHONE_LANDSCAPE).matches;
39
+ return matche(this.PHONE_LANDSCAPE);
33
40
  },
34
41
 
35
42
  TABLET: '(min-width: 768px) and (max-width: 1024px)',
36
43
  get isTablet() {
37
- return window.matchMedia(this.TABLET).matches;
44
+ return matche(this.TABLET);
38
45
  },
39
46
 
40
47
  SMALL_PHONE: '(min-width: 319px) and (max-width: 480px) and (max-height: 640px)',
41
48
  get isSmallPhone() {
42
- return window.matchMedia(this.SMALL_PHONE).matches;
49
+ return matche(this.SMALL_PHONE);
43
50
  },
44
51
 
45
52
  WATCH: '(max-width: 319px)',
46
53
  get isWatch() {
47
- return window.matchMedia(this.WATCH).matches;
54
+ return matche(this.WATCH);
48
55
  },
49
56
 
50
57
  SHORT: '(min-width: 479px) and (max-height: 320px)',
51
58
  get isShort() {
52
- return window.matchMedia(this.SHORT).matches;
59
+ return matche(this.SHORT);
53
60
  },
54
61
 
55
62
  PWA: '(display-mode: standalone)',
56
63
  // PWA: '(display-mode: browser)', // debugging
57
64
  get isPWA() {
58
- return window.matchMedia(this.PWA).matches;
65
+ return matche(this.PWA);
59
66
  },
60
67
 
61
68
  MOTION_REDUCE: '(prefers-reduced-motion: reduce)',
62
69
  get isMotionReduce() {
63
- return window.matchMedia(this.MOTION_REDUCE).matches;
70
+ return matche(this.MOTION_REDUCE);
64
71
  },
65
72
 
66
73
  DATA_REDUCE: '(prefers-reduced-data: reduce)',
67
74
  get isDataReduce() {
68
- return window.matchMedia(this.DATA_REDUCE).matches;
75
+ return matche(this.DATA_REDUCE);
69
76
  },
70
77
  };
@@ -1,2 +1,2 @@
1
1
  // Do not modify manually
2
- export const version = '1.5.6';
2
+ export const version = '1.5.7';