@mantou/gem 1.5.2 → 1.5.6

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.
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/lib/utils.js CHANGED
@@ -3,7 +3,13 @@ var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (
3
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
4
  return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
5
5
  };
6
- var _QueryString_stringify, _QueryString_parse;
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 _LinkedList_instances, _LinkedList_map, _LinkedList_firstItem, _LinkedList_lastItem, _LinkedList_delete, _QueryString_stringify, _QueryString_parse;
7
13
  const microtaskSet = new Set();
8
14
  export function addMicrotask(func) {
9
15
  if (typeof func !== 'function')
@@ -43,47 +49,68 @@ export function absoluteLocation(currentPath = '', relativePath = '') {
43
49
  export class LinkedList extends (globalThis.EventTarget || Object) {
44
50
  constructor() {
45
51
  super(...arguments);
46
- this.pool = new Map();
52
+ _LinkedList_instances.add(this);
53
+ _LinkedList_map.set(this, new Map());
54
+ _LinkedList_firstItem.set(this, void 0);
55
+ _LinkedList_lastItem.set(this, void 0);
56
+ }
57
+ get size() {
58
+ return __classPrivateFieldGet(this, _LinkedList_map, "f").size;
47
59
  }
48
- // 添加已存在的项目时会删除老的项目
60
+ // 添加到尾部,已存在时会删除老的项目
61
+ // 如果是添加第一个,start 事件会在添加前触发,避免处理事件重复的逻辑
49
62
  add(value) {
50
- const item = { value };
51
- if (!this.firstItem) {
63
+ if (!__classPrivateFieldGet(this, _LinkedList_lastItem, "f")) {
52
64
  this.dispatchEvent(new CustomEvent('start'));
53
- this.firstItem = item;
54
65
  }
55
- if (this.lastItem) {
56
- this.lastItem.next = item;
57
- item.prev = this.lastItem;
66
+ const item = __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, value) || { value };
67
+ item.prev = __classPrivateFieldGet(this, _LinkedList_lastItem, "f");
68
+ if (item.prev) {
69
+ item.prev.next = item;
58
70
  }
59
- this.lastItem = item;
60
- const existItem = this.pool.get(value);
61
- if (existItem) {
62
- if (existItem.prev) {
63
- existItem.prev.next = existItem.next;
64
- }
65
- else {
66
- this.firstItem = existItem.next;
67
- }
68
- if (existItem.next) {
69
- existItem.next.prev = existItem.prev;
70
- }
71
+ item.next = undefined;
72
+ __classPrivateFieldSet(this, _LinkedList_lastItem, item, "f");
73
+ if (!__classPrivateFieldGet(this, _LinkedList_firstItem, "f")) {
74
+ __classPrivateFieldSet(this, _LinkedList_firstItem, item, "f");
71
75
  }
72
- this.pool.set(value, item);
76
+ __classPrivateFieldGet(this, _LinkedList_map, "f").set(value, item);
73
77
  }
78
+ // 删除这个元素后没有其他元素时立即出发 end 事件
79
+ delete(value) {
80
+ const deleteItem = __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, value);
81
+ if (!__classPrivateFieldGet(this, _LinkedList_firstItem, "f")) {
82
+ this.dispatchEvent(new CustomEvent('end'));
83
+ }
84
+ return deleteItem;
85
+ }
86
+ // 获取头部元素
74
87
  get() {
75
- const firstItem = this.firstItem;
88
+ const firstItem = __classPrivateFieldGet(this, _LinkedList_firstItem, "f");
76
89
  if (!firstItem)
77
90
  return;
78
- this.pool.delete(firstItem.value);
79
- this.firstItem = firstItem.next;
80
- if (!this.firstItem) {
81
- this.lastItem = undefined;
82
- this.dispatchEvent(new CustomEvent('end'));
83
- }
91
+ __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, firstItem.value);
84
92
  return firstItem.value;
85
93
  }
86
94
  }
95
+ _LinkedList_map = new WeakMap(), _LinkedList_firstItem = new WeakMap(), _LinkedList_lastItem = new WeakMap(), _LinkedList_instances = new WeakSet(), _LinkedList_delete = function _LinkedList_delete(value) {
96
+ const existItem = __classPrivateFieldGet(this, _LinkedList_map, "f").get(value);
97
+ if (existItem) {
98
+ if (existItem.prev) {
99
+ existItem.prev.next = existItem.next;
100
+ }
101
+ else {
102
+ __classPrivateFieldSet(this, _LinkedList_firstItem, existItem.next, "f");
103
+ }
104
+ if (existItem.next) {
105
+ existItem.next.prev = existItem.prev;
106
+ }
107
+ else {
108
+ __classPrivateFieldSet(this, _LinkedList_lastItem, existItem.prev, "f");
109
+ }
110
+ __classPrivateFieldGet(this, _LinkedList_map, "f").delete(value);
111
+ }
112
+ return existItem;
113
+ };
87
114
  export class PropProxyMap extends WeakMap {
88
115
  get(ele) {
89
116
  let proxy = super.get(ele);
@@ -94,13 +121,10 @@ export class PropProxyMap extends WeakMap {
94
121
  return proxy;
95
122
  }
96
123
  }
97
- export function isObject(value) {
98
- return typeof value === 'object';
99
- }
100
124
  export class QueryString extends URLSearchParams {
101
125
  constructor(param) {
102
126
  super(param);
103
- _QueryString_stringify.set(this, (value) => (isObject(value) ? JSON.stringify(value) : value));
127
+ _QueryString_stringify.set(this, (value) => (typeof value === 'string' ? value : JSON.stringify(value)));
104
128
  _QueryString_parse.set(this, (value) => {
105
129
  if (!value)
106
130
  return null;
@@ -111,10 +135,8 @@ export class QueryString extends URLSearchParams {
111
135
  return null;
112
136
  }
113
137
  });
114
- if (param instanceof QueryString) {
115
- return param;
116
- }
117
138
  }
139
+ // support `{ key: ObjectValue }`
118
140
  concat(param) {
119
141
  let query;
120
142
  if (typeof param === 'string') {
@@ -123,8 +145,8 @@ export class QueryString extends URLSearchParams {
123
145
  else {
124
146
  query = param;
125
147
  }
126
- Object.keys(query).forEach((key) => {
127
- this.append(key, query[key]);
148
+ Object.entries(query).forEach(([key, value]) => {
149
+ this.append(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value));
128
150
  });
129
151
  }
130
152
  setAny(key, value) {
@@ -133,7 +155,8 @@ export class QueryString extends URLSearchParams {
133
155
  value.forEach((e) => this.append(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, e)));
134
156
  }
135
157
  else {
136
- this.set(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value));
158
+ const v = __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value);
159
+ v ? this.set(key, v) : this.delete(key);
137
160
  }
138
161
  }
139
162
  getAny(key) {
@@ -278,7 +301,9 @@ export function removeItems(target, items) {
278
301
  export function styleMap(obj) {
279
302
  let styleString = '';
280
303
  for (const key in obj) {
281
- styleString += `${camelToKebabCase(key)}:${obj[key]};`;
304
+ if (obj[key]) {
305
+ styleString += `${camelToKebabCase(key)}:${obj[key]};`;
306
+ }
282
307
  }
283
308
  return styleString;
284
309
  }
package/lib/utils.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"utils.js","sourceRoot":"","sources":["../src/lib/utils.ts"],"names":[],"mappings":"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"}
package/lib/version.d.ts CHANGED
@@ -1,2 +1,2 @@
1
- export declare const version = "1.5.2";
1
+ export declare const version = "1.5.6";
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.2';
2
+ export const version = '1.5.6';
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.2",
3
+ "version": "1.5.6",
4
4
  "description": "💎 使用自定义元素的轻量级 WebApp 开发框架",
5
5
  "main": "index.js",
6
6
  "module": "index.js",
@@ -20,18 +20,18 @@
20
20
  "typings": "index.d.ts",
21
21
  "scripts": {
22
22
  "docs": "npx gem-book docs",
23
- "build:docs": "npm run docs -- --build",
23
+ "build:docs": "yarn docs -- --build",
24
24
  "lint": "tsc --noEmit && eslint --ext .ts --fix src/",
25
25
  "clean": "node -e \"fs.readdirSync('src').map(dir => require('rimraf').sync(dir))\"",
26
26
  "example": "cross-env NODE_ENV=development webpack serve",
27
27
  "build:examples": "rimraf build && node scripts/build-examples",
28
- "build:module": "npm run clean && tsc",
28
+ "build:module": "yarn clean && tsc",
29
29
  "build:umd": "cross-env NODE_ENV=production webpack --config webpack.config.umd.js",
30
- "build": "npm run build:module && npm run build:umd",
31
- "prepare": "npm run build",
32
- "prepublishOnly": "npm run lint && npm run test",
30
+ "build": "yarn build:module && yarn build:umd",
31
+ "prepare": "yarn build",
32
+ "prepublishOnly": "yarn lint && yarn test",
33
33
  "release": "node scripts/release",
34
- "test": "npm run build:module && karma start --coverage"
34
+ "test": "yarn build:module && karma start --coverage"
35
35
  },
36
36
  "repository": {
37
37
  "type": "git",
@@ -22,7 +22,7 @@ export abstract class DialogBaseElement extends GemElement {
22
22
  constructor() {
23
23
  super();
24
24
  this.internals.role = 'dialog';
25
- this.internals.ariaModal = true;
25
+ this.internals.ariaModal = 'true';
26
26
  }
27
27
 
28
28
  /**
@@ -84,7 +84,7 @@ export function createModalClass<T extends Record<string, unknown>>(options: T)
84
84
  constructor() {
85
85
  super();
86
86
  this.internals.role = 'alertdialog';
87
- this.internals.ariaModal = true;
87
+ this.internals.ariaModal = 'true';
88
88
  }
89
89
 
90
90
  label = '';
@@ -60,6 +60,7 @@ export interface RouteItem<T = unknown> {
60
60
  // 支持 *
61
61
  // 支持 /a/*
62
62
  // 不支持相对路径
63
+ // 不能匹配查询字符串
63
64
  pattern: string;
64
65
  redirect?: string;
65
66
  content?: TemplateResult;
@@ -109,7 +110,7 @@ type State = {
109
110
  /**
110
111
  * @customElement gem-route
111
112
  * @attr inert 暂停路由更新
112
- * @fires change
113
+ * @fires route-change
113
114
  * @fires error
114
115
  * @fires loading
115
116
  */
@@ -124,7 +125,7 @@ export class GemRouteElement extends GemElement<State> {
124
125
  */
125
126
  @property locationStore?: Store<{ path: string; params: Params; query: QueryString; data?: any }>;
126
127
  @property key: any; // 除了 href 提供另外一种方式来更新,比如语言更新也需要刷新 <gem-route>
127
- @emitter change: Emitter<RouteItem | null>; // path 改变或者 key 改变,包含初始渲染
128
+ @emitter routeChange: Emitter<RouteItem | null>; // path 改变或者 key 改变,包含初始渲染
128
129
  @emitter loading: Emitter<RouteItem>;
129
130
  @emitter error: Emitter<any>;
130
131
 
@@ -186,7 +187,7 @@ export class GemRouteElement extends GemElement<State> {
186
187
  this.currentRoute = route;
187
188
  this.currentParams = params;
188
189
  this.setState({ content });
189
- this.change(this.currentRoute);
190
+ this.routeChange(this.currentRoute);
190
191
  const title = route?.title;
191
192
  if (title) updateStore(titleStore, { title });
192
193
  this.#updateLocationStore();
@@ -194,7 +195,12 @@ export class GemRouteElement extends GemElement<State> {
194
195
 
195
196
  mounted() {
196
197
  this.effect(
197
- ([_, path]) => {
198
+ ([key, path], old) => {
199
+ // 只有查询参数改变
200
+ if (old && key === old[0] && path === old[1]) {
201
+ this.#updateLocationStore();
202
+ return;
203
+ }
198
204
  const { route, params = {} } = GemRouteElement.findRoute(this.routes, path);
199
205
  const { redirect, content, getContent } = route || {};
200
206
  if (redirect) {
@@ -219,10 +225,9 @@ export class GemRouteElement extends GemElement<State> {
219
225
  },
220
226
  () => {
221
227
  const { path } = history.getParams();
222
- return [this.key, path];
228
+ return [this.key, path, location.search];
223
229
  },
224
230
  );
225
- this.effect(this.#updateLocationStore, () => [location.search]);
226
231
  }
227
232
 
228
233
  shouldUpdate() {
@@ -241,7 +246,7 @@ export class GemRouteElement extends GemElement<State> {
241
246
  display: contents;
242
247
  }
243
248
  </style>
244
- ${content}
249
+ ${content ?? html`<slot></slot>`}
245
250
  `;
246
251
  }
247
252
  }
@@ -1,4 +1,4 @@
1
- import { GemElement, html, attribute, property, customElement } from '../';
1
+ import { GemElement, html, attribute, property, customElement, state } from '../';
2
2
 
3
3
  const eleCache = new Map<string, HTMLTemplateElement>();
4
4
  /**
@@ -17,6 +17,8 @@ export class GemUseElement extends GemElement {
17
17
  @property root?: HTMLElement | Document | ShadowRoot;
18
18
  @property element?: string | DocumentFragment | Element;
19
19
 
20
+ @state active: boolean;
21
+
20
22
  private getContent() {
21
23
  const ele = this.element || (this.selector ? (this.root || document).querySelector(this.selector) : null);
22
24
  if (typeof ele === 'string') {
@@ -1,5 +1,6 @@
1
1
  import { GemElement, html } from '../../';
2
2
  import '../../elements/route';
3
+ import '../../elements/link';
3
4
 
4
5
  const routes = [
5
6
  {
@@ -7,7 +7,8 @@ import '../elements/layout';
7
7
 
8
8
  const homeRoute: RouteItem = {
9
9
  pattern: '/',
10
- getContent(params) {
10
+ async getContent(params) {
11
+ await new Promise((res) => setTimeout(res, 1000));
11
12
  return html`<route-home .params=${params}></route-home>`;
12
13
  },
13
14
  };
@@ -88,7 +89,7 @@ export class App extends GemElement {
88
89
  <gem-route
89
90
  ref=${this.routeRef.ref}
90
91
  @loading=${console.log}
91
- @change=${console.log}
92
+ @route-change=${console.log}
92
93
  @error=${console.error}
93
94
  .routes=${routes}
94
95
  .locationStore=${locationStore}
@@ -25,11 +25,10 @@ export { ifDefined } from 'lit-html/directives/if-defined';
25
25
  type CustomStateSet = Set<string>;
26
26
 
27
27
  declare global {
28
- interface ElementInternals {
28
+ interface ElementInternals extends ARIAMixin {
29
29
  states: CustomStateSet;
30
30
  // https://w3c.github.io/aria/#role_definitions
31
31
  role?: string;
32
- ariaModal?: boolean;
33
32
  }
34
33
  // 用于 css 选择器选择元素,使用 @refobject 自动选择获取
35
34
  // 必须使用 attr 赋值
@@ -38,8 +37,8 @@ declare global {
38
37
  * @attr inert
39
38
  */
40
39
  interface HTMLElement {
41
- attachInternals?: () => ElementInternals;
42
- inert?: boolean;
40
+ attachInternals: () => ElementInternals;
41
+ inert: boolean;
43
42
  }
44
43
  }
45
44
 
@@ -53,20 +52,15 @@ function execCallback(fun: any) {
53
52
 
54
53
  // global render task pool
55
54
  const asyncRenderTaskList = new LinkedList<() => void>();
56
- const tick = () => {
57
- window.requestAnimationFrame(function callback(timestamp) {
58
- if (performance.now() > timestamp + 16) {
59
- tick();
60
- return;
61
- }
62
- const task = asyncRenderTaskList.get();
63
- if (task) {
64
- task();
65
- callback(timestamp);
66
- }
67
- });
55
+ const tick = (timeStamp = performance.now()) => {
56
+ if (performance.now() > timeStamp + 16) return requestAnimationFrame(tick);
57
+ const task = asyncRenderTaskList.get();
58
+ if (task) {
59
+ task();
60
+ tick(timeStamp);
61
+ }
68
62
  };
69
- asyncRenderTaskList.addEventListener('start', tick);
63
+ asyncRenderTaskList.addEventListener('start', () => addMicrotask(tick));
70
64
 
71
65
  type GetDepFun<T> = () => T;
72
66
  type EffectCallback<T> = (depValues: T, oldDepValues?: T) => any;
@@ -164,7 +158,7 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
164
158
  if (!this.attachInternals) {
165
159
  // https://bugs.webkit.org/show_bug.cgi?id=197960
166
160
  this.attachInternals = () => {
167
- return { states: getCustomStateSet() };
161
+ return { states: getCustomStateSet() } as any;
168
162
  };
169
163
  }
170
164
  this.#internals = this.attachInternals();
@@ -198,7 +192,7 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
198
192
  list?.forEach((effectItem) => {
199
193
  const { callback, getDep, values, preCallback } = effectItem;
200
194
  const newValues = getDep?.();
201
- if (!getDep || isArrayChange(values, newValues)) {
195
+ if (!getDep || !values || isArrayChange(values, newValues)) {
202
196
  execCallback(preCallback);
203
197
  effectItem.preCallback = callback(newValues, values);
204
198
  effectItem.values = newValues;
@@ -235,15 +229,17 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
235
229
  getDep?: T extends any[] ? () => [...T] : undefined,
236
230
  ) => {
237
231
  if (!this.#effectList) this.#effectList = [];
238
- const values = getDep?.() as T;
239
232
  const effectItem: EffectItem<T> = {
240
233
  callback,
241
234
  getDep,
242
- values,
235
+ values: undefined,
243
236
  initialized: !!this.isConnected,
244
237
  };
245
238
  // 以挂载时立即执行副作用,未挂载时等挂载后执行
246
- if (this.isConnected) effectItem.preCallback = callback(values);
239
+ if (this.isConnected) {
240
+ effectItem.values = getDep?.() as T;
241
+ effectItem.preCallback = callback(effectItem.values);
242
+ }
247
243
  this.#effectList.push(effectItem);
248
244
  };
249
245
 
@@ -279,7 +275,8 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
279
275
  this.#effectList?.forEach((effectItem) => {
280
276
  const { callback, getDep, initialized } = effectItem;
281
277
  if (!initialized) {
282
- effectItem.preCallback = callback(getDep?.());
278
+ effectItem.values = getDep?.();
279
+ effectItem.preCallback = callback(effectItem.values);
283
280
  effectItem.initialized = true;
284
281
  }
285
282
  });
@@ -378,14 +375,16 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
378
375
  }
379
376
  };
380
377
 
381
- closestElement(clsOrName: CustomElementConstructor | string) {
382
- const isConstructor = typeof clsOrName === 'function';
383
- const tagName = typeof clsOrName === 'string' && clsOrName.toUpperCase();
378
+ closestElement<K extends keyof HTMLElementTagNameMap>(tag: K): HTMLElementTagNameMap[K] | null;
379
+ closestElement<K extends abstract new (...args: any) => any>(constructor: K): InstanceType<K> | null;
380
+ closestElement<K extends abstract new (...args: any) => any>(constructorOrTag: K | string): Element | null {
381
+ const isConstructor = typeof constructorOrTag === 'function';
382
+ const tagName = typeof constructorOrTag === 'string' && constructorOrTag.toUpperCase();
384
383
  const getRootElement = (ele: Element): Element | null => {
385
384
  const rootEle = ele.parentElement || (ele.getRootNode() as ShadowRoot).host;
386
385
  if (!rootEle) return null;
387
386
  if (isConstructor) {
388
- if (rootEle.constructor === clsOrName) {
387
+ if (rootEle.constructor === constructorOrTag) {
389
388
  return rootEle;
390
389
  }
391
390
  } else if (rootEle.tagName === tagName) {