@mantou/gem 1.5.1 → 1.5.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/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,66 @@ 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
+ // 添加到尾部,已存在时会删除老的项目
49
61
  add(value) {
50
- const item = { value };
51
- if (!this.firstItem) {
62
+ if (!__classPrivateFieldGet(this, _LinkedList_lastItem, "f")) {
52
63
  this.dispatchEvent(new CustomEvent('start'));
53
- this.firstItem = item;
54
64
  }
55
- if (this.lastItem) {
56
- this.lastItem.next = item;
57
- item.prev = this.lastItem;
65
+ const item = __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, value) || { value };
66
+ item.prev = __classPrivateFieldGet(this, _LinkedList_lastItem, "f");
67
+ if (item.prev) {
68
+ item.prev.next = item;
58
69
  }
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
- }
70
+ item.next = undefined;
71
+ __classPrivateFieldSet(this, _LinkedList_lastItem, item, "f");
72
+ if (!__classPrivateFieldGet(this, _LinkedList_firstItem, "f")) {
73
+ __classPrivateFieldSet(this, _LinkedList_firstItem, item, "f");
71
74
  }
72
- this.pool.set(value, item);
75
+ __classPrivateFieldGet(this, _LinkedList_map, "f").set(value, item);
73
76
  }
77
+ delete(value) {
78
+ const deleteItem = __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, value);
79
+ if (!__classPrivateFieldGet(this, _LinkedList_firstItem, "f")) {
80
+ this.dispatchEvent(new CustomEvent('end'));
81
+ }
82
+ return deleteItem;
83
+ }
84
+ // 获取头部元素
74
85
  get() {
75
- const firstItem = this.firstItem;
86
+ const firstItem = __classPrivateFieldGet(this, _LinkedList_firstItem, "f");
76
87
  if (!firstItem)
77
88
  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
- }
89
+ __classPrivateFieldGet(this, _LinkedList_instances, "m", _LinkedList_delete).call(this, firstItem.value);
84
90
  return firstItem.value;
85
91
  }
86
92
  }
