@mantou/gem 1.6.9 → 1.6.10

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.
Files changed (98) hide show
  1. package/dist/gem.es.js +170 -182
  2. package/dist/gem.umd.js +23 -23
  3. package/elements/{dialog-base.d.ts → base/dialog.d.ts} +3 -3
  4. package/elements/base/dialog.d.ts.map +1 -0
  5. package/elements/{dialog-base.js → base/dialog.js} +24 -24
  6. package/elements/base/dialog.js.map +1 -0
  7. package/elements/base/gesture.d.ts +66 -0
  8. package/elements/base/gesture.d.ts.map +1 -0
  9. package/elements/base/gesture.js +214 -0
  10. package/elements/base/gesture.js.map +1 -0
  11. package/elements/base/link.d.ts +44 -0
  12. package/elements/base/link.d.ts.map +1 -0
  13. package/elements/base/link.js +206 -0
  14. package/elements/base/link.js.map +1 -0
  15. package/elements/{modal-base.d.ts → base/modal-factory.d.ts} +17 -8
  16. package/elements/base/modal-factory.d.ts.map +1 -0
  17. package/elements/{modal-base.js → base/modal-factory.js} +4 -4
  18. package/elements/base/modal-factory.js.map +1 -0
  19. package/elements/base/reflect.d.ts +6 -0
  20. package/elements/base/reflect.d.ts.map +1 -0
  21. package/elements/base/reflect.js +33 -0
  22. package/elements/base/reflect.js.map +1 -0
  23. package/elements/base/route.d.ts +78 -0
  24. package/elements/base/route.d.ts.map +1 -0
  25. package/elements/base/route.js +220 -0
  26. package/elements/base/route.js.map +1 -0
  27. package/elements/base/title.d.ts +30 -0
  28. package/elements/base/title.d.ts.map +1 -0
  29. package/elements/base/title.js +74 -0
  30. package/elements/base/title.js.map +1 -0
  31. package/elements/base/unsafe.d.ts +14 -0
  32. package/elements/base/unsafe.d.ts.map +1 -0
  33. package/elements/base/unsafe.js +42 -0
  34. package/elements/base/unsafe.js.map +1 -0
  35. package/elements/base/use.d.ts +19 -0
  36. package/elements/base/use.d.ts.map +1 -0
  37. package/elements/base/use.js +70 -0
  38. package/elements/base/use.js.map +1 -0
  39. package/elements/gesture.d.ts +1 -67
  40. package/elements/gesture.d.ts.map +1 -1
  41. package/elements/gesture.js +3 -219
  42. package/elements/gesture.js.map +1 -1
  43. package/elements/link.d.ts +1 -45
  44. package/elements/link.d.ts.map +1 -1
  45. package/elements/link.js +4 -208
  46. package/elements/link.js.map +1 -1
  47. package/elements/reflect.d.ts +1 -8
  48. package/elements/reflect.d.ts.map +1 -1
  49. package/elements/reflect.js +3 -39
  50. package/elements/reflect.js.map +1 -1
  51. package/elements/route.d.ts +1 -81
  52. package/elements/route.d.ts.map +1 -1
  53. package/elements/route.js +4 -228
  54. package/elements/route.js.map +1 -1
  55. package/elements/title.d.ts +1 -30
  56. package/elements/title.d.ts.map +1 -1
  57. package/elements/title.js +3 -75
  58. package/elements/title.js.map +1 -1
  59. package/elements/unsafe.d.ts +1 -14
  60. package/elements/unsafe.d.ts.map +1 -1
  61. package/elements/unsafe.js +3 -46
  62. package/elements/unsafe.js.map +1 -1
  63. package/elements/use.d.ts +1 -19
  64. package/elements/use.d.ts.map +1 -1
  65. package/elements/use.js +3 -74
  66. package/elements/use.js.map +1 -1
  67. package/lib/history.d.ts +28 -16
  68. package/lib/history.d.ts.map +1 -1
  69. package/lib/history.js +166 -168
  70. package/lib/history.js.map +1 -1
  71. package/lib/utils.d.ts.map +1 -1
  72. package/lib/utils.js +2 -1
  73. package/lib/utils.js.map +1 -1
  74. package/package.json +2 -2
  75. package/src/dist.ts +5 -2
  76. package/src/elements/{dialog-base.ts → base/dialog.ts} +4 -4
  77. package/src/elements/base/gesture.ts +256 -0
  78. package/src/elements/base/link.ts +178 -0
  79. package/src/elements/{modal-base.ts → base/modal-factory.ts} +3 -3
  80. package/src/elements/base/reflect.ts +29 -0
  81. package/src/elements/base/route.ts +244 -0
  82. package/src/elements/base/title.ts +68 -0
  83. package/src/elements/base/unsafe.ts +37 -0
  84. package/src/elements/base/use.ts +57 -0
  85. package/src/elements/gesture.ts +3 -257
  86. package/src/elements/link.ts +4 -179
  87. package/src/elements/reflect.ts +3 -31
  88. package/src/elements/route.ts +4 -248
  89. package/src/elements/title.ts +3 -68
  90. package/src/elements/unsafe.ts +3 -37
  91. package/src/elements/use.ts +3 -57
  92. package/src/lib/history.ts +182 -194
  93. package/src/lib/utils.ts +2 -1
  94. package/src/test/history.test.ts +15 -10
  95. package/elements/dialog-base.d.ts.map +0 -1
  96. package/elements/dialog-base.js.map +0 -1
  97. package/elements/modal-base.d.ts.map +0 -1
  98. package/elements/modal-base.js.map +0 -1
