@weapp-vite/web 2.0.1 → 2.1.0
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/_virtual/_rolldown/runtime.mjs +1 -2
- package/dist/compiler/wxml/attributes.mjs +12 -4
- package/dist/compiler/wxml/attributes.mjs.map +1 -1
- package/dist/compiler/wxml/compile.mjs +26 -8
- package/dist/compiler/wxml/compile.mjs.map +1 -1
- package/dist/compiler/wxml/dependency.mjs +1 -2
- package/dist/compiler/wxml/interpolation.mjs +13 -3
- package/dist/compiler/wxml/interpolation.mjs.map +1 -1
- package/dist/compiler/wxml/nativeTags.mjs +60 -0
- package/dist/compiler/wxml/nativeTags.mjs.map +1 -0
- package/dist/compiler/wxml/navigation.mjs +1 -2
- package/dist/compiler/wxml/parser.mjs +1 -2
- package/dist/compiler/wxml/prepare.mjs +1 -2
- package/dist/compiler/wxml/renderer.mjs +1 -2
- package/dist/compiler/wxml/specialNodes.mjs +1 -2
- package/dist/compiler/wxml/types.d.mts +0 -2
- package/dist/compiler/wxml/unknownTags.mjs +33 -0
- package/dist/compiler/wxml/unknownTags.mjs.map +1 -0
- package/dist/compiler/wxs.mjs +1 -2
- package/dist/css/wxss.d.mts +2 -19
- package/dist/css/wxss.mjs +5 -12
- package/dist/css/wxss.mjs.map +1 -1
- package/dist/index.d.mts +8 -3
- package/dist/index.mjs +8 -5
- package/dist/plugin/assets.d.mts +0 -2
- package/dist/plugin/assets.mjs +1 -2
- package/dist/plugin/constants.mjs +1 -2
- package/dist/plugin/dependencyScan.mjs +1 -2
- package/dist/plugin/entry.mjs +6 -4
- package/dist/plugin/entry.mjs.map +1 -1
- package/dist/plugin/files.mjs +1 -2
- package/dist/plugin/hostTypes.d.mts +0 -2
- package/dist/plugin/index.d.mts +0 -2
- package/dist/plugin/index.mjs +5 -5
- package/dist/plugin/index.mjs.map +1 -1
- package/dist/plugin/layout.mjs +1 -2
- package/dist/plugin/navigation.mjs +1 -2
- package/dist/plugin/packageResolution.mjs +1 -2
- package/dist/plugin/path.mjs +1 -2
- package/dist/plugin/register.mjs +1 -2
- package/dist/plugin/scan.mjs +1 -2
- package/dist/plugin/scanConfig.mjs +1 -2
- package/dist/plugin/scanSfc.mjs +1 -2
- package/dist/plugin/sfcHmr.mjs +1 -2
- package/dist/plugin/state.mjs +1 -2
- package/dist/plugin/styleModule.mjs +1 -2
- package/dist/plugin/types.d.mts +2 -3
- package/dist/plugin/vueSfc.mjs +1 -2
- package/dist/runtime/appShell/container.mjs +1 -2
- package/dist/runtime/appShell/tabBar/index.mjs +1 -2
- package/dist/runtime/appShell/tabBar/style.mjs +1 -2
- package/dist/runtime/appStyle.mjs +1 -2
- package/dist/runtime/button/helpers.mjs +1 -2
- package/dist/runtime/button/index.d.mts +0 -2
- package/dist/runtime/button/index.mjs +1 -2
- package/dist/runtime/button/style.mjs +1 -2
- package/dist/runtime/component/behavior.mjs +1 -2
- package/dist/runtime/component/constants.mjs +1 -2
- package/dist/runtime/component/dom.mjs +1 -2
- package/dist/runtime/component/element.mjs +9 -2
- package/dist/runtime/component/element.mjs.map +1 -1
- package/dist/runtime/component/events.mjs +4 -4
- package/dist/runtime/component/events.mjs.map +1 -1
- package/dist/runtime/component/index.d.mts +0 -2
- package/dist/runtime/component/index.mjs +1 -2
- package/dist/runtime/component/observers.mjs +1 -2
- package/dist/runtime/component/publicInstance.mjs +1 -2
- package/dist/runtime/component/relations.mjs +1 -2
- package/dist/runtime/component/slots.mjs +1 -2
- package/dist/runtime/component/state.mjs +1 -2
- package/dist/runtime/component/types.d.mts +0 -2
- package/dist/runtime/component/utils.mjs +1 -2
- package/dist/runtime/component/virtualHost.mjs +1 -2
- package/dist/runtime/componentEvents.mjs +1 -2
- package/dist/runtime/dataset.mjs +49 -0
- package/dist/runtime/dataset.mjs.map +1 -0
- package/dist/runtime/datasetBinding.d.mts +13 -0
- package/dist/runtime/datasetBinding.mjs +40 -0
- package/dist/runtime/datasetBinding.mjs.map +1 -0
- package/dist/runtime/eventBinding.d.mts +0 -2
- package/dist/runtime/eventBinding.mjs +1 -2
- package/dist/runtime/execution.d.mts +0 -2
- package/dist/runtime/execution.mjs +1 -2
- package/dist/runtime/host/index.d.mts +0 -2
- package/dist/runtime/host/index.mjs +1 -2
- package/dist/runtime/host/types.d.mts +0 -2
- package/dist/runtime/hostGlobals.d.mts +0 -2
- package/dist/runtime/hostGlobals.mjs +1 -2
- package/dist/runtime/index.d.mts +8 -3
- package/dist/runtime/index.mjs +9 -7
- package/dist/runtime/index.mjs.map +1 -1
- package/dist/runtime/inlineStyle.d.mts +5 -0
- package/dist/runtime/inlineStyle.mjs +21 -0
- package/dist/runtime/inlineStyle.mjs.map +1 -0
- package/dist/runtime/inputHandlerResult.mjs +1 -2
- package/dist/runtime/legacyTemplate/dataset.mjs +53 -0
- package/dist/runtime/legacyTemplate/dataset.mjs.map +1 -0
- package/dist/runtime/legacyTemplate/dom.mjs +20 -5
- package/dist/runtime/legacyTemplate/dom.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/expression.mjs +1 -2
- package/dist/runtime/legacyTemplate/index.d.mts +0 -2
- package/dist/runtime/legacyTemplate/index.mjs +23 -16
- package/dist/runtime/legacyTemplate/index.mjs.map +1 -1
- package/dist/runtime/legacyTemplate/types.d.mts +0 -2
- package/dist/runtime/nativeComponents/canvas/index.mjs +1 -2
- package/dist/runtime/nativeComponents/checkbox.mjs +1 -2
- package/dist/runtime/nativeComponents/cover/index.mjs +1 -2
- package/dist/runtime/nativeComponents/form.d.mts +0 -2
- package/dist/runtime/nativeComponents/form.mjs +1 -2
- package/dist/runtime/nativeComponents/formControl.mjs +1 -2
- package/dist/runtime/nativeComponents/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/icon/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/icon/index.mjs +1 -2
- package/dist/runtime/nativeComponents/icon/style.mjs +1 -2
- package/dist/runtime/nativeComponents/image.d.mts +0 -2
- package/dist/runtime/nativeComponents/image.mjs +1 -2
- package/dist/runtime/nativeComponents/index.d.mts +1 -3
- package/dist/runtime/nativeComponents/index.mjs +3 -3
- package/dist/runtime/nativeComponents/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/input.d.mts +0 -2
- package/dist/runtime/nativeComponents/input.mjs +1 -2
- package/dist/runtime/nativeComponents/label.mjs +1 -2
- package/dist/runtime/nativeComponents/mediaRegistry.mjs +1 -2
- package/dist/runtime/nativeComponents/movable/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/movable/index.mjs +1 -2
- package/dist/runtime/nativeComponents/navigator.mjs +1 -2
- package/dist/runtime/nativeComponents/picker/editors.mjs +1 -2
- package/dist/runtime/nativeComponents/picker/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/picker/index.mjs +1 -2
- package/dist/runtime/nativeComponents/picker/style.mjs +1 -2
- package/dist/runtime/nativeComponents/pickerView/column.mjs +1 -2
- package/dist/runtime/nativeComponents/pickerView/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/pickerView/index.mjs +1 -2
- package/dist/runtime/nativeComponents/pickerView/style.mjs +1 -2
- package/dist/runtime/nativeComponents/primitives.mjs +1 -2
- package/dist/runtime/nativeComponents/progress/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/progress/index.mjs +1 -2
- package/dist/runtime/nativeComponents/progress/style.mjs +1 -2
- package/dist/runtime/nativeComponents/radio.mjs +1 -2
- package/dist/runtime/nativeComponents/richText/index.mjs +1 -2
- package/dist/runtime/nativeComponents/scrollView/boundaries.mjs +62 -0
- package/dist/runtime/nativeComponents/scrollView/boundaries.mjs.map +1 -0
- package/dist/runtime/nativeComponents/{scrollView.d.mts → scrollView/helpers.d.mts} +4 -5
- package/dist/runtime/nativeComponents/scrollView/helpers.mjs +14 -0
- package/dist/runtime/nativeComponents/scrollView/helpers.mjs.map +1 -0
- package/dist/runtime/nativeComponents/scrollView/index.mjs +193 -0
- package/dist/runtime/nativeComponents/scrollView/index.mjs.map +1 -0
- package/dist/runtime/nativeComponents/scrollView/position.mjs +43 -0
- package/dist/runtime/nativeComponents/scrollView/position.mjs.map +1 -0
- package/dist/runtime/nativeComponents/slider/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/slider/index.mjs +1 -2
- package/dist/runtime/nativeComponents/slider/style.mjs +1 -2
- package/dist/runtime/nativeComponents/style.mjs +1 -2
- package/dist/runtime/nativeComponents/swiper/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/swiper/index.mjs +1 -2
- package/dist/runtime/nativeComponents/swiper/item.mjs +1 -2
- package/dist/runtime/nativeComponents/swiper/style.mjs +1 -2
- package/dist/runtime/nativeComponents/switch.d.mts +0 -2
- package/dist/runtime/nativeComponents/switch.mjs +1 -2
- package/dist/runtime/nativeComponents/textarea.d.mts +0 -2
- package/dist/runtime/nativeComponents/textarea.mjs +1 -2
- package/dist/runtime/nativeComponents/video/helpers.d.mts +0 -2
- package/dist/runtime/nativeComponents/video/helpers.mjs +1 -2
- package/dist/runtime/nativeComponents/video/index.mjs +1 -2
- package/dist/runtime/nativeComponents/video/style.mjs +1 -2
- package/dist/runtime/navigationBar/index.d.mts +0 -2
- package/dist/runtime/navigationBar/index.mjs +1 -2
- package/dist/runtime/navigationBar/style.mjs +1 -2
- package/dist/runtime/pageLayout.d.mts +0 -2
- package/dist/runtime/pageLayout.mjs +1 -2
- package/dist/runtime/polyfill/ad.mjs +1 -2
- package/dist/runtime/polyfill/animation.mjs +1 -2
- package/dist/runtime/polyfill/appState.mjs +1 -2
- package/dist/runtime/polyfill/async.d.mts +0 -2
- package/dist/runtime/polyfill/async.mjs +1 -2
- package/dist/runtime/polyfill/auth.mjs +1 -2
- package/dist/runtime/polyfill/authApi.mjs +1 -2
- package/dist/runtime/polyfill/background.mjs +1 -2
- package/dist/runtime/polyfill/canvasContext.mjs +1 -2
- package/dist/runtime/polyfill/capability.mjs +1 -2
- package/dist/runtime/polyfill/cloud.mjs +1 -2
- package/dist/runtime/polyfill/device.mjs +1 -2
- package/dist/runtime/polyfill/deviceApi.mjs +1 -2
- package/dist/runtime/polyfill/deviceAuthSystemApi.d.mts +0 -2
- package/dist/runtime/polyfill/deviceAuthSystemApi.mjs +1 -2
- package/dist/runtime/polyfill/eventBus.mjs +1 -2
- package/dist/runtime/polyfill/filePicker.mjs +1 -2
- package/dist/runtime/polyfill/fileSystemManager.mjs +1 -2
- package/dist/runtime/polyfill/files.mjs +1 -2
- package/dist/runtime/polyfill/font.mjs +1 -2
- package/dist/runtime/polyfill/index.d.mts +4 -4
- package/dist/runtime/polyfill/index.mjs +11 -4
- package/dist/runtime/polyfill/index.mjs.map +1 -1
- package/dist/runtime/polyfill/interaction.mjs +1 -2
- package/dist/runtime/polyfill/interactionApi.mjs +1 -2
- package/dist/runtime/polyfill/intersectionObserver.mjs +4 -4
- package/dist/runtime/polyfill/intersectionObserver.mjs.map +1 -1
- package/dist/runtime/polyfill/lifecycleEvents.d.mts +12 -0
- package/dist/runtime/polyfill/lifecycleEvents.mjs +67 -0
- package/dist/runtime/polyfill/lifecycleEvents.mjs.map +1 -0
- package/dist/runtime/polyfill/locale.mjs +1 -2
- package/dist/runtime/polyfill/location.mjs +1 -2
- package/dist/runtime/polyfill/locationApi.mjs +1 -2
- package/dist/runtime/polyfill/mediaActions.mjs +1 -2
- package/dist/runtime/polyfill/mediaApi/file.mjs +1 -2
- package/dist/runtime/polyfill/mediaApi/info.mjs +1 -2
- package/dist/runtime/polyfill/mediaApi/picker.mjs +1 -2
- package/dist/runtime/polyfill/mediaApi/preview.mjs +1 -2
- package/dist/runtime/polyfill/mediaApi/process.mjs +1 -2
- package/dist/runtime/polyfill/mediaInfo.mjs +1 -2
- package/dist/runtime/polyfill/mediaPicker.mjs +1 -2
- package/dist/runtime/polyfill/mediaProcess.mjs +1 -2
- package/dist/runtime/polyfill/menuApi.mjs +5 -3
- package/dist/runtime/polyfill/menuApi.mjs.map +1 -1
- package/dist/runtime/polyfill/navigationBarRuntime.mjs +1 -2
- package/dist/runtime/polyfill/network/request.mjs +1 -2
- package/dist/runtime/polyfill/network/requestBridge.mjs +1 -2
- package/dist/runtime/polyfill/network/status.mjs +1 -2
- package/dist/runtime/polyfill/platformApi.mjs +1 -2
- package/dist/runtime/polyfill/platformRuntime.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/dom.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/events.d.mts +0 -2
- package/dist/runtime/polyfill/routeRuntime/events.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/history.d.mts +0 -2
- package/dist/runtime/polyfill/routeRuntime/history.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/lifecycle.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/options.d.mts +0 -2
- package/dist/runtime/polyfill/routeRuntime/options.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/result.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/scroll.mjs +37 -6
- package/dist/runtime/polyfill/routeRuntime/scroll.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/stack.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime/url.mjs +1 -2
- package/dist/runtime/polyfill/routeRuntime.d.mts +2 -2
- package/dist/runtime/polyfill/routeRuntime.mjs +14 -5
- package/dist/runtime/polyfill/routeRuntime.mjs.map +1 -1
- package/dist/runtime/polyfill/runtimeCapabilityApi.mjs +1 -2
- package/dist/runtime/polyfill/runtimeDataApi.d.mts +0 -2
- package/dist/runtime/polyfill/runtimeDataApi.mjs +1 -2
- package/dist/runtime/polyfill/runtimeInfra.mjs +1 -2
- package/dist/runtime/polyfill/runtimeOps.mjs +1 -2
- package/dist/runtime/polyfill/selectorQuery.mjs +3 -3
- package/dist/runtime/polyfill/selectorQuery.mjs.map +1 -1
- package/dist/runtime/polyfill/storage.mjs +1 -2
- package/dist/runtime/polyfill/storageAsync.mjs +1 -2
- package/dist/runtime/polyfill/subscribe.mjs +1 -2
- package/dist/runtime/polyfill/system.mjs +1 -2
- package/dist/runtime/polyfill/systemApi.mjs +1 -2
- package/dist/runtime/polyfill/types/base.d.mts +0 -2
- package/dist/runtime/polyfill/types/common.d.mts +0 -2
- package/dist/runtime/polyfill/types/lifecycle.d.mts +12 -0
- package/dist/runtime/polyfill/types/locationRuntime.d.mts +0 -2
- package/dist/runtime/polyfill/types/mediaAuth.d.mts +0 -2
- package/dist/runtime/polyfill/types/platformRuntime.d.mts +0 -2
- package/dist/runtime/polyfill/types/systemAuth.d.mts +0 -2
- package/dist/runtime/polyfill/types/tabBarRuntime.d.mts +0 -2
- package/dist/runtime/polyfill/ui.mjs +1 -2
- package/dist/runtime/polyfill/uiFeedback.mjs +19 -5
- package/dist/runtime/polyfill/uiFeedback.mjs.map +1 -1
- package/dist/runtime/polyfill/uiMediaApi.d.mts +8 -2
- package/dist/runtime/polyfill/uiMediaApi.mjs +20 -5
- package/dist/runtime/polyfill/uiMediaApi.mjs.map +1 -1
- package/dist/runtime/polyfill/videoContext.mjs +1 -2
- package/dist/runtime/polyfill/vkSession.mjs +1 -2
- package/dist/runtime/polyfill/windowResize.mjs +1 -2
- package/dist/runtime/polyfill/worker.mjs +1 -2
- package/dist/runtime/polyfill.d.mts +4 -2
- package/dist/runtime/renderContext.d.mts +0 -2
- package/dist/runtime/renderContext.mjs +5 -4
- package/dist/runtime/renderContext.mjs.map +1 -1
- package/dist/runtime/rpx.d.mts +0 -2
- package/dist/runtime/rpx.mjs +6 -6
- package/dist/runtime/rpx.mjs.map +1 -1
- package/dist/runtime/seo/index.d.mts +0 -2
- package/dist/runtime/seo/index.mjs +1 -2
- package/dist/runtime/style.d.mts +0 -2
- package/dist/runtime/style.mjs +1 -2
- package/dist/runtime/template.d.mts +0 -2
- package/dist/runtime/utils/object.mjs +1 -2
- package/dist/runtime/viewport/index.d.mts +0 -2
- package/dist/runtime/viewport/index.mjs +1 -2
- package/dist/runtime/viewport/style.mjs +2 -2
- package/dist/runtime/viewport/style.mjs.map +1 -1
- package/dist/runtime/viewport/types.d.mts +0 -2
- package/dist/runtime/warning.d.mts +0 -2
- package/dist/runtime/warning.mjs +1 -2
- package/dist/runtime/wevu.d.mts +0 -2
- package/dist/runtime/wevu.mjs +1 -2
- package/dist/shared/nativeComponents.mjs +10 -3
- package/dist/shared/nativeComponents.mjs.map +1 -1
- package/dist/shared/slugify.mjs +1 -2
- package/dist/shared/styleUnits/options.d.mts +24 -0
- package/dist/shared/styleUnits/options.mjs +13 -0
- package/dist/shared/styleUnits/options.mjs.map +1 -0
- package/dist/shared/styleUnits/value.mjs +63 -0
- package/dist/shared/styleUnits/value.mjs.map +1 -0
- package/dist/shared/tabBar.d.mts +0 -2
- package/dist/shared/tabBar.mjs +1 -2
- package/dist/shared/wxml.mjs +1 -2
- package/package.json +15 -13
- package/dist/runtime/nativeComponents/scrollView.mjs +0 -88
- package/dist/runtime/nativeComponents/scrollView.mjs.map +0 -1
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
import { TokenType, tokenize } from "@csstools/css-tokenizer";
|
|
2
|
+
|
|
3
|
+
// src/shared/styleUnits/value.ts
|
|
4
|
+
function resolveViewportUnitBase(unit) {
|
|
5
|
+
if (unit === "vw") return "var(--weapp-viewport-width)";
|
|
6
|
+
if (unit === "vh") return "var(--weapp-viewport-height)";
|
|
7
|
+
if (unit === "vmin") return "min(var(--weapp-viewport-width), var(--weapp-viewport-height))";
|
|
8
|
+
return "max(var(--weapp-viewport-width), var(--weapp-viewport-height))";
|
|
9
|
+
}
|
|
10
|
+
function nextSignificantToken(tokens, from) {
|
|
11
|
+
let index = from;
|
|
12
|
+
while (tokens[index]?.[0] === TokenType.Whitespace || tokens[index]?.[0] === TokenType.Comment) index += 1;
|
|
13
|
+
return index;
|
|
14
|
+
}
|
|
15
|
+
function functionArgument(tokens, from) {
|
|
16
|
+
const index = nextSignificantToken(tokens, from + 1);
|
|
17
|
+
const token = tokens[index];
|
|
18
|
+
const following = tokens[nextSignificantToken(tokens, index + 1)];
|
|
19
|
+
if (token?.[0] === TokenType.Ident && (following?.[0] === TokenType.Comma || following?.[0] === TokenType.CloseParen)) return {
|
|
20
|
+
index,
|
|
21
|
+
value: token[4].value
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
/** 仅转换完整单位 token;字面量及运行时视口变量的浏览器 fallback 保持原样。 */
|
|
25
|
+
function transformStyleValue(value, options) {
|
|
26
|
+
const tokens = tokenize({ css: value });
|
|
27
|
+
const replacements = /* @__PURE__ */ new Map();
|
|
28
|
+
let protectedDepth = 0;
|
|
29
|
+
return tokens.map((token, index) => {
|
|
30
|
+
if (protectedDepth > 0) {
|
|
31
|
+
if (token[0] === TokenType.Function || token[0] === TokenType.OpenParen) protectedDepth += 1;
|
|
32
|
+
else if (token[0] === TokenType.CloseParen) protectedDepth -= 1;
|
|
33
|
+
return token[1];
|
|
34
|
+
}
|
|
35
|
+
if (token[0] === TokenType.Function) {
|
|
36
|
+
const name = token[4].value.toLowerCase();
|
|
37
|
+
const argument = functionArgument(tokens, index);
|
|
38
|
+
if (name === "url" || name === "var" && (argument?.value === "--weapp-viewport-width" || argument?.value === "--weapp-viewport-height")) {
|
|
39
|
+
protectedDepth = 1;
|
|
40
|
+
return token[1];
|
|
41
|
+
}
|
|
42
|
+
if (name === "env" && argument && /^safe-area-inset-(?:top|right|bottom|left)$/i.test(argument.value)) {
|
|
43
|
+
replacements.set(argument.index, `--weapp-${argument.value.toLowerCase()}`);
|
|
44
|
+
return "var(";
|
|
45
|
+
}
|
|
46
|
+
}
|
|
47
|
+
const replacement = replacements.get(index);
|
|
48
|
+
if (replacement !== void 0) return replacement;
|
|
49
|
+
if (token[0] !== TokenType.Dimension || !Number.isFinite(token[4].value)) return token[1];
|
|
50
|
+
const numeric = token[4].value;
|
|
51
|
+
const unit = token[4].unit.toLowerCase();
|
|
52
|
+
if (unit === "rpx") {
|
|
53
|
+
if (options.useVariable) return `calc(var(${options.rpxVar}) * ${numeric})`;
|
|
54
|
+
return `${Math.round(numeric * options.ratio * 1e3) / 1e3}px`;
|
|
55
|
+
}
|
|
56
|
+
if (!options.useVariable || !/^(?:vw|vh|vmin|vmax)$/.test(unit)) return token[1];
|
|
57
|
+
const base = resolveViewportUnitBase(unit);
|
|
58
|
+
return numeric === 0 ? "0px" : numeric === 100 ? base : `calc(${base} * ${numeric} / 100)`;
|
|
59
|
+
}).join("");
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
export { transformStyleValue };
|
|
63
|
+
//# sourceMappingURL=value.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"value.mjs","names":[],"sources":["../../../src/shared/styleUnits/value.ts"],"sourcesContent":["import type { CSSToken } from '@csstools/css-tokenizer'\nimport type { ResolvedStyleUnitOptions } from './options'\nimport { tokenize, TokenType } from '@csstools/css-tokenizer'\n\nfunction resolveViewportUnitBase(unit: string) {\n if (unit === 'vw') {\n return 'var(--weapp-viewport-width)'\n }\n if (unit === 'vh') {\n return 'var(--weapp-viewport-height)'\n }\n if (unit === 'vmin') {\n return 'min(var(--weapp-viewport-width), var(--weapp-viewport-height))'\n }\n return 'max(var(--weapp-viewport-width), var(--weapp-viewport-height))'\n}\n\nfunction nextSignificantToken(tokens: CSSToken[], from: number) {\n let index = from\n while (tokens[index]?.[0] === TokenType.Whitespace || tokens[index]?.[0] === TokenType.Comment) {\n index += 1\n }\n return index\n}\n\nfunction functionArgument(tokens: CSSToken[], from: number) {\n const index = nextSignificantToken(tokens, from + 1)\n const token = tokens[index]\n const following = tokens[nextSignificantToken(tokens, index + 1)]\n if (token?.[0] === TokenType.Ident && (following?.[0] === TokenType.Comma || following?.[0] === TokenType.CloseParen)) {\n return { index, value: token[4].value }\n }\n}\n\n/** 仅转换完整单位 token;字面量及运行时视口变量的浏览器 fallback 保持原样。 */\nexport function transformStyleValue(value: string, options: ResolvedStyleUnitOptions) {\n const tokens = tokenize({ css: value })\n const replacements = new Map<number, string>()\n let protectedDepth = 0\n return tokens.map((token, index) => {\n if (protectedDepth > 0) {\n if (token[0] === TokenType.Function || token[0] === TokenType.OpenParen) {\n protectedDepth += 1\n }\n else if (token[0] === TokenType.CloseParen) {\n protectedDepth -= 1\n }\n return token[1]\n }\n if (token[0] === TokenType.Function) {\n const name = token[4].value.toLowerCase()\n const argument = functionArgument(tokens, index)\n if (name === 'url' || (name === 'var' && (argument?.value === '--weapp-viewport-width' || argument?.value === '--weapp-viewport-height'))) {\n protectedDepth = 1\n return token[1]\n }\n if (name === 'env' && argument && /^safe-area-inset-(?:top|right|bottom|left)$/i.test(argument.value)) {\n replacements.set(argument.index, `--weapp-${argument.value.toLowerCase()}`)\n return 'var('\n }\n }\n const replacement = replacements.get(index)\n if (replacement !== undefined) {\n return replacement\n }\n if (token[0] !== TokenType.Dimension || !Number.isFinite(token[4].value)) {\n return token[1]\n }\n const numeric = token[4].value\n const unit = token[4].unit.toLowerCase()\n if (unit === 'rpx') {\n if (options.useVariable) {\n return `calc(var(${options.rpxVar}) * ${numeric})`\n }\n return `${Math.round(numeric * options.ratio * 1000) / 1000}px`\n }\n if (!options.useVariable || !/^(?:vw|vh|vmin|vmax)$/.test(unit)) {\n return token[1]\n }\n const base = resolveViewportUnitBase(unit)\n return numeric === 0 ? '0px' : numeric === 100 ? base : `calc(${base} * ${numeric} / 100)`\n }).join('')\n}\n"],"mappings":";;;AAIA,SAAS,wBAAwB,MAAc;CAC7C,IAAI,SAAS,MACX,OAAO;CAET,IAAI,SAAS,MACX,OAAO;CAET,IAAI,SAAS,QACX,OAAO;CAET,OAAO;AACT;AAEA,SAAS,qBAAqB,QAAoB,MAAc;CAC9D,IAAI,QAAQ;CACZ,OAAO,OAAO,MAAM,GAAG,OAAO,UAAU,cAAc,OAAO,MAAM,GAAG,OAAO,UAAU,SACrF,SAAS;CAEX,OAAO;AACT;AAEA,SAAS,iBAAiB,QAAoB,MAAc;CAC1D,MAAM,QAAQ,qBAAqB,QAAQ,OAAO,CAAC;CACnD,MAAM,QAAQ,OAAO;CACrB,MAAM,YAAY,OAAO,qBAAqB,QAAQ,QAAQ,CAAC;CAC/D,IAAI,QAAQ,OAAO,UAAU,UAAU,YAAY,OAAO,UAAU,SAAS,YAAY,OAAO,UAAU,aACxG,OAAO;EAAE;EAAO,OAAO,MAAM,EAAE,CAAC;CAAM;AAE1C;;AAGA,SAAgB,oBAAoB,OAAe,SAAmC;CACpF,MAAM,SAAS,SAAS,EAAE,KAAK,MAAM,CAAC;CACtC,MAAM,+BAAe,IAAI,IAAoB;CAC7C,IAAI,iBAAiB;CACrB,OAAO,OAAO,KAAK,OAAO,UAAU;EAClC,IAAI,iBAAiB,GAAG;GACtB,IAAI,MAAM,OAAO,UAAU,YAAY,MAAM,OAAO,UAAU,WAC5D,kBAAkB;QAEf,IAAI,MAAM,OAAO,UAAU,YAC9B,kBAAkB;GAEpB,OAAO,MAAM;EACf;EACA,IAAI,MAAM,OAAO,UAAU,UAAU;GACnC,MAAM,OAAO,MAAM,EAAE,CAAC,MAAM,YAAY;GACxC,MAAM,WAAW,iBAAiB,QAAQ,KAAK;GAC/C,IAAI,SAAS,SAAU,SAAS,UAAU,UAAU,UAAU,4BAA4B,UAAU,UAAU,4BAA6B;IACzI,iBAAiB;IACjB,OAAO,MAAM;GACf;GACA,IAAI,SAAS,SAAS,YAAY,+CAA+C,KAAK,SAAS,KAAK,GAAG;IACrG,aAAa,IAAI,SAAS,OAAO,WAAW,SAAS,MAAM,YAAY,GAAG;IAC1E,OAAO;GACT;EACF;EACA,MAAM,cAAc,aAAa,IAAI,KAAK;EAC1C,IAAI,gBAAgB,QAClB,OAAO;EAET,IAAI,MAAM,OAAO,UAAU,aAAa,CAAC,OAAO,SAAS,MAAM,EAAE,CAAC,KAAK,GACrE,OAAO,MAAM;EAEf,MAAM,UAAU,MAAM,EAAE,CAAC;EACzB,MAAM,OAAO,MAAM,EAAE,CAAC,KAAK,YAAY;EACvC,IAAI,SAAS,OAAO;GAClB,IAAI,QAAQ,aACV,OAAO,YAAY,QAAQ,OAAO,MAAM,QAAQ;GAElD,OAAO,GAAG,KAAK,MAAM,UAAU,QAAQ,QAAQ,GAAI,IAAI,IAAK;EAC9D;EACA,IAAI,CAAC,QAAQ,eAAe,CAAC,wBAAwB,KAAK,IAAI,GAC5D,OAAO,MAAM;EAEf,MAAM,OAAO,wBAAwB,IAAI;EACzC,OAAO,YAAY,IAAI,QAAQ,YAAY,MAAM,OAAO,QAAQ,KAAK,KAAK,QAAQ;CACpF,CAAC,CAAC,CAAC,KAAK,EAAE;AACZ"}
|
package/dist/shared/tabBar.d.mts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
//#region src/shared/tabBar.d.ts
|
|
2
1
|
export interface WebTabBarItem {
|
|
3
2
|
pagePath: string;
|
|
4
3
|
text: string;
|
|
@@ -14,5 +13,4 @@ export interface WebTabBarConfig {
|
|
|
14
13
|
custom: boolean;
|
|
15
14
|
list: WebTabBarItem[];
|
|
16
15
|
}
|
|
17
|
-
//#endregion
|
|
18
16
|
//# sourceMappingURL=tabBar.d.mts.map
|
package/dist/shared/tabBar.mjs
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
|
|
1
|
+
// src/shared/tabBar.ts
|
|
2
2
|
function normalizeOptionalString(value) {
|
|
3
3
|
return typeof value === "string" && value.trim() ? value : void 0;
|
|
4
4
|
}
|
|
@@ -32,6 +32,5 @@ function normalizeWebTabBarConfig(value) {
|
|
|
32
32
|
};
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
//#endregion
|
|
36
35
|
export { normalizeWebTabBarConfig };
|
|
37
36
|
//# sourceMappingURL=tabBar.mjs.map
|
package/dist/shared/wxml.mjs
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { resolveNativeComponentWebTag } from "./nativeComponents.mjs";
|
|
2
2
|
import { getSupportedMiniProgramDirectivePrefixes } from "@weapp-core/shared/platforms/runtime";
|
|
3
3
|
|
|
4
|
-
|
|
4
|
+
// src/shared/wxml.ts
|
|
5
5
|
const CONTROL_ATTR_SUFFIXES = [
|
|
6
6
|
"if",
|
|
7
7
|
"elif",
|
|
@@ -65,6 +65,5 @@ function normalizeAttributeName(name) {
|
|
|
65
65
|
return name.replace(/[A-Z]/g, (match) => `-${match.toLowerCase()}`);
|
|
66
66
|
}
|
|
67
67
|
|
|
68
|
-
//#endregion
|
|
69
68
|
export { CONTROL_ATTRS, CONTROL_ATTR_PREFIXES, EVENT_KIND_ALIAS, EVENT_PREFIX_RE, SELF_CLOSING_TAGS, TEMPLATE_IMPORT_TAG_NAMES, TEMPLATE_INCLUDE_TAG_NAMES, hasControlAttribute, normalizeAttributeName, normalizeTagName, resolveControlAttributeName, resolveControlAttributeValue };
|
|
70
69
|
//# sourceMappingURL=wxml.mjs.map
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weapp-vite/web",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "2.0
|
|
4
|
+
"version": "2.1.0",
|
|
5
5
|
"description": "Experimental web runtime for weapp-vite templates",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -52,7 +52,7 @@
|
|
|
52
52
|
"dist"
|
|
53
53
|
],
|
|
54
54
|
"engines": {
|
|
55
|
-
"node": "^22.
|
|
55
|
+
"node": "^22.23.4 || ^24.22.1 || >=26.12.1"
|
|
56
56
|
},
|
|
57
57
|
"tsd": {
|
|
58
58
|
"compilerOptions": {
|
|
@@ -62,26 +62,28 @@
|
|
|
62
62
|
}
|
|
63
63
|
},
|
|
64
64
|
"dependencies": {
|
|
65
|
-
"@babel/parser": "^8.0.
|
|
65
|
+
"@babel/parser": "^8.0.8",
|
|
66
66
|
"@babel/traverse": "^8.0.7",
|
|
67
|
-
"@babel/types": "^8.0.
|
|
68
|
-
"@
|
|
69
|
-
"@
|
|
67
|
+
"@babel/types": "^8.0.8",
|
|
68
|
+
"@csstools/css-tokenizer": "4.0.2",
|
|
69
|
+
"@vue/shared": "^3.5.44",
|
|
70
|
+
"@weapp-core/constants": "0.5.0",
|
|
71
|
+
"@weapp-core/shared": "3.4.0",
|
|
70
72
|
"domhandler": "^6.0.1",
|
|
71
73
|
"esbuild": "^0.28.2",
|
|
72
74
|
"htmlparser2": "^12.0.0",
|
|
73
75
|
"lit": "^3.3.3",
|
|
74
76
|
"magic-string": "^1.4.3",
|
|
75
77
|
"pathe": "^2.0.3",
|
|
76
|
-
"postcss": "^8.5.
|
|
77
|
-
"postcss-selector-parser": "^7.1.
|
|
78
|
-
"rolldown": "1.2.
|
|
79
|
-
"rolldown-require": "2.0
|
|
80
|
-
"vite": "8.3.
|
|
81
|
-
"wevu": "7.
|
|
78
|
+
"postcss": "^8.5.31",
|
|
79
|
+
"postcss-selector-parser": "^7.1.7",
|
|
80
|
+
"rolldown": "1.2.15",
|
|
81
|
+
"rolldown-require": "2.1.0",
|
|
82
|
+
"vite": "8.3.5",
|
|
83
|
+
"wevu": "7.7.0"
|
|
82
84
|
},
|
|
83
85
|
"devDependencies": {
|
|
84
|
-
"happy-dom": "^21.0.
|
|
86
|
+
"happy-dom": "^21.0.4"
|
|
85
87
|
},
|
|
86
88
|
"publishConfig": {
|
|
87
89
|
"access": "public",
|
|
@@ -1,88 +0,0 @@
|
|
|
1
|
-
import { getNativeComponentDescriptor } from "../../shared/nativeComponents.mjs";
|
|
2
|
-
import { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadowRoot } from "./helpers.mjs";
|
|
3
|
-
import { ensureNativeComponentStyle } from "./style.mjs";
|
|
4
|
-
|
|
5
|
-
//#region src/runtime/nativeComponents/scrollView.ts
|
|
6
|
-
const BaseElement = globalThis.HTMLElement ?? class {};
|
|
7
|
-
function createScrollEventDetail(viewport, previous) {
|
|
8
|
-
return {
|
|
9
|
-
scrollLeft: viewport.scrollLeft,
|
|
10
|
-
scrollTop: viewport.scrollTop,
|
|
11
|
-
scrollWidth: viewport.scrollWidth,
|
|
12
|
-
scrollHeight: viewport.scrollHeight,
|
|
13
|
-
deltaX: viewport.scrollLeft - previous.scrollLeft,
|
|
14
|
-
deltaY: viewport.scrollTop - previous.scrollTop
|
|
15
|
-
};
|
|
16
|
-
}
|
|
17
|
-
var WeappScrollView = class extends BaseElement {
|
|
18
|
-
static observedAttributes = [...getNativeComponentDescriptor("scroll-view").attributes];
|
|
19
|
-
#viewport;
|
|
20
|
-
#lastScrollLeft = 0;
|
|
21
|
-
#lastScrollTop = 0;
|
|
22
|
-
get scrollTop() {
|
|
23
|
-
return this.#viewport?.scrollTop ?? 0;
|
|
24
|
-
}
|
|
25
|
-
set scrollTop(value) {
|
|
26
|
-
if (this.#viewport) this.#viewport.scrollTop = value;
|
|
27
|
-
}
|
|
28
|
-
get scrollLeft() {
|
|
29
|
-
return this.#viewport?.scrollLeft ?? 0;
|
|
30
|
-
}
|
|
31
|
-
set scrollLeft(value) {
|
|
32
|
-
if (this.#viewport) this.#viewport.scrollLeft = value;
|
|
33
|
-
}
|
|
34
|
-
connectedCallback() {
|
|
35
|
-
ensureNativeComponentStyle(resolveContainingShadowRoot(this));
|
|
36
|
-
const initializePosition = !this.#viewport;
|
|
37
|
-
this.#ensureStructure();
|
|
38
|
-
this.#syncAttributes(void 0, initializePosition);
|
|
39
|
-
}
|
|
40
|
-
attributeChangedCallback(name, oldValue, newValue) {
|
|
41
|
-
if (oldValue !== newValue) this.#syncAttributes(name);
|
|
42
|
-
}
|
|
43
|
-
#ensureStructure() {
|
|
44
|
-
if (this.#viewport || typeof document === "undefined") return;
|
|
45
|
-
const root = this.shadowRoot ?? this.attachShadow({ mode: "open" });
|
|
46
|
-
const style = document.createElement("style");
|
|
47
|
-
style.textContent = `
|
|
48
|
-
:host { min-width: 0; min-height: 0; }
|
|
49
|
-
.viewport { width: 100%; height: 100%; overscroll-behavior: contain; }
|
|
50
|
-
`;
|
|
51
|
-
const viewport = document.createElement("div");
|
|
52
|
-
viewport.className = "viewport";
|
|
53
|
-
const slot = document.createElement("slot");
|
|
54
|
-
viewport.append(slot);
|
|
55
|
-
viewport.addEventListener("scroll", (event) => {
|
|
56
|
-
if (event.target !== viewport) return;
|
|
57
|
-
const detail = createScrollEventDetail(viewport, {
|
|
58
|
-
scrollLeft: this.#lastScrollLeft,
|
|
59
|
-
scrollTop: this.#lastScrollTop
|
|
60
|
-
});
|
|
61
|
-
this.#lastScrollLeft = viewport.scrollLeft;
|
|
62
|
-
this.#lastScrollTop = viewport.scrollTop;
|
|
63
|
-
dispatchMiniProgramEvent(this, "scroll", detail, {
|
|
64
|
-
bubbles: false,
|
|
65
|
-
composed: false
|
|
66
|
-
});
|
|
67
|
-
});
|
|
68
|
-
root.append(style, viewport);
|
|
69
|
-
this.#viewport = viewport;
|
|
70
|
-
}
|
|
71
|
-
#syncAttributes(changedName, initializePosition = false) {
|
|
72
|
-
if (!this.#viewport) return;
|
|
73
|
-
if (!changedName || changedName === "scroll-x") this.#viewport.style.overflowX = readBooleanAttribute(this, "scroll-x") ? "auto" : "hidden";
|
|
74
|
-
if (!changedName || changedName === "scroll-y") this.#viewport.style.overflowY = readBooleanAttribute(this, "scroll-y") ? "auto" : "hidden";
|
|
75
|
-
if (initializePosition || changedName === "scroll-top") {
|
|
76
|
-
const scrollTop = Number(this.getAttribute("scroll-top"));
|
|
77
|
-
if (Number.isFinite(scrollTop)) this.#viewport.scrollTop = scrollTop;
|
|
78
|
-
}
|
|
79
|
-
if (initializePosition || changedName === "scroll-left") {
|
|
80
|
-
const scrollLeft = Number(this.getAttribute("scroll-left"));
|
|
81
|
-
if (Number.isFinite(scrollLeft)) this.#viewport.scrollLeft = scrollLeft;
|
|
82
|
-
}
|
|
83
|
-
}
|
|
84
|
-
};
|
|
85
|
-
|
|
86
|
-
//#endregion
|
|
87
|
-
export { WeappScrollView, createScrollEventDetail };
|
|
88
|
-
//# sourceMappingURL=scrollView.mjs.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scrollView.mjs","names":[],"sources":["../../../src/runtime/nativeComponents/scrollView.ts"],"sourcesContent":["import { getNativeComponentDescriptor } from '../../shared/nativeComponents'\nimport { dispatchMiniProgramEvent, readBooleanAttribute, resolveContainingShadowRoot } from './helpers'\nimport { ensureNativeComponentStyle } from './style'\n\nconst BaseElement = (globalThis.HTMLElement ?? class {}) as typeof HTMLElement\n\nexport function createScrollEventDetail(\n viewport: Pick<HTMLDivElement, 'scrollHeight' | 'scrollLeft' | 'scrollTop' | 'scrollWidth'>,\n previous: { scrollLeft: number, scrollTop: number },\n) {\n return {\n scrollLeft: viewport.scrollLeft,\n scrollTop: viewport.scrollTop,\n scrollWidth: viewport.scrollWidth,\n scrollHeight: viewport.scrollHeight,\n deltaX: viewport.scrollLeft - previous.scrollLeft,\n deltaY: viewport.scrollTop - previous.scrollTop,\n }\n}\n\nexport class WeappScrollView extends BaseElement {\n static observedAttributes = [...getNativeComponentDescriptor('scroll-view')!.attributes]\n\n #viewport?: HTMLDivElement\n #lastScrollLeft = 0\n #lastScrollTop = 0\n\n get scrollTop() {\n return this.#viewport?.scrollTop ?? 0\n }\n\n set scrollTop(value: number) {\n if (this.#viewport) {\n this.#viewport.scrollTop = value\n }\n }\n\n get scrollLeft() {\n return this.#viewport?.scrollLeft ?? 0\n }\n\n set scrollLeft(value: number) {\n if (this.#viewport) {\n this.#viewport.scrollLeft = value\n }\n }\n\n connectedCallback() {\n ensureNativeComponentStyle(resolveContainingShadowRoot(this))\n const initializePosition = !this.#viewport\n this.#ensureStructure()\n this.#syncAttributes(undefined, initializePosition)\n }\n\n attributeChangedCallback(name: string, oldValue: string | null, newValue: string | null) {\n if (oldValue !== newValue) {\n this.#syncAttributes(name)\n }\n }\n\n #ensureStructure() {\n if (this.#viewport || typeof document === 'undefined') {\n return\n }\n const root = this.shadowRoot ?? this.attachShadow({ mode: 'open' })\n const style = document.createElement('style')\n style.textContent = `\n :host { min-width: 0; min-height: 0; }\n .viewport { width: 100%; height: 100%; overscroll-behavior: contain; }\n `\n const viewport = document.createElement('div')\n viewport.className = 'viewport'\n const slot = document.createElement('slot')\n viewport.append(slot)\n viewport.addEventListener('scroll', (event) => {\n if (event.target !== viewport) {\n return\n }\n const detail = createScrollEventDetail(viewport, {\n scrollLeft: this.#lastScrollLeft,\n scrollTop: this.#lastScrollTop,\n })\n this.#lastScrollLeft = viewport.scrollLeft\n this.#lastScrollTop = viewport.scrollTop\n dispatchMiniProgramEvent(this, 'scroll', detail, {\n bubbles: false,\n composed: false,\n })\n })\n root.append(style, viewport)\n this.#viewport = viewport\n }\n\n #syncAttributes(changedName?: string, initializePosition = false) {\n if (!this.#viewport) {\n return\n }\n if (!changedName || changedName === 'scroll-x') {\n this.#viewport.style.overflowX = readBooleanAttribute(this, 'scroll-x') ? 'auto' : 'hidden'\n }\n if (!changedName || changedName === 'scroll-y') {\n this.#viewport.style.overflowY = readBooleanAttribute(this, 'scroll-y') ? 'auto' : 'hidden'\n }\n if (initializePosition || changedName === 'scroll-top') {\n const scrollTop = Number(this.getAttribute('scroll-top'))\n if (Number.isFinite(scrollTop)) {\n this.#viewport.scrollTop = scrollTop\n }\n }\n if (initializePosition || changedName === 'scroll-left') {\n const scrollLeft = Number(this.getAttribute('scroll-left'))\n if (Number.isFinite(scrollLeft)) {\n this.#viewport.scrollLeft = scrollLeft\n }\n }\n }\n}\n"],"mappings":";;;;;AAIA,MAAM,cAAe,WAAW,eAAe,MAAM,CAAC;AAEtD,SAAgB,wBACd,UACA,UACA;CACA,OAAO;EACL,YAAY,SAAS;EACrB,WAAW,SAAS;EACpB,aAAa,SAAS;EACtB,cAAc,SAAS;EACvB,QAAQ,SAAS,aAAa,SAAS;EACvC,QAAQ,SAAS,YAAY,SAAS;CACxC;AACF;AAEA,IAAa,kBAAb,cAAqC,YAAY;CAC/C,OAAO,qBAAqB,CAAC,GAAG,6BAA6B,aAAa,CAAC,CAAE,UAAU;CAEvF;CACA,kBAAkB;CAClB,iBAAiB;CAEjB,IAAI,YAAY;EACd,OAAO,KAAK,WAAW,aAAa;CACtC;CAEA,IAAI,UAAU,OAAe;EAC3B,IAAI,KAAK,WACP,KAAK,UAAU,YAAY;CAE/B;CAEA,IAAI,aAAa;EACf,OAAO,KAAK,WAAW,cAAc;CACvC;CAEA,IAAI,WAAW,OAAe;EAC5B,IAAI,KAAK,WACP,KAAK,UAAU,aAAa;CAEhC;CAEA,oBAAoB;EAClB,2BAA2B,4BAA4B,IAAI,CAAC;EAC5D,MAAM,qBAAqB,CAAC,KAAK;EACjC,KAAK,iBAAiB;EACtB,KAAK,gBAAgB,QAAW,kBAAkB;CACpD;CAEA,yBAAyB,MAAc,UAAyB,UAAyB;EACvF,IAAI,aAAa,UACf,KAAK,gBAAgB,IAAI;CAE7B;CAEA,mBAAmB;EACjB,IAAI,KAAK,aAAa,OAAO,aAAa,aACxC;EAEF,MAAM,OAAO,KAAK,cAAc,KAAK,aAAa,EAAE,MAAM,OAAO,CAAC;EAClE,MAAM,QAAQ,SAAS,cAAc,OAAO;EAC5C,MAAM,cAAc;;;;EAIpB,MAAM,WAAW,SAAS,cAAc,KAAK;EAC7C,SAAS,YAAY;EACrB,MAAM,OAAO,SAAS,cAAc,MAAM;EAC1C,SAAS,OAAO,IAAI;EACpB,SAAS,iBAAiB,WAAW,UAAU;GAC7C,IAAI,MAAM,WAAW,UACnB;GAEF,MAAM,SAAS,wBAAwB,UAAU;IAC/C,YAAY,KAAK;IACjB,WAAW,KAAK;GAClB,CAAC;GACD,KAAK,kBAAkB,SAAS;GAChC,KAAK,iBAAiB,SAAS;GAC/B,yBAAyB,MAAM,UAAU,QAAQ;IAC/C,SAAS;IACT,UAAU;GACZ,CAAC;EACH,CAAC;EACD,KAAK,OAAO,OAAO,QAAQ;EAC3B,KAAK,YAAY;CACnB;CAEA,gBAAgB,aAAsB,qBAAqB,OAAO;EAChE,IAAI,CAAC,KAAK,WACR;EAEF,IAAI,CAAC,eAAe,gBAAgB,YAClC,KAAK,UAAU,MAAM,YAAY,qBAAqB,MAAM,UAAU,IAAI,SAAS;EAErF,IAAI,CAAC,eAAe,gBAAgB,YAClC,KAAK,UAAU,MAAM,YAAY,qBAAqB,MAAM,UAAU,IAAI,SAAS;EAErF,IAAI,sBAAsB,gBAAgB,cAAc;GACtD,MAAM,YAAY,OAAO,KAAK,aAAa,YAAY,CAAC;GACxD,IAAI,OAAO,SAAS,SAAS,GAC3B,KAAK,UAAU,YAAY;EAE/B;EACA,IAAI,sBAAsB,gBAAgB,eAAe;GACvD,MAAM,aAAa,OAAO,KAAK,aAAa,aAAa,CAAC;GAC1D,IAAI,OAAO,SAAS,UAAU,GAC5B,KAAK,UAAU,aAAa;EAEhC;CACF;AACF"}
|