@mantou/gem 2.2.0 → 2.2.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/gem.es.js +2039 -2051
- package/dist/gem.umd.js +12 -32
- package/elements/base/dialog.d.ts +1 -1
- package/elements/base/dialog.d.ts.map +1 -1
- package/elements/base/dialog.js +2 -2
- package/elements/base/dialog.js.map +1 -1
- package/elements/base/gesture.d.ts +1 -1
- package/elements/base/gesture.d.ts.map +1 -1
- package/elements/base/gesture.js +5 -5
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts +1 -1
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +18 -19
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +93 -57
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +4 -3
- package/elements/base/modal-factory.js.map +1 -1
- package/elements/base/reflect.d.ts +1 -2
- package/elements/base/reflect.d.ts.map +1 -1
- package/elements/base/reflect.js +8 -10
- package/elements/base/reflect.js.map +1 -1
- package/elements/base/route.d.ts +18 -8
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +17 -21
- package/elements/base/route.js.map +1 -1
- package/elements/base/title.d.ts +1 -1
- package/elements/base/title.d.ts.map +1 -1
- package/elements/base/title.js +5 -7
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +4 -3
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +45 -24
- package/elements/base/unsafe.js.map +1 -1
- package/elements/base/use.d.ts +1 -1
- package/elements/base/use.d.ts.map +1 -1
- package/elements/base/use.js +1 -1
- package/elements/base/use.js.map +1 -1
- package/elements/link.js +1 -1
- package/elements/link.js.map +1 -1
- package/elements/route.js +1 -1
- package/elements/route.js.map +1 -1
- package/helper/hmr.d.ts +11 -0
- package/helper/hmr.d.ts.map +1 -0
- package/helper/hmr.js +255 -0
- package/helper/hmr.js.map +1 -0
- package/helper/i18n.d.ts +2 -2
- package/helper/i18n.d.ts.map +1 -1
- package/helper/i18n.js +5 -4
- package/helper/i18n.js.map +1 -1
- package/helper/logger.d.ts +1 -1
- package/helper/logger.d.ts.map +1 -1
- package/helper/logger.js +8 -5
- package/helper/logger.js.map +1 -1
- package/helper/mediaquery.js +1 -1
- package/helper/mediaquery.js.map +1 -1
- package/helper/react-utils.d.ts.map +1 -1
- package/helper/react-utils.js +2 -6
- package/helper/react-utils.js.map +1 -1
- package/helper/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +2 -1
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +17 -6
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +23 -8
- package/helper/theme.js.map +1 -1
- package/index.d.ts +1 -2
- package/index.d.ts.map +1 -1
- package/index.js +1 -3
- package/index.js.map +1 -1
- package/lib/decorators.d.ts +54 -62
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +90 -91
- package/lib/decorators.js.map +1 -1
- package/lib/directive.d.ts +0 -18
- package/lib/directive.d.ts.map +1 -1
- package/lib/directive.js +1 -2
- package/lib/directive.js.map +1 -1
- package/lib/element.d.ts +8 -137
- package/lib/element.d.ts.map +1 -1
- package/lib/element.js +16 -481
- package/lib/element.js.map +1 -1
- package/lib/history.d.ts +68 -10
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +15 -15
- package/lib/history.js.map +1 -1
- package/lib/lit-html.d.ts +7 -109
- package/lib/lit-html.d.ts.map +1 -1
- package/lib/lit-html.js +75 -32
- package/lib/lit-html.js.map +1 -1
- package/lib/reactive.d.ts +130 -0
- package/lib/reactive.d.ts.map +1 -0
- package/lib/reactive.js +474 -0
- package/lib/reactive.js.map +1 -0
- package/lib/repeat.d.ts +3 -3
- package/lib/repeat.d.ts.map +1 -1
- package/lib/repeat.js +3 -3
- package/lib/repeat.js.map +1 -1
- package/lib/store.d.ts +15 -4
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +2 -0
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +26 -11
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +21 -14
- package/lib/utils.js.map +1 -1
- package/package.json +3 -3
- package/src/dist.ts +6 -8
- package/src/elements/base/dialog.ts +2 -2
- package/src/elements/base/gesture.ts +6 -6
- package/src/elements/base/link.ts +18 -24
- package/src/elements/base/modal-factory.ts +4 -3
- package/src/elements/base/reflect.ts +2 -3
- package/src/elements/base/route.ts +21 -28
- package/src/elements/base/title.ts +6 -8
- package/src/elements/base/unsafe.ts +33 -14
- package/src/elements/base/use.ts +1 -1
- package/src/elements/link.ts +1 -1
- package/src/elements/route.ts +1 -1
- package/src/helper/hmr.ts +305 -0
- package/src/helper/i18n.ts +7 -7
- package/src/helper/logger.ts +9 -5
- package/src/helper/mediaquery.ts +1 -1
- package/src/helper/react-utils.ts +4 -12
- package/src/helper/ssr-shim.ts +3 -1
- package/src/helper/theme.ts +29 -14
- package/src/index.ts +1 -4
- package/src/lib/decorators.ts +107 -117
- package/src/lib/directive.ts +3 -5
- package/src/lib/element.ts +21 -600
- package/src/lib/history.ts +16 -18
- package/src/lib/lit-html.ts +89 -34
- package/src/lib/reactive.ts +620 -0
- package/src/lib/repeat.ts +5 -5
- package/src/lib/store.ts +4 -2
- package/src/lib/utils.ts +41 -29
- package/src/test/elements/link.test.ts +2 -2
- package/src/test/elements/reflect.test.ts +3 -3
- package/src/test/elements/title.test.ts +2 -2
- package/src/test/gem-element/advance.test.ts +11 -10
- package/src/test/gem-element/basic.test.ts +4 -5
- package/src/test/gem-element/decorators.test.ts +10 -10
- package/src/test/gem-element/multi.test.ts +2 -2
- package/src/test/history.test.ts +1 -2
- package/src/test/store.test.ts +2 -3
- package/src/test/utils.test.ts +5 -6
- package/src/test/utils.ts +2 -2
- package/helper/react-shim.d.ts +0 -15
- package/helper/react-shim.d.ts.map +0 -1
- package/helper/react-shim.js +0 -56
- package/helper/react-shim.js.map +0 -1
- package/lib/directives.d.ts +0 -4
- package/lib/directives.d.ts.map +0 -1
- package/lib/directives.js +0 -5
- package/lib/directives.js.map +0 -1
- package/lib/ref.d.ts +0 -1
- package/lib/ref.d.ts.map +0 -1
- package/lib/ref.js +0 -2
- package/lib/ref.js.map +0 -1
package/lib/history.js
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
// https://github.com/WICG/navigation-api#stakeholder-feedback
|
|
2
2
|
import { connect, createStore } from './store';
|
|
3
|
-
import {
|
|
4
|
-
const nativeHistory =
|
|
3
|
+
import { absoluteLocation, cleanObject, GemError, QueryString } from './utils';
|
|
4
|
+
const nativeHistory = globalThis.history;
|
|
5
5
|
const nativePushState = nativeHistory.pushState.bind(nativeHistory);
|
|
6
6
|
const nativeReplaceState = nativeHistory.replaceState.bind(nativeHistory);
|
|
7
7
|
let key = 0;
|
|
@@ -74,7 +74,7 @@ function updateHistory(p, native) {
|
|
|
74
74
|
const prevHash = decodeURIComponent(location.hash);
|
|
75
75
|
native(state, title, url);
|
|
76
76
|
if (prevHash !== hash)
|
|
77
|
-
|
|
77
|
+
dispatchEvent(new CustomEvent('hashchange'));
|
|
78
78
|
}
|
|
79
79
|
// 跨框架时,调用者对 basePath 无感知
|
|
80
80
|
function updateHistoryByNative(data, title, originUrl, native) {
|
|
@@ -95,7 +95,7 @@ function updateHistoryByNative(data, title, originUrl, native) {
|
|
|
95
95
|
native(state, title, url);
|
|
96
96
|
// `location.hash` 和 `hash` 都已经进行了 url 编码,可以直接进行相等判断
|
|
97
97
|
if (prevHash !== hash)
|
|
98
|
-
|
|
98
|
+
dispatchEvent(new CustomEvent('hashchange'));
|
|
99
99
|
}
|
|
100
100
|
const gemBasePathStore = createStore({
|
|
101
101
|
basePath: '',
|
|
@@ -148,17 +148,17 @@ class GemHistory extends EventTarget {
|
|
|
148
148
|
// `<gem-**>` 只读写父应用 `basePath`
|
|
149
149
|
const gemHistory = new GemHistory();
|
|
150
150
|
const gemTitleStore = createStore({ defaultTitle: document.title, url: '', title: '' });
|
|
151
|
-
const
|
|
152
|
-
if (!
|
|
153
|
-
|
|
154
|
-
nativeHistory.pushState =
|
|
151
|
+
const HISTORY = { history: gemHistory, titleStore: gemTitleStore, basePathStore: gemBasePathStore };
|
|
152
|
+
if (!globalThis._GEMHISTORY) {
|
|
153
|
+
globalThis._GEMHISTORY = HISTORY;
|
|
154
|
+
nativeHistory.pushState = (state, title, path) => {
|
|
155
155
|
updateHistoryByNative(state, title, path, nativePushState);
|
|
156
156
|
};
|
|
157
|
-
nativeHistory.replaceState =
|
|
157
|
+
nativeHistory.replaceState = (state, title, path) => {
|
|
158
158
|
updateHistoryByNative(state, title, path, nativeReplaceState);
|
|
159
159
|
};
|
|
160
160
|
// 点击 `<a>`
|
|
161
|
-
|
|
161
|
+
addEventListener('hashchange', ({ isTrusted }) => {
|
|
162
162
|
if (isTrusted) {
|
|
163
163
|
gemHistory.replace({ hash: location.hash });
|
|
164
164
|
}
|
|
@@ -202,7 +202,7 @@ if (!window._GEMHISTORY) {
|
|
|
202
202
|
* 表示 popstate handler 中正在进行导航
|
|
203
203
|
*/
|
|
204
204
|
let navigating = false;
|
|
205
|
-
|
|
205
|
+
addEventListener('popstate', (event) => {
|
|
206
206
|
const newState = event.state;
|
|
207
207
|
if (!newState?.$key) {
|
|
208
208
|
// 比如作为其他框架 app 的宿主 app
|
|
@@ -220,10 +220,10 @@ if (!window._GEMHISTORY) {
|
|
|
220
220
|
if (!paramsMap.has(newState.$key)) {
|
|
221
221
|
const { pathname, search, hash } = location;
|
|
222
222
|
paramsMap.set(newState.$key, {
|
|
223
|
-
path: pathname,
|
|
223
|
+
path: getInternalPath(pathname),
|
|
224
224
|
query: new QueryString(search),
|
|
225
225
|
hash: decodeURIComponent(hash),
|
|
226
|
-
title: newState.$title, // document.title 是导航前的
|
|
226
|
+
title: gemTitleStore.title || newState.$title, // document.title 是导航前的
|
|
227
227
|
data: newState,
|
|
228
228
|
});
|
|
229
229
|
}
|
|
@@ -266,6 +266,6 @@ if (!window._GEMHISTORY) {
|
|
|
266
266
|
store(newState);
|
|
267
267
|
});
|
|
268
268
|
}
|
|
269
|
-
const { history, titleStore, basePathStore } =
|
|
270
|
-
export { history, titleStore
|
|
269
|
+
const { history, titleStore, basePathStore } = globalThis._GEMHISTORY;
|
|
270
|
+
export { basePathStore, history, titleStore };
|
|
271
271
|
//# sourceMappingURL=history.js.map
|
package/lib/history.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/lib/history.ts"],"names":[],"mappings":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,
|
|
1
|
+
{"version":3,"file":"history.js","sourceRoot":"","sources":["../src/lib/history.ts"],"names":[],"mappings":"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"}
|
package/lib/lit-html.d.ts
CHANGED
|
@@ -1,9 +1,11 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/
|
|
1
|
+
/** biome-ignore-all lint/complexity/noCommaOperator: lit */
|
|
2
|
+
/** biome-ignore-all lint/style/useTemplate: lit */
|
|
6
3
|
import type { Directive } from './directive';
|
|
4
|
+
/** TemplateResult types */
|
|
5
|
+
declare const HTML_RESULT = 1;
|
|
6
|
+
declare const SVG_RESULT = 2;
|
|
7
|
+
declare const MATHML_RESULT = 3;
|
|
8
|
+
type ResultType = typeof HTML_RESULT | typeof SVG_RESULT | typeof MATHML_RESULT;
|
|
7
9
|
declare const ATTRIBUTE_PART = 1;
|
|
8
10
|
declare const CHILD_PART = 2;
|
|
9
11
|
declare const PROPERTY_PART = 3;
|
|
@@ -11,11 +13,6 @@ declare const BOOLEAN_ATTRIBUTE_PART = 4;
|
|
|
11
13
|
declare const EVENT_PART = 5;
|
|
12
14
|
declare const ELEMENT_PART = 6;
|
|
13
15
|
declare const COMMENT_PART = 7;
|
|
14
|
-
declare enum ResultType {
|
|
15
|
-
HTML = 0,
|
|
16
|
-
SVG = 1,
|
|
17
|
-
MATHML = 2
|
|
18
|
-
}
|
|
19
16
|
export declare class TemplateResult {
|
|
20
17
|
type: ResultType;
|
|
21
18
|
strings: TemplateStringsArray;
|
|
@@ -68,11 +65,7 @@ export interface DirectiveParent {
|
|
|
68
65
|
__directive?: Directive;
|
|
69
66
|
__directives?: Array<Directive | undefined>;
|
|
70
67
|
}
|
|
71
|
-
/** @internal */
|
|
72
|
-
export type { Template };
|
|
73
68
|
declare class Template {
|
|
74
|
-
/** @internal */
|
|
75
|
-
el: HTMLTemplateElement;
|
|
76
69
|
parts: Array<TemplatePart>;
|
|
77
70
|
constructor({ strings, type }: TemplateResult, options?: RenderOptions);
|
|
78
71
|
/** @nocollapse */
|
|
@@ -91,10 +84,6 @@ export type { TemplateInstance };
|
|
|
91
84
|
declare class TemplateInstance implements Disconnectable {
|
|
92
85
|
_$template: Template;
|
|
93
86
|
_$parts: Array<Part | undefined>;
|
|
94
|
-
/** @internal */
|
|
95
|
-
_$parent: ChildPart;
|
|
96
|
-
/** @internal */
|
|
97
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
98
87
|
constructor(template: Template, parent: ChildPart);
|
|
99
88
|
get parentNode(): Node;
|
|
100
89
|
get _$isConnected(): boolean;
|
|
@@ -131,30 +120,7 @@ export declare class ChildPart implements Disconnectable {
|
|
|
131
120
|
readonly type = 2;
|
|
132
121
|
readonly options: RenderOptions | undefined;
|
|
133
122
|
_$committedValue: unknown;
|
|
134
|
-
/** @internal */
|
|
135
|
-
__directive?: Directive;
|
|
136
|
-
/** @internal */
|
|
137
|
-
_$startNode: ChildNode;
|
|
138
|
-
/** @internal */
|
|
139
|
-
_$endNode: ChildNode | null;
|
|
140
|
-
/** @internal */
|
|
141
|
-
_$parent: Disconnectable | undefined;
|
|
142
|
-
/**
|
|
143
|
-
* Connection state for RootParts only (i.e. ChildPart without _$parent
|
|
144
|
-
* returned from top-level `render`). This field is unused otherwise. The
|
|
145
|
-
* intention would be clearer if we made `RootPart` a subclass of `ChildPart`
|
|
146
|
-
* with this field (and a different _$isConnected getter), but the subclass
|
|
147
|
-
* caused a perf regression, possibly due to making call sites polymorphic.
|
|
148
|
-
* @internal
|
|
149
|
-
*/
|
|
150
|
-
__isConnected: boolean;
|
|
151
123
|
get _$isConnected(): boolean;
|
|
152
|
-
/** @internal */
|
|
153
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
154
|
-
/** @internal */
|
|
155
|
-
_$notifyConnectionChanged?(isConnected: boolean, removeFromParent?: boolean, from?: number): void;
|
|
156
|
-
/** @internal */
|
|
157
|
-
_$reparentDisconnectables?(parent: Disconnectable): void;
|
|
158
124
|
constructor(startNode: ChildNode, endNode: ChildNode | null, parent: TemplateInstance | ChildPart | undefined, options: RenderOptions | undefined);
|
|
159
125
|
/**
|
|
160
126
|
* The parent node into which the part renders its content.
|
|
@@ -190,29 +156,7 @@ export declare class ChildPart implements Disconnectable {
|
|
|
190
156
|
private _commitNode;
|
|
191
157
|
private _commitText;
|
|
192
158
|
private _commitTemplateResult;
|
|
193
|
-
/** @internal */
|
|
194
|
-
_$getTemplate(result: TemplateResult): Template;
|
|
195
159
|
private _commitIterable;
|
|
196
|
-
/**
|
|
197
|
-
* Removes the nodes contained within this Part from the DOM.
|
|
198
|
-
*
|
|
199
|
-
* @param start Start node to clear from, for clearing a subset of the part's
|
|
200
|
-
* DOM (used when truncating iterables)
|
|
201
|
-
* @param from When `start` is specified, the index within the iterable from
|
|
202
|
-
* which ChildParts are being removed, used for disconnecting directives in
|
|
203
|
-
* those Parts.
|
|
204
|
-
*
|
|
205
|
-
* @internal
|
|
206
|
-
*/
|
|
207
|
-
_$clear(start?: ChildNode | null, from?: number): void;
|
|
208
|
-
/**
|
|
209
|
-
* Implementation of RootPart's `isConnected`. Note that this method
|
|
210
|
-
* should only be called on `RootPart`s (the `ChildPart` returned from a
|
|
211
|
-
* top-level `render()` call). It has no effect on non-root ChildParts.
|
|
212
|
-
* @param isConnected Whether to set
|
|
213
|
-
* @internal
|
|
214
|
-
*/
|
|
215
|
-
setConnected(isConnected: boolean): void;
|
|
216
160
|
}
|
|
217
161
|
/**
|
|
218
162
|
* A top-level `ChildPart` returned from `render` that manages the connected
|
|
@@ -248,74 +192,28 @@ declare class AttributePart implements Disconnectable {
|
|
|
248
192
|
* this is undefined.
|
|
249
193
|
*/
|
|
250
194
|
readonly strings?: ReadonlyArray<string>;
|
|
251
|
-
/** @internal */
|
|
252
|
-
_$committedValue: unknown | Array<unknown>;
|
|
253
|
-
/** @internal */
|
|
254
|
-
__directives?: Array<Directive | undefined>;
|
|
255
|
-
/** @internal */
|
|
256
|
-
_$parent: Disconnectable;
|
|
257
|
-
/** @internal */
|
|
258
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
259
195
|
get tagName(): string;
|
|
260
196
|
get _$isConnected(): boolean;
|
|
261
197
|
constructor(element: HTMLElement, name: string, strings: ReadonlyArray<string>, parent: Disconnectable, options: RenderOptions | undefined);
|
|
262
|
-
/**
|
|
263
|
-
* Sets the value of this part by resolving the value from possibly multiple
|
|
264
|
-
* values and static strings and committing it to the DOM.
|
|
265
|
-
* If this part is single-valued, `this._strings` will be undefined, and the
|
|
266
|
-
* method will be called with a single value argument. If this part is
|
|
267
|
-
* multi-value, `this._strings` will be defined, and the method is called
|
|
268
|
-
* with the value array of the part's owning TemplateInstance, and an offset
|
|
269
|
-
* into the value array from which the values should be read.
|
|
270
|
-
* This method is overloaded this way to eliminate short-lived array slices
|
|
271
|
-
* of the template instance values, and allow a fast-path for single-valued
|
|
272
|
-
* parts.
|
|
273
|
-
*
|
|
274
|
-
* @param value The part value, or an array of values for multi-valued parts
|
|
275
|
-
* @param valueIndex the index to start reading values from. `undefined` for
|
|
276
|
-
* single-valued parts
|
|
277
|
-
* @param noCommit causes the part to not commit its value to the DOM. Used
|
|
278
|
-
* in hydration to prime attribute parts with their first-rendered value,
|
|
279
|
-
* but not set the attribute, and in SSR to no-op the DOM operation and
|
|
280
|
-
* capture the value for serialization.
|
|
281
|
-
*
|
|
282
|
-
* @internal
|
|
283
|
-
*/
|
|
284
|
-
_$setValue(value: unknown | Array<unknown>, directiveParent?: DirectiveParent, valueIndex?: number, noCommit?: boolean): void;
|
|
285
|
-
/** @internal */
|
|
286
|
-
_commitValue(value: unknown): void;
|
|
287
198
|
}
|
|
288
199
|
export type { PropertyPart };
|
|
289
200
|
declare class PropertyPart extends AttributePart {
|
|
290
201
|
readonly type = 3;
|
|
291
|
-
/** @internal */
|
|
292
|
-
_commitValue(value: unknown): void;
|
|
293
202
|
}
|
|
294
203
|
export type { BooleanAttributePart };
|
|
295
204
|
declare class BooleanAttributePart extends AttributePart {
|
|
296
205
|
readonly type = 4;
|
|
297
|
-
/** @internal */
|
|
298
|
-
_commitValue(value: unknown): void;
|
|
299
206
|
}
|
|
300
207
|
export type { EventPart };
|
|
301
208
|
declare class EventPart extends AttributePart {
|
|
302
209
|
readonly type = 5;
|
|
303
|
-
constructor(element: HTMLElement, name: string, strings: ReadonlyArray<string>, parent: Disconnectable, options: RenderOptions | undefined);
|
|
304
|
-
/** @internal */
|
|
305
|
-
_$setValue(newListener: unknown, directiveParent?: DirectiveParent): void;
|
|
306
210
|
handleEvent(event: Event): void;
|
|
307
211
|
}
|
|
308
212
|
export type { ElementPart };
|
|
309
213
|
declare class ElementPart implements Disconnectable {
|
|
310
214
|
element: Element;
|
|
311
215
|
readonly type = 6;
|
|
312
|
-
/** @internal */
|
|
313
|
-
__directive?: Directive;
|
|
314
216
|
_$committedValue: undefined;
|
|
315
|
-
/** @internal */
|
|
316
|
-
_$parent: Disconnectable;
|
|
317
|
-
/** @internal */
|
|
318
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
319
217
|
_$props: any;
|
|
320
218
|
options: RenderOptions | undefined;
|
|
321
219
|
constructor(element: Element, parent: Disconnectable, options: RenderOptions | undefined);
|
package/lib/lit-html.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"lit-html.d.ts","sourceRoot":"","sources":["../src/lib/lit-html.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"lit-html.d.ts","sourceRoot":"","sources":["../src/lib/lit-html.ts"],"names":[],"mappings":"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"}
|
package/lib/lit-html.js
CHANGED
|
@@ -1,13 +1,8 @@
|
|
|
1
|
-
/**
|
|
2
|
-
|
|
3
|
-
* Copyright 2017 Google LLC
|
|
4
|
-
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
|
-
*/
|
|
1
|
+
/** biome-ignore-all lint/complexity/noCommaOperator: lit */
|
|
2
|
+
/** biome-ignore-all lint/style/useTemplate: lit */
|
|
6
3
|
const global = globalThis;
|
|
7
4
|
const trustedTypes = global.trustedTypes;
|
|
8
|
-
const policy = trustedTypes?.createPolicy('lit-html', {
|
|
9
|
-
createHTML: (s) => s,
|
|
10
|
-
});
|
|
5
|
+
const policy = trustedTypes?.createPolicy('lit-html', { createHTML: (s) => s });
|
|
11
6
|
// Added to an attribute name to mark the attribute as bound so we can find
|
|
12
7
|
// it easily.
|
|
13
8
|
const boundAttributeSuffix = '$lit$';
|
|
@@ -24,7 +19,7 @@ const nodeMarker = `<${markerMatch}>`;
|
|
|
24
19
|
const d = document;
|
|
25
20
|
// Creates a dynamic marker. We never have to search for these in the DOM.
|
|
26
21
|
const createMarker = () => d.createComment('');
|
|
27
|
-
const isPrimitive = (value) => value === null || (typeof value
|
|
22
|
+
const isPrimitive = (value) => value === null || (typeof value !== 'object' && typeof value !== 'function');
|
|
28
23
|
const isNullish = (value) => value === null || value === undefined;
|
|
29
24
|
const isIterable = (value) => Symbol.iterator in value;
|
|
30
25
|
const SPACE_CHAR = `[ \t\n\f\r]`;
|
|
@@ -88,6 +83,10 @@ const doubleQuoteAttrEndRegex = /"/g;
|
|
|
88
83
|
* text content for marker strings.
|
|
89
84
|
*/
|
|
90
85
|
const rawTextElement = /^(?:script|style|textarea|title)$/i;
|
|
86
|
+
/** TemplateResult types */
|
|
87
|
+
const HTML_RESULT = 1;
|
|
88
|
+
const SVG_RESULT = 2;
|
|
89
|
+
const MATHML_RESULT = 3;
|
|
91
90
|
// TemplatePart types
|
|
92
91
|
// IMPORTANT: these must match the values in PartType
|
|
93
92
|
const ATTRIBUTE_PART = 1;
|
|
@@ -97,12 +96,9 @@ const BOOLEAN_ATTRIBUTE_PART = 4;
|
|
|
97
96
|
const EVENT_PART = 5;
|
|
98
97
|
const ELEMENT_PART = 6;
|
|
99
98
|
const COMMENT_PART = 7;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ResultType[ResultType["SVG"] = 1] = "SVG";
|
|
104
|
-
ResultType[ResultType["MATHML"] = 2] = "MATHML";
|
|
105
|
-
})(ResultType || (ResultType = {}));
|
|
99
|
+
const V_IF = 'v-if';
|
|
100
|
+
const V_ELSE_IF = 'v-else-if';
|
|
101
|
+
const V_ELSE = 'v-else';
|
|
106
102
|
export class TemplateResult {
|
|
107
103
|
type;
|
|
108
104
|
strings;
|
|
@@ -116,9 +112,9 @@ export class TemplateResult {
|
|
|
116
112
|
const tag = (type) => (strings, ...values) => {
|
|
117
113
|
return new TemplateResult(type, strings, values);
|
|
118
114
|
};
|
|
119
|
-
export const html = tag(
|
|
120
|
-
export const svg = tag(
|
|
121
|
-
export const mathml = tag(
|
|
115
|
+
export const html = tag(HTML_RESULT);
|
|
116
|
+
export const svg = tag(SVG_RESULT);
|
|
117
|
+
export const mathml = tag(MATHML_RESULT);
|
|
122
118
|
// for directive
|
|
123
119
|
export const noChange = Symbol.for('lit-noChange');
|
|
124
120
|
const templateCache = new WeakMap();
|
|
@@ -152,7 +148,7 @@ const getTemplateHtml = (strings, type) => {
|
|
|
152
148
|
// parts. ElementParts are also reflected in this array as undefined
|
|
153
149
|
// rather than a string, to disambiguate from attribute bindings.
|
|
154
150
|
const attrNames = [];
|
|
155
|
-
let htmlStr = type ===
|
|
151
|
+
let htmlStr = type === SVG_RESULT ? '<svg>' : type === MATHML_RESULT ? '<math>' : '';
|
|
156
152
|
// When we're inside a raw text tag (not it's text content), the regex
|
|
157
153
|
// will still be tagRegex so we can find attributes, but will switch to
|
|
158
154
|
// this regex when the tag ends.
|
|
@@ -261,9 +257,7 @@ const getTemplateHtml = (strings, type) => {
|
|
|
261
257
|
end
|
|
262
258
|
: s + marker + (attrNameEndIndex === -2 ? i : end);
|
|
263
259
|
}
|
|
264
|
-
const htmlResult = htmlStr +
|
|
265
|
-
(strings[l] || '<?>') +
|
|
266
|
-
(type === ResultType.SVG ? '</svg>' : type === ResultType.MATHML ? '</math>' : '');
|
|
260
|
+
const htmlResult = htmlStr + (strings[l] || '<?>') + (type === SVG_RESULT ? '</svg>' : type === MATHML_RESULT ? '</math>' : '');
|
|
267
261
|
// Returned as an array for terseness
|
|
268
262
|
return [trustFromTemplateString(strings, htmlResult), attrNames];
|
|
269
263
|
};
|
|
@@ -282,7 +276,7 @@ class Template {
|
|
|
282
276
|
this.el = Template.createElement(trustedHtml, options);
|
|
283
277
|
walker.currentNode = this.el.content;
|
|
284
278
|
// Re-parent SVG or MathML nodes into template root
|
|
285
|
-
if (type ===
|
|
279
|
+
if (type === SVG_RESULT || type === MATHML_RESULT) {
|
|
286
280
|
const wrapper = this.el.content.firstChild;
|
|
287
281
|
wrapper.replaceWith(...wrapper.childNodes);
|
|
288
282
|
}
|
|
@@ -390,10 +384,10 @@ function resolveDirective(part, value, parent = part, attributeIndex) {
|
|
|
390
384
|
const nextDirectiveConstructor = isPrimitive(value)
|
|
391
385
|
? undefined
|
|
392
386
|
: // This property needs to remain unminified.
|
|
393
|
-
value
|
|
387
|
+
value._$litDirective$;
|
|
394
388
|
if (currentDirective?.constructor !== nextDirectiveConstructor) {
|
|
395
389
|
// This property needs to remain unminified.
|
|
396
|
-
currentDirective?.
|
|
390
|
+
currentDirective?._$notifyDirectiveConnectionChanged?.(false);
|
|
397
391
|
if (nextDirectiveConstructor === undefined) {
|
|
398
392
|
currentDirective = undefined;
|
|
399
393
|
}
|
|
@@ -421,6 +415,8 @@ class TemplateInstance {
|
|
|
421
415
|
_$template;
|
|
422
416
|
_$parts = [];
|
|
423
417
|
/** @internal */
|
|
418
|
+
_$conditions = [];
|
|
419
|
+
/** @internal */
|
|
424
420
|
_$parent;
|
|
425
421
|
/** @internal */
|
|
426
422
|
_$disconnectableChildren = undefined;
|
|
@@ -439,7 +435,9 @@ class TemplateInstance {
|
|
|
439
435
|
// This method is separate from the constructor because we need to return a
|
|
440
436
|
// DocumentFragment and we don't want to hold onto it with an instance field.
|
|
441
437
|
_clone(options) {
|
|
442
|
-
const { el: { content }, parts
|
|
438
|
+
const { el: { content }, parts, } = this._$template;
|
|
439
|
+
const ifMap = new Map();
|
|
440
|
+
const elseIfMap = new Map();
|
|
443
441
|
const fragment = (options?.creationScope ?? d).importNode(content, true);
|
|
444
442
|
walker.currentNode = fragment;
|
|
445
443
|
let node = walker.nextNode();
|
|
@@ -453,6 +451,8 @@ class TemplateInstance {
|
|
|
453
451
|
part = new ChildPart(node, node.nextSibling, this, options);
|
|
454
452
|
}
|
|
455
453
|
else if (templatePart.type === ATTRIBUTE_PART) {
|
|
454
|
+
templatePart.name === V_IF && ifMap.set(node, partIndex);
|
|
455
|
+
templatePart.name === V_ELSE_IF && elseIfMap.set(node, partIndex);
|
|
456
456
|
part = new templatePart.ctor(node, templatePart.name, templatePart.strings, this, options);
|
|
457
457
|
}
|
|
458
458
|
else if (templatePart.type === ELEMENT_PART) {
|
|
@@ -466,6 +466,17 @@ class TemplateInstance {
|
|
|
466
466
|
nodeIndex++;
|
|
467
467
|
}
|
|
468
468
|
}
|
|
469
|
+
ifMap.forEach((idx, element) => {
|
|
470
|
+
const chain = new ConditionChain(element, idx);
|
|
471
|
+
this._$conditions.push(chain);
|
|
472
|
+
let ele = element;
|
|
473
|
+
while ((ele = ele.nextElementSibling)) {
|
|
474
|
+
const pos = elseIfMap.get(ele);
|
|
475
|
+
if (pos === undefined)
|
|
476
|
+
break;
|
|
477
|
+
chain.push(ele, pos);
|
|
478
|
+
}
|
|
479
|
+
});
|
|
469
480
|
// We need to set the currentNode away from the cloned tree so that we
|
|
470
481
|
// don't hold onto the tree even if the tree is detached and should be
|
|
471
482
|
// freed.
|
|
@@ -483,12 +494,47 @@ class TemplateInstance {
|
|
|
483
494
|
// later in the loop, so increment it by part.strings.length - 2 here
|
|
484
495
|
i += part.strings.length - 2;
|
|
485
496
|
}
|
|
497
|
+
else if (part.name === V_IF || part.name === V_ELSE_IF) {
|
|
498
|
+
}
|
|
486
499
|
else {
|
|
487
500
|
part._$setValue(values[i]);
|
|
488
501
|
}
|
|
489
502
|
}
|
|
490
503
|
i++;
|
|
491
504
|
}
|
|
505
|
+
this._$conditions.forEach((e) => e.update(values));
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
class ConditionChain {
|
|
509
|
+
mark;
|
|
510
|
+
list;
|
|
511
|
+
constructor(ele, idx) {
|
|
512
|
+
const mark = createMarker();
|
|
513
|
+
ele.before(mark);
|
|
514
|
+
this.mark = mark;
|
|
515
|
+
this.list = [{ ele, idx }];
|
|
516
|
+
this.check();
|
|
517
|
+
}
|
|
518
|
+
get next() {
|
|
519
|
+
return this.list.at(-1).ele.nextElementSibling;
|
|
520
|
+
}
|
|
521
|
+
push(ele, idx) {
|
|
522
|
+
this.list.push({ ele, idx });
|
|
523
|
+
this.check();
|
|
524
|
+
}
|
|
525
|
+
check() {
|
|
526
|
+
const next = this.next;
|
|
527
|
+
if (next?.attributes.getNamedItem(V_ELSE)) {
|
|
528
|
+
this.list.push({ ele: next });
|
|
529
|
+
next.removeAttribute(V_ELSE);
|
|
530
|
+
}
|
|
531
|
+
}
|
|
532
|
+
update(values) {
|
|
533
|
+
const { mark, list } = this;
|
|
534
|
+
const show = list.find(({ idx }) => idx === undefined || !!values[idx]);
|
|
535
|
+
if (show && !show.ele.parentNode)
|
|
536
|
+
mark.after(show.ele);
|
|
537
|
+
list.forEach(({ ele }) => (!show || ele !== show.ele) && ele.remove());
|
|
492
538
|
}
|
|
493
539
|
}
|
|
494
540
|
export class ChildPart {
|
|
@@ -852,9 +898,6 @@ class BooleanAttributePart extends AttributePart {
|
|
|
852
898
|
}
|
|
853
899
|
class EventPart extends AttributePart {
|
|
854
900
|
type = EVENT_PART;
|
|
855
|
-
constructor(element, name, strings, parent, options) {
|
|
856
|
-
super(element, name, strings, parent, options);
|
|
857
|
-
}
|
|
858
901
|
/** @internal */
|
|
859
902
|
_$setValue(newListener, directiveParent = this) {
|
|
860
903
|
newListener = resolveDirective(this, newListener, directiveParent, 0);
|
|
@@ -910,7 +953,7 @@ class ElementPart {
|
|
|
910
953
|
if (value instanceof Ref) {
|
|
911
954
|
value.value = this.element;
|
|
912
955
|
}
|
|
913
|
-
else if (value
|
|
956
|
+
else if (value._$litDirective$) {
|
|
914
957
|
resolveDirective(this, value);
|
|
915
958
|
}
|
|
916
959
|
else {
|
|
@@ -930,10 +973,10 @@ class Ref {
|
|
|
930
973
|
}
|
|
931
974
|
export const render = (value, container, options) => {
|
|
932
975
|
const partOwnerNode = (options?.renderBefore ?? container);
|
|
933
|
-
let part = partOwnerNode
|
|
976
|
+
let part = partOwnerNode._$litPart$;
|
|
934
977
|
if (part === undefined) {
|
|
935
978
|
const endNode = options?.renderBefore ?? null;
|
|
936
|
-
partOwnerNode
|
|
979
|
+
partOwnerNode._$litPart$ = part = new ChildPart(container.insertBefore(createMarker(), endNode), endNode, undefined, options ?? {});
|
|
937
980
|
}
|
|
938
981
|
part._$setValue(value);
|
|
939
982
|
return part;
|