@weapp-vite/web 1.4.13 → 1.4.14
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/runtime/appShell/tabBar/index.mjs.map +1 -1
- package/dist/runtime/button/index.mjs.map +1 -1
- package/dist/runtime/component/element.mjs.map +1 -1
- package/dist/runtime/nativeComponents/canvas/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/checkbox.mjs.map +1 -1
- package/dist/runtime/nativeComponents/form.mjs.map +1 -1
- package/dist/runtime/nativeComponents/icon/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/image.mjs.map +1 -1
- package/dist/runtime/nativeComponents/input.mjs.map +1 -1
- package/dist/runtime/nativeComponents/label.mjs.map +1 -1
- package/dist/runtime/nativeComponents/movable/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/navigator.mjs.map +1 -1
- package/dist/runtime/nativeComponents/picker/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/pickerView/column.mjs.map +1 -1
- package/dist/runtime/nativeComponents/pickerView/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/progress/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/radio.mjs.map +1 -1
- package/dist/runtime/nativeComponents/richText/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/scrollView.mjs.map +1 -1
- package/dist/runtime/nativeComponents/slider/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/swiper/index.mjs.map +1 -1
- package/dist/runtime/nativeComponents/switch.mjs.map +1 -1
- package/dist/runtime/nativeComponents/textarea.mjs.map +1 -1
- package/dist/runtime/nativeComponents/video/index.mjs.map +1 -1
- package/dist/runtime/navigationBar/index.mjs.map +1 -1
- package/dist/runtime/polyfill/animation.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/appLifecycle.mjs.map +1 -1
- package/dist/runtime/polyfill/routeRuntime/stack.mjs.map +1 -1
- package/package.json +7 -7
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["#renderShell","#bindResize","#resizeHandler","#nav","#title","#loading"],"sources":["../../../src/runtime/navigationBar/index.ts"],"sourcesContent":["import { NAVBAR_STYLE } from './style'\n\ninterface NavigationBarMetrics {\n statusBarHeight?: number\n navContentHeight?: number\n safeAreaTop?: number\n}\n\nconst NAVIGATION_BAR_TAG = 'weapp-navigation-bar'\nconst BaseElement = (globalThis.HTMLElement ?? class {}) as typeof HTMLElement\nconst navigationBarInstances = new Set<WeappNavigationBar>()\nlet navigationBarMetrics: NavigationBarMetrics = {}\nconst IOS_DEVICE_RE = /iphone|ipad|ipod/i\n\nfunction isIOS() {\n if (typeof navigator === 'undefined') {\n return false\n }\n return IOS_DEVICE_RE.test(navigator.userAgent)\n}\n\nfunction getDefaultHeights() {\n if (isIOS()) {\n return { statusBarHeight: 20, navContentHeight: 44 }\n }\n return { statusBarHeight: 24, navContentHeight: 48 }\n}\n\nfunction readSafeAreaTop() {\n if (typeof document === 'undefined' || !document.body) {\n return 0\n }\n const probe = document.createElement('div')\n probe.style.cssText = [\n 'position: absolute',\n 'top: 0',\n 'height: env(safe-area-inset-top)',\n 'height: constant(safe-area-inset-top)',\n 'pointer-events: none',\n 'visibility: hidden',\n ].join(';')\n document.body.appendChild(probe)\n const height = Math.max(0, probe.getBoundingClientRect().height)\n probe.remove()\n return height\n}\n\nfunction resolveNavigationBarMetrics(): Required<NavigationBarMetrics> & { navHeight: number } {\n const defaults = getDefaultHeights()\n const safeAreaTop = navigationBarMetrics.safeAreaTop !== undefined\n ? navigationBarMetrics.safeAreaTop\n : readSafeAreaTop()\n const statusBarHeight = navigationBarMetrics.statusBarHeight !== undefined\n ? navigationBarMetrics.statusBarHeight\n : (safeAreaTop > 0 ? safeAreaTop : defaults.statusBarHeight)\n const navContentHeight = navigationBarMetrics.navContentHeight !== undefined\n ? navigationBarMetrics.navContentHeight\n : defaults.navContentHeight\n return {\n safeAreaTop,\n statusBarHeight,\n navContentHeight,\n navHeight: statusBarHeight + navContentHeight,\n }\n}\n\nfunction isTransparentColor(value: string) {\n const normalized = value.trim().toLowerCase()\n return normalized === 'transparent'\n || normalized === 'rgba(0,0,0,0)'\n || normalized === 'rgba(0, 0, 0, 0)'\n || normalized === 'hsla(0,0%,0%,0)'\n}\n\nexport function setNavigationBarMetrics(next: NavigationBarMetrics) {\n navigationBarMetrics = { ...navigationBarMetrics, ...next }\n for (const instance of navigationBarInstances) {\n instance.applyMetrics()\n }\n}\n\nclass WeappNavigationBar extends BaseElement {\n static observedAttributes = ['title', 'background-color', 'text-style', 'front-color', 'loading']\n\n #nav?: HTMLDivElement\n #title?: HTMLSpanElement\n #loading?: HTMLSpanElement\n #resizeHandler?: () => void\n\n connectedCallback() {\n const root = this.shadowRoot ?? this.attachShadow({ mode: 'open' })\n if (!root.hasChildNodes()) {\n this.#renderShell()\n }\n navigationBarInstances.add(this)\n this.applyMetrics()\n this.applyAppearance()\n this.#bindResize()\n }\n\n disconnectedCallback() {\n navigationBarInstances.delete(this)\n if (this.#resizeHandler) {\n const target = typeof window !== 'undefined' ? (window.visualViewport ?? window) : undefined\n target?.removeEventListener('resize', this.#resizeHandler)\n this.#resizeHandler = undefined\n }\n }\n\n attributeChangedCallback() {\n this.applyAppearance()\n }\n\n applyMetrics() {\n const metrics = resolveNavigationBarMetrics()\n this.style.setProperty('--weapp-status-bar-height', `${metrics.statusBarHeight}px`)\n this.style.setProperty('--weapp-nav-content-height', `${metrics.navContentHeight}px`)\n this.style.setProperty('--weapp-nav-height', `${metrics.navHeight}px`)\n }\n\n applyAppearance() {\n if (!this.#nav || !this.#title || !this.#loading) {\n return\n }\n const title = this.getAttribute('title') ?? ''\n this.#title.textContent = title\n const background = this.getAttribute('background-color') ?? '#ffffff'\n const frontColor = this.getAttribute('front-color')\n const textStyle = (this.getAttribute('text-style') ?? '').toLowerCase()\n const color = frontColor || (textStyle === 'white' ? '#ffffff' : '#000000')\n const loadingAttr = this.getAttribute('loading')\n const loading = loadingAttr !== null && loadingAttr !== 'false' && loadingAttr !== '0'\n this.style.setProperty('--weapp-nav-bg', background)\n this.style.setProperty('--weapp-nav-color', color)\n this.#loading.toggleAttribute('hidden', !loading)\n this.#nav.classList.toggle('weapp-nav--transparent', isTransparentColor(background))\n }\n\n #bindResize() {\n if (this.#resizeHandler || typeof window === 'undefined') {\n return\n }\n const target = window.visualViewport ?? window\n this.#resizeHandler = () => {\n this.applyMetrics()\n }\n target.addEventListener('resize', this.#resizeHandler)\n }\n\n #renderShell() {\n const root = this.shadowRoot!\n root.innerHTML = ''\n const style = document.createElement('style')\n style.textContent = NAVBAR_STYLE\n const spacer = document.createElement('div')\n spacer.className = 'weapp-nav__spacer'\n const nav = document.createElement('div')\n nav.className = 'weapp-nav'\n const status = document.createElement('div')\n status.className = 'weapp-nav__status'\n const content = document.createElement('div')\n content.className = 'weapp-nav__content'\n const left = document.createElement('div')\n left.className = 'weapp-nav__left'\n const right = document.createElement('div')\n right.className = 'weapp-nav__right'\n const title = document.createElement('span')\n title.className = 'weapp-nav__title'\n const loading = document.createElement('span')\n loading.className = 'weapp-nav__loading'\n loading.setAttribute('hidden', '')\n const titleText = document.createElement('span')\n titleText.className = 'weapp-nav__title-text'\n title.append(loading, titleText)\n content.append(left, title, right)\n nav.append(status, content)\n root.append(style, spacer, nav)\n this.#nav = nav\n this.#title = titleText\n this.#loading = loading\n }\n}\n\nexport function ensureNavigationBarDefined() {\n if (typeof customElements === 'undefined') {\n return\n }\n if (!customElements.get(NAVIGATION_BAR_TAG)) {\n customElements.define(NAVIGATION_BAR_TAG, WeappNavigationBar)\n }\n}\n\nexport type { NavigationBarMetrics }\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.mjs","names":[],"sources":["../../../src/runtime/navigationBar/index.ts"],"sourcesContent":["import { NAVBAR_STYLE } from './style'\n\ninterface NavigationBarMetrics {\n statusBarHeight?: number\n navContentHeight?: number\n safeAreaTop?: number\n}\n\nconst NAVIGATION_BAR_TAG = 'weapp-navigation-bar'\nconst BaseElement = (globalThis.HTMLElement ?? class {}) as typeof HTMLElement\nconst navigationBarInstances = new Set<WeappNavigationBar>()\nlet navigationBarMetrics: NavigationBarMetrics = {}\nconst IOS_DEVICE_RE = /iphone|ipad|ipod/i\n\nfunction isIOS() {\n if (typeof navigator === 'undefined') {\n return false\n }\n return IOS_DEVICE_RE.test(navigator.userAgent)\n}\n\nfunction getDefaultHeights() {\n if (isIOS()) {\n return { statusBarHeight: 20, navContentHeight: 44 }\n }\n return { statusBarHeight: 24, navContentHeight: 48 }\n}\n\nfunction readSafeAreaTop() {\n if (typeof document === 'undefined' || !document.body) {\n return 0\n }\n const probe = document.createElement('div')\n probe.style.cssText = [\n 'position: absolute',\n 'top: 0',\n 'height: env(safe-area-inset-top)',\n 'height: constant(safe-area-inset-top)',\n 'pointer-events: none',\n 'visibility: hidden',\n ].join(';')\n document.body.appendChild(probe)\n const height = Math.max(0, probe.getBoundingClientRect().height)\n probe.remove()\n return height\n}\n\nfunction resolveNavigationBarMetrics(): Required<NavigationBarMetrics> & { navHeight: number } {\n const defaults = getDefaultHeights()\n const safeAreaTop = navigationBarMetrics.safeAreaTop !== undefined\n ? navigationBarMetrics.safeAreaTop\n : readSafeAreaTop()\n const statusBarHeight = navigationBarMetrics.statusBarHeight !== undefined\n ? navigationBarMetrics.statusBarHeight\n : (safeAreaTop > 0 ? safeAreaTop : defaults.statusBarHeight)\n const navContentHeight = navigationBarMetrics.navContentHeight !== undefined\n ? navigationBarMetrics.navContentHeight\n : defaults.navContentHeight\n return {\n safeAreaTop,\n statusBarHeight,\n navContentHeight,\n navHeight: statusBarHeight + navContentHeight,\n }\n}\n\nfunction isTransparentColor(value: string) {\n const normalized = value.trim().toLowerCase()\n return normalized === 'transparent'\n || normalized === 'rgba(0,0,0,0)'\n || normalized === 'rgba(0, 0, 0, 0)'\n || normalized === 'hsla(0,0%,0%,0)'\n}\n\nexport function setNavigationBarMetrics(next: NavigationBarMetrics) {\n navigationBarMetrics = { ...navigationBarMetrics, ...next }\n for (const instance of navigationBarInstances) {\n instance.applyMetrics()\n }\n}\n\nclass WeappNavigationBar extends BaseElement {\n static observedAttributes = ['title', 'background-color', 'text-style', 'front-color', 'loading']\n\n #nav?: HTMLDivElement\n #title?: HTMLSpanElement\n #loading?: HTMLSpanElement\n #resizeHandler?: () => void\n\n connectedCallback() {\n const root = this.shadowRoot ?? this.attachShadow({ mode: 'open' })\n if (!root.hasChildNodes()) {\n this.#renderShell()\n }\n navigationBarInstances.add(this)\n this.applyMetrics()\n this.applyAppearance()\n this.#bindResize()\n }\n\n disconnectedCallback() {\n navigationBarInstances.delete(this)\n if (this.#resizeHandler) {\n const target = typeof window !== 'undefined' ? (window.visualViewport ?? window) : undefined\n target?.removeEventListener('resize', this.#resizeHandler)\n this.#resizeHandler = undefined\n }\n }\n\n attributeChangedCallback() {\n this.applyAppearance()\n }\n\n applyMetrics() {\n const metrics = resolveNavigationBarMetrics()\n this.style.setProperty('--weapp-status-bar-height', `${metrics.statusBarHeight}px`)\n this.style.setProperty('--weapp-nav-content-height', `${metrics.navContentHeight}px`)\n this.style.setProperty('--weapp-nav-height', `${metrics.navHeight}px`)\n }\n\n applyAppearance() {\n if (!this.#nav || !this.#title || !this.#loading) {\n return\n }\n const title = this.getAttribute('title') ?? ''\n this.#title.textContent = title\n const background = this.getAttribute('background-color') ?? '#ffffff'\n const frontColor = this.getAttribute('front-color')\n const textStyle = (this.getAttribute('text-style') ?? '').toLowerCase()\n const color = frontColor || (textStyle === 'white' ? '#ffffff' : '#000000')\n const loadingAttr = this.getAttribute('loading')\n const loading = loadingAttr !== null && loadingAttr !== 'false' && loadingAttr !== '0'\n this.style.setProperty('--weapp-nav-bg', background)\n this.style.setProperty('--weapp-nav-color', color)\n this.#loading.toggleAttribute('hidden', !loading)\n this.#nav.classList.toggle('weapp-nav--transparent', isTransparentColor(background))\n }\n\n #bindResize() {\n if (this.#resizeHandler || typeof window === 'undefined') {\n return\n }\n const target = window.visualViewport ?? window\n this.#resizeHandler = () => {\n this.applyMetrics()\n }\n target.addEventListener('resize', this.#resizeHandler)\n }\n\n #renderShell() {\n const root = this.shadowRoot!\n root.innerHTML = ''\n const style = document.createElement('style')\n style.textContent = NAVBAR_STYLE\n const spacer = document.createElement('div')\n spacer.className = 'weapp-nav__spacer'\n const nav = document.createElement('div')\n nav.className = 'weapp-nav'\n const status = document.createElement('div')\n status.className = 'weapp-nav__status'\n const content = document.createElement('div')\n content.className = 'weapp-nav__content'\n const left = document.createElement('div')\n left.className = 'weapp-nav__left'\n const right = document.createElement('div')\n right.className = 'weapp-nav__right'\n const title = document.createElement('span')\n title.className = 'weapp-nav__title'\n const loading = document.createElement('span')\n loading.className = 'weapp-nav__loading'\n loading.setAttribute('hidden', '')\n const titleText = document.createElement('span')\n titleText.className = 'weapp-nav__title-text'\n title.append(loading, titleText)\n content.append(left, title, right)\n nav.append(status, content)\n root.append(style, spacer, nav)\n this.#nav = nav\n this.#title = titleText\n this.#loading = loading\n }\n}\n\nexport function ensureNavigationBarDefined() {\n if (typeof customElements === 'undefined') {\n return\n }\n if (!customElements.get(NAVIGATION_BAR_TAG)) {\n customElements.define(NAVIGATION_BAR_TAG, WeappNavigationBar)\n }\n}\n\nexport type { NavigationBarMetrics }\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"animation.mjs","names":[
|
|
1
|
+
{"version":3,"file":"animation.mjs","names":[],"sources":["../../../src/runtime/polyfill/animation.ts"],"sourcesContent":["export interface WebAnimationStepOptions {\n delay?: number\n duration?: number\n timingFunction?: string\n transformOrigin?: string\n}\n\ninterface WebAnimationOperation {\n type: string\n args: unknown[]\n}\n\ninterface WebAnimationStep {\n animates: WebAnimationOperation[]\n option: WebAnimationStepOptions\n}\n\nexport class WebAnimation {\n #actions: WebAnimationStep[] = []\n #operations: WebAnimationOperation[] = []\n\n constructor(private readonly defaults: WebAnimationStepOptions = {}) {}\n\n #add(type: string, ...args: unknown[]) {\n this.#operations.push({ type, args })\n return this\n }\n\n backgroundColor(value: string) { return this.#add('backgroundColor', value) }\n bottom(value: number | string) { return this.#add('bottom', value) }\n height(value: number | string) { return this.#add('height', value) }\n left(value: number | string) { return this.#add('left', value) }\n matrix(...args: number[]) { return this.#add('matrix', ...args) }\n matrix3d(...args: number[]) { return this.#add('matrix3d', ...args) }\n opacity(value: number) { return this.#add('opacity', value) }\n right(value: number | string) { return this.#add('right', value) }\n rotate(angle: number) { return this.#add('rotate', angle) }\n rotate3d(x: number, y: number, z: number, angle: number) { return this.#add('rotate3d', x, y, z, angle) }\n rotateX(angle: number) { return this.#add('rotateX', angle) }\n rotateY(angle: number) { return this.#add('rotateY', angle) }\n rotateZ(angle: number) { return this.#add('rotateZ', angle) }\n scale(x: number, y?: number) { return this.#add('scale', x, y ?? x) }\n scale3d(x: number, y: number, z: number) { return this.#add('scale3d', x, y, z) }\n scaleX(value: number) { return this.#add('scaleX', value) }\n scaleY(value: number) { return this.#add('scaleY', value) }\n scaleZ(value: number) { return this.#add('scaleZ', value) }\n skew(x: number, y: number) { return this.#add('skew', x, y) }\n skewX(angle: number) { return this.#add('skewX', angle) }\n skewY(angle: number) { return this.#add('skewY', angle) }\n top(value: number | string) { return this.#add('top', value) }\n translate(x: number, y?: number) { return this.#add('translate', x, y ?? 0) }\n translate3d(x: number, y: number, z: number) { return this.#add('translate3d', x, y, z) }\n translateX(value: number) { return this.#add('translateX', value) }\n translateY(value: number) { return this.#add('translateY', value) }\n translateZ(value: number) { return this.#add('translateZ', value) }\n width(value: number | string) { return this.#add('width', value) }\n\n step(options: WebAnimationStepOptions = {}) {\n this.#actions.push({\n animates: this.#operations.splice(0),\n option: { ...this.defaults, ...options },\n })\n return this\n }\n\n export() {\n return { actions: this.#actions.splice(0) }\n }\n}\n\nexport function createAnimation(options: WebAnimationStepOptions = {}) {\n return new WebAnimation(options)\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"appLifecycle.mjs","names":[
|
|
1
|
+
{"version":3,"file":"appLifecycle.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/appLifecycle.ts"],"sourcesContent":["import type { AppLaunchOptions, AppRuntime, PageStackEntry } from './options'\nimport { cloneLaunchOptions, resolveFallbackLaunchOptions } from '../appState'\nimport { isRecord } from './options'\n\ntype VisibilityDocument = Pick<Document, 'addEventListener' | 'hidden' | 'removeEventListener' | 'visibilityState'>\n\nfunction resolveEntryOptions(entry: Pick<PageStackEntry, 'id' | 'query'> | undefined): AppLaunchOptions {\n return resolveFallbackLaunchOptions(entry ? [entry] : [])\n}\n\nfunction isDocumentHidden(target: VisibilityDocument) {\n return target.visibilityState === 'hidden' || target.hidden === true\n}\n\nexport class AppLifecycleRuntime {\n #appInstance: AppRuntime | undefined\n #foreground = false\n #lastEnterOptions: AppLaunchOptions | undefined\n #launchOptions: AppLaunchOptions | undefined\n #launched = false\n #visibilityDocument: VisibilityDocument | undefined\n #visibilityHandler: (() => void) | undefined\n\n constructor(private readonly resolveCurrentEntry: () => PageStackEntry | undefined) {}\n\n register<T extends AppRuntime | undefined>(options: T): T {\n const resolved = (options ?? {}) as AppRuntime\n if (this.#appInstance) {\n const currentGlobal = this.#appInstance.globalData\n Object.assign(this.#appInstance, resolved)\n if (isRecord(currentGlobal)) {\n this.#appInstance.globalData = currentGlobal\n }\n else if (!isRecord(this.#appInstance.globalData)) {\n this.#appInstance.globalData = {}\n }\n return options\n }\n this.#appInstance = resolved\n if (!isRecord(this.#appInstance.globalData)) {\n this.#appInstance.globalData = {}\n }\n return options\n }\n\n bindVisibility(target: VisibilityDocument | undefined = typeof document === 'undefined' ? undefined : document) {\n if (!target || this.#visibilityDocument === target || typeof target.addEventListener !== 'function') {\n return\n }\n this.#unbindVisibility()\n this.#visibilityDocument = target\n this.#visibilityHandler = () => this.#syncVisibility(target)\n target.addEventListener('visibilitychange', this.#visibilityHandler)\n }\n\n ensureLaunched(entry: PageStackEntry) {\n if (!this.#appInstance || this.#launched) {\n return\n }\n const options = resolveEntryOptions(entry)\n this.#launchOptions = cloneLaunchOptions(options)\n this.#lastEnterOptions = cloneLaunchOptions(options)\n this.#foreground = true\n this.#launched = true\n this.#appInstance.onLaunch?.(cloneLaunchOptions(options))\n this.#appInstance.onShow?.(cloneLaunchOptions(options))\n }\n\n get instance() {\n return this.#appInstance\n }\n\n getLaunchOptions() {\n return this.#launchOptions\n ? cloneLaunchOptions(this.#launchOptions)\n : resolveEntryOptions(this.resolveCurrentEntry())\n }\n\n getEnterOptions() {\n return this.#lastEnterOptions\n ? cloneLaunchOptions(this.#lastEnterOptions)\n : this.getLaunchOptions()\n }\n\n dispose() {\n this.#unbindVisibility()\n }\n\n #syncVisibility(target: VisibilityDocument) {\n if (!this.#appInstance || !this.#launched) {\n return\n }\n if (isDocumentHidden(target)) {\n if (!this.#foreground) {\n return\n }\n this.#appInstance.onHide?.()\n this.#foreground = false\n return\n }\n if (this.#foreground) {\n return\n }\n const options = resolveEntryOptions(this.resolveCurrentEntry())\n this.#lastEnterOptions = cloneLaunchOptions(options)\n this.#appInstance.onShow?.(cloneLaunchOptions(options))\n this.#foreground = true\n }\n\n #unbindVisibility() {\n if (this.#visibilityDocument && this.#visibilityHandler) {\n this.#visibilityDocument.removeEventListener('visibilitychange', this.#visibilityHandler)\n }\n this.#visibilityDocument = undefined\n this.#visibilityHandler = undefined\n }\n}\n"],"mappings":";;;;AAMA,SAAS,oBAAoB,OAA2E;CACtG,OAAO,6BAA6B,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;AAC1D;AAEA,SAAS,iBAAiB,QAA4B;CACpD,OAAO,OAAO,oBAAoB,YAAY,OAAO,WAAW;AAClE;AAEA,IAAa,sBAAb,MAAiC;CASF;CAR7B;CACA,cAAc;CACd;CACA;CACA,YAAY;CACZ;CACA;CAEA,YAAY,AAAiB,qBAAuD;EAAvD;CAAwD;CAErF,SAA2C,SAAe;EACxD,MAAM,WAAY,WAAW,CAAC;EAC9B,IAAI,KAAK,cAAc;GACrB,MAAM,gBAAgB,KAAK,aAAa;GACxC,OAAO,OAAO,KAAK,cAAc,QAAQ;GACzC,IAAI,SAAS,aAAa,GACxB,KAAK,aAAa,aAAa;QAE5B,IAAI,CAAC,SAAS,KAAK,aAAa,UAAU,GAC7C,KAAK,aAAa,aAAa,CAAC;GAElC,OAAO;EACT;EACA,KAAK,eAAe;EACpB,IAAI,CAAC,SAAS,KAAK,aAAa,UAAU,GACxC,KAAK,aAAa,aAAa,CAAC;EAElC,OAAO;CACT;CAEA,eAAe,SAAyC,OAAO,aAAa,cAAc,SAAY,UAAU;EAC9G,IAAI,CAAC,UAAU,KAAK,wBAAwB,UAAU,OAAO,OAAO,qBAAqB,YACvF;EAEF,KAAK,kBAAkB;EACvB,KAAK,sBAAsB;EAC3B,KAAK,2BAA2B,KAAK,gBAAgB,MAAM;EAC3D,OAAO,iBAAiB,oBAAoB,KAAK,kBAAkB;CACrE;CAEA,eAAe,OAAuB;EACpC,IAAI,CAAC,KAAK,gBAAgB,KAAK,WAC7B;EAEF,MAAM,UAAU,oBAAoB,KAAK;EACzC,KAAK,iBAAiB,mBAAmB,OAAO;EAChD,KAAK,oBAAoB,mBAAmB,OAAO;EACnD,KAAK,cAAc;EACnB,KAAK,YAAY;EACjB,KAAK,aAAa,WAAW,mBAAmB,OAAO,CAAC;EACxD,KAAK,aAAa,SAAS,mBAAmB,OAAO,CAAC;CACxD;CAEA,IAAI,WAAW;EACb,OAAO,KAAK;CACd;CAEA,mBAAmB;EACjB,OAAO,KAAK,iBACR,mBAAmB,KAAK,cAAc,IACtC,oBAAoB,KAAK,oBAAoB,CAAC;CACpD;CAEA,kBAAkB;EAChB,OAAO,KAAK,oBACR,mBAAmB,KAAK,iBAAiB,IACzC,KAAK,iBAAiB;CAC5B;CAEA,UAAU;EACR,KAAK,kBAAkB;CACzB;CAEA,gBAAgB,QAA4B;EAC1C,IAAI,CAAC,KAAK,gBAAgB,CAAC,KAAK,WAC9B;EAEF,IAAI,iBAAiB,MAAM,GAAG;GAC5B,IAAI,CAAC,KAAK,aACR;GAEF,KAAK,aAAa,SAAS;GAC3B,KAAK,cAAc;GACnB;EACF;EACA,IAAI,KAAK,aACP;EAEF,MAAM,UAAU,oBAAoB,KAAK,oBAAoB,CAAC;EAC9D,KAAK,oBAAoB,mBAAmB,OAAO;EACnD,KAAK,aAAa,SAAS,mBAAmB,OAAO,CAAC;EACtD,KAAK,cAAc;CACrB;CAEA,oBAAoB;EAClB,IAAI,KAAK,uBAAuB,KAAK,oBACnC,KAAK,oBAAoB,oBAAoB,oBAAoB,KAAK,kBAAkB;EAE1F,KAAK,sBAAsB;EAC3B,KAAK,qBAAqB;CAC5B;AACF"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"stack.mjs","names":[
|
|
1
|
+
{"version":3,"file":"stack.mjs","names":[],"sources":["../../../../src/runtime/polyfill/routeRuntime/stack.ts"],"sourcesContent":["import type { PageRecord, PageStackEntry } from './options'\nimport {\n mountEntryToDom,\n setEntryActiveInDom,\n unmountEntryFromDom,\n} from './dom'\nimport { hidePageInstance, showPageInstance } from './lifecycle'\nimport { captureEntryScrollPosition, restoreEntryScrollPosition } from './scroll'\n\nexport class PageStackRuntime {\n readonly entries: PageStackEntry[] = []\n readonly #tabEntries = new Map<string, PageStackEntry>()\n #tabPageIds = new Set<string>()\n\n constructor(\n private readonly pageRegistry: Map<string, PageRecord>,\n private readonly onBeforeMount: (entry: PageStackEntry) => void,\n ) {}\n\n configureTabPages(ids: Iterable<string>) {\n this.#tabPageIds = new Set(ids)\n for (const [id, entry] of this.#tabEntries) {\n if (this.#tabPageIds.has(id)) {\n continue\n }\n this.#tabEntries.delete(id)\n this.#destroy(entry)\n }\n }\n\n push(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n this.#hide(this.entries[this.entries.length - 1])\n const entry: PageStackEntry = { id, query, active: true }\n this.entries.push(entry)\n this.#mount(entry)\n return true\n }\n\n replace(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n const entry: PageStackEntry = { id, query, active: true }\n if (this.entries.length) {\n const current = this.entries[this.entries.length - 1]!\n this.entries[this.entries.length - 1] = entry\n this.#destroy(current)\n }\n else {\n this.entries.push(entry)\n }\n this.#mount(entry)\n return true\n }\n\n relaunch(id: string, query: Record<string, string>) {\n if (!this.pageRegistry.has(id)) {\n return false\n }\n const previousEntries = this.entries.splice(0)\n for (const entry of previousEntries.reverse()) {\n this.#destroy(entry)\n }\n for (const entry of this.#tabEntries.values()) {\n this.#destroy(entry)\n }\n this.#tabEntries.clear()\n return this.push(id, query)\n }\n\n switchTab(id: string, query: Record<string, string>) {\n if (!this.#tabPageIds.has(id) || !this.pageRegistry.has(id)) {\n return false\n }\n\n const previousEntries = this.entries.splice(0)\n let target = previousEntries.find(entry => entry.id === id) ?? this.#tabEntries.get(id)\n for (const entry of previousEntries.reverse()) {\n if (entry === target) {\n continue\n }\n if (this.#tabPageIds.has(entry.id)) {\n this.#hide(entry)\n this.#tabEntries.set(entry.id, entry)\n }\n else {\n this.#destroy(entry)\n }\n }\n\n if (target) {\n this.#tabEntries.delete(id)\n target.query = query\n this.entries.push(target)\n this.#show(target)\n return true\n }\n\n target = { id, query, active: true }\n this.entries.push(target)\n this.#mount(target)\n return true\n }\n\n back(delta = 1) {\n if (this.entries.length <= 1) {\n return false\n }\n const normalizedDelta = Math.max(1, delta)\n const targetIndex = Math.max(0, this.entries.length - 1 - normalizedDelta)\n const removed = this.entries.splice(targetIndex + 1)\n for (const entry of removed.reverse()) {\n this.#destroy(entry)\n }\n this.#show(this.entries[targetIndex]!)\n return true\n }\n\n #mount(entry: PageStackEntry) {\n mountEntryToDom(entry, this.pageRegistry, this.onBeforeMount)\n }\n\n #record(entry: PageStackEntry) {\n return this.pageRegistry.get(entry.id)\n }\n\n #hide(entry: PageStackEntry | undefined) {\n if (!entry) {\n return\n }\n captureEntryScrollPosition(entry)\n setEntryActiveInDom(entry, false)\n const record = this.#record(entry)\n if (entry.instance && record) {\n hidePageInstance(entry.instance, record)\n }\n }\n\n #show(entry: PageStackEntry) {\n setEntryActiveInDom(entry, true)\n restoreEntryScrollPosition(entry)\n const record = this.#record(entry)\n if (entry.instance && record) {\n showPageInstance(entry.instance, record)\n }\n }\n\n #destroy(entry: PageStackEntry) {\n unmountEntryFromDom(entry)\n entry.active = false\n }\n}\n"],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@weapp-vite/web",
|
|
3
3
|
"type": "module",
|
|
4
|
-
"version": "1.4.
|
|
4
|
+
"version": "1.4.14",
|
|
5
5
|
"description": "Experimental web runtime for weapp-vite templates",
|
|
6
6
|
"author": "ice breaker <1324318532@qq.com>",
|
|
7
7
|
"license": "MIT",
|
|
@@ -55,18 +55,18 @@
|
|
|
55
55
|
"esbuild": "^0.28.2",
|
|
56
56
|
"htmlparser2": "^12.0.0",
|
|
57
57
|
"lit": "^3.3.3",
|
|
58
|
-
"magic-string": "^1.2.
|
|
58
|
+
"magic-string": "^1.2.3",
|
|
59
59
|
"pathe": "^2.0.3",
|
|
60
60
|
"postcss": "^8.5.26",
|
|
61
61
|
"postcss-selector-parser": "^7.1.5",
|
|
62
|
-
"rolldown": "1.2.
|
|
62
|
+
"rolldown": "1.2.6",
|
|
63
63
|
"@weapp-core/constants": "0.2.0",
|
|
64
|
-
"
|
|
65
|
-
"
|
|
66
|
-
"
|
|
64
|
+
"@weapp-core/shared": "3.2.0",
|
|
65
|
+
"rolldown-require": "2.0.27",
|
|
66
|
+
"wevu": "6.24.0"
|
|
67
67
|
},
|
|
68
68
|
"devDependencies": {
|
|
69
|
-
"happy-dom": "^20.11.
|
|
69
|
+
"happy-dom": "^20.11.12"
|
|
70
70
|
},
|
|
71
71
|
"scripts": {
|
|
72
72
|
"dev": "tsdown -w --sourcemap",
|