@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,68 +1,2 @@
1
- import { GemElement } from '../lib/element';
2
- import { Emitter } from '../lib/decorators';
3
- export declare type PanEventDetail = {
4
- x: number;
5
- y: number;
6
- clientX: number;
7
- clientY: number;
8
- timeStamp: number;
9
- isPrimary: boolean;
10
- pointerId: number;
11
- };
12
- export interface SwipeEventDetail {
13
- direction: 'top' | 'right' | 'bottom' | 'left';
14
- speed: number;
15
- }
16
- export interface PinchEventDetail {
17
- x: number;
18
- y: number;
19
- scale: number;
20
- }
21
- export interface RotateEventDetail {
22
- x: number;
23
- y: number;
24
- rotate: number;
25
- }
26
- /**
27
- * 块级元素,如果要设置成 `contents`,则内容块要设置 `touch-action: none`
28
- * https://javascript.info/pointer-events#event-pointercancel
29
- *
30
- * 在移动端上,必须设置 `touch-action` 以允许滚动等原生动作
31
- *
32
- * 为什么空白区域会自动触发 `pointercancel`?
33
- *
34
- * @customElement gem-gesture
35
- *
36
- * @event pan
37
- * @event pinch
38
- * @event rotate
39
- * @event swipe
40
- * @event press
41
- * @event end
42
- *
43
- * @attr touch-action
44
- */
45
- export declare class GemGestureElement extends GemElement {
46
- pan: Emitter<PanEventDetail>;
47
- pinch: Emitter<PinchEventDetail>;
48
- rotate: Emitter<RotateEventDetail>;
49
- swipe: Emitter<SwipeEventDetail>;
50
- press: Emitter<null>;
51
- end: Emitter<null>;
52
- touchAction: string;
53
- pressed: boolean;
54
- pressTimer: number;
55
- startEventMap: Map<number, PointerEvent>;
56
- movesMap: Map<number, PanEventDetail[]>;
57
- constructor();
58
- getMoves(pointerId: number): PanEventDetail[];
59
- getStartEvent(pointerId: number): PointerEvent;
60
- getOtherLastmove(pointerId: number): PanEventDetail | undefined;
61
- getMovementX(x: number, y: number): number;
62
- getMovementY(x: number, y: number): number;
63
- onStart(evt: PointerEvent): void;
64
- onMove(evt: PointerEvent): void;
65
- onEnd(evt: PointerEvent): void;
66
- render(): import("lit-html/lib/template-result").TemplateResult;
67
- }
1
+ export * from './base/gesture';
68
2
  //# sourceMappingURL=gesture.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../src/elements/gesture.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAqC,OAAO,EAAE,MAAM,mBAAmB,CAAC;AAE/E,oBAAY,cAAc,GAAG;IAE3B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,OAAO,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;CACnB,CAAC;AACF,MAAM,WAAW,gBAAgB;IAC/B,SAAS,EAAE,KAAK,GAAG,OAAO,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,gBAAgB;IAE/B,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;CACf;AACD,MAAM,WAAW,iBAAiB;IAEhC,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,MAAM,EAAE,MAAM,CAAC;CAChB;AAiBD;;;;;;;;;;;;;;;;;;GAkBG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IACtC,GAAG,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IAC7B,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,MAAM,EAAE,OAAO,CAAC,iBAAiB,CAAC,CAAC;IACnC,KAAK,EAAE,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjC,KAAK,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IACrB,GAAG,EAAE,OAAO,CAAC,IAAI,CAAC,CAAC;IAEjB,WAAW,EAAE,MAAM,CAAC;IAE/B,OAAO,UAAS;IAChB,UAAU,SAAK;IAEf,aAAa,EAAE,GAAG,CAAC,MAAM,EAAE,YAAY,CAAC,CAAa;IACrD,QAAQ,EAAE,GAAG,CAAC,MAAM,EAAE,cAAc,EAAE,CAAC,CAAa;;IAWpD,QAAQ,CAAC,SAAS,EAAE,MAAM;IAI1B,aAAa,CAAC,SAAS,EAAE,MAAM;IAI/B,gBAAgB,CAAC,SAAS,EAAE,MAAM;IASlC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAgBjC,YAAY,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM;IAgBjC,OAAO,CAAC,GAAG,EAAE,YAAY;IAczB,MAAM,CAAC,GAAG,EAAE,YAAY;IAkDxB,KAAK,CAAC,GAAG,EAAE,YAAY;IA2CvB,MAAM;CAYP"}