93
+ _LinkedList_map = new WeakMap(), _LinkedList_firstItem = new WeakMap(), _LinkedList_lastItem = new WeakMap(), _LinkedList_instances = new WeakSet(), _LinkedList_delete = function _LinkedList_delete(value) {
94
+ const existItem = __classPrivateFieldGet(this, _LinkedList_map, "f").get(value);
95
+ if (existItem) {
96
+ if (existItem.prev) {
97
+ existItem.prev.next = existItem.next;
98
+ }
99
+ else {
100
+ __classPrivateFieldSet(this, _LinkedList_firstItem, existItem.next, "f");
101
+ }
102
+ if (existItem.next) {
103
+ existItem.next.prev = existItem.prev;
104
+ }
105
+ else {
106
+ __classPrivateFieldSet(this, _LinkedList_lastItem, existItem.prev, "f");
107
+ }
108
+ __classPrivateFieldGet(this, _LinkedList_map, "f").delete(value);
109
+ }
110
+ return existItem;
111
+ };
87
112
  export class PropProxyMap extends WeakMap {
88
113
  get(ele) {
89
114
  let proxy = super.get(ele);
@@ -94,13 +119,10 @@ export class PropProxyMap extends WeakMap {
94
119
  return proxy;
95
120
  }
96
121
  }
97
- export function isObject(value) {
98
- return typeof value === 'object';
99
- }
100
122
  export class QueryString extends URLSearchParams {
101
123
  constructor(param) {
102
124
  super(param);
103
- _QueryString_stringify.set(this, (value) => (isObject(value) ? JSON.stringify(value) : value));
125
+ _QueryString_stringify.set(this, (value) => (typeof value === 'string' ? value : JSON.stringify(value)));
104
126
  _QueryString_parse.set(this, (value) => {
105
127
  if (!value)
106
128
  return null;
@@ -111,10 +133,8 @@ export class QueryString extends URLSearchParams {
111
133
  return null;
112
134
  }
113
135
  });
114
- if (param instanceof QueryString) {
115
- return param;
116
- }
117
136
  }
137
+ // support `{ key: ObjectValue }`
118
138
  concat(param) {
119
139
  let query;
120
140
  if (typeof param === 'string') {
@@ -123,8 +143,8 @@ export class QueryString extends URLSearchParams {
123
143
  else {
124
144
  query = param;
125
145
  }
126
- Object.keys(query).forEach((key) => {
127
- this.append(key, query[key]);
146
+ Object.entries(query).forEach(([key, value]) => {
147
+ this.append(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value));
128
148
  });
129
149
  }
130
150
  setAny(key, value) {
@@ -133,7 +153,8 @@ export class QueryString extends URLSearchParams {
133
153
  value.forEach((e) => this.append(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, e)));
134
154
  }
135
155
  else {
136
- this.set(key, __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value));
156
+ const v = __classPrivateFieldGet(this, _QueryString_stringify, "f").call(this, value);
157
+ v ? this.set(key, v) : this.delete(key);
137
158
  }
138
159
  }
139
160
  getAny(key) {
@@ -278,7 +299,9 @@ export function removeItems(target, items) {
278
299
  export function styleMap(obj) {
279
300
  let styleString = '';
280
301
  for (const key in obj) {
281
- styleString += `${camelToKebabCase(key)}:${obj[key]};`;
302
+ if (obj[key]) {
303
+ styleString += `${camelToKebabCase(key)}:${obj[key]};`;
304
+ }
282
305
  }
283
306
  return styleString;
284
307
  }
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.1";
1
+ export declare const version = "1.5.5";
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.1';
2
+ export const version = '1.5.5';
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.1",
3
+ "version": "1.5.5",
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}
@@ -115,6 +115,8 @@ export class I18n<T = Record<string, Msg>> {
115
115
  }
116
116
  }
117
117
 
118
+ get(s: keyof T): string;
119
+ get(s: keyof T, ...rest: (((s: string) => TemplateResult) | string)[]): TemplateResult;
118
120
  get(s: keyof T, ...rest: (((s: string) => TemplateResult) | string)[]) {
119
121
  const currentLanguagePack = this.resources[this.currentLanguage] as any;
120
122
  const fallbackLanguagePack = this.resources[this.fallbackLanguage] as any;
@@ -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
 
@@ -164,7 +163,7 @@ export abstract class GemElement<T = Record<string, unknown>> extends HTMLElemen
164
163
  if (!this.attachInternals) {
165
164
  // https://bugs.webkit.org/show_bug.cgi?id=197960
166
165
  this.attachInternals = () => {
167
- return { states: getCustomStateSet() };
166
+ return { states: getCustomStateSet() } as any;
168
167
  };
169
168
  }
170
169
  this.#internals = this.attachInternals();
package/src/lib/utils.ts CHANGED
@@ -50,56 +50,70 @@ interface LinkedListItem<T> {
50
50
  next?: LinkedListItem<T>;
51
51
  }
52
52
  // work on nodejs
53
- export class LinkedList<T extends NonPrimitive> extends (globalThis.EventTarget || Object) {
53
+ export class LinkedList<T = any> extends (globalThis.EventTarget || Object) {
54
54
  addEventListener: <K extends keyof LinkedListEventMap>(
55
55
  type: K,
56
56
  listener: (this: LinkedList<T>, ev: LinkedListEventMap[K]) => any,
57
57
  options?: boolean | AddEventListenerOptions,
58
58
  ) => void;
59
59
 
60
- pool = new Map<T, LinkedListItem<T>>();
61
- firstItem?: LinkedListItem<T>;
62
- lastItem?: LinkedListItem<T>;
60
+ #map = new Map<T, LinkedListItem<T>>();
61
+ #firstItem?: LinkedListItem<T>;
62
+ #lastItem?: LinkedListItem<T>;
63
63
 
64
- // 添加已存在的项目时会删除老的项目
65
- add(value: T) {
66
- const item: LinkedListItem<T> = { value };
67
- if (!this.firstItem) {
68
- this.dispatchEvent(new CustomEvent('start'));
69
- this.firstItem = item;
70
- }
71
- if (this.lastItem) {
72
- this.lastItem.next = item;
73
- item.prev = this.lastItem;
74
- }
75
- this.lastItem = item;
76
-
77
- const existItem = this.pool.get(value);
64
+ #delete(value: T) {
65
+ const existItem = this.#map.get(value);
78
66
  if (existItem) {
79
67
  if (existItem.prev) {
80
68
  existItem.prev.next = existItem.next;
81
69
  } else {
82
- this.firstItem = existItem.next;
70
+ this.#firstItem = existItem.next;
83
71
  }
84
72
  if (existItem.next) {
85
73
  existItem.next.prev = existItem.prev;
74
+ } else {
75
+ this.#lastItem = existItem.prev;
86
76
  }
77
+ this.#map.delete(value);
87
78
  }
88
-
89
- this.pool.set(value, item);
79
+ return existItem;
90
80
  }
91
81
 
92
- get(): T | undefined {
93
- const firstItem = this.firstItem;
94
- if (!firstItem) return;
82
+ get size() {
83
+ return this.#map.size;
84
+ }
95
85
 
96
- this.pool.delete(firstItem.value);
86
+ // 添加到尾部,已存在时会删除老的项目
87
+ add(value: T) {
88
+ if (!this.#lastItem) {
89
+ this.dispatchEvent(new CustomEvent('start'));
90
+ }
91
+ const item: LinkedListItem<T> = this.#delete(value) || { value };
92
+ item.prev = this.#lastItem;
93
+ if (item.prev) {
94
+ item.prev.next = item;
95
+ }
96
+ item.next = undefined;
97
+ this.#lastItem = item;
98
+ if (!this.#firstItem) {
99
+ this.#firstItem = item;
100
+ }
101
+ this.#map.set(value, item);
102
+ }
97
103
 
98
- this.firstItem = firstItem.next;
99
- if (!this.firstItem) {
100
- this.lastItem = undefined;
104
+ delete(value: T) {
105
+ const deleteItem = this.#delete(value);
106
+ if (!this.#firstItem) {
101
107
  this.dispatchEvent(new CustomEvent('end'));
102
108
  }
109
+ return deleteItem;
110
+ }
111
+
112
+ // 获取头部元素
113
+ get(): T | undefined {
114
+ const firstItem = this.#firstItem;
115
+ if (!firstItem) return;
116
+ this.#delete(firstItem.value);
103
117
  return firstItem.value;
104
118
  }
105
119
  }
@@ -115,10 +129,6 @@ export class PropProxyMap<T extends NonPrimitive, V = unknown> extends WeakMap<T
115
129
  }
116
130
  }
117
131
 
118
- export function isObject(value: any) {
119
- return typeof value === 'object';
120
- }
121
-
122
132
  declare global {
123
133
  interface URLSearchParams {
124
134
  entries(): Iterable<readonly [string | number | symbol, any]>;
@@ -127,11 +137,9 @@ declare global {
127
137
  export class QueryString extends URLSearchParams {
128
138
  constructor(param?: any) {
129
139
  super(param);
130
- if (param instanceof QueryString) {
131
- return param;
132
- }
133
140
  }
134
141
 
142
+ // support `{ key: ObjectValue }`
135
143
  concat(param: any) {
136
144
  let query: any;
137
145
  if (typeof param === 'string') {
@@ -139,19 +147,20 @@ export class QueryString extends URLSearchParams {
139
147
  } else {
140
148
  query = param;
141
149
  }
142
- Object.keys(query).forEach((key) => {
143
- this.append(key, query[key]);
150
+ Object.entries(query).forEach(([key, value]) => {
151
+ this.append(key, this.#stringify(value));
144
152
  });
145
153
  }
146
154
 
147
- #stringify = (value: any) => (isObject(value) ? JSON.stringify(value) : value);
155
+ #stringify = (value: any) => (typeof value === 'string' ? value : JSON.stringify(value));
148
156
 
149
157
  setAny(key: string, value: any) {
150
158
  if (Array.isArray(value)) {
151
159
  this.delete(key);
152
160
  value.forEach((e) => this.append(key, this.#stringify(e)));
153
161
  } else {
154
- this.set(key, this.#stringify(value));
162
+ const v = this.#stringify(value);
163
+ v ? this.set(key, v) : this.delete(key);
155
164
  }
156
165
  }
157
166
 
@@ -220,12 +229,12 @@ declare global {
220
229
  }
221
230
  }
222
231
 
223
- type StyledType = 'id' | 'class' | 'keyframes';
224
- interface StyledValueObject {
232
+ export type StyledType = 'id' | 'class' | 'keyframes';
233
+ export interface StyledValueObject {
225
234
  styledContent: string;
226
235
  type: StyledType;
227
236
  }
228
- interface StyledKeyValuePair {
237
+ export interface StyledKeyValuePair {
229
238
  [key: string]: StyledValueObject;
230
239
  }
231
240
 
@@ -350,7 +359,9 @@ export function removeItems(target: any[], items: any[]) {
350
359
  export function styleMap(obj: Partial<CSSStyleDeclaration>) {
351
360
  let styleString = '';
352
361
  for (const key in obj) {
353
- styleString += `${camelToKebabCase(key)}:${obj[key]};`;
362
+ if (obj[key]) {
363
+ styleString += `${camelToKebabCase(key)}:${obj[key]};`;
364
+ }
354
365
  }
355
366
  return styleString;
356
367
  }
@@ -1,2 +1,2 @@
1
1
  // Do not modify manually
2
- export const version = '1.5.1';
2
+ export const version = '1.5.5';
@@ -22,17 +22,20 @@ describe('utils 测试', () => {
22
22
  const linkedList = new LinkedList<() => void>();
23
23
  let countAtStart = 0;
24
24
  let countAtPause = 0;
25
- linkedList.addEventListener('start', () => (countAtStart = linkedList.pool.size));
26
- linkedList.addEventListener('end', () => (countAtPause = linkedList.pool.size));
27
- const fun1 = () => ({});
28
- const fun2 = () => ({});
25
+ linkedList.addEventListener('start', () => (countAtStart = linkedList.size));
26
+ linkedList.addEventListener('end', () => (countAtPause = linkedList.size));
27
+ const fun1 = () => 1;
28
+ const fun2 = () => 2;
29
29
  linkedList.add(fun1);
30
30
  linkedList.add(fun2);
31
+ linkedList.delete(fun2);
32
+ expect(linkedList.size).to.equal(1);
33
+ linkedList.add(fun2);
31
34
  linkedList.add(fun1);
32
- expect(linkedList.pool.size).to.equal(2);
35
+ expect(linkedList.size).to.equal(2);
33
36
  expect(linkedList.get()).to.equal(fun2);
34
37
  expect(linkedList.get()).to.equal(fun1);
35
- expect(linkedList.pool.size).to.equal(0);
38
+ expect(linkedList.size).to.equal(0);
36
39
  expect(linkedList.get()).to.equal(undefined);
37
40
  expect(countAtStart).to.equal(0);
38
41
  expect(countAtPause).to.equal(0);