@mantou/gem 2.2.0 → 2.2.1
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 +2007 -2020
- package/dist/gem.umd.js +15 -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 +4 -4
- package/elements/base/gesture.js.map +1 -1
- package/elements/base/link.d.ts.map +1 -1
- package/elements/base/link.js +7 -12
- package/elements/base/link.js.map +1 -1
- package/elements/base/modal-factory.d.ts +23 -12
- package/elements/base/modal-factory.d.ts.map +1 -1
- package/elements/base/modal-factory.js +14 -14
- 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 +17 -7
- package/elements/base/route.d.ts.map +1 -1
- package/elements/base/route.js +6 -6
- 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 +3 -3
- package/elements/base/title.js.map +1 -1
- package/elements/base/unsafe.d.ts +1 -1
- package/elements/base/unsafe.d.ts.map +1 -1
- package/elements/base/unsafe.js +1 -1
- 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/ssr-shim.d.ts.map +1 -1
- package/helper/ssr-shim.js +2 -0
- package/helper/ssr-shim.js.map +1 -1
- package/helper/theme.d.ts +3 -4
- package/helper/theme.d.ts.map +1 -1
- package/helper/theme.js +1 -1
- 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 +5 -13
- package/lib/decorators.d.ts.map +1 -1
- package/lib/decorators.js +40 -42
- 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 +67 -9
- package/lib/history.d.ts.map +1 -1
- package/lib/history.js +12 -12
- package/lib/history.js.map +1 -1
- package/lib/lit-html.d.ts +5 -104
- package/lib/lit-html.d.ts.map +1 -1
- package/lib/lit-html.js +73 -27
- package/lib/lit-html.js.map +1 -1
- package/lib/reactive.d.ts +123 -0
- package/lib/reactive.d.ts.map +1 -0
- package/lib/reactive.js +478 -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 +13 -2
- package/lib/store.d.ts.map +1 -1
- package/lib/store.js +1 -0
- package/lib/store.js.map +1 -1
- package/lib/utils.d.ts +23 -11
- package/lib/utils.d.ts.map +1 -1
- package/lib/utils.js +20 -15
- package/lib/utils.js.map +1 -1
- package/lib/version.d.ts +1 -1
- package/lib/version.d.ts.map +1 -1
- package/lib/version.js +1 -2
- package/lib/version.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 +5 -5
- package/src/elements/base/link.ts +16 -22
- package/src/elements/base/modal-factory.ts +14 -14
- package/src/elements/base/reflect.ts +2 -3
- package/src/elements/base/route.ts +13 -14
- package/src/elements/base/title.ts +4 -4
- package/src/elements/base/unsafe.ts +1 -1
- 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/ssr-shim.ts +3 -0
- package/src/helper/theme.ts +4 -4
- package/src/index.ts +1 -4
- package/src/lib/decorators.ts +56 -68
- package/src/lib/directive.ts +3 -5
- package/src/lib/element.ts +22 -600
- package/src/lib/history.ts +14 -15
- package/src/lib/lit-html.ts +86 -34
- package/src/lib/reactive.ts +596 -0
- package/src/lib/repeat.ts +5 -5
- package/src/lib/store.ts +1 -0
- package/src/lib/utils.ts +35 -30
- package/src/lib/version.ts +1 -2
- 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 +10 -9
- package/src/test/gem-element/basic.test.ts +3 -3
- 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 +4 -5
- 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
|
|
@@ -266,6 +266,6 @@ if (!window._GEMHISTORY) {
|
|
|
266
266
|
store(newState);
|
|
267
267
|
});
|
|
268
268
|
}
|
|
269
|
-
const { history, titleStore, basePathStore } =
|
|
269
|
+
const { history, titleStore, basePathStore } = globalThis._GEMHISTORY;
|
|
270
270
|
export { history, titleStore, basePathStore };
|
|
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":"AAAA,8DAA8D;AAE9D,OAAO,EAAE,OAAO,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAC/C,OAAO,EAAE,gBAAgB,EAAE,WAAW,EAAE,QAAQ,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE/E,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC;AACzC,MAAM,eAAe,GAAmC,aAAa,CAAC,SAAS,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AACpG,MAAM,kBAAkB,GAAsC,aAAa,CAAC,YAAY,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;AAE7G,IAAI,GAAG,GAAG,CAAC,CAAC;AACZ,MAAM,MAAM,GAAG,GAAG,EAAE,CAAC,GAAG,WAAW,CAAC,GAAG,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;AAUrD,MAAM,KAAK,GAAG,WAAW,CAAe;IACtC,eAAe,EAAE,KAAK;IACtB,cAAc,EAAE,KAAK;IACrB,qBAAqB,EAAE,KAAK;IAC5B,IAAI,EAAE,EAAE;CACT,CAAC,CAAC;AAsBH,MAAM,SAAS,GAAG,IAAI,GAAG,EAAyB,CAAC;AAEnD,SAAS,SAAS,CAAC,IAAS;IAC1B,MAAM,EAAE,IAAI,EAAE,eAAe,EAAE,cAAc,EAAE,qBAAqB,EAAE,GAAG,IAAI,IAAI,EAAE,CAAC;IACpF,IAAI,KAAK,CAAC,IAAI,KAAK,IAAI;QAAE,OAAO;IAChC,IAAI,IAAI;QAAE,MAAM,IAAI,QAAQ,CAAC,uBAAuB,CAAC,CAAC;IACtD,IAAI,eAAe;QAAE,MAAM,IAAI,QAAQ,CAAC,kCAAkC,CAAC,CAAC;IAC5E,IAAI,cAAc;QAAE,MAAM,IAAI,QAAQ,CAAC,iCAAiC,CAAC,CAAC;IAC1E,IAAI,qBAAqB;QAAE,MAAM,IAAI,QAAQ,CAAC,wCAAwC,CAAC,CAAC;AAC1F,CAAC;AAED,SAAS,aAAa,CAAC,YAAoB;IACzC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,UAAU,CAAC,QAAQ,GAAG,YAAY,CAAC,CAAC,CAAC,YAAY,CAAC;AACjF,CAAC;AAED,SAAS,eAAe,CAAC,UAAkB;IACzC,IAAI,UAAU,KAAK,UAAU,CAAC,QAAQ;QAAE,OAAO,GAAG,CAAC;IACnD,OAAO,UAAU,CAAC,OAAO,CAAC,IAAI,MAAM,CAAC,IAAI,UAAU,CAAC,QAAQ,GAAG,CAAC,EAAE,GAAG,CAAC,CAAC;AACzE,CAAC;AAED,SAAS,yBAAyB;IAChC,UAAU,CAAC,aAAa,CAAC,IAAI,WAAW,CAAC,cAAc,CAAC,CAAC,CAAC;AAC5D,CAAC;AAED,SAAS,eAAe,CAAC,MAA2B;IAClD,MAAM,OAAO,GACX,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC;QACxB,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,KAAK,EAAE,IAAI,WAAW,EAAE,EAAoB,CAAC;IAC5F,qBAAqB;IACrB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,gBAAgB,CAAC,OAAO,CAAC,IAAI,EAAE,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC5G,oCAAoC;IACpC,MAAM,cAAc,GAAG,IAAI,WAAW,CAAC,MAAM,CAAC,KAAK,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7F,MAAM,YAAY,GAAG,MAAM,CAAC,cAAc,CAAC,KAAK,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACtE,MAAM,KAAK,GAAG,YAAY,CAAC,CAAC,CAAC,cAAc,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC;IAC5D,MAAM,UAAU,GAAG,IAAI,KAAK,OAAO,CAAC,IAAI,IAAI,YAAY,CAAC;IACzD,2CAA2C;IAC3C,MAAM,KAAK,GAAG,MAAM,CAAC,KAAK,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;IACjE,MAAM,aAAa,GAAG,MAAM,CAAC,KAAK,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,IAAI,IAAI,MAAM,CAAC,WAAW,CAAC;IACvF,uCAAuC;IACvC,MAAM,IAAI,GAAG,kBAAkB,CAAC,MAAM,CAAC,IAAI,IAAI,CAAC,CAAC,UAAU,IAAI,aAAa,CAAC,CAAC,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;IACpG,OAAO,EAAE,GAAG,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC;AACjD,CAAC;AAED,SAAS,aAAa,CAAC,CAAsB,EAAE,MAAsC;IACnF,SAAS,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC;IAClB,MAAM,MAAM,GAAG,eAAe,CAAC,CAAC,CAAC,CAAC;IAClC,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,GAAG,MAAM,CAAC;IAC5E,MAAM,KAAK,GAAiB;QAC1B,eAAe,EAAE,CAAC,CAAC,KAAK;QACxB,cAAc,EAAE,CAAC,CAAC,IAAI;QACtB,qBAAqB,EAAE,CAAC,CAAC,WAAW;QACpC,IAAI,EAAE,MAAM,EAAE;QACd,MAAM,EAAE,KAAK;QACb,GAAG,IAAI;KACR,CAAC;IACF,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,yBAAyB,EAAE,CAAC;IAC5B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,CAAC;IACb,MAAM,GAAG,GAAG,aAAa,CAAC,IAAI,CAAC,GAAG,IAAI,WAAW,CAAC,KAAK,CAAC,GAAG,IAAI,CAAC;IAChE,MAAM,QAAQ,GAAG,kBAAkB,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;IACnD,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,IAAI,QAAQ,KAAK,IAAI;QAAE,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,yBAAyB;AACzB,SAAS,qBAAqB,CAAC,IAAS,EAAE,KAAa,EAAE,SAAiB,EAAE,MAAsC;IAChH,SAAS,CAAC,IAAI,CAAC,CAAC;IAChB,MAAM,KAAK,GAAG;QACZ,IAAI,EAAE,MAAM,EAAE;QACd,MAAM,EAAE,KAAK;QACb,GAAG,CAAC,IAAI,IAAI,EAAE,CAAC;KAChB,CAAC;IACF,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,IAAI,GAAG,CAAC,SAAS,EAAE,QAAQ,CAAC,MAAM,GAAG,QAAQ,CAAC,QAAQ,CAAC,CAAC;IAC3F,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,CAAC,CAAC;IACtG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAClC,yBAAyB,EAAE,CAAC;IAC5B,WAAW,CAAC,KAAK,CAAC,CAAC;IACnB,KAAK,CAAC,KAAK,CAAC,CAAC;IACb,MAAM,GAAG,GAAG,aAAa,CAAC,QAAQ,CAAC,GAAG,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC;IAC1D,MAAM,QAAQ,GAAG,QAAQ,CAAC,IAAI,CAAC;IAC/B,MAAM,CAAC,KAAK,EAAE,KAAK,EAAE,GAAG,CAAC,CAAC;IAC1B,oDAAoD;IACpD,IAAI,QAAQ,KAAK,IAAI;QAAE,aAAa,CAAC,IAAI,WAAW,CAAC,YAAY,CAAC,CAAC,CAAC;AACtE,CAAC;AAED,MAAM,gBAAgB,GAAG,WAAW,CAAC;IACnC,QAAQ,EAAE,EAAE;CACb,CAAC,CAAC;AAEH,MAAM,UAAW,SAAQ,WAAW;IAClC,IAAI,KAAK;QACP,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,UAAU;QACZ,OAAO,KAAK,CAAC,IAAI,CAAC;IACpB,CAAC;IACD,IAAI,QAAQ;QACV,OAAO,gBAAgB,CAAC,QAAQ,CAAC;IACnC,CAAC;IACD,IAAI,QAAQ,CAAC,QAAgB;QAC3B,aAAa;QACb,gBAAgB,CAAC,EAAE,QAAQ,EAAE,CAAC,CAAC;QAC/B,wBAAwB;QACxB,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,EAAE,IAAI,EAAE,eAAe,CAAC,QAAQ,CAAC,QAAQ,CAAC,EAAE,CAAC,CAAC;IAC1F,CAAC;IACD,SAAS;QACP,OAAO,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,CAAC;IACpC,CAAC;IACD,YAAY,CAAC,MAA2B;QACtC,MAAM,CAAC,MAAM,CAAC,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAE,EAAE,MAAM,CAAC,CAAC;QAClD,KAAK,EAAE,CAAC;IACV,CAAC;IACD,IAAI,CAAC,MAA2B;QAC9B,aAAa,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,CAAC,MAA2B;QACjC,aAAa,CAAC,MAAM,EAAE,kBAAkB,CAAC,CAAC;IAC5C,CAAC;IACD,qBAAqB,CAAC,MAA2B;QAC/C,IAAI,KAAK,CAAC,eAAe,EAAE,CAAC;YAC1B,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC;YACrC,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC,CAAC;QACvB,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpB,CAAC;IACH,CAAC;IACD,OAAO;QACL,aAAa,CAAC,OAAO,EAAE,CAAC;IAC1B,CAAC;IACD,IAAI;QACF,aAAa,CAAC,IAAI,EAAE,CAAC;IACvB,CAAC;CACF;AAED,+BAA+B;AAC/B,MAAM,UAAU,GAAG,IAAI,UAAU,EAAE,CAAC;AAEpC,MAAM,aAAa,GAAG,WAAW,CAAC,EAAE,YAAY,EAAE,QAAQ,CAAC,KAAK,EAAE,GAAG,EAAE,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC,CAAC;AAExF,MAAM,OAAO,GAAG,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,aAAa,EAAE,aAAa,EAAE,gBAAgB,EAAE,CAAC;AAOpG,IAAI,CAAC,UAAU,CAAC,WAAW,EAAE,CAAC;IAC5B,UAAU,CAAC,WAAW,GAAG,OAAO,CAAC;IAEjC,aAAa,CAAC,SAAS,GAAG,CAAC,KAAU,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QACpE,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,eAAe,CAAC,CAAC;IAC7D,CAAC,CAAC;IAEF,aAAa,CAAC,YAAY,GAAG,CAAC,KAAU,EAAE,KAAa,EAAE,IAAY,EAAE,EAAE;QACvE,qBAAqB,CAAC,KAAK,EAAE,KAAK,EAAE,IAAI,EAAE,kBAAkB,CAAC,CAAC;IAChE,CAAC,CAAC;IAEF,WAAW;IACX,gBAAgB,CAAC,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,EAAE,EAAE;QAC/C,IAAI,SAAS,EAAE,CAAC;YACd,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC9C,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,IAAI,CAAC,aAAa,CAAC,KAAK,EAAE,CAAC;QACzB,mBAAmB;QACnB,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;QACtD,iCAAiC;QACjC,IAAI,QAAQ,CAAC,UAAU,CAAC,MAAM,CAAC;YAAE,UAAU,CAAC,OAAO,CAAC,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/F,CAAC;SAAM,IAAI,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,CAAC;QAC/C,KAAK,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC;QAC3B,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,CAAC,CAAC;QAC1D,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAClC,kCAAkC;QAClC,UAAU,CAAC,IAAI,EAAE,CAAC;IACpB,CAAC;SAAM,CAAC;QACN,6BAA6B;QAC7B,MAAM,MAAM,GAAG,eAAe,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,KAAK,EAAE,IAAI,EAAE,QAAQ,CAAC,IAAI,EAAE,CAAC,CAAC;QAC/E,KAAK,CAAC;YACJ,IAAI,EAAE,MAAM,EAAE;YACd,GAAG,CAAC,aAAa,CAAC,KAAK,IAAI,EAAE,CAAC;SAC/B,CAAC,CAAC;QACH,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACpC,CAAC;IAED,OAAO,CAAC,aAAa,EAAE,GAAG,EAAE;QAC1B,MAAM,MAAM,GAAG,SAAS,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACzC,IAAI,MAAM,EAAE,CAAC;YACX,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC;QACrC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,KAAK,EAAE,GAAG,EAAE;QAClB,MAAM,EAAE,KAAK,EAAE,GAAG,UAAU,CAAC,SAAS,EAAE,CAAC;QACzC,IAAI,KAAK,KAAK,aAAa,CAAC,KAAK,EAAE,CAAC;YAClC,aAAa,CAAC,EAAE,KAAK,EAAE,CAAC,CAAC;QAC3B,CAAC;IACH,CAAC,CAAC,CAAC;IAEH;;OAEG;IACH,IAAI,UAAU,GAAG,KAAK,CAAC;IACvB,gBAAgB,CAAC,UAAU,EAAE,CAAC,KAAK,EAAE,EAAE;QACrC,MAAM,QAAQ,GAAG,KAAK,CAAC,KAA4B,CAAC;QACpD,IAAI,CAAC,QAAQ,EAAE,IAAI,EAAE,CAAC;YACpB,uBAAuB;YACvB,OAAO;QACT,CAAC;QACD,IAAI,UAAU,EAAE,CAAC;YACf,UAAU,GAAG,KAAK,CAAC;YACnB,OAAO;QACT,CAAC;QAED,qBAAqB;QACrB,eAAe;QAEf,+BAA+B;QAC/B,sBAAsB;QACtB,gCAAgC;QAChC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;YAClC,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,QAAQ,CAAC;YAC5C,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,EAAE;gBAC3B,IAAI,EAAE,QAAQ;gBACd,KAAK,EAAE,IAAI,WAAW,CAAC,MAAM,CAAC;gBAC9B,IAAI,EAAE,kBAAkB,CAAC,IAAI,CAAC;gBAC9B,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,uBAAuB;gBAC/C,IAAI,EAAE,QAAQ;aACf,CAAC,CAAC;QACL,CAAC;QAED,sBAAsB;QACtB,MAAM,SAAS,GAAG,KAAK,CAAC;QACxB,MAAM,SAAS,GAAG,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,GAAG,UAAU,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;QACzE,IAAI,SAAS,IAAI,QAAQ,CAAC,cAAc,EAAE,CAAC;YACzC,wBAAwB;YACxB,kCAAkC;YAClC,cAAc;YACd,SAAS,CAAC,GAAG,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,IAAI,EAAE,EAAE,CAAC;QACzC,CAAC;aAAM,IAAI,SAAS,CAAC,eAAe,EAAE,CAAC;YACrC,MAAM,UAAU,GAAG,SAAS,CAAC,GAAG,CAAC,SAAS,CAAC,IAAI,CAAC,CAAC;YACjD,MAAM,WAAW,GAAG,UAAU,EAAE,KAAK,CAAC;YACtC,MAAM,iBAAiB,GAAG,UAAU,EAAE,WAAW,CAAC;YAClD,MAAM,aAAa,GAAG,iBAAiB,IAAI,CAAC,iBAAiB,EAAE,CAAC;YAChE,IAAI,aAAa,EAAE,CAAC;gBAClB,UAAU,GAAG,IAAI,CAAC;gBAClB,UAAU,CAAC,OAAO,EAAE,CAAC,CAAC,iBAAiB;gBACvC,OAAO,CAAC,iCAAiC;YAC3C,CAAC;iBAAM,CAAC;gBACN,aAAa;gBACb,IAAI,WAAW,EAAE,CAAC;oBAChB,WAAW,EAAE,CAAC;gBAChB,CAAC;qBAAM,IAAI,QAAQ,CAAC,eAAe,EAAE,CAAC;oBACpC,oCAAoC;oBACpC,mBAAmB;oBACnB,gBAAgB;oBAChB,kCAAkC;oBAClC,UAAU,GAAG,IAAI,CAAC;oBAClB,UAAU,CAAC,IAAI,EAAE,CAAC;gBACpB,CAAC;YACH,CAAC;QACH,CAAC;QAED,yBAAyB,EAAE,CAAC;QAC5B,WAAW,CAAC,KAAK,CAAC,CAAC;QACnB,KAAK,CAAC,QAAQ,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC;AAED,MAAM,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,GAAG,UAAU,CAAC,WAAW,CAAC;AACtE,OAAO,EAAE,OAAO,EAAE,UAAU,EAAE,aAAa,EAAE,CAAC"}
|
package/lib/lit-html.d.ts
CHANGED
|
@@ -4,6 +4,11 @@
|
|
|
4
4
|
* SPDX-License-Identifier: BSD-3-Clause
|
|
5
5
|
*/
|
|
6
6
|
import type { Directive } from './directive';
|
|
7
|
+
/** TemplateResult types */
|
|
8
|
+
declare const HTML_RESULT = 1;
|
|
9
|
+
declare const SVG_RESULT = 2;
|
|
10
|
+
declare const MATHML_RESULT = 3;
|
|
11
|
+
type ResultType = typeof HTML_RESULT | typeof SVG_RESULT | typeof MATHML_RESULT;
|
|
7
12
|
declare const ATTRIBUTE_PART = 1;
|
|
8
13
|
declare const CHILD_PART = 2;
|
|
9
14
|
declare const PROPERTY_PART = 3;
|
|
@@ -11,11 +16,6 @@ declare const BOOLEAN_ATTRIBUTE_PART = 4;
|
|
|
11
16
|
declare const EVENT_PART = 5;
|
|
12
17
|
declare const ELEMENT_PART = 6;
|
|
13
18
|
declare const COMMENT_PART = 7;
|
|
14
|
-
declare enum ResultType {
|
|
15
|
-
HTML = 0,
|
|
16
|
-
SVG = 1,
|
|
17
|
-
MATHML = 2
|
|
18
|
-
}
|
|
19
19
|
export declare class TemplateResult {
|
|
20
20
|
type: ResultType;
|
|
21
21
|
strings: TemplateStringsArray;
|
|
@@ -68,11 +68,7 @@ export interface DirectiveParent {
|
|
|
68
68
|
__directive?: Directive;
|
|
69
69
|
__directives?: Array<Directive | undefined>;
|
|
70
70
|
}
|
|
71
|
-
/** @internal */
|
|
72
|
-
export type { Template };
|
|
73
71
|
declare class Template {
|
|
74
|
-
/** @internal */
|
|
75
|
-
el: HTMLTemplateElement;
|
|
76
72
|
parts: Array<TemplatePart>;
|
|
77
73
|
constructor({ strings, type }: TemplateResult, options?: RenderOptions);
|
|
78
74
|
/** @nocollapse */
|
|
@@ -91,10 +87,6 @@ export type { TemplateInstance };
|
|
|
91
87
|
declare class TemplateInstance implements Disconnectable {
|
|
92
88
|
_$template: Template;
|
|
93
89
|
_$parts: Array<Part | undefined>;
|
|
94
|
-
/** @internal */
|
|
95
|
-
_$parent: ChildPart;
|
|
96
|
-
/** @internal */
|
|
97
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
98
90
|
constructor(template: Template, parent: ChildPart);
|
|
99
91
|
get parentNode(): Node;
|
|
100
92
|
get _$isConnected(): boolean;
|
|
@@ -131,30 +123,7 @@ export declare class ChildPart implements Disconnectable {
|
|
|
131
123
|
readonly type = 2;
|
|
132
124
|
readonly options: RenderOptions | undefined;
|
|
133
125
|
_$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
126
|
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
127
|
constructor(startNode: ChildNode, endNode: ChildNode | null, parent: TemplateInstance | ChildPart | undefined, options: RenderOptions | undefined);
|
|
159
128
|
/**
|
|
160
129
|
* The parent node into which the part renders its content.
|
|
@@ -190,29 +159,7 @@ export declare class ChildPart implements Disconnectable {
|
|
|
190
159
|
private _commitNode;
|
|
191
160
|
private _commitText;
|
|
192
161
|
private _commitTemplateResult;
|
|
193
|
-
/** @internal */
|
|
194
|
-
_$getTemplate(result: TemplateResult): Template;
|
|
195
162
|
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
163
|
}
|
|
217
164
|
/**
|
|
218
165
|
* A top-level `ChildPart` returned from `render` that manages the connected
|
|
@@ -248,74 +195,28 @@ declare class AttributePart implements Disconnectable {
|
|
|
248
195
|
* this is undefined.
|
|
249
196
|
*/
|
|
250
197
|
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
198
|
get tagName(): string;
|
|
260
199
|
get _$isConnected(): boolean;
|
|
261
200
|
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
201
|
}
|
|
288
202
|
export type { PropertyPart };
|
|
289
203
|
declare class PropertyPart extends AttributePart {
|
|
290
204
|
readonly type = 3;
|
|
291
|
-
/** @internal */
|
|
292
|
-
_commitValue(value: unknown): void;
|
|
293
205
|
}
|
|
294
206
|
export type { BooleanAttributePart };
|
|
295
207
|
declare class BooleanAttributePart extends AttributePart {
|
|
296
208
|
readonly type = 4;
|
|
297
|
-
/** @internal */
|
|
298
|
-
_commitValue(value: unknown): void;
|
|
299
209
|
}
|
|
300
210
|
export type { EventPart };
|
|
301
211
|
declare class EventPart extends AttributePart {
|
|
302
212
|
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
213
|
handleEvent(event: Event): void;
|
|
307
214
|
}
|
|
308
215
|
export type { ElementPart };
|
|
309
216
|
declare class ElementPart implements Disconnectable {
|
|
310
217
|
element: Element;
|
|
311
218
|
readonly type = 6;
|
|
312
|
-
/** @internal */
|
|
313
|
-
__directive?: Directive;
|
|
314
219
|
_$committedValue: undefined;
|
|
315
|
-
/** @internal */
|
|
316
|
-
_$parent: Disconnectable;
|
|
317
|
-
/** @internal */
|
|
318
|
-
_$disconnectableChildren?: Set<Disconnectable>;
|
|
319
220
|
_$props: any;
|
|
320
221
|
options: RenderOptions | undefined;
|
|
321
222
|
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;;;;GAIG;
|
|
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
|
@@ -5,9 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
const global = globalThis;
|
|
7
7
|
const trustedTypes = global.trustedTypes;
|
|
8
|
-
const policy = trustedTypes?.createPolicy('lit-html', {
|
|
9
|
-
createHTML: (s) => s,
|
|
10
|
-
});
|
|
8
|
+
const policy = trustedTypes?.createPolicy('lit-html', { createHTML: (s) => s });
|
|
11
9
|
// Added to an attribute name to mark the attribute as bound so we can find
|
|
12
10
|
// it easily.
|
|
13
11
|
const boundAttributeSuffix = '$lit$';
|
|
@@ -24,7 +22,7 @@ const nodeMarker = `<${markerMatch}>`;
|
|
|
24
22
|
const d = document;
|
|
25
23
|
// Creates a dynamic marker. We never have to search for these in the DOM.
|
|
26
24
|
const createMarker = () => d.createComment('');
|
|
27
|
-
const isPrimitive = (value) => value === null || (typeof value
|
|
25
|
+
const isPrimitive = (value) => value === null || (typeof value !== 'object' && typeof value !== 'function');
|
|
28
26
|
const isNullish = (value) => value === null || value === undefined;
|
|
29
27
|
const isIterable = (value) => Symbol.iterator in value;
|
|
30
28
|
const SPACE_CHAR = `[ \t\n\f\r]`;
|
|
@@ -88,6 +86,10 @@ const doubleQuoteAttrEndRegex = /"/g;
|
|
|
88
86
|
* text content for marker strings.
|
|
89
87
|
*/
|
|
90
88
|
const rawTextElement = /^(?:script|style|textarea|title)$/i;
|
|
89
|
+
/** TemplateResult types */
|
|
90
|
+
const HTML_RESULT = 1;
|
|
91
|
+
const SVG_RESULT = 2;
|
|
92
|
+
const MATHML_RESULT = 3;
|
|
91
93
|
// TemplatePart types
|
|
92
94
|
// IMPORTANT: these must match the values in PartType
|
|
93
95
|
const ATTRIBUTE_PART = 1;
|
|
@@ -97,12 +99,9 @@ const BOOLEAN_ATTRIBUTE_PART = 4;
|
|
|
97
99
|
const EVENT_PART = 5;
|
|
98
100
|
const ELEMENT_PART = 6;
|
|
99
101
|
const COMMENT_PART = 7;
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
ResultType[ResultType["SVG"] = 1] = "SVG";
|
|
104
|
-
ResultType[ResultType["MATHML"] = 2] = "MATHML";
|
|
105
|
-
})(ResultType || (ResultType = {}));
|
|
102
|
+
const V_IF = 'v-if';
|
|
103
|
+
const V_ELSE_IF = 'v-else-if';
|
|
104
|
+
const V_ELSE = 'v-else';
|
|
106
105
|
export class TemplateResult {
|
|
107
106
|
type;
|
|
108
107
|
strings;
|
|
@@ -116,9 +115,9 @@ export class TemplateResult {
|
|
|
116
115
|
const tag = (type) => (strings, ...values) => {
|
|
117
116
|
return new TemplateResult(type, strings, values);
|
|
118
117
|
};
|
|
119
|
-
export const html = tag(
|
|
120
|
-
export const svg = tag(
|
|
121
|
-
export const mathml = tag(
|
|
118
|
+
export const html = tag(HTML_RESULT);
|
|
119
|
+
export const svg = tag(SVG_RESULT);
|
|
120
|
+
export const mathml = tag(MATHML_RESULT);
|
|
122
121
|
// for directive
|
|
123
122
|
export const noChange = Symbol.for('lit-noChange');
|
|
124
123
|
const templateCache = new WeakMap();
|
|
@@ -152,7 +151,7 @@ const getTemplateHtml = (strings, type) => {
|
|
|
152
151
|
// parts. ElementParts are also reflected in this array as undefined
|
|
153
152
|
// rather than a string, to disambiguate from attribute bindings.
|
|
154
153
|
const attrNames = [];
|
|
155
|
-
let htmlStr = type ===
|
|
154
|
+
let htmlStr = type === SVG_RESULT ? '<svg>' : type === MATHML_RESULT ? '<math>' : '';
|
|
156
155
|
// When we're inside a raw text tag (not it's text content), the regex
|
|
157
156
|
// will still be tagRegex so we can find attributes, but will switch to
|
|
158
157
|
// this regex when the tag ends.
|
|
@@ -261,9 +260,7 @@ const getTemplateHtml = (strings, type) => {
|
|
|
261
260
|
end
|
|
262
261
|
: s + marker + (attrNameEndIndex === -2 ? i : end);
|
|
263
262
|
}
|
|
264
|
-
const htmlResult = htmlStr +
|
|
265
|
-
(strings[l] || '<?>') +
|
|
266
|
-
(type === ResultType.SVG ? '</svg>' : type === ResultType.MATHML ? '</math>' : '');
|
|
263
|
+
const htmlResult = htmlStr + (strings[l] || '<?>') + (type === SVG_RESULT ? '</svg>' : type === MATHML_RESULT ? '</math>' : '');
|
|
267
264
|
// Returned as an array for terseness
|
|
268
265
|
return [trustFromTemplateString(strings, htmlResult), attrNames];
|
|
269
266
|
};
|
|
@@ -282,7 +279,7 @@ class Template {
|
|
|
282
279
|
this.el = Template.createElement(trustedHtml, options);
|
|
283
280
|
walker.currentNode = this.el.content;
|
|
284
281
|
// Re-parent SVG or MathML nodes into template root
|
|
285
|
-
if (type ===
|
|
282
|
+
if (type === SVG_RESULT || type === MATHML_RESULT) {
|
|
286
283
|
const wrapper = this.el.content.firstChild;
|
|
287
284
|
wrapper.replaceWith(...wrapper.childNodes);
|
|
288
285
|
}
|
|
@@ -390,10 +387,10 @@ function resolveDirective(part, value, parent = part, attributeIndex) {
|
|
|
390
387
|
const nextDirectiveConstructor = isPrimitive(value)
|
|
391
388
|
? undefined
|
|
392
389
|
: // This property needs to remain unminified.
|
|
393
|
-
value
|
|
390
|
+
value._$litDirective$;
|
|
394
391
|
if (currentDirective?.constructor !== nextDirectiveConstructor) {
|
|
395
392
|
// This property needs to remain unminified.
|
|
396
|
-
currentDirective?.
|
|
393
|
+
currentDirective?._$notifyDirectiveConnectionChanged?.(false);
|
|
397
394
|
if (nextDirectiveConstructor === undefined) {
|
|
398
395
|
currentDirective = undefined;
|
|
399
396
|
}
|
|
@@ -421,6 +418,8 @@ class TemplateInstance {
|
|
|
421
418
|
_$template;
|
|
422
419
|
_$parts = [];
|
|
423
420
|
/** @internal */
|
|
421
|
+
_$conditions = [];
|
|
422
|
+
/** @internal */
|
|
424
423
|
_$parent;
|
|
425
424
|
/** @internal */
|
|
426
425
|
_$disconnectableChildren = undefined;
|
|
@@ -439,7 +438,9 @@ class TemplateInstance {
|
|
|
439
438
|
// This method is separate from the constructor because we need to return a
|
|
440
439
|
// DocumentFragment and we don't want to hold onto it with an instance field.
|
|
441
440
|
_clone(options) {
|
|
442
|
-
const { el: { content }, parts
|
|
441
|
+
const { el: { content }, parts, } = this._$template;
|
|
442
|
+
const ifMap = new Map();
|
|
443
|
+
const elseIfMap = new Map();
|
|
443
444
|
const fragment = (options?.creationScope ?? d).importNode(content, true);
|
|
444
445
|
walker.currentNode = fragment;
|
|
445
446
|
let node = walker.nextNode();
|
|
@@ -453,6 +454,8 @@ class TemplateInstance {
|
|
|
453
454
|
part = new ChildPart(node, node.nextSibling, this, options);
|
|
454
455
|
}
|
|
455
456
|
else if (templatePart.type === ATTRIBUTE_PART) {
|
|
457
|
+
templatePart.name === V_IF && ifMap.set(node, partIndex);
|
|
458
|
+
templatePart.name === V_ELSE_IF && elseIfMap.set(node, partIndex);
|
|
456
459
|
part = new templatePart.ctor(node, templatePart.name, templatePart.strings, this, options);
|
|
457
460
|
}
|
|
458
461
|
else if (templatePart.type === ELEMENT_PART) {
|
|
@@ -466,6 +469,17 @@ class TemplateInstance {
|
|
|
466
469
|
nodeIndex++;
|
|
467
470
|
}
|
|
468
471
|
}
|
|
472
|
+
ifMap.forEach((idx, element) => {
|
|
473
|
+
const chain = new ConditionChain(element, idx);
|
|
474
|
+
this._$conditions.push(chain);
|
|
475
|
+
let ele = element;
|
|
476
|
+
while ((ele = ele.nextElementSibling)) {
|
|
477
|
+
const pos = elseIfMap.get(ele);
|
|
478
|
+
if (pos === undefined)
|
|
479
|
+
break;
|
|
480
|
+
chain.push(ele, pos);
|
|
481
|
+
}
|
|
482
|
+
});
|
|
469
483
|
// We need to set the currentNode away from the cloned tree so that we
|
|
470
484
|
// don't hold onto the tree even if the tree is detached and should be
|
|
471
485
|
// freed.
|
|
@@ -483,12 +497,47 @@ class TemplateInstance {
|
|
|
483
497
|
// later in the loop, so increment it by part.strings.length - 2 here
|
|
484
498
|
i += part.strings.length - 2;
|
|
485
499
|
}
|
|
500
|
+
else if (part.name === V_IF || part.name === V_ELSE_IF) {
|
|
501
|
+
}
|
|
486
502
|
else {
|
|
487
503
|
part._$setValue(values[i]);
|
|
488
504
|
}
|
|
489
505
|
}
|
|
490
506
|
i++;
|
|
491
507
|
}
|
|
508
|
+
this._$conditions.forEach((e) => e.update(values));
|
|
509
|
+
}
|
|
510
|
+
}
|
|
511
|
+
class ConditionChain {
|
|
512
|
+
mark;
|
|
513
|
+
list;
|
|
514
|
+
constructor(ele, idx) {
|
|
515
|
+
const mark = createMarker();
|
|
516
|
+
ele.before(mark);
|
|
517
|
+
this.mark = mark;
|
|
518
|
+
this.list = [{ ele, idx }];
|
|
519
|
+
this.check();
|
|
520
|
+
}
|
|
521
|
+
get next() {
|
|
522
|
+
return this.list.at(-1).ele.nextElementSibling;
|
|
523
|
+
}
|
|
524
|
+
push(ele, idx) {
|
|
525
|
+
this.list.push({ ele, idx });
|
|
526
|
+
this.check();
|
|
527
|
+
}
|
|
528
|
+
check() {
|
|
529
|
+
const next = this.next;
|
|
530
|
+
if (next?.attributes.getNamedItem(V_ELSE)) {
|
|
531
|
+
this.list.push({ ele: next });
|
|
532
|
+
next.removeAttribute(V_ELSE);
|
|
533
|
+
}
|
|
534
|
+
}
|
|
535
|
+
update(values) {
|
|
536
|
+
const { mark, list } = this;
|
|
537
|
+
const show = list.find(({ idx }) => idx === undefined || !!values[idx]);
|
|
538
|
+
if (show && !show.ele.parentNode)
|
|
539
|
+
mark.after(show.ele);
|
|
540
|
+
list.forEach(({ ele }) => (!show || ele !== show.ele) && ele.remove());
|
|
492
541
|
}
|
|
493
542
|
}
|
|
494
543
|
export class ChildPart {
|
|
@@ -852,9 +901,6 @@ class BooleanAttributePart extends AttributePart {
|
|
|
852
901
|
}
|
|
853
902
|
class EventPart extends AttributePart {
|
|
854
903
|
type = EVENT_PART;
|
|
855
|
-
constructor(element, name, strings, parent, options) {
|
|
856
|
-
super(element, name, strings, parent, options);
|
|
857
|
-
}
|
|
858
904
|
/** @internal */
|
|
859
905
|
_$setValue(newListener, directiveParent = this) {
|
|
860
906
|
newListener = resolveDirective(this, newListener, directiveParent, 0);
|
|
@@ -910,7 +956,7 @@ class ElementPart {
|
|
|
910
956
|
if (value instanceof Ref) {
|
|
911
957
|
value.value = this.element;
|
|
912
958
|
}
|
|
913
|
-
else if (value
|
|
959
|
+
else if (value._$litDirective$) {
|
|
914
960
|
resolveDirective(this, value);
|
|
915
961
|
}
|
|
916
962
|
else {
|
|
@@ -930,10 +976,10 @@ class Ref {
|
|
|
930
976
|
}
|
|
931
977
|
export const render = (value, container, options) => {
|
|
932
978
|
const partOwnerNode = (options?.renderBefore ?? container);
|
|
933
|
-
let part = partOwnerNode
|
|
979
|
+
let part = partOwnerNode._$litPart$;
|
|
934
980
|
if (part === undefined) {
|
|
935
981
|
const endNode = options?.renderBefore ?? null;
|
|
936
|
-
partOwnerNode
|
|
982
|
+
partOwnerNode._$litPart$ = part = new ChildPart(container.insertBefore(createMarker(), endNode), endNode, undefined, options ?? {});
|
|
937
983
|
}
|
|
938
984
|
part._$setValue(value);
|
|
939
985
|
return part;
|