@mantou/gem 1.6.4 → 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 (158) hide show
  1. package/README.md +6 -38
  2. package/dist/gem.es.js +3260 -0
  3. package/dist/gem.umd.js +229 -0
  4. package/elements/{dialog-base.d.ts → base/dialog.d.ts} +4 -4
  5. package/elements/base/dialog.d.ts.map +1 -0
  6. package/elements/{dialog-base.js → base/dialog.js} +26 -28
  7. package/elements/base/dialog.js.map +1 -0
  8. package/elements/base/gesture.d.ts +66 -0
  9. package/elements/base/gesture.d.ts.map +1 -0
  10. package/elements/base/gesture.js +214 -0
  11. package/elements/base/gesture.js.map +1 -0
  12. package/elements/base/link.d.ts +44 -0
  13. package/elements/base/link.d.ts.map +1 -0
  14. package/elements/base/link.js +206 -0
  15. package/elements/base/link.js.map +1 -0
  16. package/elements/{modal-base.d.ts → base/modal-factory.d.ts} +20 -20
  17. package/elements/base/modal-factory.d.ts.map +1 -0
  18. package/elements/{modal-base.js → base/modal-factory.js} +10 -7
  19. package/elements/base/modal-factory.js.map +1 -0
  20. package/elements/base/reflect.d.ts +6 -0
  21. package/elements/base/reflect.d.ts.map +1 -0
  22. package/elements/base/reflect.js +33 -0
  23. package/elements/base/reflect.js.map +1 -0
  24. package/elements/base/route.d.ts +78 -0
  25. package/elements/base/route.d.ts.map +1 -0
  26. package/elements/base/route.js +220 -0
  27. package/elements/base/route.js.map +1 -0
  28. package/elements/base/title.d.ts +30 -0
  29. package/elements/base/title.d.ts.map +1 -0
  30. package/elements/base/title.js +74 -0
  31. package/elements/base/title.js.map +1 -0
  32. package/elements/base/unsafe.d.ts +14 -0
  33. package/elements/base/unsafe.d.ts.map +1 -0
  34. package/elements/base/unsafe.js +42 -0
  35. package/elements/base/unsafe.js.map +1 -0
  36. package/elements/base/use.d.ts +19 -0
  37. package/elements/base/use.d.ts.map +1 -0
  38. package/elements/base/use.js +70 -0
  39. package/elements/base/use.js.map +1 -0
  40. package/elements/gesture.d.ts +1 -67
  41. package/elements/gesture.d.ts.map +1 -1
  42. package/elements/gesture.js +3 -219
  43. package/elements/gesture.js.map +1 -1
  44. package/elements/link.d.ts +1 -45
  45. package/elements/link.d.ts.map +1 -1
  46. package/elements/link.js +4 -215
  47. package/elements/link.js.map +1 -1
  48. package/elements/reflect.d.ts +1 -8
  49. package/elements/reflect.d.ts.map +1 -1
  50. package/elements/reflect.js +3 -39
  51. package/elements/reflect.js.map +1 -1
  52. package/elements/route.d.ts +1 -81
  53. package/elements/route.d.ts.map +1 -1
  54. package/elements/route.js +4 -225
  55. package/elements/route.js.map +1 -1
  56. package/elements/title.d.ts +1 -30
  57. package/elements/title.d.ts.map +1 -1
  58. package/elements/title.js +3 -75
  59. package/elements/title.js.map +1 -1
  60. package/elements/unsafe.d.ts +1 -14
  61. package/elements/unsafe.d.ts.map +1 -1
  62. package/elements/unsafe.js +3 -46
  63. package/elements/unsafe.js.map +1 -1
  64. package/elements/use.d.ts +1 -19
  65. package/elements/use.d.ts.map +1 -1
  66. package/elements/use.js +3 -74
  67. package/elements/use.js.map +1 -1
  68. package/helper/i18n.js +47 -58
  69. package/helper/i18n.js.map +1 -1
  70. package/helper/request.js +11 -19
  71. package/helper/request.js.map +1 -1
  72. package/index.d.ts +5 -4
  73. package/index.d.ts.map +1 -1
  74. package/index.js +4 -2
  75. package/index.js.map +1 -1
  76. package/lib/element.d.ts.map +1 -1
  77. package/lib/element.js +1 -1
  78. package/lib/element.js.map +1 -1
  79. package/lib/history.d.ts +28 -16
  80. package/lib/history.d.ts.map +1 -1
  81. package/lib/history.js +179 -169
  82. package/lib/history.js.map +1 -1
  83. package/lib/utils.d.ts +3 -1
  84. package/lib/utils.d.ts.map +1 -1
  85. package/lib/utils.js +7 -5
  86. package/lib/utils.js.map +1 -1
  87. package/lib/version.d.ts +1 -1
  88. package/lib/version.js +1 -1
  89. package/package.json +25 -53
  90. package/src/{umd.ts → dist.ts} +4 -5
  91. package/src/elements/{dialog-base.ts → base/dialog.ts} +6 -7
  92. package/src/elements/base/gesture.ts +256 -0
  93. package/src/elements/base/link.ts +178 -0
  94. package/src/elements/{modal-base.ts → base/modal-factory.ts} +3 -3
  95. package/src/elements/base/reflect.ts +29 -0
  96. package/src/elements/base/route.ts +244 -0
  97. package/src/elements/base/title.ts +68 -0
  98. package/src/elements/base/unsafe.ts +37 -0
  99. package/src/elements/base/use.ts +57 -0
  100. package/src/elements/gesture.ts +3 -257
  101. package/src/elements/link.ts +4 -179
  102. package/src/elements/reflect.ts +3 -31
  103. package/src/elements/route.ts +4 -248
  104. package/src/elements/title.ts +3 -68
  105. package/src/elements/unsafe.ts +3 -37
  106. package/src/elements/use.ts +3 -57
  107. package/src/index.ts +4 -6
  108. package/src/lib/element.ts +2 -1
  109. package/src/lib/history.ts +183 -195
  110. package/src/lib/utils.ts +11 -5
  111. package/src/lib/version.ts +1 -1
  112. package/src/test/gem-element/advance.test.ts +1 -0
  113. package/src/test/gem-element/basic.test.ts +1 -0
  114. package/src/test/gem-element/decorators.test.ts +1 -0
  115. package/src/test/gem-element/multi.test.ts +1 -0
  116. package/src/test/history.test.ts +16 -10
  117. package/src/test/store.test.ts +1 -0
  118. package/src/test/utils.test.ts +1 -0
  119. package/elements/dialog-base.d.ts.map +0 -1
  120. package/elements/dialog-base.js.map +0 -1
  121. package/elements/modal-base.d.ts.map +0 -1
  122. package/elements/modal-base.js.map +0 -1
  123. package/src/examples/base-path/index.ts +0 -44
  124. package/src/examples/controlled/index.ts +0 -75
  125. package/src/examples/decorator/chidren.ts +0 -77
  126. package/src/examples/decorator/index.ts +0 -110
  127. package/src/examples/dialog/index.ts +0 -148
  128. package/src/examples/effect/index.ts +0 -45
  129. package/src/examples/elements/env.ts +0 -7
  130. package/src/examples/elements/layout.ts +0 -53
  131. package/src/examples/elements/nav.ts +0 -71
  132. package/src/examples/elements/source.ts +0 -68
  133. package/src/examples/gesture/canvas.ts +0 -69
  134. package/src/examples/gesture/index.ts +0 -97
  135. package/src/examples/gesture/manifest.json +0 -3
  136. package/src/examples/hash/index.ts +0 -55
  137. package/src/examples/i18n/index.ts +0 -63
  138. package/src/examples/index/index.ts +0 -33
  139. package/src/examples/index/manifest.json +0 -5
  140. package/src/examples/light-dom/index.ts +0 -31
  141. package/src/examples/multi-page/api.ts +0 -9
  142. package/src/examples/multi-page/index.ts +0 -78
  143. package/src/examples/multi-page/page-a.ts +0 -16
  144. package/src/examples/multi-page/page-b.ts +0 -12
  145. package/src/examples/multi-page/page-c.ts +0 -40
  146. package/src/examples/multi-page/store.ts +0 -10
  147. package/src/examples/perf-demo/index.ts +0 -136
  148. package/src/examples/ref-route/index.ts +0 -109
  149. package/src/examples/reflect/index.ts +0 -61
  150. package/src/examples/styled/index.ts +0 -39
  151. package/src/examples/svg-icon/index.ts +0 -31
  152. package/src/examples/theme/index.ts +0 -56
  153. package/src/examples/unsafe/index.ts +0 -29
  154. package/umd.d.ts +0 -18
  155. package/umd.d.ts.map +0 -1
  156. package/umd.js +0 -54
  157. package/umd.js.LICENSE.txt +0 -13
  158. package/umd.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,QAAQ,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAE5D,oBAAoB;AACpB,QAAQ,CAAC,gBAAgB,CAAC,gBAAgB,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,MAAM,EAAE,CAAC,CAAC;AAEvE;;GAEG;AAEH,IAAa,iBAAiB,GAA9B,MAAa,iBAAkB,SAAQ,UAAU;IAG/C;QACE,KAAK,CAAC,EAAE,OAAO,EAAE,IAAI,EAAE,CAAC,CAAC;QAHjB,WAAM,GAAgB,QAAQ,CAAC,IAAI,CAAC;QAI5C,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC;QACnB,IAAI,CAAC,MAAM,CACT,GAAG,EAAE;YACH,MAAM,UAAU,GAAG,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC,CAAC;YACxC,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;gBAC1B,IAAI,IAAI,YAAY,WAAW,EAAE;oBAC/B,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,EAAE,CAAC;iBAC3B;gBACD,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;YAC3B,CAAC,CAAC,CAAC;YACH,OAAO,GAAG,EAAE;gBACV,UAAU,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;YAC9C,CAAC,CAAC;QACJ,CAAC,EACD,GAAG,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,CACpB,CAAC;IACJ,CAAC;CACF,CAAA;AArBW;IAAT,QAAQ;iDAAqC;AADnC,iBAAiB;IAD7B,aAAa,CAAC,aAAa,CAAC;GAChB,iBAAiB,CAsB7B;SAtBY,iBAAiB"}
