diff --git a/framework/voltron/example/android/app/build.gradle b/framework/voltron/example/android/app/build.gradle index ea5cbf295f8..288fe43e09b 100644 --- a/framework/voltron/example/android/app/build.gradle +++ b/framework/voltron/example/android/app/build.gradle @@ -39,7 +39,7 @@ android { defaultConfig { // TODO: Specify your own unique Application ID (https://developer.android.com/studio/build/application-id.html). - applicationId "com.example.voltron_render_example" + applicationId "com.example.voltron.voltron_example" minSdkVersion 21 targetSdkVersion 31 versionCode flutterVersionCode.toInteger() diff --git a/framework/voltron/example/android/app/src/debug/AndroidManifest.xml b/framework/voltron/example/android/app/src/debug/AndroidManifest.xml index 25bf2fcde77..cb824f8283b 100644 --- a/framework/voltron/example/android/app/src/debug/AndroidManifest.xml +++ b/framework/voltron/example/android/app/src/debug/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.example.voltron.voltron_example"> diff --git a/framework/voltron/example/android/app/src/main/AndroidManifest.xml b/framework/voltron/example/android/app/src/main/AndroidManifest.xml index 9a367bf5c7b..a013070f9cb 100644 --- a/framework/voltron/example/android/app/src/main/AndroidManifest.xml +++ b/framework/voltron/example/android/app/src/main/AndroidManifest.xml @@ -1,5 +1,5 @@ + package="com.example.voltron.voltron_example"> diff --git a/framework/voltron/example/assets/jsbundle/index.android.js b/framework/voltron/example/assets/jsbundle/index.android.js index 85c71a8b827..1524ba3284b 100644 --- a/framework/voltron/example/assets/jsbundle/index.android.js +++ b/framework/voltron/example/assets/jsbundle/index.android.js @@ -1,4 +1,4 @@ -!function(e){function t(t){for(var n,r,i=t[0],a=t[1],l=0,c=[];l0===l.indexOf(e))){var s=l.split("/"),c=s[s.length-1],h=c.split(".")[0];(u=global.__DYNAMIC_LOAD_CUSTOM_PATH_MAP__[h])&&(l=u+c)}else{var u;h=l.split(".")[0];(u=global.__DYNAMIC_LOAD_CUSTOM_PATH_MAP__[h])&&(l=u+l)}onScriptComplete=function(t){if(t instanceof Error){t.message+=", load chunk "+e+" failed, path is "+l;var n=o[e];0!==n&&n&&n[1](t),o[e]=void 0}},global.dynamicLoad(l,onScriptComplete)}return Promise.all(t)},r.m=e,r.c=n,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.oe=function(e){throw console.error(e),e};var i=(0,eval)("this").webpackJsonp=(0,eval)("this").webpackJsonp||[],a=i.push.bind(i);i.push=t,i=i.slice();for(var l=0;lh&&o[n].offset>t;)o[n].offset+=3;return"(.*)"}));for(;i=n.exec(t);){for(var m=0,g=i.index;"\\"===t.charAt(--g);)m++;m%2!=1&&((h+u===o.length||o[h+u].offset>i.index)&&o.splice(h+u,0,{name:d++,optional:!1,offset:i.index}),u++)}return t+=l?"$":"/"===t[t.length-1]?"":"(?=\\/|$)",new RegExp(t,s)};var n=/\((?!\?)/g},"./node_modules/prop-types/factoryWithThrowingShims.js":function(e,t,n){"use strict";var o=n("./node_modules/prop-types/lib/ReactPropTypesSecret.js");function r(){}function i(){}i.resetWarningCache=r,e.exports=function(){function e(e,t,n,r,i,a){if(a!==o){var l=new Error("Calling PropTypes validators directly is not supported by the `prop-types` package. Use PropTypes.checkPropTypes() to call them. Read more at http://fb.me/use-check-prop-types");throw l.name="Invariant Violation",l}}function t(){return e}e.isRequired=e;var n={array:e,bigint:e,bool:e,func:e,number:e,object:e,string:e,symbol:e,any:e,arrayOf:t,element:e,elementType:e,instanceOf:t,node:e,objectOf:t,oneOf:t,oneOfType:t,shape:t,exact:t,checkPropTypes:i,resetWarningCache:r};return n.PropTypes=n,n}},"./node_modules/prop-types/index.js":function(e,t,n){e.exports=n("./node_modules/prop-types/factoryWithThrowingShims.js")()},"./node_modules/prop-types/lib/ReactPropTypesSecret.js":function(e,t,n){"use strict";e.exports="SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED"},"./node_modules/react-is/cjs/react-is.production.min.js":function(e,t,n){"use strict"; +!function(e){function t(t){for(var n,r,i=t[0],a=t[1],l=0,c=[];l0===l.indexOf(e))){var s=l.split("/"),c=s[s.length-1],h=c.split(".")[0];(u=global.__DYNAMIC_LOAD_CUSTOM_PATH_MAP__[h])&&(l=u+c)}else{var u;h=l.split(".")[0];(u=global.__DYNAMIC_LOAD_CUSTOM_PATH_MAP__[h])&&(l=u+l)}onScriptComplete=function(t){if(t instanceof Error){t.message+=", load chunk "+e+" failed, path is "+l;var n=o[e];0!==n&&n&&n[1](t),o[e]=void 0}},global.dynamicLoad(l,onScriptComplete)}return Promise.all(t)},r.m=e,r.c=n,r.d=function(e,t,n){r.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:n})},r.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},r.t=function(e,t){if(1&t&&(e=r(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var n=Object.create(null);if(r.r(n),Object.defineProperty(n,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var o in e)r.d(n,o,function(t){return e[t]}.bind(null,o));return n},r.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return r.d(t,"a",t),t},r.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},r.p="",r.oe=function(e){throw console.error(e),e};var i=(0,eval)("this").webpackJsonp=(0,eval)("this").webpackJsonp||[],a=i.push.bind(i);i.push=t,i=i.slice();for(var l=0;l=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(l&&s){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;E(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:A(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}(e.exports);try{regeneratorRuntime=o}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=o:Function("r","regeneratorRuntime = r")(o)}},"./node_modules/webpack/buildin/global.js":function(e,t,n){e.exports=n("dll-reference hippyReactBase")("./node_modules/webpack/buildin/global.js")},"./src/app.jsx":function(e,t,n){"use strict";n.d(t,"a",(function(){return xn}));var o={};n.r(o),n.d(o,"Focusable",(function(){return H})),n.d(o,"Image",(function(){return q})),n.d(o,"ListView",(function(){return $})),n.d(o,"Modal",(function(){return re})),n.d(o,"RefreshWrapper",(function(){return Ve})),n.d(o,"PullHeaderFooter",(function(){return Re})),n.d(o,"ScrollView",(function(){return De})),n.d(o,"Text",(function(){return Le})),n.d(o,"TextInput",(function(){return Be})),n.d(o,"View",(function(){return _e})),n.d(o,"ViewPager",(function(){return Xe})),n.d(o,"WebView",(function(){return Ze})),n.d(o,"BoxShadow",(function(){return tt})),n.d(o,"WaterfallView",(function(){return rt})),n.d(o,"RippleViewAndroid",(function(){return ut}));var r={};n.r(r),n.d(r,"Animation",(function(){return ft})),n.d(r,"AsyncStorage",(function(){return pt})),n.d(r,"Clipboard",(function(){return wt})),n.d(r,"NativeEvent",(function(){return St})),n.d(r,"NetInfo",(function(){return Tt})),n.d(r,"TestModule",(function(){return Ct})),n.d(r,"WebSocket",(function(){return It})),n.d(r,"UIManagerModule",(function(){return Lt}));var i={};n.r(i),n.d(i,"Slider",(function(){return Wt})),n.d(i,"TabHost",(function(){return Nt})),n.d(i,"SetNativeProps",(function(){return Gt})),n.d(i,"DynamicImport",(function(){return Qt})),n.d(i,"Localization",(function(){return Xt})),n.d(i,"Turbo",(function(){return $t}));var a=n("./node_modules/react/index.js"),l=n.n(a),s=n("../../packages/hippy-react/dist/index.js"),c=n("./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js");function h(){return(h=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0;h--){var m=r[h];"."===m?d(r,h):".."===m?(d(r,h),c++):c&&(d(r,h),c--)}if(!l)for(;c--;c)r.unshift("..");!l||""===r[0]||r[0]&&u(r[0])||r.unshift("");var g=r.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var g="Invariant failed";function f(e,t){if(!e)throw new Error(g)}function y(e){var t=e.pathname,n=e.search,o=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(r+="#"===o.charAt(0)?o:"#"+o),r}function p(e,t,n,o){var r;"string"==typeof e?(r=function(e){var t=e||"/",n="",o="",r=t.indexOf("#");-1!==r&&(o=t.substr(r),t=t.substr(0,r));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===o?"":o}}(e)).state=t:(void 0===(r=h({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==t&&void 0===r.state&&(r.state=t));try{r.pathname=decodeURI(r.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(r.key=n),o?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=m(r.pathname,o.pathname)):r.pathname=o.pathname:r.pathname||(r.pathname="/"),r}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,o,r){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof o?o(i,r):r(!0):r(!1!==i)}else r(!0)},appendListener:function(e){var n=!0;function o(){n&&e.apply(void 0,arguments)}return t.push(o),function(){n=!1,t=t.filter((function(e){return e!==o}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),o=0;ot?n.splice(t,n.length-t,o):n.push(o),u({action:"PUSH",location:o,index:t,entries:n})}}))},replace:function(e,t){var o=p(e,t,d(),S.location);c.confirmTransitionTo(o,"REPLACE",n,(function(e){e&&(S.entries[S.index]=o,u({action:"REPLACE",location:o}))}))},go:x,goBack:function(){x(-1)},goForward:function(){x(1)},canGo:function(e){var t=S.index+e;return t>=0&&t=0||(r[n]=e[n]);return r}var C=n("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),v=n.n(C),V=function(e){var t=Object(S.a)();return t.displayName=e,t}("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(c.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return l.a.createElement(V.Provider,{children:this.props.children||null,value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}})},t}(l.a.Component);var R=function(e){function t(){for(var t,n=arguments.length,o=new Array(n),r=0;rthis.onClick(e),requestFocus:0===e,focusStyle:{backgroundColor:"red"},noFocusStyle:{backgroundColor:"blue"}},l.a.createElement(s.Text,{style:{color:"white"}},t===e?"我被点击了"+e:"没有被点击"+e)))}render(){return l.a.createElement(s.ScrollView,null,this.getRenderRow(0),this.getRenderRow(1),this.getRenderRow(2),this.getRenderRow(3),this.getRenderRow(4),this.getRenderRow(5),this.getRenderRow(6),this.getRenderRow(7),this.getRenderRow(8),this.getRenderRow(9),this.getRenderRow(10),this.getRenderRow(11),this.getRenderRow(12),this.getRenderRow(13),this.getRenderRow(14),this.getRenderRow(15),this.getRenderRow(16),this.getRenderRow(17),this.getRenderRow(18))}}var N=n.p+"assets/defaultSource.jpg",K=n.p+"assets/hippyLogoWhite.png";const U="https://user-images.githubusercontent.com/12878546/148736102-7cd9525b-aceb-41c6-a905-d3156219ef16.png",G=s.StyleSheet.create({container_style:{alignItems:"center"},image_style:{width:300,height:180,margin:16,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",borderRadius:4},info_style:{marginTop:15,marginLeft:16,fontSize:16,color:"#4c9afa"}});function q(){return l.a.createElement(s.ScrollView,{style:G.container_style},l.a.createElement(s.Text,{style:G.info_style},"Contain:"),l.a.createElement(s.Image,{style:[G.image_style],resizeMode:s.Image.resizeMode.contain,defaultSource:N,source:{uri:U},onProgress:e=>{console.log("onProgress",e)},onLoadStart:()=>{console.log("image onloadStart")},onLoad:()=>{console.log("image onLoad")},onError:e=>{console.log("image onError",e)},onLoadEnd:()=>{console.log("image onLoadEnd")}}),l.a.createElement(s.Text,{style:G.info_style},"Cover:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:U},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Text,{style:G.info_style},"Center:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:U},resizeMode:s.Image.resizeMode.center}),l.a.createElement(s.Text,{style:G.info_style},"CapInsets:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:U},capInsets:{top:50,left:50,bottom:50,right:50},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Text,{style:G.info_style},"TintColor:"),l.a.createElement(s.Image,{style:[G.image_style,{tintColor:"#4c9afa99"}],defaultSource:N,source:{uri:K},resizeMode:s.Image.resizeMode.center}),l.a.createElement(s.Text,{style:G.info_style},"Cover GIF:"),l.a.createElement(s.Image,{style:[G.image_style],resizeMode:s.Image.resizeMode.cover,defaultSource:N,source:{uri:"https://user-images.githubusercontent.com/12878546/148736255-7193f89e-9caf-49c0-86b0-548209506bd6.gif"},onLoadEnd:()=>{console.log("gif onLoadEnd")}}))}const Q=[{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5}],Y=s.StyleSheet.create({container:{backgroundColor:"#fff",collapsable:!1},itemContainer:{padding:12},separatorLine:{marginLeft:12,marginRight:12,height:1,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});function X({index:e}){return l.a.createElement(s.View,{style:Y.container,onClickCapture:e=>{console.log("onClickCapture style1",e.target.nodeId,e.currentTarget.nodeId)},onTouchDown:e=>(e.stopPropagation(),console.log("onTouchDown style1",e.target.nodeId,e.currentTarget.nodeId),!1),onClick:e=>(console.log("click style1",e.target.nodeId,e.currentTarget.nodeId),!1)},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 1 UI"))}function J({index:e}){return l.a.createElement(s.View,{style:Y.container},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 2 UI"))}function Z({index:e}){return l.a.createElement(s.View,{style:Y.container},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 5 UI"))}class $ extends l.a.Component{constructor(e){super(e),this.state={dataSource:Q,fetchingDataFlag:!1,horizontal:void 0},this.delText="Delete",this.mockFetchData=this.mockFetchData.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.onEndReached=this.onEndReached.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.getRowStyle=this.getRowStyle.bind(this),this.onDelete=this.onDelete.bind(this),this.onAppear=this.onAppear.bind(this),this.onDisappear=this.onDisappear.bind(this),this.onWillAppear=this.onWillAppear.bind(this),this.onWillDisappear=this.onWillDisappear.bind(this),this.rowShouldSticky=this.rowShouldSticky.bind(this),this.onScroll=this.onScroll.bind(this)}onDelete({index:e}){const{dataSource:t}=this.state,n=t.filter((t,n)=>e!==n);this.setState({dataSource:n})}async onEndReached(){const{dataSource:e,fetchingDataFlag:t}=this.state;if(t)return;this.setState({fetchingDataFlag:!0,dataSource:e.concat([{style:100}])});const n=await this.mockFetchData(),o=e.concat(n);this.setState({dataSource:o,fetchingDataFlag:!1})}onAppear(e){console.log("onAppear",e)}onScroll(e){console.log("onScroll",e.contentOffset.y),e.contentOffset.y<=0?this.topReached||(this.topReached=!0,console.log("onTopReached")):this.topReached=!1}onDisappear(e){console.log("onDisappear",e)}onWillAppear(e){console.log("onWillAppear",e)}onWillDisappear(e){console.log("onWillDisappear",e)}rowShouldSticky(e){return 2===e}getRowType(e){return this.state.dataSource[e].style}getRowStyle(){const{horizontal:e}=this.state;return e?{width:100,height:50}:{}}getRowKey(e){return"row-"+e}getRenderRow(e){const{dataSource:t}=this.state;let n=null;const o=t[e],r=t.length===e+1;switch(o.style){case 1:n=l.a.createElement(X,{index:e});break;case 2:n=l.a.createElement(J,{index:e});break;case 5:n=l.a.createElement(Z,{index:e});break;case 100:n=l.a.createElement(s.Text,{style:Y.loading},"Loading now...")}return l.a.createElement(s.View,{style:Y.container,onClickCapture:e=>{console.log("onClickCapture style outer",e.target.nodeId,e.currentTarget.nodeId)},onTouchDown:e=>(console.log("onTouchDown style outer",e.target.nodeId,e.currentTarget.nodeId),!1),onClick:e=>(console.log("click style outer",e.target.nodeId,e.currentTarget.nodeId),!1)},l.a.createElement(s.View,{style:Y.itemContainer},n),r?null:l.a.createElement(s.View,{style:Y.separatorLine}))}mockFetchData(){return new Promise(e=>{setTimeout(()=>e(Q),600)})}changeDirection(){this.setState({horizontal:void 0===this.state.horizontal||void 0})}render(){const{dataSource:e,horizontal:t}=this.state;return l.a.createElement(s.View,{style:{flex:1,collapsable:!1}},l.a.createElement(s.ListView,{onTouchDown:e=>{console.log("onTouchDown ListView",e.target.nodeId,e.currentTarget.nodeId)},onClickCapture:e=>{console.log("onClickCapture listview",e.target.nodeId,e.currentTarget.nodeId)},onClick:e=>(console.log("click listview",e.target.nodeId,e.currentTarget.nodeId),!0),bounces:!0,horizontal:t,style:[{backgroundColor:"#ffffff"},t?{height:50}:{flex:1}],numberOfRows:e.length,renderRow:this.getRenderRow,onEndReached:this.onEndReached,getRowType:this.getRowType,onDelete:this.onDelete,delText:this.delText,editable:!0,getRowStyle:this.getRowStyle,getRowKey:this.getRowKey,initialListSize:15,rowShouldSticky:this.rowShouldSticky,onAppear:this.onAppear,onDisappear:this.onDisappear,onWillAppear:this.onWillAppear,onWillDisappear:this.onWillDisappear,onScroll:this.onScroll,scrollEventThrottle:1e3}),"android"===s.Platform.OS?l.a.createElement(s.View,{onClick:()=>this.changeDirection(),style:{position:"absolute",right:20,bottom:20,width:67,height:67,borderRadius:30,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:3,boxShadowOffsetY:3,boxShadowColor:"#4c9afa"}},l.a.createElement(s.View,{style:{width:60,height:60,borderRadius:30,backgroundColor:"#4c9afa",display:"flex",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white"}},"切换方向"))):null)}}const ee="#4c9afa",te="#4c9afa",ne="white",oe=s.StyleSheet.create({container:{flex:1,flexDirection:"row",justifyContent:"center"},buttonView:{borderColor:ee,borderWidth:2,borderStyle:"solid",borderRadius:8,justifyContent:"center",alignItems:"center",width:250,height:50,marginTop:30},buttonText:{fontSize:20,color:ee,textAlign:"center",textAlignVertical:"center"}});class re extends l.a.Component{constructor(e){super(e),this.state={visible:!1,press:!1},this.show=this.show.bind(this),this.hide=this.hide.bind(this)}feedback(e){this.setState({press:"in"===e})}show(){this.setState({visible:!0})}hide(){this.setState({visible:!1})}render(){const{press:e,visible:t}=this.state;return l.a.createElement(s.ScrollView,null,l.a.createElement(s.View,{style:oe.container},l.a.createElement(s.View,{onPressIn:()=>this.feedback("in"),onPressOut:()=>this.feedback("out"),onClick:this.show,style:[oe.buttonView,{borderColor:ee,opacity:e?.5:1}]},l.a.createElement(s.Text,{style:[oe.buttonText,{color:ee}]},"点击弹出浮层"))),l.a.createElement(s.Modal,{transparent:!0,animationType:"slide_fade",visible:t,onRequestClose:()=>{},supportedOrientations:["portrait"],immersionStatusBar:!0},l.a.createElement(s.View,{style:{flex:1,flexDirection:"row",justifyContent:"center",backgroundColor:"#4c9afa88"}},l.a.createElement(s.View,{onClick:this.hide,style:{width:200,height:200,backgroundColor:te,marginTop:300,flexDirection:"row",justifyContent:"center"}},l.a.createElement(s.Text,{style:{color:ne,fontSize:22,marginTop:80}},"点击关闭浮层")))))}}const ie="https://user-images.githubusercontent.com/12878546/148736841-59ce5d1c-8010-46dc-8632-01c380159237.jpg",ae={style:1,itemBean:{title:"非洲总统出行真大牌,美制武装直升机和中国潜艇为其保驾",picList:[ie,ie,ie],subInfo:["三图评论","11评"]}},le={style:2,itemBean:{title:"彼得·泰尔:认知未来是投资人的谋生之道",picUrl:"https://user-images.githubusercontent.com/12878546/148736850-4fc13304-25d4-4b6a-ada3-cbf0745666f5.jpg",subInfo:["左文右图"]}},se={style:5,itemBean:{title:"愤怒!美官员扬言:“不让中国拿走南海的岛屿,南海岛礁不属于中国”?",picUrl:"https://user-images.githubusercontent.com/12878546/148736859-29e3a5b2-612a-4fdd-ad21-dc5d29fa538f.jpg",subInfo:["六眼神魔 5234播放"]}};var ce=[se,ae,le,ae,le,ae,le,se,ae],he=n("./node_modules/@babel/runtime/helpers/extends.js"),ue=n.n(he);var de={getScreenWidth(){const e=s.Dimensions.get("screen").width,t=s.Dimensions.get("screen").height,n=e>t?t:e;return Math.floor(n)},uniqueArray(e){const t=[];for(let n=0;n=812&&s.PixelRatio.get()>=2&&(e=!0),e}};const me=(de.getScreenWidth()-24-12)/3,ge=Math.floor(me/1.35),fe=s.StyleSheet.create({imageContainer:{flexDirection:"row",justifyContent:"center",height:ge,marginTop:8},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},image:{width:me,height:ge},title:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24,color:"#242424"},tagLine:{marginTop:8,height:20,flexDirection:"row",justifyContent:"flex-start"}});function ye(e){const{itemBean:{title:t,picList:n}}=e;let{itemBean:{subInfo:o}}=e,r=null;if(o&&o.length){o=de.uniqueArray(o);const e=o.join(" ");r=l.a.createElement(s.Text,{style:fe.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,ue()({},e,{style:{collapsable:!1}}),l.a.createElement(s.Text,{style:[fe.title],numberOfLines:2,enableScale:!0},t),l.a.createElement(s.View,{style:fe.imageContainer},l.a.createElement(s.Image,{style:fe.image,source:{uri:n[0]},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Image,{style:[fe.image,{marginLeft:6,marginRight:6}],source:{uri:n[1]},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Image,{style:fe.image,source:{uri:n[2]},resizeMode:s.Image.resizeMode.cover})),r?l.a.createElement(s.View,{style:fe.tagLine},r):null)}const pe=de.getScreenWidth()-24,be=Math.floor(pe-12)/3,we=Math.floor(be/1.35),xe=s.StyleSheet.create({container:{flexDirection:"row",justifyContent:"space-between",height:we},leftContainer:{flex:1,flexDirection:"column",justifyContent:"center",marginRight:8},imageContainer:{width:be,height:we},image:{width:be,height:we},title:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24},tagLine:{marginTop:8,height:20,flexDirection:"row",justifyContent:"flex-start"},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});function Se(e){if("undefined"===e)return null;const{itemBean:t}=e;if(!t)return null;let n=null;const{title:o,picUrl:r}=t;let{subInfo:i}=t;if(i&&i.length){i=de.uniqueArray(i);const e=i.join(" ");n=l.a.createElement(s.Text,{style:xe.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,ue()({},e,{style:xe.container}),l.a.createElement(s.View,{style:xe.leftContainer},l.a.createElement(s.Text,{style:xe.title,numberOfLines:2,enableScale:!0},o),n?l.a.createElement(s.View,{style:xe.tagLine},n):null),l.a.createElement(s.View,{style:xe.imageContainer},l.a.createElement(s.Image,{resizeMode:s.Image.resizeMode.cover,style:xe.image,source:{uri:r}})))}const Ee=de.getScreenWidth()-24,Te=Math.floor(188*Ee/336),Ae=s.StyleSheet.create({text:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24,color:"#242424"},playerView:{marginTop:8,alignItems:"center",width:Ee,height:Te,alignSelf:"center"},image:{width:Ee,height:Te},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},tagLine:{marginTop:8,flexDirection:"row",justifyContent:"space-between",alignItems:"center"}});function Ce(e){if("undefined"===e)return null;const{itemBean:t}=e;if(!t)return null;const{title:n,picUrl:o}=t;let{subInfo:r}=t,i=null;if(r&&r.length){r=de.uniqueArray(r);const e=r.join(" ");i=l.a.createElement(s.Text,{style:Ae.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,e,l.a.createElement(s.Text,{style:Ae.text,numberOfLines:2,enableScale:!0},n),l.a.createElement(s.View,{style:Ae.playerView},l.a.createElement(s.Image,{style:Ae.image,source:{uri:o},resizeMode:s.Image.resizeMode.cover})),i?l.a.createElement(s.View,{style:Ae.tagLine},i):null)}const ve=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},spliter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});class Ve extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],loadingState:"正在加载..."},this.fetchTimes=0,this.mockFetchData=this.mockFetchData.bind(this),this.onRefresh=this.onRefresh.bind(this),this.getRefresh=this.getRefresh.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.onEndReached=this.onEndReached.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e})}async onEndReached(){const{dataSource:e,fetchingDataFlag:t}=this.state;if(t)return;this.setState({fetchingDataFlag:!0,dataSource:e.concat([{style:100}])});const n=await this.mockFetchData(),o=e[e.length-1];o&&100===o.style&&e.pop();const r=e.concat(n);this.setState({dataSource:r})}onRefresh(){setTimeout(async()=>{const e=await this.mockFetchData();this.setState({dataSource:e}),this.refresh.refreshComplected()},1e3)}onClickItem(e){console.log(`item: ${e} is clicked..`)}getRenderRow(e){const{dataSource:t,loadingState:n}=this.state;let o=null;const r=t[e],i=t.length===e+1;switch(r.style){case 1:o=l.a.createElement(ye,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 2:o=l.a.createElement(Se,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 5:o=l.a.createElement(Ce,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 100:o=l.a.createElement(s.Text,{style:ve.loading},n)}return l.a.createElement(s.View,{style:ve.container},l.a.createElement(s.View,{style:ve.itemContainer},o),i?null:l.a.createElement(s.View,{style:ve.spliter}))}getRowType(e){return this.state.dataSource[e].style}getRowKey(e){return"row-"+e}getRefresh(){return l.a.createElement(s.View,{style:{flex:1,height:30}},l.a.createElement(s.Text,{style:{flex:1,textAlign:"center"}},"下拉刷新中..."))}mockFetchData(){return new Promise(e=>{setTimeout(()=>(this.setState({fetchingDataFlag:!1}),this.fetchTimes+=1,this.fetchTimes>=50?e([]):e(ce)),600)})}render(){const{dataSource:e}=this.state;return l.a.createElement(s.RefreshWrapper,{ref:e=>{this.refresh=e},style:{flex:1},onRefresh:this.onRefresh,bounceTime:100,getRefresh:this.getRefresh},l.a.createElement(s.ListView,{style:{flex:1,backgroundColor:"#ffffff"},numberOfRows:e.length,renderRow:this.getRenderRow,onEndReached:this.onEndReached,getRowType:this.getRowType,getRowKey:this.getRowKey}))}}const ke=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},splitter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},pullContainer:{flex:1,height:50,backgroundColor:"#4c9afa"},pullContent:{lineHeight:50,color:"white",height:50,textAlign:"center"},pullFooter:{height:40,flex:1,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}});class Re extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],headerRefreshText:"继续下拉触发刷新",footerRefreshText:"正在加载...",horizontal:void 0},this.loadMoreDataFlag=!1,this.fetchingDataFlag=!1,this.mockFetchData=this.mockFetchData.bind(this),this.renderRow=this.renderRow.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.getHeaderStyle=this.getHeaderStyle.bind(this),this.getFooterStyle=this.getFooterStyle.bind(this),this.getRowStyle=this.getRowStyle.bind(this),this.renderPullHeader=this.renderPullHeader.bind(this),this.renderPullFooter=this.renderPullFooter.bind(this),this.onEndReached=this.onEndReached.bind(this),this.onHeaderReleased=this.onHeaderReleased.bind(this),this.onHeaderPulling=this.onHeaderPulling.bind(this),this.onFooterPulling=this.onFooterPulling.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e}),this.listView.collapsePullHeader()}mockFetchData(){return new Promise(e=>{setTimeout(()=>e(ce),800)})}async onEndReached(){const{dataSource:e}=this.state;if(this.loadMoreDataFlag)return;this.loadMoreDataFlag=!0,this.setState({footerRefreshText:"加载更多..."});let t=[];try{t=await this.mockFetchData()}catch(e){}0===t.length&&this.setState({footerRefreshText:"没有更多数据"});const n=[...e,...t];this.setState({dataSource:n}),this.loadMoreDataFlag=!1,this.listView.collapsePullFooter()}async onHeaderReleased(){if(this.fetchingDataFlag)return;this.fetchingDataFlag=!0,console.log("onHeaderReleased"),this.setState({headerRefreshText:"刷新数据中,请稍等"});let e=[];try{e=await this.mockFetchData(),e=e.reverse()}catch(e){}this.fetchingDataFlag=!1,this.setState({dataSource:e,headerRefreshText:"2秒后收起"},()=>{this.listView.collapsePullHeader({time:2e3})})}onHeaderPulling(e){this.fetchingDataFlag||(console.log("onHeaderPulling",e.contentOffset),e.contentOffset>ke.pullContent.height?this.setState({headerRefreshText:"松手,即可触发刷新"}):this.setState({headerRefreshText:"继续下拉,触发刷新"}))}onFooterPulling(e){console.log("onFooterPulling",e)}onClickItem(e,t){console.log(`item: ${e} is clicked..`,t.target.nodeId,t.currentTarget.nodeId)}getRowType(e){return this.state.dataSource[e].style}getRowKey(e){return"row-"+e}getHeaderStyle(){const{horizontal:e}=this.state;return e?{width:50}:{}}renderPullHeader(){const{headerRefreshText:e,horizontal:t}=this.state;return t?l.a.createElement(s.View,{style:{width:40,height:300,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{lineHeight:25,color:"white",width:40,paddingHorizontal:15}},e)):l.a.createElement(s.View,{style:ke.pullContainer},l.a.createElement(s.Text,{style:ke.pullContent},e))}getFooterStyle(){const{horizontal:e}=this.state;return e?{width:40}:{}}renderPullFooter(){const{horizontal:e}=this.state;return e?l.a.createElement(s.View,{style:{width:40,height:300,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white",lineHeight:25,width:40,paddingHorizontal:15}},this.state.footerRefreshText)):l.a.createElement(s.View,{style:ke.pullFooter},l.a.createElement(s.Text,{style:{color:"white"}},this.state.footerRefreshText))}renderRow(e){const{dataSource:t}=this.state;let n=null;const o=t[e],r=t.length===e+1;switch(o.style){case 1:n=l.a.createElement(ye,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)});break;case 2:n=l.a.createElement(Se,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)});break;case 5:n=l.a.createElement(Ce,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)})}return l.a.createElement(s.View,{style:ke.container},l.a.createElement(s.View,{style:ke.itemContainer},n),r?null:l.a.createElement(s.View,{style:ke.splitter}))}getRowStyle(){const{horizontal:e}=this.state;return e?{height:300,justifyContent:"center",alignItems:"center"}:{}}changeDirection(){this.setState({horizontal:void 0===this.state.horizontal||void 0})}render(){const{dataSource:e,horizontal:t}=this.state;return l.a.createElement(s.View,{style:{flex:1,collapsable:!1}},l.a.createElement(s.ListView,{horizontal:t,onClick:e=>console.log("ListView",e.target.nodeId,e.currentTarget.nodeId),ref:e=>{this.listView=e},style:[{backgroundColor:"#ffffff"},t?{height:300}:{flex:1}],numberOfRows:e.length,getRowType:this.getRowType,getRowKey:this.getRowKey,getHeaderStyle:this.getHeaderStyle,getFooterStyle:this.getFooterStyle,getRowStyle:this.getRowStyle,renderRow:this.renderRow,renderPullHeader:this.renderPullHeader,renderPullFooter:this.renderPullFooter,onHeaderReleased:this.onHeaderReleased,onHeaderPulling:this.onHeaderPulling,onFooterReleased:this.onEndReached,onFooterPulling:this.onFooterPulling}),"android"===s.Platform.OS?l.a.createElement(s.View,{onClick:()=>this.changeDirection(),style:{position:"absolute",right:20,bottom:20,width:67,height:67,borderRadius:30,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:3,boxShadowOffsetY:3,boxShadowColor:"#4c9afa"}},l.a.createElement(s.View,{style:{width:60,height:60,borderRadius:30,backgroundColor:"#4c9afa",display:"flex",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white"}},"切换方向"))):null)}}const Ie=s.StyleSheet.create({itemStyle:{width:100,height:100,lineHeight:100,borderWidth:1,borderStyle:"solid",borderColor:"#4c9afa",fontSize:80,margin:20,color:"#4c9afa",textAlign:"center"},verticalScrollView:{height:300,width:140,margin:20,borderColor:"#eee",borderWidth:1,borderStyle:"solid"},itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10}});function De(){return l.a.createElement(s.ScrollView,null,l.a.createElement(s.View,{style:Ie.itemTitle},l.a.createElement(s.Text,null,"Horizontal ScrollView")),l.a.createElement(s.View,null,l.a.createElement(s.ScrollView,{horizontal:!0,bounces:!0,showsHorizontalScrollIndicator:!1,showScrollIndicator:!1},l.a.createElement(s.Text,{style:Ie.itemStyle},"A"),l.a.createElement(s.Text,{style:Ie.itemStyle},"B"),l.a.createElement(s.Text,{style:Ie.itemStyle},"C"),l.a.createElement(s.Text,{style:Ie.itemStyle},"D"),l.a.createElement(s.Text,{style:Ie.itemStyle},"E"),l.a.createElement(s.Text,{style:Ie.itemStyle},"F"),l.a.createElement(s.Text,{style:Ie.itemStyle},"A"))),l.a.createElement(s.View,{style:Ie.itemTitle},l.a.createElement(s.Text,null,"Vertical ScrollView")),l.a.createElement(s.ScrollView,{bounces:!0,horizontal:!1,style:Ie.verticalScrollView,showScrollIndicator:!1,showsVerticalScrollIndicator:!1},l.a.createElement(s.Text,{style:Ie.itemStyle},"A"),l.a.createElement(s.Text,{style:Ie.itemStyle},"B"),l.a.createElement(s.Text,{style:Ie.itemStyle},"C"),l.a.createElement(s.Text,{style:Ie.itemStyle},"D"),l.a.createElement(s.Text,{style:Ie.itemStyle},"E"),l.a.createElement(s.Text,{style:Ie.itemStyle},"F"),l.a.createElement(s.Text,{style:Ie.itemStyle},"A")))}const Oe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAANlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3dmhyAAAAEXRSTlMA9QlZEMPc2Mmmj2VkLEJ4Rsx+pEgAAAChSURBVCjPjVLtEsMgCDOAdbbaNu//sttVPes+zvGD8wgQCLp/TORbUGMAQtQ3UBeSAMlF7/GV9Cmb5eTJ9R7H1t4bOqLE3rN2UCvvwpLfarhILfDjJL6WRKaXfzxc84nxAgLzCGSGiwKwsZUB8hPorZwUV1s1cnGKw+yAOrnI+7hatNIybl9Q3OkBfzopCw6SmDVJJiJ+yD451OS0/TNM7QnuAAbvCG0TSAAAAABJRU5ErkJggg==",Pe=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},itemContent:{alignItems:"flex-start",justifyContent:"center",borderWidth:1,borderStyle:"solid",borderRadius:2,borderColor:"#e0e0e0",backgroundColor:"#ffffff",padding:10},normalText:{fontSize:14,lineHeight:18,color:"black"},buttonBar:{flexDirection:"row",marginTop:10,flexGrow:1},button:{height:24,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",flexGrow:1,flexShrink:1},buttonText:{lineHeight:24,textAlign:"center",paddingHorizontal:20},customFont:{color:"#0052d9",fontSize:32,fontFamily:"TTTGB"}});let je=0;class Le extends l.a.Component{constructor(e){super(e),this.state={fontSize:16,textShadowColor:"grey",textShadowOffset:{x:1,y:1},numberOfLines:2,ellipsizeMode:void 0},this.incrementFontSize=this.incrementFontSize.bind(this),this.decrementFontSize=this.decrementFontSize.bind(this),this.incrementLine=this.incrementLine.bind(this),this.decrementLine=this.decrementLine.bind(this),this.changeMode=this.changeMode.bind(this)}incrementFontSize(){const{fontSize:e}=this.state;24!==e&&this.setState({fontSize:e+1})}decrementFontSize(){const{fontSize:e}=this.state;6!==e&&this.setState({fontSize:e-1})}incrementLine(){const{numberOfLines:e}=this.state;e<6&&this.setState({numberOfLines:e+1})}decrementLine(){const{numberOfLines:e}=this.state;e>1&&this.setState({numberOfLines:e-1})}changeMode(e){this.setState({ellipsizeMode:e})}changeBreakStrategy(e){this.setState({breakStrategy:e})}render(){const{fontSize:e,textShadowColor:t,textShadowOffset:n,numberOfLines:o,ellipsizeMode:r,breakStrategy:i}=this.state,a=e=>l.a.createElement(s.View,{style:Pe.itemTitle},l.a.createElement(s.Text,{style:!0},e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},a("shadow"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:60}],onClick:()=>{let e="red",t={x:10,y:1};je%2==1&&(e="grey",t={x:1,y:1}),je+=1,this.setState({textShadowColor:e,textShadowOffset:t})}},l.a.createElement(s.Text,{style:[Pe.normalText,{color:"#242424",textShadowOffset:n,textShadowRadius:3,textShadowColor:t}]},"Text shadow is grey with radius 3 and offset 1")),a("color"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:80}]},l.a.createElement(s.Text,{style:[Pe.normalText,{color:"#242424"}]},"Text color is black"),l.a.createElement(s.Text,{style:[Pe.normalText,{color:"blue"}]},"Text color is blue"),l.a.createElement(s.Text,{style:[Pe.normalText,{color:"rgb(228,61,36)"}]},"This is red")),a("fontSize"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{style:[Pe.normalText,{fontSize:e}]},"Text fontSize is "+e),l.a.createElement(s.View,{style:Pe.button,onClick:this.incrementFontSize},l.a.createElement(s.Text,{style:Pe.buttonText},"放大字体")),l.a.createElement(s.View,{style:Pe.button,onClick:this.decrementFontSize},l.a.createElement(s.Text,{style:Pe.buttonText},"缩小字体"))),a("fontStyle"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{style:[Pe.normalText,{fontStyle:"normal"}]},"Text fontStyle is normal"),l.a.createElement(s.Text,{style:[Pe.normalText,{fontStyle:"italic"}]},"Text fontStyle is italic")),a("numberOfLines and ellipsizeMode"),l.a.createElement(s.View,{style:[Pe.itemContent]},l.a.createElement(s.Text,{style:[Pe.normalText,{marginBottom:10}]},`numberOfLines=${o} | ellipsizeMode=${r}`),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{lineHeight:void 0,backgroundColor:"#4c9afa",marginBottom:10,paddingHorizontal:10,paddingVertical:5}]},l.a.createElement(s.Text,{style:{fontSize:19,color:"white"}},"先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。"),l.a.createElement(s.Text,null,"然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。")),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{backgroundColor:"#4c9afa",marginBottom:10,color:"white",paddingHorizontal:10,paddingVertical:5}]},"line 1\n\nline 3\n\nline 5"),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{lineHeight:void 0,backgroundColor:"#4c9afa",marginBottom:10,paddingHorizontal:10,paddingVertical:5}]},l.a.createElement(s.Image,{style:{width:24,height:24},source:{uri:Oe}}),l.a.createElement(s.Image,{style:{width:24,height:24},source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAANlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3dmhyAAAAEnRSTlMA/QpX7WQU2m27pi3Ej9KEQXaD5HhjAAAAqklEQVQoz41SWxLDIAh0RcFXTHL/yzZSO01LMpP9WJEVUNA9gfdXTioCSKE/kQQTQmf/ArRYva+xAcuPP37seFII2L7FN4BmXdHzlEPIpDHiZ0A7eIViPcw2QwqipkvMSdNEFBUE1bmMNOyE7FyFaIkAP4jHhhG80lvgkzBODTKpwhRMcexuR7fXzcp08UDq6GRbootp4oRtO3NNpd4NKtnR9hB6oaefweIFQU0EfnGDRoQAAAAASUVORK5CYII="}}),l.a.createElement(s.Text,null,"Text + Attachment")),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:this.incrementLine},l.a.createElement(s.Text,{style:Pe.buttonText},"加一行")),l.a.createElement(s.View,{style:Pe.button,onClick:this.decrementLine},l.a.createElement(s.Text,{style:Pe.buttonText},"减一行"))),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("clip")},l.a.createElement(s.Text,{style:Pe.buttonText},"clip")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("head")},l.a.createElement(s.Text,{style:Pe.buttonText},"head")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("middle")},l.a.createElement(s.Text,{style:Pe.buttonText},"middle")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("tail")},l.a.createElement(s.Text,{style:Pe.buttonText},"tail")))),a("textDecoration"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{textDecorationLine:"underline",textDecorationStyle:"dotted"}]},"underline"),l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{textDecorationLine:"line-through",textDecorationColor:"red"}]},"line-through")),a("LetterSpacing"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{letterSpacing:-1}]},"Text width letter-spacing -1"),l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{letterSpacing:5}]},"Text width letter-spacing 5")),a("Nest Text"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:3},l.a.createElement(s.Text,{numberOfLines:3,style:[Pe.normalText,{color:"#4c9afa"}]},"#SpiderMan#"),l.a.createElement(s.Text,{numberOfLines:3,style:Pe.normalText},"Hello world, I am a spider man and I have five friends in other universe."))),a("Custom font"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:Pe.customFont},"Hippy 跨端框架")),a("Text Nested"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:150}]},l.a.createElement(s.Text,{style:{height:100,lineHeight:50}},l.a.createElement(s.Text,{numberOfLines:1,style:Pe.normalText},"后面有张图片"),l.a.createElement(s.Image,{style:{width:70,height:35},source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAtCAMAAABmgJ64AAAAOVBMVEX/Rx8AAAD/QiL/Tif/QyH/RR//QiH/QiP/RCD/QSL/Qxz/QyH/QiL/QiD/QyL/QiL/QiH/QyH/QiLwirLUAAAAEnRSTlMZAF4OTC7DrWzjI4iietrRk0EEv/0YAAAB0UlEQVRYw72Y0Y6sIAxAKwUFlFH7/x97izNXF2lN1pU5D800jD2hJAJCdwYZuAUyVbmToKh903IhQHgErAVH+ccV0KI+G2oBPMxJgPA4WAigAT8F0IRDgNAE3ARyfeMFDGSc3YHVFkTBAHKDAgkEyHjacae/GTjxFqAo8NbakXrL9DRy9B+BCQwRcXR9OBKmEuAmAFFgcy0agBnIc1xZsMPOI5loAoUsQFmQjDEL9YbpaeGYBMGRKKAuqFEFL/JXApCw/zFEZk9qgbLGBx0gXLISxT25IUBREEgh1II1fph/IViGnZnCcDDVAgfgVg6gCy6ZaClySbDQpAl04vCGaB4+xGcFRK8CLvW0IBb5bQGqAlNwU4C6oEIVTLTcmoEr0AWcpKsZ/H0NAtkLQffnFjkOqiC/TTWBL9AFCwXQBHgI7rXImMgjCZwFa50s6DRBXyALmIECuMASiWNPFgRTgSJwM+XW8PDCmbwndzdaNL8FMYXPNjASDVChnIvWlBI/MKadPV952HszbmXtRERhhQ0vGFA52SVSSVt7MjHvxfRK8cdTpqovn02dUcltMrwiKf+wQ1FxXKCk9en6e/eDNnP44h2thQEb35O/etNv/q3iHza+KuhqqhZAAAAAAElFTkSuQmCC"}}),l.a.createElement(s.Text,{numberOfLines:1,style:Pe.customFont},"前面有张图片")),l.a.createElement(s.View,{style:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:10,paddingVertical:5,backgroundColor:"#4c9afa"}},l.a.createElement(s.Image,{style:{width:24,height:24,alignSelf:"center"},source:{uri:Oe}}),l.a.createElement(s.Text,{style:{fontSize:15,alignItems:"center",justifyContent:"center"}},"Image+Text"))),"android"===s.Platform.OS&&a("breakStrategy"),"android"===s.Platform.OS&&l.a.createElement(s.View,{style:Pe.itemContent},l.a.createElement(s.Text,{style:[Pe.normalText,{borderWidth:1,borderColor:"gray"}],breakStrategy:i},"The 58-letter name Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is the name of a town on Anglesey, an island of Wales."),l.a.createElement(s.Text,{style:Pe.normalText},"breakStrategy: "+i),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("simple")},l.a.createElement(s.Text,{style:Pe.buttonText},"simple")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("high_quality")},l.a.createElement(s.Text,{style:Pe.buttonText},"high_quality")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("balanced")},l.a.createElement(s.Text,{style:Pe.buttonText},"balanced")))))}}const Me=s.StyleSheet.create({container_style:{padding:10},input_style:{width:300,marginVertical:10,fontSize:16,color:"#242424",height:30,lineHeight:30},input_style_block:{height:100,lineHeight:20,fontSize:15,borderWidth:1,borderColor:"gray",underlineColorAndroid:"transparent"},itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},itemContent:{marginTop:10},buttonBar:{flexDirection:"row",marginTop:10,flexGrow:1},button:{width:200,height:24,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",marginTop:5,marginBottom:5,flexGrow:1,flexShrink:1}});class Be extends a.Component{constructor(e){super(e),this.state={textContent:""},this.changeInputContent=this.changeInputContent.bind(this),this.focus=this.focus.bind(this),this.blur=this.blur.bind(this)}changeInputContent(){this.setState({textContent:"当前时间毫秒:"+Date.now()})}focus(){this.input.focus()}blur(){this.input.blur()}async onFocus(){const e=await this.input.isFocused();this.setState({event:"onFocus",isFocused:e})}async onBlur(){const e=await this.input.isFocused();this.setState({event:"onBlur",isFocused:e})}changeBreakStrategy(e){this.setState({breakStrategy:e})}render(){const{textContent:e,event:t,isFocused:n,breakStrategy:o}=this.state,r=e=>l.a.createElement(s.View,{style:Me.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:Me.container_style},r("text"),l.a.createElement(s.TextInput,{ref:e=>{this.input=e},style:Me.input_style,caretColor:"yellow",underlineColorAndroid:"grey",placeholderTextColor:"#4c9afa",placeholder:"text",defaultValue:e,onBlur:()=>this.onBlur(),onFocus:()=>this.onFocus()}),l.a.createElement(s.Text,{style:Me.itemContent},`事件: ${t} | isFocused: ${n}`),l.a.createElement(s.View,{style:Me.button,onClick:this.changeInputContent},l.a.createElement(s.Text,null,"点击改变输入框内容")),l.a.createElement(s.View,{style:Me.button,onClick:this.focus},l.a.createElement(s.Text,null,"Focus")),l.a.createElement(s.View,{style:Me.button,onClick:this.blur},l.a.createElement(s.Text,null,"Blur")),r("numeric"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"numeric",placeholder:"numeric"}),r("phone-pad"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"phone-pad",placeholder:"phone-pad"}),r("password"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"password",placeholder:"Password",multiline:!1}),r("maxLength"),l.a.createElement(s.TextInput,{caretColor:"yellow",style:Me.input_style,placeholder:"maxLength=5",maxLength:5}),"android"===s.Platform.OS&&r("breakStrategy"),"android"===s.Platform.OS&&l.a.createElement(l.a.Fragment,null,l.a.createElement(s.TextInput,{style:Me.input_style_block,breakStrategy:o,defaultValue:"The 58-letter name Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is the name of a town on Anglesey, an island of Wales."}),l.a.createElement(s.Text,{style:{}},"breakStrategy: "+o),l.a.createElement(s.View,{style:Me.buttonBar},l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("simple")},l.a.createElement(s.Text,{style:Me.buttonText},"simple")),l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("high_quality")},l.a.createElement(s.Text,{style:Me.buttonText},"high_quality")),l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("balanced")},l.a.createElement(s.Text,{style:Me.buttonText},"balanced")))))}}var ze=n.p+"assets/defaultSource.jpg";const Fe=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},rectangle:{width:160,height:80,marginVertical:10},bigRectangle:{width:200,height:100,borderColor:"#eee",borderWidth:1,borderStyle:"solid",padding:10,marginVertical:10},smallRectangle:{width:40,height:40,borderRadius:10}});function _e(){const e=e=>l.a.createElement(s.View,{style:Fe.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},e("backgroundColor"),l.a.createElement(s.View,{style:[Fe.rectangle,{backgroundColor:"#4c9afa"}]}),e("backgroundImage"),l.a.createElement(s.View,{style:[Fe.rectangle,{alignItems:"center",justifyContent:"center",marginTop:20,backgroundImage:ze}],accessible:!0,accessibilityLabel:"背景图",accessibilityRole:"image",accessibilityState:{disabled:!1,selected:!0,checked:!1,expanded:!1,busy:!0},accessibilityValue:{min:1,max:10,now:5,text:"middle"}},l.a.createElement(s.Text,{style:{color:"white"}},"背景图")),e("backgroundImage linear-gradient"),l.a.createElement(s.View,{style:[Fe.rectangle,{alignItems:"center",justifyContent:"center",marginTop:20,borderWidth:2,borderStyle:"solid",borderColor:"black",borderRadius:2,backgroundImage:"linear-gradient(30deg, blue 10%, yellow 40%, red 50%);"}]},l.a.createElement(s.Text,{style:{color:"white"}},"渐变色")),e("border props"),l.a.createElement(s.View,{style:[Fe.rectangle,{borderColor:"#242424",borderRadius:4,borderWidth:1,borderStyle:"solid"}]}),e("flex props"),l.a.createElement(s.View,{style:[Fe.bigRectangle,{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}]},l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"yellow"}]}),l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"blue"}]}),l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"green"}]})))}const We=s.StyleSheet.create({pageContainer:{alignItems:"center",justifyContent:"center",flex:1,paddingTop:20},mainRec:{backgroundColor:"#4c9afaAA",width:256,height:48,marginBottom:10,marginTop:156},title:{verticalAlign:"middle",lineHeight:48,height:48,fontSize:16,color:"white",alignSelf:"center"},shapeBase:{width:128,height:128,backgroundColor:"#4c9afa"},square:{},circle:{borderRadius:64},triangle:{borderStyle:"solid",borderTopWidth:0,borderRightWidth:70,borderBottomWidth:128,borderLeftWidth:70,borderTopColor:"transparent",borderRightColor:"transparent",borderLeftColor:"transparent",borderBottomColor:"#4c9afa",backgroundColor:"transparent",width:140}}),He="SquarePagerView",Ne="TrianglePagerView",Ke="CirclePagerView";function Ue(e,t){const n=t=>l.a.createElement(s.View,{style:We.pageContainer,key:t},l.a.createElement(s.View,{style:[We.shapeBase,e],key:"shape"}),l.a.createElement(s.View,{style:We.mainRec,key:"title"},t?l.a.createElement(s.Text,{style:We.title},t):null));return n.displayName=t,n}const Ge=Ue(We.square,He),qe=Ue(We.triangle,Ne),Qe=Ue(We.circle,Ke),Ye=s.StyleSheet.create({dotContainer:{position:"absolute",bottom:10,left:0,right:0,flexDirection:"row",alignItems:"center",justifyContent:"center"},dot:{width:6,height:6,borderRadius:3,margin:3,backgroundColor:"#BBBBBB"},selectDot:{backgroundColor:"#000000"},container:{height:500},buttonContainer:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:12},button:{width:120,height:36,backgroundColor:"#4c9afa",borderRadius:18,alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,color:"#fff"}});class Xe extends l.a.Component{constructor(e){super(e),W()(this,"state",{selectedIndex:0}),this.onPageSelected=this.onPageSelected.bind(this)}onPageSelected(e){console.log("onPageSelected",e.position),this.setState({selectedIndex:e.position})}onPageScrollStateChanged(e){console.log("onPageScrollStateChanged",e)}onPageScroll({offset:e,position:t}){console.log("onPageScroll",e,t)}render(){const{selectedIndex:e}=this.state;return l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#ffffff"}},l.a.createElement(s.View,{style:Ye.buttonContainer},l.a.createElement(s.View,{style:Ye.button,onClick:()=>{this.viewpager.setPage(2)}},l.a.createElement(s.Text,{style:Ye.buttonText},"动效滑到第3页")),l.a.createElement(s.View,{style:Ye.button,onClick:()=>this.viewpager.setPageWithoutAnimation(0)},l.a.createElement(s.Text,{style:Ye.buttonText},"直接滑到第1页"))),l.a.createElement(s.ViewPager,{ref:e=>{this.viewpager=e},style:Ye.container,initialPage:0,keyboardDismissMode:"none",scrollEnabled:!0,onPageSelected:this.onPageSelected,onPageScroll:this.onPageScroll},[Ge("squarePager"),qe("TrianglePager"),Qe("CirclePager")]),l.a.createElement(s.View,{style:Ye.dotContainer},new Array(3).fill(0).map((t,n)=>{const o=n===e;return l.a.createElement(s.View,{style:[Ye.dot,o?Ye.selectDot:null],key:"dot_"+n})})))}}const Je=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},webViewStyle:{padding:10,flex:1,flexGrow:1,borderRadius:10}});function Ze(){return l.a.createElement(s.View,{style:{paddingHorizontal:10,flex:1}},l.a.createElement(s.View,{style:Je.itemTitle},l.a.createElement(s.Text,null,"WebView 示例")),l.a.createElement(s.WebView,{source:{uri:"https://hippyjs.org"},method:"get",userAgent:"Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; vivo X7 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/8.2 Mobile Safari/537.36",style:Je.webViewStyle,onLoad:({url:e})=>console.log("webview onload",e),onLoadStart:({url:e})=>console.log("webview onLoadStart",e),onLoadEnd:({url:e})=>console.log("webview onLoadEnd",e)}))}const $e=s.StyleSheet.create({shadowDemo:{flex:1,overflowY:"scroll"},shadowDemoCubeAndroid:{position:"absolute",left:50,top:50,width:170,height:170,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowColor:"#4c9afa",borderRadius:5},shadowDemoContentAndroid:{position:"absolute",left:5,top:5,width:160,height:160,backgroundColor:"grey",borderRadius:5,display:"flex",justifyContent:"center",alignItems:"center"},shadowDemoCubeIos:{position:"absolute",left:50,top:50,width:160,height:160,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowSpread:1,boxShadowColor:"#4c9afa",borderRadius:5},shadowDemoContentIos:{width:160,height:160,backgroundColor:"grey",borderRadius:5,display:"flex",justifyContent:"center",alignItems:"center"},text:{color:"white"}}),et=s.StyleSheet.create({shadowDemoCubeAndroid:{position:"absolute",left:50,top:300,width:175,height:175,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:15,boxShadowOffsetY:15,boxShadowColor:"#4c9afa"},shadowDemoContentAndroid:{width:160,height:160,backgroundColor:"grey",display:"flex",justifyContent:"center",alignItems:"center"},shadowDemoCubeIos:{position:"absolute",left:50,top:300,width:160,height:160,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:10,boxShadowOffsetY:10,boxShadowSpread:1,boxShadowColor:"#4c9afa"},shadowDemoContentIos:{width:160,height:160,backgroundColor:"grey",display:"flex",justifyContent:"center",alignItems:"center"},text:{color:"white"}});function tt(){return l.a.createElement(s.View,{style:$e.shadowDemo},"android"===s.Platform.OS?l.a.createElement(s.View,{style:$e.shadowDemoCubeAndroid},l.a.createElement(s.View,{style:$e.shadowDemoContentAndroid},l.a.createElement(s.Text,{style:$e.text},"没有偏移阴影样式"))):l.a.createElement(s.View,{style:$e.shadowDemoCubeIos},l.a.createElement(s.View,{style:$e.shadowDemoContentIos},l.a.createElement(s.Text,{style:$e.text},"没有偏移阴影样式"))),"android"===s.Platform.OS?l.a.createElement(s.View,{style:et.shadowDemoCubeAndroid},l.a.createElement(s.View,{style:et.shadowDemoContentAndroid},l.a.createElement(s.Text,{style:et.text},"偏移阴影样式"))):l.a.createElement(s.View,{style:et.shadowDemoCubeIos},l.a.createElement(s.View,{style:et.shadowDemoContentIos},l.a.createElement(s.Text,{style:et.text},"偏移阴影样式"))))}const nt=ce.filter(e=>2!==e.style),ot=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},splitter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},pullContainer:{height:50,backgroundColor:"#4c9afa"},pullContent:{lineHeight:50,color:"white",height:50,textAlign:"center"},pullFooter:{flex:1,height:40,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}});class rt extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],pullingText:"继续下拉触发刷新",loadingState:"正在加载..."},this.numberOfColumns=2,this.columnSpacing=6,this.interItemSpacing=6,this.mockFetchData=this.mockFetchData.bind(this),this.renderItem=this.renderItem.bind(this),this.getItemType=this.getItemType.bind(this),this.getItemKey=this.getItemKey.bind(this),this.onEndReached=this.onEndReached.bind(this),this.onRefresh=this.onRefresh.bind(this),this.getRefresh=this.getRefresh.bind(this),this.renderPullFooter=this.renderPullFooter.bind(this),this.renderBanner=this.renderBanner.bind(this),this.getItemStyle=this.getItemStyle.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e})}async onEndReached(){const{dataSource:e}=this.state;if(this.loadMoreDataFlag)return;this.loadMoreDataFlag=!0,this.setState({loadingState:"加载更多..."});let t=[];try{t=await this.mockFetchData()}catch(e){}0===t.length&&this.setState({loadingState:"没有更多数据"});const n=[...e,...t];this.setState({dataSource:n}),this.loadMoreDataFlag=!1}renderPullFooter(){return 0===this.state.dataSource.length?null:l.a.createElement(s.View,{style:ot.pullFooter},l.a.createElement(s.Text,{style:{color:"white"}},this.state.loadingState))}async onRefresh(){setTimeout(async()=>{const e=await this.mockFetchData();this.setState({dataSource:e}),this.refresh.refreshComplected()},1e3)}getRefresh(){return l.a.createElement(s.View,{style:{flex:1,height:40,justifyContent:"center",alignItems:"center",backgroundColor:"#4c9afa"}},l.a.createElement(s.Text,{style:{height:40,lineHeight:40,textAlign:"center",color:"white"}},"下拉刷新中..."))}onClickItem(e){console.log(`item: ${e} is clicked..`)}getItemType(e){return this.state.dataSource[e].style}getItemKey(e){return"row-"+e}onItemClick(e){console.log("onItemClick",e),this.listView.scrollToIndex({index:e,animation:!0})}renderBanner(){return"android"===s.Platform.OS||0===this.state.dataSource.length?null:l.a.createElement(s.View,{style:{backgroundColor:"grey",height:100,justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{fontSize:20,color:"white",lineHeight:100,height:100}},"Banner View"))}renderItem(e){const{dataSource:t}=this.state;let n=null;const o=t[e];switch(o.style){case 1:n=l.a.createElement(ye,{itemBean:o.itemBean});break;case 2:n=l.a.createElement(Se,{itemBean:o.itemBean});break;case 5:n=l.a.createElement(Ce,{itemBean:o.itemBean})}return l.a.createElement(s.View,{onClick:()=>this.onItemClick(e),style:ot.container},l.a.createElement(s.View,{style:ot.itemContainer},n),l.a.createElement(s.View,{style:ot.splitter}))}mockFetchData(){return new Promise(e=>{setTimeout(()=>{const t=[...nt,...nt];return e(t)},600)})}getWaterfallContentInset(){return{top:0,left:5,bottom:0,right:5}}getItemStyle(){const{numberOfColumns:e,columnSpacing:t}=this,n=s.Dimensions.get("screen").width,o=this.getWaterfallContentInset();return{width:(n-o.left-o.right-(e-1)*t)/e}}render(){const{dataSource:e}=this.state,{numberOfColumns:t,columnSpacing:n,interItemSpacing:o}=this,r=this.getWaterfallContentInset();return l.a.createElement(s.RefreshWrapper,{ref:e=>{this.refresh=e},style:{flex:1},onRefresh:this.onRefresh,bounceTime:100,getRefresh:this.getRefresh},l.a.createElement(s.WaterfallView,{ref:e=>{this.listView=e},renderBanner:this.renderBanner,numberOfColumns:t,columnSpacing:n,interItemSpacing:o,numberOfItems:e.length,style:{flex:1},renderItem:this.renderItem,onEndReached:this.onEndReached,getItemType:this.getItemType,getItemKey:this.getItemKey,contentInset:r,getItemStyle:this.getItemStyle,containPullFooter:!0,renderPullFooter:this.renderPullFooter}))}}var it=n.p+"assets/defaultSource.jpg";function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function lt(e){for(var t=1;t{i.current.setPressed(!1)},{nativeBackgroundAndroid:h,style:u}=e;return l.a.createElement(s.View,{onLayout:()=>{s.UIManagerModule.measureInAppWindow(i.current,e=>{n(e.x),r(e.y)})},style:u,onTouchDown:e=>{i.current.setHotspot(e.page_x-t,e.page_y-o),i.current.setPressed(!0)},onTouchEnd:c,onTouchCancel:c,ref:i,nativeBackgroundAndroid:lt(lt({},st),h)},e.children)}const ht=s.StyleSheet.create({imgRectangle:{width:260,height:56,alignItems:"center",justifyContent:"center"},circleRipple:{marginTop:30,width:150,height:56,alignItems:"center",justifyContent:"center",borderWidth:3,borderStyle:"solid",borderColor:"#4c9afa"},squareRipple:{alignItems:"center",justifyContent:"center",width:150,height:150,backgroundColor:"#4c9afa",marginTop:30,borderRadius:12,overflow:"hidden"},squareRippleWrapper:{alignItems:"flex-start",justifyContent:"center",height:150,marginTop:30},squareRipple1:{alignItems:"center",justifyContent:"center",width:150,height:150,borderWidth:5,borderStyle:"solid",backgroundSize:"cover",borderColor:"#4c9afa",backgroundImage:it,paddingHorizontal:10},squareRipple2:{alignItems:"center",justifyContent:"center",width:150,height:150,paddingHorizontal:10,backgroundSize:"cover",backgroundImage:"https://user-images.githubusercontent.com/12878546/148736102-7cd9525b-aceb-41c6-a905-d3156219ef16.png"}});function ut(){return"ios"===s.Platform.OS?l.a.createElement(s.Text,null,"iOS暂未支持水波纹效果"):l.a.createElement(s.ScrollView,{style:{margin:10,flex:1}},l.a.createElement(s.View,{style:[ht.imgRectangle,{marginTop:20,backgroundImage:it,backgroundSize:"cover"}]},l.a.createElement(ct,{style:[ht.imgRectangle],nativeBackgroundAndroid:{borderless:!0,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"white",maxWidth:200}},"外层背景图,内层无边框水波纹,受外层影响始终有边框"))),l.a.createElement(ct,{style:[ht.circleRipple],nativeBackgroundAndroid:{borderless:!0,color:"#666666",rippleRadius:100}},l.a.createElement(s.Text,{style:{color:"black",textAlign:"center"}},"无边框圆形水波纹")),l.a.createElement(ct,{style:[ht.squareRipple],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"#fff"}},"带背景色水波纹")),l.a.createElement(s.View,{style:[ht.squareRippleWrapper]},l.a.createElement(ct,{style:[ht.squareRipple1],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"white"}},"有边框水波纹,带本地底图效果"))),l.a.createElement(s.View,{style:[ht.squareRippleWrapper]},l.a.createElement(ct,{style:[ht.squareRipple2],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"black"}},"有边框水波纹,带网络底图效果"))))}const dt="#4c9afa",mt="#f44837",gt=s.StyleSheet.create({container:{paddingHorizontal:10},square:{width:80,height:80,backgroundColor:mt},showArea:{height:150,marginVertical:10},button:{borderColor:dt,borderWidth:2,borderStyle:"solid",justifyContent:"center",alignItems:"center",width:70,borderRadius:8,height:50,marginTop:20,marginRight:8},buttonText:{fontSize:20,color:dt,textAlign:"center",textAlignVertical:"center"},colorText:{fontSize:14,color:"white",textAlign:"center",textAlignVertical:"center"},buttonContainer:{flexDirection:"row",alignItems:"center"},title:{fontSize:24,marginTop:8}});class ft extends l.a.Component{constructor(e){super(e),this.state={}}componentWillMount(){this.horizonAnimation=new s.Animation({startValue:150,toValue:20,duration:1e3,delay:500,mode:"timing",timingFunction:"linear",repeatCount:"loop"}),this.verticalAnimation=new s.Animation({startValue:80,toValue:40,duration:1e3,delay:0,mode:"timing",timingFunction:"linear",repeatCount:"loop"}),this.scaleAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:1,toValue:1.2,duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:1.2,toValue:.2,duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.rotateAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:180,duration:2e3,delay:0,valueType:"deg",mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:180,toValue:360,duration:2e3,delay:0,valueType:"deg",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.skewXAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:Math.PI,duration:2e3,valueType:"rad",delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:Math.PI,toValue:0,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.skewYAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:Math.PI,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:Math.PI,toValue:0,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.bgColorAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:"red",toValue:"yellow",valueType:"color",duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:"yellow",toValue:"blue",duration:1e3,valueType:"color",delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.txtColorAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:"white",toValue:"yellow",valueType:"color",duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:"yellow",toValue:"white",duration:1e3,valueType:"color",delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.cubicBezierScaleAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:1,duration:1e3,delay:0,mode:"timing",timingFunction:"cubic-bezier(.45,2.84,.38,.5)"}),follow:!1},{animation:new s.Animation({startValue:1,toValue:0,duration:1e3,mode:"timing",timingFunction:"cubic-bezier(.17,1.45,.78,.14)"}),follow:!0}],repeatCount:"loop"})}componentDidMount(){"web"===s.Platform.OS&&(this.verticalAnimation.setRef(this.verticalRef),this.horizonAnimation.setRef(this.horizonRef),this.scaleAnimationSet.setRef(this.scaleRef),this.bgColorAnimationSet.setRef(this.bgColorRef),this.txtColorAnimationSet.setRef(this.textColorRef),this.txtColorAnimationSet.setRef(this.textColorRef),this.cubicBezierScaleAnimationSet.setRef(this.cubicBezierScaleRef),this.rotateAnimationSet.setRef(this.rotateRef),this.skewXAnimationSet.setRef(this.skewRef),this.skewYAnimationSet.setRef(this.skewRef)),this.horizonAnimation.onAnimationStart(()=>{console.log("on animation start!!!")}),this.horizonAnimation.onAnimationEnd(()=>{console.log("on animation end!!!")}),this.horizonAnimation.onAnimationCancel(()=>{console.log("on animation cancel!!!")}),this.horizonAnimation.onAnimationRepeat(()=>{console.log("on animation repeat!!!")})}componentWillUnmount(){this.horizonAnimation&&this.horizonAnimation.destroy(),this.verticalAnimation&&this.verticalAnimation.destroy(),this.scaleAnimationSet&&this.scaleAnimationSet.destroy(),this.bgColorAnimationSet&&this.bgColorAnimationSet.destroy(),this.txtColorAnimationSet&&this.txtColorAnimationSet.destroy(),this.cubicBezierScaleAnimationSet&&this.cubicBezierScaleAnimationSet.destroy(),this.rotateAnimationSet&&this.rotateAnimationSet.destroy(),this.skewXAnimationSet&&this.skewXAnimationSet.destroy(),this.skewYAnimationSet&&this.skewYAnimationSet.destroy()}render(){return l.a.createElement(s.ScrollView,{style:gt.container},l.a.createElement(s.Text,{style:gt.title},"水平位移动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.horizonAnimation.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.updateAnimation({startValue:50,toValue:100})}},l.a.createElement(s.Text,{style:gt.buttonText},"更新"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.horizonRef=e},style:[gt.square,{transform:[{translateX:this.horizonAnimation}]}]})),l.a.createElement(s.Text,{style:gt.title},"高度形变动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.verticalAnimation.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.verticalAnimation.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.verticalAnimation.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.verticalRef=e},style:[gt.square,{height:this.verticalAnimation}]})),l.a.createElement(s.Text,{style:gt.title},"旋转动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.rotateAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.rotateAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.rotateAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.rotateRef=e},style:[gt.square,{transform:[{rotate:this.rotateAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"倾斜动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.skewXAnimationSet.start(),this.skewYAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.skewXAnimationSet.pause(),this.skewYAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.skewXAnimationSet.resume(),this.skewYAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.skewRef=e},style:[gt.square,{transform:[{skewX:this.skewXAnimationSet},{skewY:this.skewYAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"缩放动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.scaleAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.scaleAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.scaleAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.scaleRef=e},style:[gt.square,{transform:[{scale:this.scaleAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"颜色渐变动画(文字渐变仅Android支持)"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.bgColorAnimationSet.start(),this.txtColorAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.bgColorAnimationSet.pause(),this.txtColorAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.bgColorAnimationSet.resume(),this.txtColorAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.bgColorRef=e},style:[gt.square,{justifyContent:"center",alignItems:"center"},{backgroundColor:this.bgColorAnimationSet}]},l.a.createElement(s.Text,{ref:e=>{this.textColorRef=e},style:[gt.colorText,{color:"android"===s.Platform.OS?this.txtColorAnimationSet:"white"}]},"颜色渐变背景和文字"))),l.a.createElement(s.Text,{style:gt.title},"贝塞尔曲线动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.cubicBezierScaleAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.cubicBezierScaleAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.cubicBezierScaleAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.cubicBezierScaleRef=e},style:[gt.square,{transform:[{scale:this.cubicBezierScaleAnimationSet}]}]})))}}const yt=s.StyleSheet.create({containerStyle:{margin:20,alignItems:"center",flexDirection:"column"},itemGroupStyle:{flexDirection:"row",marginTop:10,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",width:100,height:40,justifyContent:"center",alignItems:"center"},viewGroupStyle:{flexDirection:"row",marginTop:10},infoStyle:{width:60,height:40,fontSize:16,color:"#4c9afa",textAlign:"center"},inputStyle:{width:200,height:40,placeholderTextColor:"#aaaaaa",underlineColorAndroid:"#4c9afa",fontSize:16,color:"#242424",textAlign:"left"},buttonStyle:{textAlign:"center",fontSize:16,color:"#4c9afa",backgroundColor:"#4c9afa11",marginLeft:10,marginRight:10}});class pt extends l.a.Component{constructor(e){super(e),this.state={result:""},this.onTextChangeKey=this.onTextChangeKey.bind(this),this.onTextChangeValue=this.onTextChangeValue.bind(this),this.onClickSet=this.onClickSet.bind(this),this.onTextChangeKey=this.onTextChangeKey.bind(this),this.onClickGet=this.onClickGet.bind(this)}onClickSet(){const{key:e,value:t}=this.state;e&&s.AsyncStorage.setItem(e,t)}onClickGet(){const{key:e}=this.state;e&&s.AsyncStorage.getItem(e).then(e=>{this.setState({result:e})})}onTextChangeKey(e){this.setState({key:e})}onTextChangeValue(e){this.setState({value:e})}render(){const{result:e}=this.state;return l.a.createElement(s.ScrollView,{style:yt.containerStyle},l.a.createElement(s.View,{style:yt.viewGroupStyle},l.a.createElement(s.Text,{style:yt.infoStyle},"Key:"),l.a.createElement(s.TextInput,{style:yt.inputStyle,onChangeText:this.onTextChangeKey})),l.a.createElement(s.View,{style:yt.viewGroupStyle},l.a.createElement(s.Text,{style:yt.infoStyle},"Value:"),l.a.createElement(s.TextInput,{style:yt.inputStyle,onChangeText:this.onTextChangeValue})),l.a.createElement(s.View,{style:yt.itemGroupStyle,onClick:this.onClickSet},l.a.createElement(s.Text,{style:yt.buttonStyle},"Set")),l.a.createElement(s.View,{style:[yt.viewGroupStyle,{marginTop:60}]},l.a.createElement(s.Text,{style:yt.infoStyle},"Key:"),l.a.createElement(s.TextInput,{style:yt.inputStyle,onChangeText:this.onTextChangeKey})),l.a.createElement(s.View,{style:[yt.viewGroupStyle,{display:"none"}]},l.a.createElement(s.Text,{style:yt.infoStyle},"Value:"),l.a.createElement(s.Text,{style:[yt.infoStyle,{width:200}]},e)),l.a.createElement(s.View,{style:yt.itemGroupStyle,onClick:this.onClickGet},l.a.createElement(s.Text,{style:yt.buttonStyle},"Get")))}}const bt=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},defaultText:{marginVertical:4,fontSize:18,lineHeight:24,color:"#242424"},copiedText:{color:"#aaa"},button:{backgroundColor:"#4c9afa",borderRadius:4,height:30,marginVertical:4,paddingHorizontal:6,alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,color:"white"}});class wt extends l.a.Component{constructor(e){super(e),this.state={hasCopied:!1,text:"Winter is coming",clipboardText:"点击上面的按钮"}}render(){const e=e=>l.a.createElement(s.View,{style:bt.itemTitle},l.a.createElement(s.Text,null,e)),{hasCopied:t,text:n,clipboardText:o}=this.state,r=t?" (已复制) ":"";return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},e("文本复制到剪贴板"),l.a.createElement(s.Text,{style:bt.defaultText},n),l.a.createElement(s.View,{style:bt.button,onClick:()=>{s.Clipboard.setString(n),this.setState({hasCopied:!0})}},l.a.createElement(s.Text,{style:bt.buttonText},"点击复制以上文案"+r)),e("获取剪贴板内容"),l.a.createElement(s.View,{style:bt.button,onClick:async()=>{try{const e=await s.Clipboard.getString();this.setState({clipboardText:e})}catch(e){console.error(e)}}},l.a.createElement(s.Text,{style:bt.buttonText},"点击获取剪贴板内容")),l.a.createElement(s.Text,{style:[bt.defaultText,bt.copiedText]},o))}}const xt=s.StyleSheet.create({text:{fontSize:14,color:"#242424",alignSelf:"center"},container:{flex:1},itemTitle:{alignItems:"flex-start",justifyContent:"center",height:80,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},itemContent:{alignItems:"flex-start",justifyContent:"center",height:100,borderBottomWidth:1,borderLeftWidth:1,borderRightWidth:1,borderStyle:"solid",borderRadius:2,borderColor:"#e0e0e0",backgroundColor:"#ffffff",padding:10},normalText:{fontSize:14,lineHeight:18,color:"black"}});class St extends l.a.Component{constructor(e){super(e),this.state={infoText:"",infoText2:""}}render(){const{infoText:e,infoText2:t}=this.state;return l.a.createElement(s.ScrollView,{style:xt.container},l.a.createElement(s.View,{style:xt.itemTitle,onPress:()=>{const e=new s.HippyEventEmitter;this.call=e.addListener("NORMAL_EVENT",e=>{this.setState({infoText:JSON.stringify(e)})}),Object(s.callNative)("MyEvent","btnClicked")}},l.a.createElement(s.Text,null,"客户端向前端单向通信"),l.a.createElement(s.Text,null,"点此终端会发送NORMAL_EVENT事件"),l.a.createElement(s.Text,null,"事件接收结果:"+e)),l.a.createElement(s.View,{style:xt.itemTitle,onPress:()=>{const e=new s.HippyEventEmitter;this.call=e.addListener("COUNT_DOWN",e=>{this.setState({infoText2:JSON.stringify(e)})}),Object(s.callNative)("MyEvent","addListener","COUNT_DOWN")}},l.a.createElement(s.Text,null,"客户端向前端单向通信的进阶用法"),l.a.createElement(s.Text,null,"点此终端会发送COUNT_DOWN事件"),l.a.createElement(s.Text,null,"事件接收结果:"+t)))}}const Et=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},wrapper:{borderColor:"#eee",borderWidth:1,borderStyle:"solid",paddingHorizontal:10,paddingVertical:5,marginVertical:10,flexDirection:"column",justifyContent:"flex-start",alignItems:"flex-start"},infoContainer:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",marginTop:5,marginBottom:5,flexWrap:"wrap"},infoText:{collapsable:!1,marginVertical:5}});class Tt extends l.a.Component{constructor(e){super(e),this.state={netInfoStatusTxt:"",netInfoChangeTxt:"",fetchInfoTxt:"",cookies:""},this.listener=null}async fetchNetInfoStatus(){this.setState({netInfoStatusTxt:await s.NetInfo.fetch()})}fetchUrl(){fetch("https://hippyjs.org",{mode:"no-cors"}).then(e=>(this.setState({fetchInfoTxt:"成功状态: "+e.status}),e)).catch(e=>{this.setState({fetchInfoTxt:"收到错误: "+e})})}setCookies(){s.NetworkModule.setCookie("https://hippyjs.org","name=hippy;network=mobile")}getCookies(){s.NetworkModule.getCookies("https://hippyjs.org").then(e=>{this.setState({cookies:e})})}async componentWillMount(){const e=this;this.listener=s.NetInfo.addEventListener("change",t=>{e.setState({netInfoChangeTxt:""+t.network_info})})}componentWillUnmount(){this.listener&&s.NetInfo.removeEventListener("change",this.listener)}componentDidMount(){this.fetchUrl(),this.fetchNetInfoStatus()}render(){const{netInfoStatusTxt:e,fetchInfoTxt:t,netInfoChangeTxt:n,cookies:o}=this.state,r=e=>l.a.createElement(s.View,{style:Et.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},r("Fetch"),l.a.createElement(s.View,{style:[Et.wrapper]},l.a.createElement(s.View,{style:[Et.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.fetchUrl()},l.a.createElement(s.Text,{style:{color:"white"}},"请求 hippy 网址:")),l.a.createElement(s.Text,{style:Et.infoText},t))),r("NetInfo"),l.a.createElement(s.View,{style:[Et.wrapper]},l.a.createElement(s.View,{style:[Et.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.fetchNetInfoStatus()},l.a.createElement(s.Text,{style:{color:"white"}},"获取网络状态:")),l.a.createElement(s.Text,{style:Et.infoText},e)),l.a.createElement(s.View,{style:[Et.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10}},l.a.createElement(s.Text,{style:{color:"white"}},"监听网络变化:")),l.a.createElement(s.Text,{style:Et.infoText},n))),r("NetworkModule"),l.a.createElement(s.View,{style:[Et.wrapper]},l.a.createElement(s.View,{style:[Et.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.setCookies()},l.a.createElement(s.Text,{style:{color:"white"}},"设置Cookies:")),l.a.createElement(s.Text,{style:Et.infoText},"name=hippy;network=mobile")),l.a.createElement(s.View,{style:[Et.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.getCookies()},l.a.createElement(s.Text,{style:{color:"white"}},"获取Cookies:")),l.a.createElement(s.Text,{style:Et.infoText},o))))}}var At={log(e){Object(s.callNative)("TestModule","log",e)},helloNative(e){Object(s.callNative)("TestModule","helloNative",e)},helloNativeWithPromise:e=>Object(s.callNativeWithPromise)("TestModule","helloNativeWithPromise",e)};class Ct extends l.a.Component{constructor(e){super(e),this.state={hello:"TestModule log"}}componentDidMount(){At.log("hello i am from js"),At.helloNative({hello:"i am form js"}),At.helloNativeWithPromise({hello:"i am form js"}).then(e=>{this.setState({hello:JSON.stringify(e)})})}render(){const{hello:e}=this.state;return l.a.createElement(s.Text,{style:{color:"red"}},e)}}const vt=s.StyleSheet.create({fullScreen:{flex:1},row:{flexDirection:"row"},title:{color:"#ccc"},button:{height:56,backgroundColor:"#4c9afa",borderColor:"#5dabfb",borderStyle:"solid",borderWidth:1,paddingHorizontal:20,fontSize:16,textAlign:"center",lineHeight:56,color:"#fff",margin:10},input:{color:"black",flex:1,height:36,lineHeight:36,fontSize:14,borderBottomColor:"#4c9afa",borderBottomStyle:"solid",borderBottomWidth:1,padding:0},output:{color:"black"}}),Vt="wss://echo.websocket.org",kt="Rock it with Hippy WebSocket";let Rt;var It=function(){const e=Object(a.useRef)(null),t=Object(a.useRef)(null),[n,o]=Object(a.useState)([]),r=e=>{o(t=>[e,...t])};return l.a.createElement(s.View,{style:vt.fullScreen},l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:vt.title},"Url:"),l.a.createElement(s.TextInput,{ref:e,value:Vt,style:vt.input}),l.a.createElement(s.View,{style:vt.row},l.a.createElement(s.Text,{onClick:()=>{e.current.getValue().then(e=>{Rt&&1===Rt.readyState&&Rt.close(),Rt=new WebSocket(e),Rt.onopen=()=>r("[Opened] "+Rt.url),Rt.onclose=()=>r("[Closed] "+Rt.url),Rt.onerror=e=>r("[Error] "+e.reason),Rt.onmessage=e=>r("[Received] "+e.data)})},style:vt.button},"Connect"),l.a.createElement(s.Text,{onClick:()=>Rt.close(),style:vt.button},"Disconnect"))),l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:vt.title},"Message:"),l.a.createElement(s.TextInput,{ref:t,value:kt,style:vt.input}),l.a.createElement(s.Text,{onClick:()=>t.current.getValue().then(e=>{r("[Sent] "+e),Rt.send(e)}),style:vt.button},"Send")),l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:vt.title},"Log:"),l.a.createElement(s.ScrollView,{style:vt.fullScreen},n.map((e,t)=>l.a.createElement(s.Text,{key:t,style:vt.output},e)))))};function Dt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Ot(e){for(var t=1;t{const e=s.Dimensions.get("screen");({width:t,height:n}=e)});const[o,r]=Object(a.useState)({width:100,height:100,top:10,left:10}),[i,c]=Object(a.useState)({width:0,height:0,x:0,y:0}),h=Ot(Ot({},Pt.box),o);return l.a.createElement(s.View,{style:Pt.full},l.a.createElement(s.View,{style:Pt.demoContent},l.a.createElement(s.View,{ref:e,style:h},l.a.createElement(s.Text,{style:Pt.text,numberOfLines:2},"I am the box"))),l.a.createElement(s.View,{style:Pt.buttonContainer},l.a.createElement(s.View,{onClick:()=>{const e=jt(0,t-100),o=jt(0,n-450),i=jt(80,120);r({left:e,top:o,width:i,height:i})},style:Pt.button},l.a.createElement(s.Text,{style:Pt.buttonText},"Move the random position")),l.a.createElement(s.View,{onClick:async()=>{try{const t=await s.UIManagerModule.measureInWindow(e.current);c(t)}catch(e){}},style:Pt.button},l.a.createElement(s.Text,{style:Pt.buttonText},"Measure box in window"))),l.a.createElement(s.View,{style:Pt.row},l.a.createElement(s.View,null,l.a.createElement(s.Text,null,"Box style:"),l.a.createElement(s.Text,{style:Pt.black},"Width: "+h.width),l.a.createElement(s.Text,{style:Pt.black},"Height: "+h.height),l.a.createElement(s.Text,{style:Pt.black},"Left: "+h.left),l.a.createElement(s.Text,{style:Pt.black},"Top: "+h.top)),l.a.createElement(s.View,null,l.a.createElement(s.Text,null,"measureInWindow output:"),l.a.createElement(s.Text,{style:Pt.black},"Width: "+i.width),l.a.createElement(s.Text,{style:Pt.black},"Height: "+i.height),l.a.createElement(s.Text,{style:Pt.black},"X: "+i.x),l.a.createElement(s.Text,{style:Pt.black},"Y: "+i.y))))};const Mt=s.StyleSheet.create({style_indicator_item:{width:4,height:4,marginLeft:2.5,marginRight:2.5,borderRadius:2},style_indicator:{position:"absolute",bottom:6,left:0,right:0,marginLeft:0,marginRight:0,alignItems:"center",justifyContent:"center",flexDirection:"row"}});class Bt extends l.a.Component{constructor(e){super(e),this.state={current:e.current||0}}update(e){const{current:t}=this.state;t!==e&&this.setState({current:e})}render(){const{count:e}=this.props,{current:t}=this.state,n=[];for(let o=0;o=r||(this.indicator&&this.indicator.update(o),this.currentIndex=o)}onScrollBeginDrag(){this.touchStartOffset=this.scrollOffset,this.doClearTimer()}onScrollEndDrag(){this.doCreateTimer()}onLayout(e){this.width=e.layout.width}doSwitchPage(e){this.scrollView.scrollTo({x:this.imgWidth*e,y:0,animated:!0})}doCreateTimer(){this.doClearTimer(),this.duration<=0||(this.interval=setInterval(()=>{this.doSwitchPage((this.currentIndex+1)%this.itemCount)},this.duration))}doClearTimer(){this.interval&&clearInterval(this.interval),this.interval=null}render(){const{images:e}=this.props,t=[];for(let n=0;n{this.scrollView=e}},t),l.a.createElement(Bt,{ref:e=>{this.indicator=e},count:this.itemCount}))}}W()(zt,"defaultProps",{duration:0,currentPage:0,images:[]});const Ft=["https://user-images.githubusercontent.com/12878546/148736627-bca54707-6939-45b3-84f7-74e6c2c09c88.jpg","https://user-images.githubusercontent.com/12878546/148736679-0521fdff-09f5-40e3-a36a-55c8f714be16.jpg","https://user-images.githubusercontent.com/12878546/148736685-a4c226ad-f64a-4fe0-b3df-ce0d8fcd7a01.jpg"],_t=s.StyleSheet.create({sliderStyle:{width:400,height:180},infoStyle:{height:40,fontSize:16,color:"#4c9afa",marginTop:15}});function Wt(){return l.a.createElement(s.ScrollView,null,l.a.createElement(s.Text,{style:_t.infoStyle},"Auto:"),l.a.createElement(zt,{style:_t.sliderStyle,images:Ft,duration:1e3}),l.a.createElement(s.Text,{style:_t.infoStyle},"Manual:"),l.a.createElement(zt,{style:_t.sliderStyle,images:Ft,duration:0}))}const Ht=s.StyleSheet.create({container:{height:45,paddingLeft:4,flexDirection:"row",backgroundColor:"#ffffff",borderBottomColor:"#E5E5E5",borderBottomWidth:1,borderStyle:"solid"},scroll:{flex:1,height:44},navItem:{width:60,height:44,paddingTop:13},navItemText:{fontSize:16,lineHeight:17,textAlign:"center",backgroundColor:"#ffffff"},navItemTextNormal:{color:"#666666"},navItemTextBlue:{color:"#2D73FF"}});class Nt extends l.a.Component{constructor(e){super(e),this.state={curIndex:0,navList:["头条","推荐","圈子","NBA","中超","英超","西甲","CBA","澳网","电影","本地","娱乐","小说","生活","直播","游戏"]},this.navScrollView=null,this.viewPager=null,this.onViewPagerChange=this.onViewPagerChange.bind(this),this.pressNavItem=this.pressNavItem.bind(this),this.scrollSV=this.scrollSV.bind(this)}static getPage(e,t){switch(t%3){case 0:return Ge(e);case 1:return Qe(e);case 2:return qe(e);default:return null}}componentDidUpdate(){this.scrollSV()}onViewPagerChange({position:e}){this.setState({curIndex:e})}scrollSV(){if(this.navScrollView){const{curIndex:e,navList:t}=this.state,n=t.length,o=de.getScreenWidth(),r=o/2/60,i=60*nn-r?60*n-o:60*e-60*r+30,this.navScrollView.scrollTo({x:a,y:0,animated:!0})}}pressNavItem(e){this.setState({curIndex:e}),this.viewPager&&this.viewPager.setPage(e)}renderNav(){const{navList:e,curIndex:t}=this.state;return l.a.createElement(s.View,{style:Ht.container},l.a.createElement(s.ScrollView,{style:Ht.scroll,horizontal:!0,showsHorizontalScrollIndicator:!1,ref:e=>{this.navScrollView=e}},e.map((e,n)=>l.a.createElement(s.View,{style:Ht.navItem,key:"nav_"+e,activeOpacity:.5,onClick:()=>this.pressNavItem(n)},l.a.createElement(s.Text,{style:[Ht.navItemText,t===n?Ht.navItemTextBlue:Ht.navItemTextNormal],numberOfLines:1},e)))))}render(){const{navList:e}=this.state;return l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#ffffff"}},this.renderNav(),l.a.createElement(s.ViewPager,{ref:e=>{this.viewPager=e},style:{flex:1},initialPage:0,onPageSelected:this.onViewPagerChange},e.map((e,t)=>Nt.getPage(e,t))))}}const{width:Kt}=s.Dimensions.get("window"),Ut=s.StyleSheet.create({setNativePropsDemo:{display:"flex",alignItems:"center",position:"relative"},nativeDemo1Drag:{height:80,width:Kt,backgroundColor:"#4c9afa",position:"relative",marginTop:10},nativeDemo1Point:{height:80,width:80,color:"#4cccfa",backgroundColor:"#4cccfa",position:"absolute",left:0},nativeDemo2Drag:{height:80,width:Kt,backgroundColor:"#4c9afa",position:"relative",marginTop:10},nativeDemo2Point:{height:80,width:80,color:"#4cccfa",backgroundColor:"#4cccfa",position:"absolute",left:0},splitter:{marginTop:50}});class Gt extends l.a.Component{constructor(e){super(e),this.demon1Point=l.a.createRef(),this.demo1PointDom=null,this.state={demo2Left:0},this.isDemon1Layouted=!1,this.idDemon2Layouted=!1,this.onTouchDown1=this.onTouchDown1.bind(this),this.onDemon1Layout=this.onDemon1Layout.bind(this),this.onTouchMove1=this.onTouchMove1.bind(this),this.onTouchDown2=this.onTouchDown2.bind(this),this.onTouchMove2=this.onTouchMove2.bind(this)}componentDidMount(){}onDemon1Layout(){this.isDemon1Layouted||(this.isDemon1Layouted=!0,this.demo1PointDom=s.UIManagerModule.getElementFromFiberRef(this.demon1Point.current))}onTouchDown1(e){const{page_x:t}=e,n=t-40;console.log("touchdown x",t,n,Kt),this.demo1PointDom&&this.demo1PointDom.setNativeProps({style:{left:n}})}onTouchMove1(e){const{page_x:t}=e,n=t-40;console.log("touchmove x",t,n,Kt),this.demo1PointDom&&this.demo1PointDom.setNativeProps({style:{left:n}})}onTouchDown2(e){const{page_x:t}=e,n=t-40;console.log("touchdown x",t,n,Kt),this.setState({demo2Left:n})}onTouchMove2(e){const{page_x:t}=e,n=t-40;console.log("touchmove x",t,n,Kt),this.setState({demo2Left:n})}render(){const{demo2Left:e}=this.state;return l.a.createElement(s.View,{style:Ut.setNativePropsDemo},l.a.createElement(s.Text,null,"setNativeProps实现拖动效果"),l.a.createElement(s.View,{style:Ut.nativeDemo1Drag,onTouchDown:this.onTouchDown1,onTouchMove:this.onTouchMove1},l.a.createElement(s.View,{onLayout:this.onDemon1Layout,style:Ut.nativeDemo1Point,ref:this.demon1Point})),l.a.createElement(s.View,{style:Ut.splitter}),l.a.createElement(s.Text,null,"普通渲染实现拖动效果"),l.a.createElement(s.View,{style:Ut.nativeDemo2Drag,onTouchDown:this.onTouchDown2,onTouchMove:this.onTouchMove2},l.a.createElement(s.View,{style:[Ut.nativeDemo2Point,{left:e}]})))}}const qt=s.StyleSheet.create({dynamicImportDemo:{marginTop:20,display:"flex",flex:1,alignItems:"center",position:"relative",flexDirection:"column"}});class Qt extends l.a.Component{constructor(e){super(e),this.state={AsyncComponentFromLocal:null,AsyncComponentFromHttp:null},this.onAsyncComponentLoad=this.onAsyncComponentLoad.bind(this)}onAsyncComponentLoad(){console.log("load async component"),n.e(1).then(n.bind(null,"./src/externals/DyanmicImport/AsyncComponentLocal.jsx")).then(e=>{this.setState({AsyncComponentFromLocal:e.default||e})}).catch(e=>console.error("import async local component error",e)),n.e(0).then(n.bind(null,"./src/externals/DyanmicImport/AsyncComponentHttp.jsx")).then(e=>{this.setState({AsyncComponentFromHttp:e.default||e})}).catch(e=>console.error("import async remote component error",e))}render(){const{AsyncComponentFromLocal:e,AsyncComponentFromHttp:t}=this.state;return l.a.createElement(s.View,{style:qt.dynamicImportDemo},l.a.createElement(s.View,{style:{width:130,height:40,textAlign:"center",backgroundColor:"#4c9afa",borderRadius:5},onTouchDown:this.onAsyncComponentLoad},l.a.createElement(s.Text,{style:{height:40,lineHeight:40,textAlign:"center"}},"点我异步加载")),l.a.createElement(s.View,{style:{marginTop:20}},e?l.a.createElement(e,null):null,t?l.a.createElement(t,null):null))}}const Yt=s.StyleSheet.create({LocalizationDemo:{marginTop:20,display:"flex",flex:1,alignItems:"center",position:"relative",flexDirection:"column"}});class Xt extends l.a.Component{render(){const{country:e,language:t,direction:n}=s.Platform.Localization||{};return l.a.createElement(s.View,{style:Yt.LocalizationDemo},l.a.createElement(s.View,{style:{height:40,textAlign:"center",backgroundColor:"#4c9afa",borderRadius:5},onTouchDown:this.onAsyncComponentLoad},l.a.createElement(s.Text,{style:{color:"white",marginHorizontal:30,height:40,lineHeight:40,textAlign:"center"}},`国际化相关信息:国家 ${e} | 语言 ${t} | 方向 ${1===n?"RTL":"LTR"}`)))}}const Jt=()=>getTurboModule("demoTurbo").getTurboConfig(),Zt=s.StyleSheet.create({container:{flex:1},cellContentView:{flexDirection:"row",justifyContent:"space-between",backgroundColor:"#ccc",marginBottom:1},funcInfo:{justifyContent:"center",paddingLeft:15,paddingRight:15},actionButton:{backgroundColor:"#4c9afa",color:"#fff",height:44,lineHeight:44,textAlign:"center",width:80,borderRadius:6},resultView:{backgroundColor:"darkseagreen",minHeight:150,padding:15}});class $t extends l.a.Component{constructor(e){super(e),this.state={config:null,result:"",funList:["getString","getNum","getBoolean","getMap","getObject","getArray","nativeWithPromise","getTurboConfig","printTurboConfig","getInfo","setInfo"]},this.onTurboFunc=this.onTurboFunc.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.getRowKey=this.getRowKey.bind(this)}async onTurboFunc(e){let t;if("nativeWithPromise"===e)t=await(async e=>turboPromise(getTurboModule("demoTurbo").nativeWithPromise)(e))("aaa");else if("getTurboConfig"===e)this.config=Jt(),t="获取到config对象";else if("printTurboConfig"===e)n=this.config||Jt(),t=getTurboModule("demoTurbo").printTurboConfig(n);else if("getInfo"===e)t=(this.config||Jt()).getInfo();else if("setInfo"===e)(this.config||Jt()).setInfo("Hello World"),t="设置config信息成功";else{t={getString:()=>{return e="123",getTurboModule("demoTurbo").getString(e);var e},getNum:()=>{return e=1024,getTurboModule("demoTurbo").getNum(e);var e},getBoolean:()=>{return e=!0,getTurboModule("demoTurbo").getBoolean(e);var e},getMap:()=>{return e=new Map([["a","1"],["b",2]]),getTurboModule("demoTurbo").getMap(e);var e},getObject:()=>{return e={c:"3",d:"4"},getTurboModule("demoTurbo").getObject(e);var e},getArray:()=>{return e=["a","b","c"],getTurboModule("demoTurbo").getArray(e);var e}}[e]()}var n;this.setState({result:t})}renderResultView(){return l.a.createElement(s.View,{style:Zt.resultView},l.a.createElement(s.Text,{style:{backgroundColor:"darkseagreen"}},""+this.state.result))}getRenderRow(e){const{funList:t}=this.state;return l.a.createElement(s.View,{style:Zt.cellContentView},l.a.createElement(s.View,{style:Zt.funcInfo},l.a.createElement(s.Text,{numberofLines:0},"函数名:",t[e])),l.a.createElement(s.Text,{style:Zt.actionButton,onClick:()=>this.onTurboFunc(t[e])},"执行"))}getRowKey(e){const{funList:t}=this.state;return t[e]}render(){const{funList:e}=this.state;return l.a.createElement(s.View,{style:Zt.container},this.renderResultView(),l.a.createElement(s.ListView,{numberOfRows:e.length,renderRow:this.getRenderRow,getRowKey:this.getRowKey,style:{flex:1}}))}}function en(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function tn(e){for(var t=1;t0===e.index?l.a.createElement(s.View,{style:[ln.container]},l.a.createElement(s.View,{style:{backgroundColor:ln.title.backgroundColor,marginLeft:12}},l.a.createElement(s.Text,{numberOfLines:1,style:[ln.title,{fontWeight:"bold"}]},t.name)),l.a.createElement(s.View,{style:ln.headerButton},l.a.createElement(s.Text,{numberOfLines:1,style:ln.title},"ver: ","unspecified"!==s.default.version?""+s.default.version:"master"))):l.a.createElement(s.View,{style:[ln.container]},l.a.createElement(s.View,{onClick:()=>e.goBack(),style:[ln.headerButton,"ios"===s.Platform.OS?null:{marginLeft:20}]},l.a.createElement(s.Image,{style:ln.backIcon,source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAIPUlEQVR4Xu2dT8xeQxTGn1O0GiWEaEJCWJCwQLBo/WnRSqhEJUQT0W60G+1Ku1SS2mlXaqM2KqJSSUlajVb9TViwYEHCQmlCQghRgqKPTHLK7Zfvfd97Zt5535l7z91+58zce57fnfe7d+Y+I/Cj1xWQXl+9XzwcgJ5D4AA4AD2vQM8v30cAB6DnFZjA5ZO8VUTenEBX5i58BDCXzJZA8ikA6wFsFpEttuz80Q5AxhqTfAbA2kYXW0VkU8YuzU07AOaStUsg+RyA1bNEFwWBA9BOz9ZRJOcAeAHAqiFJ20VkQ+tGMwY6AGMsLslTAOwGcE+LZneIyLoWcVlDHIAxlVfFfxXACkOTO0VkjSF+7KEOwJhKSnIfgDuNzf0M4BoR+cqYN7ZwByCxlCTnAtgLYLmxqR8ALBGRz4x5Yw13ABLKSfJ0APsBLDU28x2Am0XkC2Pe2MMdgMiSkjwDwAEAi41NBPEXichhY16WcAcgoqwkzwRwCMD1xvRvANxUivjh3B0Ao4IkzwbwFoCrjalf67B/xJiXNdwBMJSX5LkA3gFwpSEthH6pd/63xrzs4Q5AyxKTPB/AuwAub5lyIuxzvfO/N+ZNJNwBaFFmkhcAeA/ApS3CmyGf6qPej8a8iYU7ACNKTfIivfMvNqryMYBbRCS87Cn2cACGSKPivw/gQqOCQfzwnH/UmDfxcAdgQMlJXqLDvlX8DwHcVoP4/hg4WPzLdNhfaLwlw2hxu4j8ZsybWriPADNKT/IKfdQ7z6jK2wDuEJE/jHlTDXcAGuUneZW+5DnHqMpBAHeJyDFj3tTDHQCVgOR1+nr3LKMqYRp4pYj8bcwrItwBAEBykU7sLDCqsgfAfSLyjzGvmPDeA0ByiU7pzjeqEsS/V0SOG/OKCu81ACSX6WKOeUZVdgF4oHbxe/0YSDIs33oFwGlG8ae+js94vkPDezkCkFypq3dPNRaziJW8xnN2AJoVIHm/rtsPS7gtRzFr+S0nPSq2VyOAiv9ixEKYor7mGSWq5e+9AYDkgwDC51rWa94iIpstRa0p1lqMmq7tv3Ml+RCA8KGm9Xo3isi2Ki+65UlbC9Ky2XLCSD4MYHvEGXVe/M4/BpJ8BMDWCPHXi8jTEXnVpXR2BCD5OIDHjIoQwDoRedaYV214JwEg+SSAjUZVgvhrROR5Y17V4Z0DoGHJYhEmTOaEV7svWZK6ENspAGaxZGmjUZjGDTN64bVw747OADDEkmWYqEH8u0Xktd4prxdcPQAtLVlm0/cvXcjRW/GrfwxU8V9uacnShOBPXcL1Rl/v/BPXXe0IYPTjaer8uy7eDN/49f6oEgCSYRo3/NNm8eMJYv+qy7Y/6L3ytf4PkGDJ8ot+sPGRi/9/BaoaARIsWX7S7/Q+cfFPrkA1ACRYsgTxb5y2GVOp4FUBQIIlSxFOXKWKX8VjYIIlSzFOXA5AZAUSLFmKM2OKLEH2tGJ/AhIsWYo0Y8quZGQHRQKQYMlSrBlTpD7Z04oDIMGSpWgzpuxKRnZQFACJ4t8gIsWaMUXqkz2tGAASLFmKd+LKrmJCB0UAQDLWkqUKJ64EfbKnTh2ABEuWqsyYsisZ2cFUAUiwZKnOjClSn+xpUwMgwZKlSjOm7EpGdlAjAOHuDz58VblxReqTPW1qAIQr85+A7PqO7GCqACgEsb58/k/gSHlHB0wdAIXAHwNHa5UloggAFIJYb15/EZSARjEAKASx1uw+DxAJQVEAKASxmzP4TGAEBMUBoBCE7VnC0m3rDh1hLcBiESlub54IbSaSUiQADQhi9ujxBSEGdIoFQCGI3aXLl4S1hKBoABSC2H36fFFoCwiKB0AhiN2p05eFj4CgCgAUgti9ev2roCEQVAOAQhC7W3f4LjDs4uWfhs2AoSoAFIK5avG+vMVPXDPEPw6dpWDVAaAQ+OfhRvoHhVcJgEIQ3L53R7iDuEFEg4ZqAVAI5qj1+yrjDeEWMVqwqgE4ITrJYAFvhcBNoiLcs4032uTCE2zieusRGNTpxAjQGAmCJfxaI3bBJTTs/uVGkcbCFRnuVrE2WTo1AjRGAjeLbslBJwHQJ4RgFR8s4y2H28VbqlV6rG8YMVqhzo4AjZ8D3zJmCAedB0B/DnzTqAEQ9AIAhSB227gnROTR0YNpnRG9AUAhCLuG+saRXZkLiLnnfOvYk6vWqxGg8Y+hbx7dpcmgyJHAt4/v2lyAFQSSy3R10Txj7i7dZey4Ma+48F7+BDRVILkEwH4A843q7NFJpKoh6D0A+nSwCMABAAsiIAjTyWFGscrDAVDZEjyL9unuY2ELuuoOB6AhWYJlzUHdhexYbQQ4ADMUS/AtrNK9zAGY5ZZNcC6tzr/QARgwZqt3cfAoWGgc1qsyr3IAhqibYGAdPIzDp2hHjfBMPNwBGFHyBAv7KoysHYAW91zCDibFO5g5AC0A0JdFwbcoxrKmaAczB6AlAApBrGVNsQ5mDoABAIUg1rKmSPMqB8AIgEIQa1kTzKuCjd2RiG6zpDgAkWVN2Mu4KAczByASAB0JYi1rinEwcwASAFAIgmXN6wCWGpsqwsHMATCqNiic5F4AK4zNBQeza0XksDFvbOEOwJhKSTLGt2iniKwZ0ylENeMARJVt9iSSFt+iHSKybozdRzXlAESVbXASyTa+RdtFZMOYu45qzgGIKtvopCGWNVtFZNPoFiYT4QBkrDPJmZY1W0Rkc8YuzU07AOaS2RIaljUbRWSbLTt/tAOQv8Zhf8Sw0eWhCXRl7sIBMJesWwkOQLf0NF+NA2AuWbcSHIBu6Wm+GgfAXLJuJTgA3dLTfDX/AlSTmJ/JwwOoAAAAAElFTkSuQmCC"}})),l.a.createElement(s.View,{style:ln.headerButton},l.a.createElement(s.Text,{numberOfLines:1,style:ln.title},t.name))));const cn="#4c9afa",hn="#f44837",un=s.StyleSheet.create({rowContainer:{alignItems:"center"},buttonView:{borderColor:cn,borderWidth:2,borderRadius:8,justifyContent:"center",alignItems:"center",width:250,height:50,marginTop:30,borderStyle:"solid"},buttonText:{fontSize:20,color:cn,textAlign:"center",textAlignVertical:"center"}});class dn extends a.Component{constructor(e){super(e),this.state={pressItem:"",dataSource:[...on]},this.renderRow=this.renderRow.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.clickTo=this.clickTo.bind(this)}componentDidMount(){const{history:e}=this.props;"android"===s.Platform.OS&&s.BackAndroid.addListener(()=>(console.log("BackAndroid"),0!==e.index&&(e.goBack(),!0)))}getRowType(e){const{dataSource:t}=this.state;return t[e].meta.style}getRowKey(e){const{dataSource:t}=this.state;return t[e].path||""+e}feedback(e){const t=e||"";this.setState({pressItem:t})}clickTo(e){const{history:t}=this.props;t.push(e)}renderRow(e){const{dataSource:t,pressItem:n}=this.state,o=t[e],{style:r}=o.meta;return l.a.createElement(s.View,{style:un.rowContainer},l.a.createElement(s.View,{onPressIn:()=>this.feedback(o.path),onPressOut:()=>this.feedback(),onClick:()=>this.clickTo(o.path),style:[un.buttonView,{borderColor:1===r?cn:hn,opacity:n===o.path?.5:1}]},l.a.createElement(s.Text,{style:[un.buttonText,{color:1===r?cn:hn}]},o.name)))}render(){const{dataSource:e}=this.state;return l.a.createElement(s.ListView,{style:{flex:1,backgroundColor:"#ffffff"},numberOfRows:e.length,renderRow:this.renderRow,getRowType:this.getRowType,getRowKey:this.getRowKey})}}const mn=[{path:"/Gallery",name:"Hippy React",component:F(dn),meta:{style:1}},...on];var gn=()=>l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#fff"}},l.a.createElement(R,{initialEntries:["/Gallery"]},mn.map(e=>{const t=e.component;return l.a.createElement(P,{key:e.path,exact:!0,path:""+e.path},l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#fff"}},l.a.createElement(sn,{route:e}),l.a.createElement(t,{meta:e.meta||{}})))})));const fn=s.StyleSheet.create({stepText:{color:"#242424",marginBottom:12},container:{flex:1,backgroundColor:"#fff",justifyContent:"center",flexDirection:"column",padding:20},button:{width:140,height:40,borderRadius:8,backgroundColor:"#4c9afa",alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,textAlign:"center",lineHeight:40,color:"#fff"},buttonContainer:{alignItems:"center",marginTop:12,justifyContent:"center"},inputStyle:{width:350,marginTop:30,marginBottom:10,placeholderTextColor:"#aaaaaa",fontSize:16,color:"#242424",height:80,lineHeight:30,borderColor:"#eee",borderWidth:1,borderStyle:"solid"}});function yn({instanceId:e}){const t=Object(a.useRef)(null),n=()=>{t.current.blur()};return l.a.createElement(s.ScrollView,{style:fn.container,onClick:n},["安装远程调试依赖: npm i -D @hippy/debug-server-next@latest","修改 webpack 配置,添加远程调试地址","运行 npm run hippy:dev 开始编译,编译结束后打印出 bundleUrl 及调试首页地址","粘贴 bundleUrl 并点击开始按钮","访问调试首页开始远程调试,远程调试支持热更新(HMR)"].map((e,t)=>l.a.createElement(s.Text,{style:fn.stepText,key:"steps-"+t},t+1,". ",e)),l.a.createElement(s.TextInput,{ref:t,style:fn.inputStyle,placeholder:"please input bundleUrl",multiline:!0,numberOfLines:4,defaultValue:"http://127.0.0.1:38989/index.bundle?debugUrl=ws%3A%2F%2F127.0.0.1%3A38989%2Fdebugger-proxy"}),l.a.createElement(s.View,{style:fn.buttonContainer},l.a.createElement(s.View,{style:fn.button,onClick:()=>{n(),t.current.getValue().then(t=>{t&&Object(s.callNative)("TestModule","remoteDebug",e,t)})}},l.a.createElement(s.Text,{style:fn.buttonText,numberOfLines:1},"开始"))))}const pn=s.StyleSheet.create({container:{flex:1}});class bn extends a.Component{constructor(e){super(e);const{width:t,height:n}=s.Dimensions.get("screen");this.state={isVertical:t{switch(e){case 0:return l.a.createElement(gn,null);case 1:return l.a.createElement(yn,{instanceId:t});default:return l.a.createElement(s.View,{style:wn.blankPage})}})(),l.a.createElement(s.View,{style:wn.buttonContainer},(()=>["API","调试"].map((t,n)=>l.a.createElement(s.View,{key:"button_"+n,style:wn.button,onClick:()=>this.setState({pageIndex:n})},l.a.createElement(s.Text,{style:[wn.buttonText,n===e?{color:"#4c9afa"}:null],numberOfLines:1},t))))()))}}},"./src/main.js":function(e,t,n){"use strict";n.r(t),function(e){var t=n("../../packages/hippy-react/dist/index.js"),o=n("./src/app.jsx");e.Hippy.on("uncaughtException",e=>{console.error("uncaughtException error",e.stack,e.message)}),e.Hippy.on("unhandledRejection",e=>{console.error("unhandledRejection reason",e)}),new t.Hippy({appName:"Demo",entryPage:o.a,bubbles:!1,silent:!1}).start()}.call(this,n("./node_modules/webpack/buildin/global.js"))},0:function(e,t,n){n("./node_modules/regenerator-runtime/runtime.js"),e.exports=n("./src/main.js")},"dll-reference hippyReactBase":function(e,t){e.exports=hippyReactBase}}); \ No newline at end of file + */var o="function"==typeof Symbol&&Symbol.for,r=o?Symbol.for("react.element"):60103,i=o?Symbol.for("react.portal"):60106,a=o?Symbol.for("react.fragment"):60107,l=o?Symbol.for("react.strict_mode"):60108,s=o?Symbol.for("react.profiler"):60114,c=o?Symbol.for("react.provider"):60109,h=o?Symbol.for("react.context"):60110,u=o?Symbol.for("react.async_mode"):60111,d=o?Symbol.for("react.concurrent_mode"):60111,m=o?Symbol.for("react.forward_ref"):60112,g=o?Symbol.for("react.suspense"):60113,f=o?Symbol.for("react.suspense_list"):60120,p=o?Symbol.for("react.memo"):60115,y=o?Symbol.for("react.lazy"):60116,b=o?Symbol.for("react.block"):60121,w=o?Symbol.for("react.fundamental"):60117,x=o?Symbol.for("react.responder"):60118,S=o?Symbol.for("react.scope"):60119;function E(e){if("object"==typeof e&&null!==e){var t=e.$$typeof;switch(t){case r:switch(e=e.type){case u:case d:case a:case s:case l:case g:return e;default:switch(e=e&&e.$$typeof){case h:case m:case y:case p:case c:return e;default:return t}}case i:return t}}}function A(e){return E(e)===d}t.AsyncMode=u,t.ConcurrentMode=d,t.ContextConsumer=h,t.ContextProvider=c,t.Element=r,t.ForwardRef=m,t.Fragment=a,t.Lazy=y,t.Memo=p,t.Portal=i,t.Profiler=s,t.StrictMode=l,t.Suspense=g,t.isAsyncMode=function(e){return A(e)||E(e)===u},t.isConcurrentMode=A,t.isContextConsumer=function(e){return E(e)===h},t.isContextProvider=function(e){return E(e)===c},t.isElement=function(e){return"object"==typeof e&&null!==e&&e.$$typeof===r},t.isForwardRef=function(e){return E(e)===m},t.isFragment=function(e){return E(e)===a},t.isLazy=function(e){return E(e)===y},t.isMemo=function(e){return E(e)===p},t.isPortal=function(e){return E(e)===i},t.isProfiler=function(e){return E(e)===s},t.isStrictMode=function(e){return E(e)===l},t.isSuspense=function(e){return E(e)===g},t.isValidElementType=function(e){return"string"==typeof e||"function"==typeof e||e===a||e===d||e===s||e===l||e===g||e===f||"object"==typeof e&&null!==e&&(e.$$typeof===y||e.$$typeof===p||e.$$typeof===c||e.$$typeof===h||e.$$typeof===m||e.$$typeof===w||e.$$typeof===x||e.$$typeof===S||e.$$typeof===b)},t.typeOf=E},"./node_modules/react-is/index.js":function(e,t,n){"use strict";e.exports=n("./node_modules/react-is/cjs/react-is.production.min.js")},"./node_modules/react/index.js":function(e,t,n){e.exports=n("dll-reference hippyReactBase")("./node_modules/react/index.js")},"./node_modules/regenerator-runtime/runtime.js":function(e,t,n){var o=function(e){"use strict";var t=Object.prototype,n=t.hasOwnProperty,o="function"==typeof Symbol?Symbol:{},r=o.iterator||"@@iterator",i=o.asyncIterator||"@@asyncIterator",a=o.toStringTag||"@@toStringTag";function l(e,t,n){return Object.defineProperty(e,t,{value:n,enumerable:!0,configurable:!0,writable:!0}),e[t]}try{l({},"")}catch(e){l=function(e,t,n){return e[t]=n}}function s(e,t,n,o){var r=t&&t.prototype instanceof u?t:u,i=Object.create(r.prototype),a=new A(o||[]);return i._invoke=function(e,t,n){var o="suspendedStart";return function(r,i){if("executing"===o)throw new Error("Generator is already running");if("completed"===o){if("throw"===r)throw i;return C()}for(n.method=r,n.arg=i;;){var a=n.delegate;if(a){var l=x(a,n);if(l){if(l===h)continue;return l}}if("next"===n.method)n.sent=n._sent=n.arg;else if("throw"===n.method){if("suspendedStart"===o)throw o="completed",n.arg;n.dispatchException(n.arg)}else"return"===n.method&&n.abrupt("return",n.arg);o="executing";var s=c(e,t,n);if("normal"===s.type){if(o=n.done?"completed":"suspendedYield",s.arg===h)continue;return{value:s.arg,done:n.done}}"throw"===s.type&&(o="completed",n.method="throw",n.arg=s.arg)}}}(e,n,a),i}function c(e,t,n){try{return{type:"normal",arg:e.call(t,n)}}catch(e){return{type:"throw",arg:e}}}e.wrap=s;var h={};function u(){}function d(){}function m(){}var g={};l(g,r,(function(){return this}));var f=Object.getPrototypeOf,p=f&&f(f(T([])));p&&p!==t&&n.call(p,r)&&(g=p);var y=m.prototype=u.prototype=Object.create(g);function b(e){["next","throw","return"].forEach((function(t){l(e,t,(function(e){return this._invoke(t,e)}))}))}function w(e,t){var o;this._invoke=function(r,i){function a(){return new t((function(o,a){!function o(r,i,a,l){var s=c(e[r],e,i);if("throw"!==s.type){var h=s.arg,u=h.value;return u&&"object"==typeof u&&n.call(u,"__await")?t.resolve(u.__await).then((function(e){o("next",e,a,l)}),(function(e){o("throw",e,a,l)})):t.resolve(u).then((function(e){h.value=e,a(h)}),(function(e){return o("throw",e,a,l)}))}l(s.arg)}(r,i,o,a)}))}return o=o?o.then(a,a):a()}}function x(e,t){var n=e.iterator[t.method];if(void 0===n){if(t.delegate=null,"throw"===t.method){if(e.iterator.return&&(t.method="return",t.arg=void 0,x(e,t),"throw"===t.method))return h;t.method="throw",t.arg=new TypeError("The iterator does not provide a 'throw' method")}return h}var o=c(n,e.iterator,t.arg);if("throw"===o.type)return t.method="throw",t.arg=o.arg,t.delegate=null,h;var r=o.arg;return r?r.done?(t[e.resultName]=r.value,t.next=e.nextLoc,"return"!==t.method&&(t.method="next",t.arg=void 0),t.delegate=null,h):r:(t.method="throw",t.arg=new TypeError("iterator result is not an object"),t.delegate=null,h)}function S(e){var t={tryLoc:e[0]};1 in e&&(t.catchLoc=e[1]),2 in e&&(t.finallyLoc=e[2],t.afterLoc=e[3]),this.tryEntries.push(t)}function E(e){var t=e.completion||{};t.type="normal",delete t.arg,e.completion=t}function A(e){this.tryEntries=[{tryLoc:"root"}],e.forEach(S,this),this.reset(!0)}function T(e){if(e){var t=e[r];if(t)return t.call(e);if("function"==typeof e.next)return e;if(!isNaN(e.length)){var o=-1,i=function t(){for(;++o=0;--r){var i=this.tryEntries[r],a=i.completion;if("root"===i.tryLoc)return o("end");if(i.tryLoc<=this.prev){var l=n.call(i,"catchLoc"),s=n.call(i,"finallyLoc");if(l&&s){if(this.prev=0;--o){var r=this.tryEntries[o];if(r.tryLoc<=this.prev&&n.call(r,"finallyLoc")&&this.prev=0;--t){var n=this.tryEntries[t];if(n.finallyLoc===e)return this.complete(n.completion,n.afterLoc),E(n),h}},catch:function(e){for(var t=this.tryEntries.length-1;t>=0;--t){var n=this.tryEntries[t];if(n.tryLoc===e){var o=n.completion;if("throw"===o.type){var r=o.arg;E(n)}return r}}throw new Error("illegal catch attempt")},delegateYield:function(e,t,n){return this.delegate={iterator:T(e),resultName:t,nextLoc:n},"next"===this.method&&(this.arg=void 0),h}},e}(e.exports);try{regeneratorRuntime=o}catch(e){"object"==typeof globalThis?globalThis.regeneratorRuntime=o:Function("r","regeneratorRuntime = r")(o)}},"./node_modules/webpack/buildin/global.js":function(e,t,n){e.exports=n("dll-reference hippyReactBase")("./node_modules/webpack/buildin/global.js")},"./src/app.jsx":function(e,t,n){"use strict";n.d(t,"a",(function(){return pn}));var o={};n.r(o),n.d(o,"Focusable",(function(){return W})),n.d(o,"Image",(function(){return q})),n.d(o,"ListView",(function(){return $})),n.d(o,"Modal",(function(){return re})),n.d(o,"RefreshWrapper",(function(){return Ve})),n.d(o,"PullHeaderFooter",(function(){return Re})),n.d(o,"ScrollView",(function(){return De})),n.d(o,"Text",(function(){return Le})),n.d(o,"TextInput",(function(){return Be})),n.d(o,"View",(function(){return _e})),n.d(o,"ViewPager",(function(){return Xe})),n.d(o,"WebView",(function(){return Ze})),n.d(o,"BoxShadow",(function(){return tt})),n.d(o,"WaterfallView",(function(){return rt})),n.d(o,"RippleViewAndroid",(function(){return ut}));var r={};n.r(r),n.d(r,"Animation",(function(){return ft})),n.d(r,"AsyncStorage",(function(){return yt})),n.d(r,"Clipboard",(function(){return wt})),n.d(r,"NetInfo",(function(){return St})),n.d(r,"WebSocket",(function(){return vt})),n.d(r,"UIManagerModule",(function(){return Dt}));var i={};n.r(i),n.d(i,"Slider",(function(){return Bt})),n.d(i,"TabHost",(function(){return Ft})),n.d(i,"SetNativeProps",(function(){return Wt})),n.d(i,"DynamicImport",(function(){return Ut})),n.d(i,"Localization",(function(){return Gt})),n.d(i,"Turbo",(function(){return Yt}));var a=n("./node_modules/react/index.js"),l=n.n(a),s=n("../../packages/hippy-react/dist/index.js"),c=n("./node_modules/@babel/runtime/helpers/esm/inheritsLoose.js");function h(){return(h=Object.assign?Object.assign.bind():function(e){for(var t=1;t=0;h--){var m=r[h];"."===m?d(r,h):".."===m?(d(r,h),c++):c&&(d(r,h),c--)}if(!l)for(;c--;c)r.unshift("..");!l||""===r[0]||r[0]&&u(r[0])||r.unshift("");var g=r.join("/");return n&&"/"!==g.substr(-1)&&(g+="/"),g};var g="Invariant failed";function f(e,t){if(!e)throw new Error(g)}function p(e){var t=e.pathname,n=e.search,o=e.hash,r=t||"/";return n&&"?"!==n&&(r+="?"===n.charAt(0)?n:"?"+n),o&&"#"!==o&&(r+="#"===o.charAt(0)?o:"#"+o),r}function y(e,t,n,o){var r;"string"==typeof e?(r=function(e){var t=e||"/",n="",o="",r=t.indexOf("#");-1!==r&&(o=t.substr(r),t=t.substr(0,r));var i=t.indexOf("?");return-1!==i&&(n=t.substr(i),t=t.substr(0,i)),{pathname:t,search:"?"===n?"":n,hash:"#"===o?"":o}}(e)).state=t:(void 0===(r=h({},e)).pathname&&(r.pathname=""),r.search?"?"!==r.search.charAt(0)&&(r.search="?"+r.search):r.search="",r.hash?"#"!==r.hash.charAt(0)&&(r.hash="#"+r.hash):r.hash="",void 0!==t&&void 0===r.state&&(r.state=t));try{r.pathname=decodeURI(r.pathname)}catch(e){throw e instanceof URIError?new URIError('Pathname "'+r.pathname+'" could not be decoded. This is likely caused by an invalid percent-encoding.'):e}return n&&(r.key=n),o?r.pathname?"/"!==r.pathname.charAt(0)&&(r.pathname=m(r.pathname,o.pathname)):r.pathname=o.pathname:r.pathname||(r.pathname="/"),r}function b(){var e=null;var t=[];return{setPrompt:function(t){return e=t,function(){e===t&&(e=null)}},confirmTransitionTo:function(t,n,o,r){if(null!=e){var i="function"==typeof e?e(t,n):e;"string"==typeof i?"function"==typeof o?o(i,r):r(!0):r(!1!==i)}else r(!0)},appendListener:function(e){var n=!0;function o(){n&&e.apply(void 0,arguments)}return t.push(o),function(){n=!1,t=t.filter((function(e){return e!==o}))}},notifyListeners:function(){for(var e=arguments.length,n=new Array(e),o=0;ot?n.splice(t,n.length-t,o):n.push(o),u({action:"PUSH",location:o,index:t,entries:n})}}))},replace:function(e,t){var o=y(e,t,d(),S.location);c.confirmTransitionTo(o,"REPLACE",n,(function(e){e&&(S.entries[S.index]=o,u({action:"REPLACE",location:o}))}))},go:x,goBack:function(){x(-1)},goForward:function(){x(1)},canGo:function(e){var t=S.index+e;return t>=0&&t=0||(r[n]=e[n]);return r}var C=n("./node_modules/hoist-non-react-statics/dist/hoist-non-react-statics.cjs.js"),v=n.n(C),V=function(e){var t=Object(S.a)();return t.displayName=e,t}("Router"),k=function(e){function t(t){var n;return(n=e.call(this,t)||this).state={location:t.history.location},n._isMounted=!1,n._pendingLocation=null,t.staticContext||(n.unlisten=t.history.listen((function(e){n._isMounted?n.setState({location:e}):n._pendingLocation=e}))),n}Object(c.a)(t,e),t.computeRootMatch=function(e){return{path:"/",url:"/",params:{},isExact:"/"===e}};var n=t.prototype;return n.componentDidMount=function(){this._isMounted=!0,this._pendingLocation&&this.setState({location:this._pendingLocation})},n.componentWillUnmount=function(){this.unlisten&&this.unlisten()},n.render=function(){return l.a.createElement(V.Provider,{children:this.props.children||null,value:{history:this.props.history,location:this.state.location,match:t.computeRootMatch(this.state.location.pathname),staticContext:this.props.staticContext}})},t}(l.a.Component);var R=function(e){function t(){for(var t,n=arguments.length,o=new Array(n),r=0;rthis.onClick(e),requestFocus:0===e,focusStyle:{backgroundColor:"red"},noFocusStyle:{backgroundColor:"blue"}},l.a.createElement(s.Text,{style:{color:"white"}},t===e?"我被点击了"+e:"没有被点击"+e)))}render(){return l.a.createElement(s.ScrollView,null,this.getRenderRow(0),this.getRenderRow(1),this.getRenderRow(2),this.getRenderRow(3),this.getRenderRow(4),this.getRenderRow(5),this.getRenderRow(6),this.getRenderRow(7),this.getRenderRow(8),this.getRenderRow(9),this.getRenderRow(10),this.getRenderRow(11),this.getRenderRow(12),this.getRenderRow(13),this.getRenderRow(14),this.getRenderRow(15),this.getRenderRow(16),this.getRenderRow(17),this.getRenderRow(18))}}var N=n.p+"assets/defaultSource.jpg",U=n.p+"assets/hippyLogoWhite.png";const K="https://user-images.githubusercontent.com/12878546/148736102-7cd9525b-aceb-41c6-a905-d3156219ef16.png",G=s.StyleSheet.create({container_style:{alignItems:"center"},image_style:{width:300,height:180,margin:16,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",borderRadius:4},info_style:{marginTop:15,marginLeft:16,fontSize:16,color:"#4c9afa"}});function q(){return l.a.createElement(s.ScrollView,{style:G.container_style},l.a.createElement(s.Text,{style:G.info_style},"Contain:"),l.a.createElement(s.Image,{style:[G.image_style],resizeMode:s.Image.resizeMode.contain,defaultSource:N,source:{uri:K},onProgress:e=>{console.log("onProgress",e)},onLoadStart:()=>{console.log("image onloadStart")},onLoad:()=>{console.log("image onLoad")},onError:e=>{console.log("image onError",e)},onLoadEnd:()=>{console.log("image onLoadEnd")}}),l.a.createElement(s.Text,{style:G.info_style},"Cover:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:K},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Text,{style:G.info_style},"Center:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:K},resizeMode:s.Image.resizeMode.center}),l.a.createElement(s.Text,{style:G.info_style},"CapInsets:"),l.a.createElement(s.Image,{style:[G.image_style],defaultSource:N,source:{uri:K},capInsets:{top:50,left:50,bottom:50,right:50},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Text,{style:G.info_style},"TintColor:"),l.a.createElement(s.Image,{style:[G.image_style,{tintColor:"#4c9afa99"}],defaultSource:N,source:{uri:U},resizeMode:s.Image.resizeMode.center}),l.a.createElement(s.Text,{style:G.info_style},"Cover GIF:"),l.a.createElement(s.Image,{style:[G.image_style],resizeMode:s.Image.resizeMode.cover,defaultSource:N,source:{uri:"https://user-images.githubusercontent.com/12878546/148736255-7193f89e-9caf-49c0-86b0-548209506bd6.gif"},onLoadEnd:()=>{console.log("gif onLoadEnd")}}))}const Q=[{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5},{style:1},{style:2},{style:5}],Y=s.StyleSheet.create({container:{backgroundColor:"#fff",collapsable:!1},itemContainer:{padding:12},separatorLine:{marginLeft:12,marginRight:12,height:1,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});function X({index:e}){return l.a.createElement(s.View,{style:Y.container,onClickCapture:e=>{console.log("onClickCapture style1",e.target.nodeId,e.currentTarget.nodeId)},onTouchDown:e=>(e.stopPropagation(),console.log("onTouchDown style1",e.target.nodeId,e.currentTarget.nodeId),!1),onClick:e=>(console.log("click style1",e.target.nodeId,e.currentTarget.nodeId),!1)},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 1 UI"))}function J({index:e}){return l.a.createElement(s.View,{style:Y.container},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 2 UI"))}function Z({index:e}){return l.a.createElement(s.View,{style:Y.container},l.a.createElement(s.Text,{numberOfLines:1},e+": Style 5 UI"))}class $ extends l.a.Component{constructor(e){super(e),this.state={dataSource:Q,fetchingDataFlag:!1,horizontal:void 0},this.delText="Delete",this.mockFetchData=this.mockFetchData.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.onEndReached=this.onEndReached.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.getRowStyle=this.getRowStyle.bind(this),this.onDelete=this.onDelete.bind(this),this.onAppear=this.onAppear.bind(this),this.onDisappear=this.onDisappear.bind(this),this.onWillAppear=this.onWillAppear.bind(this),this.onWillDisappear=this.onWillDisappear.bind(this),this.rowShouldSticky=this.rowShouldSticky.bind(this),this.onScroll=this.onScroll.bind(this)}onDelete({index:e}){const{dataSource:t}=this.state,n=t.filter((t,n)=>e!==n);this.setState({dataSource:n})}async onEndReached(){const{dataSource:e,fetchingDataFlag:t}=this.state;if(t)return;this.setState({fetchingDataFlag:!0,dataSource:e.concat([{style:100}])});const n=await this.mockFetchData(),o=e.concat(n);this.setState({dataSource:o,fetchingDataFlag:!1})}onAppear(e){console.log("onAppear",e)}onScroll(e){console.log("onScroll",e.contentOffset.y),e.contentOffset.y<=0?this.topReached||(this.topReached=!0,console.log("onTopReached")):this.topReached=!1}onDisappear(e){console.log("onDisappear",e)}onWillAppear(e){console.log("onWillAppear",e)}onWillDisappear(e){console.log("onWillDisappear",e)}rowShouldSticky(e){return 2===e}getRowType(e){return this.state.dataSource[e].style}getRowStyle(){const{horizontal:e}=this.state;return e?{width:100,height:50}:{}}getRowKey(e){return"row-"+e}getRenderRow(e){const{dataSource:t}=this.state;let n=null;const o=t[e],r=t.length===e+1;switch(o.style){case 1:n=l.a.createElement(X,{index:e});break;case 2:n=l.a.createElement(J,{index:e});break;case 5:n=l.a.createElement(Z,{index:e});break;case 100:n=l.a.createElement(s.Text,{style:Y.loading},"Loading now...")}return l.a.createElement(s.View,{style:Y.container,onClickCapture:e=>{console.log("onClickCapture style outer",e.target.nodeId,e.currentTarget.nodeId)},onTouchDown:e=>(console.log("onTouchDown style outer",e.target.nodeId,e.currentTarget.nodeId),!1),onClick:e=>(console.log("click style outer",e.target.nodeId,e.currentTarget.nodeId),!1)},l.a.createElement(s.View,{style:Y.itemContainer},n),r?null:l.a.createElement(s.View,{style:Y.separatorLine}))}mockFetchData(){return new Promise(e=>{setTimeout(()=>e(Q),600)})}changeDirection(){this.setState({horizontal:void 0===this.state.horizontal||void 0})}render(){const{dataSource:e,horizontal:t}=this.state;return l.a.createElement(s.View,{style:{flex:1,collapsable:!1}},l.a.createElement(s.ListView,{onTouchDown:e=>{console.log("onTouchDown ListView",e.target.nodeId,e.currentTarget.nodeId)},onClickCapture:e=>{console.log("onClickCapture listview",e.target.nodeId,e.currentTarget.nodeId)},onClick:e=>(console.log("click listview",e.target.nodeId,e.currentTarget.nodeId),!0),bounces:!0,horizontal:t,style:[{backgroundColor:"#ffffff"},t?{height:50}:{flex:1}],numberOfRows:e.length,renderRow:this.getRenderRow,onEndReached:this.onEndReached,getRowType:this.getRowType,onDelete:this.onDelete,onMomentumScrollBegin:e=>console.log("onMomentumScrollBegin",e),onMomentumScrollEnd:e=>console.log("onMomentumScrollEnd",e),onScrollBeginDrag:e=>console.log("onScrollBeginDrag",e),onScrollEndDrag:e=>console.log("onScrollEndDrag",e),delText:this.delText,editable:!0,getRowStyle:this.getRowStyle,getRowKey:this.getRowKey,initialListSize:15,rowShouldSticky:this.rowShouldSticky,onAppear:this.onAppear,onDisappear:this.onDisappear,onWillAppear:this.onWillAppear,onWillDisappear:this.onWillDisappear,onScroll:this.onScroll,scrollEventThrottle:1e3}),"android"===s.Platform.OS?l.a.createElement(s.View,{onClick:()=>this.changeDirection(),style:{position:"absolute",right:20,bottom:20,width:67,height:67,borderRadius:30,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:3,boxShadowOffsetY:3,boxShadowColor:"#4c9afa"}},l.a.createElement(s.View,{style:{width:60,height:60,borderRadius:30,backgroundColor:"#4c9afa",display:"flex",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white"}},"切换方向"))):null)}}const ee="#4c9afa",te="#4c9afa",ne="white",oe=s.StyleSheet.create({container:{flex:1,flexDirection:"row",justifyContent:"center"},buttonView:{borderColor:ee,borderWidth:2,borderStyle:"solid",borderRadius:8,justifyContent:"center",alignItems:"center",width:250,height:50,marginTop:30},buttonText:{fontSize:20,color:ee,textAlign:"center",textAlignVertical:"center"}});class re extends l.a.Component{constructor(e){super(e),this.state={visible:!1,press:!1},this.show=this.show.bind(this),this.hide=this.hide.bind(this)}feedback(e){this.setState({press:"in"===e})}show(){this.setState({visible:!0})}hide(){this.setState({visible:!1})}render(){const{press:e,visible:t}=this.state;return l.a.createElement(s.ScrollView,null,l.a.createElement(s.View,{style:oe.container},l.a.createElement(s.View,{onPressIn:()=>this.feedback("in"),onPressOut:()=>this.feedback("out"),onClick:this.show,style:[oe.buttonView,{borderColor:ee,opacity:e?.5:1}]},l.a.createElement(s.Text,{style:[oe.buttonText,{color:ee}]},"点击弹出浮层"))),l.a.createElement(s.Modal,{transparent:!0,animationType:"slide_fade",visible:t,onRequestClose:()=>{},supportedOrientations:["portrait"],immersionStatusBar:!0},l.a.createElement(s.View,{style:{flex:1,flexDirection:"row",justifyContent:"center",backgroundColor:"#4c9afa88"}},l.a.createElement(s.View,{onClick:this.hide,style:{width:200,height:200,backgroundColor:te,marginTop:300,flexDirection:"row",justifyContent:"center"}},l.a.createElement(s.Text,{style:{color:ne,fontSize:22,marginTop:80}},"点击关闭浮层")))))}}const ie="https://user-images.githubusercontent.com/12878546/148736841-59ce5d1c-8010-46dc-8632-01c380159237.jpg",ae={style:1,itemBean:{title:"非洲总统出行真大牌,美制武装直升机和中国潜艇为其保驾",picList:[ie,ie,ie],subInfo:["三图评论","11评"]}},le={style:2,itemBean:{title:"彼得·泰尔:认知未来是投资人的谋生之道",picUrl:"https://user-images.githubusercontent.com/12878546/148736850-4fc13304-25d4-4b6a-ada3-cbf0745666f5.jpg",subInfo:["左文右图"]}},se={style:5,itemBean:{title:"愤怒!美官员扬言:“不让中国拿走南海的岛屿,南海岛礁不属于中国”?",picUrl:"https://user-images.githubusercontent.com/12878546/148736859-29e3a5b2-612a-4fdd-ad21-dc5d29fa538f.jpg",subInfo:["六眼神魔 5234播放"]}};var ce=[se,ae,le,ae,le,ae,le,se,ae],he=n("./node_modules/@babel/runtime/helpers/extends.js"),ue=n.n(he);var de={getScreenWidth(){const e=s.Dimensions.get("screen").width,t=s.Dimensions.get("screen").height,n=e>t?t:e;return Math.floor(n)},uniqueArray(e){const t=[];for(let n=0;n=812&&s.PixelRatio.get()>=2&&(e=!0),e}};const me=(de.getScreenWidth()-24-12)/3,ge=Math.floor(me/1.35),fe=s.StyleSheet.create({imageContainer:{flexDirection:"row",justifyContent:"center",height:ge,marginTop:8},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},image:{width:me,height:ge},title:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24,color:"#242424"},tagLine:{marginTop:8,height:20,flexDirection:"row",justifyContent:"flex-start"}});function pe(e){const{itemBean:{title:t,picList:n}}=e;let{itemBean:{subInfo:o}}=e,r=null;if(o&&o.length){o=de.uniqueArray(o);const e=o.join(" ");r=l.a.createElement(s.Text,{style:fe.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,ue()({},e,{style:{collapsable:!1}}),l.a.createElement(s.Text,{style:[fe.title],numberOfLines:2,enableScale:!0},t),l.a.createElement(s.View,{style:fe.imageContainer},l.a.createElement(s.Image,{style:fe.image,source:{uri:n[0]},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Image,{style:[fe.image,{marginLeft:6,marginRight:6}],source:{uri:n[1]},resizeMode:s.Image.resizeMode.cover}),l.a.createElement(s.Image,{style:fe.image,source:{uri:n[2]},resizeMode:s.Image.resizeMode.cover})),r?l.a.createElement(s.View,{style:fe.tagLine},r):null)}const ye=de.getScreenWidth()-24,be=Math.floor(ye-12)/3,we=Math.floor(be/1.35),xe=s.StyleSheet.create({container:{flexDirection:"row",justifyContent:"space-between",height:we},leftContainer:{flex:1,flexDirection:"column",justifyContent:"center",marginRight:8},imageContainer:{width:be,height:we},image:{width:be,height:we},title:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24},tagLine:{marginTop:8,height:20,flexDirection:"row",justifyContent:"flex-start"},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});function Se(e){if("undefined"===e)return null;const{itemBean:t}=e;if(!t)return null;let n=null;const{title:o,picUrl:r}=t;let{subInfo:i}=t;if(i&&i.length){i=de.uniqueArray(i);const e=i.join(" ");n=l.a.createElement(s.Text,{style:xe.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,ue()({},e,{style:xe.container}),l.a.createElement(s.View,{style:xe.leftContainer},l.a.createElement(s.Text,{style:xe.title,numberOfLines:2,enableScale:!0},o),n?l.a.createElement(s.View,{style:xe.tagLine},n):null),l.a.createElement(s.View,{style:xe.imageContainer},l.a.createElement(s.Image,{resizeMode:s.Image.resizeMode.cover,style:xe.image,source:{uri:r}})))}const Ee=de.getScreenWidth()-24,Ae=Math.floor(188*Ee/336),Te=s.StyleSheet.create({text:{fontSize:"android"===s.Platform.OS?17:18,lineHeight:24,color:"#242424"},playerView:{marginTop:8,alignItems:"center",width:Ee,height:Ae,alignSelf:"center"},image:{width:Ee,height:Ae},normalText:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},tagLine:{marginTop:8,flexDirection:"row",justifyContent:"space-between",alignItems:"center"}});function Ce(e){if("undefined"===e)return null;const{itemBean:t}=e;if(!t)return null;const{title:n,picUrl:o}=t;let{subInfo:r}=t,i=null;if(r&&r.length){r=de.uniqueArray(r);const e=r.join(" ");i=l.a.createElement(s.Text,{style:Te.normalText,numberOfLines:1},e)}return l.a.createElement(s.View,e,l.a.createElement(s.Text,{style:Te.text,numberOfLines:2,enableScale:!0},n),l.a.createElement(s.View,{style:Te.playerView},l.a.createElement(s.Image,{style:Te.image,source:{uri:o},resizeMode:s.Image.resizeMode.cover})),i?l.a.createElement(s.View,{style:Te.tagLine},i):null)}const ve=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},spliter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"}});class Ve extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],loadingState:"正在加载..."},this.fetchTimes=0,this.mockFetchData=this.mockFetchData.bind(this),this.onRefresh=this.onRefresh.bind(this),this.getRefresh=this.getRefresh.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.onEndReached=this.onEndReached.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e})}async onEndReached(){const{dataSource:e,fetchingDataFlag:t}=this.state;if(t)return;this.setState({fetchingDataFlag:!0,dataSource:e.concat([{style:100}])});const n=await this.mockFetchData(),o=e[e.length-1];o&&100===o.style&&e.pop();const r=e.concat(n);this.setState({dataSource:r})}onRefresh(){setTimeout(async()=>{const e=await this.mockFetchData();this.setState({dataSource:e}),this.refresh.refreshComplected()},1e3)}onClickItem(e){console.log(`item: ${e} is clicked..`)}getRenderRow(e){const{dataSource:t,loadingState:n}=this.state;let o=null;const r=t[e],i=t.length===e+1;switch(r.style){case 1:o=l.a.createElement(pe,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 2:o=l.a.createElement(Se,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 5:o=l.a.createElement(Ce,{itemBean:r.itemBean,onClick:()=>this.onClickItem(e)});break;case 100:o=l.a.createElement(s.Text,{style:ve.loading},n)}return l.a.createElement(s.View,{style:ve.container},l.a.createElement(s.View,{style:ve.itemContainer},o),i?null:l.a.createElement(s.View,{style:ve.spliter}))}getRowType(e){return this.state.dataSource[e].style}getRowKey(e){return"row-"+e}getRefresh(){return l.a.createElement(s.View,{style:{flex:1,height:30}},l.a.createElement(s.Text,{style:{flex:1,textAlign:"center"}},"下拉刷新中..."))}mockFetchData(){return new Promise(e=>{setTimeout(()=>(this.setState({fetchingDataFlag:!1}),this.fetchTimes+=1,this.fetchTimes>=50?e([]):e(ce)),600)})}render(){const{dataSource:e}=this.state;return l.a.createElement(s.RefreshWrapper,{ref:e=>{this.refresh=e},style:{flex:1},onRefresh:this.onRefresh,bounceTime:100,getRefresh:this.getRefresh},l.a.createElement(s.ListView,{style:{flex:1,backgroundColor:"#ffffff"},numberOfRows:e.length,renderRow:this.getRenderRow,onEndReached:this.onEndReached,getRowType:this.getRowType,getRowKey:this.getRowKey}))}}const ke=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},splitter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},pullContainer:{flex:1,height:50,backgroundColor:"#4c9afa"},pullContent:{lineHeight:50,color:"white",height:50,textAlign:"center"},pullFooter:{height:40,flex:1,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}});class Re extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],headerRefreshText:"继续下拉触发刷新",footerRefreshText:"正在加载...",horizontal:void 0},this.loadMoreDataFlag=!1,this.fetchingDataFlag=!1,this.mockFetchData=this.mockFetchData.bind(this),this.renderRow=this.renderRow.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.getHeaderStyle=this.getHeaderStyle.bind(this),this.getFooterStyle=this.getFooterStyle.bind(this),this.getRowStyle=this.getRowStyle.bind(this),this.renderPullHeader=this.renderPullHeader.bind(this),this.renderPullFooter=this.renderPullFooter.bind(this),this.onEndReached=this.onEndReached.bind(this),this.onHeaderReleased=this.onHeaderReleased.bind(this),this.onHeaderPulling=this.onHeaderPulling.bind(this),this.onFooterPulling=this.onFooterPulling.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e}),this.listView.collapsePullHeader()}mockFetchData(){return new Promise(e=>{setTimeout(()=>e(ce),800)})}async onEndReached(){const{dataSource:e}=this.state;if(this.loadMoreDataFlag)return;this.loadMoreDataFlag=!0,this.setState({footerRefreshText:"加载更多..."});let t=[];try{t=await this.mockFetchData()}catch(e){}0===t.length&&this.setState({footerRefreshText:"没有更多数据"});const n=[...e,...t];this.setState({dataSource:n}),this.loadMoreDataFlag=!1,this.listView.collapsePullFooter()}async onHeaderReleased(){if(this.fetchingDataFlag)return;this.fetchingDataFlag=!0,console.log("onHeaderReleased"),this.setState({headerRefreshText:"刷新数据中,请稍等"});let e=[];try{e=await this.mockFetchData(),e=e.reverse()}catch(e){}this.fetchingDataFlag=!1,this.setState({dataSource:e,headerRefreshText:"2秒后收起"},()=>{this.listView.collapsePullHeader({time:2e3})})}onHeaderPulling(e){this.fetchingDataFlag||(console.log("onHeaderPulling",e.contentOffset),e.contentOffset>ke.pullContent.height?this.setState({headerRefreshText:"松手,即可触发刷新"}):this.setState({headerRefreshText:"继续下拉,触发刷新"}))}onFooterPulling(e){console.log("onFooterPulling",e)}onClickItem(e,t){console.log(`item: ${e} is clicked..`,t.target.nodeId,t.currentTarget.nodeId)}getRowType(e){return this.state.dataSource[e].style}getRowKey(e){return"row-"+e}getHeaderStyle(){const{horizontal:e}=this.state;return e?{width:50}:{}}renderPullHeader(){const{headerRefreshText:e,horizontal:t}=this.state;return t?l.a.createElement(s.View,{style:{width:40,height:300,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{lineHeight:25,color:"white",width:40,paddingHorizontal:15}},e)):l.a.createElement(s.View,{style:ke.pullContainer},l.a.createElement(s.Text,{style:ke.pullContent},e))}getFooterStyle(){const{horizontal:e}=this.state;return e?{width:40}:{}}renderPullFooter(){const{horizontal:e}=this.state;return e?l.a.createElement(s.View,{style:{width:40,height:300,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white",lineHeight:25,width:40,paddingHorizontal:15}},this.state.footerRefreshText)):l.a.createElement(s.View,{style:ke.pullFooter},l.a.createElement(s.Text,{style:{color:"white"}},this.state.footerRefreshText))}renderRow(e){const{dataSource:t}=this.state;let n=null;const o=t[e],r=t.length===e+1;switch(o.style){case 1:n=l.a.createElement(pe,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)});break;case 2:n=l.a.createElement(Se,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)});break;case 5:n=l.a.createElement(Ce,{itemBean:o.itemBean,onClick:t=>this.onClickItem(e,t)})}return l.a.createElement(s.View,{style:ke.container},l.a.createElement(s.View,{style:ke.itemContainer},n),r?null:l.a.createElement(s.View,{style:ke.splitter}))}getRowStyle(){const{horizontal:e}=this.state;return e?{height:300,justifyContent:"center",alignItems:"center"}:{}}changeDirection(){this.setState({horizontal:void 0===this.state.horizontal||void 0})}render(){const{dataSource:e,horizontal:t}=this.state;return l.a.createElement(s.View,{style:{flex:1,collapsable:!1}},l.a.createElement(s.ListView,{horizontal:t,onClick:e=>console.log("ListView",e.target.nodeId,e.currentTarget.nodeId),ref:e=>{this.listView=e},style:[{backgroundColor:"#ffffff"},t?{height:300}:{flex:1}],numberOfRows:e.length,getRowType:this.getRowType,getRowKey:this.getRowKey,getHeaderStyle:this.getHeaderStyle,getFooterStyle:this.getFooterStyle,getRowStyle:this.getRowStyle,renderRow:this.renderRow,renderPullHeader:this.renderPullHeader,renderPullFooter:this.renderPullFooter,onHeaderReleased:this.onHeaderReleased,onHeaderPulling:this.onHeaderPulling,onFooterReleased:this.onEndReached,onFooterPulling:this.onFooterPulling}),"android"===s.Platform.OS?l.a.createElement(s.View,{onClick:()=>this.changeDirection(),style:{position:"absolute",right:20,bottom:20,width:67,height:67,borderRadius:30,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:3,boxShadowOffsetY:3,boxShadowColor:"#4c9afa"}},l.a.createElement(s.View,{style:{width:60,height:60,borderRadius:30,backgroundColor:"#4c9afa",display:"flex",justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{color:"white"}},"切换方向"))):null)}}const Ie=s.StyleSheet.create({itemStyle:{width:100,height:100,lineHeight:100,borderWidth:1,borderStyle:"solid",borderColor:"#4c9afa",fontSize:80,margin:20,color:"#4c9afa",textAlign:"center"},verticalScrollView:{height:300,width:140,margin:20,borderColor:"#eee",borderWidth:1,borderStyle:"solid"},itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10}});function De(){return l.a.createElement(s.ScrollView,null,l.a.createElement(s.View,{style:Ie.itemTitle},l.a.createElement(s.Text,null,"Horizontal ScrollView")),l.a.createElement(s.View,null,l.a.createElement(s.ScrollView,{horizontal:!0,bounces:!0,showsHorizontalScrollIndicator:!1,showScrollIndicator:!1,onScroll:e=>console.log("onScroll",e),onMomentumScrollBegin:e=>console.log("onMomentumScrollBegin",e),onMomentumScrollEnd:e=>console.log("onMomentumScrollEnd",e),onScrollBeginDrag:e=>console.log("onScrollBeginDrag",e),onScrollEndDrag:e=>console.log("onScrollEndDrag",e)},l.a.createElement(s.Text,{style:Ie.itemStyle},"A"),l.a.createElement(s.Text,{style:Ie.itemStyle},"B"),l.a.createElement(s.Text,{style:Ie.itemStyle},"C"),l.a.createElement(s.Text,{style:Ie.itemStyle},"D"),l.a.createElement(s.Text,{style:Ie.itemStyle},"E"),l.a.createElement(s.Text,{style:Ie.itemStyle},"F"),l.a.createElement(s.Text,{style:Ie.itemStyle},"A"))),l.a.createElement(s.View,{style:Ie.itemTitle},l.a.createElement(s.Text,null,"Vertical ScrollView")),l.a.createElement(s.ScrollView,{bounces:!0,horizontal:!1,style:Ie.verticalScrollView,showScrollIndicator:!1,showsVerticalScrollIndicator:!1},l.a.createElement(s.Text,{style:Ie.itemStyle},"A"),l.a.createElement(s.Text,{style:Ie.itemStyle},"B"),l.a.createElement(s.Text,{style:Ie.itemStyle},"C"),l.a.createElement(s.Text,{style:Ie.itemStyle},"D"),l.a.createElement(s.Text,{style:Ie.itemStyle},"E"),l.a.createElement(s.Text,{style:Ie.itemStyle},"F"),l.a.createElement(s.Text,{style:Ie.itemStyle},"A")))}const Oe="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAANlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3dmhyAAAAEXRSTlMA9QlZEMPc2Mmmj2VkLEJ4Rsx+pEgAAAChSURBVCjPjVLtEsMgCDOAdbbaNu//sttVPes+zvGD8wgQCLp/TORbUGMAQtQ3UBeSAMlF7/GV9Cmb5eTJ9R7H1t4bOqLE3rN2UCvvwpLfarhILfDjJL6WRKaXfzxc84nxAgLzCGSGiwKwsZUB8hPorZwUV1s1cnGKw+yAOrnI+7hatNIybl9Q3OkBfzopCw6SmDVJJiJ+yD451OS0/TNM7QnuAAbvCG0TSAAAAABJRU5ErkJggg==",Pe=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},itemContent:{alignItems:"flex-start",justifyContent:"center",borderWidth:1,borderStyle:"solid",borderRadius:2,borderColor:"#e0e0e0",backgroundColor:"#ffffff",padding:10},normalText:{fontSize:14,lineHeight:18,color:"black"},buttonBar:{flexDirection:"row",marginTop:10,flexGrow:1},button:{height:24,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",flexGrow:1,flexShrink:1},buttonText:{lineHeight:24,textAlign:"center",paddingHorizontal:20},customFont:{color:"#0052d9",fontSize:32,fontFamily:"TTTGB"}});let je=0;class Le extends l.a.Component{constructor(e){super(e),this.state={fontSize:16,textShadowColor:"grey",textShadowOffset:{x:1,y:1},numberOfLines:2,ellipsizeMode:void 0},this.incrementFontSize=this.incrementFontSize.bind(this),this.decrementFontSize=this.decrementFontSize.bind(this),this.incrementLine=this.incrementLine.bind(this),this.decrementLine=this.decrementLine.bind(this),this.changeMode=this.changeMode.bind(this)}incrementFontSize(){const{fontSize:e}=this.state;24!==e&&this.setState({fontSize:e+1})}decrementFontSize(){const{fontSize:e}=this.state;6!==e&&this.setState({fontSize:e-1})}incrementLine(){const{numberOfLines:e}=this.state;e<6&&this.setState({numberOfLines:e+1})}decrementLine(){const{numberOfLines:e}=this.state;e>1&&this.setState({numberOfLines:e-1})}changeMode(e){this.setState({ellipsizeMode:e})}changeBreakStrategy(e){this.setState({breakStrategy:e})}render(){const{fontSize:e,textShadowColor:t,textShadowOffset:n,numberOfLines:o,ellipsizeMode:r,breakStrategy:i}=this.state,a=e=>l.a.createElement(s.View,{style:Pe.itemTitle},l.a.createElement(s.Text,{style:!0},e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},a("shadow"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:60}],onClick:()=>{let e="red",t={x:10,y:1};je%2==1&&(e="grey",t={x:1,y:1}),je+=1,this.setState({textShadowColor:e,textShadowOffset:t})}},l.a.createElement(s.Text,{style:[Pe.normalText,{color:"#242424",textShadowOffset:n,textShadowRadius:3,textShadowColor:t}]},"Text shadow is grey with radius 3 and offset 1")),a("color"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:80}]},l.a.createElement(s.Text,{style:[Pe.normalText,{color:"#242424"}]},"Text color is black"),l.a.createElement(s.Text,{style:[Pe.normalText,{color:"blue"}]},"Text color is blue"),l.a.createElement(s.Text,{style:[Pe.normalText,{color:"rgb(228,61,36)"}]},"This is red")),a("fontSize"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{style:[Pe.normalText,{fontSize:e}]},"Text fontSize is "+e),l.a.createElement(s.View,{style:Pe.button,onClick:this.incrementFontSize},l.a.createElement(s.Text,{style:Pe.buttonText},"放大字体")),l.a.createElement(s.View,{style:Pe.button,onClick:this.decrementFontSize},l.a.createElement(s.Text,{style:Pe.buttonText},"缩小字体"))),a("fontStyle"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{style:[Pe.normalText,{fontStyle:"normal"}]},"Text fontStyle is normal"),l.a.createElement(s.Text,{style:[Pe.normalText,{fontStyle:"italic"}]},"Text fontStyle is italic")),a("numberOfLines and ellipsizeMode"),l.a.createElement(s.View,{style:[Pe.itemContent]},l.a.createElement(s.Text,{style:[Pe.normalText,{marginBottom:10}]},`numberOfLines=${o} | ellipsizeMode=${r}`),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{lineHeight:void 0,backgroundColor:"#4c9afa",marginBottom:10,paddingHorizontal:10,paddingVertical:5}]},l.a.createElement(s.Text,{style:{fontSize:19,color:"white"}},"先帝创业未半而中道崩殂,今天下三分,益州疲弊,此诚危急存亡之秋也。"),l.a.createElement(s.Text,null,"然侍卫之臣不懈于内,忠志之士忘身于外者,盖追先帝之殊遇,欲报之于陛下也。")),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{backgroundColor:"#4c9afa",marginBottom:10,color:"white",paddingHorizontal:10,paddingVertical:5}]},"line 1\n\nline 3\n\nline 5"),l.a.createElement(s.Text,{numberOfLines:o,ellipsizeMode:r,style:[Pe.normalText,{lineHeight:void 0,backgroundColor:"#4c9afa",marginBottom:10,paddingHorizontal:10,paddingVertical:5}]},l.a.createElement(s.Image,{style:{width:24,height:24},source:{uri:Oe}}),l.a.createElement(s.Image,{style:{width:24,height:24},source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABgAAAAYCAMAAADXqc3KAAAANlBMVEUAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAC3dmhyAAAAEnRSTlMA/QpX7WQU2m27pi3Ej9KEQXaD5HhjAAAAqklEQVQoz41SWxLDIAh0RcFXTHL/yzZSO01LMpP9WJEVUNA9gfdXTioCSKE/kQQTQmf/ArRYva+xAcuPP37seFII2L7FN4BmXdHzlEPIpDHiZ0A7eIViPcw2QwqipkvMSdNEFBUE1bmMNOyE7FyFaIkAP4jHhhG80lvgkzBODTKpwhRMcexuR7fXzcp08UDq6GRbootp4oRtO3NNpd4NKtnR9hB6oaefweIFQU0EfnGDRoQAAAAASUVORK5CYII="}}),l.a.createElement(s.Text,null,"Text + Attachment")),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:this.incrementLine},l.a.createElement(s.Text,{style:Pe.buttonText},"加一行")),l.a.createElement(s.View,{style:Pe.button,onClick:this.decrementLine},l.a.createElement(s.Text,{style:Pe.buttonText},"减一行"))),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("clip")},l.a.createElement(s.Text,{style:Pe.buttonText},"clip")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("head")},l.a.createElement(s.Text,{style:Pe.buttonText},"head")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("middle")},l.a.createElement(s.Text,{style:Pe.buttonText},"middle")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeMode("tail")},l.a.createElement(s.Text,{style:Pe.buttonText},"tail")))),a("textDecoration"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{textDecorationLine:"underline",textDecorationStyle:"dotted"}]},"underline"),l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{textDecorationLine:"line-through",textDecorationColor:"red"}]},"line-through")),a("LetterSpacing"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{letterSpacing:-1}]},"Text width letter-spacing -1"),l.a.createElement(s.Text,{numberOfLines:1,style:[Pe.normalText,{letterSpacing:5}]},"Text width letter-spacing 5")),a("Nest Text"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:3},l.a.createElement(s.Text,{numberOfLines:3,style:[Pe.normalText,{color:"#4c9afa"}]},"#SpiderMan#"),l.a.createElement(s.Text,{numberOfLines:3,style:Pe.normalText},"Hello world, I am a spider man and I have five friends in other universe."))),a("Custom font"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:100}]},l.a.createElement(s.Text,{numberOfLines:1,style:Pe.customFont},"Hippy 跨端框架")),a("Text Nested"),l.a.createElement(s.View,{style:[Pe.itemContent,{height:150}]},l.a.createElement(s.Text,{style:{height:100,lineHeight:50}},l.a.createElement(s.Text,{numberOfLines:1,style:Pe.normalText},"后面有张图片"),l.a.createElement(s.Image,{style:{width:70,height:35},source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAGAAAAAtCAMAAABmgJ64AAAAOVBMVEX/Rx8AAAD/QiL/Tif/QyH/RR//QiH/QiP/RCD/QSL/Qxz/QyH/QiL/QiD/QyL/QiL/QiH/QyH/QiLwirLUAAAAEnRSTlMZAF4OTC7DrWzjI4iietrRk0EEv/0YAAAB0UlEQVRYw72Y0Y6sIAxAKwUFlFH7/x97izNXF2lN1pU5D800jD2hJAJCdwYZuAUyVbmToKh903IhQHgErAVH+ccV0KI+G2oBPMxJgPA4WAigAT8F0IRDgNAE3ARyfeMFDGSc3YHVFkTBAHKDAgkEyHjacae/GTjxFqAo8NbakXrL9DRy9B+BCQwRcXR9OBKmEuAmAFFgcy0agBnIc1xZsMPOI5loAoUsQFmQjDEL9YbpaeGYBMGRKKAuqFEFL/JXApCw/zFEZk9qgbLGBx0gXLISxT25IUBREEgh1II1fph/IViGnZnCcDDVAgfgVg6gCy6ZaClySbDQpAl04vCGaB4+xGcFRK8CLvW0IBb5bQGqAlNwU4C6oEIVTLTcmoEr0AWcpKsZ/H0NAtkLQffnFjkOqiC/TTWBL9AFCwXQBHgI7rXImMgjCZwFa50s6DRBXyALmIECuMASiWNPFgRTgSJwM+XW8PDCmbwndzdaNL8FMYXPNjASDVChnIvWlBI/MKadPV952HszbmXtRERhhQ0vGFA52SVSSVt7MjHvxfRK8cdTpqovn02dUcltMrwiKf+wQ1FxXKCk9en6e/eDNnP44h2thQEb35O/etNv/q3iHza+KuhqqhZAAAAAAElFTkSuQmCC"}}),l.a.createElement(s.Text,{numberOfLines:1,style:Pe.customFont},"前面有张图片")),l.a.createElement(s.View,{style:{flexDirection:"row",alignItems:"center",justifyContent:"center",paddingHorizontal:10,paddingVertical:5,backgroundColor:"#4c9afa"}},l.a.createElement(s.Image,{style:{width:24,height:24,alignSelf:"center"},source:{uri:Oe}}),l.a.createElement(s.Text,{style:{fontSize:15,alignItems:"center",justifyContent:"center"}},"Image+Text"))),"android"===s.Platform.OS&&a("breakStrategy"),"android"===s.Platform.OS&&l.a.createElement(s.View,{style:Pe.itemContent},l.a.createElement(s.Text,{style:[Pe.normalText,{borderWidth:1,borderColor:"gray"}],breakStrategy:i},"The 58-letter name Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is the name of a town on Anglesey, an island of Wales."),l.a.createElement(s.Text,{style:Pe.normalText},"breakStrategy: "+i),l.a.createElement(s.View,{style:Pe.buttonBar},l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("simple")},l.a.createElement(s.Text,{style:Pe.buttonText},"simple")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("high_quality")},l.a.createElement(s.Text,{style:Pe.buttonText},"high_quality")),l.a.createElement(s.View,{style:Pe.button,onClick:()=>this.changeBreakStrategy("balanced")},l.a.createElement(s.Text,{style:Pe.buttonText},"balanced")))))}}const Me=s.StyleSheet.create({container_style:{padding:10},input_style:{width:300,marginVertical:10,fontSize:16,color:"#242424",height:30,lineHeight:30},input_style_block:{height:100,lineHeight:20,fontSize:15,borderWidth:1,borderColor:"gray",underlineColorAndroid:"transparent"},itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},itemContent:{marginTop:10},buttonBar:{flexDirection:"row",marginTop:10,flexGrow:1},button:{width:200,height:24,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",marginTop:5,marginBottom:5,flexGrow:1,flexShrink:1}});class Be extends a.Component{constructor(e){super(e),this.state={textContent:""},this.changeInputContent=this.changeInputContent.bind(this),this.focus=this.focus.bind(this),this.blur=this.blur.bind(this)}changeInputContent(){this.setState({textContent:"当前时间毫秒:"+Date.now()})}focus(){this.input.focus()}blur(){this.input.blur()}async onFocus(){const e=await this.input.isFocused();this.setState({event:"onFocus",isFocused:e})}async onBlur(){const e=await this.input.isFocused();this.setState({event:"onBlur",isFocused:e})}changeBreakStrategy(e){this.setState({breakStrategy:e})}render(){const{textContent:e,event:t,isFocused:n,breakStrategy:o}=this.state,r=e=>l.a.createElement(s.View,{style:Me.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:Me.container_style},r("text"),l.a.createElement(s.TextInput,{ref:e=>{this.input=e},style:Me.input_style,caretColor:"yellow",underlineColorAndroid:"grey",placeholderTextColor:"#4c9afa",placeholder:"text",defaultValue:e,onBlur:()=>this.onBlur(),onFocus:()=>this.onFocus()}),l.a.createElement(s.Text,{style:Me.itemContent},`事件: ${t} | isFocused: ${n}`),l.a.createElement(s.View,{style:Me.button,onClick:this.changeInputContent},l.a.createElement(s.Text,null,"点击改变输入框内容")),l.a.createElement(s.View,{style:Me.button,onClick:this.focus},l.a.createElement(s.Text,null,"Focus")),l.a.createElement(s.View,{style:Me.button,onClick:this.blur},l.a.createElement(s.Text,null,"Blur")),r("numeric"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"numeric",placeholder:"numeric"}),r("phone-pad"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"phone-pad",placeholder:"phone-pad"}),r("password"),l.a.createElement(s.TextInput,{style:Me.input_style,keyboardType:"password",placeholder:"Password",multiline:!1}),r("maxLength"),l.a.createElement(s.TextInput,{caretColor:"yellow",style:Me.input_style,placeholder:"maxLength=5",maxLength:5}),"android"===s.Platform.OS&&r("breakStrategy"),"android"===s.Platform.OS&&l.a.createElement(l.a.Fragment,null,l.a.createElement(s.TextInput,{style:Me.input_style_block,breakStrategy:o,defaultValue:"The 58-letter name Llanfairpwllgwyngyllgogerychwyrndrobwllllantysiliogogogoch is the name of a town on Anglesey, an island of Wales."}),l.a.createElement(s.Text,{style:{}},"breakStrategy: "+o),l.a.createElement(s.View,{style:Me.buttonBar},l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("simple")},l.a.createElement(s.Text,{style:Me.buttonText},"simple")),l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("high_quality")},l.a.createElement(s.Text,{style:Me.buttonText},"high_quality")),l.a.createElement(s.View,{style:Me.button,onClick:()=>this.changeBreakStrategy("balanced")},l.a.createElement(s.Text,{style:Me.buttonText},"balanced")))))}}var ze=n.p+"assets/defaultSource.jpg";const Fe=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},rectangle:{width:160,height:80,marginVertical:10},bigRectangle:{width:200,height:100,borderColor:"#eee",borderWidth:1,borderStyle:"solid",padding:10,marginVertical:10},smallRectangle:{width:40,height:40,borderRadius:10}});function _e(){const e=e=>l.a.createElement(s.View,{style:Fe.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},e("backgroundColor"),l.a.createElement(s.View,{style:[Fe.rectangle,{backgroundColor:"#4c9afa"}]}),e("backgroundImage"),l.a.createElement(s.View,{style:[Fe.rectangle,{alignItems:"center",justifyContent:"center",marginTop:20,backgroundImage:ze}],accessible:!0,accessibilityLabel:"背景图",accessibilityRole:"image",accessibilityState:{disabled:!1,selected:!0,checked:!1,expanded:!1,busy:!0},accessibilityValue:{min:1,max:10,now:5,text:"middle"}},l.a.createElement(s.Text,{style:{color:"white"}},"背景图")),e("backgroundImage linear-gradient"),l.a.createElement(s.View,{style:[Fe.rectangle,{alignItems:"center",justifyContent:"center",marginTop:20,borderWidth:2,borderStyle:"solid",borderColor:"black",borderRadius:2,backgroundImage:"linear-gradient(30deg, blue 10%, yellow 40%, red 50%);"}]},l.a.createElement(s.Text,{style:{color:"white"}},"渐变色")),e("border props"),l.a.createElement(s.View,{style:[Fe.rectangle,{borderColor:"#242424",borderRadius:4,borderWidth:1,borderStyle:"solid"}]}),e("flex props"),l.a.createElement(s.View,{style:[Fe.bigRectangle,{flexDirection:"row",alignItems:"center",justifyContent:"space-between"}]},l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"yellow"}]}),l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"blue"}]}),l.a.createElement(s.View,{style:[Fe.smallRectangle,{backgroundColor:"green"}]})))}const He=s.StyleSheet.create({pageContainer:{alignItems:"center",justifyContent:"center",flex:1,paddingTop:20},mainRec:{backgroundColor:"#4c9afaAA",width:256,height:48,marginBottom:10,marginTop:156},title:{verticalAlign:"middle",lineHeight:48,height:48,fontSize:16,color:"white",alignSelf:"center"},shapeBase:{width:128,height:128,backgroundColor:"#4c9afa"},square:{},circle:{borderRadius:64},triangle:{borderStyle:"solid",borderTopWidth:0,borderRightWidth:70,borderBottomWidth:128,borderLeftWidth:70,borderTopColor:"transparent",borderRightColor:"transparent",borderLeftColor:"transparent",borderBottomColor:"#4c9afa",backgroundColor:"transparent",width:140}}),We="SquarePagerView",Ne="TrianglePagerView",Ue="CirclePagerView";function Ke(e,t){const n=t=>l.a.createElement(s.View,{style:He.pageContainer,key:t},l.a.createElement(s.View,{style:[He.shapeBase,e],key:"shape"}),l.a.createElement(s.View,{style:He.mainRec,key:"title"},t?l.a.createElement(s.Text,{style:He.title},t):null));return n.displayName=t,n}const Ge=Ke(He.square,We),qe=Ke(He.triangle,Ne),Qe=Ke(He.circle,Ue),Ye=s.StyleSheet.create({dotContainer:{position:"absolute",bottom:10,left:0,right:0,flexDirection:"row",alignItems:"center",justifyContent:"center"},dot:{width:6,height:6,borderRadius:3,margin:3,backgroundColor:"#BBBBBB"},selectDot:{backgroundColor:"#000000"},container:{height:500},buttonContainer:{flexDirection:"row",alignItems:"center",justifyContent:"space-between",padding:12},button:{width:120,height:36,backgroundColor:"#4c9afa",borderRadius:18,alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,color:"#fff"}});class Xe extends l.a.Component{constructor(e){super(e),H()(this,"state",{selectedIndex:0}),this.onPageSelected=this.onPageSelected.bind(this),this.onPageScrollStateChanged=this.onPageScrollStateChanged.bind(this)}onPageSelected(e){console.log("onPageSelected",e.position),this.setState({selectedIndex:e.position})}onPageScrollStateChanged(e){console.log("onPageScrollStateChanged",e)}onPageScroll({offset:e,position:t}){console.log("onPageScroll",e,t)}render(){const{selectedIndex:e}=this.state;return l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#ffffff"}},l.a.createElement(s.View,{style:Ye.buttonContainer},l.a.createElement(s.View,{style:Ye.button,onClick:()=>{this.viewpager.setPage(2)}},l.a.createElement(s.Text,{style:Ye.buttonText},"动效滑到第3页")),l.a.createElement(s.View,{style:Ye.button,onClick:()=>this.viewpager.setPageWithoutAnimation(0)},l.a.createElement(s.Text,{style:Ye.buttonText},"直接滑到第1页"))),l.a.createElement(s.ViewPager,{ref:e=>{this.viewpager=e},style:Ye.container,initialPage:0,keyboardDismissMode:"none",scrollEnabled:!0,onPageSelected:this.onPageSelected,onPageScrollStateChanged:this.onPageScrollStateChanged,onPageScroll:this.onPageScroll},[Ge("squarePager"),qe("TrianglePager"),Qe("CirclePager")]),l.a.createElement(s.View,{style:Ye.dotContainer},new Array(3).fill(0).map((t,n)=>{const o=n===e;return l.a.createElement(s.View,{style:[Ye.dot,o?Ye.selectDot:null],key:"dot_"+n})})))}}const Je=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},webViewStyle:{padding:10,flex:1,flexGrow:1,borderRadius:10}});function Ze(){return l.a.createElement(s.View,{style:{paddingHorizontal:10,flex:1}},l.a.createElement(s.View,{style:Je.itemTitle},l.a.createElement(s.Text,null,"WebView 示例")),l.a.createElement(s.WebView,{source:{uri:"https://hippyjs.org"},method:"get",userAgent:"Mozilla/5.0 (Linux; U; Android 5.1.1; zh-cn; vivo X7 Build/LMY47V) AppleWebKit/537.36 (KHTML, like Gecko)Version/4.0 Chrome/37.0.0.0 MQQBrowser/8.2 Mobile Safari/537.36",style:Je.webViewStyle,onLoad:({url:e})=>console.log("webview onload",e),onLoadStart:({url:e})=>console.log("webview onLoadStart",e),onLoadEnd:({url:e})=>console.log("webview onLoadEnd",e)}))}const $e=s.StyleSheet.create({shadowDemo:{flex:1,overflowY:"scroll"},shadowDemoCubeAndroid:{position:"absolute",left:50,top:50,width:170,height:170,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowColor:"#4c9afa",borderRadius:5},shadowDemoContentAndroid:{position:"absolute",left:5,top:5,width:160,height:160,backgroundColor:"grey",borderRadius:5,display:"flex",justifyContent:"center",alignItems:"center"},shadowDemoCubeIos:{position:"absolute",left:50,top:50,width:160,height:160,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowSpread:1,boxShadowColor:"#4c9afa",borderRadius:5},shadowDemoContentIos:{width:160,height:160,backgroundColor:"grey",borderRadius:5,display:"flex",justifyContent:"center",alignItems:"center"},text:{color:"white"}}),et=s.StyleSheet.create({shadowDemoCubeAndroid:{position:"absolute",left:50,top:300,width:175,height:175,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:15,boxShadowOffsetY:15,boxShadowColor:"#4c9afa"},shadowDemoContentAndroid:{width:160,height:160,backgroundColor:"grey",display:"flex",justifyContent:"center",alignItems:"center"},shadowDemoCubeIos:{position:"absolute",left:50,top:300,width:160,height:160,boxShadowOpacity:.6,boxShadowRadius:5,boxShadowOffsetX:10,boxShadowOffsetY:10,boxShadowSpread:1,boxShadowColor:"#4c9afa"},shadowDemoContentIos:{width:160,height:160,backgroundColor:"grey",display:"flex",justifyContent:"center",alignItems:"center"},text:{color:"white"}});function tt(){return l.a.createElement(s.View,{style:$e.shadowDemo},"android"===s.Platform.OS?l.a.createElement(s.View,{style:$e.shadowDemoCubeAndroid},l.a.createElement(s.View,{style:$e.shadowDemoContentAndroid},l.a.createElement(s.Text,{style:$e.text},"没有偏移阴影样式"))):l.a.createElement(s.View,{style:$e.shadowDemoCubeIos},l.a.createElement(s.View,{style:$e.shadowDemoContentIos},l.a.createElement(s.Text,{style:$e.text},"没有偏移阴影样式"))),"android"===s.Platform.OS?l.a.createElement(s.View,{style:et.shadowDemoCubeAndroid},l.a.createElement(s.View,{style:et.shadowDemoContentAndroid},l.a.createElement(s.Text,{style:et.text},"偏移阴影样式"))):l.a.createElement(s.View,{style:et.shadowDemoCubeIos},l.a.createElement(s.View,{style:et.shadowDemoContentIos},l.a.createElement(s.Text,{style:et.text},"偏移阴影样式"))))}const nt=ce.filter(e=>2!==e.style),ot=s.StyleSheet.create({container:{backgroundColor:"#ffffff"},itemContainer:{padding:12},splitter:{marginLeft:12,marginRight:12,height:.5,backgroundColor:"#e5e5e5"},loading:{fontSize:11,color:"#aaaaaa",alignSelf:"center"},pullContainer:{height:50,backgroundColor:"#4c9afa"},pullContent:{lineHeight:50,color:"white",height:50,textAlign:"center"},pullFooter:{flex:1,height:40,backgroundColor:"#4c9afa",justifyContent:"center",alignItems:"center"}});class rt extends l.a.Component{constructor(e){super(e),this.state={dataSource:[],pullingText:"继续下拉触发刷新",loadingState:"正在加载..."},this.numberOfColumns=2,this.columnSpacing=6,this.interItemSpacing=6,this.mockFetchData=this.mockFetchData.bind(this),this.renderItem=this.renderItem.bind(this),this.getItemType=this.getItemType.bind(this),this.getItemKey=this.getItemKey.bind(this),this.onEndReached=this.onEndReached.bind(this),this.onRefresh=this.onRefresh.bind(this),this.getRefresh=this.getRefresh.bind(this),this.renderPullFooter=this.renderPullFooter.bind(this),this.renderBanner=this.renderBanner.bind(this),this.getItemStyle=this.getItemStyle.bind(this)}async componentDidMount(){const e=await this.mockFetchData();this.setState({dataSource:e})}async onEndReached(){const{dataSource:e}=this.state;if(this.loadMoreDataFlag)return;this.loadMoreDataFlag=!0,this.setState({loadingState:"加载更多..."});let t=[];try{t=await this.mockFetchData()}catch(e){}0===t.length&&this.setState({loadingState:"没有更多数据"});const n=[...e,...t];this.setState({dataSource:n}),this.loadMoreDataFlag=!1}renderPullFooter(){return 0===this.state.dataSource.length?null:l.a.createElement(s.View,{style:ot.pullFooter},l.a.createElement(s.Text,{style:{color:"white"}},this.state.loadingState))}async onRefresh(){setTimeout(async()=>{const e=await this.mockFetchData();this.setState({dataSource:e}),this.refresh.refreshComplected()},1e3)}getRefresh(){return l.a.createElement(s.View,{style:{flex:1,height:40,justifyContent:"center",alignItems:"center",backgroundColor:"#4c9afa"}},l.a.createElement(s.Text,{style:{height:40,lineHeight:40,textAlign:"center",color:"white"}},"下拉刷新中..."))}onClickItem(e){console.log(`item: ${e} is clicked..`)}getItemType(e){return this.state.dataSource[e].style}getItemKey(e){return"row-"+e}onItemClick(e){console.log("onItemClick",e),this.listView.scrollToIndex({index:e,animation:!0})}renderBanner(){return"android"===s.Platform.OS||0===this.state.dataSource.length?null:l.a.createElement(s.View,{style:{backgroundColor:"grey",height:100,justifyContent:"center",alignItems:"center"}},l.a.createElement(s.Text,{style:{fontSize:20,color:"white",lineHeight:100,height:100}},"Banner View"))}renderItem(e){const{dataSource:t}=this.state;let n=null;const o=t[e];switch(o.style){case 1:n=l.a.createElement(pe,{itemBean:o.itemBean});break;case 2:n=l.a.createElement(Se,{itemBean:o.itemBean});break;case 5:n=l.a.createElement(Ce,{itemBean:o.itemBean})}return l.a.createElement(s.View,{onClick:()=>this.onItemClick(e),style:ot.container},l.a.createElement(s.View,{style:ot.itemContainer},n),l.a.createElement(s.View,{style:ot.splitter}))}mockFetchData(){return new Promise(e=>{setTimeout(()=>{const t=[...nt,...nt];return e(t)},600)})}getWaterfallContentInset(){return{top:0,left:5,bottom:0,right:5}}getItemStyle(){const{numberOfColumns:e,columnSpacing:t}=this,n=s.Dimensions.get("screen").width,o=this.getWaterfallContentInset();return{width:(n-o.left-o.right-(e-1)*t)/e}}render(){const{dataSource:e}=this.state,{numberOfColumns:t,columnSpacing:n,interItemSpacing:o}=this,r=this.getWaterfallContentInset();return l.a.createElement(s.RefreshWrapper,{ref:e=>{this.refresh=e},style:{flex:1},onRefresh:this.onRefresh,bounceTime:100,getRefresh:this.getRefresh},l.a.createElement(s.WaterfallView,{ref:e=>{this.listView=e},renderBanner:this.renderBanner,numberOfColumns:t,columnSpacing:n,interItemSpacing:o,numberOfItems:e.length,style:{flex:1},renderItem:this.renderItem,onEndReached:this.onEndReached,getItemType:this.getItemType,getItemKey:this.getItemKey,contentInset:r,getItemStyle:this.getItemStyle,containPullFooter:!0,renderPullFooter:this.renderPullFooter}))}}var it=n.p+"assets/defaultSource.jpg";function at(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function lt(e){for(var t=1;t{i.current.setPressed(!1)},{nativeBackgroundAndroid:h,style:u}=e;return l.a.createElement(s.View,{onLayout:()=>{s.UIManagerModule.measureInAppWindow(i.current,e=>{n(e.x),r(e.y)})},style:u,onTouchDown:e=>{i.current.setHotspot(e.page_x-t,e.page_y-o),i.current.setPressed(!0)},onTouchEnd:c,onTouchCancel:c,ref:i,nativeBackgroundAndroid:lt(lt({},st),h)},e.children)}const ht=s.StyleSheet.create({imgRectangle:{width:260,height:56,alignItems:"center",justifyContent:"center"},circleRipple:{marginTop:30,width:150,height:56,alignItems:"center",justifyContent:"center",borderWidth:3,borderStyle:"solid",borderColor:"#4c9afa"},squareRipple:{alignItems:"center",justifyContent:"center",width:150,height:150,backgroundColor:"#4c9afa",marginTop:30,borderRadius:12,overflow:"hidden"},squareRippleWrapper:{alignItems:"flex-start",justifyContent:"center",height:150,marginTop:30},squareRipple1:{alignItems:"center",justifyContent:"center",width:150,height:150,borderWidth:5,borderStyle:"solid",backgroundSize:"cover",borderColor:"#4c9afa",backgroundImage:it,paddingHorizontal:10},squareRipple2:{alignItems:"center",justifyContent:"center",width:150,height:150,paddingHorizontal:10,backgroundSize:"cover",backgroundImage:"https://user-images.githubusercontent.com/12878546/148736102-7cd9525b-aceb-41c6-a905-d3156219ef16.png"}});function ut(){return"ios"===s.Platform.OS?l.a.createElement(s.Text,null,"iOS暂未支持水波纹效果"):l.a.createElement(s.ScrollView,{style:{margin:10,flex:1}},l.a.createElement(s.View,{style:[ht.imgRectangle,{marginTop:20,backgroundImage:it,backgroundSize:"cover"}]},l.a.createElement(ct,{style:[ht.imgRectangle],nativeBackgroundAndroid:{borderless:!0,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"white",maxWidth:200}},"外层背景图,内层无边框水波纹,受外层影响始终有边框"))),l.a.createElement(ct,{style:[ht.circleRipple],nativeBackgroundAndroid:{borderless:!0,color:"#666666",rippleRadius:100}},l.a.createElement(s.Text,{style:{color:"black",textAlign:"center"}},"无边框圆形水波纹")),l.a.createElement(ct,{style:[ht.squareRipple],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"#fff"}},"带背景色水波纹")),l.a.createElement(s.View,{style:[ht.squareRippleWrapper]},l.a.createElement(ct,{style:[ht.squareRipple1],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"white"}},"有边框水波纹,带本地底图效果"))),l.a.createElement(s.View,{style:[ht.squareRippleWrapper]},l.a.createElement(ct,{style:[ht.squareRipple2],nativeBackgroundAndroid:{borderless:!1,color:"#666666"}},l.a.createElement(s.Text,{style:{color:"black"}},"有边框水波纹,带网络底图效果"))))}const dt="#4c9afa",mt="#f44837",gt=s.StyleSheet.create({container:{paddingHorizontal:10},square:{width:80,height:80,backgroundColor:mt},showArea:{height:150,marginVertical:10},button:{borderColor:dt,borderWidth:2,borderStyle:"solid",justifyContent:"center",alignItems:"center",width:70,borderRadius:8,height:50,marginTop:20,marginRight:8},buttonText:{fontSize:20,color:dt,textAlign:"center",textAlignVertical:"center"},colorText:{fontSize:14,color:"white",textAlign:"center",textAlignVertical:"center"},buttonContainer:{flexDirection:"row",alignItems:"center"},title:{fontSize:24,marginTop:8}});class ft extends l.a.Component{constructor(e){super(e),this.state={}}componentWillMount(){this.horizonAnimation=new s.Animation({startValue:150,toValue:20,duration:1e3,delay:500,mode:"timing",timingFunction:"linear",repeatCount:"loop"}),this.verticalAnimation=new s.Animation({startValue:80,toValue:40,duration:1e3,delay:0,mode:"timing",timingFunction:"linear",repeatCount:"loop"}),this.scaleAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:1,toValue:1.2,duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:1.2,toValue:.2,duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.rotateAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:180,duration:2e3,delay:0,valueType:"deg",mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:180,toValue:360,duration:2e3,delay:0,valueType:"deg",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.skewXAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:Math.PI,duration:2e3,valueType:"rad",delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:Math.PI,toValue:0,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.skewYAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:Math.PI,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:Math.PI,toValue:0,duration:2e3,delay:0,valueType:"rad",mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.bgColorAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:"red",toValue:"yellow",valueType:"color",duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:"yellow",toValue:"blue",duration:1e3,valueType:"color",delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.txtColorAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:"white",toValue:"yellow",valueType:"color",duration:1e3,delay:0,mode:"timing",timingFunction:"linear"}),follow:!1},{animation:new s.Animation({startValue:"yellow",toValue:"white",duration:1e3,valueType:"color",delay:0,mode:"timing",timingFunction:"linear"}),follow:!0}],repeatCount:"loop"}),this.cubicBezierScaleAnimationSet=new s.AnimationSet({children:[{animation:new s.Animation({startValue:0,toValue:1,duration:1e3,delay:0,mode:"timing",timingFunction:"cubic-bezier(.45,2.84,.38,.5)"}),follow:!1},{animation:new s.Animation({startValue:1,toValue:0,duration:1e3,mode:"timing",timingFunction:"cubic-bezier(.17,1.45,.78,.14)"}),follow:!0}],repeatCount:"loop"})}componentDidMount(){"web"===s.Platform.OS&&(this.verticalAnimation.setRef(this.verticalRef),this.horizonAnimation.setRef(this.horizonRef),this.scaleAnimationSet.setRef(this.scaleRef),this.bgColorAnimationSet.setRef(this.bgColorRef),this.txtColorAnimationSet.setRef(this.textColorRef),this.txtColorAnimationSet.setRef(this.textColorRef),this.cubicBezierScaleAnimationSet.setRef(this.cubicBezierScaleRef),this.rotateAnimationSet.setRef(this.rotateRef),this.skewXAnimationSet.setRef(this.skewRef),this.skewYAnimationSet.setRef(this.skewRef)),this.horizonAnimation.onAnimationStart(()=>{console.log("on animation start!!!")}),this.horizonAnimation.onAnimationEnd(()=>{console.log("on animation end!!!")}),this.horizonAnimation.onAnimationCancel(()=>{console.log("on animation cancel!!!")}),this.horizonAnimation.onAnimationRepeat(()=>{console.log("on animation repeat!!!")})}componentWillUnmount(){this.horizonAnimation&&this.horizonAnimation.destroy(),this.verticalAnimation&&this.verticalAnimation.destroy(),this.scaleAnimationSet&&this.scaleAnimationSet.destroy(),this.bgColorAnimationSet&&this.bgColorAnimationSet.destroy(),this.txtColorAnimationSet&&this.txtColorAnimationSet.destroy(),this.cubicBezierScaleAnimationSet&&this.cubicBezierScaleAnimationSet.destroy(),this.rotateAnimationSet&&this.rotateAnimationSet.destroy(),this.skewXAnimationSet&&this.skewXAnimationSet.destroy(),this.skewYAnimationSet&&this.skewYAnimationSet.destroy()}render(){return l.a.createElement(s.ScrollView,{style:gt.container},l.a.createElement(s.Text,{style:gt.title},"水平位移动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.horizonAnimation.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.horizonAnimation.updateAnimation({startValue:50,toValue:100})}},l.a.createElement(s.Text,{style:gt.buttonText},"更新"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.horizonRef=e},style:[gt.square,{transform:[{translateX:this.horizonAnimation}]}]})),l.a.createElement(s.Text,{style:gt.title},"高度形变动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.verticalAnimation.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.verticalAnimation.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.verticalAnimation.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.verticalRef=e},style:[gt.square,{height:this.verticalAnimation}]})),l.a.createElement(s.Text,{style:gt.title},"旋转动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.rotateAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.rotateAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.rotateAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.rotateRef=e},style:[gt.square,{transform:[{rotate:this.rotateAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"倾斜动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.skewXAnimationSet.start(),this.skewYAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.skewXAnimationSet.pause(),this.skewYAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.skewXAnimationSet.resume(),this.skewYAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:gt.showArea},l.a.createElement(s.View,{ref:e=>{this.skewRef=e},style:[gt.square,{transform:[{skewX:this.skewXAnimationSet},{skewY:this.skewYAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"缩放动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.scaleAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.scaleAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.scaleAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.scaleRef=e},style:[gt.square,{transform:[{scale:this.scaleAnimationSet}]}]})),l.a.createElement(s.Text,{style:gt.title},"颜色渐变动画(文字渐变仅Android支持)"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.bgColorAnimationSet.start(),this.txtColorAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.bgColorAnimationSet.pause(),this.txtColorAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.bgColorAnimationSet.resume(),this.txtColorAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.bgColorRef=e},style:[gt.square,{justifyContent:"center",alignItems:"center"},{backgroundColor:this.bgColorAnimationSet}]},l.a.createElement(s.Text,{ref:e=>{this.textColorRef=e},style:[gt.colorText,{color:"android"===s.Platform.OS?this.txtColorAnimationSet:"white"}]},"颜色渐变背景和文字"))),l.a.createElement(s.Text,{style:gt.title},"贝塞尔曲线动画"),l.a.createElement(s.View,{style:gt.buttonContainer},l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.cubicBezierScaleAnimationSet.start()}},l.a.createElement(s.Text,{style:gt.buttonText},"开始")),l.a.createElement(s.View,{style:[gt.button],onClick:()=>{this.cubicBezierScaleAnimationSet.pause()}},l.a.createElement(s.Text,{style:gt.buttonText},"暂停")),l.a.createElement(s.View,{style:gt.button,onClick:()=>{this.cubicBezierScaleAnimationSet.resume()}},l.a.createElement(s.Text,{style:gt.buttonText},"继续"))),l.a.createElement(s.View,{style:[gt.showArea,{marginVertical:20}]},l.a.createElement(s.View,{ref:e=>{this.cubicBezierScaleRef=e},style:[gt.square,{transform:[{scale:this.cubicBezierScaleAnimationSet}]}]})))}}const pt=s.StyleSheet.create({containerStyle:{margin:20,alignItems:"center",flexDirection:"column"},itemGroupStyle:{flexDirection:"row",marginTop:10,borderColor:"#4c9afa",borderWidth:1,borderStyle:"solid",width:100,height:40,justifyContent:"center",alignItems:"center"},viewGroupStyle:{flexDirection:"row",marginTop:10},infoStyle:{width:60,height:40,fontSize:16,color:"#4c9afa",textAlign:"center"},inputStyle:{width:200,height:40,placeholderTextColor:"#aaaaaa",underlineColorAndroid:"#4c9afa",fontSize:16,color:"#242424",textAlign:"left"},buttonStyle:{textAlign:"center",fontSize:16,color:"#4c9afa",backgroundColor:"#4c9afa11",marginLeft:10,marginRight:10}});class yt extends l.a.Component{constructor(e){super(e),this.state={result:""},this.onTextChangeKey=this.onTextChangeKey.bind(this),this.onTextChangeValue=this.onTextChangeValue.bind(this),this.onClickSet=this.onClickSet.bind(this),this.onTextChangeKey=this.onTextChangeKey.bind(this),this.onClickGet=this.onClickGet.bind(this)}onClickSet(){const{key:e,value:t}=this.state;e&&s.AsyncStorage.setItem(e,t)}onClickGet(){const{key:e}=this.state;e&&s.AsyncStorage.getItem(e).then(e=>{this.setState({result:e})})}onTextChangeKey(e){this.setState({key:e})}onTextChangeValue(e){this.setState({value:e})}render(){const{result:e}=this.state;return l.a.createElement(s.ScrollView,{style:pt.containerStyle},l.a.createElement(s.View,{style:pt.viewGroupStyle},l.a.createElement(s.Text,{style:pt.infoStyle},"Key:"),l.a.createElement(s.TextInput,{style:pt.inputStyle,onChangeText:this.onTextChangeKey})),l.a.createElement(s.View,{style:pt.viewGroupStyle},l.a.createElement(s.Text,{style:pt.infoStyle},"Value:"),l.a.createElement(s.TextInput,{style:pt.inputStyle,onChangeText:this.onTextChangeValue})),l.a.createElement(s.View,{style:pt.itemGroupStyle,onClick:this.onClickSet},l.a.createElement(s.Text,{style:pt.buttonStyle},"Set")),l.a.createElement(s.View,{style:[pt.viewGroupStyle,{marginTop:60}]},l.a.createElement(s.Text,{style:pt.infoStyle},"Key:"),l.a.createElement(s.TextInput,{style:pt.inputStyle,onChangeText:this.onTextChangeKey})),l.a.createElement(s.View,{style:[pt.viewGroupStyle,{display:"none"}]},l.a.createElement(s.Text,{style:pt.infoStyle},"Value:"),l.a.createElement(s.Text,{style:[pt.infoStyle,{width:200}]},e)),l.a.createElement(s.View,{style:pt.itemGroupStyle,onClick:this.onClickGet},l.a.createElement(s.Text,{style:pt.buttonStyle},"Get")))}}const bt=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},defaultText:{marginVertical:4,fontSize:18,lineHeight:24,color:"#242424"},copiedText:{color:"#aaa"},button:{backgroundColor:"#4c9afa",borderRadius:4,height:30,marginVertical:4,paddingHorizontal:6,alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,color:"white"}});class wt extends l.a.Component{constructor(e){super(e),this.state={hasCopied:!1,text:"Winter is coming",clipboardText:"点击上面的按钮"}}render(){const e=e=>l.a.createElement(s.View,{style:bt.itemTitle},l.a.createElement(s.Text,null,e)),{hasCopied:t,text:n,clipboardText:o}=this.state,r=t?" (已复制) ":"";return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},e("文本复制到剪贴板"),l.a.createElement(s.Text,{style:bt.defaultText},n),l.a.createElement(s.View,{style:bt.button,onClick:()=>{s.Clipboard.setString(n),this.setState({hasCopied:!0})}},l.a.createElement(s.Text,{style:bt.buttonText},"点击复制以上文案"+r)),e("获取剪贴板内容"),l.a.createElement(s.View,{style:bt.button,onClick:async()=>{try{const e=await s.Clipboard.getString();this.setState({clipboardText:e})}catch(e){console.error(e)}}},l.a.createElement(s.Text,{style:bt.buttonText},"点击获取剪贴板内容")),l.a.createElement(s.Text,{style:[bt.defaultText,bt.copiedText]},o))}}const xt=s.StyleSheet.create({itemTitle:{alignItems:"flex-start",justifyContent:"center",height:40,borderWidth:1,borderStyle:"solid",borderColor:"#e0e0e0",borderRadius:2,backgroundColor:"#fafafa",padding:10,marginTop:10},wrapper:{borderColor:"#eee",borderWidth:1,borderStyle:"solid",paddingHorizontal:10,paddingVertical:5,marginVertical:10,flexDirection:"column",justifyContent:"flex-start",alignItems:"flex-start"},infoContainer:{display:"flex",flexDirection:"row",alignItems:"center",justifyContent:"flex-start",marginTop:5,marginBottom:5,flexWrap:"wrap"},infoText:{collapsable:!1,marginVertical:5}});class St extends l.a.Component{constructor(e){super(e),this.state={netInfoStatusTxt:"",netInfoChangeTxt:"",fetchInfoTxt:"",cookies:""},this.listener=null}async fetchNetInfoStatus(){this.setState({netInfoStatusTxt:await s.NetInfo.fetch()})}fetchUrl(){fetch("https://hippyjs.org",{mode:"no-cors"}).then(e=>(this.setState({fetchInfoTxt:"成功状态: "+e.status}),e)).catch(e=>{this.setState({fetchInfoTxt:"收到错误: "+e})})}setCookies(){s.NetworkModule.setCookie("https://hippyjs.org","name=hippy;network=mobile")}getCookies(){s.NetworkModule.getCookies("https://hippyjs.org").then(e=>{this.setState({cookies:e})})}async componentWillMount(){const e=this;this.listener=s.NetInfo.addEventListener("change",t=>{e.setState({netInfoChangeTxt:""+t.network_info})})}componentWillUnmount(){this.listener&&s.NetInfo.removeEventListener("change",this.listener)}componentDidMount(){this.fetchUrl(),this.fetchNetInfoStatus()}render(){const{netInfoStatusTxt:e,fetchInfoTxt:t,netInfoChangeTxt:n,cookies:o}=this.state,r=e=>l.a.createElement(s.View,{style:xt.itemTitle},l.a.createElement(s.Text,null,e));return l.a.createElement(s.ScrollView,{style:{paddingHorizontal:10}},r("Fetch"),l.a.createElement(s.View,{style:[xt.wrapper]},l.a.createElement(s.View,{style:[xt.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.fetchUrl()},l.a.createElement(s.Text,{style:{color:"white"}},"请求 hippy 网址:")),l.a.createElement(s.Text,{style:xt.infoText},t))),r("NetInfo"),l.a.createElement(s.View,{style:[xt.wrapper]},l.a.createElement(s.View,{style:[xt.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.fetchNetInfoStatus()},l.a.createElement(s.Text,{style:{color:"white"}},"获取网络状态:")),l.a.createElement(s.Text,{style:xt.infoText},e)),l.a.createElement(s.View,{style:[xt.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10}},l.a.createElement(s.Text,{style:{color:"white"}},"监听网络变化:")),l.a.createElement(s.Text,{style:xt.infoText},n))),r("NetworkModule"),l.a.createElement(s.View,{style:[xt.wrapper]},l.a.createElement(s.View,{style:[xt.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.setCookies()},l.a.createElement(s.Text,{style:{color:"white"}},"设置Cookies:")),l.a.createElement(s.Text,{style:xt.infoText},"name=hippy;network=mobile")),l.a.createElement(s.View,{style:[xt.infoContainer]},l.a.createElement(s.View,{style:{backgroundColor:"grey",padding:10,borderRadius:10,marginRight:10},onClick:()=>this.getCookies()},l.a.createElement(s.Text,{style:{color:"white"}},"获取Cookies:")),l.a.createElement(s.Text,{style:xt.infoText},o))))}}const Et=s.StyleSheet.create({fullScreen:{flex:1},row:{flexDirection:"row"},title:{color:"#ccc"},button:{height:56,backgroundColor:"#4c9afa",borderColor:"#5dabfb",borderStyle:"solid",borderWidth:1,paddingHorizontal:20,fontSize:16,textAlign:"center",lineHeight:56,color:"#fff",margin:10},input:{color:"black",flex:1,height:36,lineHeight:36,fontSize:14,borderBottomColor:"#4c9afa",borderBottomStyle:"solid",borderBottomWidth:1,padding:0},output:{color:"black"}}),At="wss://echo.websocket.org",Tt="Rock it with Hippy WebSocket";let Ct;var vt=function(){const e=Object(a.useRef)(null),t=Object(a.useRef)(null),[n,o]=Object(a.useState)([]),r=e=>{o(t=>[e,...t])};return l.a.createElement(s.View,{style:Et.fullScreen},l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:Et.title},"Url:"),l.a.createElement(s.TextInput,{ref:e,value:At,style:Et.input}),l.a.createElement(s.View,{style:Et.row},l.a.createElement(s.Text,{onClick:()=>{e.current.getValue().then(e=>{Ct&&1===Ct.readyState&&Ct.close(),Ct=new WebSocket(e),Ct.onopen=()=>r("[Opened] "+Ct.url),Ct.onclose=()=>r("[Closed] "+Ct.url),Ct.onerror=e=>r("[Error] "+e.reason),Ct.onmessage=e=>r("[Received] "+e.data)})},style:Et.button},"Connect"),l.a.createElement(s.Text,{onClick:()=>Ct.close(),style:Et.button},"Disconnect"))),l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:Et.title},"Message:"),l.a.createElement(s.TextInput,{ref:t,value:Tt,style:Et.input}),l.a.createElement(s.Text,{onClick:()=>t.current.getValue().then(e=>{r("[Sent] "+e),Ct.send(e)}),style:Et.button},"Send")),l.a.createElement(s.View,null,l.a.createElement(s.Text,{style:Et.title},"Log:"),l.a.createElement(s.ScrollView,{style:Et.fullScreen},n.map((e,t)=>l.a.createElement(s.Text,{key:t,style:Et.output},e)))))};function Vt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function kt(e){for(var t=1;t{const e=s.Dimensions.get("screen");({width:t,height:n}=e)});const[o,r]=Object(a.useState)({width:100,height:100,top:10,left:10}),[i,c]=Object(a.useState)({width:0,height:0,x:0,y:0}),h=kt(kt({},Rt.box),o);return l.a.createElement(s.View,{style:Rt.full},l.a.createElement(s.View,{style:Rt.demoContent},l.a.createElement(s.View,{ref:e,style:h},l.a.createElement(s.Text,{style:Rt.text,numberOfLines:2},"I am the box"))),l.a.createElement(s.View,{style:Rt.buttonContainer},l.a.createElement(s.View,{onClick:()=>{const e=It(0,t-100),o=It(0,n-450),i=It(80,120);r({left:e,top:o,width:i,height:i})},style:Rt.button},l.a.createElement(s.Text,{style:Rt.buttonText},"Move the random position")),l.a.createElement(s.View,{onClick:async()=>{try{const t=await s.UIManagerModule.measureInWindow(e.current);c(t)}catch(e){}},style:Rt.button},l.a.createElement(s.Text,{style:Rt.buttonText},"Measure box in window"))),l.a.createElement(s.View,{style:Rt.row},l.a.createElement(s.View,null,l.a.createElement(s.Text,null,"Box style:"),l.a.createElement(s.Text,{style:Rt.black},"Width: "+h.width),l.a.createElement(s.Text,{style:Rt.black},"Height: "+h.height),l.a.createElement(s.Text,{style:Rt.black},"Left: "+h.left),l.a.createElement(s.Text,{style:Rt.black},"Top: "+h.top)),l.a.createElement(s.View,null,l.a.createElement(s.Text,null,"measureInWindow output:"),l.a.createElement(s.Text,{style:Rt.black},"Width: "+i.width),l.a.createElement(s.Text,{style:Rt.black},"Height: "+i.height),l.a.createElement(s.Text,{style:Rt.black},"X: "+i.x),l.a.createElement(s.Text,{style:Rt.black},"Y: "+i.y))))};const Ot=s.StyleSheet.create({style_indicator_item:{width:4,height:4,marginLeft:2.5,marginRight:2.5,borderRadius:2},style_indicator:{position:"absolute",bottom:6,left:0,right:0,marginLeft:0,marginRight:0,alignItems:"center",justifyContent:"center",flexDirection:"row"}});class Pt extends l.a.Component{constructor(e){super(e),this.state={current:e.current||0}}update(e){const{current:t}=this.state;t!==e&&this.setState({current:e})}render(){const{count:e}=this.props,{current:t}=this.state,n=[];for(let o=0;o=r||(this.indicator&&this.indicator.update(o),this.currentIndex=o)}onScrollBeginDrag(){this.touchStartOffset=this.scrollOffset,this.doClearTimer()}onScrollEndDrag(){this.doCreateTimer()}onLayout(e){this.width=e.layout.width}doSwitchPage(e){this.scrollView.scrollTo({x:this.imgWidth*e,y:0,animated:!0})}doCreateTimer(){this.doClearTimer(),this.duration<=0||(this.interval=setInterval(()=>{this.doSwitchPage((this.currentIndex+1)%this.itemCount)},this.duration))}doClearTimer(){this.interval&&clearInterval(this.interval),this.interval=null}render(){const{images:e}=this.props,t=[];for(let n=0;n{this.scrollView=e}},t),l.a.createElement(Pt,{ref:e=>{this.indicator=e},count:this.itemCount}))}}H()(jt,"defaultProps",{duration:0,currentPage:0,images:[]});const Lt=["https://user-images.githubusercontent.com/12878546/148736627-bca54707-6939-45b3-84f7-74e6c2c09c88.jpg","https://user-images.githubusercontent.com/12878546/148736679-0521fdff-09f5-40e3-a36a-55c8f714be16.jpg","https://user-images.githubusercontent.com/12878546/148736685-a4c226ad-f64a-4fe0-b3df-ce0d8fcd7a01.jpg"],Mt=s.StyleSheet.create({sliderStyle:{width:400,height:180},infoStyle:{height:40,fontSize:16,color:"#4c9afa",marginTop:15}});function Bt(){return l.a.createElement(s.ScrollView,null,l.a.createElement(s.Text,{style:Mt.infoStyle},"Auto:"),l.a.createElement(jt,{style:Mt.sliderStyle,images:Lt,duration:1e3}),l.a.createElement(s.Text,{style:Mt.infoStyle},"Manual:"),l.a.createElement(jt,{style:Mt.sliderStyle,images:Lt,duration:0}))}const zt=s.StyleSheet.create({container:{height:45,paddingLeft:4,flexDirection:"row",backgroundColor:"#ffffff",borderBottomColor:"#E5E5E5",borderBottomWidth:1,borderStyle:"solid"},scroll:{flex:1,height:44},navItem:{width:60,height:44,paddingTop:13},navItemText:{fontSize:16,lineHeight:17,textAlign:"center",backgroundColor:"#ffffff"},navItemTextNormal:{color:"#666666"},navItemTextBlue:{color:"#2D73FF"}});class Ft extends l.a.Component{constructor(e){super(e),this.state={curIndex:0,navList:["头条","推荐","圈子","NBA","中超","英超","西甲","CBA","澳网","电影","本地","娱乐","小说","生活","直播","游戏"]},this.navScrollView=null,this.viewPager=null,this.onViewPagerChange=this.onViewPagerChange.bind(this),this.pressNavItem=this.pressNavItem.bind(this),this.scrollSV=this.scrollSV.bind(this)}static getPage(e,t){switch(t%3){case 0:return Ge(e);case 1:return Qe(e);case 2:return qe(e);default:return null}}componentDidUpdate(){this.scrollSV()}onViewPagerChange({position:e}){this.setState({curIndex:e})}scrollSV(){if(this.navScrollView){const{curIndex:e,navList:t}=this.state,n=t.length,o=de.getScreenWidth(),r=o/2/60,i=60*nn-r?60*n-o:60*e-60*r+30,this.navScrollView.scrollTo({x:a,y:0,animated:!0})}}pressNavItem(e){this.setState({curIndex:e}),this.viewPager&&this.viewPager.setPage(e)}renderNav(){const{navList:e,curIndex:t}=this.state;return l.a.createElement(s.View,{style:zt.container},l.a.createElement(s.ScrollView,{style:zt.scroll,horizontal:!0,showsHorizontalScrollIndicator:!1,ref:e=>{this.navScrollView=e}},e.map((e,n)=>l.a.createElement(s.View,{style:zt.navItem,key:"nav_"+e,activeOpacity:.5,onClick:()=>this.pressNavItem(n)},l.a.createElement(s.Text,{style:[zt.navItemText,t===n?zt.navItemTextBlue:zt.navItemTextNormal],numberOfLines:1},e)))))}render(){const{navList:e}=this.state;return l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#ffffff"}},this.renderNav(),l.a.createElement(s.ViewPager,{ref:e=>{this.viewPager=e},style:{flex:1},initialPage:0,onPageSelected:this.onViewPagerChange},e.map((e,t)=>Ft.getPage(e,t))))}}const{width:_t}=s.Dimensions.get("window"),Ht=s.StyleSheet.create({setNativePropsDemo:{display:"flex",alignItems:"center",position:"relative"},nativeDemo1Drag:{height:80,width:_t,backgroundColor:"#4c9afa",position:"relative",marginTop:10},nativeDemo1Point:{height:80,width:80,color:"#4cccfa",backgroundColor:"#4cccfa",position:"absolute",left:0},nativeDemo2Drag:{height:80,width:_t,backgroundColor:"#4c9afa",position:"relative",marginTop:10},nativeDemo2Point:{height:80,width:80,color:"#4cccfa",backgroundColor:"#4cccfa",position:"absolute",left:0},splitter:{marginTop:50}});class Wt extends l.a.Component{constructor(e){super(e),this.demon1Point=l.a.createRef(),this.demo1PointDom=null,this.state={demo2Left:0},this.isDemon1Layouted=!1,this.idDemon2Layouted=!1,this.onTouchDown1=this.onTouchDown1.bind(this),this.onDemon1Layout=this.onDemon1Layout.bind(this),this.onTouchMove1=this.onTouchMove1.bind(this),this.onTouchDown2=this.onTouchDown2.bind(this),this.onTouchMove2=this.onTouchMove2.bind(this)}componentDidMount(){}onDemon1Layout(){this.isDemon1Layouted||(this.isDemon1Layouted=!0,this.demo1PointDom=s.UIManagerModule.getElementFromFiberRef(this.demon1Point.current))}onTouchDown1(e){const{page_x:t}=e,n=t-40;console.log("touchdown x",t,n,_t),this.demo1PointDom&&this.demo1PointDom.setNativeProps({style:{left:n}})}onTouchMove1(e){const{page_x:t}=e,n=t-40;console.log("touchmove x",t,n,_t),this.demo1PointDom&&this.demo1PointDom.setNativeProps({style:{left:n}})}onTouchDown2(e){const{page_x:t}=e,n=t-40;console.log("touchdown x",t,n,_t),this.setState({demo2Left:n})}onTouchMove2(e){const{page_x:t}=e,n=t-40;console.log("touchmove x",t,n,_t),this.setState({demo2Left:n})}render(){const{demo2Left:e}=this.state;return l.a.createElement(s.View,{style:Ht.setNativePropsDemo},l.a.createElement(s.Text,null,"setNativeProps实现拖动效果"),l.a.createElement(s.View,{style:Ht.nativeDemo1Drag,onTouchDown:this.onTouchDown1,onTouchMove:this.onTouchMove1},l.a.createElement(s.View,{onLayout:this.onDemon1Layout,style:Ht.nativeDemo1Point,ref:this.demon1Point})),l.a.createElement(s.View,{style:Ht.splitter}),l.a.createElement(s.Text,null,"普通渲染实现拖动效果"),l.a.createElement(s.View,{style:Ht.nativeDemo2Drag,onTouchDown:this.onTouchDown2,onTouchMove:this.onTouchMove2},l.a.createElement(s.View,{style:[Ht.nativeDemo2Point,{left:e}]})))}}const Nt=s.StyleSheet.create({dynamicImportDemo:{marginTop:20,display:"flex",flex:1,alignItems:"center",position:"relative",flexDirection:"column"}});class Ut extends l.a.Component{constructor(e){super(e),this.state={AsyncComponentFromLocal:null,AsyncComponentFromHttp:null},this.onAsyncComponentLoad=this.onAsyncComponentLoad.bind(this)}onAsyncComponentLoad(){console.log("load async component"),n.e(1).then(n.bind(null,"./src/externals/DyanmicImport/AsyncComponentLocal.jsx")).then(e=>{this.setState({AsyncComponentFromLocal:e.default||e})}).catch(e=>console.error("import async local component error",e)),n.e(0).then(n.bind(null,"./src/externals/DyanmicImport/AsyncComponentHttp.jsx")).then(e=>{this.setState({AsyncComponentFromHttp:e.default||e})}).catch(e=>console.error("import async remote component error",e))}render(){const{AsyncComponentFromLocal:e,AsyncComponentFromHttp:t}=this.state;return l.a.createElement(s.View,{style:Nt.dynamicImportDemo},l.a.createElement(s.View,{style:{width:130,height:40,textAlign:"center",backgroundColor:"#4c9afa",borderRadius:5},onTouchDown:this.onAsyncComponentLoad},l.a.createElement(s.Text,{style:{height:40,lineHeight:40,textAlign:"center"}},"点我异步加载")),l.a.createElement(s.View,{style:{marginTop:20}},e?l.a.createElement(e,null):null,t?l.a.createElement(t,null):null))}}const Kt=s.StyleSheet.create({LocalizationDemo:{marginTop:20,display:"flex",flex:1,alignItems:"center",position:"relative",flexDirection:"column"}});class Gt extends l.a.Component{render(){const{country:e,language:t,direction:n}=s.Platform.Localization||{};return l.a.createElement(s.View,{style:Kt.LocalizationDemo},l.a.createElement(s.View,{style:{height:40,textAlign:"center",backgroundColor:"#4c9afa",borderRadius:5},onTouchDown:this.onAsyncComponentLoad},l.a.createElement(s.Text,{style:{color:"white",marginHorizontal:30,height:40,lineHeight:40,textAlign:"center"}},`国际化相关信息:国家 ${e} | 语言 ${t} | 方向 ${1===n?"RTL":"LTR"}`)))}}const qt=()=>getTurboModule("demoTurbo").getTurboConfig(),Qt=s.StyleSheet.create({container:{flex:1},cellContentView:{flexDirection:"row",justifyContent:"space-between",backgroundColor:"#ccc",marginBottom:1},funcInfo:{justifyContent:"center",paddingLeft:15,paddingRight:15},actionButton:{backgroundColor:"#4c9afa",color:"#fff",height:44,lineHeight:44,textAlign:"center",width:80,borderRadius:6},resultView:{backgroundColor:"darkseagreen",minHeight:150,padding:15}});class Yt extends l.a.Component{constructor(e){super(e),this.state={config:null,result:"",funList:["getString","getNum","getBoolean","getMap","getObject","getArray","nativeWithPromise","getTurboConfig","printTurboConfig","getInfo","setInfo"]},this.onTurboFunc=this.onTurboFunc.bind(this),this.getRenderRow=this.getRenderRow.bind(this),this.getRowKey=this.getRowKey.bind(this)}async onTurboFunc(e){let t;if("nativeWithPromise"===e)t=await(async e=>turboPromise(getTurboModule("demoTurbo").nativeWithPromise)(e))("aaa");else if("getTurboConfig"===e)this.config=qt(),t="获取到config对象";else if("printTurboConfig"===e)n=this.config||qt(),t=getTurboModule("demoTurbo").printTurboConfig(n);else if("getInfo"===e)t=(this.config||qt()).getInfo();else if("setInfo"===e)(this.config||qt()).setInfo("Hello World"),t="设置config信息成功";else{t={getString:()=>{return e="123",getTurboModule("demoTurbo").getString(e);var e},getNum:()=>{return e=1024,getTurboModule("demoTurbo").getNum(e);var e},getBoolean:()=>{return e=!0,getTurboModule("demoTurbo").getBoolean(e);var e},getMap:()=>{return e=new Map([["a","1"],["b",2]]),getTurboModule("demoTurbo").getMap(e);var e},getObject:()=>{return e={c:"3",d:"4"},getTurboModule("demoTurbo").getObject(e);var e},getArray:()=>{return e=["a","b","c"],getTurboModule("demoTurbo").getArray(e);var e}}[e]()}var n;this.setState({result:t})}renderResultView(){return l.a.createElement(s.View,{style:Qt.resultView},l.a.createElement(s.Text,{style:{backgroundColor:"darkseagreen"}},""+this.state.result))}getRenderRow(e){const{funList:t}=this.state;return l.a.createElement(s.View,{style:Qt.cellContentView},l.a.createElement(s.View,{style:Qt.funcInfo},l.a.createElement(s.Text,{numberofLines:0},"函数名:",t[e])),l.a.createElement(s.Text,{style:Qt.actionButton,onClick:()=>this.onTurboFunc(t[e])},"执行"))}getRowKey(e){const{funList:t}=this.state;return t[e]}render(){const{funList:e}=this.state;return l.a.createElement(s.View,{style:Qt.container},this.renderResultView(),l.a.createElement(s.ListView,{numberOfRows:e.length,renderRow:this.getRenderRow,getRowKey:this.getRowKey,style:{flex:1}}))}}function Xt(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);t&&(o=o.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,o)}return n}function Jt(e){for(var t=1;t0===e.index?l.a.createElement(s.View,{style:[nn.container]},l.a.createElement(s.View,{style:{backgroundColor:nn.title.backgroundColor,marginLeft:12}},l.a.createElement(s.Text,{numberOfLines:1,style:[nn.title,{fontWeight:"bold"}]},t.name)),l.a.createElement(s.View,{style:nn.headerButton},l.a.createElement(s.Text,{numberOfLines:1,style:nn.title},"ver: ","unspecified"!==s.default.version?""+s.default.version:"master"))):l.a.createElement(s.View,{style:[nn.container]},l.a.createElement(s.View,{onClick:()=>e.goBack(),style:[nn.headerButton,"ios"===s.Platform.OS?null:{marginLeft:20}]},l.a.createElement(s.Image,{style:nn.backIcon,source:{uri:"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIAAAACACAYAAADDPmHLAAAIPUlEQVR4Xu2dT8xeQxTGn1O0GiWEaEJCWJCwQLBo/WnRSqhEJUQT0W60G+1Ku1SS2mlXaqM2KqJSSUlajVb9TViwYEHCQmlCQghRgqKPTHLK7Zfvfd97Zt5535l7z91+58zce57fnfe7d+Y+I/Cj1xWQXl+9XzwcgJ5D4AA4AD2vQM8v30cAB6DnFZjA5ZO8VUTenEBX5i58BDCXzJZA8ikA6wFsFpEttuz80Q5AxhqTfAbA2kYXW0VkU8YuzU07AOaStUsg+RyA1bNEFwWBA9BOz9ZRJOcAeAHAqiFJ20VkQ+tGMwY6AGMsLslTAOwGcE+LZneIyLoWcVlDHIAxlVfFfxXACkOTO0VkjSF+7KEOwJhKSnIfgDuNzf0M4BoR+cqYN7ZwByCxlCTnAtgLYLmxqR8ALBGRz4x5Yw13ABLKSfJ0APsBLDU28x2Am0XkC2Pe2MMdgMiSkjwDwAEAi41NBPEXichhY16WcAcgoqwkzwRwCMD1xvRvANxUivjh3B0Ao4IkzwbwFoCrjalf67B/xJiXNdwBMJSX5LkA3gFwpSEthH6pd/63xrzs4Q5AyxKTPB/AuwAub5lyIuxzvfO/N+ZNJNwBaFFmkhcAeA/ApS3CmyGf6qPej8a8iYU7ACNKTfIivfMvNqryMYBbRCS87Cn2cACGSKPivw/gQqOCQfzwnH/UmDfxcAdgQMlJXqLDvlX8DwHcVoP4/hg4WPzLdNhfaLwlw2hxu4j8ZsybWriPADNKT/IKfdQ7z6jK2wDuEJE/jHlTDXcAGuUneZW+5DnHqMpBAHeJyDFj3tTDHQCVgOR1+nr3LKMqYRp4pYj8bcwrItwBAEBykU7sLDCqsgfAfSLyjzGvmPDeA0ByiU7pzjeqEsS/V0SOG/OKCu81ACSX6WKOeUZVdgF4oHbxe/0YSDIs33oFwGlG8ae+js94vkPDezkCkFypq3dPNRaziJW8xnN2AJoVIHm/rtsPS7gtRzFr+S0nPSq2VyOAiv9ixEKYor7mGSWq5e+9AYDkgwDC51rWa94iIpstRa0p1lqMmq7tv3Ml+RCA8KGm9Xo3isi2Ki+65UlbC9Ky2XLCSD4MYHvEGXVe/M4/BpJ8BMDWCPHXi8jTEXnVpXR2BCD5OIDHjIoQwDoRedaYV214JwEg+SSAjUZVgvhrROR5Y17V4Z0DoGHJYhEmTOaEV7svWZK6ENspAGaxZGmjUZjGDTN64bVw747OADDEkmWYqEH8u0Xktd4prxdcPQAtLVlm0/cvXcjRW/GrfwxU8V9uacnShOBPXcL1Rl/v/BPXXe0IYPTjaer8uy7eDN/49f6oEgCSYRo3/NNm8eMJYv+qy7Y/6L3ytf4PkGDJ8ot+sPGRi/9/BaoaARIsWX7S7/Q+cfFPrkA1ACRYsgTxb5y2GVOp4FUBQIIlSxFOXKWKX8VjYIIlSzFOXA5AZAUSLFmKM2OKLEH2tGJ/AhIsWYo0Y8quZGQHRQKQYMlSrBlTpD7Z04oDIMGSpWgzpuxKRnZQFACJ4t8gIsWaMUXqkz2tGAASLFmKd+LKrmJCB0UAQDLWkqUKJ64EfbKnTh2ABEuWqsyYsisZ2cFUAUiwZKnOjClSn+xpUwMgwZKlSjOm7EpGdlAjAOHuDz58VblxReqTPW1qAIQr85+A7PqO7GCqACgEsb58/k/gSHlHB0wdAIXAHwNHa5UloggAFIJYb15/EZSARjEAKASx1uw+DxAJQVEAKASxmzP4TGAEBMUBoBCE7VnC0m3rDh1hLcBiESlub54IbSaSUiQADQhi9ujxBSEGdIoFQCGI3aXLl4S1hKBoABSC2H36fFFoCwiKB0AhiN2p05eFj4CgCgAUgti9ev2roCEQVAOAQhC7W3f4LjDs4uWfhs2AoSoAFIK5avG+vMVPXDPEPw6dpWDVAaAQ+OfhRvoHhVcJgEIQ3L53R7iDuEFEg4ZqAVAI5qj1+yrjDeEWMVqwqgE4ITrJYAFvhcBNoiLcs4032uTCE2zieusRGNTpxAjQGAmCJfxaI3bBJTTs/uVGkcbCFRnuVrE2WTo1AjRGAjeLbslBJwHQJ4RgFR8s4y2H28VbqlV6rG8YMVqhzo4AjZ8D3zJmCAedB0B/DnzTqAEQ9AIAhSB227gnROTR0YNpnRG9AUAhCLuG+saRXZkLiLnnfOvYk6vWqxGg8Y+hbx7dpcmgyJHAt4/v2lyAFQSSy3R10Txj7i7dZey4Ma+48F7+BDRVILkEwH4A843q7NFJpKoh6D0A+nSwCMABAAsiIAjTyWFGscrDAVDZEjyL9unuY2ELuuoOB6AhWYJlzUHdhexYbQQ4ADMUS/AtrNK9zAGY5ZZNcC6tzr/QARgwZqt3cfAoWGgc1qsyr3IAhqibYGAdPIzDp2hHjfBMPNwBGFHyBAv7KoysHYAW91zCDibFO5g5AC0A0JdFwbcoxrKmaAczB6AlAApBrGVNsQ5mDoABAIUg1rKmSPMqB8AIgEIQa1kTzKuCjd2RiG6zpDgAkWVN2Mu4KAczByASAB0JYi1rinEwcwASAFAIgmXN6wCWGpsqwsHMATCqNiic5F4AK4zNBQeza0XksDFvbOEOwJhKSTLGt2iniKwZ0ylENeMARJVt9iSSFt+iHSKybozdRzXlAESVbXASyTa+RdtFZMOYu45qzgGIKtvopCGWNVtFZNPoFiYT4QBkrDPJmZY1W0Rkc8YuzU07AOaS2RIaljUbRWSbLTt/tAOQv8Zhf8Sw0eWhCXRl7sIBMJesWwkOQLf0NF+NA2AuWbcSHIBu6Wm+GgfAXLJuJTgA3dLTfDX/AlSTmJ/JwwOoAAAAAElFTkSuQmCC"}})),l.a.createElement(s.View,{style:nn.headerButton},l.a.createElement(s.Text,{numberOfLines:1,style:nn.title},t.name))));const rn="#4c9afa",an="#f44837",ln=s.StyleSheet.create({rowContainer:{alignItems:"center"},buttonView:{borderColor:rn,borderWidth:2,borderRadius:8,justifyContent:"center",alignItems:"center",width:250,height:50,marginTop:30,borderStyle:"solid"},buttonText:{fontSize:20,color:rn,textAlign:"center",textAlignVertical:"center"}});class sn extends a.Component{constructor(e){super(e),this.state={pressItem:"",dataSource:[...$t]},this.renderRow=this.renderRow.bind(this),this.getRowType=this.getRowType.bind(this),this.getRowKey=this.getRowKey.bind(this),this.clickTo=this.clickTo.bind(this)}componentDidMount(){const{history:e}=this.props;"android"===s.Platform.OS&&s.BackAndroid.addListener(()=>(console.log("BackAndroid"),0!==e.index&&(e.goBack(),!0)))}getRowType(e){const{dataSource:t}=this.state;return t[e].meta.style}getRowKey(e){const{dataSource:t}=this.state;return t[e].path||""+e}feedback(e){const t=e||"";this.setState({pressItem:t})}clickTo(e){const{history:t}=this.props;t.push(e)}renderRow(e){const{dataSource:t,pressItem:n}=this.state,o=t[e],{style:r}=o.meta;return l.a.createElement(s.View,{style:ln.rowContainer},l.a.createElement(s.View,{onPressIn:()=>this.feedback(o.path),onPressOut:()=>this.feedback(),onClick:()=>this.clickTo(o.path),style:[ln.buttonView,{borderColor:1===r?rn:an,opacity:n===o.path?.5:1}]},l.a.createElement(s.Text,{style:[ln.buttonText,{color:1===r?rn:an}]},o.name)))}render(){const{dataSource:e}=this.state;return l.a.createElement(s.ListView,{style:{flex:1,backgroundColor:"#ffffff"},numberOfRows:e.length,renderRow:this.renderRow,getRowType:this.getRowType,getRowKey:this.getRowKey})}}const cn=[{path:"/Gallery",name:"Hippy React",component:F(sn),meta:{style:1}},...$t];var hn=()=>l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#fff"}},l.a.createElement(R,{initialEntries:["/Gallery"]},cn.map(e=>{const t=e.component;return l.a.createElement(P,{key:e.path,exact:!0,path:""+e.path},l.a.createElement(s.View,{style:{flex:1,backgroundColor:"#fff"}},l.a.createElement(on,{route:e}),l.a.createElement(t,{meta:e.meta||{}})))})));const un=s.StyleSheet.create({stepText:{color:"#242424",marginBottom:12},container:{flex:1,backgroundColor:"#fff",justifyContent:"center",flexDirection:"column",padding:20},button:{width:140,height:40,borderRadius:8,backgroundColor:"#4c9afa",alignItems:"center",justifyContent:"center"},buttonText:{fontSize:16,textAlign:"center",lineHeight:40,color:"#fff"},buttonContainer:{alignItems:"center",marginTop:12,justifyContent:"center"},inputStyle:{width:350,marginTop:30,marginBottom:10,placeholderTextColor:"#aaaaaa",fontSize:16,color:"#242424",height:80,lineHeight:30,borderColor:"#eee",borderWidth:1,borderStyle:"solid"}});function dn({instanceId:e}){const t=Object(a.useRef)(null),n=()=>{t.current.blur()};return l.a.createElement(s.ScrollView,{style:un.container,onClick:n},["安装远程调试依赖: npm i -D @hippy/debug-server-next@latest","修改 webpack 配置,添加远程调试地址","运行 npm run hippy:dev 开始编译,编译结束后打印出 bundleUrl 及调试首页地址","粘贴 bundleUrl 并点击开始按钮","访问调试首页开始远程调试,远程调试支持热更新(HMR)"].map((e,t)=>l.a.createElement(s.Text,{style:un.stepText,key:"steps-"+t},t+1,". ",e)),l.a.createElement(s.TextInput,{ref:t,style:un.inputStyle,placeholder:"please input bundleUrl",multiline:!0,numberOfLines:4,defaultValue:"http://127.0.0.1:38989/index.bundle?debugUrl=ws%3A%2F%2F127.0.0.1%3A38989%2Fdebugger-proxy"}),l.a.createElement(s.View,{style:un.buttonContainer},l.a.createElement(s.View,{style:un.button,onClick:()=>{n(),t.current.getValue().then(t=>{t&&Object(s.callNative)("TestModule","remoteDebug",e,t)})}},l.a.createElement(s.Text,{style:un.buttonText,numberOfLines:1},"开始"))))}const mn=s.StyleSheet.create({container:{flex:1}});class gn extends a.Component{constructor(e){super(e);const{width:t,height:n}=s.Dimensions.get("screen");this.state={isVertical:t{switch(e){case 0:return l.a.createElement(hn,null);case 1:return l.a.createElement(dn,{instanceId:t});default:return l.a.createElement(s.View,{style:fn.blankPage})}})(),l.a.createElement(s.View,{style:fn.buttonContainer},(()=>["API","调试"].map((t,n)=>l.a.createElement(s.View,{key:"button_"+n,style:fn.button,onClick:()=>this.setState({pageIndex:n})},l.a.createElement(s.Text,{style:[fn.buttonText,n===e?{color:"#4c9afa"}:null],numberOfLines:1},t))))()))}}},"./src/main.js":function(e,t,n){"use strict";n.r(t),function(e){var t=n("../../packages/hippy-react/dist/index.js"),o=n("./src/app.jsx");e.Hippy.on("uncaughtException",e=>{console.error("uncaughtException error",e.stack,e.message)}),e.Hippy.on("unhandledRejection",e=>{console.error("unhandledRejection reason",e)}),new t.Hippy({appName:"Demo",entryPage:o.a,bubbles:!1,silent:!1}).start()}.call(this,n("./node_modules/webpack/buildin/global.js"))},0:function(e,t,n){n("./node_modules/regenerator-runtime/runtime.js"),e.exports=n("./src/main.js")},"dll-reference hippyReactBase":function(e,t){e.exports=hippyReactBase}}); \ No newline at end of file diff --git a/framework/voltron/example/assets/jsbundle/vendor-manifest.json b/framework/voltron/example/assets/jsbundle/vendor-manifest.json index d273aab38da..49bb49a1fa4 100644 --- a/framework/voltron/example/assets/jsbundle/vendor-manifest.json +++ b/framework/voltron/example/assets/jsbundle/vendor-manifest.json @@ -1 +1 @@ -{"name":"hippyReactBase","content":{"../../packages/hippy-react/dist/index.js":{"id":"../../packages/hippy-react/dist/index.js","buildMeta":{"exportsType":"namespace","providedExports":["Animated","Animation","AnimationSet","AppRegistry","AsyncStorage","BackAndroid","Clipboard","ConsoleModule","Dimensions","Easing","Focusable","Hippy","HippyEventEmitter","HippyEventListener","HippyRegister","Image","ImageBackground","ImageLoaderModule","ListView","ListViewItem","Modal","Navigator","NetInfo","NetworkModule","PixelRatio","Platform","PullFooter","PullHeader","RefreshWrapper","ScrollView","StyleSheet","Text","TextInput","TimerModule","UIManagerModule","View","ViewPager","WaterfallView","WebSocket","WebView","callNative","callNativeWithCallbackId","callNativeWithPromise","colorParse","default","flushSync","removeNativeCallback"]}},"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js":{"id":"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/@hippy/react-reconciler/index.js":{"id":"./node_modules/@hippy/react-reconciler/index.js","buildMeta":{"providedExports":true}},"./node_modules/object-assign/index.js":{"id":"./node_modules/object-assign/index.js","buildMeta":{"providedExports":true}},"./node_modules/process/browser.js":{"id":"./node_modules/process/browser.js","buildMeta":{"providedExports":true}},"./node_modules/react/cjs/react.production.min.js":{"id":"./node_modules/react/cjs/react.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/react/index.js":{"id":"./node_modules/react/index.js","buildMeta":{"providedExports":true}},"./node_modules/scheduler/cjs/scheduler.production.min.js":{"id":"./node_modules/scheduler/cjs/scheduler.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/scheduler/index.js":{"id":"./node_modules/scheduler/index.js","buildMeta":{"providedExports":true}},"./node_modules/webpack/buildin/global.js":{"id":"./node_modules/webpack/buildin/global.js","buildMeta":{"providedExports":true}},"./node_modules/webpack/buildin/module.js":{"id":"./node_modules/webpack/buildin/module.js","buildMeta":{"providedExports":true}},"./scripts/vendor.js":{"id":"./scripts/vendor.js","buildMeta":{"providedExports":true}}}} \ No newline at end of file +{"name":"hippyReactBase","content":{"../../packages/hippy-react/dist/index.js":{"id":"../../packages/hippy-react/dist/index.js","buildMeta":{"exportsType":"namespace","providedExports":["Animated","Animation","AnimationSet","AppRegistry","AsyncStorage","BackAndroid","Clipboard","ConsoleModule","Dimensions","Easing","Focusable","Hippy","HippyEventEmitter","HippyEventListener","HippyRegister","Image","ImageBackground","ImageLoaderModule","ListView","ListViewItem","Modal","Navigator","NetInfo","NetworkModule","PixelRatio","Platform","PullFooter","PullHeader","RNfqb","RNfqbEventEmitter","RNfqbEventListener","RNfqbRegister","RefreshWrapper","ScrollView","StyleSheet","Text","TextInput","TimerModule","UIManagerModule","View","ViewPager","WaterfallView","WebSocket","WebView","callNative","callNativeWithCallbackId","callNativeWithPromise","colorParse","default","flushSync","removeNativeCallback"]}},"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js":{"id":"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/@hippy/react-reconciler/index.js":{"id":"./node_modules/@hippy/react-reconciler/index.js","buildMeta":{"providedExports":true}},"./node_modules/object-assign/index.js":{"id":"./node_modules/object-assign/index.js","buildMeta":{"providedExports":true}},"./node_modules/react/cjs/react.production.min.js":{"id":"./node_modules/react/cjs/react.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/react/index.js":{"id":"./node_modules/react/index.js","buildMeta":{"providedExports":true}},"./node_modules/scheduler/cjs/scheduler.production.min.js":{"id":"./node_modules/scheduler/cjs/scheduler.production.min.js","buildMeta":{"providedExports":true}},"./node_modules/scheduler/index.js":{"id":"./node_modules/scheduler/index.js","buildMeta":{"providedExports":true}},"./node_modules/webpack/buildin/global.js":{"id":"./node_modules/webpack/buildin/global.js","buildMeta":{"providedExports":true}},"./node_modules/webpack/buildin/module.js":{"id":"./node_modules/webpack/buildin/module.js","buildMeta":{"providedExports":true}},"./scripts/vendor.js":{"id":"./scripts/vendor.js","buildMeta":{"providedExports":true}}}} \ No newline at end of file diff --git a/framework/voltron/example/assets/jsbundle/vendor.android.js b/framework/voltron/example/assets/jsbundle/vendor.android.js index 91c0013c29c..9c2115c9d95 100644 --- a/framework/voltron/example/assets/jsbundle/vendor.android.js +++ b/framework/voltron/example/assets/jsbundle/vendor.android.js @@ -1,7 +1,7 @@ -var hippyReactBase=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}({"../../packages/hippy-react/dist/index.js":function(e,t,n){"use strict";n.r(t),function(e,r){n.d(t,"Animated",(function(){return yn})),n.d(t,"Animation",(function(){return Me})),n.d(t,"AnimationSet",(function(){return Ve})),n.d(t,"AppRegistry",(function(){return cn})),n.d(t,"AsyncStorage",(function(){return Vn})),n.d(t,"BackAndroid",(function(){return $n})),n.d(t,"Clipboard",(function(){return qn})),n.d(t,"ConsoleModule",(function(){return ar})),n.d(t,"Dimensions",(function(){return cr})),n.d(t,"Easing",(function(){return gn})),n.d(t,"Focusable",(function(){return Hn})),n.d(t,"Hippy",(function(){return sr})),n.d(t,"HippyEventEmitter",(function(){return we})),n.d(t,"HippyEventListener",(function(){return be})),n.d(t,"HippyRegister",(function(){return Yn})),n.d(t,"Image",(function(){return mn})),n.d(t,"ImageBackground",(function(){return ur})),n.d(t,"ImageLoaderModule",(function(){return Xn})),n.d(t,"ListView",(function(){return kn})),n.d(t,"ListViewItem",(function(){return bn})),n.d(t,"Modal",(function(){return jn})),n.d(t,"Navigator",(function(){return xn})),n.d(t,"NetInfo",(function(){return Jn})),n.d(t,"NetworkModule",(function(){return Gn})),n.d(t,"PixelRatio",(function(){return fr})),n.d(t,"Platform",(function(){return lr})),n.d(t,"PullFooter",(function(){return wn})),n.d(t,"PullHeader",(function(){return vn})),n.d(t,"RefreshWrapper",(function(){return En})),n.d(t,"ScrollView",(function(){return On})),n.d(t,"StyleSheet",(function(){return Rn})),n.d(t,"Text",(function(){return pn})),n.d(t,"TextInput",(function(){return _n})),n.d(t,"TimerModule",(function(){return or})),n.d(t,"UIManagerModule",(function(){return Zn})),n.d(t,"View",(function(){return fn})),n.d(t,"ViewPager",(function(){return Nn})),n.d(t,"WaterfallView",(function(){return Wn})),n.d(t,"WebSocket",(function(){return Un})),n.d(t,"WebView",(function(){return Mn})),n.d(t,"callNative",(function(){return tr})),n.d(t,"callNativeWithCallbackId",(function(){return rr})),n.d(t,"callNativeWithPromise",(function(){return nr})),n.d(t,"colorParse",(function(){return Te})),n.d(t,"default",(function(){return un})),n.d(t,"flushSync",(function(){return er})),n.d(t,"removeNativeCallback",(function(){return ir}));var i=n("./node_modules/react/index.js"),o=n.n(i),a=n("./node_modules/@hippy/react-reconciler/index.js"),l=n.n(a);const s=["children"],u=["collapsable","style"],c=["style"],f=["children","style","imageStyle","imageRef","source","sources","src","srcs","tintColor","tintColors"],d=["children"],p=["children"],h=["children","style","renderRow","renderPullHeader","renderPullFooter","getRowType","getRowStyle","getHeaderStyle","getFooterStyle","getRowKey","dataSource","initialListSize","rowShouldSticky","onRowLayout","onHeaderPulling","onHeaderReleased","onFooterPulling","onFooterReleased","onAppear","onDisappear","onWillAppear","onWillDisappear"],m=["children"],y=["initialRoute"],g=["component"],b=["children","onPageScrollStateChanged"],v=["style","renderBanner","numberOfColumns","columnSpacing","interItemSpacing","numberOfItems","preloadItemNumber","renderItem","renderPullHeader","renderPullFooter","getItemType","getItemKey","getItemStyle","contentInset","onItemLayout","onHeaderPulling","onHeaderReleased","onFooterPulling","onFooterReleased","containPullHeader","containPullFooter","containBannerView"];function w(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function k(e){for(var t=1;t=0||(i[n]=e[n]);return i} +var hippyReactBase=function(e){var t={};function n(r){if(t[r])return t[r].exports;var i=t[r]={i:r,l:!1,exports:{}};return e[r].call(i.exports,i,i.exports,n),i.l=!0,i.exports}return n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var i in e)n.d(r,i,function(t){return e[t]}.bind(null,i));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="",n(n.s=0)}({"../../packages/hippy-react/dist/index.js":function(e,t,n){"use strict";n.r(t),function(e){n.d(t,"Animated",(function(){return mn})),n.d(t,"Animation",(function(){return je})),n.d(t,"AnimationSet",(function(){return Be})),n.d(t,"AppRegistry",(function(){return un})),n.d(t,"AsyncStorage",(function(){return Wn})),n.d(t,"BackAndroid",(function(){return Vn})),n.d(t,"Clipboard",(function(){return qn})),n.d(t,"ConsoleModule",(function(){return or})),n.d(t,"Dimensions",(function(){return pr})),n.d(t,"Easing",(function(){return yn})),n.d(t,"Focusable",(function(){return jn})),n.d(t,"Hippy",(function(){return lr})),n.d(t,"HippyEventEmitter",(function(){return be})),n.d(t,"HippyEventListener",(function(){return ye})),n.d(t,"HippyRegister",(function(){return Kn})),n.d(t,"Image",(function(){return hn})),n.d(t,"ImageBackground",(function(){return ur})),n.d(t,"ImageLoaderModule",(function(){return Yn})),n.d(t,"ListView",(function(){return wn})),n.d(t,"ListViewItem",(function(){return gn})),n.d(t,"Modal",(function(){return Fn})),n.d(t,"Navigator",(function(){return Sn})),n.d(t,"NetInfo",(function(){return Xn})),n.d(t,"NetworkModule",(function(){return Qn})),n.d(t,"PixelRatio",(function(){return hr})),n.d(t,"Platform",(function(){return ar})),n.d(t,"PullFooter",(function(){return vn})),n.d(t,"PullHeader",(function(){return bn})),n.d(t,"RNfqb",(function(){return sr})),n.d(t,"RNfqbEventEmitter",(function(){return fr})),n.d(t,"RNfqbEventListener",(function(){return dr})),n.d(t,"RNfqbRegister",(function(){return cr})),n.d(t,"RefreshWrapper",(function(){return kn})),n.d(t,"ScrollView",(function(){return Tn})),n.d(t,"StyleSheet",(function(){return Rn})),n.d(t,"Text",(function(){return dn})),n.d(t,"TextInput",(function(){return In})),n.d(t,"TimerModule",(function(){return ir})),n.d(t,"UIManagerModule",(function(){return Jn})),n.d(t,"View",(function(){return cn})),n.d(t,"ViewPager",(function(){return xn})),n.d(t,"WaterfallView",(function(){return Bn})),n.d(t,"WebSocket",(function(){return Dn})),n.d(t,"WebView",(function(){return Hn})),n.d(t,"callNative",(function(){return er})),n.d(t,"callNativeWithCallbackId",(function(){return nr})),n.d(t,"callNativeWithPromise",(function(){return tr})),n.d(t,"colorParse",(function(){return _e})),n.d(t,"default",(function(){return sn})),n.d(t,"flushSync",(function(){return Zn})),n.d(t,"removeNativeCallback",(function(){return rr}));var r=n("./node_modules/react/index.js"),i=n.n(r),o=n("./node_modules/@hippy/react-reconciler/index.js"),a=n.n(o);const l=["children"],s=["collapsable","style"],u=["style"],c=["children","style","imageStyle","imageRef","source","sources","src","srcs","tintColor","tintColors"],f=["children"],d=["children"],p=["children","style","renderRow","renderPullHeader","renderPullFooter","getRowType","getRowStyle","getHeaderStyle","getFooterStyle","getRowKey","dataSource","initialListSize","rowShouldSticky","onRowLayout","onHeaderPulling","onHeaderReleased","onFooterPulling","onFooterReleased","onAppear","onDisappear","onWillAppear","onWillDisappear"],h=["children"],m=["initialRoute"],y=["component"],g=["children","onPageScrollStateChanged"],b=["style","renderBanner","numberOfColumns","columnSpacing","interItemSpacing","numberOfItems","preloadItemNumber","renderItem","renderPullHeader","renderPullFooter","getItemType","getItemKey","getItemStyle","contentInset","onItemLayout","onHeaderPulling","onHeaderReleased","onFooterPulling","onFooterReleased","containPullHeader","containPullFooter","containBannerView"];function v(e,t){var n=Object.keys(e);if(Object.getOwnPropertySymbols){var r=Object.getOwnPropertySymbols(e);t&&(r=r.filter((function(t){return Object.getOwnPropertyDescriptor(e,t).enumerable}))),n.push.apply(n,r)}return n}function w(e){for(var t=1;t=0||(i[n]=e[n]);return i} /*! - * @hippy/react vunspecified - * Build at: Fri Sep 02 2022 17:02:39 GMT+0800 (China Standard Time) + * @hippy/react v2.2.1 + * Build at: Mon Aug 15 2022 11:07:07 GMT+0800 (China Standard Time) * * Tencent is pleased to support the open source community by making * Hippy available. @@ -20,7 +20,7 @@ var hippyReactBase=function(e){var t={};function n(r){if(t[r])return t[r].export * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. - */(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}e.__GLOBAL__||(e.__GLOBAL__={}),e.__GLOBAL__.nodeId=0,e.__GLOBAL__.animationId=0;const{asyncStorage:x,bridge:C,device:N,document:I,register:P,on:_,off:L,emit:T}=e.Hippy;var A=Object.freeze({__proto__:null,addEventListener:_,removeEventListener:L,dispatchEvent:T,AsyncStorage:x,Bridge:C,Device:N,HippyRegister:P,UIManager:I});let R,z;const O=new Map;function F(e,t){z=e,R=t}function j(){if(!z)throw new Error("getRootViewId must execute after setRootContainer");return z}function H(e){if(!R)return null;const{current:t}=R,n=[t];for(;n.length;){const t=n.shift();if(!t)break;if(e(t))return t;t.child&&n.push(t.child),t.sibling&&n.push(t.sibling)}return null}function M(e,t){O.set(t,e)}function D(e){O.delete(e)}function U(e){return(null==e?void 0:e.stateNode)||null}function B(e){return O.get(e)||null}function W(t){!function(t,n){if(!e.requestIdleCallback)return setTimeout(()=>{t({didTimeout:!1,timeRemaining:()=>1/0})},1);e.requestIdleCallback(t,n)}(e=>{(e.timeRemaining()>0||e.didTimeout)&&function e(t){"number"==typeof t?D(t):t&&(D(t.nodeId),Array.isArray(t.childNodes)&&t.childNodes.forEach(t=>e(t)))}(t)},{timeout:50})}const V=0,$=1,Q=-1,q=1,G={onTouchStart:["onTouchStart","onTouchDown"],onPress:["onPress","onClick"]},K={NONE:0,CAPTURING_PHASE:1,AT_TARGET:2,BUBBLING_PHASE:3},Y={onClick:"click",onLongClick:"longclick",onPressIn:"pressin",onPressOut:"pressout",onTouchDown:"touchstart",onTouchStart:"touchstart",onTouchEnd:"touchend",onTouchMove:"touchmove",onTouchCancel:"touchcancel"};const X=new RegExp(/^\d+$/);let J=!1,Z=!1;function ee(...e){le()&&console.log(...e)}function te(e){return e.replace(/\\u[\dA-F]{4}|\\x[\dA-F]{2}/gi,e=>String.fromCharCode(parseInt(e.replace(/\\u|\\x/g,""),16)))}const ne=new RegExp("^on.+Capture$");function re(e){return ne.test(e)}const ie=new RegExp("^(?=.+)[+-]?\\d*\\.?\\d*([Ee][+-]?\\d+)?$");function oe(e){return"[object Function]"===Object.prototype.toString.call(e)}function ae(e){J=e}function le(){return!1}function se(){return Z}function ue(e){if(e&&!/^(http|https):\/\//.test(e)&&e.indexOf("assets")>-1){0;return`${"hpfile://"}./${e}`}return e}class ce{constructor(e){this.handlerContainer={},this.nextIdForHandler=0,this.eventName=e}getEventListeners(){return Object.keys(this.handlerContainer).filter(e=>this.handlerContainer[e]).map(e=>this.handlerContainer[e])}getHandlerSize(){return Object.keys(this.handlerContainer).length}addEventHandler(e,t){if(!e)throw new TypeError("Invalid arguments for addEventHandler");const n=this.nextIdForHandler;this.nextIdForHandler+=1;const r={id:n,eventHandler:e,context:t},i="eventHandler_"+n;return this.handlerContainer[i]=r,n}notifyEvent(e){Object.keys(this.handlerContainer).forEach(t=>{const n=this.handlerContainer[t];n&&n.eventHandler&&(n.context?n.eventHandler.call(n.context,e):n.eventHandler(e))})}removeEventHandler(e){if("number"!=typeof e)throw new TypeError("Invalid arguments for removeEventHandler");const t="eventHandler_"+e;this.handlerContainer[t]&&delete this.handlerContainer[t]}}class fe{constructor(e,t,n){this.type=e,this.bubbles=!0,this.currentTarget=t,this.target=n}stopPropagation(){this.bubbles=!1}preventDefault(){}}const de=new Map,pe=["%c[event]%c","color: green","color: auto"];function he(e,t){return!(!t.memoizedProps||"function"!=typeof t.memoizedProps[e])}function me(e){if("string"!=typeof e)throw new TypeError("Invalid eventName for getHippyEventHub: "+e);return de.get(e)||null}const ye={registerNativeEventHub:function(e){if(ee(...pe,"registerNativeEventHub",e),"string"!=typeof e)throw new TypeError("Invalid eventName for registerNativeEventHub: "+e);let t=de.get(e);return t||(t=new ce(e),de.set(e,t)),t},getHippyEventHub:me,unregisterNativeEventHub:function(e){if("string"!=typeof e)throw new TypeError("Invalid eventName for unregisterNativeEventHub: "+e);de.has(e)&&de.delete(e)},receiveNativeEvent:function(e){if(ee(...pe,"receiveNativeEvent",e),!e||!Array.isArray(e)||e.length<2)throw new TypeError("Invalid params for receiveNativeEvent: "+JSON.stringify(e));const[t,n]=e;if("string"!=typeof t)throw new TypeError("Invalid arguments for nativeEvent eventName");const r=me(t);r&&r.notifyEvent(n)},receiveComponentEvent:function(e,t){if(ee(...pe,"receiveComponentEvent",e),!e||!t)return;const{id:n,currentId:r,nativeName:i,originalName:o,params:a}=e,l=B(r),s=B(n);l&&s&&(Y[i]?function(e,t,n,r,i,o){try{let t=!1;const a=U(r),l=U(n),{eventPhase:s}=o;if(he(e,n)&&re(e)&&[K.AT_TARGET,K.CAPTURING_PHASE].indexOf(s)>-1){const t=new fe(e,l,a);Object.assign(t,{eventPhase:s},i),n.memoizedProps[e](t),!t.bubbles&&o&&o.stopPropagation()}if(he(e,n)&&!re(e)&&[K.AT_TARGET,K.BUBBLING_PHASE].indexOf(s)>-1){const r=new fe(e,l,a);Object.assign(r,{eventPhase:s},i),t=n.memoizedProps[e](r),"boolean"!=typeof t&&(t=!se()),r.bubbles||(t=!0),t&&o&&o.stopPropagation()}}catch(e){console.reportUncaughtException(e)}}(o,0,l,s,a,t):function(e,t,n,r,i,o){let a=!1;const l=U(r),s=U(n);try{const{eventPhase:t}=o;if(he(e,n)&&!re(e)&&[K.AT_TARGET,K.BUBBLING_PHASE].indexOf(t)>-1){const r=new fe(e,s,l);Object.assign(r,{eventPhase:t},i),n.memoizedProps[e](r),a=!se(),r.bubbles||(a=!0),a&&o&&o.stopPropagation()}}catch(e){console.reportUncaughtException(e)}}(o,0,l,s,a,t))}};e.__GLOBAL__&&(e.__GLOBAL__.jsModuleList.EventDispatcher=ye);class ge{constructor(e,t){this.callback=e,this.bindListener=t}remove(){"number"==typeof this.callback&&this.bindListener&&(this.bindListener.removeCallback(this.callback),this.bindListener=void 0)}}class be{constructor(e){this.eventName=e,this.listenerIdList=[]}unregister(){const e=ye.getHippyEventHub(this.eventName);if(!e)throw new ReferenceError("No listeners for "+this.eventName);const t=this.listenerIdList.length;for(let n=0;n255?255:t}function Ne(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function Ie(e,t,n){let r=n;return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Pe(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=Ie(i,r,e+1/3),a=Ie(i,r,e),l=Ie(i,r,e-1/3);return Math.round(255*o)<<24|Math.round(255*a)<<16|Math.round(255*l)<<8}function _e(e){return(parseFloat(e)%360+360)%360/360}function Le(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function Te(e){if(Number.isInteger(e))return e;let t=function(e){let t;return"number"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=xe.hex6.exec(e),Array.isArray(t)?parseInt(t[1]+"ff",16)>>>0:Object.hasOwnProperty.call(Ee,e)?Ee[e]:(t=xe.rgb.exec(e),Array.isArray(t)?(Ce(t[1])<<24|Ce(t[2])<<16|Ce(t[3])<<8|255)>>>0:(t=xe.rgba.exec(e),t?(Ce(t[1])<<24|Ce(t[2])<<16|Ce(t[3])<<8|Ne(t[4]))>>>0:(t=xe.hex3.exec(e),t?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=xe.hex8.exec(e),t?parseInt(t[1],16)>>>0:(t=xe.hex4.exec(e),t?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=xe.hsl.exec(e),t?(255|Pe(_e(t[1]),Le(t[2]),Le(t[3])))>>>0:(t=xe.hsla.exec(e),t?(Pe(_e(t[1]),Le(t[2]),Le(t[3]))|Ne(t[4]))>>>0:null))))))))}(e);return null===t?0:(t=(t<<24|t>>>8)>>>0,t)}function Ae(e){return Array.isArray(e)?e.map(e=>Te(e)):[0]}function Re(e){return"loop"===e?-1:e}function ze(e,t){return"color"===e&&["number","string"].indexOf(typeof t)>=0?Te(t):t}const Oe="animationstart",Fe="animationend",je="animationcancel",He="animationrepeat";class Me{constructor(t){var n;let r;if((null===(n=t.startValue)||void 0===n?void 0:n.constructor)&&"Animation"===t.startValue.constructor.name)r={animationId:t.startValue.animationId};else{const{startValue:e}=t;r=ze(t.valueType,e)}const i=ze(t.valueType,t.toValue);this.mode=t.mode||"timing",this.delay=t.delay||0,this.startValue=r||0,this.toValue=i||0,this.valueType=t.valueType||void 0,this.duration=t.duration||0,this.direction=t.direction||"center",this.timingFunction=t.timingFunction||"linear",this.repeatCount=Re(t.repeatCount||0),this.inputRange=t.inputRange||[],this.outputRange=t.outputRange||[],this.animation=new e.Hippy.Animation(Object.assign({mode:this.mode,delay:this.delay,startValue:this.startValue,toValue:this.toValue,duration:this.duration,direction:this.direction,timingFunction:this.timingFunction,repeatCount:this.repeatCount,inputRange:this.inputRange,outputRange:this.outputRange},this.valueType?{valueType:this.valueType}:{})),this.animationId=this.animation.getId(),this.destroy=this.destroy.bind(this),this.onHippyAnimationStart=this.onAnimationStart.bind(this),this.onHippyAnimationEnd=this.onAnimationEnd.bind(this),this.onHippyAnimationCancel=this.onAnimationCancel.bind(this),this.onHippyAnimationRepeat=this.onAnimationRepeat.bind(this)}removeEventListener(){if(!this.animation)throw new Error("animation has not been initialized yet");"function"==typeof this.onAnimationStartCallback&&this.animation.removeEventListener(Oe),"function"==typeof this.onAnimationEndCallback&&this.animation.removeEventListener(Fe),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(je),"function"==typeof this.onAnimationRepeatCallback&&this.animation.removeEventListener(He)}start(){if(!this.animation)throw new Error("animation has not been initialized yet");this.removeEventListener(),"function"==typeof this.onAnimationStartCallback&&this.animation.addEventListener(Oe,()=>{"function"==typeof this.onAnimationStartCallback&&this.onAnimationStartCallback()}),"function"==typeof this.onAnimationEndCallback&&this.animation.addEventListener(Fe,()=>{"function"==typeof this.onAnimationEndCallback&&this.onAnimationEndCallback()}),"function"==typeof this.onAnimationCancelCallback&&this.animation.addEventListener(je,()=>{"function"==typeof this.onAnimationCancelCallback&&this.onAnimationCancelCallback()}),"function"==typeof this.onAnimationRepeatCallback&&this.animation.addEventListener(He,()=>{"function"==typeof this.onAnimationRepeatCallback&&this.onAnimationRepeatCallback()}),this.animation.start()}destroy(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.destroy()}pause(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.pause()}resume(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.resume()}updateAnimation(e){if(!this.animation)throw new Error("animation has not been initialized yet");if("object"!=typeof e)throw new TypeError("Invalid arguments");if("string"==typeof e.mode&&e.mode!==this.mode)throw new TypeError("Update animation mode not supported");Object.keys(e).forEach(t=>{const n=e[t];if("startValue"===t){let t;if(e.startValue instanceof Me)t={animationId:e.startValue.animationId};else{const{startValue:n}=e;t=ze(this.valueType,n)}this.startValue=t||0}else"repeatCount"===t?this.repeatCount=Re(e.repeatCount||0):Object.defineProperty(this,t,{value:n})}),this.animation.updateAnimation(Object.assign({mode:this.mode,delay:this.delay,startValue:this.startValue,toValue:ze(this.valueType,this.toValue),duration:this.duration,direction:this.direction,timingFunction:this.timingFunction,repeatCount:this.repeatCount,inputRange:this.inputRange,outputRange:this.outputRange},this.valueType?{valueType:this.valueType}:{}))}onAnimationStart(e){this.onAnimationStartCallback=e}onAnimationEnd(e){this.onAnimationEndCallback=e}onAnimationCancel(e){this.onAnimationCancelCallback=e}onAnimationRepeat(e){this.onAnimationRepeatCallback=e}}const De="animationstart",Ue="animationend",Be="animationcancel",We="animationrepeat";class Ve{constructor(t){this.animationList=[],null==t||t.children.forEach(e=>{this.animationList.push({animationId:e.animation.animationId,follow:e.follow||!1})}),this.animation=new e.Hippy.AnimationSet({repeatCount:Re(t.repeatCount||0),children:this.animationList}),this.animationId=this.animation.getId(),this.onHippyAnimationStart=this.onAnimationStart.bind(this),this.onHippyAnimationEnd=this.onAnimationEnd.bind(this),this.onHippyAnimationCancel=this.onAnimationCancel.bind(this),this.onHippyAnimationRepeat=this.onAnimationRepeat.bind(this)}removeEventListener(){if(!this.animation)throw new Error("animation has not been initialized yet");"function"==typeof this.onAnimationStartCallback&&this.animation.removeEventListener(De),"function"==typeof this.onAnimationEndCallback&&this.animation.removeEventListener(Ue),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(Be),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(We)}start(){if(!this.animation)throw new Error("animation has not been initialized yet");this.removeEventListener(),"function"==typeof this.onAnimationStartCallback&&this.animation.addEventListener(De,()=>{"function"==typeof this.onAnimationStartCallback&&this.onAnimationStartCallback()}),"function"==typeof this.onAnimationEndCallback&&this.animation.addEventListener(Ue,()=>{"function"==typeof this.onAnimationEndCallback&&this.onAnimationEndCallback()}),"function"==typeof this.onAnimationCancelCallback&&this.animation.addEventListener(Be,()=>{"function"==typeof this.onAnimationCancelCallback&&this.onAnimationCancelCallback()}),"function"==typeof this.onAnimationRepeatCallback&&this.animation.addEventListener(Be,()=>{"function"==typeof this.onAnimationRepeatCallback&&this.onAnimationRepeatCallback()}),this.animation.start()}destory(){this.destroy()}destroy(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.destroy()}pause(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.pause()}resume(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.resume()}onAnimationStart(e){this.onAnimationStartCallback=e}onAnimationEnd(e){this.onAnimationEndCallback=e}onAnimationCancel(e){this.onAnimationCancelCallback=e}onAnimationRepeat(e){this.onAnimationRepeatCallback=e}}const $e={createNode:Symbol("createNode"),updateNode:Symbol("updateNode"),deleteNode:Symbol("deleteNode"),moveNode:Symbol("moveNode")};let Qe=!0,qe=[];function Ge(e=[],t){e.forEach(e=>{if(e){const{id:n,eventList:r}=e;r.forEach(e=>{const{name:r,type:i,listener:o,isCapture:a}=e;let l;l=function(e){return!!Y[e]}(r)?Y[r]:function(e){return e.replace(/^(on)?/g,"").toLocaleLowerCase()}(r),i===$&&t.removeEventListener(n,l,o),i===V&&t.addEventListener(n,l,o,a)})}})}function Ke(e,t){0}function Ye(t){const n=function(e){const t=[];for(let n=0;n{switch(e.type){case $e.createNode:Ke(e.printedNodes),r.create(e.nodes),Ge(e.eventNodes,r);break;case $e.updateNode:Ke(e.printedNodes),r.update(e.nodes),Ge(e.eventNodes,r);break;case $e.deleteNode:Ke(e.printedNodes),r.delete(e.nodes);break;case $e.moveNode:Ke(e.printedNodes),r.move(e.nodes)}}),r.build()}function Xe(e=!1){if(!Qe)return;if(Qe=!1,0===qe.length)return void(Qe=!0);const t=j();e?(Ye(t),qe=[],Qe=!0):Promise.resolve().then(()=>{Ye(t),qe=[],Qe=!0})}function Je(e){const t=e.attributes,{children:n}=t;return S(t,s)}function Ze(e,t,n={}){var r;if(!t.nativeName)return[];if(t.meta.skipAddToDom)return[];if(!t.meta.component)throw new Error("Specific tag is not supported yet: "+t.tagName);const i={id:t.nodeId,pId:(null===(r=t.parentNode)||void 0===r?void 0:r.nodeId)||e,name:t.nativeName,props:k(k({},Je(t)),{},{style:t.style})},o=function(e){let t=void 0;const n=e.events;if(n){const r=[];Object.keys(n).forEach(t=>{const{name:i,type:o,isCapture:a,listener:l}=n[t];e.isListenerHandled(t,o)||(e.setListenerHandledType(t,o),r.push({name:i,type:o,isCapture:a,listener:l}))}),t={id:e.nodeId,eventList:r}}return t}(t);let a=void 0;return[[i,n],o,a]}function et(e,t,n,r,i={}){const o=[],a=[],l=[];let s=n;return void 0===s&&t&&t.parentNode&&(s=t.parentNode.childNodes.indexOf(t)),t.traverseChildren((t,n)=>{const[i,s,u]=Ze(e,t,n);i&&o.push(i),s&&a.push(s),u&&l.push(u),"function"==typeof r&&r(t)},s,i),[o,a,l]}function tt(e){return!!R&&e instanceof R.containerInfo.constructor}function nt(e,t,n=-1,r={}){if(!e||!t)return;if(t.meta.skipAddToDom)return;const i=j(),o=tt(e)&&!e.isMounted,a=e.isMounted&&!t.isMounted;if(o||a){const[e,o,a]=et(i,t,n,e=>{e.isMounted||(e.isMounted=!0)},r);qe.push({type:$e.createNode,nodes:e,eventNodes:o,printedNodes:a})}}function rt(e){if(!e.isMounted)return;const t=j(),[n,r,i]=Ze(t,e);n&&qe.push({type:$e.updateNode,nodes:[n],eventNodes:[r],printedNodes:[]})}let it=0;class ot{constructor(){this.meta={component:{}},this.index=0,this.childNodes=[],this.parentNode=null,this.mounted=!1,this.nodeId=(it+=1,it%10==0&&(it+=1),it)}toString(){return this.constructor.name}get isMounted(){return this.mounted}set isMounted(e){this.mounted=e}insertBefore(e,t){if(!e)throw new Error("Can't insert child.");if(e.meta.skipAddToDom)return;if(!t)return this.appendChild(e);if(t.parentNode!==this)throw new Error("Can't insert child, because the reference node has a different parent.");if(e.parentNode&&e.parentNode!==this)throw new Error("Can't insert child, because it already has a different parent.");const n=this.childNodes.indexOf(t);return e.parentNode=this,this.childNodes.splice(n,0,e),nt(this,e,n,{refId:t.nodeId,relativeToRef:Q})}moveChild(e,t){if(!e)throw new Error("Can't move child.");if(e.meta.skipAddToDom)return;if(!t)return this.appendChild(e);if(t.parentNode!==this)throw new Error("Can't move child, because the reference node has a different parent.");if(e.parentNode&&e.parentNode!==this)throw new Error("Can't move child, because it already has a different parent.");const n=this.childNodes.indexOf(e),r=this.childNodes.indexOf(t);if(r===n)return e;this.childNodes.splice(n,1);const i=this.childNodes.indexOf(t);return this.childNodes.splice(i,0,e),function(e,t,n=-1,r={}){if(!e||!t)return;if(t.meta.skipAddToDom)return;t.index=n;const i=j(),o={id:t.nodeId,pId:t.parentNode?t.parentNode.nodeId:i},a=[[o,r]],l=[];qe.push({printedNodes:l,type:$e.moveNode,nodes:a,eventNodes:[]})}(this,e,r,{refId:t.nodeId,relativeToRef:Q})}appendChild(e){if(!e)throw new Error("Can't append child.");if(e.meta.skipAddToDom)return;if(e.parentNode&&e.parentNode!==this)throw new Error("Can't append child, because it already has a different parent.");e.parentNode=this;const t=this.childNodes.length-1,n=this.childNodes[t];this.childNodes.push(e);nt(this,e,t+1,n&&{refId:n.nodeId,relativeToRef:q})}removeChild(e){if(!e)throw new Error("Can't remove child.");if(e.meta.skipAddToDom)return;if(!e.parentNode)throw new Error("Can't remove child, because it has no parent.");if(e.parentNode!==this)throw new Error("Can't remove child, because it has a different parent.");const t=this.childNodes.indexOf(e);this.childNodes.splice(t,1),function(e,t,n){if(!t||t.meta.skipAddToDom)return;t.isMounted=!1,t.index=n;const r=j(),i={id:t.nodeId,pId:t.parentNode?t.parentNode.nodeId:r},o=[[i,{}]],a=[];qe.push({printedNodes:a,type:$e.deleteNode,nodes:o,eventNodes:[]})}(0,e,t)}findChild(e){if(e(this))return this;if(this.childNodes.length)for(let t=0;t{this.traverseChildren.call(t,e,n,{})})}}const at={textDecoration:"textDecorationLine",boxShadowOffset:"shadowOffset",boxShadowOffsetX:"shadowOffsetX",boxShadowOffsetY:"shadowOffsetY",boxShadowOpacity:"shadowOpacity",boxShadowRadius:"shadowRadius",boxShadowSpread:"shadowSpread",boxShadowColor:"shadowColor"},lt={totop:"0",totopright:"totopright",toright:"90",tobottomright:"tobottomright",tobottom:"180",tobottomleft:"tobottomleft",toleft:"270",totopleft:"totopleft"},st="turn",ut="rad",ct="deg";function ft(e){const t=(e||"").replace(/\s*/g,"").toLowerCase(),n=/^([+-]?\d+\.?\d*)+(deg|turn|rad)|(to\w+)$/g.exec(t);if(!Array.isArray(n))return;let r="180";const[i,o,a]=n;return o&&a?r=function(e,t=ct){const n=parseFloat(e);let r=e||"";const[,i]=e.split(".");switch(i&&i.length>2&&(r=n.toFixed(2)),t){case st:r=""+(360*n).toFixed(2);break;case ut:r=""+(180/Math.PI*n).toFixed(2)}return r}(o,a):i&&void 0!==lt[i]&&(r=lt[i]),r}function dt(e){const t=(e||"").replace(/\s+/g," ").trim(),[n,r]=t.split(/\s+(?![^(]*?\))/),i=/^([+-]?\d+\.?\d*)%$/g;return!n||i.exec(n)||r?n&&i.exec(r)?{ratio:parseFloat(r.split("%")[0])/100,color:Te(n)}:void 0:{color:Te(n)}}class pt extends ot{constructor(e){super(),this.id="",this.style={},this.attributes={},this.events={},this.tagName=e}get nativeName(){return this.meta.component.name}toString(){return`${this.tagName}:(${this.nativeName})`}setListenerHandledType(e,t){this.events[e]&&(this.events[e].handledType=t)}isListenerHandled(e,t){return!this.events[e]||t===this.events[e].handledType}hasAttribute(e){return!!this.attributes[e]}getAttribute(e){return this.attributes[e]}setStyleAttribute(e){this.style={};let t=e;if(!Array.isArray(t)&&Object.hasOwnProperty.call(t,0)){const e=[],n={};Object.keys(t).forEach(r=>{var i;i=r,X.test(i)?e.push(t[r]):n[r]=t[r]}),t=[...e,n]}Array.isArray(t)||(t=[t]);let n={};t.forEach(e=>{Array.isArray(e)?e.forEach(e=>{n=k(k({},n),e)}):"object"==typeof e&&e&&(n=k(k({},n),e))}),Object.keys(n).forEach(e=>{const t=n[e];if(Object.prototype.hasOwnProperty.call(at,e)&&(e=at[e]),"transform"===e){const e={};if(!Array.isArray(t))throw new TypeError("transform only support array args");t.forEach(t=>{Object.keys(t).forEach(n=>{const r=t[n];r instanceof Me||r instanceof Ve?e[n]={animationId:r.animationId}:null===r?e[n]&&delete e[n]:void 0!==r&&(e[n]=r)})});const n=Object.keys(e);n.length&&(Array.isArray(this.style.transform)||(this.style.transform=[]),n.forEach(t=>this.style.transform.push({[t]:e[t]})))}else if(null===t&&void 0!==this.style[e])this.style[e]=void 0;else if(t instanceof Me||t instanceof Ve)this.style[e]={animationId:t.animationId};else if(e.toLowerCase().indexOf("colors")>-1)this.style[e]=Ae(t);else if(e.toLowerCase().indexOf("color")>-1)this.style[e]=Te(t);else if("backgroundImage"===e&&t)this.style=function(e,t,n){if(0===t.indexOf("linear-gradient")){const e=t.substring(t.indexOf("(")+1,t.lastIndexOf(")")).split(/,(?![^(]*?\))/),r=[];n.linearGradient=n.linearGradient||{},e.forEach((e,t)=>{if(0===t){const t=ft(e);if(t)n.linearGradient.angle=t;else{n.linearGradient.angle="180";const t=dt(e);t&&r.push(t)}}else{const t=dt(e);t&&r.push(t)}}),n.linearGradient.colorStopList=r}else n[e]=ue(t);return n}(e,t,this.style);else if("textShadowOffset"===e){const{x:n=0,width:r=0,y:i=0,height:o=0}=t||{};this.style[e]={width:n||r,height:i||o}}else["textShadowOffsetX","textShadowOffsetY"].indexOf(e)>=0?this.style=function(e,t,n){return n.textShadowOffset=n.textShadowOffset||{},Object.assign(n.textShadowOffset,{[{textShadowOffsetX:"width",textShadowOffsetY:"height"}[e]]:t||0}),n}(e,t,this.style):this.style[e]=t})}setAttributes(e=[]){Array.isArray(e)&&e.length>0&&(e.forEach(e=>{if(Array.isArray(e)){const[t,n]=e;this.setAttribute(t,n,{notToNative:!0})}}),rt(this))}parseAnimationStyleProp(e){let t=!1;Object.keys(e).some(n=>{const r=e[n];if(r&&Array.isArray(r)&&"transform"===n)for(let e=0;e["id"].indexOf(e)>=0,action:()=>(t===this.id||(this.id=t,function(e){if(!e.isMounted)return;const t=j(),[n,r,i]=et(t,e)||{};n&&qe.push({type:$e.updateNode,nodes:n,eventNodes:r,printedNodes:i})}(this)),!0)},{match:()=>["value","defaultValue","placeholder"].indexOf(e)>=0,action:()=>(this.attributes[e]=te(t),!1)},{match:()=>["text"].indexOf(e)>=0,action:()=>(this.attributes[e]=t,!1)},{match:()=>["style"].indexOf(e)>=0,action:()=>"object"!=typeof t||null==t||(this.setStyleAttribute(t),!1)},{match:()=>!0,action:()=>{if("function"==typeof t){const t=function(e){return re(e)&&(e=e.replace("Capture","")),G[e]?G[e][1]:e}(e);this.events[e]?this.events[e]&&this.events[e].type!==V&&(this.events[e].type=V):this.events[e]={name:t,type:V,isCapture:re(e),listener:(n=t,r=e,e=>{const{id:t,currentId:i,params:o,eventPhase:a}=e,l={id:t,nativeName:n,originalName:r,params:o,currentId:i,eventPhase:a};ye.receiveComponentEvent(l,e)})}}else{if(function(e,t){return void 0!==t&&"object"==typeof t[e]&&!!t[e]}(e,this.events)&&"function"!=typeof t)return this.events[e].type=$,!1;this.attributes[e]=t}var n,r;return!1}}].some(e=>!!e.match()&&(n=e.action(),!0)),n}setAttribute(e,t,n={}){try{if("boolean"==typeof this.attributes[e]&&""===t&&(t=!0),void 0===e)return void(!n.notToNative&&rt(this));if(this.parseAttributeProp(e,t))return;this.parseAnimationStyleProp(this.style),!n.notToNative&&rt(this)}catch(e){}}removeAttribute(e){delete this.attributes[e]}setStyle(e,t,n=!1){if(null===t)return void delete this.style[e];let r=t,i=e;Object.prototype.hasOwnProperty.call(at,e)&&(i=at[e]),"string"==typeof r&&(r=t.trim(),r=i.toLowerCase().indexOf("colors")>-1?Ae(r):i.toLowerCase().indexOf("color")>-1?Te(r):function(e){if("number"==typeof e)return e;if("string"==typeof e&&ie.test(e))try{return parseFloat(e)}catch(t){return e}return e}(r)),null!=r&&this.style[i]!==r&&(this.style[i]=r,n||rt(this))}setNativeProps(e){if(e){const{style:t}=e;if(t){const e=t;Object.keys(e).forEach(t=>{this.setStyle(t,e[t],!0)}),rt(this),Xe(!0)}}}setText(e){if("string"!=typeof e)try{e=e.toString()}catch(e){throw new Error("Only string type is acceptable for setText")}return(e=e.trim())||this.getAttribute("text")?(e=(e=te(e)).replace(/ /g," ").replace(/Â/g," "),"textarea"===this.tagName?this.setAttribute("value",e):this.setAttribute("text",e)):null}}class ht extends ot{constructor(){super(),this.documentElement=new pt("document")}createElement(e){return new pt(e)}createElementNS(e,t){return new pt(`${e}:${t}`)}}ht.createElement=ht.prototype.createElement,ht.createElementNS=ht.prototype.createElementNS;var mt=Array.isArray,yt=Object.keys,gt=Object.prototype.hasOwnProperty;const bt=setTimeout,vt=clearTimeout;var wt=Object.freeze({__proto__:null,commitMutationEffectsBegin:function(){},commitMutationEffectsComplete:function(){Xe(!0)},getCurrentEventPriority:function(){return 16},scheduleTimeout:bt,cancelTimeout:vt,noTimeout:-1,afterActiveInstanceBlur:function(){},appendChild:function(e,t){e.childNodes.indexOf(t)>=0&&e.removeChild(t),e.appendChild(t)},appendChildToContainer:function(e,t){e.appendChild(t)},appendInitialChild:function(e,t){e.appendChild(t)},beforeActiveInstanceBlur:function(){},commitMount:function(){},commitTextUpdate:function(){},commitUpdate:function(e,t,n,r,i,o){M(o,e.nodeId);const a=Object.keys(t||{});if(0===a.length)return;const l=a.map(e=>[e,t[e]]);e.setAttributes(l)},clearContainer:function(){},createContainerChildSet:function(){},createInstance:function(e,t,n,r,i){const o=n.createElement(e);return Object.keys(t).forEach(e=>{switch(e){case"children":break;case"nativeName":o.meta.component.name=t.nativeName;break;default:o.setAttribute(e,t[e])}}),[5,7].indexOf(i.tag)<0&&(o.meta.skipAddToDom=!0),M(i,o.nodeId),o},createTextInstance:function(e,t,n,r){const i=t.createElement("p");return i.setAttribute("text",te(e)),i.meta={component:{name:"Text"}},M(r,i.nodeId),i},detachDeletedInstance:function(){},finalizeContainerChildren:function(){},finalizeInitialChildren:function(){return!0},getChildHostContext:function(){return{}},getPublicInstance:function(e){return e},getInstanceFromNode:function(){throw new Error("Not yet implemented.")},getFundamentalComponentInstance:function(){throw new Error("Not yet implemented.")},getRootHostContext:function(){return{}},hideInstance:function(e){const t={style:{display:"none"}};Object.keys(t).forEach(n=>e.setAttribute(n,t[n]))},hideTextInstance:function(){throw new Error("Not yet implemented.")},insertBefore:function(e,t,n){e.childNodes.indexOf(t)>=0?e.moveChild(t,n):e.insertBefore(t,n)},isOpaqueHydratingObject:function(){throw new Error("Not yet implemented")},makeClientId:function(){throw new Error("Not yet implemented")},makeClientIdInDEV:function(){throw new Error("Not yet implemented")},makeOpaqueHydratingObject:function(){throw new Error("Not yet implemented.")},mountFundamentalComponent:function(){throw new Error("Not yet implemented.")},prepareForCommit:function(){return null},preparePortalMount:function(){},prepareUpdate:function(e,t,n,r){const i={};return Object.keys(n).forEach(e=>{const t=n[e],o=r[e];null!=t&&null==o&&(i[e]=o)}),Object.keys(r).forEach(e=>{const t=n[e],o=r[e];switch(e){case"children":t===o||"number"!=typeof o&&"string"!=typeof o||(i[e]=o);break;default:null!=o&&null==t?i[e]=o:"function"==typeof o||function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var r,i,o,a=mt(t),l=mt(n);if(a&&l){if((i=t.length)!=n.length)return!1;for(r=i;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=l)return!1;var s=t instanceof Date,u=n instanceof Date;if(s!=u)return!1;if(s&&u)return t.getTime()==n.getTime();var c=t instanceof RegExp,f=n instanceof RegExp;if(c!=f)return!1;if(c&&f)return t.toString()==n.toString();var d=yt(t);if((i=d.length)!==yt(n).length)return!1;for(r=i;0!=r--;)if(!gt.call(n,d[r]))return!1;for(r=i;0!=r--;)if(!e(t[o=d[r]],n[o]))return!1;return!0}return t!=t&&n!=n}(t,o)||(i[e]=o)}}),i},replaceContainerChildren:function(){},removeChild:function(e,t){e.removeChild(t),W(t)},removeChildFromContainer:function(e,t){e.removeChild(t),W(t)},resetAfterCommit:function(){},resetTextContent:function(){},unmountFundamentalComponent:function(){throw new Error("Not yet implemented.")},updateFundamentalComponent:function(){throw new Error("Not yet implemented.")},unhideTextInstance:function(){throw new Error("Not yet implemented.")},unhideInstance:function(e,t){const n=k(k({},t),{},{style:k(k({},t.style),{},{display:"flex"})});Object.keys(n).forEach(t=>e.setAttribute(t,n[t]))},shouldDeprioritizeSubtree:function(){return!0},shouldUpdateFundamentalComponent:function(){throw new Error("Not yet implemented.")},shouldSetTextContent:function(e,t){if(t&&"Text"===t.nativeName||-1!==["p","span"].indexOf(e)){const{children:e}=t;return"string"==typeof e||"number"==typeof e}return!1}});const kt=l()(k(k({},wt),{},{clearTimeout:clearTimeout,setTimeout:setTimeout,isPrimaryRenderer:!0,noTimeout:-1,supportsMutation:!0,supportsHydration:!1,supportsPersistence:!1,now:Date.now,scheduleDeferredCallback:()=>{},cancelDeferredCallback:()=>{}}));var Et=Object.freeze({__proto__:null,getString:function(){return C.callNativeWithPromise("ClipboardModule","getString")},setString:function(e){C.callNative("ClipboardModule","setString",e)}});var St=Object.freeze({__proto__:null,getCookies:function(e){return C.callNativeWithPromise("network","getCookie",e)},setCookie:function(e,t,n){let r="";"string"==typeof n&&(r=n),n instanceof Date&&(r=n.toUTCString()),C.callNative("network","setCookie",e,t,r)}});function xt(e){return C.callNativeWithPromise("ImageLoaderModule","getSize",e)}function Ct(e){C.callNative("ImageLoaderModule","prefetch",e)}var Nt=Object.freeze({__proto__:null,getSize:xt,prefetch:Ct});const It=new Map;let Pt;class _t{constructor(e,t){this.eventName=e,this.listener=t}remove(){this.eventName&&this.listener&&(Lt(this.eventName,this.listener),this.listener=void 0)}}function Lt(e,t){if(t instanceof _t)return void t.remove();let n=e;"change"===e&&(n="networkStatusDidChange");Pt.listenerSize(n)<=1&&C.callNative("NetInfo","removeListener",n);const r=It.get(t);r&&(r.remove(),It.delete(t))}var Tt=Object.freeze({__proto__:null,addEventListener:function(e,t){Pt=new we;let n=e;n&&"change"===n&&(n="networkStatusDidChange"),Pt.listenerSize(n)<1&&C.callNative("NetInfo","addListener",n);const r=Pt.addListener(n,e=>{t(e)});return It.set(t,r),new _t(n,t)},removeEventListener:Lt,fetch:function(){return C.callNativeWithPromise("NetInfo","getCurrentConnectivity").then(e=>e.network_info)}});const{createNode:At,updateNode:Rt,deleteNode:zt,flushBatch:Ot,endBatch:Ft,sendRenderError:jt}=I,Ht=function(e){return H(t=>t.stateNode&&t.stateNode.nodeId===e)};function Mt(e){if(e instanceof pt)return e;if(!e)return null;const t=e._reactInternalFiber||e._reactInternals;if(null==t?void 0:t.child){let e=t.child;for(;e&&!(e.stateNode instanceof pt);)e=e.child;return e&&e.stateNode?e.stateNode:null}return null}function Dt(e){let t=e;if("string"==typeof e){const n=H(t=>!!(t.return&&t.return.ref&&t.return.ref._stringRef)&&t.return.ref._stringRef===e);if(!n||!n.stateNode)return 0;t=n.stateNode}if(!t.nodeId){const e=Mt(t);return e?e.nodeId:0}return t.nodeId}function Ut(e,t,...n){let{nativeName:r,nodeId:i}=e;if(!i||!r){const t=Mt(e);t&&({nodeId:i,nativeName:r}=t)}if(!r)throw new Error("callUIFunction is calling a unnamed component");if(!i)throw new Error("callUIFunction is calling a component have no nodeId");let[o=[],a]=n;oe(o)&&(a=o,o=[]);null!==j()&&(ee("callUIFunction",{nodeId:i,funcName:t,paramList:o}),I.callUIFunction(i,t,o,a))}function Bt(e,t,n){const r=Dt(t);return new Promise((t,i)=>r?(ee("callUIFunction",{nodeId:r,funcName:e,paramList:[]}),I.callUIFunction(r,e,[],e=>(n&&oe(n)&&n(e),"this view is null"===e?i(new Error("Android cannot get the node")):t(e)))):(n&&oe(n)&&n("this view is null"),i(new Error(e+" cannot get nodeId"))))}var Wt=Object.freeze({__proto__:null,createNode:At,updateNode:Rt,deleteNode:zt,flushBatch:Ot,endBatch:Ft,sendRenderError:jt,getNodeById:Ht,getNodeIdByRef:Dt,getElementFromFiberRef:Mt,callUIFunction:Ut,measureInWindow:function(e,t){return Bt("measureInWindow",e,t)},measureInAppWindow:function(e,t){return"android"===N.platform.OS?Bt("measureInWindow",e,t):Bt("measureInAppWindow",e,t)}});const Vt=new we,$t=new Set,Qt={exitApp(){C.callNative("DeviceEventModule","invokeDefaultBackPressHandler")},addListener:e=>(C.callNative("DeviceEventModule","setListenBackPress",!0),$t.add(e),{remove(){Qt.removeListener(e)}}),removeListener(e){$t.delete(e),0===$t.size&&C.callNative("DeviceEventModule","setListenBackPress",!1)},initEventListener(){Vt.addListener("hardwareBackPress",()=>{let e=!0;[...$t].reverse().every(t=>"function"!=typeof t||!t()||(e=!1,!1)),e&&Qt.exitApp()})}},qt=(Qt.initEventListener(),Qt),{flushSync:Gt}=kt,{addEventListener:Kt,removeEventListener:Yt,dispatchEvent:Xt,AsyncStorage:Jt,Bridge:Zt,Device:en,HippyRegister:tn}=A;var nn=Object.freeze({__proto__:null,addEventListener:Kt,removeEventListener:Yt,dispatchEvent:Xt,AsyncStorage:Jt,BackAndroid:qt,Bridge:Zt,Clipboard:Et,Cookie:St,Device:en,HippyRegister:tn,ImageLoader:Nt,NetworkInfo:Tt,UIManager:Wt,flushSync:Gt});const{createContainer:rn,updateContainer:on,getPublicRootInstance:an,injectIntoDevTools:ln}=kt,sn=['%c[Hippy-React "unspecified"]%c',"color: #61dafb","color: auto"];class un{constructor(e){if(!e.appName||!e.entryPage)throw new TypeError("Invalid arguments");this.config=e,this.regist=this.start,this.render=this.render.bind(this);const t=new ht;this.rootContainer=rn(t,0,!1,null)}static get Native(){return nn}start(){tn.regist(this.config.appName,this.render)}render(e){const{appName:t,entryPage:n,silent:r=!1,bubbles:i=!1,callback:a=(()=>{})}=this.config,{__instanceId__:l}=e;ee(...sn,"Start",t,"with rootViewId",l,e),this.rootContainer.containerInfo.nodeId=l,r&&ae(r),i&&function(e=!1){Z=e}(i),F(l,this.rootContainer);const s=o.a.createElement(n,e);return on(s,this.rootContainer,null,a),an(this.rootContainer)}}un.version="unspecified";const cn={registerComponent(e,t){new un({appName:e,entryPage:t}).start()}};class fn extends o.a.Component{constructor(){super(...arguments),this.instance=null}setPressed(e){Ut(this.instance,"setPressed",[e])}setHotspot(e,t){Ut(this.instance,"setHotspot",[e,t])}render(){const e=this.props,{collapsable:t,style:n={}}=e,r=S(e,u),i=n,{nativeBackgroundAndroid:a}=r;return"boolean"==typeof t&&(i.collapsable=t),void 0!==(null==a?void 0:a.color)&&(a.color=Te(a.color)),o.a.createElement("div",k({ref:e=>{this.instance=e},nativeName:"View",style:i},r))}}function dn(e,t){let{style:n}=e,r=S(e,c);const i=n;if(n&&(Array.isArray(n)?-1===n.filter(e=>"object"==typeof e&&e).findIndex(e=>e.color||e.colors)&&(i[0].color="#000"):"object"==typeof n&&void 0===n.color&&void 0===n.colors&&(i.color="#000")),r.text="","string"==typeof r.children)r.text=te(r.children);else if("number"==typeof r.children)r.text=te(r.children.toString());else if(Array.isArray(r.children)){const e=r.children.filter(e=>"string"==typeof e||"number"==typeof e).join("");e&&(r.text=te(e),r.children=r.text)}return o.a.createElement("p",k({ref:t,nativeName:"Text",style:i},r))}dn.displayName="Text";const pn=o.a.forwardRef(dn);pn.displayName="Text";var hn=Object.freeze({__proto__:null,default:pn});class mn extends o.a.Component{static get resizeMode(){return{contain:"contain",cover:"cover",stretch:"stretch",center:"center",repeat:"repeat"}}static getSize(e,t,n){if("string"!=typeof e)throw new TypeError("Image.getSize first argument must be a string url");const r=xt(e);return"function"==typeof t&&r.then(e=>t(e.width,e.height)),"function"==typeof n?r.catch(n):r.catch(e=>{}),r}render(){const e=this.props,{children:t,style:n,imageStyle:r,imageRef:i,source:a,sources:l,src:s,srcs:u,tintColor:c,tintColors:d}=e,p=S(e,f),h=this.getImageUrls({src:s,srcs:u,source:a,sources:l});1===h.length?[p.src]=h:h.length>1&&(p.srcs=h),"string"==typeof p.defaultSource&&(p.defaultSource.indexOf("data:image/"),p.defaultSource=ue(p.defaultSource));const m=k({},n);return this.handleTintColor(m,c,d),p.style=m,t?o.a.createElement(fn,{style:n},o.a.createElement("img",k(k({},p),{},{nativeName:"Image",alt:"",ref:i,style:[{position:"absolute",left:0,right:0,top:0,bottom:0,width:n.width,height:n.height},r]})),t):o.a.createElement("img",k(k({},p),{},{nativeName:"Image",alt:"",ref:i}))}getImageUrls({src:e,srcs:t,source:n,sources:r}){let i=[];if("string"==typeof e&&i.push(e),Array.isArray(t)&&(i=[...i,...t]),n)if("string"==typeof n)i.push(n);else if("object"==typeof n&&null!==n){const{uri:e}=n;e&&i.push(e)}return r&&Array.isArray(r)&&r.forEach(e=>{"string"==typeof e?i.push(e):"object"==typeof e&&null!==e&&e.uri&&i.push(e.uri)}),i.length&&(i=i.map(e=>ue(e))),i}handleTintColor(e,t,n){t&&Object.assign(e,{tintColor:t}),Array.isArray(n)&&Object.assign(e,{tintColors:n})}}mn.prefetch=Ct;class yn{constructor(){this.Value=yn.Value}static Value(e){return e}static timing(e,t){return new Me({mode:"timing",delay:0,startValue:e,toValue:t.toValue,duration:t.duration,timingFunction:t.easing||"linear"})}}yn.View=fn,yn.Text=hn,yn.Image=mn;const gn={step0:e=>e>0?1:0,step1:e=>e>=1?1:0,linear:()=>"linear",ease:()=>"ease",quad:e=>e**2,cubic:e=>e**3,poly:e=>t=>t**e,sin:e=>1-Math.cos(e*Math.PI/2),circle:e=>1-Math.sqrt(1-e*e),exp:e=>2**(10*(e-1)),elastic:()=>"elastic",back:(e=1.70158)=>t=>t*t*((e+1)*t-e),bounce(e){let t=e;return t<1/2.75?7.5625*t*t:t<2/2.75?(t-=1.5/2.75,7.5625*t*t+.75):t<2.5/2.75?(t-=2.25/2.75,7.5625*t*t+.9375):(t-=2.625/2.75,7.5625*t*t+.984375)},bezier:()=>"bezier",in:()=>"ease-in",out:()=>"ease-out",inOut:()=>"ease-in-out"};function bn(e){return o.a.createElement("li",k({nativeName:"ListViewItem"},e))}class vn extends o.a.Component{constructor(){super(...arguments),this.instance=null}expandPullHeader(){Ut(this.instance,"expandPullHeader",[])}collapsePullHeader(e){void 0!==e?Ut(this.instance,"collapsePullHeaderWithOptions",[e]):Ut(this.instance,"collapsePullHeader",[])}render(){const e=this.props,{children:t}=e,n=S(e,d);return o.a.createElement("div",k({nativeName:"PullHeaderView",ref:e=>{this.instance=e}},n),t)}}class wn extends o.a.Component{constructor(){super(...arguments),this.instance=null}expandPullFooter(){Ut(this.instance,"expandPullFooter",[])}collapsePullFooter(){Ut(this.instance,"collapsePullFooter",[])}render(){const e=this.props,{children:t}=e,n=S(e,p);return o.a.createElement("div",k({nativeName:"PullFooterView",ref:e=>{this.instance=e}},n),t)}}class kn extends o.a.Component{constructor(e){super(e),this.instance=null,this.pullHeader=null,this.pullFooter=null,this.handleInitialListReady=this.handleInitialListReady.bind(this),this.state={initialListReady:!1}}componentDidMount(){const{getRowKey:e}=this.props}scrollToIndex(e,t,n){"number"==typeof e&&"number"==typeof t&&"boolean"==typeof n&&Ut(this.instance,"scrollToIndex",[e,t,n])}scrollToContentOffset(e,t,n){"number"==typeof e&&"number"==typeof t&&"boolean"==typeof n&&Ut(this.instance,"scrollToContentOffset",[e,t,n])}expandPullHeader(){this.pullHeader&&this.pullHeader.expandPullHeader()}collapsePullHeader(e){this.pullHeader&&this.pullHeader.collapsePullHeader(e)}expandPullFooter(){this.pullFooter&&this.pullFooter.expandPullFooter()}collapsePullFooter(){this.pullFooter&&this.pullFooter.collapsePullFooter()}render(){const e=this.props,{children:t,style:n,renderRow:r,renderPullHeader:i,renderPullFooter:a,getRowType:l,getRowStyle:s,getHeaderStyle:u,getFooterStyle:c,getRowKey:f,dataSource:d,initialListSize:p,rowShouldSticky:m,onRowLayout:y,onHeaderPulling:g,onHeaderReleased:b,onFooterPulling:v,onFooterReleased:w,onAppear:E,onDisappear:x,onWillAppear:C,onWillDisappear:N}=e,I=S(e,h),P=[];if("function"==typeof r){const{initialListReady:e}=this.state;let{numberOfRows:t}=this.props;const h=this.getPullHeader(i,g,b,u),S=this.getPullFooter(a,v,w,c);!t&&d&&(t=d.length),e||(t=Math.min(t,p||10));for(let e=0;e{"function"==typeof n&&(t[r]=()=>{n(e)})}),n&&P.push(o.a.createElement(bn,k({},t),n))}h&&P.unshift(h),S&&P.push(S),"function"==typeof m&&Object.assign(I,{rowShouldSticky:!0});const _=[E,x,C,N];I.exposureEventEnabled=_.some(e=>"function"==typeof e),"ios"===en.platform.OS&&(I.numberOfRows=P.length),I.initialListSize=p,I.style=k({},n)}return o.a.createElement("ul",k({ref:e=>{this.instance=e},nativeName:"ListView",initialListReady:this.handleInitialListReady},I),P.length?P:t)}handleInitialListReady(){this.setState({initialListReady:!0})}getPullHeader(e,t,n,r){let i=null,a={};return"function"==typeof r&&(a=r()),"function"==typeof e&&(i=o.a.createElement(vn,{style:a,key:"pull-header",ref:e=>{this.pullHeader=e},onHeaderPulling:t,onHeaderReleased:n},e())),i}getPullFooter(e,t,n,r){let i=null,a={};return"function"==typeof r&&(a=r()),"function"==typeof e&&(i=o.a.createElement(wn,{style:a,key:"pull-footer",ref:e=>{this.pullFooter=e},onFooterPulling:t,onFooterReleased:n},e())),i}handleRowProps(e,t,{getRowKey:n,getRowStyle:r,onRowLayout:i,getRowType:o,rowShouldSticky:a}){if("function"==typeof n&&(e.key=n(t)),"function"==typeof r&&(e.style=r(t)),"function"==typeof i&&(e.onLayout=e=>{i(e,t)}),"function"==typeof o){const n=o(t);Number.isInteger(n),e.type=n}"function"==typeof a&&(e.sticky=a(t))}}kn.defaultProps={numberOfRows:0};class En extends o.a.Component{constructor(e){super(e),this.instance=null,this.refreshComplected=this.refreshCompleted.bind(this)}startRefresh(){Ut(this.instance,"startRefresh",null)}refreshCompleted(){Ut(this.instance,"refreshComplected",null)}render(){const e=this.props,{children:t}=e,n=S(e,m);return o.a.createElement("div",k({nativeName:"RefreshWrapper",ref:e=>{this.instance=e}},n),o.a.createElement("div",{nativeName:"RefreshWrapperItemView",style:{left:0,right:0,position:"absolute"}},this.getRefresh()),t)}getRefresh(){const{getRefresh:e}=this.props;return"function"==typeof e&&e()||null}}class Sn{constructor(){this.top=null,this.size=0}push(e){this.top={data:e,next:this.top},this.size+=1}peek(){return null===this.top?null:this.top.data}pop(){if(null===this.top)return null;const e=this.top;return this.top=this.top.next,this.size>0&&(this.size-=1),e.data}clear(){this.top=null,this.size=0}displayAll(){const e=[];if(null===this.top)return e;let t=this.top;for(let n=0,r=this.size;n1&&this.pop({animated:!0})}push(e){if(null==e?void 0:e.component){if(!this.routeList[e.routeName]){new un({appName:e.routeName,entryPage:e.component}).regist(),this.routeList[e.routeName]=!0}delete e.component}const t=[e];this.stack.push(e),Ut(this.instance,"push",t)}pop(e){if(this.stack.size>1){const t=[e];this.stack.pop(),Ut(this.instance,"pop",t)}}clear(){this.stack.clear()}render(){const e=this.props,{initialRoute:{component:t}}=e,n=S(e.initialRoute,g),r=S(e,y);return r.initialRoute=n,o.a.createElement("div",k({nativeName:"Navigator",ref:e=>{this.instance=e}},r))}}function Cn(e){return o.a.createElement("div",k(k({nativeName:"ViewPagerItem"},e),{},{style:{position:"absolute",left:0,top:0,right:0,bottom:0,collapsable:!1}}))}class Nn extends o.a.Component{constructor(e){super(e),this.instance=null,this.setPage=this.setPage.bind(this),this.setPageWithoutAnimation=this.setPageWithoutAnimation.bind(this),this.onPageScrollStateChanged=this.onPageScrollStateChanged.bind(this)}onPageScrollStateChanged(e){const{onPageScrollStateChanged:t}=this.props;t&&t(e.pageScrollState)}setPage(e){"number"==typeof e&&Ut(this.instance,"setPage",[e])}setPageWithoutAnimation(e){"number"==typeof e&&Ut(this.instance,"setPageWithoutAnimation",[e])}render(){const e=this.props,{children:t,onPageScrollStateChanged:n}=e,r=S(e,b);let i=[];return Array.isArray(t)?i=t.map(e=>{const t={};return"string"==typeof e.key&&(t.key="viewPager_"+e.key),o.a.createElement(Cn,k({},t),e)}):i.push(o.a.createElement(Cn,null,t)),"function"==typeof n&&(r.onPageScrollStateChanged=this.onPageScrollStateChanged),o.a.createElement("div",k({nativeName:"ViewPager",ref:e=>{this.instance=e}},r),i)}}function In(){const e=N.platform.Localization;return!!e&&1===e.direction}const Pn={caretColor:"caret-color"};class _n extends o.a.Component{constructor(e){super(e),this.instance=null,this._lastNativeText="",this.onChangeText=this.onChangeText.bind(this),this.onKeyboardWillShow=this.onKeyboardWillShow.bind(this)}componentDidMount(){const{value:e,autoFocus:t}=this.props;this._lastNativeText=e,t&&this.focus()}componentWillUnmount(){this.blur()}getValue(){return new Promise(e=>{Ut(this.instance,"getValue",t=>e(t.text))})}setValue(e){return Ut(this.instance,"setValue",[e]),e}focus(){Ut(this.instance,"focusTextInput",[])}blur(){Ut(this.instance,"blurTextInput",[])}isFocused(){return new Promise(e=>{Ut(this.instance,"isFocused",t=>e(t.value))})}showInputMethod(){}hideInputMethod(){}clear(){Ut(this.instance,"clear",[])}render(){const e=k({},this.props);return["underlineColorAndroid","placeholderTextColor","placeholderTextColors","caretColor","caret-color"].forEach(t=>{let n=t;const r=this.props[t];"string"==typeof this.props[t]&&(Pn[t]&&(n=Pn[t]),Array.isArray(e.style)?e.style.push({[n]:r}):e.style&&"object"==typeof e.style?e.style[n]=r:e.style={[n]:r},delete e[t])}),In()&&(e.style?"object"!=typeof e.style||Array.isArray(e.style)||e.style.textAlign||(e.style.textAlign="right"):e.style={textAlign:"right"}),o.a.createElement("div",k(k({nativeName:"TextInput"},e),{},{ref:e=>{this.instance=e},onChangeText:this.onChangeText,onKeyboardWillShow:this.onKeyboardWillShow}))}onChangeText(e){const{onChangeText:t}=this.props;"function"==typeof t&&t(e.text),this.instance&&(this._lastNativeText=e.text)}onKeyboardWillShow(e){const{onKeyboardWillShow:t}=this.props;"function"==typeof t&&t(e)}}const Ln=en.window.scale;let Tn=Math.round(.4*Ln)/Ln;function An(e){return e}0===Tn&&(Tn=1/Ln);var Rn=Object.freeze({__proto__:null,get hairlineWidth(){return Tn},create:An});const zn={baseVertical:{flexGrow:1,flexShrink:1,flexDirection:"column",overflow:"scroll"},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:"row",overflow:"scroll"},contentContainerVertical:{collapsable:!1,flexDirection:"column"},contentContainerHorizontal:{collapsable:!1,flexDirection:"row"}};class On extends o.a.Component{constructor(){super(...arguments),this.instance=null}scrollTo(e,t,n=!0){let r=e,i=t,o=n;"object"==typeof e&&e&&({x:r,y:i,animated:o}=e),r=r||0,i=i||0,o=!!o,Ut(this.instance,"scrollTo",[r,i,o])}scrollToWithDuration(e=0,t=0,n=1e3){Ut(this.instance,"scrollToWithOptions",[{x:e,y:t,duration:n}])}render(){const{horizontal:e,contentContainerStyle:t,children:n,style:r}=this.props,i=[e?zn.contentContainerHorizontal:zn.contentContainerVertical,t],a=e?Object.assign({},zn.baseHorizontal,r):Object.assign({},zn.baseVertical,r);return e&&(a.flexDirection=In()?"row-reverse":"row"),o.a.createElement("div",k(k({nativeName:"ScrollView",ref:e=>{this.instance=e}},this.props),{},{style:a}),o.a.createElement(fn,{style:i},n))}}const Fn={modal:{position:"absolute",collapsable:!1}};class jn extends o.a.Component{constructor(e){super(e),this.eventSubscription=null}componentDidMount(){"ios"===en.platform.OS&&(this.eventSubscription=new be("modalDismissed"),this.eventSubscription.addCallback(e=>{const{primaryKey:t,onDismiss:n}=this.props;e.primaryKey===t&&"function"==typeof n&&n()}))}componentWillUnmount(){"ios"===en.platform.OS&&this.eventSubscription&&this.eventSubscription.unregister()}render(){const{children:e,visible:t,transparent:n,animated:r}=this.props;let{animationType:i}=this.props;if(!1===t)return null;const a={backgroundColor:n?"transparent":"white"};return i||(i="none",r&&(i="slide")),o.a.createElement("div",k({nativeName:"Modal",animationType:i,transparent:n,style:[Fn.modal,a]},this.props),e)}}jn.defaultProps={visible:!0};class Hn extends o.a.Component{constructor(e){super(e);const{requestFocus:t}=this.props;this.state={isFocus:!!t},this.handleFocus=this.handleFocus.bind(this)}render(){var e,t,n;const{requestFocus:r,children:i,nextFocusDownId:a,nextFocusUpId:l,nextFocusLeftId:s,nextFocusRightId:u,style:c,noFocusStyle:f,focusStyle:d,onClick:p}=this.props,{isFocus:h}=this.state,m=o.a.Children.only(i);let y;(null===(t=null===(e=null==m?void 0:m.child)||void 0===e?void 0:e.memoizedProps)||void 0===t?void 0:t.nativeName)?y=m.child.memoizedProps.nativeName:(null===(n=null==m?void 0:m.type)||void 0===n?void 0:n.displayName)&&(y=m.type.displayName);const g=a&&Dt(a),b=l&&Dt(l),v=s&&Dt(s),w=u&&Dt(u);let E=c;if("Text"!==y){const e=m.memoizedProps.style;E=k(k({},E),e)}if(Object.assign(E,h?d:f),"Text"===y)return o.a.createElement(fn,{focusable:!0,nextFocusDownId:g,nextFocusUpId:b,nextFocusLeftId:v,nextFocusRightId:w,requestFocus:r,style:E,onClick:p,onFocus:this.handleFocus},m);const{children:S}=m.memoizedProps;return o.a.cloneElement(m,{nextFocusDownId:a,nextFocusUpId:l,nextFocusLeftId:s,nextFocusRightId:u,requestFocus:r,onClick:p,focusable:!0,children:S,style:E,onFocus:this.handleFocus})}handleFocus(e){const{onFocus:t}=this.props;"function"==typeof t&&t(e);const{isFocus:n}=this.state;n!==e.focus&&this.setState({isFocus:e.focus})}}function Mn(e){return o.a.createElement("iframe",k({title:"hippy",nativeName:"WebView"},e))}let Dn;class Un{constructor(e,t,n){if(this.protocol="",this.onWebSocketEvent=this.onWebSocketEvent.bind(this),Dn||(Dn=new be("hippyWebsocketEvents")),this.readyState=0,this.webSocketCallbacks={},!e||"string"!=typeof e)throw new TypeError("Invalid WebSocket url");const r=k({},n);if(void 0!==t)if(Array.isArray(t)&&t.length>0)r["Sec-WebSocket-Protocol"]=t.join(",");else{if("string"!=typeof t)throw new TypeError("Invalid WebSocket protocols");r["Sec-WebSocket-Protocol"]=t}const i={headers:r,url:e};this.url=e,this.webSocketCallbackId=Dn.addCallback(this.onWebSocketEvent),C.callNativeWithPromise("websocket","connect",i).then(e=>{e&&0===e.code&&"number"==typeof e.id&&(this.webSocketId=e.id)})}close(e,t){1===this.readyState&&(this.readyState=2,C.callNative("websocket","close",{id:this.webSocketId,code:e,reason:t}))}send(e){if(1===this.readyState){if("string"!=typeof e)throw new TypeError("Unsupported websocket data type: "+typeof e);C.callNative("websocket","send",{id:this.webSocketId,data:e})}}set onopen(e){this.webSocketCallbacks.onOpen=e}set onclose(e){this.webSocketCallbacks.onClose=e}set onerror(e){this.webSocketCallbacks.onError=e}set onmessage(e){this.webSocketCallbacks.onMessage=e}onWebSocketEvent(e){if("object"!=typeof e||e.id!==this.webSocketId)return;const{type:t}=e;"onOpen"===t?this.readyState=1:"onClose"===t&&(this.readyState=3,Dn.removeCallback(this.webSocketCallbackId));const n=this.webSocketCallbacks[t];"function"==typeof n&&n(e.data)}}function Bn(e){return o.a.createElement("li",k({nativeName:"WaterfallItem"},e))}class Wn extends o.a.Component{constructor(e){super(e),this.instance=null,this.pullHeader=null,this.pullFooter=null,this.handleInitialListReady=this.handleInitialListReady.bind(this)}scrollToIndex({index:e=0,animated:t=!0}){Ut(this.instance,"scrollToIndex",[e,e,t])}scrollToContentOffset({xOffset:e=0,yOffset:t=0,animated:n=!0}){Ut(this.instance,"scrollToContentOffset",[e,t,n])}expandPullHeader(){this.pullHeader&&this.pullHeader.expandPullHeader()}collapsePullHeader(e){this.pullHeader&&this.pullHeader.collapsePullHeader(e)}expandPullFooter(){this.pullFooter&&this.pullFooter.expandPullFooter()}collapsePullFooter(){this.pullFooter&&this.pullFooter.collapsePullFooter()}render(){const e=this.props,{style:t={},renderBanner:n,numberOfColumns:r=2,columnSpacing:i=0,interItemSpacing:a=0,numberOfItems:l=0,preloadItemNumber:s=0,renderItem:u,renderPullHeader:c,renderPullFooter:f,getItemType:d,getItemKey:p,getItemStyle:h,contentInset:m={top:0,left:0,bottom:0,right:0},onItemLayout:y,onHeaderPulling:g,onHeaderReleased:b,onFooterPulling:w,onFooterReleased:E,containPullHeader:x=!1,containPullFooter:C=!1,containBannerView:N=!1}=e,I=k(k({},S(e,v)),{},{style:t,numberOfColumns:r,columnSpacing:i,interItemSpacing:a,preloadItemNumber:s,contentInset:m,containPullHeader:x,containPullFooter:C,containBannerView:N}),P=[];if("function"==typeof n){const e=n();e&&(P.push(o.a.createElement(fn,{key:"bannerView"},o.a.cloneElement(e))),I.containBannerView=!0)}if("function"==typeof u){const e=this.getPullHeader(c,g,b),n=this.getPullFooter(f,w,E);for(let e=0;ethis.instance=e,initialListReady:this.handleInitialListReady.bind(this)},I),P)}componentDidMount(){const{getItemKey:e}=this.props}handleRowProps(e,t,{getItemKey:n,getItemStyle:r,onItemLayout:i,getItemType:o}){if("function"==typeof n&&(e.key=n(t)),"function"==typeof r&&(e.style=r(t)),"function"==typeof i&&(e.onLayout=e=>{i.call(this,e,t)}),"function"==typeof o){const n=o(t);Number.isInteger(n),e.type=n}}getPullHeader(e,t,n){let r=null;return"function"==typeof e&&(r=o.a.createElement(vn,{key:"PullHeader",ref:e=>{this.pullHeader=e},onHeaderPulling:t,onHeaderReleased:n},e())),r}getPullFooter(e,t,n){let r=null;return"function"==typeof e&&(r=o.a.createElement(wn,{key:"PullFooter",ref:e=>{this.pullFooter=e},onFooterPulling:t,onFooterReleased:n},e())),r}handleInitialListReady(){const{onInitialListReady:e}=this.props;"function"==typeof e&&e()}}e.WebSocket=Un;const{AsyncStorage:Vn,BackAndroid:$n,Bridge:Qn,Clipboard:qn,Cookie:Gn,Device:Kn,HippyRegister:Yn,ImageLoader:Xn,NetworkInfo:Jn,UIManager:Zn,flushSync:er}=nn,{callNative:tr,callNativeWithPromise:nr,callNativeWithCallbackId:rr,removeNativeCallback:ir}=Qn,or=null,ar=e.ConsoleModule||e.console,lr=Kn.platform,sr=un,ur=mn,cr={get:e=>Kn[e]},fr={get:()=>Kn.screen.scale}}.call(this,n("./node_modules/webpack/buildin/global.js"),n("./node_modules/process/browser.js"))},"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js":function(e,t,n){(function(e){ + */(e,t);if(Object.getOwnPropertySymbols){var o=Object.getOwnPropertySymbols(e);for(r=0;r=0||Object.prototype.propertyIsEnumerable.call(e,n)&&(i[n]=e[n])}return i}e.__GLOBAL__||(e.__GLOBAL__={}),e.__GLOBAL__.nodeId=0,e.__GLOBAL__.animationId=0;const{asyncStorage:S,bridge:C,device:x,document:N,register:P,on:I,off:_,emit:L}=e.Hippy;var A=Object.freeze({__proto__:null,addEventListener:I,removeEventListener:_,dispatchEvent:L,AsyncStorage:S,Bridge:C,Device:x,HippyRegister:P,UIManager:N});let R,z;const T=new Map;function O(e,t){z=e,R=t}function F(){if(!z)throw new Error("getRootViewId must execute after setRootContainer");return z}function j(e){if(!R)return null;const{current:t}=R,n=[t];for(;n.length;){const t=n.shift();if(!t)break;if(e(t))return t;t.child&&n.push(t.child),t.sibling&&n.push(t.sibling)}return null}function H(e,t){T.set(t,e)}function M(e){T.delete(e)}function D(e){return(null==e?void 0:e.stateNode)||null}function U(e){return T.get(e)||null}function B(t){!function(t,n){if(!e.requestIdleCallback)return setTimeout(()=>{t({didTimeout:!1,timeRemaining:()=>1/0})},1);e.requestIdleCallback(t,n)}(e=>{(e.timeRemaining()>0||e.didTimeout)&&function e(t){"number"==typeof t?M(t):t&&(M(t.nodeId),Array.isArray(t.childNodes)&&t.childNodes.forEach(t=>e(t)))}(t)},{timeout:50})}const W=0,V=1,$=-1,q=1,Q={onTouchStart:["onTouchStart","onTouchDown"],onPress:["onPress","onClick"]},G={NONE:0,CAPTURING_PHASE:1,AT_TARGET:2,BUBBLING_PHASE:3},K={onClick:"click",onLongClick:"longclick",onPressIn:"pressin",onPressOut:"pressout",onTouchDown:"touchstart",onTouchStart:"touchstart",onTouchEnd:"touchend",onTouchMove:"touchmove",onTouchCancel:"touchcancel"};const Y=new RegExp(/^\d+$/);let X=!1,J=!1;function Z(...e){0}function ee(e){return e.replace(/\\u[\dA-F]{4}|\\x[\dA-F]{2}/gi,e=>String.fromCharCode(parseInt(e.replace(/\\u|\\x/g,""),16)))}const te=new RegExp("^on.+Capture$");function ne(e){return te.test(e)}const re=new RegExp("^(?=.+)[+-]?\\d*\\.?\\d*([Ee][+-]?\\d+)?$");function ie(e){return"[object Function]"===Object.prototype.toString.call(e)}function oe(e){X=e}function ae(){return J}function le(e){if(e&&!/^(http|https):\/\//.test(e)&&e.indexOf("assets")>-1){0;return`${"hpfile://"}./${e}`}return e}class se{constructor(e){this.handlerContainer={},this.nextIdForHandler=0,this.eventName=e}getEventListeners(){return Object.keys(this.handlerContainer).filter(e=>this.handlerContainer[e]).map(e=>this.handlerContainer[e])}getHandlerSize(){return Object.keys(this.handlerContainer).length}addEventHandler(e,t){if(!e)throw new TypeError("Invalid arguments for addEventHandler");const n=this.nextIdForHandler;this.nextIdForHandler+=1;const r={id:n,eventHandler:e,context:t},i="eventHandler_"+n;return this.handlerContainer[i]=r,n}notifyEvent(e){Object.keys(this.handlerContainer).forEach(t=>{const n=this.handlerContainer[t];n&&n.eventHandler&&(n.context?n.eventHandler.call(n.context,e):n.eventHandler(e))})}removeEventHandler(e){if("number"!=typeof e)throw new TypeError("Invalid arguments for removeEventHandler");const t="eventHandler_"+e;this.handlerContainer[t]&&delete this.handlerContainer[t]}}class ue{constructor(e,t,n){this.type=e,this.bubbles=!0,this.currentTarget=t,this.target=n}stopPropagation(){this.bubbles=!1}preventDefault(){}}const ce=new Map,fe=["%c[event]%c","color: green","color: auto"];function de(e,t){return!(!t.memoizedProps||"function"!=typeof t.memoizedProps[e])}function pe(e){if("string"!=typeof e)throw new TypeError("Invalid eventName for getHippyEventHub: "+e);return ce.get(e)||null}const he={registerNativeEventHub:function(e){if(Z(...fe,"registerNativeEventHub",e),"string"!=typeof e)throw new TypeError("Invalid eventName for registerNativeEventHub: "+e);let t=ce.get(e);return t||(t=new se(e),ce.set(e,t)),t},getHippyEventHub:pe,unregisterNativeEventHub:function(e){if("string"!=typeof e)throw new TypeError("Invalid eventName for unregisterNativeEventHub: "+e);ce.has(e)&&ce.delete(e)},receiveNativeEvent:function(e){if(Z(...fe,"receiveNativeEvent",e),!e||!Array.isArray(e)||e.length<2)throw new TypeError("Invalid params for receiveNativeEvent: "+JSON.stringify(e));const[t,n]=e;if("string"!=typeof t)throw new TypeError("Invalid arguments for nativeEvent eventName");const r=pe(t);r&&r.notifyEvent(n)},receiveComponentEvent:function(e,t){if(Z(...fe,"receiveComponentEvent",e),!e||!t)return;const{id:n,currentId:r,nativeName:i,originalName:o,params:a}=e,l=U(r),s=U(n);l&&s&&(K[i]?function(e,t,n,r,i,o){try{let t=!1;const a=D(r),l=D(n),{eventPhase:s}=o;if(de(e,n)&&ne(e)&&[G.AT_TARGET,G.CAPTURING_PHASE].indexOf(s)>-1){const t=new ue(e,l,a);Object.assign(t,{eventPhase:s},i),n.memoizedProps[e](t),!t.bubbles&&o&&o.stopPropagation()}if(de(e,n)&&!ne(e)&&[G.AT_TARGET,G.BUBBLING_PHASE].indexOf(s)>-1){const r=new ue(e,l,a);Object.assign(r,{eventPhase:s},i),t=n.memoizedProps[e](r),"boolean"!=typeof t&&(t=!ae()),r.bubbles||(t=!0),t&&o&&o.stopPropagation()}}catch(e){console.reportUncaughtException(e)}}(o,0,l,s,a,t):function(e,t,n,r,i,o){let a=!1;const l=D(r),s=D(n);try{const{eventPhase:t}=o;if(de(e,n)&&!ne(e)&&[G.AT_TARGET,G.BUBBLING_PHASE].indexOf(t)>-1){const r=new ue(e,s,l);Object.assign(r,{eventPhase:t},i),n.memoizedProps[e](r),a=!ae(),r.bubbles||(a=!0),a&&o&&o.stopPropagation()}}catch(e){console.reportUncaughtException(e)}}(o,0,l,s,a,t))}};e.__GLOBAL__&&(e.__GLOBAL__.jsModuleList.EventDispatcher=he);class me{constructor(e,t){this.callback=e,this.bindListener=t}remove(){"number"==typeof this.callback&&this.bindListener&&(this.bindListener.removeCallback(this.callback),this.bindListener=void 0)}}class ye{constructor(e){this.eventName=e,this.listenerIdList=[]}unregister(){const e=he.getHippyEventHub(this.eventName);if(!e)throw new ReferenceError("No listeners for "+this.eventName);const t=this.listenerIdList.length;for(let n=0;n255?255:t}function Ce(e){const t=parseFloat(e);return t<0?0:t>1?255:Math.round(255*t)}function xe(e,t,n){let r=n;return r<0&&(r+=1),r>1&&(r-=1),r<1/6?e+6*(t-e)*r:r<.5?t:r<2/3?e+(t-e)*(2/3-r)*6:e}function Ne(e,t,n){const r=n<.5?n*(1+t):n+t-n*t,i=2*n-r,o=xe(i,r,e+1/3),a=xe(i,r,e),l=xe(i,r,e-1/3);return Math.round(255*o)<<24|Math.round(255*a)<<16|Math.round(255*l)<<8}function Pe(e){return(parseFloat(e)%360+360)%360/360}function Ie(e){const t=parseFloat(e);return t<0?0:t>100?1:t/100}function _e(e){if(Number.isInteger(e))return e;let t=function(e){let t;return"number"==typeof e?e>>>0===e&&e>=0&&e<=4294967295?e:null:(t=Ee.hex6.exec(e),Array.isArray(t)?parseInt(t[1]+"ff",16)>>>0:Object.hasOwnProperty.call(we,e)?we[e]:(t=Ee.rgb.exec(e),Array.isArray(t)?(Se(t[1])<<24|Se(t[2])<<16|Se(t[3])<<8|255)>>>0:(t=Ee.rgba.exec(e),t?(Se(t[1])<<24|Se(t[2])<<16|Se(t[3])<<8|Ce(t[4]))>>>0:(t=Ee.hex3.exec(e),t?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+"ff",16)>>>0:(t=Ee.hex8.exec(e),t?parseInt(t[1],16)>>>0:(t=Ee.hex4.exec(e),t?parseInt(t[1]+t[1]+t[2]+t[2]+t[3]+t[3]+t[4]+t[4],16)>>>0:(t=Ee.hsl.exec(e),t?(255|Ne(Pe(t[1]),Ie(t[2]),Ie(t[3])))>>>0:(t=Ee.hsla.exec(e),t?(Ne(Pe(t[1]),Ie(t[2]),Ie(t[3]))|Ce(t[4]))>>>0:null))))))))}(e);return null===t?0:(t=(t<<24|t>>>8)>>>0,t)}function Le(e){return Array.isArray(e)?e.map(e=>_e(e)):[0]}function Ae(e){return"loop"===e?-1:e}function Re(e,t){return"color"===e&&["number","string"].indexOf(typeof t)>=0?_e(t):t}const ze="animationstart",Te="animationend",Oe="animationcancel",Fe="animationrepeat";class je{constructor(t){var n;let r;if((null===(n=t.startValue)||void 0===n?void 0:n.constructor)&&"Animation"===t.startValue.constructor.name)r={animationId:t.startValue.animationId};else{const{startValue:e}=t;r=Re(t.valueType,e)}const i=Re(t.valueType,t.toValue);this.mode=t.mode||"timing",this.delay=t.delay||0,this.startValue=r||0,this.toValue=i||0,this.valueType=t.valueType||void 0,this.duration=t.duration||0,this.direction=t.direction||"center",this.timingFunction=t.timingFunction||"linear",this.repeatCount=Ae(t.repeatCount||0),this.inputRange=t.inputRange||[],this.outputRange=t.outputRange||[],this.animation=new e.Hippy.Animation(Object.assign({mode:this.mode,delay:this.delay,startValue:this.startValue,toValue:this.toValue,duration:this.duration,direction:this.direction,timingFunction:this.timingFunction,repeatCount:this.repeatCount,inputRange:this.inputRange,outputRange:this.outputRange},this.valueType?{valueType:this.valueType}:{})),this.animationId=this.animation.getId(),this.destroy=this.destroy.bind(this),this.onRNfqbAnimationStart=this.onAnimationStart.bind(this),this.onRNfqbAnimationEnd=this.onAnimationEnd.bind(this),this.onRNfqbAnimationCancel=this.onAnimationCancel.bind(this),this.onRNfqbAnimationRepeat=this.onAnimationRepeat.bind(this),this.onHippyAnimationStart=this.onAnimationStart.bind(this),this.onHippyAnimationEnd=this.onAnimationEnd.bind(this),this.onHippyAnimationCancel=this.onAnimationCancel.bind(this),this.onHippyAnimationRepeat=this.onAnimationRepeat.bind(this)}removeEventListener(){if(!this.animation)throw new Error("animation has not been initialized yet");"function"==typeof this.onAnimationStartCallback&&this.animation.removeEventListener(ze),"function"==typeof this.onAnimationEndCallback&&this.animation.removeEventListener(Te),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(Oe),"function"==typeof this.onAnimationRepeatCallback&&this.animation.removeEventListener(Fe)}start(){if(!this.animation)throw new Error("animation has not been initialized yet");this.removeEventListener(),"function"==typeof this.onAnimationStartCallback&&this.animation.addEventListener(ze,()=>{"function"==typeof this.onAnimationStartCallback&&this.onAnimationStartCallback()}),"function"==typeof this.onAnimationEndCallback&&this.animation.addEventListener(Te,()=>{"function"==typeof this.onAnimationEndCallback&&this.onAnimationEndCallback()}),"function"==typeof this.onAnimationCancelCallback&&this.animation.addEventListener(Oe,()=>{"function"==typeof this.onAnimationCancelCallback&&this.onAnimationCancelCallback()}),"function"==typeof this.onAnimationRepeatCallback&&this.animation.addEventListener(Fe,()=>{"function"==typeof this.onAnimationRepeatCallback&&this.onAnimationRepeatCallback()}),this.animation.start()}destroy(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.destroy()}pause(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.pause()}resume(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.resume()}updateAnimation(e){if(!this.animation)throw new Error("animation has not been initialized yet");if("object"!=typeof e)throw new TypeError("Invalid arguments");if("string"==typeof e.mode&&e.mode!==this.mode)throw new TypeError("Update animation mode not supported");Object.keys(e).forEach(t=>{const n=e[t];if("startValue"===t){let t;if(e.startValue instanceof je)t={animationId:e.startValue.animationId};else{const{startValue:n}=e;t=Re(this.valueType,n)}this.startValue=t||0}else"repeatCount"===t?this.repeatCount=Ae(e.repeatCount||0):Object.defineProperty(this,t,{value:n})}),this.animation.updateAnimation(Object.assign({mode:this.mode,delay:this.delay,startValue:this.startValue,toValue:Re(this.valueType,this.toValue),duration:this.duration,direction:this.direction,timingFunction:this.timingFunction,repeatCount:this.repeatCount,inputRange:this.inputRange,outputRange:this.outputRange},this.valueType?{valueType:this.valueType}:{}))}onAnimationStart(e){this.onAnimationStartCallback=e}onAnimationEnd(e){this.onAnimationEndCallback=e}onAnimationCancel(e){this.onAnimationCancelCallback=e}onAnimationRepeat(e){this.onAnimationRepeatCallback=e}}const He="animationstart",Me="animationend",De="animationcancel",Ue="animationrepeat";class Be{constructor(t){this.animationList=[],null==t||t.children.forEach(e=>{this.animationList.push({animationId:e.animation.animationId,follow:e.follow||!1})}),this.animation=new e.Hippy.AnimationSet({repeatCount:Ae(t.repeatCount||0),children:this.animationList}),this.animationId=this.animation.getId(),this.onRNfqbAnimationStart=this.onAnimationStart.bind(this),this.onRNfqbAnimationEnd=this.onAnimationEnd.bind(this),this.onRNfqbAnimationCancel=this.onAnimationCancel.bind(this),this.onRNfqbAnimationRepeat=this.onAnimationRepeat.bind(this),this.onHippyAnimationStart=this.onAnimationStart.bind(this),this.onHippyAnimationEnd=this.onAnimationEnd.bind(this),this.onHippyAnimationCancel=this.onAnimationCancel.bind(this),this.onHippyAnimationRepeat=this.onAnimationRepeat.bind(this)}removeEventListener(){if(!this.animation)throw new Error("animation has not been initialized yet");"function"==typeof this.onAnimationStartCallback&&this.animation.removeEventListener(He),"function"==typeof this.onAnimationEndCallback&&this.animation.removeEventListener(Me),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(De),"function"==typeof this.onAnimationCancelCallback&&this.animation.removeEventListener(Ue)}start(){if(!this.animation)throw new Error("animation has not been initialized yet");this.removeEventListener(),"function"==typeof this.onAnimationStartCallback&&this.animation.addEventListener(He,()=>{"function"==typeof this.onAnimationStartCallback&&this.onAnimationStartCallback()}),"function"==typeof this.onAnimationEndCallback&&this.animation.addEventListener(Me,()=>{"function"==typeof this.onAnimationEndCallback&&this.onAnimationEndCallback()}),"function"==typeof this.onAnimationCancelCallback&&this.animation.addEventListener(De,()=>{"function"==typeof this.onAnimationCancelCallback&&this.onAnimationCancelCallback()}),"function"==typeof this.onAnimationRepeatCallback&&this.animation.addEventListener(De,()=>{"function"==typeof this.onAnimationRepeatCallback&&this.onAnimationRepeatCallback()}),this.animation.start()}destory(){this.destroy()}destroy(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.destroy()}pause(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.pause()}resume(){if(!this.animation)throw new Error("animation has not been initialized yet");this.animation.resume()}onAnimationStart(e){this.onAnimationStartCallback=e}onAnimationEnd(e){this.onAnimationEndCallback=e}onAnimationCancel(e){this.onAnimationCancelCallback=e}onAnimationRepeat(e){this.onAnimationRepeatCallback=e}}const We={createNode:Symbol("createNode"),updateNode:Symbol("updateNode"),deleteNode:Symbol("deleteNode"),moveNode:Symbol("moveNode")};let Ve=!0,$e=[];function qe(e=[],t){e.forEach(e=>{if(e){const{id:n,eventList:r}=e;r.forEach(e=>{const{name:r,type:i,listener:o,isCapture:a}=e;let l;l=function(e){return!!K[e]}(r)?K[r]:function(e){return e.replace(/^(on)?/g,"").toLocaleLowerCase()}(r),i===V&&t.removeEventListener(n,l,o),i===W&&t.addEventListener(n,l,o,a)})}})}function Qe(e,t){0}function Ge(t){const n=function(e){const t=[];for(let n=0;n{switch(e.type){case We.createNode:Qe(e.nodes),r.create(e.nodes),qe(e.eventNodes,r);break;case We.updateNode:Qe(e.nodes),r.update(e.nodes),qe(e.eventNodes,r);break;case We.deleteNode:Qe(e.nodes),r.delete(e.nodes);break;case We.moveNode:Qe(e.nodes),r.move(e.nodes)}}),r.build()}function Ke(e=!1){if(!Ve)return;if(Ve=!1,0===$e.length)return void(Ve=!0);const t=F();e?(Ge(t),$e=[],Ve=!0):Promise.resolve().then(()=>{Ge(t),$e=[],Ve=!0})}function Ye(e){const t=e.attributes,{children:n}=t;return E(t,l)}function Xe(e,t,n={}){var r;if(!t.nativeName)return[];if(t.meta.skipAddToDom)return[];if(!t.meta.component)throw new Error("Specific tag is not supported yet: "+t.tagName);return[[{id:t.nodeId,pId:(null===(r=t.parentNode)||void 0===r?void 0:r.nodeId)||e,name:t.nativeName,props:w(w({},Ye(t)),{},{style:t.style})},n],function(e){let t=void 0;const n=e.events;if(n){const r=[];Object.keys(n).forEach(t=>{const{name:i,type:o,isCapture:a,listener:l}=n[t];e.isListenerHandled(t,o)||(e.setListenerHandledType(t,o),r.push({name:i,type:o,isCapture:a,listener:l}))}),t={id:e.nodeId,eventList:r}}return t}(t)]}function Je(e,t,n,r,i={}){const o=[],a=[];let l=n;return void 0===l&&t&&t.parentNode&&(l=t.parentNode.childNodes.indexOf(t)),t.traverseChildren((t,n)=>{const[i,l]=Xe(e,t,n);i&&o.push(i),l&&a.push(l),"function"==typeof r&&r(t)},l,i),[o,a]}function Ze(e){return!!R&&e instanceof R.containerInfo.constructor}function et(e,t,n=-1,r={}){if(!e||!t)return;if(t.meta.skipAddToDom)return;const i=F(),o=Ze(e)&&!e.isMounted,a=e.isMounted&&!t.isMounted;if(o||a){const[e,o]=Je(i,t,n,e=>{e.isMounted||(e.isMounted=!0)},r);$e.push({type:We.createNode,nodes:e,eventNodes:o})}}function tt(e){if(!e.isMounted)return;const t=F(),[n,r]=Xe(t,e);n&&$e.push({type:We.updateNode,nodes:[n],eventNodes:[r]})}let nt=0;class rt{constructor(){this.meta={component:{}},this.index=0,this.childNodes=[],this.parentNode=null,this.mounted=!1,this.nodeId=(nt+=1,nt%10==0&&(nt+=1),nt)}toString(){return this.constructor.name}get isMounted(){return this.mounted}set isMounted(e){this.mounted=e}insertBefore(e,t){if(!e)throw new Error("Can't insert child.");if(e.meta.skipAddToDom)return;if(!t)return this.appendChild(e);if(t.parentNode!==this)throw new Error("Can't insert child, because the reference node has a different parent.");if(e.parentNode&&e.parentNode!==this)throw new Error("Can't insert child, because it already has a different parent.");const n=this.childNodes.indexOf(t);return e.parentNode=this,this.childNodes.splice(n,0,e),et(this,e,n,{refId:t.nodeId,relativeToRef:$})}moveChild(e,t){if(!e)throw new Error("Can't move child.");if(e.meta.skipAddToDom)return;if(!t)return this.appendChild(e);if(t.parentNode!==this)throw new Error("Can't move child, because the reference node has a different parent.");if(e.parentNode&&e.parentNode!==this)throw new Error("Can't move child, because it already has a different parent.");const n=this.childNodes.indexOf(e),r=this.childNodes.indexOf(t);if(r===n)return e;this.childNodes.splice(n,1);const i=this.childNodes.indexOf(t);return this.childNodes.splice(i,0,e),function(e,t,n=-1,r={}){if(!e||!t)return;if(t.meta.skipAddToDom)return;t.index=n;const i=F(),o=[[{id:t.nodeId,pId:t.parentNode?t.parentNode.nodeId:i},r]];$e.push({type:We.moveNode,nodes:o,eventNodes:[]})}(this,e,r,{refId:t.nodeId,relativeToRef:$})}appendChild(e){if(!e)throw new Error("Can't append child.");if(e.meta.skipAddToDom)return;if(e.parentNode&&e.parentNode!==this)throw new Error("Can't append child, because it already has a different parent.");e.parentNode=this;const t=this.childNodes.length-1,n=this.childNodes[t];this.childNodes.push(e);et(this,e,t+1,n&&{refId:n.nodeId,relativeToRef:q})}removeChild(e){if(!e)throw new Error("Can't remove child.");if(e.meta.skipAddToDom)return;if(!e.parentNode)throw new Error("Can't remove child, because it has no parent.");if(e.parentNode!==this)throw new Error("Can't remove child, because it has a different parent.");const t=this.childNodes.indexOf(e);this.childNodes.splice(t,1),function(e,t,n){if(!t||t.meta.skipAddToDom)return;t.isMounted=!1,t.index=n;const r=F(),i=[[{id:t.nodeId,pId:t.parentNode?t.parentNode.nodeId:r},{}]];$e.push({type:We.deleteNode,nodes:i,eventNodes:[]})}(0,e,t)}findChild(e){if(e(this))return this;if(this.childNodes.length)for(let t=0;t{this.traverseChildren.call(t,e,n,{})})}}const it={textDecoration:"textDecorationLine",boxShadowOffset:"shadowOffset",boxShadowOffsetX:"shadowOffsetX",boxShadowOffsetY:"shadowOffsetY",boxShadowOpacity:"shadowOpacity",boxShadowRadius:"shadowRadius",boxShadowSpread:"shadowSpread",boxShadowColor:"shadowColor"},ot={totop:"0",totopright:"totopright",toright:"90",tobottomright:"tobottomright",tobottom:"180",tobottomleft:"tobottomleft",toleft:"270",totopleft:"totopleft"},at="turn",lt="rad",st="deg";function ut(e){const t=(e||"").replace(/\s*/g,"").toLowerCase(),n=/^([+-]?\d+\.?\d*)+(deg|turn|rad)|(to\w+)$/g.exec(t);if(!Array.isArray(n))return;let r="180";const[i,o,a]=n;return o&&a?r=function(e,t=st){const n=parseFloat(e);let r=e||"";const[,i]=e.split(".");switch(i&&i.length>2&&(r=n.toFixed(2)),t){case at:r=""+(360*n).toFixed(2);break;case lt:r=""+(180/Math.PI*n).toFixed(2)}return r}(o,a):i&&void 0!==ot[i]&&(r=ot[i]),r}function ct(e){const t=(e||"").replace(/\s+/g," ").trim(),[n,r]=t.split(/\s+(?![^(]*?\))/),i=/^([+-]?\d+\.?\d*)%$/g;return!n||i.exec(n)||r?n&&i.exec(r)?{ratio:parseFloat(r.split("%")[0])/100,color:_e(n)}:void 0:{color:_e(n)}}function ft(e){return ne(e)&&(e=e.replace("Capture","")),Q[e]?Q[e][1]:e}class dt extends rt{constructor(e){super(),this.id="",this.style={},this.attributes={},this.events={},this.tagName=e}get nativeName(){return this.meta.component.name}toString(){return`${this.tagName}:(${this.nativeName})`}setListenerHandledType(e,t){this.events[e]&&(this.events[e].handledType=t)}isListenerHandled(e,t){return!this.events[e]||t===this.events[e].handledType}hasAttribute(e){return!!this.attributes[e]}getAttribute(e){return this.attributes[e]}setStyleAttribute(e){this.style={};let t=e;if(!Array.isArray(t)&&Object.hasOwnProperty.call(t,0)){const e=[],n={};Object.keys(t).forEach(r=>{var i;i=r,Y.test(i)?e.push(t[r]):n[r]=t[r]}),t=[...e,n]}Array.isArray(t)||(t=[t]);let n={};t.forEach(e=>{Array.isArray(e)?e.forEach(e=>{n=w(w({},n),e)}):"object"==typeof e&&e&&(n=w(w({},n),e))}),Object.keys(n).forEach(e=>{const t=n[e];if(Object.prototype.hasOwnProperty.call(it,e)&&(e=it[e]),"transform"===e){const e={};if(!Array.isArray(t))throw new TypeError("transform only support array args");t.forEach(t=>{Object.keys(t).forEach(n=>{const r=t[n];r instanceof je||r instanceof Be?e[n]={animationId:r.animationId}:null===r?e[n]&&delete e[n]:void 0!==r&&(e[n]=r)})});const n=Object.keys(e);n.length&&(Array.isArray(this.style.transform)||(this.style.transform=[]),n.forEach(t=>this.style.transform.push({[t]:e[t]})))}else if(null===t&&void 0!==this.style[e])this.style[e]=void 0;else if(t instanceof je||t instanceof Be)this.style[e]={animationId:t.animationId};else if(e.toLowerCase().indexOf("colors")>-1)this.style[e]=Le(t);else if(e.toLowerCase().indexOf("color")>-1)this.style[e]=_e(t);else if("backgroundImage"===e&&t)this.style=function(e,t,n){if(0===t.indexOf("linear-gradient")){const e=t.substring(t.indexOf("(")+1,t.lastIndexOf(")")).split(/,(?![^(]*?\))/),r=[];n.linearGradient=n.linearGradient||{},e.forEach((e,t)=>{if(0===t){const t=ut(e);if(t)n.linearGradient.angle=t;else{n.linearGradient.angle="180";const t=ct(e);t&&r.push(t)}}else{const t=ct(e);t&&r.push(t)}}),n.linearGradient.colorStopList=r}else n[e]=le(t);return n}(e,t,this.style);else if("textShadowOffset"===e){const{x:n=0,width:r=0,y:i=0,height:o=0}=t||{};this.style[e]={width:n||r,height:i||o}}else["textShadowOffsetX","textShadowOffsetY"].indexOf(e)>=0?this.style=function(e,t,n){return n.textShadowOffset=n.textShadowOffset||{},Object.assign(n.textShadowOffset,{[{textShadowOffsetX:"width",textShadowOffsetY:"height"}[e]]:t||0}),n}(e,t,this.style):this.style[e]=t})}setAttributes(e=[]){Array.isArray(e)&&e.length>0&&(e.forEach(e=>{if(Array.isArray(e)){const[t,n]=e;this.setAttribute(t,n,{notToNative:!0})}}),tt(this))}parseAnimationStyleProp(e){let t=!1;Object.keys(e).some(n=>{const r=e[n];if(r&&Array.isArray(r)&&"transform"===n)for(let e=0;e["id"].indexOf(e)>=0,action:()=>(t===this.id||(this.id=t,function(e){if(!e.isMounted)return;const t=F(),[n,r]=Je(t,e)||{};n&&$e.push({type:We.updateNode,nodes:n,eventNodes:r})}(this)),!0)},{match:()=>["value","defaultValue","placeholder"].indexOf(e)>=0,action:()=>(this.attributes[e]=ee(t),!1)},{match:()=>["text"].indexOf(e)>=0,action:()=>(this.attributes[e]=t,!1)},{match:()=>["style"].indexOf(e)>=0,action:()=>"object"!=typeof t||null==t||(this.setStyleAttribute(t),!1)},{match:()=>!0,action:()=>{if("function"==typeof t){const i=ft(e);this.attributes[i]=t,this.events[e]?this.events[e]&&this.events[e].type!==W&&(this.events[e].type=W):this.events[e]={name:i,type:W,isCapture:ne(e),listener:(n=i,r=e,e=>{const{id:t,currentId:i,params:o,eventPhase:a}=e,l={id:t,nativeName:n,originalName:r,params:o,currentId:i,eventPhase:a};he.receiveComponentEvent(l,e)})}}else{const n=ft(e);if(function(e,t){return void 0!==t&&"object"==typeof t[e]&&!!t[e]}(e,this.events)&&"function"!=typeof t)return delete this.attributes[n],this.events[e].type=V,!1;this.attributes[e]=t}var n,r;return!1}}].some(e=>!!e.match()&&(n=e.action(),!0)),n}setAttribute(e,t,n={}){try{if("boolean"==typeof this.attributes[e]&&""===t&&(t=!0),void 0===e)return void(!n.notToNative&&tt(this));if(this.parseAttributeProp(e,t))return;this.parseAnimationStyleProp(this.style),!n.notToNative&&tt(this)}catch(e){}}removeAttribute(e){delete this.attributes[e]}setStyle(e,t,n=!1){if(null===t)return void delete this.style[e];let r=t,i=e;Object.prototype.hasOwnProperty.call(it,e)&&(i=it[e]),"string"==typeof r&&(r=t.trim(),r=i.toLowerCase().indexOf("colors")>-1?Le(r):i.toLowerCase().indexOf("color")>-1?_e(r):function(e){if("number"==typeof e)return e;if("string"==typeof e&&re.test(e))try{return parseFloat(e)}catch(t){return e}return e}(r)),null!=r&&this.style[i]!==r&&(this.style[i]=r,n||tt(this))}setNativeProps(e){if(e){const{style:t}=e;if(t){const e=t;Object.keys(e).forEach(t=>{this.setStyle(t,e[t],!0)}),tt(this),Ke(!0)}}}setText(e){if("string"!=typeof e)try{e=e.toString()}catch(e){throw new Error("Only string type is acceptable for setText")}return(e=e.trim())||this.getAttribute("text")?(e=(e=ee(e)).replace(/ /g," ").replace(/Â/g," "),"textarea"===this.tagName?this.setAttribute("value",e):this.setAttribute("text",e)):null}}class pt extends rt{constructor(){super(),this.documentElement=new dt("document")}createElement(e){return new dt(e)}createElementNS(e,t){return new dt(`${e}:${t}`)}}pt.createElement=pt.prototype.createElement,pt.createElementNS=pt.prototype.createElementNS;var ht=Array.isArray,mt=Object.keys,yt=Object.prototype.hasOwnProperty;const gt=setTimeout,bt=clearTimeout;var vt=Object.freeze({__proto__:null,commitMutationEffectsBegin:function(){},commitMutationEffectsComplete:function(){Ke(!0)},getCurrentEventPriority:function(){return 16},scheduleTimeout:gt,cancelTimeout:bt,noTimeout:-1,afterActiveInstanceBlur:function(){},appendChild:function(e,t){e.childNodes.indexOf(t)>=0&&e.removeChild(t),e.appendChild(t)},appendChildToContainer:function(e,t){e.appendChild(t)},appendInitialChild:function(e,t){e.appendChild(t)},beforeActiveInstanceBlur:function(){},commitMount:function(){},commitTextUpdate:function(){},commitUpdate:function(e,t,n,r,i,o){H(o,e.nodeId);const a=Object.keys(t||{});if(0===a.length)return;const l=a.map(e=>[e,t[e]]);e.setAttributes(l)},clearContainer:function(){},createContainerChildSet:function(){},createInstance:function(e,t,n,r,i){const o=n.createElement(e);return Object.keys(t).forEach(e=>{switch(e){case"children":break;case"nativeName":o.meta.component.name=t.nativeName;break;default:o.setAttribute(e,t[e])}}),[5,7].indexOf(i.tag)<0&&(o.meta.skipAddToDom=!0),H(i,o.nodeId),o},createTextInstance:function(e,t,n,r){const i=t.createElement("p");return i.setAttribute("text",ee(e)),i.meta={component:{name:"Text"}},H(r,i.nodeId),i},detachDeletedInstance:function(){},finalizeContainerChildren:function(){},finalizeInitialChildren:function(){return!0},getChildHostContext:function(){return{}},getPublicInstance:function(e){return e},getInstanceFromNode:function(){throw new Error("Not yet implemented.")},getFundamentalComponentInstance:function(){throw new Error("Not yet implemented.")},getRootHostContext:function(){return{}},hideInstance:function(e){const t={style:{display:"none"}};Object.keys(t).forEach(n=>e.setAttribute(n,t[n]))},hideTextInstance:function(){throw new Error("Not yet implemented.")},insertBefore:function(e,t,n){e.childNodes.indexOf(t)>=0?e.moveChild(t,n):e.insertBefore(t,n)},isOpaqueHydratingObject:function(){throw new Error("Not yet implemented")},makeClientId:function(){throw new Error("Not yet implemented")},makeClientIdInDEV:function(){throw new Error("Not yet implemented")},makeOpaqueHydratingObject:function(){throw new Error("Not yet implemented.")},mountFundamentalComponent:function(){throw new Error("Not yet implemented.")},prepareForCommit:function(){return null},preparePortalMount:function(){},prepareUpdate:function(e,t,n,r){const i={};return Object.keys(n).forEach(e=>{const t=n[e],o=r[e];null!=t&&null==o&&(i[e]=o)}),Object.keys(r).forEach(e=>{const t=n[e],o=r[e];switch(e){case"children":t===o||"number"!=typeof o&&"string"!=typeof o||(i[e]=o);break;default:null!=o&&null==t?i[e]=o:"function"==typeof o||function e(t,n){if(t===n)return!0;if(t&&n&&"object"==typeof t&&"object"==typeof n){var r,i,o,a=ht(t),l=ht(n);if(a&&l){if((i=t.length)!=n.length)return!1;for(r=i;0!=r--;)if(!e(t[r],n[r]))return!1;return!0}if(a!=l)return!1;var s=t instanceof Date,u=n instanceof Date;if(s!=u)return!1;if(s&&u)return t.getTime()==n.getTime();var c=t instanceof RegExp,f=n instanceof RegExp;if(c!=f)return!1;if(c&&f)return t.toString()==n.toString();var d=mt(t);if((i=d.length)!==mt(n).length)return!1;for(r=i;0!=r--;)if(!yt.call(n,d[r]))return!1;for(r=i;0!=r--;)if(!e(t[o=d[r]],n[o]))return!1;return!0}return t!=t&&n!=n}(t,o)||(i[e]=o)}}),i},replaceContainerChildren:function(){},removeChild:function(e,t){e.removeChild(t),B(t)},removeChildFromContainer:function(e,t){e.removeChild(t),B(t)},resetAfterCommit:function(){},resetTextContent:function(){},unmountFundamentalComponent:function(){throw new Error("Not yet implemented.")},updateFundamentalComponent:function(){throw new Error("Not yet implemented.")},unhideTextInstance:function(){throw new Error("Not yet implemented.")},unhideInstance:function(e,t){const n=w(w({},t),{},{style:w(w({},t.style),{},{display:"flex"})});Object.keys(n).forEach(t=>e.setAttribute(t,n[t]))},shouldDeprioritizeSubtree:function(){return!0},shouldUpdateFundamentalComponent:function(){throw new Error("Not yet implemented.")},shouldSetTextContent:function(e,t){if(t&&"Text"===t.nativeName||-1!==["p","span"].indexOf(e)){const{children:e}=t;return"string"==typeof e||"number"==typeof e}return!1}});const wt=a()(w(w({},vt),{},{clearTimeout:clearTimeout,setTimeout:setTimeout,isPrimaryRenderer:!0,noTimeout:-1,supportsMutation:!0,supportsHydration:!1,supportsPersistence:!1,now:Date.now,scheduleDeferredCallback:()=>{},cancelDeferredCallback:()=>{}}));var kt=Object.freeze({__proto__:null,getString:function(){return C.callNativeWithPromise("ClipboardModule","getString")},setString:function(e){C.callNative("ClipboardModule","setString",e)}});var Et=Object.freeze({__proto__:null,getCookies:function(e){return C.callNativeWithPromise("network","getCookie",e)},setCookie:function(e,t,n){let r="";"string"==typeof n&&(r=n),n instanceof Date&&(r=n.toUTCString()),C.callNative("network","setCookie",e,t,r)}});function St(e){return C.callNativeWithPromise("ImageLoaderModule","getSize",e)}function Ct(e){C.callNative("ImageLoaderModule","prefetch",e)}var xt=Object.freeze({__proto__:null,getSize:St,prefetch:Ct});const Nt=new Map;let Pt;class It{constructor(e,t){this.eventName=e,this.listener=t}remove(){this.eventName&&this.listener&&(_t(this.eventName,this.listener),this.listener=void 0)}}function _t(e,t){if(t instanceof It)return void t.remove();let n=e;"change"===e&&(n="networkStatusDidChange");Pt.listenerSize(n)<=1&&C.callNative("NetInfo","removeListener",n);const r=Nt.get(t);r&&(r.remove(),Nt.delete(t))}var Lt=Object.freeze({__proto__:null,addEventListener:function(e,t){Pt=new be;let n=e;n&&"change"===n&&(n="networkStatusDidChange"),Pt.listenerSize(n)<1&&C.callNative("NetInfo","addListener",n);const r=Pt.addListener(n,e=>{t(e)});return Nt.set(t,r),new It(n,t)},removeEventListener:_t,fetch:function(){return C.callNativeWithPromise("NetInfo","getCurrentConnectivity").then(e=>e.network_info)}});const{createNode:At,updateNode:Rt,deleteNode:zt,flushBatch:Tt,endBatch:Ot,sendRenderError:Ft}=N,jt=function(e){return j(t=>t.stateNode&&t.stateNode.nodeId===e)};function Ht(e){if(e instanceof dt)return e;if(!e)return null;const t=e._reactInternalFiber||e._reactInternals;if(null==t?void 0:t.child){let e=t.child;for(;e&&!(e.stateNode instanceof dt);)e=e.child;return e&&e.stateNode?e.stateNode:null}return null}function Mt(e){let t=e;if("string"==typeof e){const n=j(t=>!!(t.return&&t.return.ref&&t.return.ref._stringRef)&&t.return.ref._stringRef===e);if(!n||!n.stateNode)return 0;t=n.stateNode}if(!t.nodeId){const e=Ht(t);return e?e.nodeId:0}return t.nodeId}function Dt(e,t,...n){let{nativeName:r,nodeId:i}=e;if(!i||!r){const t=Ht(e);t&&({nodeId:i,nativeName:r}=t)}if(!r)throw new Error("callUIFunction is calling a unnamed component");if(!i)throw new Error("callUIFunction is calling a component have no nodeId");let[o=[],a]=n;ie(o)&&(a=o,o=[]);null!==F()&&(Z(),N.callUIFunction(i,t,o,a))}function Ut(e,t,n){const r=Mt(t);return new Promise((t,i)=>r?(Z(),N.callUIFunction(r,e,[],e=>(n&&ie(n)&&n(e),"this view is null"===e?i(new Error("Android cannot get the node")):t(e)))):(n&&ie(n)&&n("this view is null"),i(new Error(e+" cannot get nodeId"))))}var Bt=Object.freeze({__proto__:null,createNode:At,updateNode:Rt,deleteNode:zt,flushBatch:Tt,endBatch:Ot,sendRenderError:Ft,getNodeById:jt,getNodeIdByRef:Mt,getElementFromFiberRef:Ht,callUIFunction:Dt,measureInWindow:function(e,t){return Ut("measureInWindow",e,t)},measureInAppWindow:function(e,t){return"android"===x.platform.OS?Ut("measureInWindow",e,t):Ut("measureInAppWindow",e,t)}});const Wt=new be,Vt=new Set,$t={exitApp(){C.callNative("DeviceEventModule","invokeDefaultBackPressHandler")},addListener:e=>(C.callNative("DeviceEventModule","setListenBackPress",!0),Vt.add(e),{remove(){$t.removeListener(e)}}),removeListener(e){Vt.delete(e),0===Vt.size&&C.callNative("DeviceEventModule","setListenBackPress",!1)},initEventListener(){Wt.addListener("hardwareBackPress",()=>{let e=!0;[...Vt].reverse().every(t=>"function"!=typeof t||!t()||(e=!1,!1)),e&&$t.exitApp()})}},qt=($t.initEventListener(),$t),{flushSync:Qt}=wt,{addEventListener:Gt,removeEventListener:Kt,dispatchEvent:Yt,AsyncStorage:Xt,Bridge:Jt,Device:Zt,HippyRegister:en}=A;var tn=Object.freeze({__proto__:null,addEventListener:Gt,removeEventListener:Kt,dispatchEvent:Yt,AsyncStorage:Xt,BackAndroid:qt,Bridge:Jt,Clipboard:kt,Cookie:Et,Device:Zt,HippyRegister:en,ImageLoader:xt,NetworkInfo:Lt,UIManager:Bt,flushSync:Qt});const{createContainer:nn,updateContainer:rn,getPublicRootInstance:on,injectIntoDevTools:an}=wt,ln=['%c[Hippy-React "2.2.1"]%c',"color: #61dafb","color: auto"];class sn{constructor(e){if(!e.appName||!e.entryPage)throw new TypeError("Invalid arguments");this.config=e,this.regist=this.start,this.render=this.render.bind(this);const t=new pt;this.rootContainer=nn(t,0,!1,null)}static get Native(){return tn}start(){en.regist(this.config.appName,this.render)}render(e){const{appName:t,entryPage:n,silent:r=!1,bubbles:o=!1,callback:a=(()=>{})}=this.config,{__instanceId__:l}=e;Z(...ln,"Start",t,"with rootViewId",l,e),this.rootContainer.containerInfo.nodeId=l,r&&oe(r),o&&function(e=!1){J=e}(o),O(l,this.rootContainer);const s=i.a.createElement(n,e);return rn(s,this.rootContainer,null,a),on(this.rootContainer)}}sn.version="2.2.1";const un={registerComponent(e,t){new sn({appName:e,entryPage:t}).start()}};class cn extends i.a.Component{constructor(){super(...arguments),this.instance=null}setPressed(e){Dt(this.instance,"setPressed",[e])}setHotspot(e,t){Dt(this.instance,"setHotspot",[e,t])}render(){const e=this.props,{collapsable:t,style:n={}}=e,r=E(e,s),o=n,{nativeBackgroundAndroid:a}=r;return"boolean"==typeof t&&(o.collapsable=t),void 0!==(null==a?void 0:a.color)&&(a.color=_e(a.color)),i.a.createElement("div",w({ref:e=>{this.instance=e},nativeName:"View",style:o},r))}}function fn(e,t){let{style:n}=e,r=E(e,u);const o=n;if(n&&(Array.isArray(n)?-1===n.filter(e=>"object"==typeof e&&e).findIndex(e=>e.color||e.colors)&&(o[0].color="#000"):"object"==typeof n&&void 0===n.color&&void 0===n.colors&&(o.color="#000")),r.text="","string"==typeof r.children)r.text=ee(r.children);else if("number"==typeof r.children)r.text=ee(r.children.toString());else if(Array.isArray(r.children)){const e=r.children.filter(e=>"string"==typeof e||"number"==typeof e).join("");e&&(r.text=ee(e),r.children=r.text)}return i.a.createElement("p",w({ref:t,nativeName:"Text",style:o},r))}fn.displayName="Text";const dn=i.a.forwardRef(fn);dn.displayName="Text";var pn=Object.freeze({__proto__:null,default:dn});class hn extends i.a.Component{static get resizeMode(){return{contain:"contain",cover:"cover",stretch:"stretch",center:"center",repeat:"repeat"}}static getSize(e,t,n){if("string"!=typeof e)throw new TypeError("Image.getSize first argument must be a string url");const r=St(e);return"function"==typeof t&&r.then(e=>t(e.width,e.height)),"function"==typeof n?r.catch(n):r.catch(e=>{}),r}render(){const e=this.props,{children:t,style:n,imageStyle:r,imageRef:o,source:a,sources:l,src:s,srcs:u,tintColor:f,tintColors:d}=e,p=E(e,c),h=this.getImageUrls({src:s,srcs:u,source:a,sources:l});1===h.length?[p.src]=h:h.length>1&&(p.srcs=h),"string"==typeof p.defaultSource&&(p.defaultSource.indexOf("data:image/"),p.defaultSource=le(p.defaultSource));const m=w({},n);return this.handleTintColor(m,f,d),p.style=m,t?i.a.createElement(cn,{style:n},i.a.createElement("img",w(w({},p),{},{nativeName:"Image",alt:"",ref:o,style:[{position:"absolute",left:0,right:0,top:0,bottom:0,width:n.width,height:n.height},r]})),t):i.a.createElement("img",w(w({},p),{},{nativeName:"Image",alt:"",ref:o}))}getImageUrls({src:e,srcs:t,source:n,sources:r}){let i=[];if("string"==typeof e&&i.push(e),Array.isArray(t)&&(i=[...i,...t]),n)if("string"==typeof n)i.push(n);else if("object"==typeof n&&null!==n){const{uri:e}=n;e&&i.push(e)}return r&&Array.isArray(r)&&r.forEach(e=>{"string"==typeof e?i.push(e):"object"==typeof e&&null!==e&&e.uri&&i.push(e.uri)}),i.length&&(i=i.map(e=>le(e))),i}handleTintColor(e,t,n){t&&Object.assign(e,{tintColor:t}),Array.isArray(n)&&Object.assign(e,{tintColors:n})}}hn.prefetch=Ct;class mn{constructor(){this.Value=mn.Value}static Value(e){return e}static timing(e,t){return new je({mode:"timing",delay:0,startValue:e,toValue:t.toValue,duration:t.duration,timingFunction:t.easing||"linear"})}}mn.View=cn,mn.Text=pn,mn.Image=hn;const yn={step0:e=>e>0?1:0,step1:e=>e>=1?1:0,linear:()=>"linear",ease:()=>"ease",quad:e=>e**2,cubic:e=>e**3,poly:e=>t=>t**e,sin:e=>1-Math.cos(e*Math.PI/2),circle:e=>1-Math.sqrt(1-e*e),exp:e=>2**(10*(e-1)),elastic:()=>"elastic",back:(e=1.70158)=>t=>t*t*((e+1)*t-e),bounce(e){let t=e;return t<1/2.75?7.5625*t*t:t<2/2.75?(t-=1.5/2.75,7.5625*t*t+.75):t<2.5/2.75?(t-=2.25/2.75,7.5625*t*t+.9375):(t-=2.625/2.75,7.5625*t*t+.984375)},bezier:()=>"bezier",in:()=>"ease-in",out:()=>"ease-out",inOut:()=>"ease-in-out"};function gn(e){return i.a.createElement("li",w({nativeName:"ListViewItem"},e))}class bn extends i.a.Component{constructor(){super(...arguments),this.instance=null}expandPullHeader(){Dt(this.instance,"expandPullHeader",[])}collapsePullHeader(e){void 0!==e?Dt(this.instance,"collapsePullHeaderWithOptions",[e]):Dt(this.instance,"collapsePullHeader",[])}render(){const e=this.props,{children:t}=e,n=E(e,f);return i.a.createElement("div",w({nativeName:"PullHeaderView",ref:e=>{this.instance=e}},n),t)}}class vn extends i.a.Component{constructor(){super(...arguments),this.instance=null}expandPullFooter(){Dt(this.instance,"expandPullFooter",[])}collapsePullFooter(){Dt(this.instance,"collapsePullFooter",[])}render(){const e=this.props,{children:t}=e,n=E(e,d);return i.a.createElement("div",w({nativeName:"PullFooterView",ref:e=>{this.instance=e}},n),t)}}class wn extends i.a.Component{constructor(e){super(e),this.instance=null,this.pullHeader=null,this.pullFooter=null,this.handleInitialListReady=this.handleInitialListReady.bind(this),this.state={initialListReady:!1}}componentDidMount(){const{getRowKey:e}=this.props}scrollToIndex(e,t,n){"number"==typeof e&&"number"==typeof t&&"boolean"==typeof n&&Dt(this.instance,"scrollToIndex",[e,t,n])}scrollToContentOffset(e,t,n){"number"==typeof e&&"number"==typeof t&&"boolean"==typeof n&&Dt(this.instance,"scrollToContentOffset",[e,t,n])}expandPullHeader(){this.pullHeader&&this.pullHeader.expandPullHeader()}collapsePullHeader(e){this.pullHeader&&this.pullHeader.collapsePullHeader(e)}expandPullFooter(){this.pullFooter&&this.pullFooter.expandPullFooter()}collapsePullFooter(){this.pullFooter&&this.pullFooter.collapsePullFooter()}render(){const e=this.props,{children:t,style:n,renderRow:r,renderPullHeader:o,renderPullFooter:a,getRowType:l,getRowStyle:s,getHeaderStyle:u,getFooterStyle:c,getRowKey:f,dataSource:d,initialListSize:h,rowShouldSticky:m,onRowLayout:y,onHeaderPulling:g,onHeaderReleased:b,onFooterPulling:v,onFooterReleased:k,onAppear:S,onDisappear:C,onWillAppear:x,onWillDisappear:N}=e,P=E(e,p),I=[];if("function"==typeof r){const{initialListReady:e}=this.state;let{numberOfRows:t}=this.props;const p=this.getPullHeader(o,g,b,u),E=this.getPullFooter(a,v,k,c);!t&&d&&(t=d.length),e||(t=Math.min(t,h||10));for(let e=0;e{"function"==typeof n&&(t[r]=()=>{n(e)})}),n&&I.push(i.a.createElement(gn,w({},t),n))}p&&I.unshift(p),E&&I.push(E),"function"==typeof m&&Object.assign(P,{rowShouldSticky:!0});const _=[S,C,x,N];P.exposureEventEnabled=_.some(e=>"function"==typeof e),"ios"===Zt.platform.OS&&(P.numberOfRows=I.length),P.initialListSize=h,P.style=w({},n)}return i.a.createElement("ul",w({ref:e=>{this.instance=e},nativeName:"ListView",initialListReady:this.handleInitialListReady},P),I.length?I:t)}handleInitialListReady(){this.setState({initialListReady:!0})}getPullHeader(e,t,n,r){let o=null,a={};return"function"==typeof r&&(a=r()),"function"==typeof e&&(o=i.a.createElement(bn,{style:a,key:"pull-header",ref:e=>{this.pullHeader=e},onHeaderPulling:t,onHeaderReleased:n},e())),o}getPullFooter(e,t,n,r){let o=null,a={};return"function"==typeof r&&(a=r()),"function"==typeof e&&(o=i.a.createElement(vn,{style:a,key:"pull-footer",ref:e=>{this.pullFooter=e},onFooterPulling:t,onFooterReleased:n},e())),o}handleRowProps(e,t,{getRowKey:n,getRowStyle:r,onRowLayout:i,getRowType:o,rowShouldSticky:a}){if("function"==typeof n&&(e.key=n(t)),"function"==typeof r&&(e.style=r(t)),"function"==typeof i&&(e.onLayout=e=>{i(e,t)}),"function"==typeof o){const n=o(t);Number.isInteger(n),e.type=n}"function"==typeof a&&(e.sticky=a(t))}}wn.defaultProps={numberOfRows:0};class kn extends i.a.Component{constructor(e){super(e),this.instance=null,this.refreshComplected=this.refreshCompleted.bind(this)}startRefresh(){Dt(this.instance,"startRefresh",null)}refreshCompleted(){Dt(this.instance,"refreshComplected",null)}render(){const e=this.props,{children:t}=e,n=E(e,h);return i.a.createElement("div",w({nativeName:"RefreshWrapper",ref:e=>{this.instance=e}},n),i.a.createElement("div",{nativeName:"RefreshWrapperItemView",style:{left:0,right:0,position:"absolute"}},this.getRefresh()),t)}getRefresh(){const{getRefresh:e}=this.props;return"function"==typeof e&&e()||null}}class En{constructor(){this.top=null,this.size=0}push(e){this.top={data:e,next:this.top},this.size+=1}peek(){return null===this.top?null:this.top.data}pop(){if(null===this.top)return null;const e=this.top;return this.top=this.top.next,this.size>0&&(this.size-=1),e.data}clear(){this.top=null,this.size=0}displayAll(){const e=[];if(null===this.top)return e;let t=this.top;for(let n=0,r=this.size;n1&&this.pop({animated:!0})}push(e){if(null==e?void 0:e.component){if(!this.routeList[e.routeName]){new sn({appName:e.routeName,entryPage:e.component}).regist(),this.routeList[e.routeName]=!0}delete e.component}const t=[e];this.stack.push(e),Dt(this.instance,"push",t)}pop(e){if(this.stack.size>1){const t=[e];this.stack.pop(),Dt(this.instance,"pop",t)}}clear(){this.stack.clear()}render(){const e=this.props,{initialRoute:{component:t}}=e,n=E(e.initialRoute,y),r=E(e,m);return r.initialRoute=n,i.a.createElement("div",w({nativeName:"Navigator",ref:e=>{this.instance=e}},r))}}function Cn(e){return i.a.createElement("div",w(w({nativeName:"ViewPagerItem"},e),{},{style:{position:"absolute",left:0,top:0,right:0,bottom:0,collapsable:!1}}))}class xn extends i.a.Component{constructor(e){super(e),this.instance=null,this.setPage=this.setPage.bind(this),this.setPageWithoutAnimation=this.setPageWithoutAnimation.bind(this),this.onPageScrollStateChanged=this.onPageScrollStateChanged.bind(this)}onPageScrollStateChanged(e){const{onPageScrollStateChanged:t}=this.props;t&&t(e.pageScrollState)}setPage(e){"number"==typeof e&&Dt(this.instance,"setPage",[e])}setPageWithoutAnimation(e){"number"==typeof e&&Dt(this.instance,"setPageWithoutAnimation",[e])}render(){const e=this.props,{children:t,onPageScrollStateChanged:n}=e,r=E(e,g);let o=[];return Array.isArray(t)?o=t.map(e=>{const t={};return"string"==typeof e.key&&(t.key="viewPager_"+e.key),i.a.createElement(Cn,w({},t),e)}):o.push(i.a.createElement(Cn,null,t)),"function"==typeof n&&(r.onPageScrollStateChanged=this.onPageScrollStateChanged),i.a.createElement("div",w({nativeName:"ViewPager",ref:e=>{this.instance=e}},r),o)}}function Nn(){const e=x.platform.Localization;return!!e&&1===e.direction}const Pn={caretColor:"caret-color"};class In extends i.a.Component{constructor(e){super(e),this.instance=null,this._lastNativeText="",this.onChangeText=this.onChangeText.bind(this),this.onKeyboardWillShow=this.onKeyboardWillShow.bind(this)}componentDidMount(){const{value:e,autoFocus:t}=this.props;this._lastNativeText=e,t&&this.focus()}componentWillUnmount(){this.blur()}getValue(){return new Promise(e=>{Dt(this.instance,"getValue",t=>e(t.text))})}setValue(e){return Dt(this.instance,"setValue",[e]),e}focus(){Dt(this.instance,"focusTextInput",[])}blur(){Dt(this.instance,"blurTextInput",[])}isFocused(){return new Promise(e=>{Dt(this.instance,"isFocused",t=>e(t.value))})}showInputMethod(){}hideInputMethod(){}clear(){Dt(this.instance,"clear",[])}render(){const e=w({},this.props);return["underlineColorAndroid","placeholderTextColor","placeholderTextColors","caretColor","caret-color"].forEach(t=>{let n=t;const r=this.props[t];"string"==typeof this.props[t]&&(Pn[t]&&(n=Pn[t]),Array.isArray(e.style)?e.style.push({[n]:r}):e.style&&"object"==typeof e.style?e.style[n]=r:e.style={[n]:r},delete e[t])}),Nn()&&(e.style?"object"!=typeof e.style||Array.isArray(e.style)||e.style.textAlign||(e.style.textAlign="right"):e.style={textAlign:"right"}),i.a.createElement("div",w(w({nativeName:"TextInput"},e),{},{ref:e=>{this.instance=e},onChangeText:this.onChangeText,onKeyboardWillShow:this.onKeyboardWillShow}))}onChangeText(e){const{onChangeText:t}=this.props;"function"==typeof t&&t(e.text),this.instance&&(this._lastNativeText=e.text)}onKeyboardWillShow(e){const{onKeyboardWillShow:t}=this.props;"function"==typeof t&&t(e)}}const _n=Zt.window.scale;let Ln=Math.round(.4*_n)/_n;function An(e){return e}0===Ln&&(Ln=1/_n);var Rn=Object.freeze({__proto__:null,get hairlineWidth(){return Ln},create:An});const zn={baseVertical:{flexGrow:1,flexShrink:1,flexDirection:"column",overflow:"scroll"},baseHorizontal:{flexGrow:1,flexShrink:1,flexDirection:"row",overflow:"scroll"},contentContainerVertical:{collapsable:!1,flexDirection:"column"},contentContainerHorizontal:{collapsable:!1,flexDirection:"row"}};class Tn extends i.a.Component{constructor(){super(...arguments),this.instance=null}scrollTo(e,t,n=!0){let r=e,i=t,o=n;"object"==typeof e&&e&&({x:r,y:i,animated:o}=e),r=r||0,i=i||0,o=!!o,Dt(this.instance,"scrollTo",[r,i,o])}scrollToWithDuration(e=0,t=0,n=1e3){Dt(this.instance,"scrollToWithOptions",[{x:e,y:t,duration:n}])}render(){const{horizontal:e,contentContainerStyle:t,children:n,style:r}=this.props,o=[e?zn.contentContainerHorizontal:zn.contentContainerVertical,t],a=e?Object.assign({},zn.baseHorizontal,r):Object.assign({},zn.baseVertical,r);return e&&(a.flexDirection=Nn()?"row-reverse":"row"),i.a.createElement("div",w(w({nativeName:"ScrollView",ref:e=>{this.instance=e}},this.props),{},{style:a}),i.a.createElement(cn,{style:o},n))}}const On={modal:{position:"absolute",collapsable:!1}};class Fn extends i.a.Component{constructor(e){super(e),this.eventSubscription=null}componentDidMount(){"ios"===Zt.platform.OS&&(this.eventSubscription=new ye("modalDismissed"),this.eventSubscription.addCallback(e=>{const{primaryKey:t,onDismiss:n}=this.props;e.primaryKey===t&&"function"==typeof n&&n()}))}componentWillUnmount(){"ios"===Zt.platform.OS&&this.eventSubscription&&this.eventSubscription.unregister()}render(){const{children:e,visible:t,transparent:n,animated:r}=this.props;let{animationType:o}=this.props;if(!1===t)return null;const a={backgroundColor:n?"transparent":"white"};return o||(o="none",r&&(o="slide")),i.a.createElement("div",w({nativeName:"Modal",animationType:o,transparent:n,style:[On.modal,a]},this.props),e)}}Fn.defaultProps={visible:!0};class jn extends i.a.Component{constructor(e){super(e);const{requestFocus:t}=this.props;this.state={isFocus:!!t},this.handleFocus=this.handleFocus.bind(this)}render(){var e,t,n;const{requestFocus:r,children:o,nextFocusDownId:a,nextFocusUpId:l,nextFocusLeftId:s,nextFocusRightId:u,style:c,noFocusStyle:f,focusStyle:d,onClick:p}=this.props,{isFocus:h}=this.state,m=i.a.Children.only(o);let y;(null===(t=null===(e=null==m?void 0:m.child)||void 0===e?void 0:e.memoizedProps)||void 0===t?void 0:t.nativeName)?y=m.child.memoizedProps.nativeName:(null===(n=null==m?void 0:m.type)||void 0===n?void 0:n.displayName)&&(y=m.type.displayName);const g=a&&Mt(a),b=l&&Mt(l),v=s&&Mt(s),k=u&&Mt(u);let E=c;if("Text"!==y){const e=m.memoizedProps.style;E=w(w({},E),e)}if(Object.assign(E,h?d:f),"Text"===y)return i.a.createElement(cn,{focusable:!0,nextFocusDownId:g,nextFocusUpId:b,nextFocusLeftId:v,nextFocusRightId:k,requestFocus:r,style:E,onClick:p,onFocus:this.handleFocus},m);const{children:S}=m.memoizedProps;return i.a.cloneElement(m,{nextFocusDownId:a,nextFocusUpId:l,nextFocusLeftId:s,nextFocusRightId:u,requestFocus:r,onClick:p,focusable:!0,children:S,style:E,onFocus:this.handleFocus})}handleFocus(e){const{onFocus:t}=this.props;"function"==typeof t&&t(e);const{isFocus:n}=this.state;n!==e.focus&&this.setState({isFocus:e.focus})}}function Hn(e){return i.a.createElement("iframe",w({title:"hippy",nativeName:"WebView"},e))}let Mn;class Dn{constructor(e,t,n){if(this.protocol="",this.onWebSocketEvent=this.onWebSocketEvent.bind(this),Mn||(Mn=new ye("hippyWebsocketEvents")),this.readyState=0,this.webSocketCallbacks={},!e||"string"!=typeof e)throw new TypeError("Invalid WebSocket url");const r=w({},n);if(void 0!==t)if(Array.isArray(t)&&t.length>0)r["Sec-WebSocket-Protocol"]=t.join(",");else{if("string"!=typeof t)throw new TypeError("Invalid WebSocket protocols");r["Sec-WebSocket-Protocol"]=t}const i={headers:r,url:e};this.url=e,this.webSocketCallbackId=Mn.addCallback(this.onWebSocketEvent),C.callNativeWithPromise("websocket","connect",i).then(e=>{e&&0===e.code&&"number"==typeof e.id&&(this.webSocketId=e.id)})}close(e,t){1===this.readyState&&(this.readyState=2,C.callNative("websocket","close",{id:this.webSocketId,code:e,reason:t}))}send(e){if(1===this.readyState){if("string"!=typeof e)throw new TypeError("Unsupported websocket data type: "+typeof e);C.callNative("websocket","send",{id:this.webSocketId,data:e})}}set onopen(e){this.webSocketCallbacks.onOpen=e}set onclose(e){this.webSocketCallbacks.onClose=e}set onerror(e){this.webSocketCallbacks.onError=e}set onmessage(e){this.webSocketCallbacks.onMessage=e}onWebSocketEvent(e){if("object"!=typeof e||e.id!==this.webSocketId)return;const{type:t}=e;"onOpen"===t?this.readyState=1:"onClose"===t&&(this.readyState=3,Mn.removeCallback(this.webSocketCallbackId));const n=this.webSocketCallbacks[t];"function"==typeof n&&n(e.data)}}function Un(e){return i.a.createElement("li",w({nativeName:"WaterfallItem"},e))}class Bn extends i.a.Component{constructor(e){super(e),this.instance=null,this.pullHeader=null,this.pullFooter=null,this.handleInitialListReady=this.handleInitialListReady.bind(this)}scrollToIndex({index:e=0,animated:t=!0}){Dt(this.instance,"scrollToIndex",[e,e,t])}scrollToContentOffset({xOffset:e=0,yOffset:t=0,animated:n=!0}){Dt(this.instance,"scrollToContentOffset",[e,t,n])}expandPullHeader(){this.pullHeader&&this.pullHeader.expandPullHeader()}collapsePullHeader(e){this.pullHeader&&this.pullHeader.collapsePullHeader(e)}expandPullFooter(){this.pullFooter&&this.pullFooter.expandPullFooter()}collapsePullFooter(){this.pullFooter&&this.pullFooter.collapsePullFooter()}render(){const e=this.props,{style:t={},renderBanner:n,numberOfColumns:r=2,columnSpacing:o=0,interItemSpacing:a=0,numberOfItems:l=0,preloadItemNumber:s=0,renderItem:u,renderPullHeader:c,renderPullFooter:f,getItemType:d,getItemKey:p,getItemStyle:h,contentInset:m={top:0,left:0,bottom:0,right:0},onItemLayout:y,onHeaderPulling:g,onHeaderReleased:v,onFooterPulling:k,onFooterReleased:S,containPullHeader:C=!1,containPullFooter:x=!1,containBannerView:N=!1}=e,P=w(w({},E(e,b)),{},{style:t,numberOfColumns:r,columnSpacing:o,interItemSpacing:a,preloadItemNumber:s,contentInset:m,containPullHeader:C,containPullFooter:x,containBannerView:N}),I=[];if("function"==typeof n){const e=n();e&&(I.push(i.a.createElement(cn,{key:"bannerView"},i.a.cloneElement(e))),P.containBannerView=!0)}if("function"==typeof u){const e=this.getPullHeader(c,g,v),n=this.getPullFooter(f,k,S);for(let e=0;ethis.instance=e,initialListReady:this.handleInitialListReady.bind(this)},P),I)}componentDidMount(){const{getItemKey:e}=this.props}handleRowProps(e,t,{getItemKey:n,getItemStyle:r,onItemLayout:i,getItemType:o}){if("function"==typeof n&&(e.key=n(t)),"function"==typeof r&&(e.style=r(t)),"function"==typeof i&&(e.onLayout=e=>{i.call(this,e,t)}),"function"==typeof o){const n=o(t);Number.isInteger(n),e.type=n}}getPullHeader(e,t,n){let r=null;return"function"==typeof e&&(r=i.a.createElement(bn,{key:"PullHeader",ref:e=>{this.pullHeader=e},onHeaderPulling:t,onHeaderReleased:n},e())),r}getPullFooter(e,t,n){let r=null;return"function"==typeof e&&(r=i.a.createElement(vn,{key:"PullFooter",ref:e=>{this.pullFooter=e},onFooterPulling:t,onFooterReleased:n},e())),r}handleInitialListReady(){const{onInitialListReady:e}=this.props;"function"==typeof e&&e()}}e.WebSocket=Dn;const{AsyncStorage:Wn,BackAndroid:Vn,Bridge:$n,Clipboard:qn,Cookie:Qn,Device:Gn,HippyRegister:Kn,ImageLoader:Yn,NetworkInfo:Xn,UIManager:Jn,flushSync:Zn}=tn,{callNative:er,callNativeWithPromise:tr,callNativeWithCallbackId:nr,removeNativeCallback:rr}=$n,ir=null,or=e.ConsoleModule||e.console,ar=Gn.platform,lr=sn,sr=sn,ur=hn,cr=Kn,fr=be,dr=ye,pr={get:e=>Gn[e]},hr={get:()=>Gn.screen.scale}}.call(this,n("./node_modules/webpack/buildin/global.js"))},"./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js":function(e,t,n){(function(e){ /** @license React v0.26.2 * react-reconciler.production.min.js * @@ -29,12 +29,12 @@ var hippyReactBase=function(e){var t={};function n(r){if(t[r])return t[r].export * This source code is licensed under the MIT license found in the * LICENSE file in the root directory of this source tree. */ -e.exports=function(t){var r={},i=n("./node_modules/object-assign/index.js"),o=n("./node_modules/react/index.js"),a=n("./node_modules/scheduler/index.js");function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n--l||i[a]!==o[l])return"\n"+i[a].replace(" at new "," at ")}while(1<=a&&0<=l);break}}}finally{et=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Ze(e):""}var nt=[],rt=-1;function it(e){return{current:e}}function ot(e){0>rt||(e.current=nt[rt],nt[rt]=null,rt--)}function at(e,t){rt++,nt[rt]=e.current,e.current=t}var lt={},st=it(lt),ut=it(!1),ct=lt;function ft(e,t){var n=e.type.contextTypes;if(!n)return lt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function dt(e){return null!=(e=e.childContextTypes)}function pt(){ot(ut),ot(st)}function ht(e,t,n){if(st.current!==lt)throw Error(l(168));at(st,t),at(ut,n)}function mt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(l(108,P(t)||"Unknown",o));return i({},n,r)}function yt(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||lt,ct=st.current,at(st,e),at(ut,ut.current),!0}function gt(e,t,n){var r=e.stateNode;if(!r)throw Error(l(169));n?(e=mt(e,t,ct),r.__reactInternalMemoizedMergedChildContext=e,ot(ut),ot(st),at(st,e)):ot(ut),at(ut,n)}var bt=null,vt=null;(0,a.unstable_now)();var wt=0,kt=8;function Et(e){if(0!=(1&e))return kt=15,1;if(0!=(2&e))return kt=14,2;if(0!=(4&e))return kt=13,4;var t=24&e;return 0!==t?(kt=12,t):0!=(32&e)?(kt=11,32):0!==(t=192&e)?(kt=10,t):0!=(256&e)?(kt=9,256):0!==(t=3584&e)?(kt=8,t):0!=(4096&e)?(kt=7,4096):0!==(t=4186112&e)?(kt=6,t):0!==(t=62914560&e)?(kt=5,t):67108864&e?(kt=4,67108864):0!=(134217728&e)?(kt=3,134217728):0!==(t=805306368&e)?(kt=2,t):0!=(1073741824&e)?(kt=1,1073741824):(kt=8,e)}function St(e,t){var n=e.pendingLanes;if(0===n)return kt=0;var r=0,i=0,o=e.expiredLanes,a=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,i=kt=15;else if(0!==(o=134217727&n)){var s=o&~a;0!==s?(r=Et(s),i=kt):0!==(l&=o)&&(r=Et(l),i=kt)}else 0!==(o=n&~a)?(r=Et(o),i=kt):0!==l&&(r=Et(l),i=kt);if(0===r)return 0;if(r=n&((0>(r=31-_t(r))?0:1<n;n++)t.push(e);return t}function Pt(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-_t(t)]=n}var _t=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Lt(e)/Tt|0)|0},Lt=Math.log,Tt=Math.LN2;var At=a.unstable_runWithPriority,Rt=a.unstable_scheduleCallback,zt=a.unstable_cancelCallback,Ot=a.unstable_shouldYield,Ft=a.unstable_requestPaint,jt=a.unstable_now,Ht=a.unstable_getCurrentPriorityLevel,Mt=a.unstable_ImmediatePriority,Dt=a.unstable_UserBlockingPriority,Ut=a.unstable_NormalPriority,Bt=a.unstable_LowPriority,Wt=a.unstable_IdlePriority,Vt={},$t=void 0!==Ft?Ft:function(){},Qt=null,qt=null,Gt=!1,Kt=jt(),Yt=1e4>Kt?jt:function(){return jt()-Kt};function Xt(){switch(Ht()){case Mt:return 99;case Dt:return 98;case Ut:return 97;case Bt:return 96;case Wt:return 95;default:throw Error(l(332))}}function Jt(e){switch(e){case 99:return Mt;case 98:return Dt;case 97:return Ut;case 96:return Bt;case 95:return Wt;default:throw Error(l(332))}}function Zt(e,t){return e=Jt(e),At(e,t)}function en(e,t,n){return e=Jt(e),Rt(e,t,n)}function tn(){if(null!==qt){var e=qt;qt=null,zt(e)}nn()}function nn(){if(!Gt&&null!==Qt){Gt=!0;var e=0;try{var t=Qt;Zt(99,(function(){for(;ed?(p=f,f=null):p=f.sibling;var h=y(i,f,l[d],s);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&t(i,f),a=o(h,a,d),null===c?u=h:c.sibling=h,c=h,f=p}if(d===l.length)return n(i,f),u;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var v=y(i,d,b.value,u);if(null===v){null===d&&(d=h);break}e&&d&&null===v.alternate&&t(i,d),a=o(v,a,p),null===f?c=v:f.sibling=v,f=v,d=h}if(b.done)return n(i,d),c;if(null===d){for(;!b.done;p++,b=s.next())null!==(b=m(i,b.value,u))&&(a=o(b,a,p),null===f?c=b:f.sibling=b,f=b);return c}for(d=r(i,d);!b.done;p++,b=s.next())null!==(b=g(d,i,p,b.value,u))&&(e&&null!==b.alternate&&d.delete(null===b.key?p:b.key),a=o(b,a,p),null===f?c=b:f.sibling=b,f=b);return e&&d.forEach((function(e){return t(i,e)})),c}return function e(r,o,s,d){var p="object"==typeof s&&null!==s&&s.type===f&&null===s.key;p&&(s=s.props.children);var h="object"==typeof s&&null!==s;if(h)switch(s.$$typeof){case u:e:{for(h=s.key,p=o;null!==p;){if(p.key===h){switch(p.tag){case 7:if(s.type===f){n(r,p.sibling),(o=i(p,s.props.children)).return=r,r=o;break e}break;case 22:if((h=s.type).$$typeof===w&&(h=Hn(h)),h.$$typeof===k&&h._render===p.type._render){n(r,p.sibling),(o=i(p,s.props)).type=h,o.return=r,r=o;break e}default:if(p.elementType===s.type){n(r,p.sibling),(o=i(p,s.props)).ref=Fn(r,p,s),o.return=r,r=o;break e}}n(r,p);break}t(r,p),p=p.sibling}s.type===f?((o=Ma(s.props.children,r.mode,d,s.key)).return=r,r=o):((d=Ha(s.type,s.key,s.props,null,r.mode,d)).ref=Fn(r,o,s),d.return=r,r=d)}return a(r);case c:e:{for(p=s.key;null!==o;){if(o.key===p){if(4===o.tag&&o.stateNode.containerInfo===s.containerInfo&&o.stateNode.implementation===s.implementation){n(r,o.sibling),(o=i(o,s.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Ba(s,r.mode,d)).return=r,r=o}return a(r);case w:return e(r,o,(p=s._init)(s._payload),d)}if("string"==typeof s||"number"==typeof s)return s=""+s,null!==o&&6===o.tag?(n(r,o.sibling),(o=i(o,s)).return=r,r=o):(n(r,o),(o=Ua(s,r.mode,d)).return=r,r=o),a(r);if(On(s))return b(r,o,s,d);if(I(s))return v(r,o,s,d);if(h&&jn(r,s),void 0===s&&!p)switch(r.tag){case 1:case 22:case 0:case 11:case 15:throw Error(l(152,P(r.type)||"Component"))}return n(r,o)}}var Dn=Mn(!0),Un=Mn(!1),Bn={},Wn=it(Bn),Vn=it(Bn),$n=it(Bn);function Qn(e){if(e===Bn)throw Error(l(174));return e}function qn(e,t){at($n,t),at(Vn,e),at(Wn,Bn),e=F(t),ot(Wn),at(Wn,e)}function Gn(){ot(Wn),ot(Vn),ot($n)}function Kn(e){var t=Qn($n.current),n=Qn(Wn.current);n!==(t=j(n,e.type,t))&&(at(Vn,e),at(Wn,t))}function Yn(e){Vn.current===e&&(ot(Wn),ot(Vn))}var Xn=it(0);function Jn(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||De(n)||Ue(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Zn=null,er=null,tr=!1;function nr(e,t){var n=Oa(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function rr(e,t){switch(e.tag){case 5:return null!==(t=je(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=He(t,e.pendingProps))&&(e.stateNode=t,!0);case 13:if(null!==(t=Me(t))){e.memoizedState={dehydrated:t,retryLane:1073741824};var n=Oa(18,null,null,0);return n.stateNode=t,n.return=e,e.child=n,!0}return!1;default:return!1}}function ir(e){if(tr){var t=er;if(t){var n=t;if(!rr(e,t)){if(!(t=We(n))||!rr(e,t))return e.flags=-1025&e.flags|2,tr=!1,void(Zn=e);nr(Zn,n)}Zn=e,er=Ve(t)}else e.flags=-1025&e.flags|2,tr=!1,Zn=e}}function or(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Zn=e}function ar(e){if(!J||e!==Zn)return!1;if(!tr)return or(e),tr=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!V(t,e.memoizedProps))for(t=er;t;)nr(e,t),t=We(t);if(or(e),13===e.tag){if(!J)throw Error(l(316));if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));er=Ge(e)}else er=Zn?We(e.stateNode):null;return!0}function lr(){J&&(er=Zn=null,tr=!1)}var sr=[];function ur(){for(var e=0;eo))throw Error(l(301));o+=1,mr=hr=null,t.updateQueue=null,cr.current=Kr,e=n(r,i)}while(gr)}if(cr.current=Qr,t=null!==hr&&null!==hr.next,dr=0,mr=hr=pr=null,yr=!1,t)throw Error(l(300));return e}function kr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~n}function Er(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===mr?pr.memoizedState=mr=e:mr=mr.next=e,mr}function Sr(){if(null===hr){var e=pr.alternate;e=null!==e?e.memoizedState:null}else e=hr.next;var t=null===mr?pr.memoizedState:mr.next;if(null!==t)mr=t,hr=e;else{if(null===e)throw Error(l(310));e={memoizedState:(hr=e).memoizedState,baseState:hr.baseState,baseQueue:hr.baseQueue,queue:hr.queue,next:null},null===mr?pr.memoizedState=mr=e:mr=mr.next=e}return mr}function xr(e,t){return"function"==typeof t?t(e):t}function Cr(e){var t=Sr(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=hr,i=r.baseQueue,o=n.pending;if(null!==o){if(null!==i){var a=i.next;i.next=o.next,o.next=a}r.baseQueue=i=o,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var s=a=o=null,u=i;do{var c=u.lane;if((dr&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var f={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(a=s=f,o=r):s=s.next=f,pr.lanes|=c,Eo|=c}u=u.next}while(null!==u&&u!==i);null===s?o=r:s.next=a,on(r,t.memoizedState)||(Xr=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Nr(e){var t=Sr(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var a=i=i.next;do{o=e(o,a.action),a=a.next}while(a!==i);on(o,t.memoizedState)||(Xr=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Ir(e,t,n){var r=t._getVersion;r=r(t._source);var i=K?t._workInProgressVersionPrimary:t._workInProgressVersionSecondary;if(null!==i?e=i===r:(e=e.mutableReadLanes,(e=(dr&e)===e)&&(K?t._workInProgressVersionPrimary=r:t._workInProgressVersionSecondary=r,sr.push(t))),e)return n(t._source);throw sr.push(t),Error(l(350))}function Pr(e,t,n,r){var i=ho;if(null===i)throw Error(l(349));var o=t._getVersion,a=o(t._source),s=cr.current,u=s.useState((function(){return Ir(i,t,n)})),c=u[1],f=u[0];u=mr;var d=e.memoizedState,p=d.refs,h=p.getSnapshot,m=d.source;d=d.subscribe;var y=pr;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!on(a,e)){e=n(t._source),on(f,e)||(c(e),e=Go(y),i.mutableReadLanes|=e&i.pendingLanes),e=i.mutableReadLanes,i.entangledLanes|=e;for(var r=i.entanglements,l=e;0n?98:n,(function(){e(!0)})),Zt(97Io&&(t.flags|=64,i=!0,Ni(r,!1),t.lanes=33554432)}else{if(!i)if(null!==(e=Jn(o))){if(t.flags|=64,i=!0,null!==(e=e.updateQueue)&&(t.updateQueue=e,t.flags|=4),Ni(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!tr)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Yt()-r.renderingStartTime>Io&&1073741824!==n&&(t.flags|=64,i=!0,Ni(r,!1),t.lanes=33554432);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Yt(),e.sibling=null,t=Xn.current,at(Xn,i?1&t|2:1&t),e):null;case 22:return null;case 23:case 24:return ia(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(l(156,t.tag))}function Pi(e){switch(e.tag){case 1:dt(e.type)&&pt();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Gn(),ot(ut),ot(st),ur(),0!=(64&(t=e.flags)))throw Error(l(285));return e.flags=-4097&t|64,e;case 5:return Yn(e),null;case 13:if(ot(Xn),null!==(t=e.memoizedState)&&null!==t.dehydrated){if(null===e.alternate)throw Error(l(340));lr()}return 4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ot(Xn),null;case 4:return Gn(),null;case 10:return yn(e),null;case 23:case 24:return ia(),null;default:return null}}function _i(e,t){try{var n="",r=t;do{n+=sn(r),r=r.return}while(r);var i=n}catch(e){i="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:i}}function Li(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var Ti="function"==typeof WeakMap?WeakMap:Map;function Ai(e,t,n){(n=Sn(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){To||(To=!0,Ao=r),Li(0,t)},n}function Ri(e,t,n){(n=Sn(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return Li(0,t),r(i)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===Ro?Ro=new Set([this]):Ro.add(this),Li(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var zi="function"==typeof WeakSet?WeakSet:Set;function Oi(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Ea(e,t)}else t.current=null}function Fi(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:un(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(Y&&256&t.flags&&Ie(t.stateNode.containerInfo));case 5:case 6:case 4:case 17:return}throw Error(l(163))}function ji(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.destroy;n.destroy=void 0,void 0!==r&&r()}n=n.next}while(n!==t)}}function Hi(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var i=e;r=i.next,0!=(4&(i=i.tag))&&0!=(1&i)&&(va(n,e),ba(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:un(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&In(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=O(n.child.stateNode);break;case 1:e=n.child.stateNode}In(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&ye(e,n.type,n.memoizedProps,n));case 6:case 4:case 12:return;case 13:return void(J&&null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Ye(n)))));case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(l(163))}function Mi(e,t){if(Y)for(var n=e;;){if(5===n.tag){var r=n.stateNode;t?Se(r):Ce(n.stateNode,n.memoizedProps)}else if(6===n.tag)r=n.stateNode,t?xe(r):Ne(r,n.memoizedProps);else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Di(e,t){if(vt&&"function"==typeof vt.onCommitFiberUnmount)try{vt.onCommitFiberUnmount(bt,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,i=r.destroy;if(r=r.tag,void 0!==i)if(0!=(4&r))va(t,n);else{r=t;try{i()}catch(e){Ea(r,e)}}n=n.next}while(n!==e)}break;case 1:if(Oi(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Ea(t,e)}break;case 5:Oi(t);break;case 4:Y?$i(e,t):X&&X&&(t=t.stateNode.containerInfo,e=Te(t),ze(t,e))}}function Ui(e,t){for(var n=t;;)if(Di(e,n),null===n.child||Y&&4===n.tag){if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else n.child.return=n,n=n.child}function Bi(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function Wi(e){return 5===e.tag||3===e.tag||4===e.tag}function Vi(e){if(Y){e:{for(var t=e.return;null!==t;){if(Wi(t))break e;t=t.return}throw Error(l(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(l(161))}16&n.flags&&(Ee(t),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Wi(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?function e(t,n,r){var i=t.tag,o=5===i||6===i;if(o)t=o?t.stateNode:t.stateNode.instance,n?ve(r,t,n):he(r,t);else if(4!==i&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t):function e(t,n,r){var i=t.tag,o=5===i||6===i;if(o)t=o?t.stateNode:t.stateNode.instance,n?be(r,t,n):pe(r,t);else if(4!==i&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t)}}function $i(e,t){for(var n,r,i=t,o=!1;;){if(!o){o=i.return;e:for(;;){if(null===o)throw Error(l(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===i.tag||6===i.tag)Ui(e,i),r?ke(n,i.stateNode):we(n,i.stateNode);else if(18===i.tag)r?Je(n,i.stateNode):Xe(n,i.stateNode);else if(4===i.tag){if(null!==i.child){n=i.stateNode.containerInfo,r=!0,i.child.return=i,i=i.child;continue}}else if(Di(e,i),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(o=!1)}i.sibling.return=i.return,i=i.sibling}}function Qi(e,t){if(Y){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void ji(3,t);case 1:return;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,o=t.updateQueue;t.updateQueue=null,null!==o&&ge(n,o,i,e,r,t)}return;case 6:if(null===t.stateNode)throw Error(l(162));return n=t.memoizedProps,void me(t.stateNode,null!==e?e.memoizedProps:n,n);case 3:return void(J&&(t=t.stateNode,t.hydrate&&(t.hydrate=!1,Ke(t.containerInfo))));case 12:return;case 13:return qi(t),void Gi(t);case 19:return void Gi(t);case 17:return;case 23:case 24:return void Mi(t,null!==t.memoizedState)}throw Error(l(163))}switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void ji(3,t);case 12:return;case 13:return qi(t),void Gi(t);case 19:return void Gi(t);case 3:J&&((n=t.stateNode).hydrate&&(n.hydrate=!1,Ke(n.containerInfo)));break;case 23:case 24:return}e:if(X){switch(t.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:t=t.stateNode,ze(t.containerInfo,t.pendingChildren);break e}throw Error(l(163))}}function qi(e){null!==e.memoizedState&&(No=Yt(),Y&&Mi(e.child,!0))}function Gi(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new zi),t.forEach((function(t){var r=Na.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ki(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Yi=0,Xi=1,Ji=2,Zi=3,eo=4;if("function"==typeof Symbol&&Symbol.for){var to=Symbol.for;Yi=to("selector.component"),Xi=to("selector.has_pseudo_class"),Ji=to("selector.role"),Zi=to("selector.test_id"),eo=to("selector.text")}function no(e){var t=Z(e);if(null!=t){if("string"!=typeof t.memoizedProps["data-testname"])throw Error(l(364));return t}if(null===(e=ae(e)))throw Error(l(362));return e.stateNode.current}function ro(e,t){switch(t.$$typeof){case Yi:if(e.type===t.value)return!0;break;case Xi:e:{t=t.value,e=[e,0];for(var n=0;n";case Xi:return":has("+(io(e)||"")+")";case Ji:return'[role="'+e.value+'"]';case eo:return'"'+e.value+'"';case Zi:return'[data-testname="'+e.value+'"]';default:throw Error(l(365,e))}}function oo(e,t){var n=[];e=[e,0];for(var r=0;ri&&(i=a),n&=~o}if(n=i,10<(n=(120>(n=Yt()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*so(n/1960))-n)){e.timeoutHandle=Q(ha.bind(null,e),n);break}ha(e);break;case 5:ha(e);break;default:throw Error(l(329))}}return Xo(e,Yt()),e.callbackNode===t?Jo.bind(null,e):null}function Zo(e,t){for(t&=~xo,t&=~So,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 component higher in the tree to provide a loading indicator or placeholder to display.")}5!==vo&&(vo=2),s=_i(s,l),d=a;do{switch(d.tag){case 3:o=s,d.flags|=4096,t&=-t,d.lanes|=t,Cn(d,Ai(0,o,t));break e;case 1:o=s;var k=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof k.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===Ro||!Ro.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,Cn(d,Ri(d,o,t));break e}}d=d.return}while(null!==d)}pa(n)}catch(e){t=e,mo===n&&null!==n&&(mo=n=n.return);continue}break}}function la(){var e=uo.current;return uo.current=Qr,null===e?Qr:e}function sa(){0!==vo&&3!==vo||(vo=4),null===ho||0==(134217727&Eo)&&0==(134217727&So)||Zo(ho,yo)}function ua(e,t){var n=po;po|=16;var r=la();for(ho===e&&yo===t||oa(e,t);;)try{ca();break}catch(t){aa(e,t)}if(hn(),po=n,uo.current=r,null!==mo)throw Error(l(261));return ho=null,yo=0,vo}function ca(){for(;null!==mo;)da(mo)}function fa(){for(;null!==mo&&!Ot();)da(mo)}function da(e){var t=_o(e.alternate,e,go);e.memoizedProps=e.pendingProps,null===t?pa(e):mo=t,co.current=null}function pa(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=Ii(n,t,go)))return void(mo=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&go)||0==(4&n.mode)){for(var r=0,i=n.child;null!==i;)r|=i.lanes|i.childLanes,i=i.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1Yt()-No?oa(e,0):xo|=n),Xo(e,t)}function xa(e,t){0===t&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Xt()?1:2:(0===Wo&&(Wo=ko),0===(t=Nt(62914560&~Wo))&&(t=4194304)));var n=qo();null!==(e=Yo(e,t))&&(Pt(e,t,n),Xo(e,n))}function Ca(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),xa(e,n)}function Na(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(l(314))}null!==r&&r.delete(t),xa(e,n)}_o=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ut.current)Xr=!0;else{if(0==(n&r)){switch(Xr=!1,t.tag){case 3:si(t),lr();break;case 5:Kn(t);break;case 1:dt(t.type)&&yt(t);break;case 4:qn(t,t.stateNode.containerInfo);break;case 10:mn(t,t.memoizedProps.value);break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(at(Xn,1&Xn.current),t.flags|=64,null):0!=(n&t.child.childLanes)?hi(e,t,n):(at(Xn,1&Xn.current),null!==(t=Si(e,t,n))?t.sibling:null);at(Xn,1&Xn.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return Ei(e,t,n);t.flags|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null,i.lastEffect=null),at(Xn,Xn.current),r)break;return null;case 23:case 24:return t.lanes=0,ni(e,t,n)}return Si(e,t,n)}Xr=0!=(16384&e.flags)}else Xr=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=ft(t,st.current),bn(t,n),i=wr(null,t,r,e,i,n),t.flags|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,dt(r)){var o=!0;yt(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,kn(t);var a=r.getDerivedStateFromProps;"function"==typeof a&&_n(t,r,a,e),i.updater=Ln,t.stateNode=i,i._reactInternals=t,zn(t,r,e,n),t=li(null,t,r,!0,o,n)}else t.tag=0,Jr(null,t,i,n),t=t.child;return t;case 16:i=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=(o=i._init)(i._payload),t.type=i,o=t.tag=function(e){if("function"==typeof e)return Fa(e)?1:0;if(null!=e){if((e=e.$$typeof)===y)return 11;if(e===v)return 14;if(e===k)return 22}return 2}(i),a=un(i,e),o){case 0:t=ii(null,t,i,a,n);break e;case 1:t=ai(null,t,i,a,n);break e;case 11:t=Zr(null,t,i,a,n);break e;case 14:t=ei(null,t,i,un(i.type,a),r,n);break e;case 22:t=oi(null,t,i,e,n);break e}throw Error(l(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,ii(e,t,r,i=t.elementType===r?i:un(r,i),n);case 1:return r=t.type,i=t.pendingProps,ai(e,t,r,i=t.elementType===r?i:un(r,i),n);case 3:if(si(t),r=t.updateQueue,null===e||null===r)throw Error(l(282));if(r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,En(e,t),Nn(t,r,null,n),(r=t.memoizedState.element)===i)lr(),t=Si(e,t,n);else{if((o=(i=t.stateNode).hydrate)&&(J?(er=Ve(t.stateNode.containerInfo),Zn=t,o=tr=!0):o=!1),o){if(J&&null!=(e=i.mutableSourceEagerHydrationData))for(i=0;i=c&&o>=d&&i<=f&&a<=p){e.splice(t,1);break}if(!(r!==c||n.width!==u.width||pa)){d>o&&(u.height+=d-o,u.y=o),pi)){c>r&&(u.width+=c-r,u.x=r),fn&&(n=a)),a ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},r.getPublicRootInstance=function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:return O(e.child.stateNode);default:return e.child.stateNode}},r.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:qa,findFiberByHostInstance:e.findFiberByHostInstance||Ga,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t.isDisabled&&t.supportsFiber)try{bt=t.inject(e),vt=t}catch(e){}e=!0}return e},r.observeVisibleRects=function(e,t,n,r){if(!oe)throw Error(l(363));e=ao(e,t);var i=de(e,n,r).disconnect;return{disconnect:function(){i()}}},r.registerMutableSourceForHydration=function(e,t){var n=t._getVersion;n=n(t._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[t,n]:e.mutableSourceEagerHydrationData.push(t,n)},r.runWithPriority=function(e,t){var n=wt;try{return wt=e,t()}finally{wt=n}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(e,t){var n=po;po&=-2,po|=8;try{return e(t)}finally{0===(po=n)&&(Po(),tn())}},r.updateContainer=function(e,t,n,r){var i=t.current,o=qo(),a=Go(i);e:if(n){t:{if(_(n=n._reactInternals)!==n||1!==n.tag)throw Error(l(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(dt(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(l(171))}if(1===n.tag){var u=n.type;if(dt(u)){n=mt(n,u,s);break e}}n=s}else n=lt;return null===t.context?t.context=n:t.pendingContext=n,(t=Sn(o,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),xn(i,t),Ko(i,a,o),a},r}}).call(this,n("./node_modules/webpack/buildin/module.js")(e))},"./node_modules/@hippy/react-reconciler/index.js":function(e,t,n){"use strict";e.exports=n("./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js")},"./node_modules/object-assign/index.js":function(e,t,n){"use strict"; +e.exports=function(t){var r={},i=n("./node_modules/object-assign/index.js"),o=n("./node_modules/react/index.js"),a=n("./node_modules/scheduler/index.js");function l(e){for(var t="https://reactjs.org/docs/error-decoder.html?invariant="+e,n=1;n--l||i[a]!==o[l])return"\n"+i[a].replace(" at new "," at ")}while(1<=a&&0<=l);break}}}finally{et=!1,Error.prepareStackTrace=n}return(e=e?e.displayName||e.name:"")?Ze(e):""}var nt=[],rt=-1;function it(e){return{current:e}}function ot(e){0>rt||(e.current=nt[rt],nt[rt]=null,rt--)}function at(e,t){rt++,nt[rt]=e.current,e.current=t}var lt={},st=it(lt),ut=it(!1),ct=lt;function ft(e,t){var n=e.type.contextTypes;if(!n)return lt;var r=e.stateNode;if(r&&r.__reactInternalMemoizedUnmaskedChildContext===t)return r.__reactInternalMemoizedMaskedChildContext;var i,o={};for(i in n)o[i]=t[i];return r&&((e=e.stateNode).__reactInternalMemoizedUnmaskedChildContext=t,e.__reactInternalMemoizedMaskedChildContext=o),o}function dt(e){return null!=(e=e.childContextTypes)}function pt(){ot(ut),ot(st)}function ht(e,t,n){if(st.current!==lt)throw Error(l(168));at(st,t),at(ut,n)}function mt(e,t,n){var r=e.stateNode;if(e=t.childContextTypes,"function"!=typeof r.getChildContext)return n;for(var o in r=r.getChildContext())if(!(o in e))throw Error(l(108,I(t)||"Unknown",o));return i({},n,r)}function yt(e){return e=(e=e.stateNode)&&e.__reactInternalMemoizedMergedChildContext||lt,ct=st.current,at(st,e),at(ut,ut.current),!0}function gt(e,t,n){var r=e.stateNode;if(!r)throw Error(l(169));n?(e=mt(e,t,ct),r.__reactInternalMemoizedMergedChildContext=e,ot(ut),ot(st),at(st,e)):ot(ut),at(ut,n)}var bt=null,vt=null;(0,a.unstable_now)();var wt=0,kt=8;function Et(e){if(0!=(1&e))return kt=15,1;if(0!=(2&e))return kt=14,2;if(0!=(4&e))return kt=13,4;var t=24&e;return 0!==t?(kt=12,t):0!=(32&e)?(kt=11,32):0!==(t=192&e)?(kt=10,t):0!=(256&e)?(kt=9,256):0!==(t=3584&e)?(kt=8,t):0!=(4096&e)?(kt=7,4096):0!==(t=4186112&e)?(kt=6,t):0!==(t=62914560&e)?(kt=5,t):67108864&e?(kt=4,67108864):0!=(134217728&e)?(kt=3,134217728):0!==(t=805306368&e)?(kt=2,t):0!=(1073741824&e)?(kt=1,1073741824):(kt=8,e)}function St(e,t){var n=e.pendingLanes;if(0===n)return kt=0;var r=0,i=0,o=e.expiredLanes,a=e.suspendedLanes,l=e.pingedLanes;if(0!==o)r=o,i=kt=15;else if(0!==(o=134217727&n)){var s=o&~a;0!==s?(r=Et(s),i=kt):0!==(l&=o)&&(r=Et(l),i=kt)}else 0!==(o=n&~a)?(r=Et(o),i=kt):0!==l&&(r=Et(l),i=kt);if(0===r)return 0;if(r=n&((0>(r=31-_t(r))?0:1<n;n++)t.push(e);return t}function It(e,t,n){e.pendingLanes|=t;var r=t-1;e.suspendedLanes&=r,e.pingedLanes&=r,(e=e.eventTimes)[t=31-_t(t)]=n}var _t=Math.clz32?Math.clz32:function(e){return 0===e?32:31-(Lt(e)/At|0)|0},Lt=Math.log,At=Math.LN2;var Rt=a.unstable_runWithPriority,zt=a.unstable_scheduleCallback,Tt=a.unstable_cancelCallback,Ot=a.unstable_shouldYield,Ft=a.unstable_requestPaint,jt=a.unstable_now,Ht=a.unstable_getCurrentPriorityLevel,Mt=a.unstable_ImmediatePriority,Dt=a.unstable_UserBlockingPriority,Ut=a.unstable_NormalPriority,Bt=a.unstable_LowPriority,Wt=a.unstable_IdlePriority,Vt={},$t=void 0!==Ft?Ft:function(){},qt=null,Qt=null,Gt=!1,Kt=jt(),Yt=1e4>Kt?jt:function(){return jt()-Kt};function Xt(){switch(Ht()){case Mt:return 99;case Dt:return 98;case Ut:return 97;case Bt:return 96;case Wt:return 95;default:throw Error(l(332))}}function Jt(e){switch(e){case 99:return Mt;case 98:return Dt;case 97:return Ut;case 96:return Bt;case 95:return Wt;default:throw Error(l(332))}}function Zt(e,t){return e=Jt(e),Rt(e,t)}function en(e,t,n){return e=Jt(e),zt(e,t,n)}function tn(){if(null!==Qt){var e=Qt;Qt=null,Tt(e)}nn()}function nn(){if(!Gt&&null!==qt){Gt=!0;var e=0;try{var t=qt;Zt(99,(function(){for(;ed?(p=f,f=null):p=f.sibling;var h=y(i,f,l[d],s);if(null===h){null===f&&(f=p);break}e&&f&&null===h.alternate&&t(i,f),a=o(h,a,d),null===c?u=h:c.sibling=h,c=h,f=p}if(d===l.length)return n(i,f),u;if(null===f){for(;dp?(h=d,d=null):h=d.sibling;var v=y(i,d,b.value,u);if(null===v){null===d&&(d=h);break}e&&d&&null===v.alternate&&t(i,d),a=o(v,a,p),null===f?c=v:f.sibling=v,f=v,d=h}if(b.done)return n(i,d),c;if(null===d){for(;!b.done;p++,b=s.next())null!==(b=m(i,b.value,u))&&(a=o(b,a,p),null===f?c=b:f.sibling=b,f=b);return c}for(d=r(i,d);!b.done;p++,b=s.next())null!==(b=g(d,i,p,b.value,u))&&(e&&null!==b.alternate&&d.delete(null===b.key?p:b.key),a=o(b,a,p),null===f?c=b:f.sibling=b,f=b);return e&&d.forEach((function(e){return t(i,e)})),c}return function e(r,o,s,d){var p="object"==typeof s&&null!==s&&s.type===f&&null===s.key;p&&(s=s.props.children);var h="object"==typeof s&&null!==s;if(h)switch(s.$$typeof){case u:e:{for(h=s.key,p=o;null!==p;){if(p.key===h){switch(p.tag){case 7:if(s.type===f){n(r,p.sibling),(o=i(p,s.props.children)).return=r,r=o;break e}break;case 22:if((h=s.type).$$typeof===w&&(h=Hn(h)),h.$$typeof===k&&h._render===p.type._render){n(r,p.sibling),(o=i(p,s.props)).type=h,o.return=r,r=o;break e}default:if(p.elementType===s.type){n(r,p.sibling),(o=i(p,s.props)).ref=Fn(r,p,s),o.return=r,r=o;break e}}n(r,p);break}t(r,p),p=p.sibling}s.type===f?((o=Ma(s.props.children,r.mode,d,s.key)).return=r,r=o):((d=Ha(s.type,s.key,s.props,null,r.mode,d)).ref=Fn(r,o,s),d.return=r,r=d)}return a(r);case c:e:{for(p=s.key;null!==o;){if(o.key===p){if(4===o.tag&&o.stateNode.containerInfo===s.containerInfo&&o.stateNode.implementation===s.implementation){n(r,o.sibling),(o=i(o,s.children||[])).return=r,r=o;break e}n(r,o);break}t(r,o),o=o.sibling}(o=Ba(s,r.mode,d)).return=r,r=o}return a(r);case w:return e(r,o,(p=s._init)(s._payload),d)}if("string"==typeof s||"number"==typeof s)return s=""+s,null!==o&&6===o.tag?(n(r,o.sibling),(o=i(o,s)).return=r,r=o):(n(r,o),(o=Ua(s,r.mode,d)).return=r,r=o),a(r);if(On(s))return b(r,o,s,d);if(P(s))return v(r,o,s,d);if(h&&jn(r,s),void 0===s&&!p)switch(r.tag){case 1:case 22:case 0:case 11:case 15:throw Error(l(152,I(r.type)||"Component"))}return n(r,o)}}var Dn=Mn(!0),Un=Mn(!1),Bn={},Wn=it(Bn),Vn=it(Bn),$n=it(Bn);function qn(e){if(e===Bn)throw Error(l(174));return e}function Qn(e,t){at($n,t),at(Vn,e),at(Wn,Bn),e=F(t),ot(Wn),at(Wn,e)}function Gn(){ot(Wn),ot(Vn),ot($n)}function Kn(e){var t=qn($n.current),n=qn(Wn.current);n!==(t=j(n,e.type,t))&&(at(Vn,e),at(Wn,t))}function Yn(e){Vn.current===e&&(ot(Wn),ot(Vn))}var Xn=it(0);function Jn(e){for(var t=e;null!==t;){if(13===t.tag){var n=t.memoizedState;if(null!==n&&(null===(n=n.dehydrated)||De(n)||Ue(n)))return t}else if(19===t.tag&&void 0!==t.memoizedProps.revealOrder){if(0!=(64&t.flags))return t}else if(null!==t.child){t.child.return=t,t=t.child;continue}if(t===e)break;for(;null===t.sibling;){if(null===t.return||t.return===e)return null;t=t.return}t.sibling.return=t.return,t=t.sibling}return null}var Zn=null,er=null,tr=!1;function nr(e,t){var n=Oa(5,null,null,0);n.elementType="DELETED",n.type="DELETED",n.stateNode=t,n.return=e,n.flags=8,null!==e.lastEffect?(e.lastEffect.nextEffect=n,e.lastEffect=n):e.firstEffect=e.lastEffect=n}function rr(e,t){switch(e.tag){case 5:return null!==(t=je(t,e.type,e.pendingProps))&&(e.stateNode=t,!0);case 6:return null!==(t=He(t,e.pendingProps))&&(e.stateNode=t,!0);case 13:if(null!==(t=Me(t))){e.memoizedState={dehydrated:t,retryLane:1073741824};var n=Oa(18,null,null,0);return n.stateNode=t,n.return=e,e.child=n,!0}return!1;default:return!1}}function ir(e){if(tr){var t=er;if(t){var n=t;if(!rr(e,t)){if(!(t=We(n))||!rr(e,t))return e.flags=-1025&e.flags|2,tr=!1,void(Zn=e);nr(Zn,n)}Zn=e,er=Ve(t)}else e.flags=-1025&e.flags|2,tr=!1,Zn=e}}function or(e){for(e=e.return;null!==e&&5!==e.tag&&3!==e.tag&&13!==e.tag;)e=e.return;Zn=e}function ar(e){if(!J||e!==Zn)return!1;if(!tr)return or(e),tr=!0,!1;var t=e.type;if(5!==e.tag||"head"!==t&&"body"!==t&&!V(t,e.memoizedProps))for(t=er;t;)nr(e,t),t=We(t);if(or(e),13===e.tag){if(!J)throw Error(l(316));if(!(e=null!==(e=e.memoizedState)?e.dehydrated:null))throw Error(l(317));er=Ge(e)}else er=Zn?We(e.stateNode):null;return!0}function lr(){J&&(er=Zn=null,tr=!1)}var sr=[];function ur(){for(var e=0;eo))throw Error(l(301));o+=1,mr=hr=null,t.updateQueue=null,cr.current=Kr,e=n(r,i)}while(gr)}if(cr.current=qr,t=null!==hr&&null!==hr.next,dr=0,mr=hr=pr=null,yr=!1,t)throw Error(l(300));return e}function kr(e,t,n){t.updateQueue=e.updateQueue,t.flags&=-517,e.lanes&=~n}function Er(){var e={memoizedState:null,baseState:null,baseQueue:null,queue:null,next:null};return null===mr?pr.memoizedState=mr=e:mr=mr.next=e,mr}function Sr(){if(null===hr){var e=pr.alternate;e=null!==e?e.memoizedState:null}else e=hr.next;var t=null===mr?pr.memoizedState:mr.next;if(null!==t)mr=t,hr=e;else{if(null===e)throw Error(l(310));e={memoizedState:(hr=e).memoizedState,baseState:hr.baseState,baseQueue:hr.baseQueue,queue:hr.queue,next:null},null===mr?pr.memoizedState=mr=e:mr=mr.next=e}return mr}function Cr(e,t){return"function"==typeof t?t(e):t}function xr(e){var t=Sr(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=hr,i=r.baseQueue,o=n.pending;if(null!==o){if(null!==i){var a=i.next;i.next=o.next,o.next=a}r.baseQueue=i=o,n.pending=null}if(null!==i){i=i.next,r=r.baseState;var s=a=o=null,u=i;do{var c=u.lane;if((dr&c)===c)null!==s&&(s=s.next={lane:0,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null}),r=u.eagerReducer===e?u.eagerState:e(r,u.action);else{var f={lane:c,action:u.action,eagerReducer:u.eagerReducer,eagerState:u.eagerState,next:null};null===s?(a=s=f,o=r):s=s.next=f,pr.lanes|=c,Eo|=c}u=u.next}while(null!==u&&u!==i);null===s?o=r:s.next=a,on(r,t.memoizedState)||(Xr=!0),t.memoizedState=r,t.baseState=o,t.baseQueue=s,n.lastRenderedState=r}return[t.memoizedState,n.dispatch]}function Nr(e){var t=Sr(),n=t.queue;if(null===n)throw Error(l(311));n.lastRenderedReducer=e;var r=n.dispatch,i=n.pending,o=t.memoizedState;if(null!==i){n.pending=null;var a=i=i.next;do{o=e(o,a.action),a=a.next}while(a!==i);on(o,t.memoizedState)||(Xr=!0),t.memoizedState=o,null===t.baseQueue&&(t.baseState=o),n.lastRenderedState=o}return[o,r]}function Pr(e,t,n){var r=t._getVersion;r=r(t._source);var i=K?t._workInProgressVersionPrimary:t._workInProgressVersionSecondary;if(null!==i?e=i===r:(e=e.mutableReadLanes,(e=(dr&e)===e)&&(K?t._workInProgressVersionPrimary=r:t._workInProgressVersionSecondary=r,sr.push(t))),e)return n(t._source);throw sr.push(t),Error(l(350))}function Ir(e,t,n,r){var i=ho;if(null===i)throw Error(l(349));var o=t._getVersion,a=o(t._source),s=cr.current,u=s.useState((function(){return Pr(i,t,n)})),c=u[1],f=u[0];u=mr;var d=e.memoizedState,p=d.refs,h=p.getSnapshot,m=d.source;d=d.subscribe;var y=pr;return e.memoizedState={refs:p,source:t,subscribe:r},s.useEffect((function(){p.getSnapshot=n,p.setSnapshot=c;var e=o(t._source);if(!on(a,e)){e=n(t._source),on(f,e)||(c(e),e=Go(y),i.mutableReadLanes|=e&i.pendingLanes),e=i.mutableReadLanes,i.entangledLanes|=e;for(var r=i.entanglements,l=e;0n?98:n,(function(){e(!0)})),Zt(97Po&&(t.flags|=64,i=!0,Ni(r,!1),t.lanes=33554432)}else{if(!i)if(null!==(e=Jn(o))){if(t.flags|=64,i=!0,null!==(e=e.updateQueue)&&(t.updateQueue=e,t.flags|=4),Ni(r,!0),null===r.tail&&"hidden"===r.tailMode&&!o.alternate&&!tr)return null!==(t=t.lastEffect=r.lastEffect)&&(t.nextEffect=null),null}else 2*Yt()-r.renderingStartTime>Po&&1073741824!==n&&(t.flags|=64,i=!0,Ni(r,!1),t.lanes=33554432);r.isBackwards?(o.sibling=t.child,t.child=o):(null!==(e=r.last)?e.sibling=o:t.child=o,r.last=o)}return null!==r.tail?(e=r.tail,r.rendering=e,r.tail=e.sibling,r.lastEffect=t.lastEffect,r.renderingStartTime=Yt(),e.sibling=null,t=Xn.current,at(Xn,i?1&t|2:1&t),e):null;case 22:return null;case 23:case 24:return ia(),null!==e&&null!==e.memoizedState!=(null!==t.memoizedState)&&"unstable-defer-without-hiding"!==r.mode&&(t.flags|=4),null}throw Error(l(156,t.tag))}function Ii(e){switch(e.tag){case 1:dt(e.type)&&pt();var t=e.flags;return 4096&t?(e.flags=-4097&t|64,e):null;case 3:if(Gn(),ot(ut),ot(st),ur(),0!=(64&(t=e.flags)))throw Error(l(285));return e.flags=-4097&t|64,e;case 5:return Yn(e),null;case 13:if(ot(Xn),null!==(t=e.memoizedState)&&null!==t.dehydrated){if(null===e.alternate)throw Error(l(340));lr()}return 4096&(t=e.flags)?(e.flags=-4097&t|64,e):null;case 19:return ot(Xn),null;case 4:return Gn(),null;case 10:return yn(e),null;case 23:case 24:return ia(),null;default:return null}}function _i(e,t){try{var n="",r=t;do{n+=sn(r),r=r.return}while(r);var i=n}catch(e){i="\nError generating stack: "+e.message+"\n"+e.stack}return{value:e,source:t,stack:i}}function Li(e,t){try{console.error(t.value)}catch(e){setTimeout((function(){throw e}))}}var Ai="function"==typeof WeakMap?WeakMap:Map;function Ri(e,t,n){(n=Sn(-1,n)).tag=3,n.payload={element:null};var r=t.value;return n.callback=function(){Ao||(Ao=!0,Ro=r),Li(0,t)},n}function zi(e,t,n){(n=Sn(-1,n)).tag=3;var r=e.type.getDerivedStateFromError;if("function"==typeof r){var i=t.value;n.payload=function(){return Li(0,t),r(i)}}var o=e.stateNode;return null!==o&&"function"==typeof o.componentDidCatch&&(n.callback=function(){"function"!=typeof r&&(null===zo?zo=new Set([this]):zo.add(this),Li(0,t));var e=t.stack;this.componentDidCatch(t.value,{componentStack:null!==e?e:""})}),n}var Ti="function"==typeof WeakSet?WeakSet:Set;function Oi(e){var t=e.ref;if(null!==t)if("function"==typeof t)try{t(null)}catch(t){Ea(e,t)}else t.current=null}function Fi(e,t){switch(t.tag){case 0:case 11:case 15:case 22:return;case 1:if(256&t.flags&&null!==e){var n=e.memoizedProps,r=e.memoizedState;t=(e=t.stateNode).getSnapshotBeforeUpdate(t.elementType===t.type?n:un(t.type,n),r),e.__reactInternalSnapshotBeforeUpdate=t}return;case 3:return void(Y&&256&t.flags&&Pe(t.stateNode.containerInfo));case 5:case 6:case 4:case 17:return}throw Error(l(163))}function ji(e,t){if(null!==(t=null!==(t=t.updateQueue)?t.lastEffect:null)){var n=t=t.next;do{if((n.tag&e)===e){var r=n.destroy;n.destroy=void 0,void 0!==r&&r()}n=n.next}while(n!==t)}}function Hi(e,t,n){switch(n.tag){case 0:case 11:case 15:case 22:if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{if(3==(3&e.tag)){var r=e.create;e.destroy=r()}e=e.next}while(e!==t)}if(null!==(t=null!==(t=n.updateQueue)?t.lastEffect:null)){e=t=t.next;do{var i=e;r=i.next,0!=(4&(i=i.tag))&&0!=(1&i)&&(va(n,e),ba(n,e)),e=r}while(e!==t)}return;case 1:return e=n.stateNode,4&n.flags&&(null===t?e.componentDidMount():(r=n.elementType===n.type?t.memoizedProps:un(n.type,t.memoizedProps),e.componentDidUpdate(r,t.memoizedState,e.__reactInternalSnapshotBeforeUpdate))),void(null!==(t=n.updateQueue)&&Pn(n,t,e));case 3:if(null!==(t=n.updateQueue)){if(e=null,null!==n.child)switch(n.child.tag){case 5:e=O(n.child.stateNode);break;case 1:e=n.child.stateNode}Pn(n,t,e)}return;case 5:return e=n.stateNode,void(null===t&&4&n.flags&&ye(e,n.type,n.memoizedProps,n));case 6:case 4:case 12:return;case 13:return void(J&&null===n.memoizedState&&(n=n.alternate,null!==n&&(n=n.memoizedState,null!==n&&(n=n.dehydrated,null!==n&&Ye(n)))));case 19:case 17:case 20:case 21:case 23:case 24:return}throw Error(l(163))}function Mi(e,t){if(Y)for(var n=e;;){if(5===n.tag){var r=n.stateNode;t?Se(r):xe(n.stateNode,n.memoizedProps)}else if(6===n.tag)r=n.stateNode,t?Ce(r):Ne(r,n.memoizedProps);else if((23!==n.tag&&24!==n.tag||null===n.memoizedState||n===e)&&null!==n.child){n.child.return=n,n=n.child;continue}if(n===e)break;for(;null===n.sibling;){if(null===n.return||n.return===e)return;n=n.return}n.sibling.return=n.return,n=n.sibling}}function Di(e,t){if(vt&&"function"==typeof vt.onCommitFiberUnmount)try{vt.onCommitFiberUnmount(bt,t)}catch(e){}switch(t.tag){case 0:case 11:case 14:case 15:case 22:if(null!==(e=t.updateQueue)&&null!==(e=e.lastEffect)){var n=e=e.next;do{var r=n,i=r.destroy;if(r=r.tag,void 0!==i)if(0!=(4&r))va(t,n);else{r=t;try{i()}catch(e){Ea(r,e)}}n=n.next}while(n!==e)}break;case 1:if(Oi(t),"function"==typeof(e=t.stateNode).componentWillUnmount)try{e.props=t.memoizedProps,e.state=t.memoizedState,e.componentWillUnmount()}catch(e){Ea(t,e)}break;case 5:Oi(t);break;case 4:Y?$i(e,t):X&&X&&(t=t.stateNode.containerInfo,e=Ae(t),Te(t,e))}}function Ui(e,t){for(var n=t;;)if(Di(e,n),null===n.child||Y&&4===n.tag){if(n===t)break;for(;null===n.sibling;){if(null===n.return||n.return===t)return;n=n.return}n.sibling.return=n.return,n=n.sibling}else n.child.return=n,n=n.child}function Bi(e){e.alternate=null,e.child=null,e.dependencies=null,e.firstEffect=null,e.lastEffect=null,e.memoizedProps=null,e.memoizedState=null,e.pendingProps=null,e.return=null,e.updateQueue=null}function Wi(e){return 5===e.tag||3===e.tag||4===e.tag}function Vi(e){if(Y){e:{for(var t=e.return;null!==t;){if(Wi(t))break e;t=t.return}throw Error(l(160))}var n=t;switch(t=n.stateNode,n.tag){case 5:var r=!1;break;case 3:case 4:t=t.containerInfo,r=!0;break;default:throw Error(l(161))}16&n.flags&&(Ee(t),n.flags&=-17);e:t:for(n=e;;){for(;null===n.sibling;){if(null===n.return||Wi(n.return)){n=null;break e}n=n.return}for(n.sibling.return=n.return,n=n.sibling;5!==n.tag&&6!==n.tag&&18!==n.tag;){if(2&n.flags)continue t;if(null===n.child||4===n.tag)continue t;n.child.return=n,n=n.child}if(!(2&n.flags)){n=n.stateNode;break e}}r?function e(t,n,r){var i=t.tag,o=5===i||6===i;if(o)t=o?t.stateNode:t.stateNode.instance,n?ve(r,t,n):he(r,t);else if(4!==i&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t):function e(t,n,r){var i=t.tag,o=5===i||6===i;if(o)t=o?t.stateNode:t.stateNode.instance,n?be(r,t,n):pe(r,t);else if(4!==i&&null!==(t=t.child))for(e(t,n,r),t=t.sibling;null!==t;)e(t,n,r),t=t.sibling}(e,n,t)}}function $i(e,t){for(var n,r,i=t,o=!1;;){if(!o){o=i.return;e:for(;;){if(null===o)throw Error(l(160));switch(n=o.stateNode,o.tag){case 5:r=!1;break e;case 3:case 4:n=n.containerInfo,r=!0;break e}o=o.return}o=!0}if(5===i.tag||6===i.tag)Ui(e,i),r?ke(n,i.stateNode):we(n,i.stateNode);else if(18===i.tag)r?Je(n,i.stateNode):Xe(n,i.stateNode);else if(4===i.tag){if(null!==i.child){n=i.stateNode.containerInfo,r=!0,i.child.return=i,i=i.child;continue}}else if(Di(e,i),null!==i.child){i.child.return=i,i=i.child;continue}if(i===t)break;for(;null===i.sibling;){if(null===i.return||i.return===t)return;4===(i=i.return).tag&&(o=!1)}i.sibling.return=i.return,i=i.sibling}}function qi(e,t){if(Y){switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void ji(3,t);case 1:return;case 5:var n=t.stateNode;if(null!=n){var r=t.memoizedProps;e=null!==e?e.memoizedProps:r;var i=t.type,o=t.updateQueue;t.updateQueue=null,null!==o&&ge(n,o,i,e,r,t)}return;case 6:if(null===t.stateNode)throw Error(l(162));return n=t.memoizedProps,void me(t.stateNode,null!==e?e.memoizedProps:n,n);case 3:return void(J&&(t=t.stateNode,t.hydrate&&(t.hydrate=!1,Ke(t.containerInfo))));case 12:return;case 13:return Qi(t),void Gi(t);case 19:return void Gi(t);case 17:return;case 23:case 24:return void Mi(t,null!==t.memoizedState)}throw Error(l(163))}switch(t.tag){case 0:case 11:case 14:case 15:case 22:return void ji(3,t);case 12:return;case 13:return Qi(t),void Gi(t);case 19:return void Gi(t);case 3:J&&((n=t.stateNode).hydrate&&(n.hydrate=!1,Ke(n.containerInfo)));break;case 23:case 24:return}e:if(X){switch(t.tag){case 1:case 5:case 6:case 20:break e;case 3:case 4:t=t.stateNode,Te(t.containerInfo,t.pendingChildren);break e}throw Error(l(163))}}function Qi(e){null!==e.memoizedState&&(No=Yt(),Y&&Mi(e.child,!0))}function Gi(e){var t=e.updateQueue;if(null!==t){e.updateQueue=null;var n=e.stateNode;null===n&&(n=e.stateNode=new Ti),t.forEach((function(t){var r=Na.bind(null,e,t);n.has(t)||(n.add(t),t.then(r,r))}))}}function Ki(e,t){return null!==e&&(null===(e=e.memoizedState)||null!==e.dehydrated)&&(null!==(t=t.memoizedState)&&null===t.dehydrated)}var Yi=0,Xi=1,Ji=2,Zi=3,eo=4;if("function"==typeof Symbol&&Symbol.for){var to=Symbol.for;Yi=to("selector.component"),Xi=to("selector.has_pseudo_class"),Ji=to("selector.role"),Zi=to("selector.test_id"),eo=to("selector.text")}function no(e){var t=Z(e);if(null!=t){if("string"!=typeof t.memoizedProps["data-testname"])throw Error(l(364));return t}if(null===(e=ae(e)))throw Error(l(362));return e.stateNode.current}function ro(e,t){switch(t.$$typeof){case Yi:if(e.type===t.value)return!0;break;case Xi:e:{t=t.value,e=[e,0];for(var n=0;n";case Xi:return":has("+(io(e)||"")+")";case Ji:return'[role="'+e.value+'"]';case eo:return'"'+e.value+'"';case Zi:return'[data-testname="'+e.value+'"]';default:throw Error(l(365,e))}}function oo(e,t){var n=[];e=[e,0];for(var r=0;ri&&(i=a),n&=~o}if(n=i,10<(n=(120>(n=Yt()-n)?120:480>n?480:1080>n?1080:1920>n?1920:3e3>n?3e3:4320>n?4320:1960*so(n/1960))-n)){e.timeoutHandle=q(ha.bind(null,e),n);break}ha(e);break;case 5:ha(e);break;default:throw Error(l(329))}}return Xo(e,Yt()),e.callbackNode===t?Jo.bind(null,e):null}function Zo(e,t){for(t&=~Co,t&=~So,e.suspendedLanes|=t,e.pingedLanes&=~t,e=e.expirationTimes;0 component higher in the tree to provide a loading indicator or placeholder to display.")}5!==vo&&(vo=2),s=_i(s,l),d=a;do{switch(d.tag){case 3:o=s,d.flags|=4096,t&=-t,d.lanes|=t,xn(d,Ri(0,o,t));break e;case 1:o=s;var k=d.type,E=d.stateNode;if(0==(64&d.flags)&&("function"==typeof k.getDerivedStateFromError||null!==E&&"function"==typeof E.componentDidCatch&&(null===zo||!zo.has(E)))){d.flags|=4096,t&=-t,d.lanes|=t,xn(d,zi(d,o,t));break e}}d=d.return}while(null!==d)}pa(n)}catch(e){t=e,mo===n&&null!==n&&(mo=n=n.return);continue}break}}function la(){var e=uo.current;return uo.current=qr,null===e?qr:e}function sa(){0!==vo&&3!==vo||(vo=4),null===ho||0==(134217727&Eo)&&0==(134217727&So)||Zo(ho,yo)}function ua(e,t){var n=po;po|=16;var r=la();for(ho===e&&yo===t||oa(e,t);;)try{ca();break}catch(t){aa(e,t)}if(hn(),po=n,uo.current=r,null!==mo)throw Error(l(261));return ho=null,yo=0,vo}function ca(){for(;null!==mo;)da(mo)}function fa(){for(;null!==mo&&!Ot();)da(mo)}function da(e){var t=_o(e.alternate,e,go);e.memoizedProps=e.pendingProps,null===t?pa(e):mo=t,co.current=null}function pa(e){var t=e;do{var n=t.alternate;if(e=t.return,0==(2048&t.flags)){if(null!==(n=Pi(n,t,go)))return void(mo=n);if(24!==(n=t).tag&&23!==n.tag||null===n.memoizedState||0!=(1073741824&go)||0==(4&n.mode)){for(var r=0,i=n.child;null!==i;)r|=i.lanes|i.childLanes,i=i.sibling;n.childLanes=r}null!==e&&0==(2048&e.flags)&&(null===e.firstEffect&&(e.firstEffect=t.firstEffect),null!==t.lastEffect&&(null!==e.lastEffect&&(e.lastEffect.nextEffect=t.firstEffect),e.lastEffect=t.lastEffect),1Yt()-No?oa(e,0):Co|=n),Xo(e,t)}function Ca(e,t){0===t&&(0==(2&(t=e.mode))?t=1:0==(4&t)?t=99===Xt()?1:2:(0===Wo&&(Wo=ko),0===(t=Nt(62914560&~Wo))&&(t=4194304)));var n=Qo();null!==(e=Yo(e,t))&&(It(e,t,n),Xo(e,n))}function xa(e){var t=e.memoizedState,n=0;null!==t&&(n=t.retryLane),Ca(e,n)}function Na(e,t){var n=0;switch(e.tag){case 13:var r=e.stateNode,i=e.memoizedState;null!==i&&(n=i.retryLane);break;case 19:r=e.stateNode;break;default:throw Error(l(314))}null!==r&&r.delete(t),Ca(e,n)}_o=function(e,t,n){var r=t.lanes;if(null!==e)if(e.memoizedProps!==t.pendingProps||ut.current)Xr=!0;else{if(0==(n&r)){switch(Xr=!1,t.tag){case 3:si(t),lr();break;case 5:Kn(t);break;case 1:dt(t.type)&&yt(t);break;case 4:Qn(t,t.stateNode.containerInfo);break;case 10:mn(t,t.memoizedProps.value);break;case 13:if(null!==(r=t.memoizedState))return null!==r.dehydrated?(at(Xn,1&Xn.current),t.flags|=64,null):0!=(n&t.child.childLanes)?hi(e,t,n):(at(Xn,1&Xn.current),null!==(t=Si(e,t,n))?t.sibling:null);at(Xn,1&Xn.current);break;case 19:if(r=0!=(n&t.childLanes),0!=(64&e.flags)){if(r)return Ei(e,t,n);t.flags|=64}var i=t.memoizedState;if(null!==i&&(i.rendering=null,i.tail=null,i.lastEffect=null),at(Xn,Xn.current),r)break;return null;case 23:case 24:return t.lanes=0,ni(e,t,n)}return Si(e,t,n)}Xr=0!=(16384&e.flags)}else Xr=!1;switch(t.lanes=0,t.tag){case 2:if(r=t.type,null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=ft(t,st.current),bn(t,n),i=wr(null,t,r,e,i,n),t.flags|=1,"object"==typeof i&&null!==i&&"function"==typeof i.render&&void 0===i.$$typeof){if(t.tag=1,t.memoizedState=null,t.updateQueue=null,dt(r)){var o=!0;yt(t)}else o=!1;t.memoizedState=null!==i.state&&void 0!==i.state?i.state:null,kn(t);var a=r.getDerivedStateFromProps;"function"==typeof a&&_n(t,r,a,e),i.updater=Ln,t.stateNode=i,i._reactInternals=t,Tn(t,r,e,n),t=li(null,t,r,!0,o,n)}else t.tag=0,Jr(null,t,i,n),t=t.child;return t;case 16:i=t.elementType;e:{switch(null!==e&&(e.alternate=null,t.alternate=null,t.flags|=2),e=t.pendingProps,i=(o=i._init)(i._payload),t.type=i,o=t.tag=function(e){if("function"==typeof e)return Fa(e)?1:0;if(null!=e){if((e=e.$$typeof)===y)return 11;if(e===v)return 14;if(e===k)return 22}return 2}(i),a=un(i,e),o){case 0:t=ii(null,t,i,a,n);break e;case 1:t=ai(null,t,i,a,n);break e;case 11:t=Zr(null,t,i,a,n);break e;case 14:t=ei(null,t,i,un(i.type,a),r,n);break e;case 22:t=oi(null,t,i,e,n);break e}throw Error(l(306,i,""))}return t;case 0:return r=t.type,i=t.pendingProps,ii(e,t,r,i=t.elementType===r?i:un(r,i),n);case 1:return r=t.type,i=t.pendingProps,ai(e,t,r,i=t.elementType===r?i:un(r,i),n);case 3:if(si(t),r=t.updateQueue,null===e||null===r)throw Error(l(282));if(r=t.pendingProps,i=null!==(i=t.memoizedState)?i.element:null,En(e,t),Nn(t,r,null,n),(r=t.memoizedState.element)===i)lr(),t=Si(e,t,n);else{if((o=(i=t.stateNode).hydrate)&&(J?(er=Ve(t.stateNode.containerInfo),Zn=t,o=tr=!0):o=!1),o){if(J&&null!=(e=i.mutableSourceEagerHydrationData))for(i=0;i=c&&o>=d&&i<=f&&a<=p){e.splice(t,1);break}if(!(r!==c||n.width!==u.width||pa)){d>o&&(u.height+=d-o,u.y=o),pi)){c>r&&(u.width+=c-r,u.x=r),fn&&(n=a)),a ")+"\n\nNo matching component was found for:\n "+e.join(" > ")}return null},r.getPublicRootInstance=function(e){if(!(e=e.current).child)return null;switch(e.child.tag){case 5:return O(e.child.stateNode);default:return e.child.stateNode}},r.injectIntoDevTools=function(e){if(e={bundleType:e.bundleType,version:e.version,rendererPackageName:e.rendererPackageName,rendererConfig:e.rendererConfig,overrideHookState:null,overrideHookStateDeletePath:null,overrideHookStateRenamePath:null,overrideProps:null,overridePropsDeletePath:null,overridePropsRenamePath:null,setSuspenseHandler:null,scheduleUpdate:null,currentDispatcherRef:s.ReactCurrentDispatcher,findHostInstanceByFiber:Qa,findFiberByHostInstance:e.findFiberByHostInstance||Ga,findHostInstancesForRefresh:null,scheduleRefresh:null,scheduleRoot:null,setRefreshHandler:null,getCurrentFiber:null},"undefined"==typeof __REACT_DEVTOOLS_GLOBAL_HOOK__)e=!1;else{var t=__REACT_DEVTOOLS_GLOBAL_HOOK__;if(!t.isDisabled&&t.supportsFiber)try{bt=t.inject(e),vt=t}catch(e){}e=!0}return e},r.observeVisibleRects=function(e,t,n,r){if(!oe)throw Error(l(363));e=ao(e,t);var i=de(e,n,r).disconnect;return{disconnect:function(){i()}}},r.registerMutableSourceForHydration=function(e,t){var n=t._getVersion;n=n(t._source),null==e.mutableSourceEagerHydrationData?e.mutableSourceEagerHydrationData=[t,n]:e.mutableSourceEagerHydrationData.push(t,n)},r.runWithPriority=function(e,t){var n=wt;try{return wt=e,t()}finally{wt=n}},r.shouldSuspend=function(){return!1},r.unbatchedUpdates=function(e,t){var n=po;po&=-2,po|=8;try{return e(t)}finally{0===(po=n)&&(Io(),tn())}},r.updateContainer=function(e,t,n,r){var i=t.current,o=Qo(),a=Go(i);e:if(n){t:{if(_(n=n._reactInternals)!==n||1!==n.tag)throw Error(l(170));var s=n;do{switch(s.tag){case 3:s=s.stateNode.context;break t;case 1:if(dt(s.type)){s=s.stateNode.__reactInternalMemoizedMergedChildContext;break t}}s=s.return}while(null!==s);throw Error(l(171))}if(1===n.tag){var u=n.type;if(dt(u)){n=mt(n,u,s);break e}}n=s}else n=lt;return null===t.context?t.context=n:t.pendingContext=n,(t=Sn(o,a)).payload={element:e},null!==(r=void 0===r?null:r)&&(t.callback=r),Cn(i,t),Ko(i,a,o),a},r}}).call(this,n("./node_modules/webpack/buildin/module.js")(e))},"./node_modules/@hippy/react-reconciler/index.js":function(e,t,n){"use strict";e.exports=n("./node_modules/@hippy/react-reconciler/cjs/react-reconciler.production.min.js")},"./node_modules/object-assign/index.js":function(e,t,n){"use strict"; /* object-assign (c) Sindre Sorhus @license MIT -*/var r=Object.getOwnPropertySymbols,i=Object.prototype.hasOwnProperty,o=Object.prototype.propertyIsEnumerable;function a(e){if(null==e)throw new TypeError("Object.assign cannot be called with null or undefined");return Object(e)}e.exports=function(){try{if(!Object.assign)return!1;var e=new String("abc");if(e[5]="de","5"===Object.getOwnPropertyNames(e)[0])return!1;for(var t={},n=0;n<10;n++)t["_"+String.fromCharCode(n)]=n;if("0123456789"!==Object.getOwnPropertyNames(t).map((function(e){return t[e]})).join(""))return!1;var r={};return"abcdefghijklmnopqrst".split("").forEach((function(e){r[e]=e})),"abcdefghijklmnopqrst"===Object.keys(Object.assign({},r)).join("")}catch(e){return!1}}()?Object.assign:function(e,t){for(var n,l,s=a(e),u=1;u1)for(var n=1;n=w},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0N(a,n))void 0!==s&&0>N(s,a)?(e[r]=s,e[l]=n,r=l):(e[r]=a,e[o]=n,r=o);else{if(!(void 0!==s&&0>N(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function N(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var I=[],P=[],_=1,L=null,T=3,A=!1,R=!1,z=!1;function O(e){for(var t=x(P);null!==t;){if(null===t.callback)C(P);else{if(!(t.startTime<=e))break;C(P),t.sortIndex=t.expirationTime,S(I,t)}t=x(P)}}function F(e){if(z=!1,O(e),!R)if(null!==x(I))R=!0,r(j);else{var t=x(P);null!==t&&i(F,t.startTime-e)}}function j(e,n){R=!1,z&&(z=!1,o()),A=!0;var r=T;try{for(O(n),L=x(I);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=L.callback;if("function"==typeof a){L.callback=null,T=L.priorityLevel;var l=a(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===x(I)&&C(I),O(n)}else C(I);L=x(I)}if(null!==L)var s=!0;else{var u=x(P);null!==u&&i(F,u.startTime-n),s=!1}return s}finally{L=null,T=r,A=!1}}var H=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){R||A||(R=!0,r(j))},t.unstable_getCurrentPriorityLevel=function(){return T},t.unstable_getFirstCallbackNode=function(){return x(I)},t.unstable_next=function(e){switch(T){case 1:case 2:case 3:var t=3;break;default:t=T}var n=T;T=t;try{return e()}finally{T=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=H,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=T;T=e;try{return t()}finally{T=n}},t.unstable_scheduleCallback=function(e,n,a){var l=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0l?(e.sortIndex=a,S(P,e),null===x(I)&&e===x(P)&&(z?o():z=!0,i(F,a-l))):(e.sortIndex=s,S(I,e),R||A||(R=!0,r(j))),e},t.unstable_wrapCallback=function(e){var t=T;return function(){var n=T;T=t;try{return e.apply(this,arguments)}finally{T=n}}}},"./node_modules/scheduler/index.js":function(e,t,n){"use strict";e.exports=n("./node_modules/scheduler/cjs/scheduler.production.min.js")},"./node_modules/webpack/buildin/global.js":function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},"./node_modules/webpack/buildin/module.js":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"./scripts/vendor.js":function(e,t,n){n("../../packages/hippy-react/dist/index.js")},0:function(e,t,n){e.exports=n}}); \ No newline at end of file + */var r,i,o,a;if("object"==typeof performance&&"function"==typeof performance.now){var l=performance;t.unstable_now=function(){return l.now()}}else{var s=Date,u=s.now();t.unstable_now=function(){return s.now()-u}}if("undefined"==typeof window||"function"!=typeof MessageChannel){var c=null,f=null,d=function(){if(null!==c)try{var e=t.unstable_now();c(!0,e),c=null}catch(e){throw setTimeout(d,0),e}};r=function(e){null!==c?setTimeout(r,0,e):(c=e,setTimeout(d,0))},i=function(e,t){f=setTimeout(e,t)},o=function(){clearTimeout(f)},t.unstable_shouldYield=function(){return!1},a=t.unstable_forceFrameRate=function(){}}else{var p=window.setTimeout,h=window.clearTimeout;if("undefined"!=typeof console){var m=window.cancelAnimationFrame;"function"!=typeof window.requestAnimationFrame&&console.error("This browser doesn't support requestAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills"),"function"!=typeof m&&console.error("This browser doesn't support cancelAnimationFrame. Make sure that you load a polyfill in older browsers. https://reactjs.org/link/react-polyfills")}var y=!1,g=null,b=-1,v=5,w=0;t.unstable_shouldYield=function(){return t.unstable_now()>=w},a=function(){},t.unstable_forceFrameRate=function(e){0>e||125>>1,i=e[r];if(!(void 0!==i&&0N(a,n))void 0!==s&&0>N(s,a)?(e[r]=s,e[l]=n,r=l):(e[r]=a,e[o]=n,r=o);else{if(!(void 0!==s&&0>N(s,n)))break e;e[r]=s,e[l]=n,r=l}}}return t}return null}function N(e,t){var n=e.sortIndex-t.sortIndex;return 0!==n?n:e.id-t.id}var P=[],I=[],_=1,L=null,A=3,R=!1,z=!1,T=!1;function O(e){for(var t=C(I);null!==t;){if(null===t.callback)x(I);else{if(!(t.startTime<=e))break;x(I),t.sortIndex=t.expirationTime,S(P,t)}t=C(I)}}function F(e){if(T=!1,O(e),!z)if(null!==C(P))z=!0,r(j);else{var t=C(I);null!==t&&i(F,t.startTime-e)}}function j(e,n){z=!1,T&&(T=!1,o()),R=!0;var r=A;try{for(O(n),L=C(P);null!==L&&(!(L.expirationTime>n)||e&&!t.unstable_shouldYield());){var a=L.callback;if("function"==typeof a){L.callback=null,A=L.priorityLevel;var l=a(L.expirationTime<=n);n=t.unstable_now(),"function"==typeof l?L.callback=l:L===C(P)&&x(P),O(n)}else x(P);L=C(P)}if(null!==L)var s=!0;else{var u=C(I);null!==u&&i(F,u.startTime-n),s=!1}return s}finally{L=null,A=r,R=!1}}var H=a;t.unstable_IdlePriority=5,t.unstable_ImmediatePriority=1,t.unstable_LowPriority=4,t.unstable_NormalPriority=3,t.unstable_Profiling=null,t.unstable_UserBlockingPriority=2,t.unstable_cancelCallback=function(e){e.callback=null},t.unstable_continueExecution=function(){z||R||(z=!0,r(j))},t.unstable_getCurrentPriorityLevel=function(){return A},t.unstable_getFirstCallbackNode=function(){return C(P)},t.unstable_next=function(e){switch(A){case 1:case 2:case 3:var t=3;break;default:t=A}var n=A;A=t;try{return e()}finally{A=n}},t.unstable_pauseExecution=function(){},t.unstable_requestPaint=H,t.unstable_runWithPriority=function(e,t){switch(e){case 1:case 2:case 3:case 4:case 5:break;default:e=3}var n=A;A=e;try{return t()}finally{A=n}},t.unstable_scheduleCallback=function(e,n,a){var l=t.unstable_now();switch("object"==typeof a&&null!==a?a="number"==typeof(a=a.delay)&&0l?(e.sortIndex=a,S(I,e),null===C(P)&&e===C(I)&&(T?o():T=!0,i(F,a-l))):(e.sortIndex=s,S(P,e),z||R||(z=!0,r(j))),e},t.unstable_wrapCallback=function(e){var t=A;return function(){var n=A;A=t;try{return e.apply(this,arguments)}finally{A=n}}}},"./node_modules/scheduler/index.js":function(e,t,n){"use strict";e.exports=n("./node_modules/scheduler/cjs/scheduler.production.min.js")},"./node_modules/webpack/buildin/global.js":function(e,t){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(e){"object"==typeof window&&(n=window)}e.exports=n},"./node_modules/webpack/buildin/module.js":function(e,t){e.exports=function(e){return e.webpackPolyfill||(e.deprecate=function(){},e.paths=[],e.children||(e.children=[]),Object.defineProperty(e,"loaded",{enumerable:!0,get:function(){return e.l}}),Object.defineProperty(e,"id",{enumerable:!0,get:function(){return e.i}}),e.webpackPolyfill=1),e}},"./scripts/vendor.js":function(e,t,n){n("../../packages/hippy-react/dist/index.js")},0:function(e,t,n){e.exports=n}}); \ No newline at end of file diff --git a/framework/voltron/example/ios/Podfile.lock b/framework/voltron/example/ios/Podfile.lock index 43b4e0c58a0..66b8eb4611f 100644 --- a/framework/voltron/example/ios/Podfile.lock +++ b/framework/voltron/example/ios/Podfile.lock @@ -28,7 +28,7 @@ PODS: - system_proxy (0.0.1): - Flutter - Toast (4.0.0) - - voltron_render (0.0.1): + - voltron (0.0.1): - Flutter - webview_flutter_wkwebview (0.0.1): - Flutter @@ -45,7 +45,7 @@ DEPENDENCIES: - shared_preferences_ios (from `.symlinks/plugins/shared_preferences_ios/ios`) - sqflite (from `.symlinks/plugins/sqflite/ios`) - system_proxy (from `.symlinks/plugins/system_proxy/ios`) - - voltron_render (from `.symlinks/plugins/voltron_render/ios`) + - voltron (from `.symlinks/plugins/voltron/ios`) - webview_flutter_wkwebview (from `.symlinks/plugins/webview_flutter_wkwebview/ios`) SPEC REPOS: @@ -77,8 +77,8 @@ EXTERNAL SOURCES: :path: ".symlinks/plugins/sqflite/ios" system_proxy: :path: ".symlinks/plugins/system_proxy/ios" - voltron_render: - :path: ".symlinks/plugins/voltron_render/ios" + voltron: + :path: ".symlinks/plugins/voltron/ios" webview_flutter_wkwebview: :path: ".symlinks/plugins/webview_flutter_wkwebview/ios" @@ -97,7 +97,7 @@ SPEC CHECKSUMS: sqflite: 6d358c025f5b867b29ed92fc697fd34924e11904 system_proxy: bec1a5c5af67dd3e3ebf43979400a8756c04cc44 Toast: 91b396c56ee72a5790816f40d3a94dd357abc196 - voltron_render: f78fa7bdb216b804bea16b216c7453c52973b6af + voltron: 573e6755e966a450ea768ab1074d237ad0f41d82 webview_flutter_wkwebview: b7e70ef1ddded7e69c796c7390ee74180182971f PODFILE CHECKSUM: aafe91acc616949ddb318b77800a7f51bffa2a4c diff --git a/framework/voltron/example/lib/main.dart b/framework/voltron/example/lib/main.dart index fa612fd2f49..f353045d591 100644 --- a/framework/voltron/example/lib/main.dart +++ b/framework/voltron/example/lib/main.dart @@ -1,4 +1,3 @@ -// @dart=2.9 // // Tencent is pleased to support the open source community by making // Hippy available. @@ -21,13 +20,9 @@ import 'dart:io'; -import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; -import 'package:voltron_render/voltron_render.dart'; -import 'package:voltron_renderer/voltron_renderer.dart'; - -import 'page_test.dart'; +import 'view/base_voltron_page.dart'; void main() { _MyWidgetInspector.init(); @@ -58,208 +53,11 @@ class _MyAppState extends State { @override Widget build(BuildContext context) { return MaterialApp( - home: Builder( - builder: (context) => Scaffold( - appBar: AppBar( - title: Text('Voltron动态化方案'), - backgroundColor: Color(0xFF40b883), - systemOverlayStyle: Platform.isAndroid - ? SystemUiOverlayStyle.light.copyWith( - statusBarColor: Colors.black, - ) - : null, - ), - body: MainPageWidget(), - ), + home: BaseVoltronPage( + coreBundle: "assets/jsbundle/vendor.android.js", + indexBundle: "assets/jsbundle/index.android.js", ), ); - // return MaterialApp( - // home: VoltronPage(), - // ); - } -} - -class VoltronPage extends StatefulWidget { - @override - State createState() { - return _VoltronPageState(); - } -} - -class MainPageWidget extends StatelessWidget { - @override - Widget build(BuildContext context) { - return SingleChildScrollView( - physics: BouncingScrollPhysics(), - child: Container( - alignment: Alignment.topCenter, - child: Column( - mainAxisSize: MainAxisSize.min, - children: [ - Container( - width: 350, - height: 150, - child: Image.asset('assets/voltron-logo.png'), - ), - Card( - margin: EdgeInsets.only(left: 10, right: 10, top: 20, bottom: 0), - color: Colors.white, - child: Container( - padding: EdgeInsets.only(top: 12, bottom: 12, left: 8, right: 8), - child: Column( - children: [ - Text('官方Demo', style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold)), - ButtonBar( - buttonHeight: 50, - alignment: MainAxisAlignment.center, - children: [ - TextButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => PageTestWidget(), - ), - ); - }, - child: Text('进入体验'), - ) - ], - ), - ], - ), - ), - ), - Card( - margin: EdgeInsets.only(left: 10, right: 10, top: 20, bottom: 40), - color: Colors.white, - child: Container( - padding: EdgeInsets.only(top: 12, bottom: 12, left: 8, right: 8), - child: Column( - children: [ - Text('本地调试', style: TextStyle(fontSize: 32, fontWeight: FontWeight.bold)), - SizedBox( - height: 20, - ), - SizedBox( - child: Column( - mainAxisAlignment: MainAxisAlignment.start, - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text('1. 使用usb线链接Android手机和电脑,并启动Voltron'), - Text('2. 前端项目执行npm install安装依赖'), - Text('3. 前端项目执行npm run voltron:dev编译调试包'), - Text('4. 前端项目执行npm run voltron:debug链接手机并启动调试服务'), - Text('5. 点击下方开始调试进入调试页面'), - Text( - '6. 打开chrome://inspect,需要确保localhost:38989在Discover network targets右侧的Configuration弹窗中,下方会出现设备列表,点击inspect开始调试'), - ], - ), - ), - ButtonBar( - alignment: MainAxisAlignment.center, - children: [ - TextButton( - onPressed: () { - Navigator.push( - context, - MaterialPageRoute( - builder: (context) => PageTestWidget( - 'http://localhost:38989/index.bundle', - true, - ), - ), - ); - }, - child: Text('进入调试'), - ), - ], - ), - ], - ), - ), - ), - ], - ), - ), - ); - } -} - -class _VoltronPageState extends State { - PageStatus pageStatus = PageStatus.init; - VoltronJSLoaderManager _loaderManager; - VoltronJSLoader _jsLoader; - - @override - void initState() { - super.initState(); - DeviceInfoPlugin().iosInfo.then((deviceData) { - var initParams = EngineInitParams(); - initParams.debugMode = false; - initParams.enableLog = true; - initParams.coreJSAssetsPath = 'assets/bundle/vendor.js'; - initParams.codeCacheTag = "common"; - initParams.providers = []; - initParams.engineMonitor = Monitor(); - _loaderManager = VoltronJSLoaderManager.createLoaderManager( - initParams, - (statusCode, msg) { - LogUtils.i( - 'loadEngine', - 'code($statusCode), msg($msg)', - ); - if (statusCode == EngineInitStatus.ok) { - pageStatus = PageStatus.success; - setState(() {}); - } else { - pageStatus = PageStatus.error; - setState(() {}); - } - }, - ); - var loadParams = ModuleLoadParams(); - loadParams.componentName = "Demo"; - loadParams.codeCacheTag = "Demo"; - loadParams.jsAssetsPath = 'assets/bundle/index.js'; - loadParams.jsParams = VoltronMap(); - loadParams.jsParams.push( - "msgFromNative", - "Hi js developer, I come from native code!", - ); - if (Platform.isIOS) { - loadParams.jsParams.push( - "isSimulator", - !deviceData.isPhysicalDevice, - ); - } - - _jsLoader = _loaderManager.createLoader( - loadParams, - moduleListener: (status, msg) { - LogUtils.i( - "flutterRender", - "loadModule status($status), msg ($msg)", - ); - }, - ); - }).catchError((err) { - pageStatus = PageStatus.error; - setState(() {}); - }); - } - - @override - Widget build(BuildContext context) { - Widget child; - if (pageStatus == PageStatus.success) { - child = VoltronWidget(loader: _jsLoader); - } else { - child = Container(); - } - return Material( - child: child, - ); } } diff --git a/framework/voltron/example/lib/module/test_module.dart b/framework/voltron/example/lib/module/test_module.dart index 721549ac49b..975a6be6572 100644 --- a/framework/voltron/example/lib/module/test_module.dart +++ b/framework/voltron/example/lib/module/test_module.dart @@ -19,15 +19,15 @@ // import 'package:flutter/material.dart'; -import 'package:voltron_render/engine.dart'; -import 'package:voltron_render/module.dart'; - -import '../page_test.dart'; +import 'package:voltron/engine.dart'; +import 'package:voltron/module.dart'; +import '../view/base_voltron_page.dart'; class TestModule extends VoltronNativeModule { static const String kModuleName = "TestModule"; static const String kDebugMethodName = "debug"; + static const String kRemoteDebugMethodName = "remoteDebug"; TestModule(EngineContext context) : super(context); @@ -38,7 +38,27 @@ class TestModule extends VoltronNativeModule { Navigator.push( rootBuildContext, MaterialPageRoute( - builder: (context) => PageTestWidget('http://localhost:38989/index.bundle', true), + builder: (context) => BaseVoltronPage( + debugMode: true, + remoteServerUrl: 'http://localhost:38989/index.bundle', + ), + ), + ); + } + return true; + } + + @VoltronMethod(kDebugMethodName) + bool remoteDebug(int instanceId, String bundleUrl, JSPromise promise) { + var rootBuildContext = context.renderContext.getInstance(instanceId)?.currentContext; + if (rootBuildContext != null) { + Navigator.push( + rootBuildContext, + MaterialPageRoute( + builder: (context) => BaseVoltronPage( + debugMode: true, + remoteServerUrl: bundleUrl, + ), ), ); } @@ -48,6 +68,7 @@ class TestModule extends VoltronNativeModule { @override Map get extraFuncMap => { kDebugMethodName: debug, + kRemoteDebugMethodName: remoteDebug, }; @override diff --git a/framework/voltron/example/lib/my_api_provider.dart b/framework/voltron/example/lib/my_api_provider.dart index 59749291b5d..f618e72c5f2 100644 --- a/framework/voltron/example/lib/my_api_provider.dart +++ b/framework/voltron/example/lib/my_api_provider.dart @@ -18,9 +18,9 @@ // limitations under the License. // -import 'package:voltron_render/engine.dart'; -import 'package:voltron_render_example/module/test_module.dart'; +import 'package:voltron/voltron.dart'; import 'package:voltron_renderer/voltron_renderer.dart'; +import './module/test_module.dart'; class MyAPIProvider implements APIProvider { @override diff --git a/framework/voltron/example/lib/page_test.dart b/framework/voltron/example/lib/view/base_voltron_page.dart similarity index 70% rename from framework/voltron/example/lib/page_test.dart rename to framework/voltron/example/lib/view/base_voltron_page.dart index cd7a7b6058f..c7d9a41da58 100644 --- a/framework/voltron/example/lib/page_test.dart +++ b/framework/voltron/example/lib/view/base_voltron_page.dart @@ -22,14 +22,10 @@ import 'dart:io'; import 'package:device_info_plus/device_info_plus.dart'; import 'package:flutter/material.dart'; -import 'package:voltron_render/voltron_render.dart'; +import 'package:voltron/voltron.dart'; import 'package:voltron_renderer/voltron_renderer.dart'; -import 'my_api_provider.dart'; - -// ios and android use same bundle -const String kVendorPath = "assets/jsbundle/vendor.android.js"; -const String kIndexPath = "assets/jsbundle/index.android.js"; +import '../my_api_provider.dart'; enum PageStatus { init, @@ -49,30 +45,42 @@ class Monitor extends EngineMonitor { bool enableCreateElementTime = true; } -class PageTestWidget extends StatefulWidget { - final String? bundle; +class BaseVoltronPage extends StatefulWidget { final bool debugMode; + final String coreBundle; + final String indexBundle; + final String remoteServerUrl; - PageTestWidget([this.bundle, this.debugMode = false]); + BaseVoltronPage({ + this.debugMode = false, + this.coreBundle = '', + this.indexBundle = '', + this.remoteServerUrl = '', + }); @override State createState() { - return _PageTestWidgetState(); + return _BaseVoltronPageState(); } } -class _PageTestWidgetState extends State { +class _BaseVoltronPageState extends State { PageStatus pageStatus = PageStatus.init; late VoltronJSLoaderManager _loaderManager; late VoltronJSLoader _jsLoader; - late String _bundle; - int _errorCode = -1; - Offset offsetA = Offset(20, 300); + int errorCode = -1; + late bool _debugMode; + late String _coreBundle; + late String _indexBundle; + late String _remoteServerUrl; @override void initState() { super.initState(); - _bundle = widget.bundle ?? kIndexPath; + _debugMode = widget.debugMode; + _coreBundle = widget.coreBundle; + _indexBundle = widget.indexBundle; + _remoteServerUrl = widget.remoteServerUrl; _initVoltronData(); } @@ -88,17 +96,23 @@ class _PageTestWidgetState extends State { } } var initParams = EngineInitParams(); - initParams.debugMode = widget.debugMode; + initParams.debugMode = _debugMode; initParams.enableLog = true; - initParams.coreJSAssetsPath = kVendorPath; - initParams.codeCacheTag = "common"; + if (_debugMode) { + // 调试模式下直接使用debug参数 + initParams.remoteServerUrl = _remoteServerUrl; + } else { + // 如果是不分包加载,可以只填写coreJSAssetsPath,下面的jsAssetsPath直接忽略即可 + initParams.coreJSAssetsPath = _coreBundle; + initParams.codeCacheTag = "common"; + } initParams.providers = [ MyAPIProvider(), ]; initParams.engineMonitor = Monitor(); _loaderManager = VoltronJSLoaderManager.createLoaderManager( initParams, - (statusCode, msg) { + (statusCode, msg) { LogUtils.i( 'loadEngine', 'code($statusCode), msg($msg)', @@ -110,7 +124,7 @@ class _PageTestWidgetState extends State { } else { setState(() { pageStatus = PageStatus.error; - _errorCode = statusCode.value; + errorCode = statusCode.value; }); } }, @@ -118,10 +132,10 @@ class _PageTestWidgetState extends State { var loadParams = ModuleLoadParams(); loadParams.componentName = "Demo"; loadParams.codeCacheTag = "Demo"; - if (_bundle.startsWith('http://') || _bundle.startsWith('https://')) { - loadParams.jsHttpPath = _bundle; + if (_indexBundle.startsWith('http://') || _indexBundle.startsWith('https://')) { + loadParams.jsHttpPath = _indexBundle; } else { - loadParams.jsAssetsPath = _bundle; + loadParams.jsAssetsPath = _indexBundle; } loadParams.jsParams = VoltronMap(); loadParams.jsParams?.push( @@ -159,11 +173,12 @@ class _PageTestWidgetState extends State { child = Scaffold( body: VoltronWidget( loader: _jsLoader, + loadingBuilder: _debugMode ? null : (context) => Container(), ), ); } else if (pageStatus == PageStatus.error) { child = Center( - child: Text('init engine error, code: ${_errorCode.toString()}'), + child: Text('init engine error, code: ${errorCode.toString()}'), ); } else { child = Container(); diff --git a/framework/voltron/example/pubspec.yaml b/framework/voltron/example/pubspec.yaml index 1ace65ef6b1..a44871445ec 100644 --- a/framework/voltron/example/pubspec.yaml +++ b/framework/voltron/example/pubspec.yaml @@ -20,7 +20,7 @@ # # -name: voltron_render_example +name: voltron_example description: Demonstrates how to use the flutter_render plugin. environment: @@ -31,7 +31,7 @@ dependencies: flutter: sdk: flutter - voltron_render: + voltron: # When depending on this package from a real application you should use: # flutter_render: ^x.y.z # See https://dart.dev/tools/pub/dependencies#version-constraints diff --git a/framework/voltron/ios/Classes/TencentVoltronRenderPlugin.m b/framework/voltron/ios/Classes/TencentVoltronRenderPlugin.m index d53327352ef..ba53f633895 100644 --- a/framework/voltron/ios/Classes/TencentVoltronRenderPlugin.m +++ b/framework/voltron/ios/Classes/TencentVoltronRenderPlugin.m @@ -21,13 +21,13 @@ */ #import "TencentVoltronRenderPlugin.h" -#if __has_include() -#import +#if __has_include() +#import #else // Support project import fallback if the generated compatibility header // is not copied when this plugin is created as a library. // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 -#import "voltron_render-Swift.h" +#import "voltron-Swift.h" #endif @implementation TencentVoltronRenderPlugin diff --git a/framework/voltron/ios/Classes/VoltronPlugin.m b/framework/voltron/ios/Classes/VoltronPlugin.m index 1406a1ebc74..d659b029b24 100644 --- a/framework/voltron/ios/Classes/VoltronPlugin.m +++ b/framework/voltron/ios/Classes/VoltronPlugin.m @@ -21,13 +21,13 @@ */ #import "VoltronPlugin.h" -#if __has_include() -#import +#if __has_include() +#import #else // Support project import fallback if the generated compatibility header // is not copied when this plugin is created as a library. // https://forums.swift.org/t/swift-static-libraries-dont-copy-generated-objective-c-header/19816 -#import "voltron_render-Swift.h" +#import "voltron-Swift.h" #endif @implementation VoltronPlugin diff --git a/framework/voltron/ios/voltron_render.podspec b/framework/voltron/ios/voltron.podspec similarity index 92% rename from framework/voltron/ios/voltron_render.podspec rename to framework/voltron/ios/voltron.podspec index da7a6e3c54a..1d0e4822a10 100644 --- a/framework/voltron/ios/voltron_render.podspec +++ b/framework/voltron/ios/voltron.podspec @@ -3,9 +3,9 @@ # Run `pod lib lint flutter_render.podspec' to validate before publishing. # Pod::Spec.new do |s| - s.name = 'voltron_render' + s.name = 'voltron' s.version = '0.0.1' - s.summary = 'voltron_render ios plugin project.' + s.summary = 'voltron ios plugin project.' s.description = <<-DESC The ios flutter plugin for voltron loader. DESC diff --git a/framework/voltron/lib/bridge/voltron_api.dart b/framework/voltron/lib/bridge/voltron_api.dart index c9221805807..43c1a370332 100644 --- a/framework/voltron/lib/bridge/voltron_api.dart +++ b/framework/voltron/lib/bridge/voltron_api.dart @@ -23,10 +23,8 @@ import 'dart:core'; import 'dart:ffi'; import 'dart:io'; import 'dart:typed_data'; -import 'dart:ui' as ui; import 'package:ffi/ffi.dart'; -import 'package:flutter/foundation.dart'; import 'package:flutter/services.dart' show rootBundle; import 'package:voltron_renderer/bridge/render_bridge_define.dart'; import 'package:voltron_renderer/voltron_renderer.dart'; @@ -99,55 +97,56 @@ class _BridgeFFIManager { _BridgeFFIManager._internal() { initBridge = - _library.lookupFunction( - "InitBridge"); - initJsFramework = _library.lookupFunction("InitJSFrameworkFFI"); + _library.lookupFunction("InitBridge"); + initJsFramework = + _library.lookupFunction( + "InitJSFrameworkFFI"); - runScriptFromFile = _library.lookupFunction("RunScriptFromFileFFI"); + runScriptFromFile = + _library.lookupFunction( + "RunScriptFromFileFFI"); - notifyNetworkEvent = _library.lookupFunction("NotifyNetworkEvent"); + notifyNetworkEvent = + _library.lookupFunction( + "NotifyNetworkEvent"); loadInstance = _library .lookupFunction('LoadInstanceFFI'); - bindDomAndRender = _library.lookupFunction('DoBindDomAndRender'); + bindDomAndRender = _library + .lookupFunction('DoBindDomAndRender'); - connectRootViewAndRuntime = _library.lookupFunction< - ConnectRootViewAndRuntimeNativeType, + connectRootViewAndRuntime = _library.lookupFunction('DoConnectRootViewAndRuntime'); unloadInstance = _library.lookupFunction( 'UnloadInstanceFFI'); - runScriptFromAsset = _library.lookupFunction< - RunScriptFromAssetsFfiNativeType, - RunScriptFromAssetsFfiDartType>("RunScriptFromAssetsFFI"); - - callFunction = _library.lookupFunction("CallFunctionFFI"); - - getCrashMessage = - _library.lookupFunction( - "GetCrashMessageFFI"); - - destroy = _library - .lookupFunction("DestroyFFI"); - - registerCallNative = _library.lookupFunction< - RegisterCallNativeFfiNativeType, - RegisterCallNativeFfiDartType>("RegisterCallFunc"); - registerReportJson = _library.lookupFunction< - RegisterReportJsonFfiNativeType, - RegisterReportJsonFfiDartType>("RegisterCallFunc"); - registerReportJs = _library.lookupFunction("RegisterCallFunc"); - registerDestroy = _library.lookupFunction("RegisterCallFunc"); + runScriptFromAsset = + _library.lookupFunction( + "RunScriptFromAssetsFFI"); + + callFunction = _library + .lookupFunction("CallFunctionFFI"); + + getCrashMessage = _library + .lookupFunction("GetCrashMessageFFI"); + + destroy = _library.lookupFunction("DestroyFFI"); + + registerCallNative = + _library.lookupFunction( + "RegisterCallFunc"); + registerReportJson = + _library.lookupFunction( + "RegisterCallFunc"); + registerReportJs = + _library.lookupFunction( + "RegisterCallFunc"); + registerDestroy = + _library.lookupFunction( + "RegisterCallFunc"); } } @@ -213,22 +212,14 @@ class VoltronApi { } } - static Future runScriptFromFile( - int engineId, - String filePath, - String scriptName, - String codeCacheDir, - bool canUseCodeCache, - CommonCallback callback) async { + static Future runScriptFromFile(int engineId, String filePath, String scriptName, + String codeCacheDir, bool canUseCodeCache, CommonCallback callback) async { var filePathPtr = filePath.toNativeUtf16(); var scriptNamePtr = scriptName.toNativeUtf16(); var codeCacheDirPtr = codeCacheDir.toNativeUtf16(); var result = _BridgeFFIManager.instance.runScriptFromFile( - engineId, - filePathPtr, - scriptNamePtr, - codeCacheDirPtr, - canUseCodeCache ? 1 : 0, generateCallback((value) { + engineId, filePathPtr, scriptNamePtr, codeCacheDirPtr, canUseCodeCache ? 1 : 0, + generateCallback((value) { callback(value); })); free(filePathPtr); @@ -241,17 +232,20 @@ class VoltronApi { static void notifyRequestWillBeSent(int engineId, String requestId, String requestContent) { var contentPtr = requestContent.toNativeUtf16(); var requestIdPtr = requestId.toNativeUtf16(); - _BridgeFFIManager.instance.notifyNetworkEvent(engineId, requestIdPtr, NetworkEventType.requestWillBeSent.index, contentPtr, nullptr); + _BridgeFFIManager.instance.notifyNetworkEvent( + engineId, requestIdPtr, NetworkEventType.requestWillBeSent.index, contentPtr, nullptr); free(contentPtr); free(requestIdPtr); } /// network notification, when a network request response received - static void notifyResponseReceived(int engineId, String requestId, String responseContent, String bodyData) { + static void notifyResponseReceived( + int engineId, String requestId, String responseContent, String bodyData) { var contentPtr = responseContent.toNativeUtf16(); var requestIdPtr = requestId.toNativeUtf16(); var extraPtr = bodyData.toNativeUtf16(); - _BridgeFFIManager.instance.notifyNetworkEvent(engineId, requestIdPtr, NetworkEventType.responseReceived.index, contentPtr, extraPtr); + _BridgeFFIManager.instance.notifyNetworkEvent( + engineId, requestIdPtr, NetworkEventType.responseReceived.index, contentPtr, extraPtr); free(requestIdPtr); free(contentPtr); free(extraPtr); @@ -261,7 +255,8 @@ class VoltronApi { static void notifyLoadingFinished(int engineId, String requestId, String loadingFinishContent) { var contentPtr = loadingFinishContent.toNativeUtf16(); var requestIdPtr = requestId.toNativeUtf16(); - _BridgeFFIManager.instance.notifyNetworkEvent(engineId, requestIdPtr, NetworkEventType.loadingFinished.index, contentPtr, nullptr); + _BridgeFFIManager.instance.notifyNetworkEvent( + engineId, requestIdPtr, NetworkEventType.loadingFinished.index, contentPtr, nullptr); free(contentPtr); free(requestIdPtr); } @@ -282,17 +277,13 @@ class VoltronApi { var codeCacheDirPtr = codeCacheDir.toNativeUtf16(); stopwatch.stop(); - LogUtils.profile( - "loadBundleEncodeStringUtf8", stopwatch.elapsedMilliseconds); + LogUtils.profile("loadBundleEncodeStringUtf8", stopwatch.elapsedMilliseconds); stopwatch.reset(); stopwatch.start(); _BridgeFFIManager.instance.runScriptFromAsset( - engineId, - assetNamePtr, - codeCacheDirPtr, - canUseCodeCache ? 1 : 0, - assetStrPtr, generateCallback((value) { + engineId, assetNamePtr, codeCacheDirPtr, canUseCodeCache ? 1 : 0, assetStrPtr, + generateCallback((value) { stopwatch.stop(); LogUtils.profile("runScriptFromAssetCore", stopwatch.elapsedMilliseconds); callback(value); @@ -302,11 +293,12 @@ class VoltronApi { } static Future runScriptFromAsset( - int engineId, - String assetName, - String codeCacheDir, - bool canUseCodeCache, - CommonCallback callback) async { + int engineId, + String assetName, + String codeCacheDir, + bool canUseCodeCache, + CommonCallback callback, + ) async { ByteData? assetData; var stopwatch = Stopwatch(); stopwatch.start(); @@ -314,14 +306,18 @@ class VoltronApi { assetData = await rootBundle.load(assetName); } catch (e) { LogUtils.e("Voltron_bridge", "load asset error:$e"); + rethrow; } stopwatch.stop(); LogUtils.profile("loadBundleFromAsset", stopwatch.elapsedMilliseconds); - - if (assetData != null) { - runScriptFromAssetWithData(engineId, assetName, codeCacheDir, - canUseCodeCache, assetData, callback); - } + runScriptFromAssetWithData( + engineId, + assetName, + codeCacheDir, + canUseCodeCache, + assetData, + callback, + ); } static Pointer strByteDataToPointer(ByteData data) { @@ -330,17 +326,13 @@ class VoltronApi { return result.toNativeUtf16(); } - static Future loadInstance(int engineId, - VoltronMap params) async { + static Future loadInstance(int engineId, VoltronMap params) async { var stopwatch = Stopwatch(); stopwatch.start(); var paramsPair = _parseParams(params); stopwatch.stop(); LogUtils.profile("loadInstance parse params", stopwatch.elapsedMilliseconds); - _BridgeFFIManager.instance.loadInstance( - engineId, - paramsPair.left, - paramsPair.right.length); + _BridgeFFIManager.instance.loadInstance(engineId, paramsPair.left, paramsPair.right.length); stopwatch.stop(); LogUtils.profile("loadInstance", stopwatch.elapsedMilliseconds); free(paramsPair.left); @@ -351,25 +343,22 @@ class VoltronApi { stopwatch.start(); var paramsPair = _parseParams(params); stopwatch.stop(); - LogUtils.profile( - "unloadInstance parse params", stopwatch.elapsedMilliseconds); - _BridgeFFIManager.instance - .unloadInstance(engineId, paramsPair.left, paramsPair.right.length); + LogUtils.profile("unloadInstance parse params", stopwatch.elapsedMilliseconds); + _BridgeFFIManager.instance.unloadInstance(engineId, paramsPair.left, paramsPair.right.length); stopwatch.stop(); LogUtils.profile("unloadInstance", stopwatch.elapsedMilliseconds); } - static Future callFunction(int engineId, String action, - Object params, CommonCallback callback) async { + static Future callFunction( + int engineId, String action, Object params, CommonCallback callback) async { var stopwatch = Stopwatch(); stopwatch.start(); var actionPtr = action.toNativeUtf16(); var paramsPair = _parseParams(params); stopwatch.stop(); LogUtils.profile("callFunction", stopwatch.elapsedMilliseconds); - _BridgeFFIManager.instance - .callFunction(engineId, actionPtr, paramsPair.left, paramsPair.right.length, - generateCallback((value) { + _BridgeFFIManager.instance.callFunction( + engineId, actionPtr, paramsPair.left, paramsPair.right.length, generateCallback((value) { stopwatch.stop(); LogUtils.profile("callFunction", stopwatch.elapsedMilliseconds); callback(value); @@ -383,10 +372,8 @@ class VoltronApi { return crashMessage.toDartString(); } - static Future destroy( - int engineId, CommonCallback callback, bool isReload) async { - _BridgeFFIManager.instance.destroy(engineId, - generateCallback((value) { + static Future destroy(int engineId, CommonCallback callback, bool isReload) async { + _BridgeFFIManager.instance.destroy(engineId, generateCallback((value) { callback(value); }), isReload ? 1 : 0); } @@ -398,15 +385,13 @@ class VoltronApi { _BridgeFFIManager.instance.initBridge(); // 注册callNative回调 - var callNativeFunc = - Pointer.fromFunction(callNative); + var callNativeFunc = Pointer.fromFunction(callNative); _BridgeFFIManager.instance .registerCallNative(LoaderFuncType.callNative.index + kRenderFuncTypeSize, callNativeFunc); // 注册reportJsonException回调 var reportJsonExceptionFunc = - Pointer.fromFunction( - reportJsonException); + Pointer.fromFunction(reportJsonException); _BridgeFFIManager.instance.registerReportJson( LoaderFuncType.reportJsonException.index + kRenderFuncTypeSize, reportJsonExceptionFunc); @@ -416,26 +401,17 @@ class VoltronApi { _BridgeFFIManager.instance.registerReportJs( LoaderFuncType.reportJsException.index + kRenderFuncTypeSize, reportJSExceptionFunc); - // 注册onDestroy回调 - var onDestroyFunc = - Pointer.fromFunction(onDestroy); + var onDestroyFunc = Pointer.fromFunction(onDestroy); _BridgeFFIManager.instance .registerDestroy(LoaderFuncType.destroy.index + kRenderFuncTypeSize, onDestroyFunc); - } } // ------------------ native call dart方法 start --------------------- -void callNative( - int engineId, - Pointer moduleNamePtr, - Pointer moduleFuncPtr, - Pointer callIdPtr, - Pointer paramsDataPtr, - int paramsLen, - int bridgeParamJsonInt) { +void callNative(int engineId, Pointer moduleNamePtr, Pointer moduleFuncPtr, + Pointer callIdPtr, Pointer paramsDataPtr, int paramsLen, int bridgeParamJsonInt) { var bridgeParamJson = bridgeParamJsonInt == 1; var moduleName = moduleNamePtr.toDartString(); var moduleFunc = moduleFuncPtr.toDartString(); @@ -444,15 +420,13 @@ void callNative( final bridge = VoltronBridgeManager.bridgeMap[engineId]; if (bridge != null) { - bridge.callNatives( - moduleName, moduleFunc, callId, dataList, bridgeParamJson); + bridge.callNatives(moduleName, moduleFunc, callId, dataList, bridgeParamJson); } } void reportJsonException(int engineId, Pointer jsonValue) { var exception = jsonValue.toDartString(); - LogUtils.e("Voltron_bridge", - "reportJsonException\n !!!!!!!!!!!!!!!!!!! \n Error($exception)"); + LogUtils.e("Voltron_bridge", "reportJsonException\n !!!!!!!!!!!!!!!!!!! \n Error($exception)"); final bridge = VoltronBridgeManager.bridgeMap[engineId]; if (bridge != null) { @@ -460,8 +434,7 @@ void reportJsonException(int engineId, Pointer jsonValue) { } } -void reportJSException(int engineId, Pointer descriptionStream, - Pointer stackStream) { +void reportJSException(int engineId, Pointer descriptionStream, Pointer stackStream) { var exception = descriptionStream.toDartString(); var stackTrace = stackStream.toDartString(); LogUtils.e("Voltron_bridge", @@ -473,14 +446,12 @@ void reportJSException(int engineId, Pointer descriptionStream, } } - VoltronBridgeManager? getCurrentBridge(int engineId) { var bridge = VoltronBridgeManager.bridgeMap[engineId]; bridge ??= VoltronBridgeManager.bridgeMap[0]; return bridge; } - void onDestroy(int engineId) { // empty } diff --git a/framework/voltron/lib/bridge/voltron_bridge.dart b/framework/voltron/lib/bridge/voltron_bridge.dart index 4c408bdb68d..2d1afb2c4cd 100644 --- a/framework/voltron/lib/bridge/voltron_bridge.dart +++ b/framework/voltron/lib/bridge/voltron_bridge.dart @@ -72,16 +72,16 @@ class VoltronBridgeManager implements Destroyable { VoltronBundleLoader? get coreBundleLoader => _coreBundleLoader; - VoltronBridgeManager(EngineContext context, - VoltronBundleLoader? coreBundleLoader, - int groupId, - int id, { - VoltronThirdPartyAdapter? thirdPartyAdapter, - int bridgeType = kBridgeTypeNormal, - bool isDevModule = false, - String debugServerHost = '', - }) - : _context = context, + VoltronBridgeManager( + EngineContext context, + VoltronBundleLoader? coreBundleLoader, + int groupId, + int id, { + VoltronThirdPartyAdapter? thirdPartyAdapter, + int bridgeType = kBridgeTypeNormal, + bool isDevModule = false, + String debugServerHost = '', + }) : _context = context, _coreBundleLoader = coreBundleLoader, _groupId = groupId, _engineId = id, @@ -103,9 +103,8 @@ class VoltronBridgeManager implements Destroyable { } } - void bindDomAndRender({required int domInstanceId, - required int engineId, - required int renderManagerId}) { + void bindDomAndRender( + {required int domInstanceId, required int engineId, required int renderManagerId}) { VoltronApi.bindDomAndRender(domInstanceId, engineId, renderManagerId); } @@ -174,10 +173,12 @@ class VoltronBridgeManager implements Destroyable { } } - Future runBundle(int id, - VoltronBundleLoader? loader, - ModuleListener? moduleListener, - RootWidgetViewModel? rootViewModel,) async { + Future runBundle( + int id, + VoltronBundleLoader? loader, + ModuleListener? moduleListener, + RootWidgetViewModel? rootViewModel, + ) async { if (!_isFrameWorkInit) { _loadModuleListener = moduleListener; _notifyModuleLoaded( @@ -288,7 +289,7 @@ class VoltronBridgeManager implements Destroyable { _thirdPartyAdapter?.onRuntimeDestroy(); await VoltronApi.destroy( _engineId, - (value) { + (value) { onDestroy(); callback(value == 0); }, @@ -359,9 +360,7 @@ class VoltronBridgeManager implements Destroyable { platformParams.push("PackageName", packageName); platformParams.push("VersionName", versionName); platformParams.push( - "NightMode", ScreenUtil - .getInstance() - .brightness == Brightness.dark); + "NightMode", ScreenUtil.getInstance().brightness == Brightness.dark); platformParams.push("Localization", localization); globalParams.push("Platform", platformParams); var tkd = VoltronMap(); @@ -389,11 +388,13 @@ class VoltronBridgeManager implements Destroyable { return objectToJson(globalParams); } - void _notifyModuleLoaded(ModuleLoadStatus statusCode, - final String? msg, - final RootWidgetViewModel? rootWidgetViewModel,) { + void _notifyModuleLoaded( + ModuleLoadStatus statusCode, + final String? msg, + final RootWidgetViewModel? rootWidgetViewModel, + ) { if (statusCode != ModuleLoadStatus.ok) { - rootWidgetViewModel?.onLoadError(statusCode); + rootWidgetViewModel?.onLoadError(statusCode.value); } var loadModuleListener = _loadModuleListener; if (loadModuleListener != null) { @@ -401,28 +402,42 @@ class VoltronBridgeManager implements Destroyable { } } - Future runScriptFromAssets(String fileName, - bool canUseCodeCache, - String codeCacheTag, - CommonCallback callback,) async { + Future runScriptFromAssets( + String fileName, + bool canUseCodeCache, + String codeCacheTag, + CommonCallback callback, + ) async { if (!_isFrameWorkInit) { return false; } if (!isEmpty(codeCacheTag) && !isEmpty(sCodeCacheRootDir)) { - LogUtils.i(_kTag, - "runScriptFromAssets ======core====== $codeCacheTag${", canUseCodeCache == $canUseCodeCache"}"); + LogUtils.i( + _kTag, + "runScriptFromAssets ======core====== $codeCacheTag${", canUseCodeCache == $canUseCodeCache"}", + ); var codeCacheDir = sCodeCacheRootDir! + codeCacheTag + Platform.pathSeparator; - await VoltronApi.runScriptFromAsset(_engineId, fileName, codeCacheDir, canUseCodeCache, - (value) { - callback(value); - }); + await VoltronApi.runScriptFromAsset( + _engineId, + fileName, + codeCacheDir, + canUseCodeCache, + (value) { + callback(value); + }, + ); } else { LogUtils.i(_kTag, "runScriptFromAssets codeCacheTag is null"); await VoltronApi.runScriptFromAsset( - _engineId, fileName, "$codeCacheTag${Platform.pathSeparator}", false, (value) { - callback(value); - }); + _engineId, + fileName, + "$codeCacheTag${Platform.pathSeparator}", + false, + (value) { + callback(value); + }, + ); } return true; } @@ -445,9 +460,9 @@ class VoltronBridgeManager implements Destroyable { LogUtils.i(_kTag, "runScriptFromAssetsWithData codeCacheTag is null"); await VoltronApi.runScriptFromAssetWithData( _engineId, fileName, "$codeCacheTag${Platform.pathSeparator}", false, assetsData, - (value) { - callback(value); - }); + (value) { + callback(value); + }); } return true; } @@ -471,19 +486,21 @@ class VoltronBridgeManager implements Destroyable { var codeCacheDir = '$codeCacheTag${Platform.pathSeparator}'; await VoltronApi.runScriptFromFile(_engineId, filePath, scriptName, codeCacheDir, false, - (value) { - callback(value); - }); + (value) { + callback(value); + }); } return true; } - void callNatives(String moduleName, - String moduleFunc, - String callId, - Uint8List paramsList, - bool bridgeParseJson,) { + void callNatives( + String moduleName, + String moduleFunc, + String callId, + Uint8List paramsList, + bool bridgeParseJson, + ) { LogUtils.dBridge('call native ($moduleName.$moduleFunc)'); if (_isFrameWorkInit) { diff --git a/framework/voltron/lib/channel/platform_manager.dart b/framework/voltron/lib/channel/platform_manager.dart index b8ae195b7fc..8b1d4ee6349 100644 --- a/framework/voltron/lib/channel/platform_manager.dart +++ b/framework/voltron/lib/channel/platform_manager.dart @@ -104,8 +104,8 @@ class PlatformManager { _osVersion = deviceData['systemVersion'] ?? '1.0'; _device = deviceData['utsname.machine'] ?? ''; _model = deviceData['model'] ?? ''; - _deviceId = deviceData['id']; - _codeName = deviceData['codename']; + _deviceId = deviceData['id'] ?? ''; + _codeName = deviceData['codename'] ?? ''; _appName = info.appName; _appVersion = info.version; _packageName = info.packageName; diff --git a/framework/voltron/lib/devtools/network_inspector.dart b/framework/voltron/lib/devtools/network_inspector.dart index d22266af025..e28338ab3a3 100644 --- a/framework/voltron/lib/devtools/network_inspector.dart +++ b/framework/voltron/lib/devtools/network_inspector.dart @@ -109,7 +109,7 @@ class NetworkInspector { }) ?? {}; String mimeType = responseHeader[kContentType] ?? ""; if (mimeType.isEmpty) { - mimeType = MimeType.getType(httpResponse?.requestOptions?.responseType); + mimeType = MimeType.getType(httpResponse?.requestOptions.responseType); } final responseContentMap = { diff --git a/framework/voltron/lib/engine/js_engine_context.dart b/framework/voltron/lib/engine/js_engine_context.dart index 69ecca14612..73f1f191aa5 100644 --- a/framework/voltron/lib/engine/js_engine_context.dart +++ b/framework/voltron/lib/engine/js_engine_context.dart @@ -161,9 +161,10 @@ class EngineContext implements Destroyable { void onRuntimeInitialized(int runtimeId) { _bridgeManager.bindDomAndRender( - domInstanceId: renderContext.domId, - engineId: _id, - renderManagerId: renderContext.renderId); + domInstanceId: renderContext.domId, + engineId: _id, + renderManagerId: renderContext.renderId, + ); } int get engineId => _id; diff --git a/framework/voltron/lib/engine/js_module_params.dart b/framework/voltron/lib/engine/js_module_params.dart index 11597d89a6c..1fd17302b41 100644 --- a/framework/voltron/lib/engine/js_module_params.dart +++ b/framework/voltron/lib/engine/js_module_params.dart @@ -21,7 +21,6 @@ import 'package:voltron_renderer/voltron_renderer.dart'; import 'bundle.dart'; -import 'js_instance_context.dart'; class ModuleLoadParams { // diff --git a/framework/voltron/lib/engine/voltron_js_engine.dart b/framework/voltron/lib/engine/voltron_js_engine.dart index 15281de9089..f3f29790410 100644 --- a/framework/voltron/lib/engine/voltron_js_engine.dart +++ b/framework/voltron/lib/engine/voltron_js_engine.dart @@ -40,6 +40,7 @@ class VoltronJSEngine final List _eventListenerList = []; final HashMap _rootWidgetViewModelMap = HashMap(); final HashMap _moduleLoadParamsMap = HashMap(); + // late RootWidgetViewModel _rootWidgetViewModel; // late ModuleLoadParams _moduleLoadParams; ModuleListener? _moduleListener; @@ -178,7 +179,7 @@ class VoltronJSEngine _debugMode, _serverHost, _serverBundleName, - _remoteServerUrl, + _remoteServerUrl, ); _devSupportManager.setDevCallback(this); if (_debugMode) { @@ -241,7 +242,7 @@ class VoltronJSEngine final RootWidgetViewModel rootView, ) { if (statusCode != ModuleLoadStatus.ok) { - rootView.onLoadError(statusCode); + rootView.onLoadError(statusCode.value); } var moduleListener = _moduleListener; if (moduleListener != null) { @@ -332,14 +333,13 @@ class VoltronJSEngine } Future _loadJSInstance(RootWidgetViewModel rootWidgetViewModel) async { - var loadContext = - JSLoadInstanceContext(_moduleLoadParamsMap[rootWidgetViewModel.id]!); + var loadContext = JSLoadInstanceContext(_moduleLoadParamsMap[rootWidgetViewModel.id]!); _engineContext?.renderContext.createInstance( loadContext, rootWidgetViewModel, ); - _engineContext?.bridgeManager.connectRootViewAndRuntime( - _engineContext?.engineId ?? 0, rootWidgetViewModel.id); + _engineContext?.bridgeManager + .connectRootViewAndRuntime(_engineContext?.engineId ?? 0, rootWidgetViewModel.id); LogUtils.d(_kTag, "in internalLoadInstance"); for (var listener in _engineContext!.instanceLifecycleEventListener) { @@ -362,25 +362,16 @@ class VoltronJSEngine var launchParams = loadInstanceContext.launchParams; var name = loadInstanceContext.name; var loader = loadInstanceContext.bundleLoader; - if (!_debugMode) { - if (loader != null) { - rootWidgetViewModel.timeMonitor?.startEvent( - EngineMonitorEventKey.moduleLoadEventWaitLoadBundle, - ); - await _engineContext?.bridgeManager.runBundle( - rootWidgetViewModel.id, - loader, - _moduleListener, - rootWidgetViewModel, - ); - } else { - _notifyModuleLoaded( - ModuleLoadStatus.varialeNull, - "load module error. loader null", - rootWidgetViewModel, - ); - return; - } + if (!_debugMode && loader != null) { + rootWidgetViewModel.timeMonitor?.startEvent( + EngineMonitorEventKey.moduleLoadEventWaitLoadBundle, + ); + await _engineContext?.bridgeManager.runBundle( + rootWidgetViewModel.id, + loader, + _moduleListener, + rootWidgetViewModel, + ); } LogUtils.d( _kTag, @@ -391,7 +382,8 @@ class VoltronJSEngine rootWidgetViewModel.id, launchParams, ); - if (_debugMode) { + LogUtils.dBridge("load module success"); + if (_debugMode || loader == null) { _notifyModuleLoaded( ModuleLoadStatus.ok, null, @@ -407,6 +399,7 @@ class VoltronJSEngine ModuleErrorBuilder? moduleStatusBuilder, OnLoadCompleteListener? onLoadCompleteListener, }) async { + LogUtils.dBridge("load module start"); loadParams.jsParams ??= VoltronMap(); if (!isEmpty(loadParams.jsAssetsPath)) { loadParams.jsParams!.push("sourcePath", loadParams.jsAssetsPath); diff --git a/framework/voltron/lib/inspector/dev_factory.dart b/framework/voltron/lib/inspector/dev_factory.dart index d088812c6c8..d5d2cef83fb 100644 --- a/framework/voltron/lib/inspector/dev_factory.dart +++ b/framework/voltron/lib/inspector/dev_factory.dart @@ -30,9 +30,9 @@ class DevFactory { String remoteServerUrl ) { if (enableDev) { - return new DevServerImpl(configs, serverHost, bundleName, remoteServerUrl); + return DevServerImpl(configs, serverHost, bundleName, remoteServerUrl); } else { - return new DevServerImplDisable(configs, serverHost); + return DevServerImplDisable(configs, serverHost); } } } diff --git a/framework/voltron/lib/inspector/dev_server_helper.dart b/framework/voltron/lib/inspector/dev_server_helper.dart index 8cc47dc02f4..971fbab1e93 100644 --- a/framework/voltron/lib/inspector/dev_server_helper.dart +++ b/framework/voltron/lib/inspector/dev_server_helper.dart @@ -34,11 +34,16 @@ class DevServerHelper { } } - String createBundleURL(String host, - String bundleName, - bool devMode, - bool hmr, - bool jsMinify,) { + String createBundleURL( + String host, + String bundleName, + bool devMode, + bool hmr, + bool jsMinify, + ) { + if (_remoteServerData.isValid()) { + return "${_remoteServerData.getScheme()}://${_remoteServerData.getHost()}${_remoteServerData.getPath()}?dev=$devMode&hot=$hmr&minify=$jsMinify"; + } return "http://$host/$bundleName?dev=$devMode&hot=$hmr&minify=$jsMinify"; } @@ -58,7 +63,6 @@ class DevServerHelper { debugHost = _remoteServerData.getHost()!; } } - var debugServerHost = host; return "ws://$debugHost/debugger-proxy?role=android_client&clientId=$debugClientId&hash=$debugHash&contextName=$debugComponentName"; } } diff --git a/framework/voltron/lib/module/image_loader.dart b/framework/voltron/lib/module/image_loader.dart index 08f5824605b..eb8cdf2d0c4 100644 --- a/framework/voltron/lib/module/image_loader.dart +++ b/framework/voltron/lib/module/image_loader.dart @@ -19,12 +19,11 @@ // import 'package:flutter/material.dart'; -import 'package:voltron_render/engine/js_engine_context.dart'; import 'package:voltron_renderer/common/voltron_map.dart'; import 'package:voltron_renderer/util/image_util.dart'; -import 'module.dart'; -import 'promise.dart'; +import '../engine.dart'; +import '../module.dart'; class ImageLoaderModule extends VoltronNativeModule { static const String kImageLoaderModuleName = "ImageLoaderModule"; diff --git a/framework/voltron/lib/voltron_render.dart b/framework/voltron/lib/voltron.dart similarity index 97% rename from framework/voltron/lib/voltron_render.dart rename to framework/voltron/lib/voltron.dart index f8620bfa296..891b95e6379 100644 --- a/framework/voltron/lib/voltron_render.dart +++ b/framework/voltron/lib/voltron.dart @@ -18,7 +18,7 @@ // limitations under the License. // -library voltron_render; +library voltron; export 'adapter.dart'; export 'bridge.dart'; diff --git a/framework/voltron/lib/voltron/loader.dart b/framework/voltron/lib/voltron/loader.dart index 2588fa8bc4b..55589a5742b 100644 --- a/framework/voltron/lib/voltron/loader.dart +++ b/framework/voltron/lib/voltron/loader.dart @@ -94,7 +94,7 @@ class VoltronJSLoaderManager { case EngineState.initError: case EngineState.destroyed: case EngineState.inited: - LogUtils.i("flutter_render", "run executor success"); + LogUtils.dBridge("start to run executor"); executor(); break; } @@ -133,6 +133,7 @@ class VoltronJSLoader with RendererLoader { @override void load(RootWidgetViewModel viewModel) { + LogUtils.dBridge("load module ready"); _instance = viewModel; _jsLoaderManager._execute(() { _jsLoaderManager._engine.loadModule( diff --git a/framework/voltron/pubspec.yaml b/framework/voltron/pubspec.yaml index 297dba59de6..ac4a6fd2ea5 100644 --- a/framework/voltron/pubspec.yaml +++ b/framework/voltron/pubspec.yaml @@ -20,7 +20,7 @@ # # -name: voltron_render +name: voltron description: A flutter plugin project to render hippy page. environment: @@ -63,7 +63,4 @@ dev_dependencies: sdk: flutter flutter_lints: ^1.0.0 -dependency_overrides: - win32: 2.6.1 - diff --git a/renderer/voltron/core/src/render/queue/voltron_render_manager.cc b/renderer/voltron/core/src/render/queue/voltron_render_manager.cc index 6c3d41a90c3..f95516e086b 100644 --- a/renderer/voltron/core/src/render/queue/voltron_render_manager.cc +++ b/renderer/voltron/core/src/render/queue/voltron_render_manager.cc @@ -55,7 +55,7 @@ void VoltronRenderManager::UpdateRenderNode( } auto root_id = root_node_ptr->GetId(); for (const auto &n: nodes) { - if (n->GetTagName() == "Text") { + if (n->GetViewName() == "Text") { MarkTextDirty(root_node, n->GetId()); } } diff --git a/renderer/voltron/lib/bridge/render_api.dart b/renderer/voltron/lib/bridge/render_api.dart index c93eeaad13f..8ee1dba2a3a 100644 --- a/renderer/voltron/lib/bridge/render_api.dart +++ b/renderer/voltron/lib/bridge/render_api.dart @@ -255,7 +255,7 @@ class VoltronRenderApi { var stopwatch = Stopwatch(); stopwatch.start(); var eventU16 = eventName.toNativeUtf16(); - LogUtils.i('Voltron::Bridge', 'call native event $eventName'); + LogUtils.i('Voltron::Bridge', 'ID:$nodeId, call native event $eventName'); var encodeParamsByteData = const StandardMessageCodec().encodeMessage(params); if (encodeParamsByteData != null) { diff --git a/renderer/voltron/lib/bridge/render_bridge.dart b/renderer/voltron/lib/bridge/render_bridge.dart index 001804be147..7b428896735 100644 --- a/renderer/voltron/lib/bridge/render_bridge.dart +++ b/renderer/voltron/lib/bridge/render_bridge.dart @@ -241,7 +241,7 @@ class VoltronRenderBridgeManager implements Destroyable { FlexLayoutParams layoutParams, ) { LogUtils.dBridge( - 'call calculate node layout(page:$instanceId, node:$nodeId, layout:$layoutParams)', + 'ID:$nodeId, call calculate node layout, page:$instanceId, parent layout:$layoutParams', ); if (_isBridgeInit) { return _context.renderManager.calculateLayout( diff --git a/renderer/voltron/lib/controller/modal.dart b/renderer/voltron/lib/controller/modal.dart index 093f744fae5..846d2bb2564 100644 --- a/renderer/voltron/lib/controller/modal.dart +++ b/renderer/voltron/lib/controller/modal.dart @@ -64,7 +64,7 @@ class ModalController extends GroupController _uiUpdateNodes = []; final List _nullUiUpdateNodes = []; final List _animationNodeIds = []; @@ -218,8 +215,7 @@ class RenderManager this.context, List? generators, ) : _controllerManager = ControllerManager(context, generators), - _nativeRenderManagerId = - context.bridgeManager.createNativeRenderManager() { + _nativeRenderManagerId = context.bridgeManager.createNativeRenderManager() { context.addEngineLifecycleEventListener(this); context.addInstanceLifecycleEventListener(this); } @@ -274,7 +270,7 @@ class RenderManager isLazy || parentNode.isLazyLoad, ); LogUtils.dRender( - "createNode ID:$id pID:$pId index:$childIndex className:$name finish:${uiNode.hashCode} prop:$props", + " ID:$id, createNode, pID:$pId, index:$childIndex, className:$name finish:${uiNode.hashCode} prop:$props", ); uiNode?.addEvent(nodeEvents(instanceId, id)); parentNode.addChild(uiNode, childIndex); @@ -282,7 +278,7 @@ class RenderManager addUpdateNodeIfNeeded(uiNode); } else { LogUtils.dRender( - "createNode error ID:$id pID:$pId index:$childIndex className:$name, tree: ${tree?.id}, parent: ${parentNode?.id}", + "ID:$id, createNode error, pID:$pId index:$childIndex className:$name, tree: ${tree?.id}, parent: ${parentNode?.id}", ); } } @@ -345,7 +341,7 @@ class RenderManager ) { var uiNode = controllerManager.findNode(instanceId, id); LogUtils.dLayout( - "updateLayout ID:$id, ($x, $y, $w, $h), uiNode:${uiNode?.id}, ${uiNode?.hashCode}", + "ID:$id, updateLayout, x:$x, y:$y, w:$w, h:$h", ); if (uiNode != null) { uiNode.updateLayout(x, y, w, h); @@ -381,8 +377,7 @@ class RenderManager RenderBox? getRenderBox(int? instanceId, int? nodeId) { final node = getNode(instanceId, nodeId); - final renderBox = - node?.renderViewModel.currentContext?.findRenderObject() as RenderBox?; + final renderBox = node?.renderViewModel.currentContext?.findRenderObject() as RenderBox?; return renderBox; } @@ -395,7 +390,7 @@ class RenderManager } void updateNode(int instanceId, int id, VoltronMap map) { - LogUtils.dRender("update node ID:$id, param:($map)"); + LogUtils.dRender("ID:$id, update node, param:($map)"); var uiNode = controllerManager.findNode(instanceId, id); if (uiNode != null) { uiNode.updateNode(map); @@ -414,7 +409,8 @@ class RenderManager var renderNode = controllerManager.findNode(instanceId, moveId); if (renderNode != null) { LogUtils.dRender( - "move node ID:$moveId from ${parentNode.id} to ${newParent.id}"); + "ID:$moveId, move node ID:$moveId from ${parentNode.id} to ${newParent.id}", + ); arrayList.add(renderNode); parentNode.removeChild(renderNode, needRemoveChild: false); newParent.addChild(renderNode, i); @@ -428,7 +424,7 @@ class RenderManager } void updateExtra(int instanceId, int id, Object object) { - LogUtils.dRender("updateExtra ID:$id"); + LogUtils.dRender("ID:$id, updateExtra"); var uiNode = controllerManager.findNode(instanceId, id); if (uiNode != null) { uiNode.updateExtra(object); @@ -438,7 +434,7 @@ class RenderManager } void setEventListener(int instanceId, int id, String eventName) { - LogUtils.dRender("set event ID:$id, event:$eventName"); + LogUtils.dRender("ID:$id, set event, event:$eventName"); bool needAdd = addEvent(instanceId, id, eventName); if (needAdd) { var uiNode = controllerManager.findNode(instanceId, id); @@ -490,9 +486,9 @@ class RenderManager addUpdateNodeIfNeeded(uiNode); } _deleteSelfFromParent(uiNode); - LogUtils.dRender("delete node ID:$id finish, ${uiNode.hashCode}"); + LogUtils.dRender("ID:$id, delete node success"); } else { - LogUtils.w(_kTag, "delete node id:$id error, node not found"); + LogUtils.dRender("ID:$id, delete node error, node not found"); } } diff --git a/renderer/voltron/lib/render/node.dart b/renderer/voltron/lib/render/node.dart index cc05be5b0c0..e244a8d217f 100644 --- a/renderer/voltron/lib/render/node.dart +++ b/renderer/voltron/lib/render/node.dart @@ -342,7 +342,7 @@ class RenderNode extends StyleNode { void update() { LogUtils.dRenderNode( - "($hashCode) Id:$id start updateStyle, shouldUpdateView: ${_shouldUpdateView()}", + "ID:$id, updateStyle start, shouldUpdateView: ${_shouldUpdateView()}", ); if (_shouldUpdateView()) { @@ -383,12 +383,12 @@ class RenderNode extends StyleNode { _viewModel?.sortChildren(); LogUtils.dRenderNode( - "($hashCode) Id:$id start update layout:$_hasUpdateLayout", + "ID:$id, update style, update layout start, hasUpdateLayout:$_hasUpdateLayout", ); if (_hasUpdateLayout && !isRoot) { _controllerManager.updateLayout(this); LogUtils.dRenderNode( - "($hashCode) Id:$id end update layout:[$layoutX, $layoutY, $_width, $_height]", + "ID:$id, update style, update layout end, newLayout:[$layoutX, $layoutY, $_width, $_height]", ); _hasUpdateLayout = false; } @@ -424,7 +424,7 @@ class RenderNode extends StyleNode { _notifyManageChildren = false; } } - LogUtils.dRenderNode("($hashCode) Id:$id end updateStyle"); + LogUtils.dRenderNode("ID:$id, update style end"); } void applyProps() { @@ -439,7 +439,6 @@ class RenderNode extends StyleNode { } void updateLayout(double x, double y, double w, double h) { - LogUtils.dLayout("update ($hashCode id:$id) layout : ($x, $y), ($w, $h)"); _x = x; _y = y; _width = w; diff --git a/renderer/voltron/lib/render/operator_runner.dart b/renderer/voltron/lib/render/operator_runner.dart index 342b05bbf23..15dd56004d8 100644 --- a/renderer/voltron/lib/render/operator_runner.dart +++ b/renderer/voltron/lib/render/operator_runner.dart @@ -71,7 +71,7 @@ class RenderOperatorRunner implements Destroyable { _parseOp(op as List, instanceId)?._run(); // ignore: avoid_catching_errors } on Error catch (e) { - LogUtils.dRender('consume render op error, op:$op, error:$e'); + LogUtils.dOperate('consume render op error, op:$op, error:$e'); } } } @@ -125,6 +125,7 @@ class _AddNodeOpTask extends _NodeOpTask { var parentId = _params[_RenderOpParamsKey.kParentNodeIdKey] ?? kInvalidId; var styleMap = _params[_RenderOpParamsKey.kStylesKey] ?? {}; var propMap = _params[_RenderOpParamsKey.kPropsKey] ?? {}; + LogUtils.dOperate('addNode ID:$_nodeId, className:$className, childIndex:$childIndex, parentId: $parentId, styleMap: ${styleMap.toString()}, propMap: ${propMap.toString()}'); var composePropMap = VoltronMap.fromMap(propMap); composePropMap.pushAll(VoltronMap.fromMap(styleMap)); onCreateNode(_nodeId, className); @@ -170,6 +171,7 @@ class _DeleteNodeOpTask extends _NodeOpTask { @override void _run() { + LogUtils.dOperate('deleteNode ID:$_nodeId}'); if (virtualNodeManager.hasVirtualParent(_nodeId)) { virtualNodeManager.deleteNode(_nodeId); return; @@ -188,6 +190,7 @@ class _UpdateNodeOpTask extends _NodeOpTask { @override void _run() { var propMap = _params[_RenderOpParamsKey.kPropsKey] ?? {}; + LogUtils.dOperate('updateNode ID:$_nodeId, propMap:${propMap.toString()}'); virtualNodeManager.updateNode(_nodeId, VoltronMap.fromMap(propMap)); if (virtualNodeManager.hasVirtualParent(_nodeId)) return; renderManager.addUITask(() { @@ -216,6 +219,7 @@ class _UpdateLayoutOpTask extends _NodeOpTask { var top = layoutNode[2] ?? 0; var width = layoutNode[3] ?? 0; var height = layoutNode[4] ?? 0; + LogUtils.dOperate('updateLayout ID:$nodeId, top:$top, left:$left, width: $width, height: $height'); if (virtualNodeManager.hasVirtualParent(nodeId)) continue; final TextExtra? supplier = virtualNodeManager.updateLayout(nodeId, width, layoutNode); @@ -246,7 +250,7 @@ class _MoveNodeOpTask extends _NodeOpTask { void _run() { var moveIdList = _params[_RenderOpParamsKey.kMoveIdListKey] ?? []; var movePid = _params[_RenderOpParamsKey.kMovePidKey]; - + LogUtils.dOperate('moveNode ID:$_nodeId, movePid: $movePid, moveIdList:${moveIdList.toString()}'); renderManager.addUITask(() { renderManager.moveNode(_instanceId, moveIdList, movePid, _nodeId); }); @@ -258,6 +262,7 @@ class _BatchOpTask extends RenderOpTask { @override void _run() { + LogUtils.dOperate('batch'); Map? layoutToUpdate = virtualNodeManager.endBatch(); if (layoutToUpdate != null) { layoutToUpdate.forEach((int id, TextData textData) { @@ -275,6 +280,7 @@ class _LayoutBeforeOpTask extends RenderOpTask { @override void _run() { + LogUtils.dOperate('layoutBefore'); renderManager.layoutBefore(); } } @@ -284,6 +290,7 @@ class _LayoutFinishOpTask extends RenderOpTask { @override void _run() { + LogUtils.dOperate('layoutFinish'); renderManager.addUITask(() { renderManager.layoutAfter(); }); @@ -303,6 +310,7 @@ class _CallUiFunctionOpTask extends _NodeOpTask { String callbackId = _params[_RenderOpParamsKey.kFuncIdKey] ?? Promise.kCallIdNoCallback; var promise = NativePromise(_renderContext, callId: callbackId); + LogUtils.dOperate('callUIFunction ID:$_nodeId, funcName:$funcName, realParams: ${realParams.toString()}'); renderManager.addNulUITask(() { renderManager.dispatchUIFunction( _instanceId, @@ -324,6 +332,7 @@ class _AddEventOpTask extends _NodeOpTask { @override void _run() { String eventName = _params[_RenderOpParamsKey.kFuncNameKey] ?? ''; + LogUtils.dOperate('addEvent ID:$_nodeId, eventName:$eventName'); virtualNodeManager.addEvent(_instanceId, _nodeId, eventName); if (virtualNodeManager.hasVirtualParent(_nodeId)) return; renderManager.addNulUITask(() { @@ -339,6 +348,7 @@ class _RemoveEventOpTask extends _NodeOpTask { @override void _run() { String eventName = _params[_RenderOpParamsKey.kFuncNameKey] ?? ''; + LogUtils.dOperate('removeEvent ID:$_nodeId, eventName:$eventName'); virtualNodeManager.removeEvent(_instanceId, _nodeId, eventName); if (virtualNodeManager.hasVirtualParent(_nodeId)) return; renderManager.addNulUITask(() { diff --git a/renderer/voltron/lib/render/text.dart b/renderer/voltron/lib/render/text.dart index f1022c585bd..a076df6b4cb 100644 --- a/renderer/voltron/lib/render/text.dart +++ b/renderer/voltron/lib/render/text.dart @@ -27,8 +27,6 @@ import '../style.dart'; import '../util.dart'; class TextRenderNode extends RenderNode { - static const String _kTag = 'TextRenderNode'; - TextRenderNode( int id, String className, @@ -50,19 +48,18 @@ class TextRenderNode extends RenderNode { layoutParams.widthMode, ); } catch (e) { - LogUtils.e(_kTag, "text createLayout error:$e"); + LogUtils.dRenderNode('ID:$id, calculate layout error, error:${e.toString()}'); exception = true; } } if (exception || painter == null) { - LogUtils.d(_kTag, 'measure($id) error: layout:$layoutParams'); return FlexOutput.makeMeasureResult( layoutParams.width, layoutParams.height, ); } else { - LogUtils.d(_kTag, 'measure($id):[${painter.width}, ${painter.height}]'); + LogUtils.dRenderNode('ID:$id, calculate layout success, width:${painter.width}, height:${painter.height}'); return FlexOutput.makeMeasureResult(painter.width, painter.height); } } diff --git a/renderer/voltron/lib/render/tree.dart b/renderer/voltron/lib/render/tree.dart index 71455cbdd2d..744c7308ce9 100644 --- a/renderer/voltron/lib/render/tree.dart +++ b/renderer/voltron/lib/render/tree.dart @@ -54,13 +54,10 @@ class RenderTree { _rootWidgetViewModel.onViewAdd(); } _nodeMap[node.id] = node; - LogUtils.dRenderNode( - "$hashCode render tree add node(${node.id}, ${node.hashCode})"); } void unregisterNode(RenderNode node) { - LogUtils.dRenderNode( - "$hashCode render tree remove node(${node.id}, ${node.hashCode})"); + LogUtils.dRenderNode("$hashCode render tree remove node(${node.id}, ${node.hashCode})"); _nodeMap.remove(node.id); } diff --git a/renderer/voltron/lib/serialization/string/direct_string_table.dart b/renderer/voltron/lib/serialization/string/direct_string_table.dart index 47ac435f4b8..7e8d44f2267 100644 --- a/renderer/voltron/lib/serialization/string/direct_string_table.dart +++ b/renderer/voltron/lib/serialization/string/direct_string_table.dart @@ -20,16 +20,19 @@ import 'dart:convert'; import 'dart:typed_data'; -// ignore: import_of_legacy_library_into_null_safe -import 'package:utf/utf.dart'; +import 'package:charset/charset.dart'; import 'string_encoding.dart'; import 'string_location.dart'; import 'string_table.dart'; class DirectStringTable extends StringTable { @override - String lookup(ByteData byteData, StringEncoding encoding, - StringLocation location, Object? relatedKey) { + String lookup( + ByteData byteData, + StringEncoding encoding, + StringLocation location, + Object? relatedKey, + ) { if (location == StringLocation.eVoid) { return ""; } @@ -40,7 +43,8 @@ class DirectStringTable extends StringTable { return Latin1Codec().decode(dataList); } else if (encoding == StringEncoding.utf16Le) { // utf16-le标准 - return decodeUtf16le(dataList); + var decoder = utf16.decoder as Utf16Decoder; + return decoder.decodeUtf16Le(dataList); } else { return Utf8Codec().decode(dataList); } diff --git a/renderer/voltron/lib/util/log_util.dart b/renderer/voltron/lib/util/log_util.dart index 500f80493ab..cdd6ff0b829 100644 --- a/renderer/voltron/lib/util/log_util.dart +++ b/renderer/voltron/lib/util/log_util.dart @@ -30,6 +30,7 @@ class LogUtils { static bool kDebugLogDomEnable = true; static bool kDebugLogWidgetEnable = true; + static bool kDebugLogOperateEnable = true; static bool kDebugLogRenderEnable = true; static bool kDebugLogRenderNodeEnable = true; static bool kDebugLogBridgeEnable = true; @@ -56,6 +57,12 @@ class LogUtils { } } + static void dOperate(String msg) { + if (kDebugLogOperateEnable && _kDebugEnable) { + printLog("Operate", LogLevel.debug, msg); + } + } + static void dRender(String msg) { if (kDebugLogRenderEnable && _kDebugEnable) { printLog("Render", LogLevel.debug, msg); @@ -74,9 +81,9 @@ class LogUtils { } } - static void dWidget(String tag, String msg) { + static void dWidget(String msg) { if (kDebugLogWidgetEnable && _kDebugEnable) { - printLog(tag, LogLevel.debug, msg); + printLog("Widget", LogLevel.debug, msg); } } diff --git a/renderer/voltron/lib/viewmodel/image.dart b/renderer/voltron/lib/viewmodel/image.dart index 4d871fc747c..957936a65de 100644 --- a/renderer/voltron/lib/viewmodel/image.dart +++ b/renderer/voltron/lib/viewmodel/image.dart @@ -98,10 +98,7 @@ class ImageRenderViewModel extends RenderViewModel { imageHeight = image.image.height; dispatchedEvent.add(NodeProps.kOnLoad); dispatchedEvent.add(NodeProps.kOnLoadEnd); - LogUtils.d( - 'ImageRenderViewModel', - "ImageProvider onImage, info: ${image.toString()}", - ); + LogUtils.dWidget("ID:$id, node:$idDesc, image load success, info:${image.toString()}"); notifyListeners(); } }, @@ -121,10 +118,7 @@ class ImageRenderViewModel extends RenderViewModel { if (src == curSrc) { imageEventDispatcher.handleOnError(); imageEventDispatcher.handleOnLoadEnd(); - LogUtils.w( - 'ImageController', - "ImageProvider onError, src $src exception: ${exception.toString()}", - ); + LogUtils.dWidget("ID:$id, node:$idDesc, image load error, src:$src, exception:${exception.toString()}"); notifyListeners(); } }, diff --git a/renderer/voltron/lib/viewmodel/modal.dart b/renderer/voltron/lib/viewmodel/modal.dart index 921b1538aa3..786a3808c3e 100644 --- a/renderer/voltron/lib/viewmodel/modal.dart +++ b/renderer/voltron/lib/viewmodel/modal.dart @@ -164,8 +164,7 @@ class ModalRenderViewModel extends GroupViewModel void showOrDismissDialog() { WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - LogUtils.dWidget( - "ModalWidget", "container build inner, can show:$canDialogShow"); + LogUtils.dWidget("ID:$id, node:$idDesc, modal can show:$canDialogShow"); if (canDialogShow) { showDialog(); } else { @@ -175,8 +174,7 @@ class ModalRenderViewModel extends GroupViewModel } void showDialog() { - LogUtils.dWidget("ModalWidget", - "real show dialog, (isShow: $isShowDialog, childLen(${children.length}))"); + LogUtils.dWidget("ID:$id, node:$idDesc, fire modal show"); var buildContext = context.getInstance(rootId)?.rootKey.currentContext; if (!isShowDialog && buildContext != null && children.isNotEmpty) { isShowDialog = true; @@ -197,7 +195,7 @@ class ModalRenderViewModel extends GroupViewModel return _animation( aniType: animationType, child: _dialogRoot( - child: ModalDialogWidget(this), + child: ModalContainerWidget(this), ), animation: anim1, ); @@ -379,8 +377,7 @@ class ModalRenderViewModel extends GroupViewModel } void dismissDialog() { - LogUtils.dWidget( - "ModalWidget", "real dismiss dialog, (isShow: $isShowDialog)"); + LogUtils.dWidget("ID:$id, node:$idDesc, fire modal dismiss"); var buildContext = context.getInstance(rootId)?.rootKey.currentContext; if (isShowDialog && buildContext != null) { removeFrameCallback(); diff --git a/renderer/voltron/lib/viewmodel/view_model.dart b/renderer/voltron/lib/viewmodel/view_model.dart index 80141b759d9..c69a0c93ef1 100644 --- a/renderer/voltron/lib/viewmodel/view_model.dart +++ b/renderer/voltron/lib/viewmodel/view_model.dart @@ -21,7 +21,7 @@ import 'package:flutter/material.dart'; // ignore: import_of_legacy_library_into_null_safe -import 'package:gradient_like_css/gradient_like_css.dart'; +import 'package:gradient_like_css/gradient_like_css.dart' as gradient_like_css; import '../common.dart'; import '../gesture.dart'; @@ -402,12 +402,12 @@ class RenderViewModel extends ChangeNotifier { } void updateLayout(double x, double y, double width, double height) { - LogUtils.dRender("render view model, before update layout($this)"); + LogUtils.dRender("ID:$id, before update layout($this)"); _x = x; _y = y; _width = width; _height = height; - LogUtils.dRender("render view model, after update layout($this)"); + LogUtils.dRender("ID:$id, after update layout($this)"); } void update() { @@ -677,7 +677,7 @@ class RenderViewModel extends ChangeNotifier { var side = _getGradientSide(gradientData?.get('side')); var stops = _getGradientStops(gradientData?.get('stops')); if (stops != null) { - return CssLike.linearGradient(side, stops); + return gradient_like_css.linearGradient(side, stops); } } return null; diff --git a/renderer/voltron/lib/voltron_renderer.dart b/renderer/voltron/lib/voltron_renderer.dart index 0bdd4fa6d42..ffa3c67cc95 100644 --- a/renderer/voltron/lib/voltron_renderer.dart +++ b/renderer/voltron/lib/voltron_renderer.dart @@ -18,7 +18,7 @@ // limitations under the License. // -library voltron_render; +library voltron_renderer; export 'bridge.dart'; export "common.dart"; diff --git a/renderer/voltron/lib/widget/div.dart b/renderer/voltron/lib/widget/div.dart index 1001c19668c..7da6aaeca23 100644 --- a/renderer/voltron/lib/widget/div.dart +++ b/renderer/voltron/lib/widget/div.dart @@ -29,12 +29,12 @@ import '../controller.dart'; import '../style.dart'; import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; +import '../widget.dart'; class DivWidget extends FRStatefulWidget { - final DivRenderViewModel viewModel; + final DivRenderViewModel _viewModel; - DivWidget(this.viewModel) : super(viewModel); + DivWidget(this._viewModel) : super(_viewModel); @override State createState() { @@ -45,9 +45,11 @@ class DivWidget extends FRStatefulWidget { class _DivWidgetState extends FRState { @override Widget build(BuildContext context) { - LogUtils.dWidget('div', "type: DivWidget(${widget.viewModel.idDesc})"); + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build div widget", + ); return ChangeNotifierProvider.value( - value: widget.viewModel, + value: widget._viewModel, child: divChild(), ); } @@ -58,7 +60,12 @@ class _DivWidgetState extends FRState { viewModel, child: Selector( selector: (context, viewModel) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build div inner widget", + ); + return DivContainerWidget(viewModel); + }, ), ); }); @@ -134,13 +141,15 @@ class _BoxWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build box widget, width:${widget._viewModel.width}, height:${widget._viewModel.height}", + ); var engineMonitor = widget._viewModel.context.engineMonitor; if (!(engineMonitor.hasAddPostFrameCall)) { engineMonitor.hasAddPostFrameCall = true; WidgetsBinding.instance.addPostFrameCallback((duration) { LogUtils.dWidget( - "div", - 'addPostFrameCallback ${widget._viewModel.id.toString()}', + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, addPostFrameCallback", ); var engineMonitor = widget._viewModel.context.engineMonitor; engineMonitor.postFrameCallback(); @@ -149,13 +158,11 @@ class _BoxWidgetState extends FRState { if (!kReleaseMode && debugProfileBuildsEnabled) { Timeline.startSync('[b]_BoxWidgetState', arguments: timelineArgumentsIndicatingLandmarkEvent); } - final width = widget._viewModel.width; final height = widget._viewModel.height; if (widget._viewModel.noSize) { - LogUtils.d( - "BoxWidget", - "build box widget error, wrong size:($width, $height), node:${widget._viewModel.idDesc}", + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build box widget error, wrong size", ); if (!kReleaseMode && debugProfileBuildsEnabled) Timeline.finishSync(); return const SizedBox( @@ -224,8 +231,6 @@ class _BoxWidgetState extends FRState { ); } - - /// 4. use UnconstrainedBox make child is able to bugger than parent /// exclude waterfallItem (waterfallItem has tight constraints) if (widget._viewModel is! WaterfallItemViewModel) { @@ -358,8 +363,7 @@ class PositionWidget extends FRBaseStatelessWidget { ); } LogUtils.dWidget( - "PositionWidget", - "build position widget(${_viewModel.layoutX}, ${_viewModel.layoutY}, ${_viewModel.width}, ${_viewModel.height}) , node:${_viewModel.idDesc}", + "ID:${_viewModel.id}, node:${_viewModel.idDesc}, build position widget(${_viewModel.layoutX}, ${_viewModel.layoutY}, ${_viewModel.width}, ${_viewModel.height})", ); Widget result; var node = child; @@ -368,9 +372,8 @@ class PositionWidget extends FRBaseStatelessWidget { if (parent?.useStackLayout ?? false) { if (_viewModel.noSize || _viewModel.noPosition) { if (_viewModel.isShow) { - LogUtils.d( - "PositionWidget", - "build box widget error, wrong size:(${_viewModel.layoutX}, ${_viewModel.layoutY}), node:${_viewModel.idDesc}", + LogUtils.dWidget( + "ID:${_viewModel.id}, node:${_viewModel.idDesc}, build position widget error, wrong position or wrong size", ); } result = const Positioned( diff --git a/renderer/voltron/lib/widget/image.dart b/renderer/voltron/lib/widget/image.dart index 54963114352..f3dec19025c 100644 --- a/renderer/voltron/lib/widget/image.dart +++ b/renderer/voltron/lib/widget/image.dart @@ -23,18 +23,17 @@ import 'dart:collection'; import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; -import '../common/voltron_map.dart'; +import '../common.dart'; import '../render.dart'; import '../style.dart'; import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class ImageWidget extends FRStatefulWidget { - final ImageRenderViewModel viewModel; + final ImageRenderViewModel _viewModel; - ImageWidget(this.viewModel) : super(viewModel); + ImageWidget(this._viewModel) : super(_viewModel); @override State createState() { @@ -45,12 +44,9 @@ class ImageWidget extends FRStatefulWidget { class _ImageWidgetState extends FRState { @override Widget build(BuildContext context) { - LogUtils.dWidget( - "ImageWidget", - "image widget:(id: ${widget.viewModel.id}, name: ${widget.viewModel.name}, parent: ${widget.viewModel.parent?.id})", - ); + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build image widget"); return ChangeNotifierProvider.value( - value: widget.viewModel, + value: widget._viewModel, child: Consumer( builder: (context, viewModel, widget) { return PositionWidget( @@ -63,6 +59,7 @@ class _ImageWidgetState extends FRState { } Widget imageChild(ImageRenderViewModel imageViewModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build image inner widget"); var image = imageViewModel.image; var defaultImage = imageViewModel.defaultImage; late Widget imageWidget; diff --git a/renderer/voltron/lib/widget/list.dart b/renderer/voltron/lib/widget/list.dart index 953604fc09a..72f6d8c70ac 100644 --- a/renderer/voltron/lib/widget/list.dart +++ b/renderer/voltron/lib/widget/list.dart @@ -25,6 +25,7 @@ import 'package:pull_to_refresh/pull_to_refresh.dart'; import '../common.dart'; import '../controller.dart'; import '../viewmodel.dart'; +import '../util.dart'; import '../widget.dart'; class ListViewWidget extends FRStatefulWidget { @@ -41,6 +42,9 @@ class ListViewWidget extends FRStatefulWidget { class _ListViewWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build list widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -78,6 +82,9 @@ class _ListViewWidgetState extends FRState { } Widget listView(ListViewDetailModel viewModel) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build list inner widget", + ); var hasSticky = getStickyStatus(viewModel); var delegate = viewModel.delegate; diff --git a/renderer/voltron/lib/widget/list_item.dart b/renderer/voltron/lib/widget/list_item.dart index 9d7d70efff8..d6b65579b0b 100644 --- a/renderer/voltron/lib/widget/list_item.dart +++ b/renderer/voltron/lib/widget/list_item.dart @@ -22,8 +22,8 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class ListItemWidget extends FRStatefulWidget { final ListItemViewModel _viewModel; @@ -39,6 +39,9 @@ class ListItemWidget extends FRStatefulWidget { class _ListItemWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build list item widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -68,7 +71,12 @@ class _ListItemWidgetState extends FRState { viewModel, child: Selector( selector: (context, viewModel) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build list item inner widget", + ); + return DivContainerWidget(viewModel); + }, ), ); }, diff --git a/renderer/voltron/lib/widget/modal.dart b/renderer/voltron/lib/widget/modal.dart index 53b588cc145..a9ffd8e05de 100644 --- a/renderer/voltron/lib/widget/modal.dart +++ b/renderer/voltron/lib/widget/modal.dart @@ -24,68 +24,77 @@ import 'package:provider/provider.dart'; import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; -class ModalContainerWidget extends FRStatefulWidget { +class ModalWidget extends FRStatefulWidget { final ModalRenderViewModel _viewModel; - ModalContainerWidget(this._viewModel) : super(_viewModel); + ModalWidget(this._viewModel) : super(_viewModel); @override State createState() { - return _ModalContainerWidgetState(); + return _ModalWidgetState(); } } -class _ModalContainerWidgetState extends FRState { +class _ModalWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build modal widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( - selector: (context, renderViewModel) { - return _ModalContainerModel( - canShowDialog: renderViewModel.canDialogShow, - aniType: renderViewModel.animationType, - transparent: renderViewModel.transparent, - immersionStatusBar: renderViewModel.immersionStatusBar, - statusBarTextDarkColor: renderViewModel.statusBarTextDarkColor, - animationDuration: renderViewModel.animationDuration, - barrierColor: renderViewModel.barrierColor, - ); - }, builder: (context, modalViewModel, widget) { - WidgetsBinding.instance.addPostFrameCallback((timeStamp) { - if (modalViewModel.canShowDialog) { - showDialog(); - } else { - dismissDialog(); - } - }); - - return Container(); - }), + selector: (context, renderViewModel) { + return _ModalContainerModel( + canShowDialog: renderViewModel.canDialogShow, + aniType: renderViewModel.animationType, + transparent: renderViewModel.transparent, + immersionStatusBar: renderViewModel.immersionStatusBar, + statusBarTextDarkColor: renderViewModel.statusBarTextDarkColor, + animationDuration: renderViewModel.animationDuration, + barrierColor: renderViewModel.barrierColor, + ); + }, + builder: (context, modalViewModel, widget) { + WidgetsBinding.instance.addPostFrameCallback((timeStamp) { + if (modalViewModel.canShowDialog) { + showDialog(); + } else { + dismissDialog(); + } + }); + return Container(); + }, + ), ); } void showDialog() { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, show modal", + ); widget._viewModel.showDialog(); } void dismissDialog() { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, dismiss modal", + ); widget._viewModel.dismissDialog(); } @override void deactivate() { - LogUtils.dWidget("ModalWidget", "deactivate"); + LogUtils.dWidget("ID:${widget._viewModel.id}, deactivate modal widget"); dismissDialog(); super.deactivate(); } @override void dispose() { - LogUtils.dWidget("ModalWidget", "dispose"); + LogUtils.dWidget("ID:${widget._viewModel.id}, dispose modal widget"); dismissDialog(); super.dispose(); } @@ -125,18 +134,18 @@ class _ModalContainerModel { barrierColor == other.barrierColor; } -class ModalDialogWidget extends StatefulWidget { +class ModalContainerWidget extends StatefulWidget { final ModalRenderViewModel _viewModel; - ModalDialogWidget(this._viewModel) : super(key: _viewModel.modalKey); + ModalContainerWidget(this._viewModel) : super(key: _viewModel.modalKey); @override State createState() { - return _ModalDialogWidgetState(); + return _ModalContainerWidgetState(); } } -class _ModalDialogWidgetState extends State { +class _ModalContainerWidgetState extends State { @override Widget build(BuildContext context) { return ChangeNotifierProvider.value( diff --git a/renderer/voltron/lib/widget/pull_footer.dart b/renderer/voltron/lib/widget/pull_footer.dart index 3283241e0c1..fe1da9c1072 100644 --- a/renderer/voltron/lib/widget/pull_footer.dart +++ b/renderer/voltron/lib/widget/pull_footer.dart @@ -22,8 +22,8 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class ListPullFooterWidget extends FRStatefulWidget { final ListPullFooterViewModel _viewModel; @@ -39,6 +39,9 @@ class ListPullFooterWidget extends FRStatefulWidget { class _ListPullFooterWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build pull footer widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -56,7 +59,12 @@ class _ListPullFooterWidgetState extends FRState { viewModel, child: Selector0( selector: (context) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build pull footer inner widget", + ); + return DivContainerWidget(viewModel); + }, ), ); }, diff --git a/renderer/voltron/lib/widget/pull_header.dart b/renderer/voltron/lib/widget/pull_header.dart index 423f3c1244e..acd9e5e6e77 100644 --- a/renderer/voltron/lib/widget/pull_header.dart +++ b/renderer/voltron/lib/widget/pull_header.dart @@ -22,8 +22,8 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class ListPullHeaderWidget extends FRStatefulWidget { final ListPullHeaderViewModel _viewModel; @@ -39,6 +39,9 @@ class ListPullHeaderWidget extends FRStatefulWidget { class _ListPullHeaderWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build pull header widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -56,7 +59,12 @@ class _ListPullHeaderWidgetState extends FRState { viewModel, child: Selector0( selector: (context) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build pull header inner widget", + ); + return DivContainerWidget(viewModel); + }, ), ); }, diff --git a/renderer/voltron/lib/widget/qr.dart b/renderer/voltron/lib/widget/qr.dart index f6628ff2b56..73c2073736a 100644 --- a/renderer/voltron/lib/widget/qr.dart +++ b/renderer/voltron/lib/widget/qr.dart @@ -24,13 +24,13 @@ import 'package:provider/provider.dart'; import 'package:qr_flutter/qr_flutter.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class QrWidget extends FRStatefulWidget { - final QrRenderViewModel renderViewModel; + final QrRenderViewModel _viewModel; - QrWidget(this.renderViewModel) : super(renderViewModel); + QrWidget(this._viewModel) : super(_viewModel); @override State createState() { @@ -41,8 +41,11 @@ class QrWidget extends FRStatefulWidget { class _QrWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build qr widget", + ); return ChangeNotifierProvider.value( - value: widget.renderViewModel, + value: widget._viewModel, child: Consumer( builder: (context, viewModel, widget) { return PositionWidget( @@ -55,6 +58,9 @@ class _QrWidgetState extends FRState { } Widget qrView(QrRenderViewModel viewModel) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build qr inner widget", + ); var text = viewModel.text; if (text != null && text.isNotEmpty) { return QrImage( @@ -68,12 +74,4 @@ class _QrWidgetState extends FRState { return Container(); } } - - @override - void dispose() { - super.dispose(); - if (!widget.renderViewModel.isDispose) { - widget.renderViewModel.onDispose(); - } - } } diff --git a/renderer/voltron/lib/widget/refresh.dart b/renderer/voltron/lib/widget/refresh.dart index 7553475700d..8477039bea3 100644 --- a/renderer/voltron/lib/widget/refresh.dart +++ b/renderer/voltron/lib/widget/refresh.dart @@ -26,8 +26,8 @@ import 'package:pull_to_refresh/pull_to_refresh.dart'; import '../controller.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class RefreshWrapperWidget extends FRStatefulWidget { final RefreshWrapperRenderViewModel _viewModel; @@ -43,6 +43,9 @@ class RefreshWrapperWidget extends FRStatefulWidget { class _RefreshWrapperWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build refresh wrapper widget", + ); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -69,6 +72,9 @@ class _RefreshWrapperWidgetState extends FRState { } Widget refreshWrapper(RefreshWrapperRenderContentViewModel viewModel) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build refresh wrapper inner widget", + ); var content = viewModel.content; if (content == null) { return Container(); diff --git a/renderer/voltron/lib/widget/refresh_item.dart b/renderer/voltron/lib/widget/refresh_item.dart index ee26ae37c8b..d216d47deb5 100644 --- a/renderer/voltron/lib/widget/refresh_item.dart +++ b/renderer/voltron/lib/widget/refresh_item.dart @@ -22,13 +22,13 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../util.dart'; +import '../widget.dart'; class RefreshWrapperItemWidget extends FRStatefulWidget { - final RefreshWrapperItemRenderViewModel viewModel; + final RefreshWrapperItemRenderViewModel _viewModel; - RefreshWrapperItemWidget(this.viewModel) : super(viewModel); + RefreshWrapperItemWidget(this._viewModel) : super(_viewModel); @override State createState() { @@ -39,7 +39,13 @@ class RefreshWrapperItemWidget extends FRStatefulWidget { class _RefreshWrapperItemWidgetState extends FRState { @override Widget build(BuildContext context) { - return ChangeNotifierProvider.value(value: widget.viewModel, child: _boxContent()); + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build refresh item widget", + ); + return ChangeNotifierProvider.value( + value: widget._viewModel, + child: _boxContent(), + ); } Widget _boxContent() { @@ -49,7 +55,12 @@ class _RefreshWrapperItemWidgetState extends FRState { viewModel, child: Selector( selector: (context, viewModel) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget( + "ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build refresh item inner widget", + ); + return DivContainerWidget(viewModel); + }, ), ); }, diff --git a/renderer/voltron/lib/widget/root.dart b/renderer/voltron/lib/widget/root.dart index 4f4e460d043..9df2a3243ed 100644 --- a/renderer/voltron/lib/widget/root.dart +++ b/renderer/voltron/lib/widget/root.dart @@ -90,7 +90,7 @@ class RootWidgetViewModel extends ChangeNotifier { checkUpdateDimension(-1, -1, false, false); } - void onLoadError(errCode) { + void onLoadError(int errCode) { _loadErrCode = errCode; _loadError = true; _loadCompleted = true; @@ -290,7 +290,7 @@ class _VoltronWidgetState extends State with TickerProviderStateM @override Widget build(BuildContext context) { - LogUtils.i("root_widget", "build root widget"); + LogUtils.dWidget("ID:${viewModel.id}, build root widget"); return LayoutBuilder(builder: (context, constraints) { if (hasDispose) { return _empty(context); @@ -359,15 +359,14 @@ class _VoltronWidgetState extends State with TickerProviderStateM return Consumer( builder: (context, viewModel, widget) { var model = LoadingModel(!(viewModel.loadFinish), viewModel.loadError); - LogUtils.dWidget("root_widget", "build content start"); if (model.isLoading) { - LogUtils.dWidget("root_widget", "build content loading"); + LogUtils.dWidget("ID:${viewModel.id}, build root widget, build content loading"); return _loading(context); } else if (model.isError) { - LogUtils.dWidget("root_widget", "build content error"); + LogUtils.dWidget("ID:${viewModel.id}, build root widget, build content error"); return _error(context, viewModel); } else { - LogUtils.dWidget("root_widget", "build content"); + LogUtils.dWidget("ID:${viewModel.id}, build root widget, build content"); return _content(viewModel); } }, @@ -410,7 +409,6 @@ class _VoltronWidgetState extends State with TickerProviderStateM } Widget _content(RootWidgetViewModel viewModel) { - LogUtils.dWidget("root_widget", "create root widget content, build"); var nodeList = []; var tree = viewModel.renderTree; if (tree != null) { @@ -519,7 +517,6 @@ class _VoltronWidgetState extends State with TickerProviderStateM } void _loadModule() { - LogUtils.i("root_widget", "start to load module"); widget.loader.load(viewModel); } diff --git a/renderer/voltron/lib/widget/scroller.dart b/renderer/voltron/lib/widget/scroller.dart index 14c413ce863..bd1ea130fc0 100644 --- a/renderer/voltron/lib/widget/scroller.dart +++ b/renderer/voltron/lib/widget/scroller.dart @@ -22,9 +22,9 @@ import 'package:flutter/material.dart'; import 'package:provider/provider.dart'; import '../gesture.dart'; +import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class ScrollViewWidget extends FRStatefulWidget { final ScrollViewRenderViewModel _viewModel; @@ -40,6 +40,7 @@ class ScrollViewWidget extends FRStatefulWidget { class _ScrollViewWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build scroller widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -66,6 +67,7 @@ class _ScrollViewWidgetState extends FRState { } Widget scrollView(ScrollViewDetailRenderViewModel widgetModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build scroller inner widget"); if (widgetModel.children.isEmpty) { return Container(); } @@ -123,9 +125,6 @@ class _ScrollViewWidgetState extends FRState { @override void dispose() { super.dispose(); - if (!widget._viewModel.isDispose) { - widget._viewModel.onDispose(); - } } } diff --git a/renderer/voltron/lib/widget/text.dart b/renderer/voltron/lib/widget/text.dart index e2c9be613f3..76e2207e6c1 100644 --- a/renderer/voltron/lib/widget/text.dart +++ b/renderer/voltron/lib/widget/text.dart @@ -23,14 +23,14 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import '../style.dart'; +import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class TextWidget extends FRStatefulWidget { - final TextRenderViewModel renderViewModel; + final TextRenderViewModel _viewModel; - TextWidget(this.renderViewModel) : super(renderViewModel); + TextWidget(this._viewModel) : super(_viewModel); @override State createState() { @@ -41,8 +41,9 @@ class TextWidget extends FRStatefulWidget { class _TextWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build text widget"); return ChangeNotifierProvider.value( - value: widget.renderViewModel, + value: widget._viewModel, child: Consumer( builder: (context, viewModel, widget) { return PositionWidget( @@ -55,6 +56,7 @@ class _TextWidgetState extends FRState { } Widget textView(TextRenderViewModel textModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build text inner widget"); var data = textModel.data; if (data != null) { return Container( @@ -75,9 +77,6 @@ class _TextWidgetState extends FRState { @override void dispose() { super.dispose(); - if (!widget.renderViewModel.isDispose) { - widget.renderViewModel.onDispose(); - } } } diff --git a/renderer/voltron/lib/widget/text_input.dart b/renderer/voltron/lib/widget/text_input.dart index 9f8c99274d9..88def020fe5 100644 --- a/renderer/voltron/lib/widget/text_input.dart +++ b/renderer/voltron/lib/widget/text_input.dart @@ -22,9 +22,9 @@ import 'package:flutter/material.dart'; import 'package:flutter/services.dart'; import 'package:provider/provider.dart'; +import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class TextInputWidget extends FRStatefulWidget { final TextInputRenderViewModel _viewModel; @@ -54,6 +54,7 @@ class _TextInputWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build text input widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Consumer( @@ -68,6 +69,7 @@ class _TextInputWidgetState extends FRState { } Widget _textInput(TextInputRenderViewModel inputModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build text input inner widget"); return TextField( scrollPadding: const EdgeInsets.all(0), decoration: InputDecoration( @@ -127,12 +129,4 @@ class _TextInputWidgetState extends FRState { ), ); } - - @override - void dispose() { - super.dispose(); - if (!widget._viewModel.isDispose) { - widget._viewModel.onDispose(); - } - } } diff --git a/renderer/voltron/lib/widget/view_pager.dart b/renderer/voltron/lib/widget/view_pager.dart index 108c4d55341..e23592373c9 100644 --- a/renderer/voltron/lib/widget/view_pager.dart +++ b/renderer/voltron/lib/widget/view_pager.dart @@ -24,8 +24,7 @@ import 'package:provider/provider.dart'; import '../style.dart'; import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class ViewPagerWidget extends FRStatefulWidget { final ViewPagerRenderViewModel _viewModel; @@ -41,6 +40,7 @@ class ViewPagerWidget extends FRStatefulWidget { class _ViewPagerWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build view pager widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Consumer( @@ -55,7 +55,7 @@ class _ViewPagerWidgetState extends FRState { } Widget viewPager(ViewPagerRenderViewModel viewModel) { - LogUtils.dWidget("view_pager", "build view pager, children:${viewModel.children.length}"); + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build view pager inner widget, children length:${viewModel.children.length}"); if (viewModel.children.isEmpty) { return Container(); } else { @@ -110,7 +110,7 @@ class _ViewPagerWidgetState extends FRState { } void onPageChanged(int page) { - LogUtils.d("view_pager", "page change:$page"); + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, fire view pager event, page change:$page"); widget._viewModel.onPageChanged(page); } @@ -137,21 +137,9 @@ class _ViewPagerWidgetState extends FRState { child: content, ); } - - LogUtils.dWidget( - "view_pager", - "build view pager child(${childViewModel.id}) success", - ); + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build view pager child(${childViewModel.id})"); return content; } - - @override - void dispose() { - super.dispose(); - if (!widget._viewModel.isDispose) { - widget._viewModel.onDispose(); - } - } } class ViewPagerItemWidget extends FRStatefulWidget { diff --git a/renderer/voltron/lib/widget/waterfall.dart b/renderer/voltron/lib/widget/waterfall.dart index fafe813394a..49ffcd4df0a 100644 --- a/renderer/voltron/lib/widget/waterfall.dart +++ b/renderer/voltron/lib/widget/waterfall.dart @@ -22,6 +22,7 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import 'package:waterfall_flow/waterfall_flow.dart'; +import '../util.dart'; import '../viewmodel.dart'; import '../widget.dart'; @@ -39,6 +40,7 @@ class WaterfallWidget extends FRStatefulWidget { class _WaterfallWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build waterfall widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -61,35 +63,8 @@ class _WaterfallWidgetState extends FRState { ); } - Widget generateWaterfallFlow(WaterfallViewModel viewModel) { - Widget waterfallFlow = SliverWaterfallFlow( - gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( - crossAxisCount: viewModel.numberOfColumns, - mainAxisSpacing: viewModel.interItemSpacing, - crossAxisSpacing: viewModel.columnSpacing, - ), - delegate: SliverChildBuilderDelegate( - (c, index) { - var child = viewModel.realItemList[index]; - return ClipRRect( - clipBehavior: Clip.hardEdge, - child: generateByViewModel(context, child), - ); - }, - childCount: viewModel.realItemList.length, - ), - ); - var contentInset = viewModel.contentInset; - if (contentInset != null) { - waterfallFlow = SliverPadding( - padding: contentInset, - sliver: waterfallFlow, - ); - } - return waterfallFlow; - } - Widget _waterfall(WaterfallViewModel viewModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build waterfall inner widget"); var slivers = []; var containBannerView = viewModel.containBannerView; var bannerViewModel = viewModel.bannerViewModel; @@ -118,4 +93,32 @@ class _WaterfallWidgetState extends FRState { ); return waterfall; } + + Widget generateWaterfallFlow(WaterfallViewModel viewModel) { + Widget waterfallFlow = SliverWaterfallFlow( + gridDelegate: SliverWaterfallFlowDelegateWithFixedCrossAxisCount( + crossAxisCount: viewModel.numberOfColumns, + mainAxisSpacing: viewModel.interItemSpacing, + crossAxisSpacing: viewModel.columnSpacing, + ), + delegate: SliverChildBuilderDelegate( + (c, index) { + var child = viewModel.realItemList[index]; + return ClipRRect( + clipBehavior: Clip.hardEdge, + child: generateByViewModel(context, child), + ); + }, + childCount: viewModel.realItemList.length, + ), + ); + var contentInset = viewModel.contentInset; + if (contentInset != null) { + waterfallFlow = SliverPadding( + padding: contentInset, + sliver: waterfallFlow, + ); + } + return waterfallFlow; + } } diff --git a/renderer/voltron/lib/widget/waterfall_item.dart b/renderer/voltron/lib/widget/waterfall_item.dart index a04b876e640..2e26ff0b09c 100644 --- a/renderer/voltron/lib/widget/waterfall_item.dart +++ b/renderer/voltron/lib/widget/waterfall_item.dart @@ -21,9 +21,9 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; +import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class WaterfallItemWidget extends FRStatefulWidget { final WaterfallItemViewModel _viewModel; @@ -39,6 +39,7 @@ class WaterfallItemWidget extends FRStatefulWidget { class _WaterfallItemWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build waterfall item widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -56,7 +57,10 @@ class _WaterfallItemWidgetState extends FRState { viewModel, child: Selector0( selector: (context) => DivContainerViewModel(viewModel), - builder: (context, viewModel, _) => DivContainerWidget(viewModel), + builder: (context, viewModel, _) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build waterfall item inner widget"); + return DivContainerWidget(viewModel); + }, ), ); }, diff --git a/renderer/voltron/lib/widget/web_view.dart b/renderer/voltron/lib/widget/web_view.dart index dd6ca8db30c..f5dd4673322 100644 --- a/renderer/voltron/lib/widget/web_view.dart +++ b/renderer/voltron/lib/widget/web_view.dart @@ -24,9 +24,9 @@ import 'package:flutter/widgets.dart'; import 'package:provider/provider.dart'; import 'package:webview_flutter/webview_flutter.dart'; +import '../util.dart'; import '../viewmodel.dart'; -import 'base.dart'; -import 'div.dart'; +import '../widget.dart'; class WebViewWidget extends FRStatefulWidget { final WebViewModel _viewModel; @@ -49,6 +49,7 @@ class WebViewWidgetState extends FRState { @override Widget build(BuildContext context) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build web view widget"); return ChangeNotifierProvider.value( value: widget._viewModel, child: Selector( @@ -72,6 +73,7 @@ class WebViewWidgetState extends FRState { } Widget _webWidget(WebViewModel viewModel) { + LogUtils.dWidget("ID:${widget._viewModel.id}, node:${widget._viewModel.idDesc}, build web view inner widget"); return WebView( initialUrl: viewModel.src, userAgent: viewModel.userAgent, diff --git a/renderer/voltron/pubspec.yaml b/renderer/voltron/pubspec.yaml index a34e87574aa..14ec70b71a1 100644 --- a/renderer/voltron/pubspec.yaml +++ b/renderer/voltron/pubspec.yaml @@ -40,13 +40,13 @@ dependencies: pull_to_refresh: ^2.0.0 collection: ^1.15.0 path: ^1.8.0 - utf: ^0.9.0+5 fluttertoast: ^8.0.8 - gradient_like_css: ^0.5.1 + gradient_like_css: ^1.0.1 qr_flutter: ^4.0.0 keyboard_utils: ^1.3.4 webview_flutter: ^3.0.2 waterfall_flow: ^3.0.2 + charset: ^1.1.0 dev_dependencies: flutter_test: @@ -55,7 +55,4 @@ dev_dependencies: build_runner: ^2.2.1 mockito: ^5.3.0 -dependency_overrides: - win32: 2.6.1 -