1
+ {"version":3,"file":"gesture.d.ts","sourceRoot":"","sources":["../src/elements/gesture.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC"}
@@ -1,220 +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, customElement, emitter } from '../lib/decorators';
9
- function angleAB(a, b, c, { clientX: x1, clientY: y1 }, { clientX: x2, clientY: y2 }, { clientX: x3, clientY: y3 }) {
10
- // https://en.wikipedia.org/wiki/Law_of_cosines
11
- // https://blog.csdn.net/z278930050/article/details/53319091
12
- return (Math.sign((x2 - x1) * (y3 - y2) - (y2 - y1) * (x3 - x2)) * Math.acos((Math.pow(a, 2) + Math.pow(b, 2) - Math.pow(c, 2)) / (2 * a * b)) * 180);
13
- }
14
- /**
15
- * 块级元素,如果要设置成 `contents`,则内容块要设置 `touch-action: none`
16
- * https://javascript.info/pointer-events#event-pointercancel
17
- *
18
- * 在移动端上,必须设置 `touch-action` 以允许滚动等原生动作
19
- *
20
- * 为什么空白区域会自动触发 `pointercancel`?
21
- *
22
- * @customElement gem-gesture
23
- *
24
- * @event pan
25
- * @event pinch
26
- * @event rotate
27
- * @event swipe
28
- * @event press
29
- * @event end
30
- *
31
- * @attr touch-action
32
- */
33
- let GemGestureElement = class GemGestureElement extends GemElement {
34
- constructor() {
35
- super();
36
- this.pressed = false; // 触发 press 之后不触发其他事件
37
- this.pressTimer = 0;
38
- this.startEventMap = new Map();
39
- this.movesMap = new Map();
40
- this.addEventListener('pointerdown', this.onStart);
41
- this.addEventListener('pointermove', this.onMove);
42
- this.addEventListener('pointerup', this.onEnd);
43
- this.addEventListener('pointercancel', this.onEnd);
44
- this.addEventListener('dragstart', (evt) => evt.preventDefault());
45
- }
46
- getMoves(pointerId) {
47
- return this.movesMap.get(pointerId) || [];
48
- }
49
- getStartEvent(pointerId) {
50
- return this.startEventMap.get(pointerId);
51
- }
52
- getOtherLastmove(pointerId) {
53
- for (const id of this.movesMap.keys()) {
54
- if (id !== pointerId) {
55
- const moves = this.getMoves(id);
56
- return moves[moves.length - 1] || this.getStartEvent(id);
57
- }
58
- }
59
- }
60
- getMovementX(x, y) {
61
- const touchAction = this.touchAction;
62
- if ((touchAction.includes('pan-right') && x > 0) ||
63
- (touchAction.includes('pan-left') && x < 0) ||
64
- touchAction.includes('pan-x') ||
65
- (((touchAction.includes('pan-down') && y > 0) ||
66
- (touchAction.includes('pan-up') && y < 0) ||
67
- touchAction.includes('pan-y')) &&
68
- Math.abs(y) > Math.abs(x)) // horizontally scrolling
69
- ) {
70
- return 0;
71
- }
72
- return x;
73
- }
74
- getMovementY(x, y) {
75
- const touchAction = this.touchAction;
76
- if ((touchAction.includes('pan-down') && y > 0) ||
77
- (touchAction.includes('pan-up') && y < 0) ||
78
- touchAction.includes('pan-y') ||
79
- (((touchAction.includes('pan-right') && x > 0) ||
80
- (touchAction.includes('pan-left') && x < 0) ||
81
- touchAction.includes('pan-x')) &&
82
- Math.abs(x) > Math.abs(y)) // vertical scrolling
83
- ) {
84
- return 0;
85
- }
86
- return y;
87
- }
88
- onStart(evt) {
89
- evt.stopPropagation();
90
- this.setPointerCapture(evt.pointerId);
91
- this.movesMap.set(evt.pointerId, []);
92
- this.startEventMap.set(evt.pointerId, evt);
93
- if (evt.isPrimary) {
94
- this.pressed = false;
95
- this.pressTimer = window.setTimeout(() => {
96
- this.press(null);
97
- this.pressed = true;
98
- }, 251);
99
- }
100
- }
101
- onMove(evt) {
102
- evt.stopPropagation();
103
- const { pointerId, clientX, clientY, isPrimary, pointerType, timeStamp } = evt;
104
- if (!this.pressed && this.hasPointerCapture(pointerId)) {
105
- const moves = this.getMoves(pointerId);
106
- const startEvent = this.getStartEvent(pointerId);
107
- const lastMove = moves[moves.length - 1] || startEvent;
108
- // https://bugs.webkit.org/show_bug.cgi?id=220194
109
- // https://bugs.chromium.org/p/chromium/issues/detail?id=1092358
110
- const movementX = clientX - lastMove.clientX;
111
- const movementY = clientY - lastMove.clientY;
112
- const move = {
113
- x: this.getMovementX(movementX, movementY),
114
- y: this.getMovementY(movementX, movementY),
115
- clientX,
116
- clientY,
117
- timeStamp,
118
- isPrimary,
119
- pointerId,
120
- };
121
- moves.push(move);
122
- this.pan(move);
123
- if (this.movesMap.size !== 1) {
124
- const secondaryPoint = this.getOtherLastmove(pointerId);
125
- const moveLen = Math.sqrt(Math.pow(movementX, 2) + Math.pow(movementY, 2));
126
- const distanceLen = Math.sqrt(Math.pow((lastMove.clientX - secondaryPoint.clientX), 2) + Math.pow((lastMove.clientY - secondaryPoint.clientY), 2));
127
- const newDistanceLen = Math.sqrt(Math.pow((clientX - secondaryPoint.clientX), 2) + Math.pow((clientY - secondaryPoint.clientY), 2));
128
- const x = (lastMove.clientX + secondaryPoint.clientX) / 2;
129
- const y = (lastMove.clientY + secondaryPoint.clientY) / 2;
130
- this.pinch({ x, y, scale: newDistanceLen / distanceLen });
131
- this.rotate({ x, y, rotate: angleAB(newDistanceLen, distanceLen, moveLen, secondaryPoint, lastMove, move) });
132
- }
133
- const accuracy = pointerType === 'touch' ? 5 : 0;
134
- if (Math.abs(movementX) > accuracy ||
135
- Math.abs(movementY) > accuracy ||
136
- Math.abs(move.clientX - startEvent.clientX) > accuracy ||
137
- Math.abs(move.clientY - startEvent.clientY) > accuracy) {
138
- window.clearTimeout(this.pressTimer);
139
- }
140
- }
141
- }
142
- onEnd(evt) {
143
- evt.stopPropagation();
144
- const { pointerId } = evt;
145
- window.clearTimeout(this.pressTimer);
146
- if (this.movesMap.size === 1) {
147
- this.end(null);
148
- }
149
- // auto release: https://javascript.info/pointer-events#pointer-capturing
150
- if (!this.pressed && this.hasPointerCapture(pointerId)) {
151
- const moves = this.getMoves(pointerId);
152
- if (moves.length > 2) {
153
- const { x, y, timeStamp, clientX, clientY } = moves[moves.length - 1];
154
- const move2 = moves[moves.length - 3];
155
- if (Math.abs(x) > 2) {
156
- if (Math.abs(x) > Math.abs(y)) {
157
- const speed = Math.abs(move2.clientX - clientX) / (timeStamp - move2.timeStamp);
158
- if (x > 0) {
159
- this.swipe({ direction: 'right', speed });
160
- }
161
- else {
162
- this.swipe({ direction: 'left', speed });
163
- }
164
- }
165
- }
166
- if (Math.abs(y) > 2) {
167
- const speed = Math.abs(move2.clientY - clientY) / (timeStamp - move2.timeStamp);
168
- if (Math.abs(y) > Math.abs(x)) {
169
- if (y > 0) {
170
- this.swipe({ direction: 'bottom', speed });
171
- }
172
- else {
173
- this.swipe({ direction: 'top', speed });
174
- }
175
- }
176
- }
177
- }
178
- }
179
- this.movesMap.delete(pointerId);
180
- this.startEventMap.delete(pointerId);
181
- }
182
- render() {
183
- return html `
184
- <style>
185
- :host {
186
- display: block;
187
- user-select: none;
188
- touch-action: ${this.touchAction || 'none'};
189
- }
190
- </style>
191
- <slot></slot>
192
- `;
193
- }
194
- };
195
- __decorate([
196
- emitter
197
- ], GemGestureElement.prototype, "pan", void 0);
198
- __decorate([
199
- emitter
200
- ], GemGestureElement.prototype, "pinch", void 0);
201
- __decorate([
202
- emitter
203
- ], GemGestureElement.prototype, "rotate", void 0);
204
- __decorate([
205
- emitter
206
- ], GemGestureElement.prototype, "swipe", void 0);
207
- __decorate([
208
- emitter
209
- ], GemGestureElement.prototype, "press", void 0);
210
- __decorate([
211
- emitter
212
- ], GemGestureElement.prototype, "end", void 0);
213
- __decorate([
214
- attribute
215
- ], GemGestureElement.prototype, "touchAction", void 0);
216
- GemGestureElement = __decorate([
217
- customElement('gem-gesture')
218
- ], GemGestureElement);
219
- export { GemGestureElement };
1
+ import { GemGestureElement } from './base/gesture';
2
+ export * from './base/gesture';
3
+ customElements.define('gem-gesture', GemGestureElement);
220
4
  //# sourceMappingURL=gesture.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../src/elements/gesture.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"gesture.js","sourceRoot":"","sources":["../src/elements/gesture.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,46 +1,2 @@