@@ -1,82 +1,2 @@
1
- import { GemElement, TemplateResult } from '../lib/element';
2
- import { Emitter } from '../lib/decorators';
3
- import { Store } from '../lib/store';
4
- import { UpdateHistoryParams } from '../lib/history';
5
- import { QueryString } from '../lib/utils';
6
- declare type Params = Record<string, string>;
7
- export declare function matchPath(pattern: string, path: string): Params | null;
8
- export interface RouteItem<T = unknown> {
9
- pattern: string;
10
- redirect?: string;
11
- content?: TemplateResult;
12
- getContent?: (params: Params) => TemplateResult | Promise<TemplateResult>;
13
- title?: string;
14
- data?: T;
15
- }
16
- declare type RoutesObject = Record<string, RouteItem>;
17
- export interface RouteOptions extends Omit<UpdateHistoryParams, 'path'> {
18
- params?: Params;
19
- }
20
- export declare function createPath(route: RouteItem, options?: RouteOptions): string;
21
- export declare function createHistoryParams(route: RouteItem, options?: RouteOptions): UpdateHistoryParams;
22
- interface ConstructorOptions {
23
- isLight?: boolean;
24
- routes?: RouteItem[] | RoutesObject;
25
- }
26
- declare type State = {
27
- content?: TemplateResult;
28
- };
29
- /**
30
- * @customElement gem-route
31
- * @attr inert 暂停路由更新
32
- * @fires routechange
33
- * @fires error
34
- * @fires loading
35
- */
36
- export declare class GemRouteElement extends GemElement<State> {
37
- #private;
38
- routes?: RouteItem[] | RoutesObject;
39
- /**
40
- * @example
41
- * const locationStore = GemRouteElement.createLocationStore()
42
- * html`<gem-route .locationStore=${locationStore}>`
43
- */
44
- locationStore?: Store<{
45
- path: string;
46
- params: Params;
47
- query: QueryString;
48
- data?: any;
49
- }>;
50
- key: any;
51
- routechange: Emitter<RouteItem | null>;
52
- loading: Emitter<RouteItem>;
53
- error: Emitter<any>;
54
- currentRoute: RouteItem | null;
55
- currentParams: Params;
56
- static createLocationStore: () => Store<{
57
- path: string;
58
- query: (string | QueryString | undefined) & QueryString;
59
- data: any;
60
- params: Record<string, string>;
61
- }>;
62
- static findRoute: (target: RoutesObject | RouteItem<unknown>[] | undefined, path: string) => {
63
- route: RouteItem<unknown>;
64
- params: Params;
65
- } | {
66
- route: RouteItem<unknown> | null;
67
- params?: undefined;
68
- };
69
- constructor({ isLight, routes }?: ConstructorOptions);
70
- state: State;
71
- mounted(): void;
72
- shouldUpdate(): boolean;
73
- render(): TemplateResult;
74
- }
75
- /**
76
- * @customElement gem-light-route
77
- */
78
- export declare class GemLightRouteElement extends GemRouteElement {
79
- constructor(options?: ConstructorOptions);
80
- }
81
- export {};
1
+ export * from './base/route';
82
2
  //# sourceMappingURL=route.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAClE,OAAO,EAAkD,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAC5F,OAAO,EAA4B,KAAK,EAAE,MAAM,cAAc,CAAC;AAC/D,OAAO,EAAuB,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1E,OAAO,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAyB3C,aAAK,MAAM,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAIrC,wBAAgB,SAAS,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,iBAWtD;AAED,MAAM,WAAW,SAAS,CAAC,CAAC,GAAG,OAAO;IAKpC,OAAO,EAAE,MAAM,CAAC;IAChB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,cAAc,CAAC;IACzB,UAAU,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,KAAK,cAAc,GAAG,OAAO,CAAC,cAAc,CAAC,CAAC;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,IAAI,CAAC,EAAE,CAAC,CAAC;CACV;AAED,aAAK,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;AAG9C,MAAM,WAAW,YAAa,SAAQ,IAAI,CAAC,mBAAmB,EAAE,MAAM,CAAC;IACrE,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAID,wBAAgB,UAAU,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,UASlE;AAED,wBAAgB,mBAAmB,CAAC,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,EAAE,YAAY,GAAG,mBAAmB,CAMjG;AAED,UAAU,kBAAkB;IAC1B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;CACrC;AAED,aAAK,KAAK,GAAG;IACX,OAAO,CAAC,EAAE,cAAc,CAAC;CAC1B,CAAC;AAEF;;;;;;GAMG;AACH,qBAEa,eAAgB,SAAQ,UAAU,CAAC,KAAK,CAAC;;IAC1C,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,YAAY,CAAC;IAC9C;;;;OAIG;IACO,aAAa,CAAC,EAAE,KAAK,CAAC;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,WAAW,CAAC;QAAC,IAAI,CAAC,EAAE,GAAG,CAAA;KAAE,CAAC,CAAC;IACxF,GAAG,EAAE,GAAG,CAAC;IACV,WAAW,EAAE,OAAO,CAAC,SAAS,GAAG,IAAI,CAAC,CAAC;IACvC,OAAO,EAAE,OAAO,CAAC,SAAS,CAAC,CAAC;IAC5B,KAAK,EAAE,OAAO,CAAC,GAAG,CAAC,CAAC;IAE7B,YAAY,EAAE,SAAS,GAAG,IAAI,CAAC;IAE/B,aAAa,EAAE,MAAM,CAAM;IAI3B,MAAM,CAAC,mBAAmB;;;;;OAGxB;IAEF,MAAM,CAAC,SAAS,kEAAmD,MAAM;;;;;;MAmBvE;gBAEU,EAAE,OAAO,EAAE,MAAM,EAAE,GAAE,kBAAuB;IAKxD,KAAK,EAAE,KAAK,CAEV;IAyBF,OAAO;IAqCP,YAAY;IAKZ,MAAM;CAcP;AAED;;GAEG;AACH,qBACa,oBAAqB,SAAQ,eAAe;gBAC3C,OAAO,GAAE,kBAAuB;CAG7C"}
