@lynx-example/mouse-cursor 0.0.0 → 0.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/LICENSE +0 -1
- package/README.md +23 -0
- package/dist/main.lynx.bundle +0 -0
- package/dist/main.web.bundle +1 -0
- package/dist/static/image/desktop-frame.29b29328.png +0 -0
- package/dist/static/image/lynx-logo.620eb8d1.png +0 -0
- package/lynx.config.ts +20 -0
- package/package.json +33 -6
- package/src/App.css +207 -0
- package/src/App.tsx +67 -0
- package/src/assets/desktop-frame.png +0 -0
- package/src/assets/lynx-logo.png +0 -0
- package/src/assets/target-frame.png +0 -0
- package/src/index.tsx +5 -0
- package/src/lynx-compat.d.ts +9 -0
- package/src/rspeedy-env.d.ts +1 -0
- package/src/useCursorDragDemo.ts +1 -0
- package/src/useDesktopDrag.ts +197 -0
- package/index.js +0 -1
package/LICENSE
CHANGED
package/README.md
ADDED
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
## Mouse Cursor
|
|
2
|
+
|
|
3
|
+
This example keeps only the Lynx UI portion of the `pc-mouse-cursor` showcase.
|
|
4
|
+
It demonstrates drag, hover, docking, and cursor-state feedback without any
|
|
5
|
+
desktop main-process, preload, or Lynxtron-specific code.
|
|
6
|
+
|
|
7
|
+
## Getting Started
|
|
8
|
+
|
|
9
|
+
Install the dependencies in the workspace root:
|
|
10
|
+
|
|
11
|
+
```bash
|
|
12
|
+
corepack enable
|
|
13
|
+
pnpm install
|
|
14
|
+
```
|
|
15
|
+
|
|
16
|
+
Then run the example:
|
|
17
|
+
|
|
18
|
+
```bash
|
|
19
|
+
pnpm --filter @lynx-example/mouse-cursor run dev
|
|
20
|
+
```
|
|
21
|
+
|
|
22
|
+
Hover and cursor changes are easiest to observe in web or desktop previews. The
|
|
23
|
+
drag interaction also works with touch input.
|
|
Binary file
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"styleInfo":{"0":{"content":[""],"rules":[{"sel":[[[".Page"],[],[],[]]],"decl":[["align-items","center"],["background","radial-gradient(circle at 18% 14%,rgba(14,165,233,.24),transparent 24%),radial-gradient(circle at 84% 20%,rgba(244,114,182,.16),transparent 22%),linear-gradient(180deg,#030712,#08111f 54%,#0f172a)"],["display","flex"],["flex","1"],["justify-content","center"],["min-height","100%"],["overflow","hidden"],["position","relative"]]},{"sel":[[[".PageBackdrop"],[],[],[]]],"decl":[["height","100%"],["left","0"],["overflow","hidden"],["position","absolute"],["top","0"],["width","100%"]]},{"sel":[[[".PageOrb"],[],[],[]]],"decl":[["background","radial-gradient(71.43% 62.3%at 46.43% 36.43%,rgba(18,229,229,0) 15%,rgba(239,155,255,.3) 56.35%,#ff6448 100%)"],["box-shadow","inset 0 12.93px 28.74px 0#ffd28db2"],["height","150vh"],["left","44.27vw"],["top","-30vh"],["transform","rotate(15.25deg)"],["width","150vh"]]},{"sel":[[[".BackdropGlow"],[],[],[]],[[".PageOrb"],[],[],[]]],"decl":[["border-radius","50%"],["position","absolute"]]},{"sel":[[[".BackdropGlow--a"],[],[],[]]],"decl":[["background","radial-gradient(circle at 50% 42%,rgba(56,189,248,.15),rgba(56,189,248,0) 58%)"],["height","182vw"],["left","-54vw"],["opacity",".92"],["top","-84vw"],["width","182vw"]]},{"sel":[[[".BackdropGlow--b"],[],[],[]]],"decl":[["background","radial-gradient(circle at 50% 45%,rgba(244,114,182,.14),rgba(244,114,182,0) 62%)"],["bottom","-74vw"],["height","128vw"],["opacity",".82"],["right","-34vw"],["width","128vw"]]},{"sel":[[[".BackdropGlow--accent"],[],[],[]]],"decl":[["background","radial-gradient(71.43% 62.3%at 46.43% 36.43%,rgba(18,229,229,0) 15%,rgba(239,155,255,.12) 56.35%,rgba(255,100,72,.18) 100%)"],["filter","blur(8px)"],["height","62vw"],["left","50%"],["opacity",".28"],["top","4vh"],["transform","translateX(-50%)"],["width","88vw"]]},{"sel":[[[".Poster"],[],[],[]]],"decl":[["gap","18px"],["padding","34px 0 28px"],["position","relative"],["width","980px"]]},{"sel":[[[".Header"],[],[],[]],[[".Poster"],[],[],[]]],"decl":[["display","flex"],["flex-direction","column"]]},{"sel":[[[".Header"],[],[],[]]],"decl":[["align-items","center"],["gap","8px"],["margin","0 auto"],["max-width","760px"],["text-align","center"]]},{"sel":[[[".Title"],[],[],[]]],"decl":[["color","#f8fafc"],["font-size","50px"],["font-weight","800"],["line-height","1"]]},{"sel":[[[".Stage"],[],[],[]]],"decl":[["align-self","center"],["background","radial-gradient(circle at 18% 30%,rgba(125,211,252,.07),transparent 36%),radial-gradient(circle at 84% 70%,rgba(244,114,182,.05),transparent 30%),linear-gradient(180deg,rgba(6,11,23,.78),rgba(10,18,32,.84))"],["border-radius","34px"],["box-shadow","0 32px 84px rgba(2,8,23,.38),inset 0 1px 0 hsla(0,0%,100%,.04)"],["height","320px"],["overflow","hidden"],["position","relative"],["width","980px"]]},{"sel":[[[".DesktopFrame"],[],[],[]]],"decl":[["border-radius","28px"],["height","238px"],["left","588px"],["overflow","hidden"],["position","absolute"],["top","58px"],["transition","transform .18s ease,filter .18s ease"],["width","336px"]]},{"sel":[[[".DesktopFrame--hot"],[],[],[]]],"decl":[["filter","brightness(1.08)"],["transform","scale(1.01)"]]},{"sel":[[[".DesktopFrame--occupied"],[],[],[]]],"decl":[["filter","brightness(1.04)"]]},{"sel":[[[".DesktopFrameImage"],[],[],[]]],"decl":[["height","100%"],["width","100%"]]},{"sel":[[[".LogoCard"],[],[],[]]],"decl":[["align-items","center"],["cursor","grab"],["display","flex"],["height","132px"],["justify-content","center"],["left","160px"],["position","absolute"],["top","94px"],["transition","left .22s cubic-bezier(.2,.9,.2,1),top .22s cubic-bezier(.2,.9,.2,1),transform .18s ease,filter .18s ease"],["width","132px"]]},{"sel":[[[".LogoCard--dragging"],[],[],[]]],"decl":[["cursor","grabbing"],["filter","drop-shadow(0 14px 32px rgba(2,8,23,.28))"],["transform","scale(1.04) rotate(-1.5deg)"],["transition","none"]]},{"sel":[[[".LogoCard--docked"],[],[],[]]],"decl":[["filter","drop-shadow(0 12px 24px rgba(14,165,233,.2))"],["transform","scale(.98)"]]},{"sel":[[[".LogoImage"],[],[],[]]],"decl":[["height","100px"],["width","100px"]]}]}},"manifest":{"/app-service.js":"\"use strict\";let e,t,n,r,l,o,_,i;var u,a,s,f,c,p,d,h,y,v,g,m,b,x,S,k,C,E,w,P,I,O={};function N(e){var t=O[e];if(void 0!==t)return t.exports;var n=O[e]={exports:{}};return __webpack_modules__[e](n,n.exports,N),n.exports}N.p=\"/\";var j=\"http://www.w3.org/2000/svg\";var A=\"http://www.w3.org/1999/xhtml\";var L=void 0;var T={};var M=[];var R=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;var D=Array.isArray;function F(e,t){for(var n in t)e[n]=t[n];return e}function U(e){e&&e.parentNode&&e.parentNode.removeChild(e)}var H=M.slice;var $={__e:function(e,t,n,r){var l,o,_;for(;t=t.__;)if((l=t.__c)&&!l.__)try{if((o=l.constructor)&&null!=o.getDerivedStateFromError&&(l.setState(o.getDerivedStateFromError(e)),_=l.__d),null!=l.componentDidCatch&&(l.componentDidCatch(e,r||{}),_=l.__d),_)return l.__E=l}catch(t){e=t}throw e}};var W=0;function B(e,t,n){var r,l,o,_={};for(o in t)\"key\"==o?r=t[o]:\"ref\"==o?l=t[o]:_[o]=t[o];if(arguments.length>2&&(_.children=arguments.length>3?H.call(arguments,2):n),\"function\"==typeof e&&null!=e.defaultProps)for(o in e.defaultProps)_[o]===L&&(_[o]=e.defaultProps[o]);return V(e,_,r,l,null)}function V(e,t,n,r,l){var o={type:e,props:t,key:n,ref:r,__k:null,__:null,__b:0,__e:null,__c:null,constructor:L,__v:null==l?++W:l,__i:-1,__u:0};return null==l&&null!=$.vnode&&$.vnode(o),o}function J(e){return e.children}function G(e,t){this.props=e,this.context=t}function Y(e,t){var n;if(null==t)return e.__?Y(e.__,e.__i+1):null;for(;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return\"function\"==typeof e.type?Y(e):null}G.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=F({},this.state),\"function\"==typeof e&&(e=e(F({},n),this.props)),e&&F(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Q(this))},G.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Q(this))},G.prototype.render=J;var q=[];var X=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout;function Q(e){(!e.__d&&(e.__d=!0)&&q.push(e)&&!K.__r++||y!=$.debounceRendering)&&((y=$.debounceRendering)||X)(K)}var z=function(e,t){return e.__v.__b-t.__v.__b};function K(){try{var e,t=1;for(;q.length;)q.length>t&&q.sort(z),e=q.shift(),t=q.length,function(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,r=[],l=[],o=F({},t);o.__v=t.__v+1,$.vnode&&$.vnode(o),$.renderComponent&&$.renderComponent(o,e),ei(e.__P,o,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,r,null==n?Y(t):n,!!(32&t.__u),l),o.__v=t.__v,o.__.__k[o.__i]=o,ea(r,o,l),t.__e=t.__=null,o.__e!=n&&function e(t){if(null!=(t=t.__)&&null!=t.__c)return t.__e=t.__c.base=null,t.__k.some(function(e){if(null!=e&&null!=e.__e)return t.__e=t.__c.base=e.__e}),e(t)}(o)}}(e)}finally{q.length=K.__r=0}}function Z(e,t,n,r,l,o,_,i,u,a,s){var f,c,p,d,h;var y=r&&r.__k||M;var v=t.length;for(f=0,u=function(e,t,n,r,l){var o,_,i,u=n.length,a=u;var s=0;for(o=0,e.__k=Array(l);o<l;o++){if(null==(_=t[o])||\"boolean\"==typeof _||\"function\"==typeof _){e.__k[o]=null;continue}\"string\"==typeof _||\"number\"==typeof _||\"bigint\"==typeof _||_.constructor==String?_=e.__k[o]=V(null,_,null,null,null):D(_)?_=e.__k[o]=V(J,{children:_},null,null,null):_.constructor===L&&_.__b>0?_=e.__k[o]=V(_.type,_.props,_.key,_.ref?_.ref:null,_.__v):e.__k[o]=_;var f=o+s;_.__=e,_.__b=e.__b+1;var c=_.__i=function(e,t,n,r){var l=e.key;var o=e.type;var _=t[n];var i=null!=_&&(2&_.__u)==0;if(null===_&&null==l||i&&l==_.key&&o==_.type)return n;if(r>+!!i){var u=n-1;var a=n+1;for(;u>=0||a<t.length;){var s=u>=0?u--:a++;if(null!=(_=t[s])&&(2&_.__u)==0&&l==_.key&&o==_.type)return s}}return -1}(_,n,f,a);i=null,-1!=c&&(i=n[c],a--,i&&(i.__u|=2)),null==i||null==i.__v?(-1==c&&(l>u?s--:l<u&&s++),\"function\"!=typeof _.type&&(_.__u|=4)):c!=f&&(c==f-1?s--:c==f+1?s++:(c>f?s--:s++,_.__u|=4))}if(a)for(o=0;o<u;o++)null!=(i=n[o])&&(2&i.__u)==0&&(i.__e==r&&(r=Y(i)),function e(t,n,r){var l;if($.unmount&&$.unmount(t),(l=t.ref)&&(!l.current||l.current==t.__e)&&es(l,null,n),null!=(l=t.__c)){if(l.componentWillUnmount)try{l.componentWillUnmount()}catch(e){$.__e(e,n)}l.base=l.__P=null}if(l=t.__k)for(var o=0;o<l.length;o++)l[o]&&e(l[o],n,r||\"function\"!=typeof t.type);r||U(t.__e),t.__c=t.__=t.__e=L}(i,i));return r}(n,t,y,u,v);f<v;f++)if(null!=(p=n.__k[f])){c=-1!=p.__i&&y[p.__i]||T,p.__i=f;var g=ei(e,p,c,l,o,_,i,u,a,s);d=p.__e,p.ref&&c.ref!=p.ref&&(c.ref&&es(c.ref,null,p),s.push(p.ref,p.__c||d,p)),null==h&&null!=d&&(h=d);var m=!!(4&p.__u);m||c.__k===p.__k?u=function e(t,n,r,l){if(\"function\"==typeof t.type){var o=t.__k;for(var _=0;o&&_<o.length;_++)o[_]&&(o[_].__=t,n=e(o[_],n,r,l));return n}t.__e!=n&&(l&&(n&&t.type&&!n.parentNode&&(n=Y(t)),r.insertBefore(t.__e,n||null)),n=t.__e);do n=n&&n.nextSibling;while(null!=n&&8==n.nodeType);return n}(p,u,e,m):\"function\"==typeof p.type&&g!==L?u=g:d&&(u=d.nextSibling),p.__u&=-7}return n.__e=h,u}function ee(e,t,n){\"-\"==t[0]?e.setProperty(t,null==n?\"\":n):null==n?e[t]=\"\":\"number\"!=typeof n||R.test(t)?e[t]=n:e[t]=n+\"px\"}K.__r=0;var et=/(PointerCapture)$|Capture$/i;var en=0;function er(e,t,n,r,l){var o;e:if(\"style\"==t)if(\"string\"==typeof n)e.style.cssText=n;else{if(\"string\"==typeof r&&(e.style.cssText=r=\"\"),r)for(t in r)n&&t in n||ee(e.style,t,\"\");if(n)for(t in n)r&&n[t]==r[t]||ee(e.style,t,n[t])}else if(\"o\"==t[0]&&\"n\"==t[1]){o=t!=(t=t.replace(et,\"$1\"));var _=t.toLowerCase();t=_ in e||\"onFocusOut\"==t||\"onFocusIn\"==t?_.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+o]=n,n?r?n._attached=r._attached:(n._attached=en,e.addEventListener(t,o?e_:eo,o)):e.removeEventListener(t,o?e_:eo,o)}else{if(l==j)t=t.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=t&&\"height\"!=t&&\"href\"!=t&&\"list\"!=t&&\"form\"!=t&&\"tabIndex\"!=t&&\"download\"!=t&&\"rowSpan\"!=t&&\"colSpan\"!=t&&\"role\"!=t&&\"popover\"!=t&&t in e)try{e[t]=null==n?\"\":n;break e}catch(e){}\"function\"==typeof n||(null!=n&&(!1!==n||\"-\"==t[4])?e.setAttribute(t,\"popover\"==t&&!0==n?\"\":n):e.removeAttribute(t))}}function el(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t._dispatched)t._dispatched=en++;else if(t._dispatched<n._attached)return;return n($.event?$.event(t):t)}}}var eo=el(!1);var e_=el(!0);function ei(e,t,n,r,l,o,_,i,u,a){var s,f,c,p,d,h,y,v=t.type;if(t.constructor!==L)return null;128&n.__u&&(u=!!(32&n.__u),o=[i=t.__e=n.__e]),(y=$.__b)&&y(t),(y=$._diff2)&&y(t,n);t:if(\"function\"==typeof v)try{var g=t.props;var m=v.prototype&&v.prototype.render;var b=(y=v.contextType)&&r[y.__c];var x=y?b?b.props.value:y.__:r;if(n.__c?h=(s=t.__c=n.__c).__=s.__E:(m?t.__c=s=new v(g,x):(t.__c=s=new G(g,x),s.constructor=v,s.render=ef),b&&b.sub(s),s.state||(s.state={}),s.__n=r,f=s.__d=!0,s.__h=[],s._sb=[]),m&&null==s.__s&&(s.__s=s.state),m&&null!=v.getDerivedStateFromProps&&(s.__s==s.state&&(s.__s=F({},s.__s)),F(s.__s,v.getDerivedStateFromProps(g,s.__s))),c=s.props,p=s.state,s.__v=t,f)m&&null==v.getDerivedStateFromProps&&null!=s.componentWillMount&&s.componentWillMount(),m&&null!=s.componentDidMount&&s.__h.push(s.componentDidMount);else{if(m&&null==v.getDerivedStateFromProps&&g!==c&&null!=s.componentWillReceiveProps&&s.componentWillReceiveProps(g,x),t.__v==n.__v||!s.__e&&null!=s.shouldComponentUpdate&&!1===s.shouldComponentUpdate(g,s.__s,x)){t.__v!=n.__v&&(s.props=g,s.state=s.__s,s.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),M.push.apply(s.__h,s._sb),s._sb=[],s.__h.length&&_.push(s);break t}null!=s.componentWillUpdate&&s.componentWillUpdate(g,s.__s,x),m&&null!=s.componentDidUpdate&&s.__h.push(function(){s.componentDidUpdate(c,p,d)})}s.context=x,s.props=g,s.__P=e,s.__e=!1;var S=$.__r,k=0;if(m)s.state=s.__s,s.__d=!1,S&&S(t),y=s.render(s.props,s.state,s.context),M.push.apply(s.__h,s._sb),s._sb=[];else do s.__d=!1,S&&S(t),y=s.render(s.props,s.state,s.context),s.state=s.__s;while(s.__d&&++k<25);s.state=s.__s,null!=s.getChildContext&&(r=F(F({},r),s.getChildContext())),m&&!f&&null!=s.getSnapshotBeforeUpdate&&(d=s.getSnapshotBeforeUpdate(c,p));var C=null!=y&&y.type===J&&null==y.key?function e(t){return\"object\"!=typeof t||null==t||t.__b>0?t:D(t)?t.map(e):F({},t)}(y.props.children):y;i=Z(e,D(C)?C:[C],t,n,r,l,o,_,i,u,a),s.base=t.__e,t.__u&=-161,s.__h.length&&_.push(s),h&&(s.__E=s.__=null)}catch(e){if(t.__v=null,u||null!=o)if(e.then){for(t.__u|=u?160:128;i&&8==i.nodeType&&i.nextSibling;)i=i.nextSibling;o[o.indexOf(i)]=null,t.__e=i}else{for(var E=o.length;E--;)U(o[E]);eu(t)}else t.__e=n.__e,t.__k=n.__k,e.then||eu(t);$.__e(e,t,n)}else null==o&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):i=t.__e=function(e,t,n,r,l,o,_,i,u){var a,s,f,c,p,d,h,y=n.props||T;var v=t.props;var g=t.type;if(\"svg\"==g?l=j:\"math\"==g?l=\"http://www.w3.org/1998/Math/MathML\":l||(l=A),null!=o){for(a=0;a<o.length;a++)if((p=o[a])&&\"setAttribute\"in p==!!g&&(g?p.localName==g:3==p.nodeType)){e=p,o[a]=null;break}}if(null==e){if(null===g)return $.document.createTextNode(v);e=$.document.createElementNS(l,g,v.is&&v),i&&($.__m&&$.__m(t,o),i=!1),o=null}if(null==g)y===v||i&&e.data==v||(e.data=v);else{if(o=o&&H.call(e.childNodes),!i&&null!=o)for(a=0,y={};a<e.attributes.length;a++)y[(p=e.attributes[a]).name]=p.value;for(a in y)p=y[a],\"dangerouslySetInnerHTML\"==a?f=p:\"children\"==a||a in v||\"value\"==a&&\"defaultValue\"in v||\"checked\"==a&&\"defaultChecked\"in v||er(e,a,null,p,l);for(a in v)p=v[a],\"children\"==a?c=p:\"dangerouslySetInnerHTML\"==a?s=p:\"value\"==a?d=p:\"checked\"==a?h=p:i&&\"function\"!=typeof p||y[a]===p||er(e,a,p,y[a],l);if(s)i||f&&(s.__html==f.__html||s.__html==e.innerHTML)||(e.innerHTML=s.__html),t.__k=[];else if(f&&(e.innerHTML=\"\"),Z(\"template\"==t.type?e.content:e,D(c)?c:[c],t,n,r,\"foreignObject\"==g?A:l,o,_,o?o[0]:n.__k&&Y(n,0),i,u),null!=o)for(a=o.length;a--;)U(o[a]);i||(a=\"value\",\"progress\"==g&&null==d?e.removeAttribute(\"value\"):d==L||d===e[a]&&(\"progress\"!=g||d)&&(\"option\"!=g||d==y[a])||er(e,a,d,y[a],l),a=\"checked\",h!=L&&h!=e[a]&&er(e,a,h,y[a],l))}return e}(n.__e,t,n,r,l,o,_,u,a);return(y=$.diffed)&&y(t),128&t.__u?void 0:i}function eu(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(eu))}function ea(e,t,n){for(var r=0;r<n.length;r++)es(n[r],n[++r],n[++r]);$.__c&&$.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){$.__e(e,t.__v)}})}function es(e,t,n){try{if(\"function\"==typeof e){var r=\"function\"==typeof e.__u;r&&e.__u(),r&&null==t||(e.__u=e(t))}else e.current=t}catch(e){$.__e(e,n)}}function ef(e,t,n){return this.constructor(e,n)}function ec(e,t,n){$.__&&$.__(e,t);var r=\"function\"==typeof n;var l=r?null:n&&n.__k||t.__k;e=(!r&&n||t).__k=B(J,null,[e]);var o=[],_=[];ei(t,e,l||T,T,t.namespaceURI,!r&&n?[n]:l?null:t.firstChild?H.call(t.childNodes):null,o,!r&&n?n:l?l.__e:t.firstChild,r,_),ea(o,e,_)}var ep=0;function ed(e,t,n,r,l,o){t||(t={});var _,i,u=t;if(\"ref\"in u)for(i in u={},t)\"ref\"==i?_=t[i]:u[i]=t[i];var a={type:e,props:u,key:n,ref:_,__k:null,__:null,__b:0,__e:null,__c:null,constructor:void 0,__v:--ep,__i:-1,__u:0,__source:l,__self:o};if(\"function\"==typeof e&&(_=e.defaultProps))for(i in _)void 0===u[i]&&(u[i]=_[i]);return $.vnode&&$.vnode(a),a}var eh=0;var ey=[];var ev=$.__b;var eg=$.__r;var em=$.diffed;var eb=$.__c;var ex=$.unmount;var eS=$.__;function ek(e,t){$.__h&&$.__h(g,e,eh||t),eh=0;var n=g.__H||(g.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function eC(e){return eh=1,function(e,t){var n=ek(v++,2);if(n._reducer=e,!n.__c&&(n.__=[eA(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0];var r=n._reducer(t,e);t!==r&&(n.__N=[r,n.__[1]],n.__c.setState({}))}],n.__c=g,!g.__f)){var r=function(e,t,r){if(!n.__c.__H)return!0;var o=n.__c.__H.__.filter(function(e){return e.__c});if(o.every(function(e){return!e.__N}))return!l||l.call(this,e,t,r);var _=n.__c.props!==e;return o.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(_=!0)}}),l&&l.call(this,e,t,r)||_};g.__f=!0;var l=g.shouldComponentUpdate;var o=g.componentWillUpdate;g.componentWillUpdate=function(e,t,n){if(this.__e){var _=l;l=void 0,r(e,t,n),l=_}o&&o.call(this,e,t,n)},g.shouldComponentUpdate=r}return n.__N||n.__}(eA,e)}function eE(e,t){var n=ek(v++,3);!$.__s&&ej(n.__H,t)&&(n.__=e,n._pendingArgs=t,g.__H.__h.push(n))}function ew(e){return eh=5,function(e,t){var n=ek(v++,7);return ej(n.__H,t)&&(n.__=e(),n.__H=t,n.__h=e),n.__}(function(){return{current:e}},[])}$.__b=function(e){g=null,ev&&ev(e)},$.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),eS&&eS(e,t)},$.__r=function(e){eg&&eg(e),g=e.__c,v=0;var t=g.__H;t&&(m===g?(t.__h=[],g.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e._pendingArgs=e.__N=void 0})):(t.__h.some(eO),t.__h.some(eN),t.__h=[],v=0)),m=g},$.diffed=function(e){em&&em(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1===ey.push(t)||b!==$.requestAnimationFrame)&&((b=$.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(r),eI&&cancelAnimationFrame(t),setTimeout(e)};var r=setTimeout(n,35);eI&&(t=requestAnimationFrame(n))})(eP),t.__H.__.some(function(e){e._pendingArgs&&(e.__H=e._pendingArgs),e._pendingArgs=void 0})),m=g=null},$.__c=function(e,t){t.some(function(e){try{e.__h.some(eO),e.__h=e.__h.filter(function(e){return!e.__||eN(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],$.__e(n,e.__v)}}),eb&&eb(e,t)},$.unmount=function(e){ex&&ex(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{eO(e)}catch(e){t=e}}),n.__H=void 0,t&&$.__e(t,n.__v))};function eP(){var e;for(;e=ey.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(eO),t.__h.some(eN),t.__h=[]}catch(n){t.__h=[],$.__e(n,e.__v)}}}var eI=\"function\"==typeof requestAnimationFrame;function eO(e){var t=g;var n=e.__c;\"function\"==typeof n&&(e.__c=void 0,n()),g=t}function eN(e){var t=g;e.__c=e.__(),g=t}function ej(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function eA(e,t){return\"function\"==typeof t?t(e):t}const eL=!!(null==(S=lynx.performance)||null==(x=S.isProfileRecording)?void 0:x.call(S));const eT=()=>{};let eM;const eR=(eM=lynx.performance)&&\"function\"==typeof eM.profileStart?eM.profileStart.bind(eM):eT;let eD;const eF=(eD=lynx.performance)&&\"function\"==typeof eD.profileEnd?eD.profileEnd.bind(eD):eT;let eU;const eH=(eU=lynx.performance)&&\"function\"==typeof eU.profileFlowId?eU.profileFlowId.bind(eU):()=>0;const e$=eL?new WeakMap:void 0;function eW(e,t){return t?{flowId:e,args:{stack:t}}:{flowId:e}}const eB=eL?function(e){let[t,n]=0===arguments.length?eC():eC(e);let r=null==e$?void 0:e$.get(n);if(r)return[t,r];let l=e=>{let t=Error().stack;eR(\"ReactLynx::hooks::useState::setter\",t?{args:{stack:t}}:void 0);try{return n(e)}finally{eF()}};return null==e$||e$.set(n,l),[t,l]}:eC;const eV=eL?function(e,t){return function(e,t,n){let r=eH();let l=Error().stack;eR(n,eW(r,l));try{var o;let _;return eE((o=`${n}::callback`,_=eW(r,l),()=>{eR(o,_);try{let t=e();if(\"function\"!=typeof t)return t;return()=>{eR(`${o}::cleanup`,_);try{t()}finally{eF()}}}finally{eF()}}),t)}finally{eF()}}(e,t,\"ReactLynx::hooks::useEffect\")}:eE;function eJ(e,t){if(e===t)return!0;try{if(\"object\"==typeof e&&null!==e&&\"object\"==typeof t&&null!==t&&JSON.stringify(e)===JSON.stringify(t))return!0}catch(e){throw e}return!1}function eG(e){for(let t in e)return!1;return!0}function eY(e,t){let n=(SystemInfo.lynxSdkVersion||\"1.0\").split(\".\");return Number(n[0])>e||Number(n[0])==e&&Number(n[1])>t}function eq(e){var t;return null!=(t=e.displayName)?t:e.name}function eX(e,t,n){let r=e[t];e[t]=function(...e){return n.call(this,r,...e)}}const eQ=(()=>{if(lynx.queueMicrotask)return e=>lynx.queueMicrotask(e);if(\"function\"!=typeof globalThis.Promise)return e=>{setTimeout(e,0)};{let e=globalThis.Promise.resolve();return t=>{e.then(t).catch(e=>{setTimeout(()=>{throw e},0)})}}})();function ez(e){for(var t=1;t<arguments.length;t++){var n=null!=arguments[t]?arguments[t]:{};var r=Object.keys(n);\"function\"==typeof Object.getOwnPropertySymbols&&(r=r.concat(Object.getOwnPropertySymbols(n).filter(function(e){return Object.getOwnPropertyDescriptor(n,e).enumerable}))),r.forEach(function(t){var r;r=n[t],t in e?Object.defineProperty(e,t,{value:r,enumerable:!0,configurable:!0,writable:!0}):e[t]=r})}return e}function eK(e,t){return t=null!=t?t:{},Object.getOwnPropertyDescriptors?Object.defineProperties(e,Object.getOwnPropertyDescriptors(t)):(function(e){var t=Object.keys(e);if(Object.getOwnPropertySymbols){var n=Object.getOwnPropertySymbols(e);t.push.apply(t,n)}return t})(Object(t)).forEach(function(n){Object.defineProperty(e,n,Object.getOwnPropertyDescriptor(t,n))}),e}(u=k||(k={})).firstScreen=\"rLynxFirstScreen\",u.updateFromRoot=\"updateFromRoot\",u.globalEventFromLepus=\"globalEventFromLepus\",u.jsReady=\"rLynxJSReady\",u.patchUpdate=\"rLynxChange\",u.publishEvent=\"rLynxPublishEvent\",u.updateMTRefInitValue=\"rLynxChangeRefInitValue\",(a=C||(C={}))[a.UPDATE=0]=\"UPDATE\",a[a.RESET=1]=\"RESET\";function eZ(){if(e){let t=e;return e=[],t}}const e0=\"renderComponent\";const e1=\"reactLynxHydrate\",e2=\"updateTriggeredByBts\";const e3=\"__lynx_timing_flag\";let e4=!1;let e5=!1;function e9(e,n){var r,l;switch(e){case\"updateSetStateTrigger\":e4=!0,e5=!0,t=n;break;case\"updateDiffVdomStart\":if(!e4)return;e4=!1;break;case\"updateDiffVdomEnd\":if(!e5)return;e5=!1}null==(r=(l=lynx.getNativeApp()).markTiming)||r.call(l,t,e)}function e8(e,t,r){var l,o,_,i,u,a,s,f;if(n=null==(o=lynx.performance)||null==(l=o._generatePipelineOptions)?void 0:l.call(o)){switch(n.needTimestamps=e,n.pipelineOrigin=t,n.dsl=\"reactLynx\",t){case e1:n.stage=\"hydrate\";break;case e2:n.stage=\"update\"}eY(3,0)?null==(i=lynx.performance)||null==(_=i._onPipelineStart)||_.call(i,n.pipelineID,n):null==(a=lynx.performance)||null==(u=a._onPipelineStart)||u.call(a,n.pipelineID),r&&(null==(f=lynx.performance)||null==(s=f._bindPipelineIdWithTimingFlag)||s.call(f,n.pipelineID,r))}}function e6(e,t){var r,l;n&&(t||n.needTimestamps)&&(null==(l=lynx.performance)||null==(r=l._markTiming)||r.call(l,n.pipelineID,e))}(s=E||(E={})).runWorkletCtx=\"Lynx.Worklet.runWorkletCtx\",s.runOnBackground=\"Lynx.Worklet.runOnBackground\",s.FunctionCallRet=\"Lynx.Worklet.FunctionCallRet\",s.releaseBackgroundWorkletCtx=\"Lynx.Worklet.releaseBackgroundWorkletCtx\",s.releaseWorkletRef=\"Lynx.Worklet.releaseWorkletRef\";const e7=new Map;const te={value:!0};const tt=[];class tn{setTask(e,t){return this.task=n=>n[e].apply(n,t),this}exec(){var e;e=()=>{var e;let t=null!=(e=e7.get(this.refAttr[0]))?e:this.refAttr[0];let n=`[react-ref-${t}-${this.refAttr[1]}]`;this.task(lynx.createSelectorQuery().select(n)).exec()},te.value?tt.push(e):e()}constructor(e){return this.refAttr=e,this.task=void 0,new Proxy(this,{get:(e,t,n)=>\"symbol\"==typeof t||\"then\"===t||t in e||\"string\"!=typeof t?Reflect.get(e,t,n):(...n)=>new tn(e.refAttr).setTask(t,n)})}}const tr=[];const tl=[];function to(e,t){let n=t&&new tn(t);try{if(\"function\"==typeof e){let t=\"function\"==typeof e._unmount;t&&e._unmount(),t&&null==n||(e._unmount=e(n))}else e.current=n}catch(e){lynx.reportError(e)}}function t_(){try{for(let e of tr)to(e,null);for(let e=0;e<tl.length;e+=2){let t=tl[e];let n=tl[e+1];to(t,n)}}finally{tu()}}function ti(e,t,n,r){e!==t&&(e&&tr.push(e),t&&tl.push(t,[n,r]))}function tu(){tr.length=0,tl.length=0}const ta=new Map;new WeakMap,(f=w||(w={}))[f.Attr=0]=\"Attr\",f[f.Spread=1]=\"Spread\",f[f.Slot=2]=\"Slot\",f[f.Children=3]=\"Children\",f[f.ListChildren=4]=\"ListChildren\",f[f.MultiChildren=5]=\"MultiChildren\";const ts=\"UNREACHABLE_ITEM_KEY_NOT_FOUND\";new Map;const tf=[[w.Children,0]];const tc={values:new Map([[\"root\",{create:()=>[],update:[],slot:tf,isListHolder:!1,cssId:0}],[\"wrapper\",{create:()=>[],update:[],slot:tf,isListHolder:!1}],[null,{create:()=>[],update:[e=>{}],slot:[],isListHolder:!1}]])};let tp={};const td={nextId:0,values:new Map,clear(){this.values.clear()},updateId(e,t){let n=this.values;let r=n.get(e);n.delete(e),n.set(t,r),r.__id=t},getValueBySign(e){let t=null==e?void 0:e.split(\":\");if(!t||2!=t.length&&3!=t.length)throw Error(\"Invalid ctx format: \"+e);let n=Number(t[0]);let r=Number(t[1]);let l=this.values.get(n);if(!l)return null;let o=t[2];if(\"__extraProps\"===t[1]){if(o)return l.__extraProps[o];throw Error(\"unreachable\")}return o?l.__values[r][o]:l.__values[r]}};function th(e,t,n,r,l,o,_,i=!1){var u;i||(u=e,e=o?`${o}:${u}`:u);let a={create:t,update:n,slot:r,cssId:l,entryName:o,refAndSpreadIndexes:_};return tc.values.set(e,a),r&&r[0]&&r[0][0]===w.ListChildren&&(a.isListHolder=!0),e}function ty(e,t){let n=e.childNodes;for(let r of(t(e),n))ty(r,t)}let tv=[];function tg(){let e=tv;return tv=[],e}function tm(){let e=tg();if(0===e.length)return;let t=JSON.stringify(e);lynx.getNativeApp().callLepusMethod(k.updateMTRefInitValue,{data:t})}let tb=0;let tx=[];function tS(){let e=tx;return tx=[],e}const tk={value:!1};const tC=()=>{tk.value=!0,eQ(()=>{tk.value=!1})};eX($,e0,(e,...t)=>{null==e||e(...t),tC()}),eX($,\"__\",(e,...t)=>{null==e||e(...t),tC()});let tE={};const tw=new Map;let tP=1;let tI=[];let tO={};function tN(e,t){e6(\"packChangesStart\");let r={data:JSON.stringify(e),patchOptions:eK(ez({},t),{reloadVersion:tb})};return e6(\"packChangesEnd\"),n&&(r.patchOptions.pipelineOptions=n,n=void 0),r}const tj=e=>\"function\"==typeof e?e.toString():e;function tA(e){let t=new WeakSet;return JSON.stringify(e,function(e,n){if(\"object\"==typeof n&&null!==n){if(t.has(n))return\"[Unserializable: Circular]\";t.add(n)}return n})}function tL(e,t,n){let r={};let l=null!=t?t:r;let o=null!=n?n:r;return{componentName:e&&\"function\"==typeof e?eq(e):\"Unknown\",\"current state keys\":JSON.stringify(Object.keys(l)),\"next state keys\":JSON.stringify(Object.keys(o)),\"changed (shallow diff) state keys\":JSON.stringify(Object.keys(o).filter(e=>l[e]!==o[e])),currentValue:tA(tj(t)),nextValue:tA(tj(n))}}(c=P||(P={}))[c.COMPOSED=-1]=\"COMPOSED\",c[c.PAN=0]=\"PAN\",c[c.FLING=1]=\"FLING\",c[c.DEFAULT=2]=\"DEFAULT\",c[c.TAP=3]=\"TAP\",c[c.LONGPRESS=4]=\"LONGPRESS\",c[c.ROTATION=5]=\"ROTATION\",c[c.PINCH=6]=\"PINCH\",c[c.NATIVE=7]=\"NATIVE\";const tT=[];class tM{add(e){let t=++this.lastIndex;return this.indexMap.set(t,e),t}get(e){return this.indexMap.get(e)}remove(e){this.indexMap.delete(e)}constructor(){this.lastIndex=0,this.indexMap=new Map}}class tR extends tM{add(e){let t=super.add(e);return e._execId=t,t}findJsFnHandle(e,t){let n=this.get(e);if(!n)return;let r=e=>{if(null!==e&&\"object\"==typeof e){if(\"_jsFnId\"in e&&e._jsFnId===t)return e;for(let t in e){let n=r(e[t]);if(n)return n}}};return r(n)}}function tD(e){let t=JSON.parse(e.data);let n=o.findJsFnHandle(t.obj._execId,t.obj._jsFnId);let r=null==n?void 0:n._fn;if(!r)throw Error(\"runOnBackground: JS function not found: \"+JSON.stringify(t.obj));let l=r(...t.params);lynx.getCoreContext().dispatchEvent({type:E.FunctionCallRet,data:JSON.stringify({resolveId:t.resolveId,returnValue:l})})}function tF(e){for(let t of e.data)o.remove(t)}function tU(e){return(null!=r?r:r=eY(2,13))||!e?e&&(null!=l?l:l=eY(2,15))?(o||(o=new tR,lynx.getCoreContext().addEventListener(E.runOnBackground,tD),lynx.getCoreContext().addEventListener(E.releaseBackgroundWorkletCtx,tF),tT.push(()=>{lynx.getCoreContext().removeEventListener(E.runOnBackground,tD),lynx.getCoreContext().removeEventListener(E.releaseBackgroundWorkletCtx,tF),o=void 0})),o.add(e),e):e:(lynx.reportError(Error(\"Main thread script requires Lynx sdk version 2.14\")),null)}function tH(e){if(e.type===P.COMPOSED)for(let t of e.gestures)tH(t);else for(let[t,n]of Object.entries(e.callbacks))e.callbacks[t]=tU(n)}const t$=new Set([\"name\",\"clip-radius\",\"overlap\",\"exposure-scene\",\"exposure-id\"]);function tW(e,t,n){let r={};let l=!1;for(let _ in n){var o;let i=n[_];\"__spread\"===_||(\"class\"===_||\"className\"===_?(null!=i||(i=\"\"),r.className=i):\"ref\"===_?r[_]=null==(o=function(e){if(null==e)return e;if(\"function\"==typeof e||\"object\"==typeof e&&\"current\"in e)return\"__ref\"in e?e:Object.defineProperty(e,\"__ref\",{value:1});throw Error(`Elements' \"ref\" property should be a function, or an object created by createRef(), but got [${typeof e}] instead`)}(i))?void 0:o.__ref:\"function\"==typeof i?r[_]=`${e.__id}:${t}:${_}`:\"__self\"===_||\"__source\"===_||(!l&&t$.has(_)&&(l=!0),r[_]=i))}return l&&(r.flatten=!1),r}class tB{get parentNode(){return this.__parent}get nextSibling(){return this.__nextSibling}appendChild(e){return this.insertBefore(e)}insertBefore(t,n){t.__removed_from_tree?(t.__removed_from_tree=!1,tV([t],this.__id,null==n?void 0:n.__id)):null==e||e.push(1,this.__id,t.__id,null==n?void 0:n.__id);let r=t.__parent;r&&(t.__previousSibling?t.__previousSibling.__nextSibling=t.__nextSibling:r.__firstChild=t.__nextSibling,t.__nextSibling?t.__nextSibling.__previousSibling=t.__previousSibling:r.__lastChild=t.__previousSibling),n?(n.__previousSibling?(n.__previousSibling.__nextSibling=t,t.__previousSibling=n.__previousSibling):(this.__firstChild=t,t.__previousSibling=null),n.__previousSibling=t,t.__nextSibling=n,t.__parent=this):(this.__lastChild?(this.__lastChild.__nextSibling=t,t.__previousSibling=this.__lastChild):(this.__firstChild=t,t.__previousSibling=null),this.__lastChild=t,t.__parent=this,t.__nextSibling=null)}removeChild(t){if(null==e||e.push(2,this.__id,t.__id),t.__removed_from_tree=!0,t.__parent!==this)throw Error(\"The node to be removed is not a child of this node.\");t.__previousSibling?t.__previousSibling.__nextSibling=t.__nextSibling:this.__firstChild=t.__nextSibling,t.__nextSibling?t.__nextSibling.__previousSibling=t.__previousSibling:this.__lastChild=t.__previousSibling,t.__parent=null,t.__previousSibling=null,t.__nextSibling=null,ti(()=>{ty(t,e=>{var t;e.__values&&(null==(t=e.__snapshot_def.refAndSpreadIndexes)||t.forEach(t=>{let n=e.__values[t];n&&(\"object\"==typeof n||\"function\"==typeof n)&&(\"__spread\"in n&&\"ref\"in n&&n.ref?to(n.ref,null):\"__ref\"in n&&to(n,null))}))})},null,0,0),tI.push(t.__id)}tearDown(){ty(this,e=>{e.__parent=null,e.__previousSibling=null,e.__nextSibling=null,td.values.delete(e.__id)})}get childNodes(){let e=[];let t=this.__firstChild;for(;t&&(e.push(t),t!==this.__lastChild);)t=t.__nextSibling;return e}setAttribute(t,n){var r,l,o;if(\"values\"===t){if(e){let t=this.__values;if(t)for(let r=0;r<n.length;r++){let{needUpdate:l,valueToCommit:o}=this.setAttributeImpl(n[r],t[r],r);l&&e.push(3,this.__id,r,o)}else{let t=[];let r=n.length;for(let e=0;e<r;++e){let{valueToCommit:r}=this.setAttributeImpl(n[e],null,e);t[e]=r}e.push(4,this.__id,t)}}else null==(o=this.__snapshot_def.refAndSpreadIndexes)||o.forEach(e=>{let t=n[e];t&&(\"object\"==typeof t||\"function\"==typeof t)&&(\"__spread\"in t&&\"ref\"in t?ti(null,t.ref,this.__id,e):\"__ref\"in t&&ti(null,t,this.__id,e))});this.__values=n;return}\"string\"==typeof t?(null!=(r=this.__extraProps)?r:this.__extraProps={})[t]=n:(null!=(l=this.__values)?l:this.__values=[])[t]=n,null==e||e.push(3,this.__id,t,n)}setAttributeImpl(e,t,r){if(!e)return t&&\"object\"==typeof t&&\"__ref\"in t&&ti(t,null,this.__id,r),{needUpdate:t!==e,valueToCommit:e};let l=typeof e;if(\"object\"===l){if(\"__spread\"in e){let l=null==t?void 0:t.__spread;let o=tW(this,r,e);let _=!eJ(l,o);if(e.__spread=o,ti(l&&t.ref,e.ref,this.__id,r),_)for(let e in o){let t=o[e];t&&(t._wkltId?o[e]=tU(t):t.__isGesture?tH(t):\"__lynx_timing_flag\"==e&&(null==l?void 0:l[e])!=t&&n&&(n.needTimestamps=!0))}return{needUpdate:_,valueToCommit:o}}return\"__ref\"in e?(ti(t,e,this.__id,r),{needUpdate:!1,valueToCommit:1}):\"_wkltId\"in e?{needUpdate:!0,valueToCommit:tU(e)}:\"__isGesture\"in e?(tH(e),{needUpdate:!0,valueToCommit:e}):\"__ltf\"in e?n&&(null==t?void 0:t.__ltf)!=e.__ltf?(n.needTimestamps=!0,{needUpdate:!0,valueToCommit:e}):{needUpdate:!1,valueToCommit:e}:{needUpdate:!eJ(t,e),valueToCommit:e}}return\"function\"===l?e.__ref?(ti(t,e,this.__id,r),{needUpdate:!1,valueToCommit:1}):{needUpdate:!t,valueToCommit:1}:{needUpdate:t!==e,valueToCommit:e}}constructor(t){if(this.__parent=null,this.__firstChild=null,this.__lastChild=null,this.__previousSibling=null,this.__nextSibling=null,this.type=t,!tc.values.has(t)&&\"div\"!==t)if(tp[t])tp[t](t);else throw Error(\"BackgroundSnapshot not found: \"+t);this.__snapshot_def=tc.values.get(t);const n=this.__id=td.nextId+=1;td.values.set(n,this),null==e||e.push(0,t,n)}}function tV(t,n,r){for(let l of t){let t=l.__id;null==e||e.push(0,l.type,t);let o=l.__values;o&&(l.__values=void 0,l.setAttribute(\"values\",o));let _=l.__extraProps;for(let e in _)l.setAttribute(e,_[e]);tV(l.childNodes,t),null==e||e.push(1,n,t,r)}}const tJ={};const tG=\"Lynx.Error.CtxNotFound\";let tY=null;function tq(e,t){if(null==e)return{};var n,r,l,o={};if(\"u\">typeof Reflect&&Reflect.ownKeys){for(l=0,n=Reflect.ownKeys(Object(e));l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}if(o=function(e,t){if(null==e)return{};var n,r,l={},o=Object.getOwnPropertyNames(e);for(r=0;r<o.length;r++)n=o[r],!(t.indexOf(n)>=0)&&Object.prototype.propertyIsEnumerable.call(e,n)&&(l[n]=e[n]);return l}(e,t),Object.getOwnPropertySymbols)for(l=0,n=Object.getOwnPropertySymbols(e);l<n.length;l++)r=n[l],!(t.indexOf(r)>=0)&&Object.prototype.propertyIsEnumerable.call(e,r)&&(o[r]=e[r]);return o}function tX(e,t){null!=i||(i=[]),i.push([e,t])}_=new tB(\"root\");const tQ=[];function tz(){ec(null,_),tw.forEach(e=>{e()}),tw.clear(),tQ.length=0,i&&(i.length=0)}(p=I||(I={}))[p.Begin=0]=\"Begin\",p[p.End=1]=\"End\",p[p.Attr=2]=\"Attr\",p[p.Text=3]=\"Text\";function tK([t,n]){if(!(\"__k\"in _))return void tQ.push([t,n]);try{(function(t,n){switch(t){case k.firstScreen:{var r,l;let t;try{K()}catch(e){t=e}let{root:o,jsReadyEventIdSwap:u}=n;e8(!0,e1,\"react_lynx_hydrate\"),e6(\"hydrateParseSnapshotStart\");let a=JSON.parse(o);e6(\"hydrateParseSnapshotEnd\"),e6(\"diffVdomStart\");let s;let f=(r=a,l=_,e=[],(s=(t,n)=>{var r,l,o,_,i;if(e7.set(n.__id,t.id),td.updateId(n.__id,t.id),null==(l=n.__values)||l.forEach((r,l)=>{let o=t.values[l];if(r)if(\"object\"==typeof r)if(\"__spread\"in r){delete r.__spread;let e=tW(n,l,r);for(let t in e){let n=e[t];n&&\"object\"==typeof n&&(\"_wkltId\"in n?tU(n):\"__isGesture\"in n&&tH(n))}n.__values[l].__spread=e,r=e}else\"__ref\"in r?r=o:\"_wkltId\"in r?tU(r):\"__isGesture\"in r&&tH(r);else\"function\"==typeof r&&(r=\"__ref\"in r?o:`${n.__id}:${l}:`);if(!eJ(r,o))if(void 0===r&&null===o);else if(1)e.push(3,n.__id,l,r);else{var _,i;eR(\"ReactLynx::hydrate::setAttribute\",{args:{id:String(n.__id),snapshotType:String(n.type),source:null!=(i=n.__id,_=ta.get(i))?_:\"\",dynamicPartIndex:String(l),valueType:null===r?\"null\":typeof r}});try{e.push(3,n.__id,l,r)}finally{eF()}}}),n.__extraProps)for(let r in n.__extraProps){let l=n.__extraProps[r];let u=null==(o=t.extraProps)?void 0:o[r];if(!eJ(l,u))if(1)e.push(3,n.__id,r,l);else{eR(\"ReactLynx::hydrate::setAttribute\",{args:{id:String(n.__id),snapshotType:String(n.type),source:null!=(i=n.__id,_=ta.get(i))?_:\"\",dynamicPartIndex:r,valueType:null===l?\"null\":typeof l}});try{e.push(3,n.__id,r,l)}finally{eF()}}}let{slot:u}=n.__snapshot_def;let a=null!=(r=t.children)?r:[];let f=n.childNodes;u&&u.forEach(([n],r)=>{switch(n){case w.Slot:case w.MultiChildren:{let e=a[r];let t=f[r];s(e,t);break}case w.Children:case w.ListChildren:{let n=function(e,t,n,r,l){var o,_,i,u,a;let s=0;let f={$$diff:!0,i:{},r:[],m:{}};let c={};for(let t=0;t<e.length;t++){let n=e[t];let r=l?null!=(o=null==(i=n.__listItemPlatformInfo)?void 0:i[\"item-key\"])?o:ts:n.type;(null!=(_=c[r])?_:c[r]=new Set).add([n,t])}for(let e=0;e<t.length;e++){let o;let _=t[e];let i=c[l?null!=(u=null==(a=_.__listItemPlatformInfo)?void 0:a[\"item-key\"])?u:ts:_.type];if(i&&i.size>0&&([o]=i,o)&&n(o[0],_)){i.delete(o);let t=o[1];if(r(o[0],_,t,e),t<s){f.m[t]=e;continue}s=t}else f.i[e]=_}for(let e in c)for(let[,t]of c[e])f.r.push(t);return f}(a,f,(e,t)=>e.type===t.type,(e,t)=>{s(e,t)},!1);(function(e,t,n,r,l){let o;if(!(!eG(t.i)||!eG(t.m)||t.r.length>0))return e;let _=new Set(t.r);let{i:i,m:u}=t;let a=new Map;let s=0;o=e[0];let f=[];let c=0;let p=0;let d=Object.keys(i).length;for(;o||d>0;){let t=!1;if(o&&_.has(p))r(o);else if(o&&void 0!==u[p])a.set(u[p],o),d++;else{let e=o;a.has(c)?(e=a.get(c),t=!0,l(e,o),d--):void 0!==i[c]&&(e=n(i[c],o),t=!0,d--),f.push(e),c++}o&&!t&&(o=e[++s],p++)}return f})(a,n,(e,n)=>{tV([e],t.id,null==n?void 0:n.id)},n=>{e.push(2,t.id,n.id)},(n,r)=>{e.push(1,t.id,n.id,null==r?void 0:r.id)})}}})})(r,l),tu(),eZ());e6(\"diffVdomEnd\"),t0(),i&&(i.forEach(e=>{var t;let[n,r]=e;let[l,...o]=n.split(\":\");for(;u[l];)l=null==(t=u[l])?void 0:t.toString();try{t1([l,...o].join(\":\"),r)}catch(e){lynx.reportError(e)}}),i.length=0),lynxCoreInject.tt.publishEvent=t1,lynxCoreInject.tt.publicComponentEvent=t2;let c=tP++;let p={patchList:[{snapshotPatch:f,id:c}]};tx.length&&(p.delayedRunOnMainThreadData=tS());let d=tN(p,{isHydration:!0});tm(),lynx.getNativeApp().callLepusMethod(k.patchUpdate,d,()=>{tw.forEach((e,t)=>{t>c||(e(),tw.delete(t))})});let h=tt.slice();for(let e of(tt.length=0,te.value=!1,h))e();if(t)throw t;break}case k.globalEventFromLepus:{let[e,t]=n;lynx.getJSModule(\"GlobalEventEmitter\").trigger(e,t);break}case k.publishEvent:{let{handlerName:e,data:t}=n;lynxCoreInject.tt.publishEvent(e,t)}}})(t,n)}catch(e){lynx.reportError(e)}}let tZ=!1;function t0(){tZ||(tZ=!0,tQ&&(tQ.forEach(e=>{tK(e)}),tQ.length=0),tZ=!1)}function t1(e,t){var n,r;null==(n=(r=lynxCoreInject.tt).callBeforePublishEvent)||n.call(r,t);let l=td.getValueBySign(e);if(l)try{l(t)}catch(e){lynx.reportError(e)}}function t2(e,t,n){t1(t,n)}$.document=tJ,$.requestAnimationFrame=eQ,tJ.createElement=function(e){return new tB(e)},tJ.createElementNS=function(e,t){return new tB(t)},tJ.createTextNode=function(e){let t=new tB(null);return t.setAttribute(0,e),Object.defineProperty(t,\"data\",{set(e){t.setAttribute(0,e)}}),t};let t3;(t3=lynxCoreInject.tt).OnLifecycleEvent=tK,t3.publishEvent=tX,t3.publicComponentEvent=function(e,t,n){tX(t,n)},t3.callDestroyLifetimeFun=()=>{var e,t;let n;for(let r of((n=null==(e=(t=lynx).getCoreContext)?void 0:e.call(t))&&tY&&(n.removeEventListener(tG,tY),tY=null),tg(),tT))r();tT.length=0,tz()},t3.updateGlobalProps=function(e){Object.assign(lynx.__globalProps,e),Promise.resolve().then(()=>{if(_.__jsx){let e=Object.assign({},_.__jsx);null!=e.__v&&(e.__v+=1,_.__jsx=e)}let e=$._diff2;$._diff2=(t,n)=>{e&&e(t,n);let r=n.__c;r&&(r.__e=!0)};try{ec(_.__jsx,_)}finally{$._diff2=e}}),lynxCoreInject.tt.GlobalEventEmitter.emit(\"onGlobalPropsChanged\",[lynx.__globalProps])},t3.updateCardData=function(e,t){let{__lynx_timing_flag:n}=e,r=tq(e,[\"__lynx_timing_flag\"]);n&&lynx.reportError(Error(`Received unsupported updateData with \\`__lynx_timing_flag\\` (value \"${n}\"), the timing flag is ignored`));let{type:l=C.UPDATE}=null!=t?t:{};l==C.RESET&&(lynx.__initData={}),lynx.__initData=Object.assign({},lynx.__initData,r),lynxCoreInject.tt.GlobalEventEmitter.emit(\"onDataChanged\",[r])},t3.onAppReload=function(t){e=void 0,tz(),++tb,lynx.__initData=Object.assign({},lynx.__initData,t),te.value=!0,ec(_.__jsx,_)},t3.processCardConfig=()=>{},tY=e=>{(function(e){let t=e.id;let n=td.values.get(t);let r=\"null\";if(n&&n.__snapshot_def){for(let[e,t]of tc.values.entries())if(t===n.__snapshot_def){r=e;break}}let l=`snapshotPatchApply failed: ctx not found, snapshot type: '${r}'`;lynx.reportError(Error(l))})(e.data)},null==(d=(h=lynx).getCoreContext)||d.call(h).addEventListener(tG,tY),eX($,\"__c\",(e,t,n)=>{let r,l;tk.value=!1,e9(\"updateDiffVdomEnd\"),e6(\"diffVdomEnd\");let o=tI;tI=[];let _=tP++;tw.set(_,()=>{o.length&&setTimeout(()=>{o.forEach(e=>{var t;null==(t=td.values.get(e))||t.tearDown()})},1e4)}),tm();let i=eZ();let u=(r=tE,tE={},r);let a=(l=tO,tO={},l);if(!i){t_(),null==e||e(t,n);return}let s={id:_};(null==i?void 0:i.length)&&(s.snapshotPatch=i);let f={patchList:[s]};eG(u)||(f.flushOptions=u),i&&tx.length&&(f.delayedRunOnMainThreadData=tS());let c=tN(f,a);lynx.getNativeApp().callLepusMethod(k.patchUpdate,c,()=>{let e=tw.get(_);e&&(e(),tw.delete(_))}),t_(),null==e||e(t,n)});let t4;t4=()=>{e&&(n||(e8(!1,e2),e6(\"diffVdomStart\",!0)),e4&&e9(\"updateDiffVdomStart\"))},eX($,e0,(e,t,n)=>{t4(),e&&e(t,n)}),eX($,\"__\",(e,t,n)=>{t4(),e&&e(t,n)}),eL&&function(){let t;if(!(t=lynx.performance)||\"function\"!=typeof t.profileStart||\"function\"!=typeof t.profileEnd||\"function\"!=typeof t.profileMark||\"function\"!=typeof t.profileFlowId)return;let n=t.profileStart.bind(t);let r=t.profileEnd.bind(t);let l=t.profileMark.bind(t);let o=t.profileFlowId.bind(t);{let e=Symbol(\"FLOW_ID\");eX(G.prototype,\"setState\",function(t,n,r){if(null==t||t.call(this,n,r),this.__d){var _;let t=this.__v.type;\"function\"==typeof t&&\"prototype\"in t&&\"render\"in t.prototype&&l(\"ReactLynx::setState\",{flowId:null!=(_=this[e])?_:this[e]=o(),args:tL(t,this.state,this.__s)})}}),eX($,\"_diff2\",(t,r,l)=>{if(\"function\"==typeof r.type){let t={};{let n=l.__c;if(n){let r=n[e];if(delete n[e],r){var o;null!=(o=tO).flowIds||(o.flowIds=[]),tO.flowIds.push(r),t.flowId=r}}}n(`ReactLynx::diff::${eq(r.type)}`,t)}null==t||t(r,l)}),eX($,\"diffed\",(t,n)=>{{var _;let t=null==(_=n.__c)?void 0:_.__H;let r=null==t?void 0:t.__;Array.isArray(r)&&r.forEach((t,n)=>{t.internalNextValue=t.__N,Object.defineProperty(t,\"__N\",{get:()=>t.internalNextValue,set:r=>{if(Array.isArray(r)){var _;let i=t.__[0];let[u]=r;let a=t.__c;if(!a){t.internalNextValue=r;return}let s=a.__v.type;l(\"ReactLynx::hooks::setState\",{flowId:null!=(_=a[e])?_:a[e]=o(),args:ez({hookIdx:String(n)},tL(s,i,u))})}t.internalNextValue=r},configurable:!0})})}\"function\"==typeof n.type&&r(),null==t||t(n)}),eX($,\"__c\",(e,t,l)=>{n(\"ReactLynx::commit\",ez({},tO.flowIds?{flowId:tO.flowIds[\"0\"],flowIds:tO.flowIds}:{})),null==e||e(t,l),r()})}eX($,\"__r\",(e,t)=>{let l=t.__c.render;t.__c.render=function(e,o,_){n(`ReactLynx::render::${eq(t.type)}`);try{return l.call(this,e,o,_)}finally{r(),t.__c.render=l}},null==e||e(t)});{let t=Symbol(\"PATCH_LENGTH\");eX($,\"__b\",(n,r)=>{\"function\"==typeof r.type&&e&&(r[t]=e.length),null==n||n(r)}),eX($,\"diffed\",(n,r)=>{if(\"function\"==typeof r.type){let n=r[t];delete r[t],e&&n===e.length&&l(\"ReactLynx::diffFinishNoPatch\",{args:{componentName:eq(r.type)}})}null==n||n(r)})}}(),function(){{let{initData:e,updateData:t}=lynxCoreInject.tt._params;lynx.__initData=ez({},e,t),lynx.registerDataProcessors=function(){}}}();{function t5(e,t){}G.prototype._reactAppInstance=lynxCoreInject.tt,G.prototype.getNodeRef=function(e,t){return t5(\"getNodeRef\",\"lynx.createSelectorQuery\"),lynxCoreInject.tt._reactLynx.ReactComponent.prototype.getNodeRef.call({_type:\"\",_nativeApp:lynxCoreInject.tt._nativeApp,_uiModule:lynxCoreInject.tt._nativeApp.nativeModuleProxy.LynxUIMethodModule,_reactAppInstance:lynxCoreInject.tt},e,t)},G.prototype.getNodeRefFromRoot=function(e){return t5(\"getNodeRefFromRoot\",\"lynx.createSelectorQuery\"),lynxCoreInject.tt._reactLynx.ReactComponent.prototype.getNodeRefFromRoot.call({_type:\"\",_nativeApp:lynxCoreInject.tt._nativeApp,_uiModule:lynxCoreInject.tt._nativeApp.nativeModuleProxy.LynxUIMethodModule,_reactAppInstance:lynxCoreInject.tt},e)},G.prototype.registerModule=function(e,t){this._reactAppInstance.registerModule(e,t)},G.prototype.getJSModule=function(e){return this._reactAppInstance.getJSModule(e)},G.prototype.addGlobalEventListener=function(e,t,n){return this._reactAppInstance.getJSModule(\"GlobalEventEmitter\").addListener(e,t,n)},G.prototype.getElementById=function(e){return t5(\"getElementById\",\"lynx.getElementById\"),lynx.getElementById(e)},G.prototype.GlobalEventEmitter=lynxCoreInject.tt.GlobalEventEmitter,G.prototype.createSelectorQuery=function(){return t5(\"createSelectorQuery on component instance\",\"lynx.createSelectorQuery\"),lynx.createSelectorQuery()};const e=G.prototype.setState;G.prototype.setState=function(t,n){e.call(this,t,n);let r=this.__s[e3];r&&(tE.__lynx_timing_flag=r,e9(\"updateSetStateTrigger\",r),this.__s[e3]=\"\")}}function t9(e,t){for(var n in t)e[n]=t[n];return e}function t8(e,t){for(var n in e)if(\"__source\"!==n&&!(n in t))return!0;for(var r in t)if(\"__source\"!==r&&e[r]!==t[r])return!0;return!1}function t6(e,t){this.props=e,this.context=t}t6.prototype=new G,t6.prototype.isPureReactComponent=!0,t6.prototype.shouldComponentUpdate=function(e,t){return t8(this.props,e)||t8(this.state,t)};var t7=$.__b;$.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),t7&&t7(e)};var ne=\"u\">typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;var nt=$.__e;$.__e=function(e,t,n,r){if(e.then){var l;var o=t;for(;o=o.__;)if((l=o.__c)&&l.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),l.__c(e,t)}nt(e,t,n,r)};var nn=$.unmount;function nr(){this.__u=0,this._suspenders=null,this.__b=null}function nl(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function no(){this._next=null,this._map=null}$.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),nn&&nn(e)},nr.prototype=new G,nr.prototype.__c=function(e,t){var n=t.__c;var r=this;null==r._suspenders&&(r._suspenders=[]),r._suspenders.push(n);var l=nl(r.__v);var o=!1;var _=function(){o||r.__z||(o=!0,n.__R=null,l?l(u):u())};n.__R=_;var i=n.__P;n.__P=null;var u=function(){if(!--r.__u){if(r.state.__a){var e,t=r.state.__a;r.__v.__k[0]=function e(t,n,r){return t&&r&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return e(t,n,r)}),t.__c&&t.__c.__P===n&&(t.__e&&r.appendChild(t.__e),t.__c.__e=!0,t.__c.__P=r)),t}(t,t.__c.__P,t.__c.__O)}for(r.setState({__a:r.__b=null});e=r._suspenders.pop();)e.__P=i,e.forceUpdate()}};r.__u++||32&t.__u||r.setState({__a:r.__b=r.__v.__k[0]}),e.then(_,_)},nr.prototype.componentWillUnmount=function(){this._suspenders=[]},nr.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=$.document.createElement(\"div\");var r=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,r){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(e){\"function\"==typeof e.__c&&e.__c()}),t.__c.__H=null),null!=(t=t9({},t)).__c&&(t.__c.__P===r&&(t.__c.__P=n),t.__c.__e=!0,t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return e(t,n,r)})),t}(this.__b,n,r.__O=r.__P)}this.__b=null}var l=t.__a&&B(J,null,e.fallback);return l&&(l.__u&=-33),[B(J,null,t.__a?null:e.children),l]};var n_=function(e,t,n){if(++n[1]===n[0]&&e._map.delete(t),e.props.revealOrder&&(\"t\"!==e.props.revealOrder[0]||!e._map.size))for(n=e._next;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e._next=n=n[2]}};no.prototype=new G,no.prototype.__a=function(e){var t=this;var n=nl(t.__v);var r=t._map.get(e);return r[0]++,function(l){var o=function(){t.props.revealOrder?(r.push(l),n_(t,e,r)):l()};n?n(o):o()}},no.prototype.render=function(e){this._next=null,this._map=new Map;var t=function e(t,n){return n=n||[],null==t||\"boolean\"==typeof t||(D(t)?t.some(function(t){e(t,n)}):n.push(t)),n}(e.children);e.revealOrder&&\"b\"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this._map.set(t[n],this._next=[1,0,this._next]);return e.children},no.prototype.componentDidUpdate=no.prototype.componentDidMount=function(){var e=this;this._map.forEach(function(t,n){n_(e,n,t)})};var ni=\"u\">typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;G.prototype.isReactComponent=!0,[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(e){Object.defineProperty(G.prototype,e,{configurable:!0,get:function(){return this[\"UNSAFE_\"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var nu=$.event;$.event=function(e){return nu&&(e=nu(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var na=$.vnode;$.vnode=function(e){e.$$typeof=ni,na&&na(e)};w.Slot,w.MultiChildren,w.Children,w.ListChildren;let ns=!1;const nf=function(){var e=function(e,t){let{children:n}=e,r=tq(e,[\"children\"]);_.setAttribute(\"values\",[eK(ez({},t?{ref:t}:void 0,r),{__spread:!0})]);let l=ew(!0);return eV(()=>(ns?(lynx.reportError(Error(\"Attempt to render more than one `<page />`, which is not supported.\")),l.current=!1):ns=!0,()=>{_.setAttribute(\"values\",[eK(ez({},Object.fromEntries(Object.entries(r).map(([e,t])=>[e,void 0]))),{__spread:!0})]),l.current&&(ns=!1)}),[]),n};function t(t){var n=t9({},t);return delete n.ref,e(n,t.ref||null)}return t.$$typeof=ne,t.render=e,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(e.displayName||e.name)+\")\",t}();const nc=N.p+\"static/image/desktop-frame.29b29328.png\";const np=N.p+\"static/image/lynx-logo.620eb8d1.png\";const nd={left:0,top:0,width:980,height:320};const nh={x:160,y:94};function ny(e,t,n){return Math.max(t,Math.min(n,e))}function nv(e){var t,n;let r=null!=(t=null==e?void 0:e.detail)?t:{};let l=null!=(n=r.layout)?n:r;return{left:\"number\"==typeof l.left?l.left:\"number\"==typeof l.x?l.x:void 0,top:\"number\"==typeof l.top?l.top:\"number\"==typeof l.y?l.y:void 0,width:\"number\"==typeof l.width?l.width:void 0,height:\"number\"==typeof l.height?l.height:void 0}}function ng(e,t){var n;let r=null!=(n=null==e?void 0:e.detail)?n:{};return{x:\"number\"==typeof(null==e?void 0:e.pageX)?e.pageX-t.left:\"number\"==typeof(null==e?void 0:e.clientX)?e.clientX-t.left:\"number\"==typeof(null==e?void 0:e.x)?e.x:\"number\"==typeof r.pageX?r.pageX-t.left:\"number\"==typeof r.clientX?r.clientX-t.left:\"number\"==typeof r.x?r.x:0,y:\"number\"==typeof(null==e?void 0:e.pageY)?e.pageY-t.top:\"number\"==typeof(null==e?void 0:e.clientY)?e.clientY-t.top:\"number\"==typeof(null==e?void 0:e.y)?e.y:\"number\"==typeof r.pageY?r.pageY-t.top:\"number\"==typeof r.clientY?r.clientY-t.top:\"number\"==typeof r.y?r.y:0}}function nm(e,t,n){return{x:ny(e.x-n.x,24,t.width-132-24),y:ny(e.y-n.y,24,t.height-132-24)}}function nb(e,t){let n={left:e.x,top:e.y,width:132,height:132};let r={x:n.left+n.width/2,y:n.top+n.height/2};return!!(r.x>=t.left)&&!!(r.x<=t.left+t.width)&&!!(r.y>=t.top)&&!!(r.y<=t.top+t.height)||Math.max(0,Math.min(n.left+n.width,t.left+t.width)-Math.max(n.left,t.left))*Math.max(0,Math.min(n.top+n.height,t.top+t.height)-Math.max(n.top,t.top))/(n.width*n.height)>=.35}const nx=\"__snapshot_835da_65b90_1\";tp[nx]=e=>th(e,null,null,null,void 0,globDynamicComponentEntry,null,!0);const nS=\"__snapshot_835da_65b90_2\";tp[nS]=e=>th(e,null,null,null,void 0,globDynamicComponentEntry,null,!0),({render:e=>{_.__jsx=e,ec(e,_),t0()},registerDataProcessors:e=>{lynx.registerDataProcessors(e)}}).render(ed(function(){let{desktopHot:e,docked:t,dragging:n,logoPos:r,cancelDrag:l,finishDrag:o,handleDesktopLayout:_,handleLogoDown:i,handleMove:u,handleStageLayout:a}=function(){let[e,t]=eB(nd);let[n,r]=eB(null);let[l,o]=eB(nh);let[_,i]=eB({x:0,y:0});let[u,a]=eB(!1);let[s,f]=eB(!1);let[c,p]=eB(!1);let d=ew(!1);return{desktopHot:s,docked:c,dragging:u,logoPos:l,cancelDrag:()=>{u&&d.current&&(d.current=!1,o(nh),p(!1),a(!1),f(!1))},finishDrag:t=>{if(!u||!d.current)return;d.current=!1;let r=nm(ng(t,e),e,_);if(n&&nb(r,n)&&n)o({x:n.left+Math.round((n.width-132)/2),y:n.top+Math.round((n.height-132)/2)-15}),p(!0);else o(nh),p(!1);a(!1),f(!1)},handleDesktopLayout:e=>{let t=nv(e);r(e=>{var n,r,l,o;return{left:null!=(n=t.left)?n:e.left,top:null!=(r=t.top)?r:e.top,width:null!=(l=t.width)?l:e.width,height:null!=(o=t.height)?o:e.height}})},handleLogoDown:t=>{let n=ng(t,e);d.current=!0,a(!0),p(!1),i({x:n.x-l.x,y:n.y-l.y}),f(!1)},handleMove:t=>{if(!u||!d.current)return;let r=nm(ng(t,e),e,_);o(r),f(!!n&&nb(r,n))},handleStageLayout:e=>{let n=nv(e);t(e=>{var t,r,l,o;return{left:null!=(t=n.left)?t:e.left,top:null!=(r=n.top)?r:e.top,width:null!=(l=n.width)?l:e.width,height:null!=(o=n.height)?o:e.height}})}}}();let s=`DesktopFrame ${e?\"DesktopFrame--hot\":\"\"} ${t?\"DesktopFrame--occupied\":\"\"}`;let f=`LogoCard ${n?\"LogoCard--dragging\":\"\"} ${t?\"LogoCard--docked\":\"\"}`;let c={left:`${r.x}px`,top:`${r.y}px`,cursor:n?\"grabbing\":\"grab\"};return ed(nf,{className:\"Page\",bindmousemove:u,bindtouchmove:u,bindmouseup:o,bindtouchend:o,bindtouchcancel:l,bindmouseleave:l,children:[ed(nx,{}),ed(nS,{values:[a,s,_,nc,f,c,i,i,np]})]})},{}));"},"cardType":"react","appType":"card","pageConfig":{"enableFiberArch":true,"useLepusNG":true,"enableReuseContext":true,"bundleModuleMode":"ReturnByFunction","templateDebugUrl":"","debugInfoOutside":true,"defaultDisplayLinear":true,"enableCSSInvalidation":true,"enableCSSSelector":true,"enableLepusDebug":false,"enableRemoveCSSScope":true,"targetSdkVersion":"3.2","defaultOverflowVisible":true,"lepusStrict":true,"useNewSwiper":true,"enableNewIntersectionObserver":true,"enableNativeList":true,"enableA11y":true,"enableAccessibilityElement":false,"enableCSSInheritance":false,"enableNewGesture":false,"removeDescendantSelectorScope":true},"lepusCode":{"root":"\"use strict\";let e,t,n,_,l,r,i,o,s,u,a;var f,c,p,d,h,m,v,y,g,b,S,x,k,E,w,C,I,A,P,N,T=T||\"__Card__\";var R={};function D(e){var t=R[e];if(void 0!==t)return t.exports;var n=R[e]={exports:{}};return __webpack_modules__[e](n,n.exports,D),n.exports}D.p=\"/\";var L=\"http://www.w3.org/2000/svg\";var O=\"http://www.w3.org/1999/xhtml\";var W=void 0;var F={};var U=[];var M=/acit|ex(?:s|g|n|p|$)|rph|grid|ows|mnc|ntw|ine[ch]|zoo|^ord|itera/i;var B=Array.isArray;function H(e,t){for(var n in t)e[n]=t[n];return e}function j(e){e&&e.parentNode&&e.parentNode.removeChild(e)}var $=U.slice;var V={__e:function(e,t,n,_){var l,r,i;for(;t=t.__;)if((l=t.__c)&&!l.__)try{if((r=l.constructor)&&null!=r.getDerivedStateFromError&&(l.setState(r.getDerivedStateFromError(e)),i=l.__d),null!=l.componentDidCatch&&(l.componentDidCatch(e,_||{}),i=l.__d),i)return l.__E=l}catch(t){e=t}throw e}};var G=0;function q(e,t,n){var _,l,r,i={};for(r in t)\"key\"==r?_=t[r]:\"ref\"==r?l=t[r]:i[r]=t[r];if(arguments.length>2&&(i.children=arguments.length>3?$.call(arguments,2):n),\"function\"==typeof e&&null!=e.defaultProps)for(r in e.defaultProps)i[r]===W&&(i[r]=e.defaultProps[r]);return J(e,i,_,l,null)}function J(e,t,n,_,l){var r={type:e,props:t,key:n,ref:_,__k:null,__:null,__b:0,__e:null,__c:null,constructor:W,__v:null==l?++G:l,__i:-1,__u:0};return null==l&&null!=V.vnode&&V.vnode(r),r}function z(e){return e.children}function Y(e,t){this.props=e,this.context=t}function X(e,t){var n;if(null==t)return e.__?X(e.__,e.__i+1):null;for(;t<e.__k.length;t++)if(null!=(n=e.__k[t])&&null!=n.__e)return n.__e;return\"function\"==typeof e.type?X(e):null}Y.prototype.setState=function(e,t){var n;n=null!=this.__s&&this.__s!=this.state?this.__s:this.__s=H({},this.state),\"function\"==typeof e&&(e=e(H({},n),this.props)),e&&H(n,e),null!=e&&this.__v&&(t&&this._sb.push(t),Q(this))},Y.prototype.forceUpdate=function(e){this.__v&&(this.__e=!0,e&&this.__h.push(e),Q(this))},Y.prototype.render=z;var K=[];var Z=\"function\"==typeof Promise?Promise.prototype.then.bind(Promise.resolve()):setTimeout;function Q(e){(!e.__d&&(e.__d=!0)&&K.push(e)&&!et.__r++||y!=V.debounceRendering)&&((y=V.debounceRendering)||Z)(et)}var ee=function(e,t){return e.__v.__b-t.__v.__b};function et(){try{var e,t=1;for(;K.length;)K.length>t&&K.sort(ee),e=K.shift(),t=K.length,function(e){if(e.__P&&e.__d){var t=e.__v,n=t.__e,_=[],l=[],r=H({},t);r.__v=t.__v+1,V.vnode&&V.vnode(r),V.renderComponent&&V.renderComponent(r,e),ea(e.__P,r,t,e.__n,e.__P.namespaceURI,32&t.__u?[n]:null,_,null==n?X(t):n,!!(32&t.__u),l),r.__v=t.__v,r.__.__k[r.__i]=r,function(e,t,n){for(var _=0;_<n.length;_++)ec(n[_],n[++_],n[++_]);V.__c&&V.__c(t,e),e.some(function(t){try{e=t.__h,t.__h=[],e.some(function(e){e.call(t)})}catch(e){V.__e(e,t.__v)}})}(_,r,l),t.__e=t.__=null,r.__e!=n&&function e(t){if(null!=(t=t.__)&&null!=t.__c)return t.__e=t.__c.base=null,t.__k.some(function(e){if(null!=e&&null!=e.__e)return t.__e=t.__c.base=e.__e}),e(t)}(r)}}(e)}finally{K.length=et.__r=0}}function en(e,t,n,_,l,r,i,o,s,u,a){var f,c,p,d,h;var m=_&&_.__k||U;var v=t.length;for(f=0,s=function(e,t,n,_,l){var r,i,o,s=n.length,u=s;var a=0;for(r=0,e.__k=Array(l);r<l;r++){if(null==(i=t[r])||\"boolean\"==typeof i||\"function\"==typeof i){e.__k[r]=null;continue}\"string\"==typeof i||\"number\"==typeof i||\"bigint\"==typeof i||i.constructor==String?i=e.__k[r]=J(null,i,null,null,null):B(i)?i=e.__k[r]=J(z,{children:i},null,null,null):i.constructor===W&&i.__b>0?i=e.__k[r]=J(i.type,i.props,i.key,i.ref?i.ref:null,i.__v):e.__k[r]=i;var f=r+a;i.__=e,i.__b=e.__b+1;var c=i.__i=function(e,t,n,_){var l=e.key;var r=e.type;var i=t[n];var o=null!=i&&(2&i.__u)==0;if(null===i&&null==l||o&&l==i.key&&r==i.type)return n;if(_>+!!o){var s=n-1;var u=n+1;for(;s>=0||u<t.length;){var a=s>=0?s--:u++;if(null!=(i=t[a])&&(2&i.__u)==0&&l==i.key&&r==i.type)return a}}return -1}(i,n,f,u);o=null,-1!=c&&(o=n[c],u--,o&&(o.__u|=2)),null==o||null==o.__v?(-1==c&&(l>s?a--:l<s&&a++),\"function\"!=typeof i.type&&(i.__u|=4)):c!=f&&(c==f-1?a--:c==f+1?a++:(c>f?a--:a++,i.__u|=4))}if(u)for(r=0;r<s;r++)null!=(o=n[r])&&(2&o.__u)==0&&(o.__e==_&&(_=X(o)),function e(t,n,_){var l;if(V.unmount&&V.unmount(t),(l=t.ref)&&(!l.current||l.current==t.__e)&&ec(l,null,n),null!=(l=t.__c)){if(l.componentWillUnmount)try{l.componentWillUnmount()}catch(e){V.__e(e,n)}l.base=l.__P=null}if(l=t.__k)for(var r=0;r<l.length;r++)l[r]&&e(l[r],n,_||\"function\"!=typeof t.type);_||j(t.__e),t.__c=t.__=t.__e=W}(o,o));return _}(n,t,m,s,v);f<v;f++)if(null!=(p=n.__k[f])){c=-1!=p.__i&&m[p.__i]||F,p.__i=f;var y=ea(e,p,c,l,r,i,o,s,u,a);d=p.__e,p.ref&&c.ref!=p.ref&&(c.ref&&ec(c.ref,null,p),a.push(p.ref,p.__c||d,p)),null==h&&null!=d&&(h=d);var g=!!(4&p.__u);g||c.__k===p.__k?s=function e(t,n,_,l){if(\"function\"==typeof t.type){var r=t.__k;for(var i=0;r&&i<r.length;i++)r[i]&&(r[i].__=t,n=e(r[i],n,_,l));return n}t.__e!=n&&(l&&(n&&t.type&&!n.parentNode&&(n=X(t)),_.insertBefore(t.__e,n||null)),n=t.__e);do n=n&&n.nextSibling;while(null!=n&&8==n.nodeType);return n}(p,s,e,g):\"function\"==typeof p.type&&y!==W?s=y:d&&(s=d.nextSibling),p.__u&=-7}return n.__e=h,s}function e_(e,t,n){\"-\"==t[0]?e.setProperty(t,null==n?\"\":n):null==n?e[t]=\"\":\"number\"!=typeof n||M.test(t)?e[t]=n:e[t]=n+\"px\"}et.__r=0;var el=/(PointerCapture)$|Capture$/i;var er=0;function ei(e,t,n,_,l){var r;e:if(\"style\"==t)if(\"string\"==typeof n)e.style.cssText=n;else{if(\"string\"==typeof _&&(e.style.cssText=_=\"\"),_)for(t in _)n&&t in n||e_(e.style,t,\"\");if(n)for(t in n)_&&n[t]==_[t]||e_(e.style,t,n[t])}else if(\"o\"==t[0]&&\"n\"==t[1]){r=t!=(t=t.replace(el,\"$1\"));var i=t.toLowerCase();t=i in e||\"onFocusOut\"==t||\"onFocusIn\"==t?i.slice(2):t.slice(2),e.l||(e.l={}),e.l[t+r]=n,n?_?n._attached=_._attached:(n._attached=er,e.addEventListener(t,r?eu:es,r)):e.removeEventListener(t,r?eu:es,r)}else{if(l==L)t=t.replace(/xlink(H|:h)/,\"h\").replace(/sName$/,\"s\");else if(\"width\"!=t&&\"height\"!=t&&\"href\"!=t&&\"list\"!=t&&\"form\"!=t&&\"tabIndex\"!=t&&\"download\"!=t&&\"rowSpan\"!=t&&\"colSpan\"!=t&&\"role\"!=t&&\"popover\"!=t&&t in e)try{e[t]=null==n?\"\":n;break e}catch(e){}\"function\"==typeof n||(null!=n&&(!1!==n||\"-\"==t[4])?e.setAttribute(t,\"popover\"==t&&!0==n?\"\":n):e.removeAttribute(t))}}function eo(e){return function(t){if(this.l){var n=this.l[t.type+e];if(null==t._dispatched)t._dispatched=er++;else if(t._dispatched<n._attached)return;return n(V.event?V.event(t):t)}}}var es=eo(!1);var eu=eo(!0);function ea(e,t,n,_,l,r,i,o,s,u){var a,f,c,p,d,h,m,v=t.type;if(t.constructor!==W)return null;128&n.__u&&(s=!!(32&n.__u),r=[o=t.__e=n.__e]),(m=V.__b)&&m(t),(m=V._diff2)&&m(t,n);t:if(\"function\"==typeof v)try{var y=t.props;var g=v.prototype&&v.prototype.render;var b=(m=v.contextType)&&_[m.__c];var S=m?b?b.props.value:m.__:_;if(n.__c?h=(a=t.__c=n.__c).__=a.__E:(g?t.__c=a=new v(y,S):(t.__c=a=new Y(y,S),a.constructor=v,a.render=ep),b&&b.sub(a),a.state||(a.state={}),a.__n=_,f=a.__d=!0,a.__h=[],a._sb=[]),g&&null==a.__s&&(a.__s=a.state),g&&null!=v.getDerivedStateFromProps&&(a.__s==a.state&&(a.__s=H({},a.__s)),H(a.__s,v.getDerivedStateFromProps(y,a.__s))),c=a.props,p=a.state,a.__v=t,f)g&&null==v.getDerivedStateFromProps&&null!=a.componentWillMount&&a.componentWillMount(),g&&null!=a.componentDidMount&&a.__h.push(a.componentDidMount);else{if(g&&null==v.getDerivedStateFromProps&&y!==c&&null!=a.componentWillReceiveProps&&a.componentWillReceiveProps(y,S),t.__v==n.__v||!a.__e&&null!=a.shouldComponentUpdate&&!1===a.shouldComponentUpdate(y,a.__s,S)){t.__v!=n.__v&&(a.props=y,a.state=a.__s,a.__d=!1),t.__e=n.__e,t.__k=n.__k,t.__k.some(function(e){e&&(e.__=t)}),U.push.apply(a.__h,a._sb),a._sb=[],a.__h.length&&i.push(a);break t}null!=a.componentWillUpdate&&a.componentWillUpdate(y,a.__s,S),g&&null!=a.componentDidUpdate&&a.__h.push(function(){a.componentDidUpdate(c,p,d)})}a.context=S,a.props=y,a.__P=e,a.__e=!1;var x=V.__r,k=0;if(g)a.state=a.__s,a.__d=!1,x&&x(t),m=a.render(a.props,a.state,a.context),U.push.apply(a.__h,a._sb),a._sb=[];else do a.__d=!1,x&&x(t),m=a.render(a.props,a.state,a.context),a.state=a.__s;while(a.__d&&++k<25);a.state=a.__s,null!=a.getChildContext&&(_=H(H({},_),a.getChildContext())),g&&!f&&null!=a.getSnapshotBeforeUpdate&&(d=a.getSnapshotBeforeUpdate(c,p));var E=null!=m&&m.type===z&&null==m.key?function e(t){return\"object\"!=typeof t||null==t||t.__b>0?t:B(t)?t.map(e):H({},t)}(m.props.children):m;o=en(e,B(E)?E:[E],t,n,_,l,r,i,o,s,u),a.base=t.__e,t.__u&=-161,a.__h.length&&i.push(a),h&&(a.__E=a.__=null)}catch(e){if(t.__v=null,s||null!=r)if(e.then){for(t.__u|=s?160:128;o&&8==o.nodeType&&o.nextSibling;)o=o.nextSibling;r[r.indexOf(o)]=null,t.__e=o}else{for(var w=r.length;w--;)j(r[w]);ef(t)}else t.__e=n.__e,t.__k=n.__k,e.then||ef(t);V.__e(e,t,n)}else null==r&&t.__v==n.__v?(t.__k=n.__k,t.__e=n.__e):o=t.__e=function(e,t,n,_,l,r,i,o,s){var u,a,f,c,p,d,h,m=n.props||F;var v=t.props;var y=t.type;if(\"svg\"==y?l=L:\"math\"==y?l=\"http://www.w3.org/1998/Math/MathML\":l||(l=O),null!=r){for(u=0;u<r.length;u++)if((p=r[u])&&\"setAttribute\"in p==!!y&&(y?p.localName==y:3==p.nodeType)){e=p,r[u]=null;break}}if(null==e){if(null===y)return V.document.createTextNode(v);e=V.document.createElementNS(l,y,v.is&&v),o&&(V.__m&&V.__m(t,r),o=!1),r=null}if(null==y)m===v||o&&e.data==v||(e.data=v);else{if(r=r&&$.call(e.childNodes),!o&&null!=r)for(u=0,m={};u<e.attributes.length;u++)m[(p=e.attributes[u]).name]=p.value;for(u in m)p=m[u],\"dangerouslySetInnerHTML\"==u?f=p:\"children\"==u||u in v||\"value\"==u&&\"defaultValue\"in v||\"checked\"==u&&\"defaultChecked\"in v||ei(e,u,null,p,l);for(u in v)p=v[u],\"children\"==u?c=p:\"dangerouslySetInnerHTML\"==u?a=p:\"value\"==u?d=p:\"checked\"==u?h=p:o&&\"function\"!=typeof p||m[u]===p||ei(e,u,p,m[u],l);if(a)o||f&&(a.__html==f.__html||a.__html==e.innerHTML)||(e.innerHTML=a.__html),t.__k=[];else if(f&&(e.innerHTML=\"\"),en(\"template\"==t.type?e.content:e,B(c)?c:[c],t,n,_,\"foreignObject\"==y?O:l,r,i,r?r[0]:n.__k&&X(n,0),o,s),null!=r)for(u=r.length;u--;)j(r[u]);o||(u=\"value\",\"progress\"==y&&null==d?e.removeAttribute(\"value\"):d==W||d===e[u]&&(\"progress\"!=y||d)&&(\"option\"!=y||d==m[u])||ei(e,u,d,m[u],l),u=\"checked\",h!=W&&h!=e[u]&&ei(e,u,h,m[u],l))}return e}(n.__e,t,n,_,l,r,i,s,u);return(m=V.diffed)&&m(t),128&t.__u?void 0:o}function ef(e){e&&(e.__c&&(e.__c.__e=!0),e.__k&&e.__k.some(ef))}function ec(e,t,n){try{if(\"function\"==typeof e){var _=\"function\"==typeof e.__u;_&&e.__u(),_&&null==t||(e.__u=e(t))}else e.current=t}catch(e){V.__e(e,n)}}function ep(e,t,n){return this.constructor(e,n)}var ed=0;var eh=[];var em=V.__b;var ev=V.__r;var ey=V.diffed;var eg=V.__c;var eb=V.unmount;var eS=V.__;function ex(e,t){V.__h&&V.__h(b,e,ed||t),ed=0;var n=b.__H||(b.__H={__:[],__h:[]});return e>=n.__.length&&n.__.push({}),n.__[e]}function ek(e){return ed=1,function(e,t){var n=ex(g++,2);if(n._reducer=e,!n.__c&&(n.__=[eT(void 0,t),function(e){var t=n.__N?n.__N[0]:n.__[0];var _=n._reducer(t,e);t!==_&&(n.__N=[_,n.__[1]],n.__c.setState({}))}],n.__c=b,!b.__f)){var _=function(e,t,_){if(!n.__c.__H)return!0;var r=n.__c.__H.__.filter(function(e){return e.__c});if(r.every(function(e){return!e.__N}))return!l||l.call(this,e,t,_);var i=n.__c.props!==e;return r.some(function(e){if(e.__N){var t=e.__[0];e.__=e.__N,e.__N=void 0,t!==e.__[0]&&(i=!0)}}),l&&l.call(this,e,t,_)||i};b.__f=!0;var l=b.shouldComponentUpdate;var r=b.componentWillUpdate;b.componentWillUpdate=function(e,t,n){if(this.__e){var i=l;l=void 0,_(e,t,n),l=i}r&&r.call(this,e,t,n)},b.shouldComponentUpdate=_}return n.__N||n.__}(eT,e)}function eE(e,t){var n=ex(g++,3);!V.__s&&eN(n.__H,t)&&(n.__=e,n._pendingArgs=t,b.__H.__h.push(n))}function ew(e){var t,n,_;return ed=5,t=function(){return{current:e}},n=[],eN((_=ex(g++,7)).__H,n)&&(_.__=t(),_.__H=n,_.__h=t),_.__}function eC(){var e;for(;e=eh.shift();){var t=e.__H;if(e.__P&&t)try{t.__h.some(eA),t.__h.some(eP),t.__h=[]}catch(n){t.__h=[],V.__e(n,e.__v)}}}V.__b=function(e){b=null,em&&em(e)},V.__=function(e,t){e&&t.__k&&t.__k.__m&&(e.__m=t.__k.__m),eS&&eS(e,t)},V.__r=function(e){ev&&ev(e),b=e.__c,g=0;var t=b.__H;t&&(S===b?(t.__h=[],b.__h=[],t.__.some(function(e){e.__N&&(e.__=e.__N),e._pendingArgs=e.__N=void 0})):(t.__h.some(eA),t.__h.some(eP),t.__h=[],g=0)),S=b},V.diffed=function(e){ey&&ey(e);var t=e.__c;t&&t.__H&&(t.__H.__h.length&&(1===eh.push(t)||x!==V.requestAnimationFrame)&&((x=V.requestAnimationFrame)||function(e){var t,n=function(){clearTimeout(_),eI&&cancelAnimationFrame(t),setTimeout(e)};var _=setTimeout(n,35);eI&&(t=requestAnimationFrame(n))})(eC),t.__H.__.some(function(e){e._pendingArgs&&(e.__H=e._pendingArgs),e._pendingArgs=void 0})),S=b=null},V.__c=function(e,t){t.some(function(e){try{e.__h.some(eA),e.__h=e.__h.filter(function(e){return!e.__||eP(e)})}catch(n){t.some(function(e){e.__h&&(e.__h=[])}),t=[],V.__e(n,e.__v)}}),eg&&eg(e,t)},V.unmount=function(e){eb&&eb(e);var t,n=e.__c;n&&n.__H&&(n.__H.__.some(function(e){try{eA(e)}catch(e){t=e}}),n.__H=void 0,t&&V.__e(t,n.__v))};var eI=\"function\"==typeof requestAnimationFrame;function eA(e){var t=b;var n=e.__c;\"function\"==typeof n&&(e.__c=void 0,n()),b=t}function eP(e){var t=b;e.__c=e.__(),b=t}function eN(e,t){return!e||e.length!==t.length||t.some(function(t,n){return t!==e[n]})}function eT(e,t){return\"function\"==typeof t?t(e):t}function eR(e,t){for(var n in t)e[n]=t[n];return e}function eD(e,t){for(var n in e)if(\"__source\"!==n&&!(n in t))return!0;for(var _ in t)if(\"__source\"!==_&&e[_]!==t[_])return!0;return!1}function eL(e,t){this.props=e,this.context=t}eL.prototype=new Y,eL.prototype.isPureReactComponent=!0,eL.prototype.shouldComponentUpdate=function(e,t){return eD(this.props,e)||eD(this.state,t)};var eO=V.__b;V.__b=function(e){e.type&&e.type.__f&&e.ref&&(e.props.ref=e.ref,e.ref=null),eO&&eO(e)};var eW=\"u\">typeof Symbol&&Symbol.for&&Symbol.for(\"react.forward_ref\")||3911;var eF=V.__e;V.__e=function(e,t,n,_){if(e.then){var l;var r=t;for(;r=r.__;)if((l=r.__c)&&l.__c)return null==t.__e&&(t.__e=n.__e,t.__k=n.__k),l.__c(e,t)}eF(e,t,n,_)};var eU=V.unmount;function eM(){this.__u=0,this._suspenders=null,this.__b=null}function eB(e){var t=e.__&&e.__.__c;return t&&t.__a&&t.__a(e)}function eH(){this._next=null,this._map=null}V.unmount=function(e){var t=e.__c;t&&(t.__z=!0),t&&t.__R&&t.__R(),t&&32&e.__u&&(e.type=null),eU&&eU(e)},eM.prototype=new Y,eM.prototype.__c=function(e,t){var n=t.__c;var _=this;null==_._suspenders&&(_._suspenders=[]),_._suspenders.push(n);var l=eB(_.__v);var r=!1;var i=function(){r||_.__z||(r=!0,n.__R=null,l?l(s):s())};n.__R=i;var o=n.__P;n.__P=null;var s=function(){if(!--_.__u){if(_.state.__a){var e,t=_.state.__a;_.__v.__k[0]=function e(t,n,_){return t&&_&&(t.__v=null,t.__k=t.__k&&t.__k.map(function(t){return e(t,n,_)}),t.__c&&t.__c.__P===n&&(t.__e&&_.appendChild(t.__e),t.__c.__e=!0,t.__c.__P=_)),t}(t,t.__c.__P,t.__c.__O)}for(_.setState({__a:_.__b=null});e=_._suspenders.pop();)e.__P=o,e.forceUpdate()}};_.__u++||32&t.__u||_.setState({__a:_.__b=_.__v.__k[0]}),e.then(i,i)},eM.prototype.componentWillUnmount=function(){this._suspenders=[]},eM.prototype.render=function(e,t){if(this.__b){if(this.__v.__k){var n=V.document.createElement(\"div\");var _=this.__v.__k[0].__c;this.__v.__k[0]=function e(t,n,_){return t&&(t.__c&&t.__c.__H&&(t.__c.__H.__.forEach(function(e){\"function\"==typeof e.__c&&e.__c()}),t.__c.__H=null),null!=(t=eR({},t)).__c&&(t.__c.__P===_&&(t.__c.__P=n),t.__c.__e=!0,t.__c=null),t.__k=t.__k&&t.__k.map(function(t){return e(t,n,_)})),t}(this.__b,n,_.__O=_.__P)}this.__b=null}var l=t.__a&&q(z,null,e.fallback);return l&&(l.__u&=-33),[q(z,null,t.__a?null:e.children),l]};var ej=function(e,t,n){if(++n[1]===n[0]&&e._map.delete(t),e.props.revealOrder&&(\"t\"!==e.props.revealOrder[0]||!e._map.size))for(n=e._next;n;){for(;n.length>3;)n.pop()();if(n[1]<n[0])break;e._next=n=n[2]}};eH.prototype=new Y,eH.prototype.__a=function(e){var t=this;var n=eB(t.__v);var _=t._map.get(e);return _[0]++,function(l){var r=function(){t.props.revealOrder?(_.push(l),ej(t,e,_)):l()};n?n(r):r()}},eH.prototype.render=function(e){this._next=null,this._map=new Map;var t=function e(t,n){return n=n||[],null==t||\"boolean\"==typeof t||(B(t)?t.some(function(t){e(t,n)}):n.push(t)),n}(e.children);e.revealOrder&&\"b\"===e.revealOrder[0]&&t.reverse();for(var n=t.length;n--;)this._map.set(t[n],this._next=[1,0,this._next]);return e.children},eH.prototype.componentDidUpdate=eH.prototype.componentDidMount=function(){var e=this;this._map.forEach(function(t,n){ej(e,n,t)})};var e$=\"u\">typeof Symbol&&Symbol.for&&Symbol.for(\"react.element\")||60103;Y.prototype.isReactComponent=!0,[\"componentWillMount\",\"componentWillReceiveProps\",\"componentWillUpdate\"].forEach(function(e){Object.defineProperty(Y.prototype,e,{configurable:!0,get:function(){return this[\"UNSAFE_\"+e]},set:function(t){Object.defineProperty(this,e,{configurable:!0,writable:!0,value:t})}})});var eV=V.event;V.event=function(e){return eV&&(e=eV(e)),e.persist=function(){},e.isPropagationStopped=function(){return this.cancelBubble},e.isDefaultPrevented=function(){return this.defaultPrevented},e.nativeEvent=e};var eG=V.vnode;V.vnode=function(e){e.$$typeof=e$,eG&&eG(e)};const eq=!!(null==(E=lynx.performance)||null==(k=E.isProfileRecording)?void 0:k.call(E));const eJ=()=>{};let ez;const eY=(ez=lynx.performance)&&\"function\"==typeof ez.profileStart?ez.profileStart.bind(ez):eJ;let eX;const eK=(eX=lynx.performance)&&\"function\"==typeof eX.profileEnd?eX.profileEnd.bind(eX):eJ;let eZ;const eQ=(eZ=lynx.performance)&&\"function\"==typeof eZ.profileFlowId?eZ.profileFlowId.bind(eZ):()=>0;const e0=eq?new WeakMap:void 0;function e1(e,t){return t?{flowId:e,args:{stack:t}}:{flowId:e}}const e2=eq?function(e){let[t,n]=0===arguments.length?ek():ek(e);let _=null==e0?void 0:e0.get(n);if(_)return[t,_];let l=e=>{let t=Error().stack;eY(\"ReactLynx::hooks::useState::setter\",t?{args:{stack:t}}:void 0);try{return n(e)}finally{eK()}};return null==e0||e0.set(n,l),[t,l]}:ek;const e3=eq?function(e,t){return function(e,t,n){let _=eQ();let l=Error().stack;eY(n,e1(_,l));try{var r;let i;return eE((r=`${n}::callback`,i=e1(_,l),()=>{eY(r,i);try{let t=e();if(\"function\"!=typeof t)return t;return()=>{eY(`${r}::cleanup`,i);try{t()}finally{eK()}}}finally{eK()}}),t)}finally{eK()}}(e,t,\"ReactLynx::hooks::useEffect\")}:eE;function e4(e,t){if(e===t)return!0;try{if(\"object\"==typeof e&&null!==e&&\"object\"==typeof t&&null!==t&&JSON.stringify(e)===JSON.stringify(t))return!0}catch(e){throw e}return!1}function e8(e){for(let t in e)return!1;return!0}function e5(e,t){let n={};for(let _ of t)_ in e&&(n[_]=e[_]);return n}function e6(e,t){var n,_;return null==(n=(_=globalThis).runWorklet)?void 0:n.call(_,e,t)}function e9(e,t){var n;null==(n=globalThis.lynxWorkletImpl)||n._refImpl.updateWorkletRef(e,t)}function e7(e){var t;null==(t=globalThis.lynxWorkletImpl)||t._eomImpl.setShouldFlush(e)}function te(e,t,n,_){var l,r,i,o;void 0!==e._execId&&(null==(r=globalThis.lynxWorkletImpl)||null==(l=r._jsFunctionLifecycleManager)||l.addRef(e._execId,e)),n&&t&&(null==(i=globalThis.lynxWorkletImpl)||i._hydrateCtx(e,t)),n&&(null==(o=globalThis.lynxWorkletImpl)||o._eventDelayImpl.runDelayedWorklet(e,_))}(f=w||(w={})).runWorkletCtx=\"Lynx.Worklet.runWorkletCtx\",f.runOnBackground=\"Lynx.Worklet.runOnBackground\",f.FunctionCallRet=\"Lynx.Worklet.FunctionCallRet\",f.releaseBackgroundWorkletCtx=\"Lynx.Worklet.releaseBackgroundWorkletCtx\",f.releaseWorkletRef=\"Lynx.Worklet.releaseWorkletRef\";let tt=!1;function tn(e){var t,n,_;!e&&tt&&(null==(t=globalThis.lynxWorkletImpl)||t._runOnBackgroundDelayImpl.runDelayedBackgroundFunctions(),null==(n=globalThis.lynxWorkletImpl)||n._refImpl.clearFirstScreenWorkletRefMap(),null==(_=globalThis.lynxWorkletImpl)||_._eventDelayImpl.clearDelayedWorklets()),tt=e}new Map,(c=C||(C={})).firstScreen=\"rLynxFirstScreen\",c.updateFromRoot=\"updateFromRoot\",c.globalEventFromLepus=\"globalEventFromLepus\",c.jsReady=\"rLynxJSReady\",c.patchUpdate=\"rLynxChange\",c.publishEvent=\"rLynxPublishEvent\",c.updateMTRefInitValue=\"rLynxChangeRefInitValue\",(p=I||(I={}))[p.UPDATE=0]=\"UPDATE\",p[p.RESET=1]=\"RESET\";let t_=[];function tl(){let e=t_;t_=[];for(let t=0;t<e.length;t+=2){let n=e[t];let _=e[t+1];\"_wvid\"in n?e9(n,_):\"_wkltId\"in n&&(n._unmount=e6(n,[{elementRefptr:_}]))}}function tr(e){\"_wvid\"in e?e9(e,null):\"_wkltId\"in e&&(\"function\"==typeof e._unmount?e._unmount():e6(e,[null]))}function ti(e,t,n,_,l){var r,i;if(!e.__elements)return;n&&(null==(r=e.__worklet_ref_set)?void 0:r.has(n))&&(tr(n),null==(i=e.__worklet_ref_set)||i.delete(n));let o=e.__values[t];if(null==o);else if(o._wvid){let t=e.__elements[_];t_.push(o,t)}else if(o._wkltId){let t=e.__elements[_];te(o,n,tt,t),t_.push(o,t)}else if(\"__LEPUS__\"===o._type||o._lepusWorkletHash);else throw Error(\"MainThreadRef: main-thread:ref must be of type MainThreadRef or main-thread function.\");o&&(null!=e.__worklet_ref_set||(e.__worklet_ref_set=new Set),e.__worklet_ref_set.add(o)),__SetAttribute(e.__elements[_],\"has-react-ref\",!0)}const to={};const ts={};const tu=new WeakMap;const ta=Promise.resolve();function tf(e,t){e.forEach(e=>{tu.has(e)||(tu.set(e,e.parentNode),Object.defineProperty(e,\"__parent\",{get:()=>tu.get(e),set:t=>{tu.set(e,t)}}))});let n=(e,_,l,r,i,o=!1,s=!1)=>{var u,a,f,c,p,d;let h=to[_];let m=ts[_];if(!h||!m)throw Error(\"componentAtIndex called on removed list\");let v=null!=(u=l.__listItemPlatformInfo)?u:{};if((null==(f=l.__extraProps)?void 0:f.isReady)===0){let t;if(\"function\"==typeof __GetAttributeByName&&\"list-container\"===__GetAttributeByName(e,\"custom-list-name\"));else throw Error('Unsupported: `<list-item/>` with `defer={true}` must be used with `<list custom-list-name=\"list-container\"/>`');return __OnLifecycleEvent([C.publishEvent,{handlerName:`${l.__id}:__extraProps:onComponentAtIndex`,data:{}}]),t=new Promise(o=>{Object.defineProperty(l.__extraProps,\"isReady\",{set(t){1===t&&(delete l.__extraProps.isReady,l.__extraProps.isReady=1,ta.then(()=>{o(n(e,_,l,r,i))}))},get:()=>t})})}if(\"object\"==typeof(d=null==(c=l.__extraProps)?void 0:c.isReady)&&null!==d&&\"function\"==typeof d.then)throw Error(\"componentAtIndex was called on a pending deferred list item\");let y=l.type+(null!=(a=v[\"reuse-identifier\"])?a:\"\");let g=m.get(y);if(l.__elements){let e=l.__elements[0];let t=__GetElementUniqueID(e);if(null==g?void 0:g.has(t))return h.set(t,l),g.delete(t),o?o&&s&&__FlushElementTree(e,{asyncFlush:!0}):__FlushElementTree(e,{triggerLayout:!0,operationID:r,elementID:t,listID:_}),t;{let e=l.takeElements();h.set(t,e)}}if(g&&g.size>0){let[n]=g;let[u,a]=n;g.delete(u),t(a,l),a.unRenderElements(),a.__id?(null==(p=a.__extraProps)?void 0:p.isReady)===1&&__OnLifecycleEvent([C.publishEvent,{handlerName:`${a.__id}:__extraProps:onRecycleComponent`,data:{}}]):a.tearDown();let f=l.__element_root;if(tl(),h.set(u,l),o){if(o&&s){let t={asyncFlush:!0};i&&(t.listReuseNotification={listElement:e,itemKey:v[\"item-key\"]}),__FlushElementTree(f,t)}}else{let t={triggerLayout:!0,operationID:r,elementID:u,listID:_};i&&(t.listReuseNotification={listElement:e,itemKey:v[\"item-key\"]}),__FlushElementTree(f,t)}return u}l.ensureElements();let b=l.__element_root;__AppendElement(e,b);let S=__GetElementUniqueID(b);return tl(),h.set(S,l),o?o&&s&&__FlushElementTree(b,{asyncFlush:!0}):__FlushElementTree(b,{triggerLayout:!0,operationID:r,elementID:S,listID:_}),S};return[function(t,_,l,r,i){let o=e[l];if(!o)throw Error(\"childCtx not found\");let s=n(t,_,o,r,i);return\"number\"==typeof s?s:void 0},function(t,_,l,r,i,o){let s=!1;let u=[];l.forEach((l,a)=>{let f=r[a];let c=e[l];if(!c)throw Error(\"childCtx not found\");let p=n(t,_,c,f,i,!0,o);\"number\"==typeof p||(s=!0),u.push(p)}),s&&Promise.all(u).then(e=>{__FlushElementTree(t,{triggerLayout:!0,operationIDs:r,elementIDs:e,listID:_})}),__FlushElementTree(t,{triggerLayout:!0,operationIDs:r,elementIDs:l.map((e,t)=>\"number\"==typeof u[t]?u[t]:-1),listID:_})}]}function tc(){return(e,t,n)=>{var _,l;let r=to[t];let i=ts[t];if(!r||!i)throw Error(\"enqueueComponent called on removed list\");let o=r.get(n);if(!o)return;let s=null!=(_=o.__listItemPlatformInfo)?_:{};let u=o.type+(null!=(l=s[\"reuse-identifier\"])?l:\"\");i.has(u)||i.set(u,new Map),i.get(u).set(n,o)}}const tp={values:{},clear(e){this.values&&delete this.values[e]},clearAttachedLists(){this.values&&Object.values(this.values).map(e=>e.getAttachedListId()).filter(e=>void 0!==e).forEach(e=>this.clear(e))},flush(){this.values&&Object.values(this.values).map(e=>e.flush()).filter(e=>void 0!==e).forEach(e=>this.clear(e))},flushWithId(e){var t;this.values&&(null==(t=this.values[e])?void 0:t.flush())!==void 0&&this.clear(e)},runWithoutUpdates(e){let t=this.values;this.values=null;try{e()}finally{this.values=t}}};function td(e,t){var n,_;null==(n=e.__worklet_ref_set)||n.forEach(e=>{e&&tr(e)}),null==(_=e.__worklet_ref_set)||_.clear(),t&&e.childNodes.forEach(e=>{td(e,t)})}function th(e,t,n,_){let l;let r=e.__values[t];l=\"string\"==typeof r?r:`react-ref-${e.__id}-${t}`,e.__values[t]=l,e.__elements&&n!==l&&(n&&__SetAttribute(e.__elements[_],n,void 0),l&&__SetAttribute(e.__elements[_],l,1))}(d=A||(A={}))[d.Attr=0]=\"Attr\",d[d.Spread=1]=\"Spread\",d[d.Slot=2]=\"Slot\",d[d.Children=3]=\"Children\",d[d.ListChildren=4]=\"ListChildren\",d[d.MultiChildren=5]=\"MultiChildren\",new Map;const tm=\"UNREACHABLE_ITEM_KEY_NOT_FOUND\";function tv(e,t,n,_,l){var r,i,o,s,u;let a=0;let f={$$diff:!0,i:{},r:[],m:{}};let c={};for(let t=0;t<e.length;t++){let n=e[t];let _=l?null!=(r=null==(o=n.__listItemPlatformInfo)?void 0:o[\"item-key\"])?r:tm:n.type;(null!=(i=c[_])?i:c[_]=new Set).add([n,t])}for(let e=0;e<t.length;e++){let r;let i=t[e];let o=c[l?null!=(s=null==(u=i.__listItemPlatformInfo)?void 0:u[\"item-key\"])?s:tm:i.type];if(o&&o.size>0&&([r]=o,r)&&n(r[0],i)){o.delete(r);let t=r[1];if(_(r[0],i,t,e),t<a){f.m[t]=e;continue}a=t}else f.i[e]=i}for(let e in c)for(let[,t]of c[e])f.r.push(t);return f}function ty(e,t,n){let _;t.__elements=e.__elements,t.__element_root=e.__element_root,(null==n?void 0:n.skipUnRef)||td(e,!1),(_=null==n?void 0:n.swap)&&(_[e.__id]=t.__id),tp.runWithoutUpdates(()=>{var n;null==(n=t.__values)||n.forEach((n,_)=>{let l=e.__values[_];n!==l&&(t.__values[_]=l,t.setAttribute(_,n))})});let{slot:l}=t.__snapshot_def;if(!l)return;let r=e.childNodes;let i=t.childNodes;l.forEach(([_,l],o)=>{switch(_){case A.Slot:case A.MultiChildren:ty(r[o],i[o],n);break;case A.Children:{let t=tv(r,i,(e,t)=>e.type===t.type,(e,t)=>{ty(e,t,n)},!1);(function(e,t,n,_,l){let r;if(!(!e8(t.i)||!e8(t.m)||t.r.length>0))return e;let i=new Set(t.r);let{i:o,m:s}=t;let u=new Map;let a=0;r=e[0];let f=[];let c=0;let p=0;let d=Object.keys(o).length;for(;r||d>0;){let t=!1;if(r&&i.has(p))_(r);else if(r&&void 0!==s[p])u.set(s[p],r),d++;else{let e=r;u.has(c)?(e=u.get(c),t=!0,l(e,r),d--):void 0!==o[c]&&(e=n(o[c],r),t=!0,d--),f.push(e),c++}r&&!t&&(r=e[++a],p++)}return f})(r,t,(t,n)=>(t.ensureElements(),__InsertElementBefore(e.__elements[l],t.__element_root,null==n?void 0:n.__element_root),t),t=>{__RemoveElement(e.__elements[l],t.__element_root)},(t,n)=>{__RemoveElement(e.__elements[l],t.__element_root),__InsertElementBefore(e.__elements[l],t.__element_root,null==n?void 0:n.__element_root)});break}case A.ListChildren:{let _=[];let o=[];let s=[];let u=__GetElementUniqueID(e.__elements[l]);let a=to[u];let f=ts[u];let c=tv(r,i,(e,t)=>e.type===t.type,(e,t,_,l)=>{if(JSON.stringify(e.__listItemPlatformInfo)!==JSON.stringify(t.__listItemPlatformInfo)&&s.push({...t.__listItemPlatformInfo,from:l,to:l,flush:!1,type:t.type}),e.__elements){ty(e,t,n);let _=__GetElementUniqueID(e.__element_root);if(a.has(_)&&a.set(_,t),f.has(e.type)){let n=f.get(e.type);n.has(_)&&n.set(_,t)}}},!0);for(let e of c.r)_.push(e);for(let e in c.i)o.push(Number(e));for(let e in c.m)_.push(Number(e)),o.push(c.m[e]);o.sort((e,t)=>e-t),_.sort((e,t)=>e-t);let p={insertAction:o.map(e=>({position:e,type:i[e].type,...i[e].__listItemPlatformInfo})),removeAction:_,updateAction:s};let d=e.__elements[l];__SetAttribute(d,\"update-list-info\",p);let[h,m]=tf(i,ty);__UpdateListCallbacks(d,h,tc(),m),tp.clear(t.__id)}}})}class tg{flush(){if(!this.list.__elements)return;let e=this.list.__snapshot_def.slot[0][1];let t=this.list.__elements[e];__SetAttribute(t,\"update-list-info\",this.__toAttribute());let[n,_]=tf(this.list.childNodes,ty);return __UpdateListCallbacks(t,n,tc(),_),this.list.__id}getAttachedListId(){if(this.list.__elements)return this.list.__id}onInsertBefore(e,t){if(e.parentNode&&this.removeChild.add(e),t){var n;let _=null!=(n=this.insertBefore.get(t))?n:[];_.push(e),this.insertBefore.set(t,_)}else this.appendChild.push(e)}onRemoveChild(e){this.removeChild.add(e)}onSetAttribute(e,t,n){this.platformInfoUpdate.set(e,t)}__toAttribute(){let{removeChild:e,insertBefore:t,appendChild:n,platformInfoUpdate:_}=this;let l=[];let r=[];let i=[];let o=0;for(let n=0;n<this.oldChildNodes.length;n++,o++){let s=this.oldChildNodes[n];_.has(s)&&i.push({..._.get(s),from:+o,to:+o,flush:!1,type:s.type}),t.has(s)&&t.get(s).forEach(e=>{r.push({position:o,type:e.type,...e.__listItemPlatformInfo}),o++}),e.has(s)&&(l.push(n),e.delete(s),o--)}for(let e=0;e<n.length;e++){let t=n[e];r.push({position:o+e,type:t.type,...t.__listItemPlatformInfo})}if(r.sort((e,t)=>e.position-t.position),l.sort((e,t)=>e-t),\"2.14\"===SystemInfo.lynxSdkVersion||\"2.15\"===SystemInfo.lynxSdkVersion||\"2.16\"===SystemInfo.lynxSdkVersion||\"2.17\"===SystemInfo.lynxSdkVersion||\"2.18\"===SystemInfo.lynxSdkVersion){let e=this.list.__snapshot_def.slot[0][1];\"list-container\"===__GetAttributeByName(this.list.__elements[e],\"custom-list-name\")&&(i.length=0,this.list.childNodes.forEach((e,t)=>{i.push({...e.__listItemPlatformInfo,from:t,to:t,flush:!1,type:e.type})}))}return{insertAction:r,removeAction:l,updateAction:i}}toJSON(){return[this.__toAttribute()]}constructor(e){this.removeChild=new Set,this.insertBefore=new Map,this.appendChild=[],this.platformInfoUpdate=new Map,this.list=e,this.oldChildNodes=e.childNodes}}const tb=new Map;let tS=0;const tx=[[A.Children,0]];const tk={values:new Map([[\"root\",{create:()=>[e],update:[],slot:tx,isListHolder:!1,cssId:0}],[\"wrapper\",{create:()=>[__CreateWrapperElement(tS)],update:[],slot:tx,isListHolder:!1}],[null,{create:()=>[__CreateRawText(\"\")],update:[e=>{e.__elements&&__SetAttribute(e.__elements[0],\"text\",e.__values[0])}],slot:[],isListHolder:!1}]])};const tE={nextId:0,values:new Map,clear(){this.values.clear()}};let tw={};function tC(e,t,n,_,l,r,i,o=!1){var s;o||(s=e,e=r?`${r}:${s}`:s);let u={create:t,update:n,slot:_,cssId:l,entryName:r,refAndSpreadIndexes:i};return tk.values.set(e,u),_&&_[0]&&_[0][0]===A.ListChildren&&(u.isListHolder=!0),e}function tI(e,t){let n=e.childNodes;for(let _ of(t(e),n))tI(_,t)}const tA=\"__Card__\";class tP{ensureElements(){let{create:e,slot:t,isListHolder:n,cssId:_,entryName:l}=this.__snapshot_def;let r=e(this);if(this.__elements=r,this.__element_root=r[0],void 0===_?l!==tA&&void 0!==l&&__SetCSSId(this.__elements,0,l):l!==tA&&void 0!==l?__SetCSSId(this.__elements,_,l):__SetCSSId(this.__elements,_),tp.runWithoutUpdates(()=>{let e=this.__values;e&&(this.__values=void 0,this.setAttribute(\"values\",e))}),n){if(tp.values&&!tp.values[this.__id]&&null!==this.__firstChild){let e=this.__firstChild;for(;e;){var i,o,s;(null!=(s=(i=tp.values)[o=this.__id])?s:i[o]=new tg(this)).onInsertBefore(e),e=e.__nextSibling}}tp.flushWithId(this.__id)}else{let e=0;let n=this.__firstChild;for(;n;){n.ensureElements();let[_,l]=t[e];switch(_){case A.Slot:__ReplaceElement(n.__element_root,r[l]),r[l]=n.__element_root,e++;break;case A.MultiChildren:\"wrapper\"===__GetTag(r[l])?__ReplaceElement(n.__element_root,r[l]):__AppendElement(r[l],n.__element_root),e++;break;case A.Children:case A.ListChildren:__AppendElement(r[l],n.__element_root)}n=n.__nextSibling}}}unRenderElements(){let{isListHolder:e}=this.__snapshot_def;if(this.__elements=void 0,this.__element_root=void 0,e);else{let e=this.__firstChild;for(;e;)e.unRenderElements(),e=e.__nextSibling}}takeElements(){let e=Object.create(tP.prototype);return e.__id=this.__id,e.__snapshot_def=this.__snapshot_def,e.__values=this.__values,e.__parent=null,e.__firstChild=null,e.__lastChild=null,e.__nextSibling=null,e.__previousSibling=null,this.childNodes.map(e=>e.takeElements()).forEach(t=>e.__insertBefore(t)),e.__elements=this.__elements,e.__element_root=this.__element_root,this.__elements=void 0,this.__element_root=void 0,e}tearDown(){tI(this,e=>{e.__parent=null,e.__previousSibling=null,e.__nextSibling=null})}get parentNode(){return this.__parent}get nextSibling(){return this.__nextSibling}contains(e){return e.parentNode===this}get childNodes(){let e=[];let t=this.__firstChild;for(;t;)e.push(t),t=t.__nextSibling;return e}__insertBefore(e,t){e.__parent&&e.__parent.__removeChild(e),t?(t.__previousSibling?(t.__previousSibling.__nextSibling=e,e.__previousSibling=t.__previousSibling):(this.__firstChild=e,e.__previousSibling=null),t.__previousSibling=e,e.__nextSibling=t,e.__parent=this):(this.__lastChild?(this.__lastChild.__nextSibling=e,e.__previousSibling=this.__lastChild):(this.__firstChild=e,e.__previousSibling=null),this.__lastChild=e,e.__parent=this,e.__nextSibling=null)}__removeChild(e){if(e.__parent!==this)throw Error(\"The node to be removed is not a child of this node.\");e.__previousSibling?e.__previousSibling.__nextSibling=e.__nextSibling:this.__firstChild=e.__nextSibling,e.__nextSibling?e.__nextSibling.__previousSibling=e.__previousSibling:this.__lastChild=e.__previousSibling,e.__parent=null,e.__previousSibling=null,e.__nextSibling=null}insertBefore(e,t){let n=this.__snapshot_def;if(n.isListHolder){var _,l,r;tp.values&&(null!=(r=(_=tp.values)[l=this.__id])?r:_[l]=new tg(this)).onInsertBefore(e,t),this.__insertBefore(e,t);return}let i=e.__parent===this;this.__insertBefore(e,t);let o=this.__elements;if(!o)return;e.__elements||e.ensureElements();let s=n.slot.length;if(1===s){let[,_]=n.slot[0];let l=o[_];i&&__RemoveElement(l,e.__element_root),t?__InsertElementBefore(l,e.__element_root,t.__element_root):__AppendElement(l,e.__element_root)}else if(s>1){let t=this.__current_slot_index++;let[_,l]=n.slot[t];_===A.Slot?(__ReplaceElement(e.__element_root,o[l]),o[l]=e.__element_root):_===A.MultiChildren&&(\"wrapper\"===__GetTag(o[l])?__ReplaceElement(e.__element_root,o[l]):__AppendElement(o[l],e.__element_root))}}removeChild(e){let t=this.__snapshot_def;if(t.isListHolder){var n,_,l;tp.values&&(null!=(l=(n=tp.values)[_=this.__id])?l:n[_]=new tg(this)).onRemoveChild(e),this.__removeChild(e),tI(e,e=>{tE.values.delete(e.__id)}),e.__id=0;return}if(td(e,!0),this.__elements){let[,n]=t.slot[0];__RemoveElement(this.__elements[n],e.__element_root)}this.__removeChild(e),tI(e,e=>{e.__snapshot_def.isListHolder&&function(e){let[,t]=e.__snapshot_def.slot[0];let n=e.__elements[t];let _=__GetElementUniqueID(n);if(__UpdateListCallbacks(n,()=>-1,()=>{},()=>{}),\"u\">typeof lynx&&\"function\"==typeof lynx.getNative){let e=tb.get(_);if(e){var l;null==(l=lynx.getNative())||l.removeEventListener(\"__DestroyLifetime\",e),tb.delete(_)}}delete to[_],delete ts[_]}(e),e.__parent=null,e.__previousSibling=null,e.__nextSibling=null,delete e.__elements,delete e.__element_root,tE.values.delete(e.__id)})}setAttribute(e,t){var n;if(\"values\"===e){let e=this.__values;if(this.__values=t,e)for(let n=0;n<t.length;n++)this.callUpdateIfNotDirectOrDeepEqual(n,e[n],t[n]);else for(let e=0;e<t.length;e++)this.callUpdateIfNotDirectOrDeepEqual(e,void 0,t[e]);return}if(\"string\"==typeof e){(null!=(n=this.__extraProps)?n:this.__extraProps={})[e]=t;return}null!=this.__values||(this.__values=[]),this.callUpdateIfNotDirectOrDeepEqual(e,this.__values[e],this.__values[e]=t)}toJSON(){return{id:this.__id,type:this.type,values:this.__values,extraProps:this.__extraProps,children:this.__firstChild?this.childNodes:void 0}}callUpdateIfNotDirectOrDeepEqual(e,t,n){e4(t,n)||this.__snapshot_def.update[e](this,e,t)}constructor(e,t){if(this.__current_slot_index=0,this.__parent=null,this.__firstChild=null,this.__lastChild=null,this.__previousSibling=null,this.__nextSibling=null,this.type=e,!tk.values.has(e)&&\"div\"!==e)if(tw[e])tw[e](e);else throw Error(\"Snapshot not found: \"+e);this.__snapshot_def=tk.values.get(e),null!=t||(t=tE.nextId-=1),this.__id=t,tE.values.set(t,this)}}function tN(e){if(!lynx.getJSContext)throw Error(\"snapshotPatchApply failed: ctx not found\");lynx.getJSContext().dispatchEvent({type:\"Lynx.Error.CtxNotFound\",data:{id:e}})}function tT(e,n){var _,l;t&&(n||t.needTimestamps)&&(null==(l=lynx.performance)||null==(_=l._markTiming)||_.call(l,t.pipelineID,e))}let tR=0;function tD(){l=!0;let e=JSON.stringify(_);__OnLifecycleEvent([C.firstScreen,{root:e,jsReadyEventIdSwap:r}]),r={}}_=new tP(\"root\"),(h=P||(P={}))[h.Begin=0]=\"Begin\",h[h.End=1]=\"End\",h[h.Attr=2]=\"Attr\",h[h.Text=3]=\"Text\";const tL=[];const tO=Array.isArray;const tW=Object.assign;function tF(){this.__d=!0}const tU={};function tM(e,t){let n;let _=e.type;return e.__c?(n=e.__c).state=n.__s:n=new _(e.props,t),e.__c=n,n.__v=e,n.props=e.props,n.context=t,n.__d=!0,null==n.state&&(n.state=tU),null==n.__s&&(n.__s=n.state),_.getDerivedStateFromProps&&(n.state=tW({},n.state,_.getDerivedStateFromProps(n.props,n.state))),u&&u(e),n.render(n.props,n.state,t)}function tB(e,t,n){return this.constructor(e,n)}const tH=function(e,t){let n=V.__s;V.__s=!0,i=V.__b,o=V._diff2,s=V.diffed,u=V.__r,a=V.unmount;let _=q(z,null);_.__k=[e];let l=[];try{(function e(t,n,_,l,r,f,c){let p;if(null==t||!0===t||!1===t||\"\"===t)return;if(\"object\"!=typeof t){if(\"function\"==typeof t)return;f.push(3,t+\"\");return}if(tO(t)){r.__k=t;for(let i=0;i<t.length;i++){let o=t[i];null!=o&&\"boolean\"!=typeof o&&e(o,n,_,l,r,f,f.length)}return}t.__=r,i&&i(t),o&&o(t,tU);let d=t.type,h=t.props,m=n,v,y,g;if(\"function\"==typeof d){if(d===z)y=h.children;else{if(null!=(v=d.contextType)){let e=n[v.__c];m=e?e.props.value:v.__}if(d.prototype&&\"function\"==typeof d.prototype.render)y=tM(t,m),g=t.__c;else{g={__v:t,props:h,context:m,setState:tF,forceUpdate:tF,__d:!0,__h:[]},t.__c=g,g.constructor=d,g.render=tB;let e=0;for(;g.__d&&e++<25;)g.__d=!1,u&&u(t),y=g.render(h,g.state,m);g.__d=!0}null!=g.getChildContext&&(n=tW({},n,g.getChildContext()))}y=null!=y&&y.type===z&&null==y.key?y.props.children:y;try{e(y,n,_,l,t,f,f.length)}catch(r){if(r&&\"object\"==typeof r&&r.then&&g&&g.__c)g.setState({__a:!0}),g.__d&&(y=tM(t,n),g=t.__c,f.length=c,e(y,n,_,l,t,f,f.length));else throw r}finally{s&&s(t),t.__=void 0,a&&a(t)}return}for(let e in f.push(0,t),h){let t=h[e];switch(e){case\"children\":p=t;continue;case\"key\":case\"ref\":case\"__self\":case\"__source\":continue}null!=t&&!1!==t&&\"function\"!=typeof t&&f.push(2,e,t)}\"string\"==typeof p||\"number\"==typeof p?f.push(3,p):null!=p&&!1!==p&&!0!==p&&e(p,n,!1,l,t,f,f.length),s&&s(t),t.__=void 0,a&&a(t),f.push(1)})(e,t||tU,!1,void 0,_,l,0)}finally{V.__c&&V.__c(e,tL),V.__s=n,tL.length=0}return l};function tj(){let e;try{e=tH(_.__jsx,void 0)}catch(t){lynx.reportError(t),e=[]}finally{}(function(e,t){let n=t;let _=[t];for(let t=0;t<e.length;)switch(e[t]){case P.Begin:{let l=n;(n=e[t+1]).__parent&&(n=new tP(n.type),e[t+1]=n),l.insertBefore(n),_.push(n),t+=2;break}case P.End:n.__k=void 0,_.pop(),n=_[_.length-1],t+=1;break;case P.Attr:{let _=e[t+1];let l=e[t+2];n.setAttribute(_,l),t+=3;break}case P.Text:{let _=e[t+1];let l=new tP(null);l.setAttribute(0,_),n.insertBefore(l),t+=2}}})(e,_)}function t$(e){return`Native${e}Modules`}function tV(e,t,n,_,l,r,i){let o;let s=e.__values[t];o=s?\"string\"==typeof s?s:`${e.__id}:${t}:${i}`:void 0,e.__values[t]=o,e.__elements&&__AddEvent(e.__elements[_],l,r,o)}function tG(e,t,n,_,l){if(!e.__elements)return;let r=e.__values[t];\"main-thread\"===l&&function e(t,n,_,l,r){var i;if(n&&null!=(i=n.__isSerialized)&&i)if(r&&r.domSet||(__SetAttribute(t,\"has-react-gesture\",!0),__SetAttribute(t,\"flatten\",!1)),n.type===N.COMPOSED)for(let[r,i]of n.gestures.entries())e(t,i,null==_?void 0:_.gestures[r],l,{domSet:!0});else{let{config:e,relationMap:r}=function(e,t,n,_){var l,r,i,o,s,u;let a={callbacks:[]};for(let l of(e.config&&(a.config=e.config),Object.keys(e.callbacks))){let r=e.callbacks[l];te(r,null==t?void 0:t.callbacks[l],n,_),a.callbacks.push({name:l,callback:r})}return{config:a,relationMap:{waitFor:null!=(l=null==e||null==(o=e.waitFor)?void 0:o.map(e=>e.id))?l:[],simultaneous:null!=(r=null==e||null==(s=e.simultaneousWith)?void 0:s.map(e=>e.id))?r:[],continueWith:null!=(i=null==e||null==(u=e.continueWith)?void 0:u.map(e=>e.id))?i:[]}}}(n,_,l,t);__SetGestureDetector(t,n.id,n.type,e,r)}}(e.__elements[_],r,n,tt)}void 0===globalThis.processEvalResult&&(globalThis.processEvalResult=(e,t)=>null==e?void 0:e(t)),Object.assign(globalThis,{renderPage:function(t){var n;l=!1,r={},lynx.__initData=null!=t?t:{},e=n=__CreatePage(\"0\",0),tS=__GetElementUniqueID(n),_.ensureElements(),tj(),tp.flush(),tl(),tD()},updatePage:function(n,i){var o,s,u;if(null==i?void 0:i.reloadTemplate){let t;return void(o=n,s=i,++tR,\"object\"!=typeof o||e8(o)||Object.assign(lynx.__initData,o),tE.clear(),tp.clearAttachedLists(),r={},t=_,(_=new tP(\"root\")).__jsx=t.__jsx,tj(),ty(t,_,{skipUnRef:!0}),tp.flush(),tl(),l&&__OnLifecycleEvent([C.firstScreen,{root:JSON.stringify(_)}]),__FlushElementTree(e,s))}if((null==i?void 0:i.resetPageData)&&(lynx.__initData={}),\"object\"==typeof n&&!e8(n)){null!=(u=lynx).__initData||(u.__initData={}),Object.assign(lynx.__initData,n)}let a=null!=i?i:{};if(!l){let e=_;(_=new tP(\"root\")).__jsx=e.__jsx,t=null==i?void 0:i.pipelineOptions,tT(\"updateDiffVdomStart\"),tp.clearAttachedLists(),tj(),ty(e,_,{skipUnRef:!0,swap:r}),tp.flush(),tl(),a.triggerDataUpdated=!0,tT(\"updateDiffVdomEnd\")}__FlushElementTree(e,a)},updateGlobalProps:function(t,n){n?__FlushElementTree(e,n):__FlushElementTree()},getPageData:function(){return null},removeComponents:function(){}}),Object.assign(globalThis,{[C.jsReady]:tD}),Object.assign(globalThis,{[C.patchUpdate]:function({data:_,patchOptions:l}){let r;if(l.reloadVersion<tR)return;let i=l.flowIds;i&&lynx.performance.profileStart(\"ReactLynx::patch\",{flowId:i[0],flowIds:i}),t=l.pipelineOptions,tT(\"mtsRenderStart\"),tT(\"parseChangesStart\");let{patchList:o,flushOptions:s={},delayedRunOnMainThreadData:u}=JSON.parse(_);tT(\"parseChangesEnd\"),tT(\"patchChangesStart\"),l.isHydration&&tn(!0);try{for(let{snapshotPatch:e}of o)tp.clearAttachedLists(),e&&function(e){let t=e.length;for(let n=0;n<t;++n)switch(e[n]){case 0:{let t=e[++n];new tP(t,e[++n]);break}case 1:{let t=e[++n];let _=e[++n];let l=e[++n];let r=tE.values.get(t);let i=tE.values.get(_);let o=tE.values.get(l);r&&i?r.insertBefore(i,o):tN(r?_:t);break}case 2:{let t=e[++n];let _=e[++n];let l=tE.values.get(t);let r=tE.values.get(_);l&&r?l.removeChild(r):tN(l?_:t);break}case 3:{let t=e[++n];let _=e[++n];let l=e[++n];let r=tE.values.get(t);r?r.setAttribute(_,l):tN(t);break}case 4:{let t=e[++n];let _=e[++n];let l=tE.values.get(t);l?l.setAttribute(\"values\",_):tN(t)}}}(e),tp.flush()}finally{tT(\"patchChangesEnd\"),tT(\"mtsRenderEnd\"),l.isHydration&&tn(!1)}if(tl(),u&&(null!=n?n:n=Number((r=(SystemInfo.lynxSdkVersion||\"1.0\").split(\".\"))[0])>2||2==Number(r[0])&&Number(r[1])>13)){for(let e of(e7(!1),u))try{(function(e,t,n){var _;null==(_=globalThis.lynxWorkletImpl)||_._runRunOnMainThreadTask(e,t,n)})(e.worklet,e.params,e.resolveId)}catch(e){lynx.reportError(e)}e7(!0)}l.pipelineOptions&&(s.pipelineOptions=l.pipelineOptions),__FlushElementTree(e,s),i&&lynx.performance.profileEnd()}}),Object.assign(globalThis,{[C.updateMTRefInitValue]:function({data:e}){var t,n;(t=JSON.parse(e))&&(null==(n=globalThis.lynxWorkletImpl)||n._refImpl.updateWorkletRefInitValueChanges(t))}}),lynx.__initData={},globalThis.SystemInfo=null!=(m=lynx.SystemInfo)?m:{},lynx.reportError=function(e){_ReportError(e instanceof Error?e:Error(JSON.stringify(e)),{errorCode:1101})},lynx.triggerGlobalEventFromLepus=function(e,t){__OnLifecycleEvent([\"globalEventFromLepus\",[e,t]])},void 0===globalThis[t$(\"\")]&&(globalThis[t$(\"\")]=void 0),lynx.registerDataProcessors=function(e){let t=!1;globalThis.processData=(n,_)=>{let l;try{var r,i,o,s,u;l=_?null!=(r=null==e||null==(s=e.dataProcessors)||null==(o=s[_])?void 0:o.call(s,n))?r:n:null!=(i=null==e||null==(u=e.defaultDataProcessor)?void 0:u.call(e,n))?i:n}catch(e){lynx.reportError(e),l={}}return!1===t&&globalThis.__I18N_RESOURCE_TRANSLATION__&&(l={...l,__I18N_RESOURCE_TRANSLATION__:globalThis.__I18N_RESOURCE_TRANSLATION__}),_||(t=!0),l}},lynx.registerDataProcessors(),(v=N||(N={}))[v.COMPOSED=-1]=\"COMPOSED\",v[v.PAN=0]=\"PAN\",v[v.FLING=1]=\"FLING\",v[v.DEFAULT=2]=\"DEFAULT\",v[v.TAP=3]=\"TAP\",v[v.LONGPRESS=4]=\"LONGPRESS\",v[v.ROTATION=5]=\"ROTATION\",v[v.PINCH=6]=\"PINCH\",v[v.NATIVE=7]=\"NATIVE\";const tq=new Set([\"reuse-identifier\",\"recyclable\"]);const tJ=new Set([\"reuse-identifier\",\"full-span\",\"item-key\",\"sticky-top\",\"sticky-bottom\",\"estimated-height\",\"estimated-height-px\",\"estimated-main-axis-size-px\",\"recyclable\"]);function tz(e,t,n,_,l,r,i){if(!e.__elements)return;let o=e.__values[t];let s=null!=o?o:{};s._workletType=l,\"main-thread\"===l&&(te(s,n,tt,e.__elements[_]),__AddEvent(e.__elements[_],r,i,{type:\"worklet\",value:s}))}const tY=/^(([A-Za-z-]*):)?(bind|catch|capture-bind|capture-catch|global-bind)([A-Za-z]+)$/;const tX={bind:\"bindEvent\",catch:\"catchEvent\",\"capture-bind\":\"capture-bind\",\"capture-catch\":\"capture-catch\",\"global-bind\":\"global-bindEvent\"};const tK=new Set([\"name\",\"clip-radius\",\"overlap\",\"exposure-scene\",\"exposure-id\"]);function tZ(e,t,n){if(\"string\"==typeof e){let n=new tP(e);return n.props=t,n.__k=null,n.__=null,n.__b=0,n.__e=null,n.__d=void 0,n.__c=null,n.__i=-1,n.__u=0,n}if(\"function\"==typeof e){let n,_=t;if(\"ref\"in _)for(let e in _={},t)\"ref\"==e||(_[e]=t[e]);if(n=e.defaultProps)for(let e in n)void 0===_[e]&&(_[e]=n[e]);return{type:e,props:_,__k:null,__:null,__b:0,__e:null,__d:void 0,__c:null,constructor:void 0,__i:-1,__u:0}}}A.Slot,A.MultiChildren,A.Children,A.ListChildren,[].slice;const tQ=function(){tk.values.get(\"root\").update[0]=(e,t,n)=>{(function(e,t,n){var _,l,r;null!=n||(n={});let i=e.__values[t];let o=e.parentNode;if(null==o?void 0:o.__snapshot_def.isListHolder){let s=e5(n,tJ);let u=e5(i,tJ);e4(s,u)||(tp.values&&(null!=(r=(_=tp.values)[l=o.__id])?r:_[l]=new tg(o)).onSetAttribute(e,u,s),e.__listItemPlatformInfo=u,function(e,t,n){let _=e.__listItemPlatformInfo=e.__values[t];if(tp.values){var l,r,i;let t=e.parentNode;(null==t?void 0:t.__snapshot_def.isListHolder)&&(null!=(i=(l=tp.values)[r=t.__id])?i:l[r]=new tg(t)).onSetAttribute(e,_,n)}if(e.__elements){let n=e.__elements[0];let _=e.__values[t];for(let e in _)tq.has(e)||__SetAttribute(n,e,_[e])}}({__values:{get[t](){return u}},__id:e.__id,__elements:e.__elements},t,s))}if(\"__spread\"in i&&(i=function(e,t,n){let _={};let l=!1;for(let r in n){let i=n[r];\"__spread\"===r||(\"class\"===r||\"className\"===r?(null!=i||(i=\"\"),_.className=i):\"ref\"===r?_[r]=i?1:void 0:\"function\"==typeof i?_[r]=`${e.__id}:${t}:${r}`:\"__self\"===r||\"__source\"===r||(!l&&tK.has(r)&&(l=!0),_[r]=i))}return l&&(_.flatten=!1),_}(e,t,i),e.__values[t]=i),!e.__elements)return;let s={};let u=null;for(let _ in i){let l=i[_];if(l!==n[_])if(\"className\"===_)__SetClasses(e.__elements[0],l);else if(\"style\"===_)e4(l,n[_])||__SetInlineStyles(e.__elements[0],l);else if(\"id\"===_)__SetID(e.__elements[0],l);else if(_.startsWith(\"data-\"));else if(\"ref\"===_)th({__values:{get[t](){return l},set[t](value){i[_]=value}},__id:e.__id,__elements:e.__elements},t,n[_],0);else if(_.endsWith(\":ref\"))null!=e.__worklet_ref_set||(e.__worklet_ref_set=new Set),ti({__values:{get[t](){return l}},__id:e.__id,__elements:e.__elements,__worklet_ref_set:e.__worklet_ref_set},t,n[_],0,_.slice(0,-4));else if(_.endsWith(\":gesture\")){let r=_.slice(0,-8);tG({__values:{get[t](){return l}},__id:e.__id,__elements:e.__elements},t,n[_],0,r)}else if(u=tY.exec(_)){let r=u[2];let o=tX[u[3]];let s=u[4];let a={__values:{get[t](){return l},set[t](value){i[_]=value}},__id:e.__id,__elements:e.__elements};r?tz(a,t,n[_],0,r,o,s):tV(a,t,n[_],0,o,s,_)}else tJ.has(_)||__SetAttribute(e.__elements[0],_,l);_.startsWith(\"data-\")&&(s[_.slice(5)]=l)}let a=!1;for(let _ in n){if(!(_ in i))if(\"className\"===_)__SetClasses(e.__elements[0],\"\");else if(\"style\"===_)__SetInlineStyles(e.__elements[0],\"\");else if(\"id\"===_)__SetID(e.__elements[0],null);else if(_.startsWith(\"data-\"));else if(\"ref\"===_)th({__values:{get[t](){return},set[t](value){i[_]=value}},__id:e.__id,__elements:e.__elements},t,n[_],0);else if(_.endsWith(\":ref\"))null!=e.__worklet_ref_set||(e.__worklet_ref_set=new Set),ti({__values:{get[t](){return}},__id:e.__id,__elements:e.__elements,__worklet_ref_set:e.__worklet_ref_set},t,n[_],0,_.slice(0,-4));else if(_.endsWith(\":gesture\")){let l=_.slice(0,-8);tG({__values:{get[t](){return}},__id:e.__id,__elements:e.__elements},t,n[_],0,l)}else if(u=tY.exec(_)){let l=u[2];let r=tX[u[3]];let o=u[4];let s={__values:{get[t](){return},set[t](value){i[_]=value}},__id:e.__id,__elements:e.__elements};l?tz(s,t,n[_],0,l,r,o):tV(s,t,n[_],0,r,o,_)}else tJ.has(_)||__SetAttribute(e.__elements[0],_,null);_.startsWith(\"data-\")&&(a=!0)}(a||!e8(s))&&__SetDataset(e.__elements[0],s)})(e,t,n)};var e=function(e,t){let{children:n,...l}=e;return _.setAttribute(\"values\",[{...t?{ref:t}:void 0,...l,__spread:!0}]),ew(!0),e3(),n};function t(t){var n=eR({},t);return delete n.ref,e(n,t.ref||null)}return t.$$typeof=eW,t.render=e,t.prototype.isReactComponent=t.__f=!0,t.displayName=\"ForwardRef(\"+(e.displayName||e.name)+\")\",t}();const t0=D.p+\"static/image/desktop-frame.29b29328.png\";const t1=D.p+\"static/image/lynx-logo.620eb8d1.png\";const t2={left:0,top:0,width:980,height:320};const t3={x:160,y:94};function t4(e,t,n){return Math.max(t,Math.min(n,e))}function t8(e){var t,n;let _=null!=(t=null==e?void 0:e.detail)?t:{};let l=null!=(n=_.layout)?n:_;return{left:\"number\"==typeof l.left?l.left:\"number\"==typeof l.x?l.x:void 0,top:\"number\"==typeof l.top?l.top:\"number\"==typeof l.y?l.y:void 0,width:\"number\"==typeof l.width?l.width:void 0,height:\"number\"==typeof l.height?l.height:void 0}}function t5(e,t){var n;let _=null!=(n=null==e?void 0:e.detail)?n:{};return{x:\"number\"==typeof(null==e?void 0:e.pageX)?e.pageX-t.left:\"number\"==typeof(null==e?void 0:e.clientX)?e.clientX-t.left:\"number\"==typeof(null==e?void 0:e.x)?e.x:\"number\"==typeof _.pageX?_.pageX-t.left:\"number\"==typeof _.clientX?_.clientX-t.left:\"number\"==typeof _.x?_.x:0,y:\"number\"==typeof(null==e?void 0:e.pageY)?e.pageY-t.top:\"number\"==typeof(null==e?void 0:e.clientY)?e.clientY-t.top:\"number\"==typeof(null==e?void 0:e.y)?e.y:\"number\"==typeof _.pageY?_.pageY-t.top:\"number\"==typeof _.clientY?_.clientY-t.top:\"number\"==typeof _.y?_.y:0}}function t6(e,t,n){return{x:t4(e.x-n.x,24,t.width-132-24),y:t4(e.y-n.y,24,t.height-132-24)}}function t9(e,t){let n={left:e.x,top:e.y,width:132,height:132};let _={x:n.left+n.width/2,y:n.top+n.height/2};return!!(_.x>=t.left)&&!!(_.x<=t.left+t.width)&&!!(_.y>=t.top)&&!!(_.y<=t.top+t.height)||Math.max(0,Math.min(n.left+n.width,t.left+t.width)-Math.max(n.left,t.left))*Math.max(0,Math.min(n.top+n.height,t.top+t.height)-Math.max(n.top,t.top))/(n.width*n.height)>=.35}const t7=\"__snapshot_835da_65b90_1\";tw[t7]=e=>tC(e,function(){let e=tS;let t=__CreateView(e);__SetClasses(t,\"PageBackdrop\");let n=__CreateView(e);__SetClasses(n,\"PageOrb\"),__AppendElement(t,n);let _=__CreateView(e);__SetClasses(_,\"BackdropGlow BackdropGlow--a\"),__AppendElement(t,_);let l=__CreateView(e);__SetClasses(l,\"BackdropGlow BackdropGlow--b\"),__AppendElement(t,l);let r=__CreateView(e);return __SetClasses(r,\"BackdropGlow BackdropGlow--accent\"),__AppendElement(t,r),[t,n,_,l,r]},null,null,void 0,T,null,!0);const ne=\"__snapshot_835da_65b90_2\";tw[ne]=e=>tC(e,function(){let e=tS;let t=__CreateView(e);__SetClasses(t,\"Poster\");let n=__CreateView(e);__SetClasses(n,\"Header\"),__AppendElement(t,n);let _=__CreateText(e);__SetClasses(_,\"Title\"),__SetAttribute(_,\"text\",\"Bringing Lynx to desktop\"),__AppendElement(n,_);let l=__CreateView(e);__SetClasses(l,\"Stage\"),__AppendElement(t,l);let r=__CreateView(e);__AppendElement(l,r);let i=__CreateImage(e);__SetClasses(i,\"DesktopFrameImage\"),__AppendElement(r,i);let o=__CreateView(e);__AppendElement(l,o);let s=__CreateImage(e);return __SetClasses(s,\"LogoImage\"),__AppendElement(o,s),[t,n,_,l,r,i,o,s]},[(e,t,n)=>tV(e,t,n,3,\"bindEvent\",\"layoutchange\",\"\"),function(e){e.__elements&&__SetClasses(e.__elements[4],e.__values[1]||\"\")},(e,t,n)=>tV(e,t,n,4,\"bindEvent\",\"layoutchange\",\"\"),function(e){e.__elements&&__SetAttribute(e.__elements[5],\"src\",e.__values[3])},function(e){e.__elements&&__SetClasses(e.__elements[6],e.__values[4]||\"\")},function(e){e.__elements&&__SetInlineStyles(e.__elements[6],e.__values[5])},(e,t,n)=>tV(e,t,n,6,\"bindEvent\",\"mousedown\",\"\"),(e,t,n)=>tV(e,t,n,6,\"bindEvent\",\"touchstart\",\"\"),function(e){e.__elements&&__SetAttribute(e.__elements[7],\"src\",e.__values[8])}],null,void 0,T,null,!0),({render:e=>{_.__jsx=e},registerDataProcessors:e=>{lynx.registerDataProcessors(e)}}).render(tZ(function(){let{desktopHot:e,docked:t,dragging:n,logoPos:_,cancelDrag:l,finishDrag:r,handleDesktopLayout:i,handleLogoDown:o,handleMove:s,handleStageLayout:u}=function(){let[e,t]=e2(t2);let[n,_]=e2(null);let[l,r]=e2(t3);let[i,o]=e2({x:0,y:0});let[s,u]=e2(!1);let[a,f]=e2(!1);let[c,p]=e2(!1);let d=ew(!1);return{desktopHot:a,docked:c,dragging:s,logoPos:l,cancelDrag:()=>{s&&d.current&&(d.current=!1,r(t3),p(!1),u(!1),f(!1))},finishDrag:t=>{if(!s||!d.current)return;d.current=!1;let _=t6(t5(t,e),e,i);if(n&&t9(_,n)&&n)r({x:n.left+Math.round((n.width-132)/2),y:n.top+Math.round((n.height-132)/2)-15}),p(!0);else r(t3),p(!1);u(!1),f(!1)},handleDesktopLayout:e=>{let t=t8(e);_(e=>{var n,_,l,r;return{left:null!=(n=t.left)?n:e.left,top:null!=(_=t.top)?_:e.top,width:null!=(l=t.width)?l:e.width,height:null!=(r=t.height)?r:e.height}})},handleLogoDown:t=>{let n=t5(t,e);d.current=!0,u(!0),p(!1),o({x:n.x-l.x,y:n.y-l.y}),f(!1)},handleMove:t=>{if(!s||!d.current)return;let _=t6(t5(t,e),e,i);r(_),f(!!n&&t9(_,n))},handleStageLayout:e=>{let n=t8(e);t(e=>{var t,_,l,r;return{left:null!=(t=n.left)?t:e.left,top:null!=(_=n.top)?_:e.top,width:null!=(l=n.width)?l:e.width,height:null!=(r=n.height)?r:e.height}})}}}();let a=`DesktopFrame ${e?\"DesktopFrame--hot\":\"\"} ${t?\"DesktopFrame--occupied\":\"\"}`;let f=`LogoCard ${n?\"LogoCard--dragging\":\"\"} ${t?\"LogoCard--docked\":\"\"}`;let c={left:`${_.x}px`,top:`${_.y}px`,cursor:n?\"grabbing\":\"grab\"};return tZ(tQ,{className:\"Page\",bindmousemove:s,bindtouchmove:s,bindmouseup:r,bindtouchend:r,bindtouchcancel:l,bindmouseleave:l,children:[tZ(t7,{}),tZ(ne,{values:[1,a,1,t0,f,c,1,1,t1]})]})},{}));"},"customSections":{},"elementTemplates":{}}
|
|
Binary file
|
|
Binary file
|
package/lynx.config.ts
ADDED
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { defineConfig } from "@lynx-js/rspeedy";
|
|
2
|
+
|
|
3
|
+
import { pluginQRCode } from "@lynx-js/qrcode-rsbuild-plugin";
|
|
4
|
+
import { pluginReactLynx } from "@lynx-js/react-rsbuild-plugin";
|
|
5
|
+
import { pluginTypeCheck } from "@rsbuild/plugin-type-check";
|
|
6
|
+
|
|
7
|
+
export default defineConfig({
|
|
8
|
+
plugins: [
|
|
9
|
+
pluginQRCode(),
|
|
10
|
+
pluginReactLynx(),
|
|
11
|
+
pluginTypeCheck(),
|
|
12
|
+
],
|
|
13
|
+
output: {
|
|
14
|
+
filename: "[name].[platform].bundle",
|
|
15
|
+
},
|
|
16
|
+
environments: {
|
|
17
|
+
web: {},
|
|
18
|
+
lynx: {},
|
|
19
|
+
},
|
|
20
|
+
});
|
package/package.json
CHANGED
|
@@ -1,9 +1,36 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lynx-example/mouse-cursor",
|
|
3
|
-
"version": "0.
|
|
4
|
-
"description": "",
|
|
5
|
-
"
|
|
6
|
-
|
|
3
|
+
"version": "0.1.0",
|
|
4
|
+
"description": "An example shows mouse drag, hover, and cursor states in Lynx",
|
|
5
|
+
"repository": {
|
|
6
|
+
"type": "git",
|
|
7
|
+
"url": "git+https://github.com/lynx-family/lynx-examples.git",
|
|
8
|
+
"directory": "examples/mouse-cursor"
|
|
9
|
+
},
|
|
10
|
+
"author": "Lynx Authors",
|
|
7
11
|
"type": "module",
|
|
8
|
-
"
|
|
9
|
-
|
|
12
|
+
"files": [
|
|
13
|
+
"dist/",
|
|
14
|
+
"src/",
|
|
15
|
+
"lynx.config.ts"
|
|
16
|
+
],
|
|
17
|
+
"dependencies": {
|
|
18
|
+
"@lynx-js/react": "0.117.0"
|
|
19
|
+
},
|
|
20
|
+
"devDependencies": {
|
|
21
|
+
"@lynx-js/qrcode-rsbuild-plugin": "0.4.6",
|
|
22
|
+
"@lynx-js/react-rsbuild-plugin": "0.13.0",
|
|
23
|
+
"@lynx-js/rspeedy": "0.13.6",
|
|
24
|
+
"@lynx-js/types": "3.7.0",
|
|
25
|
+
"@types/react": "^18.3.28",
|
|
26
|
+
"typescript": "~5.9.3"
|
|
27
|
+
},
|
|
28
|
+
"engines": {
|
|
29
|
+
"node": ">=18"
|
|
30
|
+
},
|
|
31
|
+
"scripts": {
|
|
32
|
+
"build": "rspeedy build",
|
|
33
|
+
"dev": "rspeedy dev",
|
|
34
|
+
"preview": "rspeedy preview"
|
|
35
|
+
}
|
|
36
|
+
}
|
package/src/App.css
ADDED
|
@@ -0,0 +1,207 @@
|
|
|
1
|
+
.Page {
|
|
2
|
+
display: flex;
|
|
3
|
+
flex: 1;
|
|
4
|
+
min-height: 100%;
|
|
5
|
+
align-items: center;
|
|
6
|
+
justify-content: center;
|
|
7
|
+
position: relative;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
background:
|
|
10
|
+
radial-gradient(
|
|
11
|
+
circle at 18% 14%,
|
|
12
|
+
rgba(14, 165, 233, 0.24),
|
|
13
|
+
transparent 24%
|
|
14
|
+
),
|
|
15
|
+
radial-gradient(
|
|
16
|
+
circle at 84% 20%,
|
|
17
|
+
rgba(244, 114, 182, 0.16),
|
|
18
|
+
transparent 22%
|
|
19
|
+
),
|
|
20
|
+
linear-gradient(180deg, #030712 0%, #08111f 54%, #0f172a 100%);
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
.PageBackdrop {
|
|
24
|
+
position: absolute;
|
|
25
|
+
left: 0;
|
|
26
|
+
top: 0;
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: 100%;
|
|
29
|
+
overflow: hidden;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
.PageOrb {
|
|
33
|
+
position: absolute;
|
|
34
|
+
background: radial-gradient(
|
|
35
|
+
71.43% 62.3% at 46.43% 36.43%,
|
|
36
|
+
rgba(18, 229, 229, 0) 15%,
|
|
37
|
+
rgba(239, 155, 255, 0.3) 56.35%,
|
|
38
|
+
#ff6448 100%
|
|
39
|
+
);
|
|
40
|
+
box-shadow: 0px 12.93px 28.74px 0px #ffd28db2 inset;
|
|
41
|
+
border-radius: 50%;
|
|
42
|
+
width: 150vh;
|
|
43
|
+
height: 150vh;
|
|
44
|
+
top: -30vh;
|
|
45
|
+
left: 44.27vw;
|
|
46
|
+
transform: rotate(15.25deg);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.BackdropGlow {
|
|
50
|
+
position: absolute;
|
|
51
|
+
border-radius: 50%;
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
.BackdropGlow--a {
|
|
55
|
+
width: 182vw;
|
|
56
|
+
height: 182vw;
|
|
57
|
+
left: -54vw;
|
|
58
|
+
top: -84vw;
|
|
59
|
+
background: radial-gradient(
|
|
60
|
+
circle at 50% 42%,
|
|
61
|
+
rgba(56, 189, 248, 0.15),
|
|
62
|
+
rgba(56, 189, 248, 0) 58%
|
|
63
|
+
);
|
|
64
|
+
opacity: 0.92;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
.BackdropGlow--b {
|
|
68
|
+
width: 128vw;
|
|
69
|
+
height: 128vw;
|
|
70
|
+
right: -34vw;
|
|
71
|
+
bottom: -74vw;
|
|
72
|
+
background: radial-gradient(
|
|
73
|
+
circle at 50% 45%,
|
|
74
|
+
rgba(244, 114, 182, 0.14),
|
|
75
|
+
rgba(244, 114, 182, 0) 62%
|
|
76
|
+
);
|
|
77
|
+
opacity: 0.82;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.BackdropGlow--accent {
|
|
81
|
+
left: 50%;
|
|
82
|
+
top: 4vh;
|
|
83
|
+
width: 88vw;
|
|
84
|
+
height: 62vw;
|
|
85
|
+
transform: translateX(-50%);
|
|
86
|
+
background: radial-gradient(
|
|
87
|
+
71.43% 62.3% at 46.43% 36.43%,
|
|
88
|
+
rgba(18, 229, 229, 0) 15%,
|
|
89
|
+
rgba(239, 155, 255, 0.12) 56.35%,
|
|
90
|
+
rgba(255, 100, 72, 0.18) 100%
|
|
91
|
+
);
|
|
92
|
+
opacity: 0.28;
|
|
93
|
+
filter: blur(8px);
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.Poster {
|
|
97
|
+
position: relative;
|
|
98
|
+
display: flex;
|
|
99
|
+
flex-direction: column;
|
|
100
|
+
width: 980px;
|
|
101
|
+
gap: 18px;
|
|
102
|
+
padding: 34px 0 28px;
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.Header {
|
|
106
|
+
display: flex;
|
|
107
|
+
flex-direction: column;
|
|
108
|
+
align-items: center;
|
|
109
|
+
gap: 8px;
|
|
110
|
+
max-width: 760px;
|
|
111
|
+
margin: 0 auto;
|
|
112
|
+
text-align: center;
|
|
113
|
+
}
|
|
114
|
+
|
|
115
|
+
.Title {
|
|
116
|
+
color: #f8fafc;
|
|
117
|
+
font-size: 50px;
|
|
118
|
+
font-weight: 800;
|
|
119
|
+
line-height: 1;
|
|
120
|
+
}
|
|
121
|
+
|
|
122
|
+
.Stage {
|
|
123
|
+
position: relative;
|
|
124
|
+
align-self: center;
|
|
125
|
+
width: 980px;
|
|
126
|
+
height: 320px;
|
|
127
|
+
overflow: hidden;
|
|
128
|
+
border-radius: 34px;
|
|
129
|
+
background:
|
|
130
|
+
radial-gradient(
|
|
131
|
+
circle at 18% 30%,
|
|
132
|
+
rgba(125, 211, 252, 0.07),
|
|
133
|
+
transparent 36%
|
|
134
|
+
),
|
|
135
|
+
radial-gradient(
|
|
136
|
+
circle at 84% 70%,
|
|
137
|
+
rgba(244, 114, 182, 0.05),
|
|
138
|
+
transparent 30%
|
|
139
|
+
),
|
|
140
|
+
linear-gradient(
|
|
141
|
+
180deg,
|
|
142
|
+
rgba(6, 11, 23, 0.78) 0%,
|
|
143
|
+
rgba(10, 18, 32, 0.84) 100%
|
|
144
|
+
);
|
|
145
|
+
box-shadow:
|
|
146
|
+
0 32px 84px rgba(2, 8, 23, 0.38),
|
|
147
|
+
inset 0 1px 0 rgba(255, 255, 255, 0.04);
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.DesktopFrame {
|
|
151
|
+
position: absolute;
|
|
152
|
+
left: 588px;
|
|
153
|
+
top: 58px;
|
|
154
|
+
width: 336px;
|
|
155
|
+
height: 238px;
|
|
156
|
+
border-radius: 28px;
|
|
157
|
+
overflow: hidden;
|
|
158
|
+
transition: transform 180ms ease, filter 180ms ease;
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
.DesktopFrame--hot {
|
|
162
|
+
transform: scale(1.01);
|
|
163
|
+
filter: brightness(1.08);
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.DesktopFrame--occupied {
|
|
167
|
+
filter: brightness(1.04);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.DesktopFrameImage {
|
|
171
|
+
width: 100%;
|
|
172
|
+
height: 100%;
|
|
173
|
+
}
|
|
174
|
+
|
|
175
|
+
.LogoCard {
|
|
176
|
+
position: absolute;
|
|
177
|
+
left: 160px;
|
|
178
|
+
top: 94px;
|
|
179
|
+
width: 132px;
|
|
180
|
+
height: 132px;
|
|
181
|
+
display: flex;
|
|
182
|
+
align-items: center;
|
|
183
|
+
justify-content: center;
|
|
184
|
+
transition:
|
|
185
|
+
left 220ms cubic-bezier(0.2, 0.9, 0.2, 1),
|
|
186
|
+
top 220ms cubic-bezier(0.2, 0.9, 0.2, 1),
|
|
187
|
+
transform 180ms ease,
|
|
188
|
+
filter 180ms ease;
|
|
189
|
+
cursor: grab;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.LogoCard--dragging {
|
|
193
|
+
transition: none;
|
|
194
|
+
transform: scale(1.04) rotate(-1.5deg);
|
|
195
|
+
cursor: grabbing;
|
|
196
|
+
filter: drop-shadow(0 14px 32px rgba(2, 8, 23, 0.28));
|
|
197
|
+
}
|
|
198
|
+
|
|
199
|
+
.LogoCard--docked {
|
|
200
|
+
transform: scale(0.98);
|
|
201
|
+
filter: drop-shadow(0 12px 24px rgba(14, 165, 233, 0.2));
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
.LogoImage {
|
|
205
|
+
width: 100px;
|
|
206
|
+
height: 100px;
|
|
207
|
+
}
|
package/src/App.tsx
ADDED
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import desktopFrame from "./assets/desktop-frame.png";
|
|
2
|
+
import lynxLogo from "./assets/lynx-logo.png";
|
|
3
|
+
import { useDesktopDrag } from "./useDesktopDrag";
|
|
4
|
+
import "./App.css";
|
|
5
|
+
|
|
6
|
+
export function App() {
|
|
7
|
+
const {
|
|
8
|
+
desktopHot,
|
|
9
|
+
docked,
|
|
10
|
+
dragging,
|
|
11
|
+
logoPos,
|
|
12
|
+
cancelDrag,
|
|
13
|
+
finishDrag,
|
|
14
|
+
handleDesktopLayout,
|
|
15
|
+
handleLogoDown,
|
|
16
|
+
handleMove,
|
|
17
|
+
handleStageLayout,
|
|
18
|
+
} = useDesktopDrag();
|
|
19
|
+
const desktopFrameClassName = `DesktopFrame ${desktopHot ? "DesktopFrame--hot" : ""} ${
|
|
20
|
+
docked ? "DesktopFrame--occupied" : ""
|
|
21
|
+
}`;
|
|
22
|
+
const logoCardClassName = `LogoCard ${dragging ? "LogoCard--dragging" : ""} ${docked ? "LogoCard--docked" : ""}`;
|
|
23
|
+
const logoCardStyle = {
|
|
24
|
+
left: `${logoPos.x}px`,
|
|
25
|
+
top: `${logoPos.y}px`,
|
|
26
|
+
cursor: dragging ? "grabbing" : "grab",
|
|
27
|
+
};
|
|
28
|
+
|
|
29
|
+
return (
|
|
30
|
+
<page
|
|
31
|
+
className="Page"
|
|
32
|
+
bindmousemove={handleMove}
|
|
33
|
+
bindtouchmove={handleMove}
|
|
34
|
+
bindmouseup={finishDrag}
|
|
35
|
+
bindtouchend={finishDrag}
|
|
36
|
+
bindtouchcancel={cancelDrag}
|
|
37
|
+
bindmouseleave={cancelDrag}
|
|
38
|
+
>
|
|
39
|
+
<view className="PageBackdrop">
|
|
40
|
+
<view className="PageOrb" />
|
|
41
|
+
<view className="BackdropGlow BackdropGlow--a" />
|
|
42
|
+
<view className="BackdropGlow BackdropGlow--b" />
|
|
43
|
+
<view className="BackdropGlow BackdropGlow--accent" />
|
|
44
|
+
</view>
|
|
45
|
+
<view className="Poster">
|
|
46
|
+
<view className="Header">
|
|
47
|
+
<text className="Title">Bringing Lynx to desktop</text>
|
|
48
|
+
</view>
|
|
49
|
+
|
|
50
|
+
<view className="Stage" bindlayoutchange={handleStageLayout}>
|
|
51
|
+
<view className={desktopFrameClassName} bindlayoutchange={handleDesktopLayout}>
|
|
52
|
+
<image src={desktopFrame} className="DesktopFrameImage" />
|
|
53
|
+
</view>
|
|
54
|
+
|
|
55
|
+
<view
|
|
56
|
+
className={logoCardClassName}
|
|
57
|
+
style={logoCardStyle}
|
|
58
|
+
bindmousedown={handleLogoDown}
|
|
59
|
+
bindtouchstart={handleLogoDown}
|
|
60
|
+
>
|
|
61
|
+
<image src={lynxLogo} className="LogoImage" />
|
|
62
|
+
</view>
|
|
63
|
+
</view>
|
|
64
|
+
</view>
|
|
65
|
+
</page>
|
|
66
|
+
);
|
|
67
|
+
}
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
package/src/index.tsx
ADDED
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { MouseEvent } from "@lynx-js/types";
|
|
2
|
+
|
|
3
|
+
declare module "@lynx-js/types" {
|
|
4
|
+
interface StandardProps {
|
|
5
|
+
// FIXME: remove after upgrading to a published @lynx-js/types version
|
|
6
|
+
// that includes bindmouseleave.
|
|
7
|
+
bindmouseleave?: (event: MouseEvent) => void;
|
|
8
|
+
}
|
|
9
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
/// <reference types="@lynx-js/rspeedy/client" />
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export { useDesktopDrag as useCursorDragDemo } from "./useDesktopDrag";
|
|
@@ -0,0 +1,197 @@
|
|
|
1
|
+
import { useRef, useState } from "@lynx-js/react";
|
|
2
|
+
|
|
3
|
+
type Point = { x: number; y: number };
|
|
4
|
+
type Rect = { left: number; top: number; width: number; height: number };
|
|
5
|
+
|
|
6
|
+
const STAGE_FALLBACK: Rect = { left: 0, top: 0, width: 980, height: 320 };
|
|
7
|
+
const LOGO_SIZE = { width: 132, height: 132 };
|
|
8
|
+
const LOGO_HOME: Point = { x: 160, y: 94 };
|
|
9
|
+
|
|
10
|
+
function clamp(value: number, min: number, max: number) {
|
|
11
|
+
return Math.max(min, Math.min(max, value));
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
function readLayout(event: any): Partial<Rect> {
|
|
15
|
+
const detail = event?.detail ?? {};
|
|
16
|
+
const layout = detail.layout ?? detail;
|
|
17
|
+
return {
|
|
18
|
+
left: typeof layout.left === "number" ? layout.left : typeof layout.x === "number" ? layout.x : undefined,
|
|
19
|
+
top: typeof layout.top === "number" ? layout.top : typeof layout.y === "number" ? layout.y : undefined,
|
|
20
|
+
width: typeof layout.width === "number" ? layout.width : undefined,
|
|
21
|
+
height: typeof layout.height === "number" ? layout.height : undefined,
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
function readPoint(event: any, stageRect: Rect): Point {
|
|
26
|
+
const detail = event?.detail ?? {};
|
|
27
|
+
const x = typeof event?.pageX === "number"
|
|
28
|
+
? event.pageX - stageRect.left
|
|
29
|
+
: typeof event?.clientX === "number"
|
|
30
|
+
? event.clientX - stageRect.left
|
|
31
|
+
: typeof event?.x === "number"
|
|
32
|
+
? event.x
|
|
33
|
+
: typeof detail.pageX === "number"
|
|
34
|
+
? detail.pageX - stageRect.left
|
|
35
|
+
: typeof detail.clientX === "number"
|
|
36
|
+
? detail.clientX - stageRect.left
|
|
37
|
+
: typeof detail.x === "number"
|
|
38
|
+
? detail.x
|
|
39
|
+
: 0;
|
|
40
|
+
const y = typeof event?.pageY === "number"
|
|
41
|
+
? event.pageY - stageRect.top
|
|
42
|
+
: typeof event?.clientY === "number"
|
|
43
|
+
? event.clientY - stageRect.top
|
|
44
|
+
: typeof event?.y === "number"
|
|
45
|
+
? event.y
|
|
46
|
+
: typeof detail.pageY === "number"
|
|
47
|
+
? detail.pageY - stageRect.top
|
|
48
|
+
: typeof detail.clientY === "number"
|
|
49
|
+
? detail.clientY - stageRect.top
|
|
50
|
+
: typeof detail.y === "number"
|
|
51
|
+
? detail.y
|
|
52
|
+
: 0;
|
|
53
|
+
return { x, y };
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
function isInside(rect: Rect, point: Point) {
|
|
57
|
+
return point.x >= rect.left
|
|
58
|
+
&& point.x <= rect.left + rect.width
|
|
59
|
+
&& point.y >= rect.top
|
|
60
|
+
&& point.y <= rect.top + rect.height;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
function getDraggedLogoPosition(point: Point, stageRect: Rect, dragOffset: Point) {
|
|
64
|
+
return {
|
|
65
|
+
x: clamp(point.x - dragOffset.x, 24, stageRect.width - LOGO_SIZE.width - 24),
|
|
66
|
+
y: clamp(point.y - dragOffset.y, 24, stageRect.height - LOGO_SIZE.height - 24),
|
|
67
|
+
};
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
function getLogoRect(position: Point): Rect {
|
|
71
|
+
return {
|
|
72
|
+
left: position.x,
|
|
73
|
+
top: position.y,
|
|
74
|
+
width: LOGO_SIZE.width,
|
|
75
|
+
height: LOGO_SIZE.height,
|
|
76
|
+
};
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
function getRectIntersectionArea(a: Rect, b: Rect) {
|
|
80
|
+
const overlapWidth = Math.max(0, Math.min(a.left + a.width, b.left + b.width) - Math.max(a.left, b.left));
|
|
81
|
+
const overlapHeight = Math.max(0, Math.min(a.top + a.height, b.top + b.height) - Math.max(a.top, b.top));
|
|
82
|
+
return overlapWidth * overlapHeight;
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
function shouldDockLogo(position: Point, desktopRect: Rect) {
|
|
86
|
+
const logoRect = getLogoRect(position);
|
|
87
|
+
const logoCenter = {
|
|
88
|
+
x: logoRect.left + logoRect.width / 2,
|
|
89
|
+
y: logoRect.top + logoRect.height / 2,
|
|
90
|
+
};
|
|
91
|
+
|
|
92
|
+
if (isInside(desktopRect, logoCenter)) {
|
|
93
|
+
return true;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
const overlapRatio = getRectIntersectionArea(logoRect, desktopRect) / (logoRect.width * logoRect.height);
|
|
97
|
+
return overlapRatio >= 0.35;
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
function getDockedLogoPosition(desktopRect: Rect) {
|
|
101
|
+
return {
|
|
102
|
+
x: desktopRect.left + Math.round((desktopRect.width - LOGO_SIZE.width) / 2),
|
|
103
|
+
y: desktopRect.top + Math.round((desktopRect.height - LOGO_SIZE.height) / 2) - 15,
|
|
104
|
+
};
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
export function useDesktopDrag() {
|
|
108
|
+
const [stageRect, setStageRect] = useState<Rect>(STAGE_FALLBACK);
|
|
109
|
+
const [desktopRect, setDesktopRect] = useState<Rect | null>(null);
|
|
110
|
+
const [logoPos, setLogoPos] = useState<Point>(LOGO_HOME);
|
|
111
|
+
const [dragOffset, setDragOffset] = useState<Point>({ x: 0, y: 0 });
|
|
112
|
+
const [dragging, setDragging] = useState(false);
|
|
113
|
+
const [desktopHot, setDesktopHot] = useState(false);
|
|
114
|
+
const [docked, setDocked] = useState(false);
|
|
115
|
+
const dragActiveRef = useRef(false);
|
|
116
|
+
|
|
117
|
+
const handleStageLayout = (event: any) => {
|
|
118
|
+
const layout = readLayout(event);
|
|
119
|
+
setStageRect((current) => ({
|
|
120
|
+
left: layout.left ?? current.left,
|
|
121
|
+
top: layout.top ?? current.top,
|
|
122
|
+
width: layout.width ?? current.width,
|
|
123
|
+
height: layout.height ?? current.height,
|
|
124
|
+
}));
|
|
125
|
+
};
|
|
126
|
+
|
|
127
|
+
const handleDesktopLayout = (event: any) => {
|
|
128
|
+
const layout = readLayout(event);
|
|
129
|
+
setDesktopRect((current) => ({
|
|
130
|
+
left: layout.left ?? current.left,
|
|
131
|
+
top: layout.top ?? current.top,
|
|
132
|
+
width: layout.width ?? current.width,
|
|
133
|
+
height: layout.height ?? current.height,
|
|
134
|
+
}));
|
|
135
|
+
};
|
|
136
|
+
|
|
137
|
+
const handleLogoDown = (event: any) => {
|
|
138
|
+
const point = readPoint(event, stageRect);
|
|
139
|
+
dragActiveRef.current = true;
|
|
140
|
+
setDragging(true);
|
|
141
|
+
setDocked(false);
|
|
142
|
+
setDragOffset({
|
|
143
|
+
x: point.x - logoPos.x,
|
|
144
|
+
y: point.y - logoPos.y,
|
|
145
|
+
});
|
|
146
|
+
setDesktopHot(false);
|
|
147
|
+
};
|
|
148
|
+
|
|
149
|
+
const handleMove = (event: any) => {
|
|
150
|
+
if (!dragging || !dragActiveRef.current) return;
|
|
151
|
+
const point = readPoint(event, stageRect);
|
|
152
|
+
const next = getDraggedLogoPosition(point, stageRect, dragOffset);
|
|
153
|
+
setLogoPos(next);
|
|
154
|
+
setDesktopHot(desktopRect ? shouldDockLogo(next, desktopRect) : false);
|
|
155
|
+
};
|
|
156
|
+
|
|
157
|
+
const finishDrag = (event: any) => {
|
|
158
|
+
if (!dragging || !dragActiveRef.current) return;
|
|
159
|
+
dragActiveRef.current = false;
|
|
160
|
+
const point = readPoint(event, stageRect);
|
|
161
|
+
const releasePos = getDraggedLogoPosition(point, stageRect, dragOffset);
|
|
162
|
+
const willDock = desktopRect ? shouldDockLogo(releasePos, desktopRect) : false;
|
|
163
|
+
|
|
164
|
+
if (willDock && desktopRect) {
|
|
165
|
+
setLogoPos(getDockedLogoPosition(desktopRect));
|
|
166
|
+
setDocked(true);
|
|
167
|
+
} else {
|
|
168
|
+
setLogoPos(LOGO_HOME);
|
|
169
|
+
setDocked(false);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
setDragging(false);
|
|
173
|
+
setDesktopHot(false);
|
|
174
|
+
};
|
|
175
|
+
|
|
176
|
+
const cancelDrag = () => {
|
|
177
|
+
if (!dragging || !dragActiveRef.current) return;
|
|
178
|
+
dragActiveRef.current = false;
|
|
179
|
+
setLogoPos(LOGO_HOME);
|
|
180
|
+
setDocked(false);
|
|
181
|
+
setDragging(false);
|
|
182
|
+
setDesktopHot(false);
|
|
183
|
+
};
|
|
184
|
+
|
|
185
|
+
return {
|
|
186
|
+
desktopHot,
|
|
187
|
+
docked,
|
|
188
|
+
dragging,
|
|
189
|
+
logoPos,
|
|
190
|
+
cancelDrag,
|
|
191
|
+
finishDrag,
|
|
192
|
+
handleDesktopLayout,
|
|
193
|
+
handleLogoDown,
|
|
194
|
+
handleMove,
|
|
195
|
+
handleStageLayout,
|
|
196
|
+
};
|
|
197
|
+
}
|
package/index.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {}
|