1
- import { GemElement } from '../lib/element';
2
- import { RouteItem, RouteOptions } from './route';
3
- /**
4
- * @customElement gem-link
5
- * @attr href
6
- * @attr target
7
- * @attr doc-title
8
- * @attr path
9
- * @attr query
10
- * @attr hash
11
- * @attr pattern
12
- * @attr hint
13
- * @part link
14
- *
15
- * print bug: https://github.com/mantou132/gem/issues/36
16
- */
17
- export declare class GemLinkElement extends GemElement {
18
- href: string;
19
- target: string;
20
- path: string;
21
- query: string;
22
- hash: string;
23
- docTitle: string;
24
- hint: 'on' | 'off';
25
- route: RouteItem | undefined;
26
- options: RouteOptions | undefined;
27
- prepare: (() => void | Promise<void>) | undefined;
28
- link: string;
29
- constructor();
30
- getPathInfo(): string;
31
- isExternal(pathInfo: string): boolean;
32
- clickHandle: (e: MouseEvent) => Promise<void>;
33
- preventDefault: (e: MouseEvent) => void;
34
- render(pathInfo?: string): import("lit-html/lib/template-result").TemplateResult;
35
- }
36
- /**
37
- * @customElement gem-active-link
38
- * @attr pattern
39
- * @state active
40
- */
41
- export declare class GemActiveLinkElement extends GemLinkElement {
42
- pattern: string;
43
- active: boolean;
44
- render(): import("lit-html/lib/template-result").TemplateResult;
45
- }
1
+ export * from './base/link';
46
2
  //# sourceMappingURL=link.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/elements/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAmB,MAAM,gBAAgB,CAAC;AAI7D,OAAO,EAAa,SAAS,EAAE,YAAY,EAAmC,MAAM,SAAS,CAAC;AAE9F;;;;;;;;;;;;;GAaG;AACH,qBAEa,cAAe,SAAQ,UAAU;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,EAAE,IAAI,GAAG,KAAK,CAAC;IAGpB,KAAK,EAAE,SAAS,GAAG,SAAS,CAAC;IAC7B,OAAO,EAAE,YAAY,GAAG,SAAS,CAAC;IAClC,OAAO,EAAE,CAAC,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC,GAAG,SAAS,CAAC;IAEtD,IAAI,EAAE,MAAM,CAAC;;IAQnB,WAAW;IAoBX,UAAU,CAAC,QAAQ,EAAE,MAAM;IAI3B,WAAW,MAAa,UAAU,mBAkDhC;IAEF,cAAc,MAAO,UAAU,UAE7B;IAEF,MAAM,CAAC,QAAQ,SAAqB;CAgCrC;AAED;;;;GAIG;AACH,qBAEa,oBAAqB,SAAQ,cAAc;IAC3C,OAAO,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,OAAO,CAAC;IAEvB,MAAM;CAWP"}