1
+ {"version":3,"file":"route.d.ts","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC"}
package/elements/route.js CHANGED
@@ -1,229 +1,5 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (receiver, state, value, kind, f) {
8
- if (kind === "m") throw new TypeError("Private method is not writable");
9
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a setter");
10
- 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");
11
- return (kind === "a" ? f.call(receiver, value) : f ? f.value = value : state.set(receiver, value)), value;
12
- };
13
- var __classPrivateFieldGet = (this && this.__classPrivateFieldGet) || function (receiver, state, kind, f) {
14
- if (kind === "a" && !f) throw new TypeError("Private accessor was defined without a getter");
15
- 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");
16
- return kind === "m" ? f : kind === "a" ? f.call(receiver) : f ? f.value : state.get(receiver);
17
- };
18
- var _GemRouteElement_lastLoader, _GemRouteElement_updateLocationStore, _GemRouteElement_setContent;
19
- var GemRouteElement_1;
20
- import { GemElement, html } from '../lib/element';
21
- import { property, customElement, connectStore, emitter } from '../lib/decorators';
22
- import { createStore, updateStore } from '../lib/store';
23
- import { titleStore, history } from '../lib/history';
24
- // TODO: use `URLPattern`
25
- class ParamsRegExp extends RegExp {
26
- constructor(pattern) {
27
- const namePosition = {};
28
- let i = 0;
29
- super(`^${pattern
30
- .replace(/:([^/$]+)/g, (_m, name) => {
31
- namePosition[name] = i++;
32
- return `([^/]+)`;
33
- })
34
- .replace('*', '.*')}$`, 'i');
35
- this.namePosition = namePosition;
36
- }
37
- }
38
- // `/a/b/:c/:d` `/a/b/1/2`
39
- // 匹配成功时返回 params
40
- export function matchPath(pattern, path) {
41
- const reg = new ParamsRegExp(pattern);
42
- const matchResult = path.match(reg) || `${path}/`.match(reg);
43
- if (!matchResult)
44
- return null;
45
- const params = {};
46
- if (matchResult) {
47
- Object.keys(reg.namePosition).forEach((name) => {
48
- params[name] = matchResult[reg.namePosition[name] + 1];
49
- });
50
- }
51
- return params;
52
- }
53
- // 从路由创建路径
54
- // 不包含 basePath
55
- export function createPath(route, options) {
56
- let path = route.pattern;
57
- const params = options === null || options === void 0 ? void 0 : options.params;
58
- if (params) {
59
- Object.keys(params).forEach((key) => {
60
- path = path.replace(new RegExp(`:${key}`, 'g'), params[key]);
61
- });
62
- }
63
- return path;
64
- }
65
- export function createHistoryParams(route, options) {
66
- const path = createPath(route, options);
67
- return {
68
- path,
69
- ...options,
70
- };
71
- }
72
- /**
73
- * @customElement gem-route
74
- * @attr inert 暂停路由更新
75
- * @fires routechange
76
- * @fires error
77
- * @fires loading
78
- */
79
- let GemRouteElement = GemRouteElement_1 = class GemRouteElement extends GemElement {
80
- constructor({ isLight, routes } = {}) {
81
- super({ isLight });
82
- // 当前匹配的路由的 params
83
- this.currentParams = {};
84
- _GemRouteElement_lastLoader.set(this, void 0);
85
- this.state = {
86
- content: undefined,
87
- };
88
- _GemRouteElement_updateLocationStore.set(this, () => {
89
- if (this.locationStore) {
90
- const { path, query, data } = history.getParams();
91
- updateStore(this.locationStore, {
92
- path,
93
- params: this.currentParams,
94
- query,
95
- data,
96
- });
97
- }
98
- });
99
- _GemRouteElement_setContent.set(this, (route, params, content) => {
100
- __classPrivateFieldSet(this, _GemRouteElement_lastLoader, undefined, "f");
101
- this.currentRoute = route;
102
- this.currentParams = params;
103
- this.setState({ content });
104
- this.routechange(this.currentRoute);
105
- const title = route === null || route === void 0 ? void 0 : route.title;
106
- if (title)
107
- updateStore(titleStore, { title });
108
- __classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
109
- });
110
- this.routes = routes;
111
- }
112
- mounted() {
113
- this.effect(([key, path], old) => {
114
- // 只有查询参数改变
115
- if (old && key === old[0] && path === old[1]) {
116
- __classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
117
- return;
118
- }
119
- const { route, params = {} } = GemRouteElement_1.findRoute(this.routes, path);
120
- const { redirect, content, getContent } = route || {};
121
- if (redirect) {
122
- history.replace({ path: redirect });
123
- return;
124
- }
125
- const contentOrLoader = content || (getContent === null || getContent === void 0 ? void 0 : getContent(params));
126
- if (contentOrLoader instanceof Promise) {
127
- this.loading(route);
128
- __classPrivateFieldSet(this, _GemRouteElement_lastLoader, contentOrLoader, "f");
129
- const isSomeLoader = () => __classPrivateFieldGet(this, _GemRouteElement_lastLoader, "f") === contentOrLoader;
130
- contentOrLoader
131
- .then((content) => {
132
- if (isSomeLoader())
133
- __classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, content);
134
- })
135
- .catch((err) => {
136
- if (isSomeLoader())
137
- this.error(err);
138
- });
139
- return;
140
- }
141
- __classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, contentOrLoader);
142
- }, () => {
143
- const { path } = history.getParams();
144
- return [this.key, path, location.search];
145
- });
146
- }
147
- shouldUpdate() {
148
- if (this.inert)
149
- return false;
150
- return true;
151
- }
152
- render() {
153
- const { content } = this.state;
154
- if (!this.shadowRoot)
155
- return html `${content}`;
156
- return html `
157
- <style>
158
- :host,
159
- :not(:defined) {
160
- display: contents;
161
- }
162
- </style>
163
- ${content !== null && content !== void 0 ? content : html `<slot></slot>`}
164
- `;
165
- }
166
- };
167
- _GemRouteElement_lastLoader = new WeakMap(), _GemRouteElement_updateLocationStore = new WeakMap(), _GemRouteElement_setContent = new WeakMap();
168
- GemRouteElement.createLocationStore = () => {
169
- const { path, query, data } = history.getParams();
170
- return createStore({ path, query, data, params: {} });
171
- };
172
- GemRouteElement.findRoute = (target = [], path) => {
173
- let defaultRoute = null;
174
- let routes;
175
- if (target instanceof Array) {
176
- routes = target;
177
- }
178
- else {
179
- routes = Object.values(target);
180
- }
181
- for (const route of routes) {
182
- if ('*' === route.pattern) {
183
- defaultRoute = route;
184
- }
185
- else {
186
- const params = matchPath(route.pattern, path);
187
- if (params) {
188
- return { route, params };
189
- }
190
- }
191
- }
192
- return { route: defaultRoute };
193
- };
194
- __decorate([
195
- property
196
- ], GemRouteElement.prototype, "routes", void 0);
197
- __decorate([
198
- property
199
- ], GemRouteElement.prototype, "locationStore", void 0);
200
- __decorate([
201
- property
202
- ], GemRouteElement.prototype, "key", void 0);
203
- __decorate([
204
- emitter
205
- ], GemRouteElement.prototype, "routechange", void 0);
206
- __decorate([
207
- emitter
208
- ], GemRouteElement.prototype, "loading", void 0);
209
- __decorate([
210
- emitter
211
- ], GemRouteElement.prototype, "error", void 0);
212
- GemRouteElement = GemRouteElement_1 = __decorate([
213
- connectStore(history.store),
214
- customElement('gem-route')
215
- ], GemRouteElement);
216
- export { GemRouteElement };
217
- /**
218
- * @customElement gem-light-route
219
- */
220
- let GemLightRouteElement = class GemLightRouteElement extends GemRouteElement {
221
- constructor(options = {}) {
222
- super({ ...options, isLight: true });
223
- }
224
- };
225
- GemLightRouteElement = __decorate([
226
- customElement('gem-light-route')
227
- ], GemLightRouteElement);
228
- export { GemLightRouteElement };
1
+ import { GemRouteElement, GemLightRouteElement } from './base/route';
2
+ export * from './base/route';
3
+ customElements.define('gem-route', GemRouteElement);
4
+ customElements.define('gem-light-route', GemLightRouteElement);
229
5
  //# sourceMappingURL=route.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"route.js","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route.js","sourceRoot":"","sources":["../src/elements/route.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,oBAAoB,EAAE,MAAM,cAAc,CAAC;AAErE,cAAc,cAAc,CAAC;AAE7B,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC;AACpD,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC"}