1
+ {"version":3,"file":"reflect.js","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAEnD,cAAc,gBAAgB,CAAC;AAE/B,cAAc,CAAC,MAAM,CAAC,aAAa,EAAE,iBAAiB,CAAC,CAAC"}
@@ -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 route-change
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,226 +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 Object.assign({ path }, options);
68
- }
69
- /**
70
- * @customElement gem-route
71
- * @attr inert 暂停路由更新
72
- * @fires route-change
73
- * @fires error
74
- * @fires loading
75
- */
76
- let GemRouteElement = GemRouteElement_1 = class GemRouteElement extends GemElement {
77
- constructor({ isLight, routes } = {}) {
78
- super({ isLight });
79
- // 当前匹配的路由的 params
80
- this.currentParams = {};
81
- _GemRouteElement_lastLoader.set(this, void 0);
82
- this.state = {
83
- content: undefined,
84
- };
85
- _GemRouteElement_updateLocationStore.set(this, () => {
86
- if (this.locationStore) {
87
- const { path, query, data } = history.getParams();
88
- updateStore(this.locationStore, {
89
- path,
90
- params: this.currentParams,
91
- query,
92
- data,
93
- });
94
- }
95
- });
96
- _GemRouteElement_setContent.set(this, (route, params, content) => {
97
- __classPrivateFieldSet(this, _GemRouteElement_lastLoader, undefined, "f");
98
- this.currentRoute = route;
99
- this.currentParams = params;
100
- this.setState({ content });
101
- this.routeChange(this.currentRoute);
102
- const title = route === null || route === void 0 ? void 0 : route.title;
103
- if (title)
104
- updateStore(titleStore, { title });
105
- __classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
106
- });
107
- this.routes = routes;
108
- }
109
- mounted() {
110
- this.effect(([key, path], old) => {
111
- // 只有查询参数改变
112
- if (old && key === old[0] && path === old[1]) {
113
- __classPrivateFieldGet(this, _GemRouteElement_updateLocationStore, "f").call(this);
114
- return;
115
- }
116
- const { route, params = {} } = GemRouteElement_1.findRoute(this.routes, path);
117
- const { redirect, content, getContent } = route || {};
118
- if (redirect) {
119
- history.replace({ path: redirect });
120
- return;
121
- }
122
- const contentOrLoader = content || (getContent === null || getContent === void 0 ? void 0 : getContent(params));
123
- if (contentOrLoader instanceof Promise) {
124
- this.loading(route);
125
- __classPrivateFieldSet(this, _GemRouteElement_lastLoader, contentOrLoader, "f");
126
- const isSomeLoader = () => __classPrivateFieldGet(this, _GemRouteElement_lastLoader, "f") === contentOrLoader;
127
- contentOrLoader
128
- .then((content) => {
129
- if (isSomeLoader())
130
- __classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, content);
131
- })
132
- .catch((err) => {
133
- if (isSomeLoader())
134
- this.error(err);
135
- });
136
- return;
137
- }
138
- __classPrivateFieldGet(this, _GemRouteElement_setContent, "f").call(this, route, params, contentOrLoader);
139
- }, () => {
140
- const { path } = history.getParams();
141
- return [this.key, path, location.search];
142
- });
143
- }
144
- shouldUpdate() {
145
- if (this.inert)
146
- return false;
147
- return true;
148
- }
149
- render() {
150
- const { content } = this.state;
151
- if (!this.shadowRoot)
152
- return html `${content}`;
153
- return html `
154
- <style>
155
- :host,
156
- :not(:defined) {
157
- display: contents;
158
- }
159
- </style>
160
- ${content !== null && content !== void 0 ? content : html `<slot></slot>`}
161
- `;
162
- }
163
- };
164
- _GemRouteElement_lastLoader = new WeakMap(), _GemRouteElement_updateLocationStore = new WeakMap(), _GemRouteElement_setContent = new WeakMap();
165
- GemRouteElement.createLocationStore = () => {
166
- const { path, query, data } = history.getParams();
167
- return createStore({ path, query, data, params: {} });
168
- };
169
- GemRouteElement.findRoute = (target = [], path) => {
170
- let defaultRoute = null;
171
- let routes;
172
- if (target instanceof Array) {
173
- routes = target;
174
- }
175
- else {
176
- routes = Object.values(target);
177
- }
178
- for (const route of routes) {
179
- if ('*' === route.pattern) {
180
- defaultRoute = route;
181
- }
182
- else {
183
- const params = matchPath(route.pattern, path);
184
- if (params) {
185
- return { route, params };
186
- }
187
- }
188
- }
189
- return { route: defaultRoute };
190
- };
191
- __decorate([
192
- property
193
- ], GemRouteElement.prototype, "routes", void 0);
194
- __decorate([
195
- property
196
- ], GemRouteElement.prototype, "locationStore", void 0);
197
- __decorate([
198
- property
199
- ], GemRouteElement.prototype, "key", void 0);
200
- __decorate([
201
- emitter
202
- ], GemRouteElement.prototype, "routeChange", void 0);
203
- __decorate([
204
- emitter
205
- ], GemRouteElement.prototype, "loading", void 0);
206
- __decorate([
207
- emitter
208
- ], GemRouteElement.prototype, "error", void 0);
209
- GemRouteElement = GemRouteElement_1 = __decorate([
210
- connectStore(history.store),
211
- customElement('gem-route')
212
- ], GemRouteElement);
213
- export { GemRouteElement };
214
- /**
215
- * @customElement gem-light-route
216
- */
217
- let GemLightRouteElement = class GemLightRouteElement extends GemRouteElement {
218
- constructor(options = {}) {
219
- super(Object.assign(Object.assign({}, options), { isLight: true }));
220
- }
221
- };
222
- GemLightRouteElement = __decorate([
223
- customElement('gem-light-route')
224
- ], GemLightRouteElement);
225
- 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);
226
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