1
+ {"version":3,"file":"link.d.ts","sourceRoot":"","sources":["../src/elements/link.ts"],"names":[],"mappings":"AAEA,cAAc,aAAa,CAAC"}
package/elements/link.js CHANGED
@@ -1,216 +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 __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
8
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
9
- return new (P || (P = Promise))(function (resolve, reject) {
10
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
11
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
12
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
13
- step((generator = generator.apply(thisArg, _arguments || [])).next());
14
- });
15
- };
16
- import { GemElement, html, ifDefined } from '../lib/element';
17
- import { attribute, property, customElement, state, part, connectStore } from '../lib/decorators';
18
- import { history, basePathStore } from '../lib/history';
19
- import { absoluteLocation } from '../lib/utils';
20
- import { matchPath, createHistoryParams, createPath } from './route';
21
- /**
22
- * @customElement gem-link
23
- * @attr href
24
- * @attr target
25
- * @attr doc-title
26
- * @attr path
27
- * @attr query
28
- * @attr hash
29
- * @attr pattern
30
- * @attr hint
31
- * @part link
32
- *
33
- * print bug: https://github.com/mantou132/gem/issues/36
34
- */
35
- let GemLinkElement = class GemLinkElement extends GemElement {
36
- constructor() {
37
- super();
38
- this.clickHandle = (e) => __awaiter(this, void 0, void 0, function* () {
39
- var _a;
40
- const pathInfo = this.getPathInfo();
41
- if (!pathInfo)
42
- return;
43
- // 外部链接使用 `window.open`
44
- if (this.isExternal(pathInfo)) {
45
- switch (this.target) {
46
- case '_self':
47
- window.location.href = pathInfo;
48
- return;
49
- case '_parent':
50
- window.parent.location.href = pathInfo;
51
- return;
52
- case '_top':
53
- window.top.location.href = pathInfo;
54
- return;
55
- default:
56
- window.open(pathInfo);
57
- return;
58
- }
59
- }
60
- const { path, query, hash } = history.getParams();
61
- if (path + query + hash === pathInfo) {
62
- // 点击当前路由链接时,什么也没做
63
- return;
64
- }
65
- e.stopPropagation();
66
- yield ((_a = this.prepare) === null || _a === void 0 ? void 0 : _a.call(this));
67
- if (this.route) {
68
- history.pushIgnoreCloseHandle(Object.assign(Object.assign({}, createHistoryParams(this.route, this.options)), { title: this.route.title || this.docTitle }));
69
- }
70
- else if (this.href) {
71
- const { pathname, search, hash } = new URL(pathInfo, location.origin);
72
- history.pushIgnoreCloseHandle({
73
- path: pathname,
74
- query: search,
75
- // 解码,方便 `<gem-active-link>` CJK hash 比较
76
- hash: decodeURIComponent(hash),
77
- title: this.docTitle,
78
- });
79
- }
80
- else {
81
- history.pushIgnoreCloseHandle({ path: this.path, query: this.query, hash: this.hash, title: this.docTitle });
82
- }
83
- });
84
- this.preventDefault = (e) => {
85
- e.preventDefault();
86
- };
87
- this.addEventListener('click', this.clickHandle);
88
- }
89
- // 不包含 basePath
90
- getPathInfo() {
91
- var _a, _b;
92
- if (this.route) {
93
- const queryProp = ((_a = this.options) === null || _a === void 0 ? void 0 : _a.query) || '';
94
- const hashProp = ((_b = this.options) === null || _b === void 0 ? void 0 : _b.hash) || '';
95
- return createPath(this.route, this.options) + queryProp + hashProp;
96
- }
97
- else {
98
- const url = this.href || this.path + this.query + this.hash;
99
- const { path, query } = history.getParams();
100
- if (url.startsWith('#')) {
101
- return `${path}${query}${url}`;
102
- }
103
- else if (url.startsWith('?')) {
104
- return `${path}${url}`;
105
- }
106
- else if (url.startsWith('.')) {
107
- return absoluteLocation(path, url);
108
- }
109
- else {
110
- return url;
111
- }
112
- }
113
- }
114
- isExternal(pathInfo) {
115
- return !pathInfo.startsWith('/');
116
- }
117
- render(pathInfo = this.getPathInfo()) {
118
- return html `
119
- <style>
120
- :host {
121
- /* link default style */
122
- cursor: pointer;
123
- color: blue;
124
- text-decoration: underline;
125
- }
126
- a {
127
- all: unset;
128
- display: contents;
129
- }
130
- a:visited {
131
- color: unset;
132
- }
133
- </style>
134
- <a
135
- part=${this.link}
136
- @click=${this.preventDefault}
137
- href=${ifDefined(this.hint === 'off'
138
- ? undefined
139
- : this.isExternal(pathInfo)
140
- ? pathInfo
141
- : new URL(history.basePath + pathInfo, location.origin).toString())}
142
- >
143
- <slot></slot>
144
- </a>
145
- `;
146
- }
147
- };
148
- __decorate([
149
- attribute
150
- ], GemLinkElement.prototype, "href", void 0);
151
- __decorate([
152
- attribute
153
- ], GemLinkElement.prototype, "target", void 0);
154
- __decorate([
155
- attribute
156
- ], GemLinkElement.prototype, "path", void 0);
157
- __decorate([
158
- attribute
159
- ], GemLinkElement.prototype, "query", void 0);
160
- __decorate([
161
- attribute
162
- ], GemLinkElement.prototype, "hash", void 0);
163
- __decorate([
164
- attribute
165
- ], GemLinkElement.prototype, "docTitle", void 0);
166
- __decorate([
167
- attribute
168
- ], GemLinkElement.prototype, "hint", void 0);
169
- __decorate([
170
- property
171
- ], GemLinkElement.prototype, "route", void 0);
172
- __decorate([
173
- property
174
- ], GemLinkElement.prototype, "options", void 0);
175
- __decorate([
176
- property
177
- ], GemLinkElement.prototype, "prepare", void 0);
178
- __decorate([
179
- part
180
- ], GemLinkElement.prototype, "link", void 0);
181
- GemLinkElement = __decorate([
182
- customElement('gem-link'),
183
- connectStore(basePathStore)
184
- ], GemLinkElement);
185
- export { GemLinkElement };
186
- /**
187
- * @customElement gem-active-link
188
- * @attr pattern
189
- * @state active
190
- */
191
- let GemActiveLinkElement = class GemActiveLinkElement extends GemLinkElement {
192
- render() {
193
- const { path, query, hash } = history.getParams();
194
- const isMatchPattern = this.pattern && matchPath(this.pattern, path);
195
- const pathInfo = this.getPathInfo();
196
- if (isMatchPattern || path + query + hash === pathInfo) {
197
- this.active = true;
198
- }
199
- else {
200
- this.active = false;
201
- }
202
- return super.render(pathInfo);
203
- }
204
- };
205
- __decorate([
206
- attribute
207
- ], GemActiveLinkElement.prototype, "pattern", void 0);
208
- __decorate([
209
- state
210
- ], GemActiveLinkElement.prototype, "active", void 0);
211
- GemActiveLinkElement = __decorate([
212
- customElement('gem-active-link'),
213
- connectStore(history.store)
214
- ], GemActiveLinkElement);
215
- export { GemActiveLinkElement };
1
+ import { GemLinkElement, GemActiveLinkElement } from './base/link';
2
+ export * from './base/link';
3
+ customElements.define('gem-link', GemLinkElement);
4
+ customElements.define('gem-active-link', GemActiveLinkElement);
216
5
  //# sourceMappingURL=link.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/elements/link.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"link.js","sourceRoot":"","sources":["../src/elements/link.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,oBAAoB,EAAE,MAAM,aAAa,CAAC;AAEnE,cAAc,aAAa,CAAC;AAE5B,cAAc,CAAC,MAAM,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAClD,cAAc,CAAC,MAAM,CAAC,iBAAiB,EAAE,oBAAoB,CAAC,CAAC"}