@@ -1,31 +1,2 @@
1
- /**
2
- * 标题显示在:
3
- *
4
- * - 桌面端 Tab 的 title
5
- * - 移动端 Appbar 的 title
6
- *
7
- * 修改标题:
8
- *
9
- * - `<gem-route>` 匹配路由时自动设置 `route.title`
10
- * - `<gem-link>` 的 `doc-title` 属性和 `route.title`
11
- * - 修改路径时,`history` 默认设置 `title` 为空
12
- * - 数据获取后,手动调用 `Title.setTitle`
13
- * - `<gem-title>` 作为默认值设置
14
- */
15
- import { GemElement } from '../lib/element';
16
- /**
17
- * 允许声明式设置 `document.title`
18
- * @customElement gem-title
19
- * @attr suffix
20
- */
21
- export declare class GemTitleElement extends GemElement {
22
- static title: string;
23
- static defaultTitle: string;
24
- static defaultSuffix: string;
25
- static setTitle(title: string): void;
26
- static updateTitle(str?: string, suffix?: string): void;
27
- suffix: string;
28
- constructor();
29
- render(): import("lit-html/lib/template-result").TemplateResult;
30
- }
1
+ export * from './base/title';
31
2
  //# sourceMappingURL=title.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAEH,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAKlD;;;;GAIG;AACH,qBAEa,eAAgB,SAAQ,UAAU;IAE7C,MAAM,CAAC,KAAK,SAAkB;IAC9B,MAAM,CAAC,YAAY,SAAkB;IACrC,MAAM,CAAC,aAAa,SAA0B;IAE9C,MAAM,CAAC,QAAQ,CAAC,KAAK,EAAE,MAAM;IAI7B,MAAM,CAAC,WAAW,CAAC,GAAG,SAAK,EAAE,MAAM,SAAK;IAc7B,MAAM,EAAE,MAAM,CAAC;;IAO1B,MAAM;CASP"}
1
+ {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAEA,cAAc,cAAc,CAAC"}
package/elements/title.js CHANGED
@@ -1,76 +1,4 @@
1
- /**
2
- * 标题显示在:
3
- *
4
- * - 桌面端 Tab 的 title
5
- * - 移动端 Appbar 的 title
6
- *
7
- * 修改标题:
8
- *
9
- * - `<gem-route>` 匹配路由时自动设置 `route.title`
10
- * - `<gem-link>` 的 `doc-title` 属性和 `route.title`
11
- * - 修改路径时,`history` 默认设置 `title` 为空
12
- * - 数据获取后,手动调用 `Title.setTitle`
13
- * - `<gem-title>` 作为默认值设置
14
- */
15
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
16
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
17
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
18
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
19
- return c > 3 && r && Object.defineProperty(target, key, r), r;
20
- };
21
- var GemTitleElement_1;
22
- import { GemElement, html } from '../lib/element';
23
- import { attribute, customElement, connectStore } from '../lib/decorators';
24
- import { updateStore, connect } from '../lib/store';
25
- import { titleStore } from '../lib/history';
26
- /**
27
- * 允许声明式设置 `document.title`
28
- * @customElement gem-title
29
- * @attr suffix
30
- */
31
- let GemTitleElement = GemTitleElement_1 = class GemTitleElement extends GemElement {
32
- constructor() {
33
- super();
34
- new MutationObserver(() => this.update()).observe(this, { childList: true, characterData: true, subtree: true });
35
- }
36
- static setTitle(title) {
37
- updateStore(titleStore, { title });
38
- }
39
- static updateTitle(str = '', suffix = '') {
40
- const { title } = titleStore;
41
- if (title && title !== GemTitleElement_1.defaultTitle) {
42
- GemTitleElement_1.title = title;
43
- document.title = GemTitleElement_1.title + suffix;
44
- }
45
- else if (str) {
46
- GemTitleElement_1.title = str;
47
- document.title = GemTitleElement_1.title + suffix;
48
- }
49
- else {
50
- GemTitleElement_1.title = GemTitleElement_1.defaultTitle;
51
- document.title = GemTitleElement_1.title;
52
- }
53
- }
54
- render() {
55
- // 多个 <gem-title> 时,最终 document.title 按执行顺序决定
56
- GemTitleElement_1.updateTitle(this.textContent || '', this.suffix);
57
- if (this.hidden) {
58
- return html ``;
59
- }
60
- return html `${GemTitleElement_1.title}`;
61
- }
62
- };
63
- // 没有后缀的标题
64
- GemTitleElement.title = document.title;
65
- GemTitleElement.defaultTitle = document.title;
66
- GemTitleElement.defaultSuffix = ` - ${document.title}`;
67
- __decorate([
68
- attribute
69
- ], GemTitleElement.prototype, "suffix", void 0);
70
- GemTitleElement = GemTitleElement_1 = __decorate([
71
- connectStore(titleStore),
72
- customElement('gem-title')
73
- ], GemTitleElement);
74
- export { GemTitleElement };
75
- connect(titleStore, GemTitleElement.updateTitle);
1
+ import { GemTitleElement } from './base/title';
2
+ export * from './base/title';
3
+ customElements.define('gem-title', GemTitleElement);
76
4
  //# sourceMappingURL=title.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"title.js","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;;;;;;;;AAEH,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,WAAW,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AACpD,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAE5C;;;;GAIG;AAGH,IAAa,eAAe,uBAA5B,MAAa,eAAgB,SAAQ,UAAU;IA0B7C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,gBAAgB,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,OAAO,CAAC,IAAI,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,aAAa,EAAE,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;IACnH,CAAC;IAvBD,MAAM,CAAC,QAAQ,CAAC,KAAa;QAC3B,WAAW,CAAC,UAAU,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;IACrC,CAAC;IAED,MAAM,CAAC,WAAW,CAAC,GAAG,GAAG,EAAE,EAAE,MAAM,GAAG,EAAE;QACtC,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC;QAC7B,IAAI,KAAK,IAAI,KAAK,KAAK,iBAAe,CAAC,YAAY,EAAE;YACnD,iBAAe,CAAC,KAAK,GAAG,KAAK,CAAC;YAC9B,QAAQ,CAAC,KAAK,GAAG,iBAAe,CAAC,KAAK,GAAG,MAAM,CAAC;SACjD;aAAM,IAAI,GAAG,EAAE;YACd,iBAAe,CAAC,KAAK,GAAG,GAAG,CAAC;YAC5B,QAAQ,CAAC,KAAK,GAAG,iBAAe,CAAC,KAAK,GAAG,MAAM,CAAC;SACjD;aAAM;YACL,iBAAe,CAAC,KAAK,GAAG,iBAAe,CAAC,YAAY,CAAC;YACrD,QAAQ,CAAC,KAAK,GAAG,iBAAe,CAAC,KAAK,CAAC;SACxC;IACH,CAAC;IASD,MAAM;QACJ,6CAA6C;QAC7C,iBAAe,CAAC,WAAW,CAAC,IAAI,CAAC,WAAW,IAAI,EAAE,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAEjE,IAAI,IAAI,CAAC,MAAM,EAAE;YACf,OAAO,IAAI,CAAA,EAAE,CAAC;SACf;QACD,OAAO,IAAI,CAAA,GAAG,iBAAe,CAAC,KAAK,EAAE,CAAC;IACxC,CAAC;CACF,CAAA;AAvCC,UAAU;AACH,qBAAK,GAAG,QAAQ,CAAC,KAAK,CAAC;AACvB,4BAAY,GAAG,QAAQ,CAAC,KAAK,CAAC;AAC9B,6BAAa,GAAG,MAAM,QAAQ,CAAC,KAAK,EAAE,CAAC;AAoBnC;IAAV,SAAS;+CAAgB;AAxBf,eAAe;IAF3B,YAAY,CAAC,UAAU,CAAC;IACxB,aAAa,CAAC,WAAW,CAAC;GACd,eAAe,CAwC3B;SAxCY,eAAe;AA0C5B,OAAO,CAAC,UAAU,EAAE,eAAe,CAAC,WAAW,CAAC,CAAC"}