@@ -1,9 +1,2 @@
1
- import { GemElement } from '../lib/element';
2
- /**
3
- * @customElement gem-reflect
4
- */
5
- export declare class GemReflectElement extends GemElement {
6
- target: HTMLElement;
7
- constructor();
8
- }
1
+ export * from './base/reflect';
9
2
  //# sourceMappingURL=reflect.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAM5C;;GAEG;AACH,qBACa,iBAAkB,SAAQ,UAAU;IACrC,MAAM,EAAE,WAAW,CAAiB;;CAqB/C"}
1
+ {"version":3,"file":"reflect.d.ts","sourceRoot":"","sources":["../src/elements/reflect.ts"],"names":[],"mappings":"AAEA,cAAc,gBAAgB,CAAC"}
@@ -1,40 +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 { property, customElement } from '../lib/decorators';
9
- // support prerender
10
- document.querySelectorAll('[data-reflect]').forEach((e) => e.remove());
11
- /**
12
- * @customElement gem-reflect
13
- */
14
- let GemReflectElement = class GemReflectElement extends GemElement {
15
- constructor() {
16
- super({ isLight: true });
17
- this.target = document.head;
18
- this.hidden = true;
19
- this.effect(() => {
20
- const childNodes = [...this.childNodes];
21
- childNodes.forEach((node) => {
22
- if (node instanceof HTMLElement) {
23
- node.dataset.reflect = '';
24
- }
25
- this.target.append(node);
26
- });
27
- return () => {
28
- childNodes.forEach((node) => node.remove());
29
- };
30
- }, () => [this.target]);
31
- }
32
- };
33
- __decorate([
34
- property
35
- ], GemReflectElement.prototype, "target", void 0);
36
- GemReflectElement = __decorate([
37
- customElement('gem-reflect')
38
- ], GemReflectElement);
39
- export { GemReflectElement };
1
+ import { GemReflectElement } from './base/reflect';
2
+ export * from './base/reflect';
3
+ customElements.define('gem-reflect', GemReflectElement);
40
4
  //# sourceMappingURL=reflect.js.map