1
+ {"version":3,"file":"title.js","sourceRoot":"","sources":["../src/elements/title.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,eAAe,EAAE,MAAM,cAAc,CAAC;AAE/C,cAAc,cAAc,CAAC;AAE7B,cAAc,CAAC,MAAM,CAAC,WAAW,EAAE,eAAe,CAAC,CAAC"}
@@ -1,15 +1,2 @@
1
- import { GemElement } from '../lib/element';
2
- /**
3
- * 直接写会被解释成固定属性,需要使用变量赋值
4
- *
5
- * @customElement gem-unsafe
6
- * @attr content
7
- * @attr contentcss
8
- */
9
- export declare class GemUnsafeElement extends GemElement {
10
- content: string;
11
- contentcss: string;
12
- constructor();
13
- render(): undefined;
14
- }
1
+ export * from './base/unsafe';
15
2
  //# sourceMappingURL=unsafe.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAG5C;;;;;;GAMG;AACH,qBACa,gBAAiB,SAAQ,UAAU;IACnC,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;;IAsB9B,MAAM;CAGP"}
1
+ {"version":3,"file":"unsafe.d.ts","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"AAEA,cAAc,eAAe,CAAC"}
@@ -1,47 +1,4 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { GemElement } from '../lib/element';
8
- import { attribute, customElement } from '../lib/decorators';
9
- /**
10
- * 直接写会被解释成固定属性,需要使用变量赋值
11
- *
12
- * @customElement gem-unsafe
13
- * @attr content
14
- * @attr contentcss
15
- */
16
- let GemUnsafeElement = class GemUnsafeElement extends GemElement {
17
- constructor() {
18
- super();
19
- this.effect(() => {
20
- if (this.shadowRoot) {
21
- this.shadowRoot.innerHTML = `
22
- <style>
23
- :host {
24
- display: contents;
25
- }
26
- ${this.contentcss}
27
- </style>
28
- ${this.content}
29
- `;
30
- }
31
- }, () => [this.content, this.contentcss]);
32
- }
33
- render() {
34
- return undefined;
35
- }
36
- };
37
- __decorate([
38
- attribute
39
- ], GemUnsafeElement.prototype, "content", void 0);
40
- __decorate([
41
- attribute
42
- ], GemUnsafeElement.prototype, "contentcss", void 0);
43
- GemUnsafeElement = __decorate([
44
- customElement('gem-unsafe')
45
- ], GemUnsafeElement);
46
- export { GemUnsafeElement };
1
+ import { GemUnsafeElement } from './base/unsafe';
2
+ export * from './base/unsafe';
3
+ customElements.define('gem-unsafe', GemUnsafeElement);
47
4
  //# sourceMappingURL=unsafe.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"unsafe.js","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,SAAS,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE7D;;;;;;GAMG;AAEH,IAAa,gBAAgB,GAA7B,MAAa,gBAAiB,SAAQ,UAAU;IAI9C;QACE,KAAK,EAAE,CAAC;QACR,IAAI,CAAC,MAAM,CACT,GAAG,EAAE;YACH,IAAI,IAAI,CAAC,UAAU,EAAE;gBACnB,IAAI,CAAC,UAAU,CAAC,SAAS,GAAG;;;;;gBAKtB,IAAI,CAAC,UAAU;;cAEjB,IAAI,CAAC,OAAO;WACf,CAAC;aACH;QACH,CAAC,EACD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,OAAO,EAAE,IAAI,CAAC,UAAU,CAAC,CACtC,CAAC;IACJ,CAAC;IAED,MAAM;QACJ,OAAO,SAAS,CAAC;IACnB,CAAC;CACF,CAAA;AA1BY;IAAV,SAAS;iDAAiB;AAChB;IAAV,SAAS;oDAAoB;AAFnB,gBAAgB;IAD5B,aAAa,CAAC,YAAY,CAAC;GACf,gBAAgB,CA2B5B;SA3BY,gBAAgB"}
1
+ {"version":3,"file":"unsafe.js","sourceRoot":"","sources":["../src/elements/unsafe.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,gBAAgB,EAAE,MAAM,eAAe,CAAC;AAEjD,cAAc,eAAe,CAAC;AAE9B,cAAc,CAAC,MAAM,CAAC,YAAY,EAAE,gBAAgB,CAAC,CAAC"}
package/elements/use.d.ts CHANGED
@@ -1,20 +1,2 @@
1
- import { GemElement } from '../lib/element';
2
- /**
3
- * svg 中的 `<use>` 不能穿透 ShadowDOM,
4
- * 此元素用来模拟 `<use>`,
5
- * 由于是复制元素,所以不能像 `<use>` 一样自动更新
6
- *
7
- * slot 支持为 icon 添加效果,如涟漪,徽章
8
- *
9
- * @customElement gem-use
10
- * @attr selector
11
- */
12
- export declare class GemUseElement extends GemElement {
13
- selector: string;
14
- root?: HTMLElement | Document | ShadowRoot;
15
- element?: string | DocumentFragment | Element;
16
- active: boolean;
17
- private getContent;
18
- render(): import("lit-html/lib/template-result").TemplateResult;
19
- }
1
+ export * from './base/use';
20
2
  //# sourceMappingURL=use.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAIlD;;;;;;;;;GASG;AACH,qBACa,aAAc,SAAQ,UAAU;IAChC,QAAQ,EAAE,MAAM,CAAC;IAClB,IAAI,CAAC,EAAE,WAAW,GAAG,QAAQ,GAAG,UAAU,CAAC;IAC3C,OAAO,CAAC,EAAE,MAAM,GAAG,gBAAgB,GAAG,OAAO,CAAC;IAEjD,MAAM,EAAE,OAAO,CAAC;IAEvB,OAAO,CAAC,UAAU;IAiBlB,MAAM;CAmBP"}
1
+ {"version":3,"file":"use.d.ts","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":"AAEA,cAAc,YAAY,CAAC"}
package/elements/use.js CHANGED
@@ -1,75 +1,4 @@
1
- var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) {
2
- var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d;
3
- if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc);
4
- else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
- return c > 3 && r && Object.defineProperty(target, key, r), r;
6
- };
7
- import { GemElement, html } from '../lib/element';
8
- import { attribute, property, customElement, state } from '../lib/decorators';
9
- const eleCache = new Map();
10
- /**
11
- * svg 中的 `<use>` 不能穿透 ShadowDOM,
12
- * 此元素用来模拟 `<use>`,
13
- * 由于是复制元素,所以不能像 `<use>` 一样自动更新
14
- *
15
- * slot 支持为 icon 添加效果,如涟漪,徽章
16
- *
17
- * @customElement gem-use
18
- * @attr selector
19
- */
20
- let GemUseElement = class GemUseElement extends GemElement {
21
- getContent() {
22
- const ele = this.element || (this.selector ? (this.root || document).querySelector(this.selector) : null);
23
- if (typeof ele === 'string') {
24
- let temp = eleCache.get(ele);
25
- if (!temp) {
26
- temp = document.createElement('template');
27
- temp.innerHTML = ele;
28
- eleCache.set(ele, temp);
29
- }
30
- return temp.content.cloneNode(true);
31
- }
32
- else if (ele instanceof HTMLTemplateElement) {
33
- return ele.content.cloneNode(true);
34
- }
35
- else {
36
- return ele === null || ele === void 0 ? void 0 : ele.cloneNode(true);
37
- }
38
- }
39
- render() {
40
- return html `
41
- <style>
42
- :host {
43
- position: relative;
44
- }
45
- :host(:not([hidden])) {
46
- display: inline-flex;
47
- align-items: center;
48
- }
49
- svg {
50
- width: 100%;
51
- height: 100%;
52
- }
53
- </style>
54
- ${this.getContent()}
55
- <slot></slot>
56
- `;
57
- }
58
- };
59
- __decorate([
60
- attribute
61
- ], GemUseElement.prototype, "selector", void 0);
62
- __decorate([
63
- property
64
- ], GemUseElement.prototype, "root", void 0);
65
- __decorate([
66
- property
67
- ], GemUseElement.prototype, "element", void 0);
68
- __decorate([
69
- state
70
- ], GemUseElement.prototype, "active", void 0);
71
- GemUseElement = __decorate([
72
- customElement('gem-use')
73
- ], GemUseElement);
74
- export { GemUseElement };
1
+ import { GemUseElement } from './base/use';
2
+ export * from './base/use';
3
+ customElements.define('gem-use', GemUseElement);
75
4
  //# sourceMappingURL=use.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"use.js","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,IAAI,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,SAAS,EAAE,QAAQ,EAAE,aAAa,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE9E,MAAM,QAAQ,GAAG,IAAI,GAAG,EAA+B,CAAC;AACxD;;;;;;;;;GASG;AAEH,IAAa,aAAa,GAA1B,MAAa,aAAc,SAAQ,UAAU;IAOnC,UAAU;QAChB,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,IAAI,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,IAAI,QAAQ,CAAC,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;QAC1G,IAAI,OAAO,GAAG,KAAK,QAAQ,EAAE;YAC3B,IAAI,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;YAC7B,IAAI,CAAC,IAAI,EAAE;gBACT,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,UAAU,CAAC,CAAC;gBAC1C,IAAI,CAAC,SAAS,GAAG,GAAG,CAAC;gBACrB,QAAQ,CAAC,GAAG,CAAC,GAAG,EAAE,IAAI,CAAC,CAAC;aACzB;YACD,OAAO,IAAI,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACrC;aAAM,IAAI,GAAG,YAAY,mBAAmB,EAAE;YAC7C,OAAO,GAAG,CAAC,OAAO,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;SACpC;aAAM;YACL,OAAO,GAAG,aAAH,GAAG,uBAAH,GAAG,CAAE,SAAS,CAAC,IAAI,CAAC,CAAC;SAC7B;IACH,CAAC;IAED,MAAM;QACJ,OAAO,IAAI,CAAA;;;;;;;;;;;;;;QAcP,IAAI,CAAC,UAAU,EAAE;;KAEpB,CAAC;IACJ,CAAC;CACF,CAAA;AA1CY;IAAV,SAAS;+CAAkB;AAClB;IAAT,QAAQ;2CAA4C;AAC3C;IAAT,QAAQ;8CAA+C;AAEjD;IAAN,KAAK;6CAAiB;AALZ,aAAa;IADzB,aAAa,CAAC,SAAS,CAAC;GACZ,aAAa,CA2CzB;SA3CY,aAAa"}
1
+ {"version":3,"file":"use.js","sourceRoot":"","sources":["../src/elements/use.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAE3C,cAAc,YAAY,CAAC;AAE3B,cAAc,CAAC,MAAM,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC"}