@ray-js/framework 0.4.11 → 0.4.12-beta-0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (39) hide show
  1. package/lib/api/index.js +2 -1
  2. package/lib/api/index.js.map +1 -0
  3. package/lib/api/tabBar.js +10 -17
  4. package/lib/api/tabBar.js.map +1 -0
  5. package/lib/app/createApp.jsx +11 -0
  6. package/lib/app/createApp.jsx.map +1 -0
  7. package/lib/app/createAppInstance.jsx +13 -0
  8. package/lib/app/createAppInstance.jsx.map +1 -0
  9. package/lib/app/index.d.ts +1 -1
  10. package/lib/app/index.jsx +8 -0
  11. package/lib/app/index.jsx.map +1 -0
  12. package/lib/components/AppWrapper/index.jsx +30 -0
  13. package/lib/components/AppWrapper/index.jsx.map +1 -0
  14. package/lib/components/Application/index.d.ts +1 -1
  15. package/lib/components/Application/index.jsx +59 -0
  16. package/lib/components/Application/index.jsx.map +1 -0
  17. package/lib/components/PageWrapper/index.jsx +118 -0
  18. package/lib/components/PageWrapper/index.jsx.map +1 -0
  19. package/lib/components/TabBar/index.jsx +55 -0
  20. package/lib/components/TabBar/index.jsx.map +1 -0
  21. package/lib/createApp.jsx +11 -0
  22. package/lib/createApp.jsx.map +1 -0
  23. package/lib/index.js +3 -2
  24. package/lib/index.js.map +1 -0
  25. package/lib/index.native.js +2 -1
  26. package/lib/index.native.js.map +1 -0
  27. package/lib/runtime/index.js +4 -3
  28. package/lib/runtime/index.js.map +1 -0
  29. package/lib/runtime/responsive.js +20 -21
  30. package/lib/runtime/responsive.js.map +1 -0
  31. package/lib/store/appStore.js +19 -20
  32. package/lib/store/appStore.js.map +1 -0
  33. package/lib/utils/index.js +2 -1
  34. package/lib/utils/index.js.map +1 -0
  35. package/lib/utils/normalizeTabBar.js +11 -17
  36. package/lib/utils/normalizeTabBar.js.map +1 -0
  37. package/lib/utils/withPublicPath.js +3 -4
  38. package/lib/utils/withPublicPath.js.map +1 -0
  39. package/package.json +11 -11
package/lib/api/index.js CHANGED
@@ -1 +1,2 @@
1
- export { showTabBar, hideTabBar } from './tabBar';
1
+ export { showTabBar, hideTabBar } from './tabBar';
2
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/api/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,UAAU,CAAA"}
package/lib/api/tabBar.js CHANGED
@@ -1,21 +1,14 @@
1
1
  import { appStoreEmitter, actions } from '../store/appStore';
2
2
  export function showTabBar(options) {
3
- var _options$success, _options$complete;
4
-
5
- appStoreEmitter.emit(actions.toggleTabBar, {
6
- visible: true,
7
- animation: options.animation
8
- });
9
- options === null || options === void 0 ? void 0 : (_options$success = options.success) === null || _options$success === void 0 ? void 0 : _options$success.call(options);
10
- options === null || options === void 0 ? void 0 : (_options$complete = options.complete) === null || _options$complete === void 0 ? void 0 : _options$complete.call(options);
3
+ var _a, _b;
4
+ appStoreEmitter.emit(actions.toggleTabBar, { visible: true, animation: options.animation });
5
+ (_a = options === null || options === void 0 ? void 0 : options.success) === null || _a === void 0 ? void 0 : _a.call(options);
6
+ (_b = options === null || options === void 0 ? void 0 : options.complete) === null || _b === void 0 ? void 0 : _b.call(options);
11
7
  }
12
8
  export function hideTabBar(options) {
13
- var _options$success2, _options$complete2;
14
-
15
- appStoreEmitter.emit(actions.toggleTabBar, {
16
- visible: false,
17
- animation: options.animation
18
- });
19
- options === null || options === void 0 ? void 0 : (_options$success2 = options.success) === null || _options$success2 === void 0 ? void 0 : _options$success2.call(options);
20
- options === null || options === void 0 ? void 0 : (_options$complete2 = options.complete) === null || _options$complete2 === void 0 ? void 0 : _options$complete2.call(options);
21
- }
9
+ var _a, _b;
10
+ appStoreEmitter.emit(actions.toggleTabBar, { visible: false, animation: options.animation });
11
+ (_a = options === null || options === void 0 ? void 0 : options.success) === null || _a === void 0 ? void 0 : _a.call(options);
12
+ (_b = options === null || options === void 0 ? void 0 : options.complete) === null || _b === void 0 ? void 0 : _b.call(options);
13
+ }
14
+ //# sourceMappingURL=tabBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabBar.js","sourceRoot":"","sources":["../../src/api/tabBar.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,eAAe,EAAE,OAAO,EAAE,MAAM,mBAAmB,CAAA;AAE5D,MAAM,UAAU,UAAU,CAAC,OAAkD;;IAC3E,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC3F,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,uDAAI,CAAA;IACpB,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA;AACvB,CAAC;AAED,MAAM,UAAU,UAAU,CAAC,OAAkD;;IAC3E,eAAe,CAAC,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,EAAE,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,OAAO,CAAC,SAAS,EAAE,CAAC,CAAA;IAC5F,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,OAAO,uDAAI,CAAA;IACpB,MAAA,OAAO,aAAP,OAAO,uBAAP,OAAO,CAAE,QAAQ,uDAAI,CAAA;AACvB,CAAC"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ import { Application } from '../components/Application';
4
+ export function createApp(options) {
5
+ const root = document.createElement('div');
6
+ root.id = 'root';
7
+ document.body.appendChild(root);
8
+ // 作为 web 构建的启动入口文件
9
+ ReactDOM.render(<Application {...options}/>, root);
10
+ }
11
+ //# sourceMappingURL=createApp.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createApp.jsx","sourceRoot":"","sources":["../../src/app/createApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,WAAW,EAAoB,MAAM,2BAA2B,CAAA;AAEzE,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;IAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB;IACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,EAAG,EAAE,IAAI,CAAC,CAAA;AACrD,CAAC"}
@@ -0,0 +1,13 @@
1
+ import { getCurrent } from '@ray-js/runtime';
2
+ /**
3
+ * 创建抽象的 App Instance 对标到小程序,提供给 getApp() 进行使用
4
+ * @param appThis
5
+ */
6
+ export function createAppInstance(appThis) {
7
+ const current = getCurrent();
8
+ // App 实例仅且注册一次
9
+ if (!current.app) {
10
+ current.app = appThis;
11
+ }
12
+ }
13
+ //# sourceMappingURL=createAppInstance.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createAppInstance.jsx","sourceRoot":"","sources":["../../src/app/createAppInstance.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C;;;GAGG;AACH,MAAM,UAAU,iBAAiB,CAAC,OAAY;IAC5C,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,eAAe;IACf,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE;QAChB,OAAO,CAAC,GAAG,GAAG,OAAO,CAAA;KACtB;AACH,CAAC"}
@@ -1,3 +1,3 @@
1
1
  export * from './createApp';
2
2
  export * from './createAppInstance';
3
- export declare function getApp(): import("@ray-js/runtime/lib/instance").AppInstance | null;
3
+ export declare function getApp(): import("@ray-js/runtime/lib/instance").AppInstance;
@@ -0,0 +1,8 @@
1
+ import { getCurrent } from '@ray-js/runtime';
2
+ export * from './createApp';
3
+ export * from './createAppInstance';
4
+ export function getApp() {
5
+ const current = getCurrent();
6
+ return current.app;
7
+ }
8
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../src/app/index.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAA;AAE5C,cAAc,aAAa,CAAA;AAC3B,cAAc,qBAAqB,CAAA;AAEnC,MAAM,UAAU,MAAM;IACpB,MAAM,OAAO,GAAG,UAAU,EAAE,CAAA;IAC5B,OAAO,OAAO,CAAC,GAAG,CAAA;AACpB,CAAC"}
@@ -0,0 +1,30 @@
1
+ import React from 'react';
2
+ import styles from './index.module.less';
3
+ import { getApp } from '../../app';
4
+ import location from '@ray-js/location';
5
+ export class AppWrapper extends React.Component {
6
+ componentDidMount() {
7
+ const app = getApp();
8
+ if (typeof app.onLaunch === 'function') {
9
+ app.onLaunch({
10
+ path: location.pathname,
11
+ query: location.query,
12
+ params: location.params,
13
+ });
14
+ }
15
+ // 初次展现
16
+ if (typeof app.onShow === 'function') {
17
+ app.onShow({
18
+ path: location.pathname,
19
+ query: location.query,
20
+ params: location.params,
21
+ });
22
+ }
23
+ }
24
+ render() {
25
+ return (<div id='Application' className={styles.application}>
26
+ {this.props.children}
27
+ </div>);
28
+ }
29
+ }
30
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/components/AppWrapper/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,MAAM,MAAM,qBAAqB,CAAA;AACxC,OAAO,EAAE,MAAM,EAAE,MAAM,WAAW,CAAA;AAClC,OAAO,QAAQ,MAAM,kBAAkB,CAAA;AAEvC,MAAM,OAAO,UAAW,SAAQ,KAAK,CAAC,SAAS;IAC7C,iBAAiB;QACf,MAAM,GAAG,GAAG,MAAM,EAAE,CAAA;QACpB,IAAI,OAAO,GAAG,CAAC,QAAQ,KAAK,UAAU,EAAE;YACtC,GAAG,CAAC,QAAQ,CAAC;gBACX,IAAI,EAAE,QAAQ,CAAC,QAAQ;gBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAA;SACH;QACD,OAAO;QACP,IAAI,OAAO,GAAG,CAAC,MAAM,KAAK,UAAU,EAAE;YACpC,GAAG,CAAC,MAAM,CAAC;gBACT,IAAI,EAAE,QAAQ,CAAC,QAAQ;gBACvB,KAAK,EAAE,QAAQ,CAAC,KAAK;gBACrB,MAAM,EAAE,QAAQ,CAAC,MAAM;aACxB,CAAC,CAAA;SACH;IACH,CAAC;IAED,MAAM;QACJ,OAAO,CACL,CAAC,GAAG,CAAC,EAAE,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,WAAW,CAAC,CAClD;QAAA,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,CACtB;MAAA,EAAE,GAAG,CAAC,CACP,CAAA;IACH,CAAC;CACF"}
@@ -16,5 +16,5 @@ export declare class Application extends React.Component<ApplicationProps, {
16
16
  constructor(props: Readonly<ApplicationProps>);
17
17
  componentDidMount(): void;
18
18
  getGlobalConfig: (path: string | string[], defaultValue?: any) => any;
19
- render(): JSX.Element | null;
19
+ render(): JSX.Element;
20
20
  }
@@ -0,0 +1,59 @@
1
+ import '../../runtime';
2
+ import React from 'react';
3
+ import { createRouter } from '@ray-js/router';
4
+ import { createAppInstance } from '../../app/createAppInstance';
5
+ import { get } from '../../utils';
6
+ import { normalizeTabBar } from '../../utils/normalizeTabBar';
7
+ import { AppWrapper } from '../AppWrapper';
8
+ import { PageWrapper } from '../PageWrapper';
9
+ import { TabBar } from '../TabBar';
10
+ const isClassComponent = (Component) => {
11
+ return Component.prototype && typeof Component.prototype.render === 'function';
12
+ };
13
+ export class Application extends React.Component {
14
+ constructor(props) {
15
+ super(props);
16
+ this.getGlobalConfig = (path, defaultValue) => {
17
+ const { globalConfig = {} } = this.props;
18
+ const value = get(globalConfig, path, defaultValue);
19
+ return value;
20
+ };
21
+ this.state = {};
22
+ const title = this.getGlobalConfig(['window', 'navigationBarTitleText'], 'Ray App');
23
+ document.title = title;
24
+ }
25
+ componentDidMount() {
26
+ const { routes, pages, tabBar, globalConfig } = this.props;
27
+ const { basename } = globalConfig;
28
+ document.body.style.backgroundColor = this.getGlobalConfig(['window', 'backgroundColor'], '#fff');
29
+ createRouter({
30
+ basename,
31
+ routes,
32
+ pages,
33
+ tabBar,
34
+ onChange: (component, props) => {
35
+ this.setState({ component, matchedPage: props.page });
36
+ },
37
+ });
38
+ }
39
+ render() {
40
+ const { app: App, tabBar, routes, basename } = this.props;
41
+ const { component: PageComponent, matchedPage } = this.state;
42
+ // 空页面暂不渲染,否则 appEvent 无法应用到页面内部
43
+ if (!matchedPage) {
44
+ return null;
45
+ }
46
+ const isClassType = isClassComponent(PageComponent);
47
+ return (<AppWrapper>
48
+ <App ref={(appThis) => {
49
+ createAppInstance(appThis);
50
+ }}>
51
+ <PageWrapper isClassType={isClassType} page={matchedPage} key={matchedPage.route} getGlobalConfig={this.getGlobalConfig}>
52
+ <PageComponent />
53
+ </PageWrapper>
54
+ {matchedPage.isTabBar && (<TabBar basename={basename} config={normalizeTabBar(tabBar, routes)}/>)}
55
+ </App>
56
+ </AppWrapper>);
57
+ }
58
+ }
59
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/components/Application/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,118 @@
1
+ import React from 'react';
2
+ // import { normalizeTabBar } from '../../utils/normalizeTabBar';
3
+ import { lifecycle, PageInstance, PageInstanceContext } from '@ray-js/runtime';
4
+ import { pageLifecycles } from '@ray-js/types';
5
+ import { get } from '../../utils';
6
+ import './index.module.less';
7
+ export class PageWrapper extends React.Component {
8
+ constructor(props) {
9
+ super(props);
10
+ this.$reachBottomDistance = 50;
11
+ this.handlePageResize = () => {
12
+ const windowWidth = document.documentElement.clientWidth;
13
+ const windowHeight = document.documentElement.clientHeight;
14
+ lifecycle.emit({
15
+ uniqueId: this.$instance.uniqueId,
16
+ name: pageLifecycles.onResize,
17
+ args: { windowWidth, windowHeight },
18
+ });
19
+ };
20
+ this.handlePageScroll = () => {
21
+ const event = { scrollTop: window.scrollY };
22
+ lifecycle.emit({
23
+ uniqueId: this.$instance.uniqueId,
24
+ name: pageLifecycles.onPageScroll,
25
+ args: event,
26
+ });
27
+ this.checkReachBottom();
28
+ };
29
+ this.checkReachBottom = () => {
30
+ const isCurrentReachBottom = document.body.scrollHeight - (window.innerHeight + window.scrollY) <=
31
+ this.$reachBottomDistance;
32
+ if (!this.$isReachBottom && isCurrentReachBottom) {
33
+ this.$isReachBottom = true;
34
+ lifecycle.emit({
35
+ uniqueId: this.$instance.uniqueId,
36
+ name: pageLifecycles.onReachBottom,
37
+ });
38
+ return;
39
+ }
40
+ this.$isReachBottom = isCurrentReachBottom;
41
+ };
42
+ this.getPageConfig = (field, defaultValue) => {
43
+ const { page } = this.props;
44
+ const pageConfig = page.config;
45
+ return get(pageConfig, field, defaultValue);
46
+ };
47
+ this.$instance = new PageInstance();
48
+ lifecycle.addInstance(this.$instance);
49
+ this.getGlobalConfig = this.props.getGlobalConfig;
50
+ }
51
+ componentDidMount() {
52
+ const title = this.getPageConfig('navigationBarTitleText', '');
53
+ document.title = title;
54
+ window.addEventListener('scroll', this.handlePageScroll);
55
+ window.addEventListener('resize', this.handlePageResize);
56
+ const backgroundColor = this.getPageConfig('backgroundColor');
57
+ if (backgroundColor) {
58
+ document.body.style.backgroundColor = backgroundColor;
59
+ }
60
+ // 获取页面触底的距离
61
+ this.$reachBottomDistance = this.getPageConfig('onReachBottomDistance', this.getGlobalConfig(['window', 'onReachBottomDistance'], 50) // 全局配置
62
+ );
63
+ // FIXME: 应用实例化未完成,didMount 从内至外执行
64
+ // 此时触发 onShow onReady 获取不到 getApp 实例,组件内也存在这样的情况
65
+ lifecycle.emit({
66
+ uniqueId: this.$instance.uniqueId,
67
+ name: pageLifecycles.onShow,
68
+ });
69
+ lifecycle.emit({
70
+ uniqueId: this.$instance.uniqueId,
71
+ name: pageLifecycles.onReady,
72
+ });
73
+ }
74
+ componentWillUnmount() {
75
+ window.removeEventListener('scroll', this.handlePageScroll);
76
+ window.removeEventListener('resize', this.handlePageResize);
77
+ // FIXME: 目前是 SPA 的页面直接切换,卸载前直接调用事件
78
+ lifecycle.emit({
79
+ uniqueId: this.$instance.uniqueId,
80
+ name: pageLifecycles.onHide,
81
+ });
82
+ lifecycle.emit({
83
+ uniqueId: this.$instance.uniqueId,
84
+ name: pageLifecycles.onUnload,
85
+ });
86
+ lifecycle.removeInstance(this.$instance);
87
+ // TODO: 实现 onPullDownRefresh 生命周期
88
+ }
89
+ render() {
90
+ const { page, children, isClassType } = this.props;
91
+ const $instance = this.$instance;
92
+ const globalBackgroundColor = this.getGlobalConfig(['window', 'backgroundColor'], '#fff');
93
+ const backgroundColor = this.getPageConfig('backgroundColor', globalBackgroundColor);
94
+ document.body.style.backgroundColor = backgroundColor;
95
+ return (<PageInstanceContext.Provider value={{ $instance, pageConfig: page.config }}>
96
+ <v-page data-route={page.route}>
97
+ {isClassType
98
+ ? // @ts-ignore
99
+ React.cloneElement(children, {
100
+ ref(ins) {
101
+ if (ins) {
102
+ // 实现 class 生命周期用法的挂载
103
+ Object.keys(pageLifecycles).forEach((event) => {
104
+ if (typeof ins[event] === 'function') {
105
+ $instance.registerLifecycle(event, ins, ins[event]);
106
+ }
107
+ });
108
+ }
109
+ },
110
+ })
111
+ : children}
112
+ {/* TODO: 如果需要转场动画,需要在 PageWrapper 中渲染 */}
113
+ {/* {page?.isTabBar && <TabBar config={tabBarConfig} />} */}
114
+ </v-page>
115
+ </PageInstanceContext.Provider>);
116
+ }
117
+ }
118
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/components/PageWrapper/index.tsx"],"names":[],"mappings":"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"}
@@ -0,0 +1,55 @@
1
+ import clsx from 'clsx';
2
+ import React from 'react';
3
+ import router from '@ray-js/router';
4
+ import { events, appStoreEmitter, renderOptions } from '../../store/appStore';
5
+ import { withPublicPath } from '../../utils/withPublicPath';
6
+ import styles from './index.module.less';
7
+ export class TabBar extends React.Component {
8
+ constructor() {
9
+ super(...arguments);
10
+ this.state = {
11
+ currentRoute: router.scheduler.currentRoute,
12
+ renderOptions: renderOptions,
13
+ };
14
+ }
15
+ componentDidMount() {
16
+ this.unChangeHandle = router.scheduler.on('routeChange', (route) => {
17
+ this.setState({
18
+ currentRoute: route,
19
+ });
20
+ });
21
+ this.unAppStoreChange = appStoreEmitter.on(events.tabBarChange, (state) => {
22
+ this.setState({ renderOptions: state });
23
+ });
24
+ }
25
+ componentWillUnmount() {
26
+ var _a, _b;
27
+ (_a = this.unChangeHandle) === null || _a === void 0 ? void 0 : _a.call(this);
28
+ (_b = this.unAppStoreChange) === null || _b === void 0 ? void 0 : _b.call(this);
29
+ }
30
+ render() {
31
+ const { config, basename = '' } = this.props;
32
+ const { currentRoute, renderOptions } = this.state;
33
+ return (<div data-route={currentRoute} className={clsx(styles.wrapper, {
34
+ [styles.hidden]: !renderOptions.tabBarVisible && !renderOptions.tabBarAnimation,
35
+ [styles.showIn]: renderOptions.tabBarVisible && renderOptions.tabBarAnimation,
36
+ [styles.hideOut]: !renderOptions.tabBarVisible && renderOptions.tabBarAnimation,
37
+ })}>
38
+ <div className={styles.tabBar}>
39
+ {config.list.map((item) => {
40
+ const fullRoute = basename + item.route;
41
+ const isActive = currentRoute === fullRoute;
42
+ return (<div data-full-route={fullRoute} key={item.route || item.id} className={styles.item} onClick={() => {
43
+ router.push(item.route);
44
+ }}>
45
+ {item.icon && (<img className={styles.icon} src={`${withPublicPath(isActive ? item.activeIcon : item.icon)}`}/>)}
46
+ <span className={styles.text} style={{ color: isActive ? config.selectedColor : config.textColor }}>
47
+ {item.text}
48
+ </span>
49
+ </div>);
50
+ })}
51
+ </div>
52
+ </div>);
53
+ }
54
+ }
55
+ //# sourceMappingURL=index.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.jsx","sourceRoot":"","sources":["../../../src/components/TabBar/index.tsx"],"names":[],"mappings":"AAAA,OAAO,IAAI,MAAM,MAAM,CAAA;AACvB,OAAO,KAAK,MAAM,OAAO,CAAA;AAEzB,OAAO,MAAM,MAAM,gBAAgB,CAAA;AAGnC,OAAO,EAAE,MAAM,EAAE,eAAe,EAAE,aAAa,EAAE,MAAM,sBAAsB,CAAA;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAC3D,OAAO,MAAM,MAAM,qBAAqB,CAAA;AAIxC,MAAM,OAAO,MAAO,SAAQ,KAAK,CAAC,SAGjC;IAHD;;QAOE,UAAK,GAAG;YACN,YAAY,EAAE,MAAM,CAAC,SAAS,CAAC,YAAY;YAC3C,aAAa,EAAE,aAAa;SAC7B,CAAA;IAgEH,CAAC;IA9DC,iBAAiB;QACf,IAAI,CAAC,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC,EAAE,CAAC,aAAa,EAAE,CAAC,KAAa,EAAE,EAAE;YACzE,IAAI,CAAC,QAAQ,CAAC;gBACZ,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC,CAAC,CAAA;QAEF,IAAI,CAAC,gBAAgB,GAAG,eAAe,CAAC,EAAE,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC,KAAK,EAAE,EAAE;YACxE,IAAI,CAAC,QAAQ,CAAC,EAAE,aAAa,EAAE,KAAK,EAAE,CAAC,CAAA;QACzC,CAAC,CAAC,CAAA;IACJ,CAAC;IAED,oBAAoB;;QAClB,MAAA,IAAI,CAAC,cAAc,oDAAI,CAAA;QACvB,MAAA,IAAI,CAAC,gBAAgB,oDAAI,CAAA;IAC3B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,MAAM,EAAE,QAAQ,GAAG,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAC5C,MAAM,EAAE,YAAY,EAAE,aAAa,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAElD,OAAO,CACL,CAAC,GAAG,CACF,UAAU,CAAC,CAAC,YAAY,CAAC,CACzB,SAAS,CAAC,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE;gBAC9B,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,IAAI,CAAC,aAAa,CAAC,eAAe;gBAC/E,CAAC,MAAM,CAAC,MAAM,CAAC,EAAE,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,eAAe;gBAC7E,CAAC,MAAM,CAAC,OAAO,CAAC,EAAE,CAAC,aAAa,CAAC,aAAa,IAAI,aAAa,CAAC,eAAe;aAChF,CAAC,CAAC,CAEH;QAAA,CAAC,GAAG,CAAC,SAAS,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC,CAC5B;UAAA,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;gBACxB,MAAM,SAAS,GAAG,QAAQ,GAAG,IAAI,CAAC,KAAK,CAAA;gBACvC,MAAM,QAAQ,GAAG,YAAY,KAAK,SAAS,CAAA;gBAC3C,OAAO,CACL,CAAC,GAAG,CACF,eAAe,CAAC,CAAC,SAAS,CAAC,CAC3B,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,EAAE,CAAC,CAC3B,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACvB,OAAO,CAAC,CAAC,GAAG,EAAE;wBACZ,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,CAAA;oBACzB,CAAC,CAAC,CAEF;gBAAA,CAAC,IAAI,CAAC,IAAI,IAAI,CACZ,CAAC,GAAG,CACF,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACvB,GAAG,CAAC,CAAC,GAAG,cAAc,CAAC,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAAC,EACjE,CACH,CACD;gBAAA,CAAC,IAAI,CACH,SAAS,CAAC,CAAC,MAAM,CAAC,IAAI,CAAC,CACvB,KAAK,CAAC,CAAC,EAAE,KAAK,EAAE,QAAQ,CAAC,CAAC,CAAC,MAAM,CAAC,aAAa,CAAC,CAAC,CAAC,MAAM,CAAC,SAAS,EAAE,CAAC,CAErE;kBAAA,CAAC,IAAI,CAAC,IAAI,CACZ;gBAAA,EAAE,IAAI,CACR;cAAA,EAAE,GAAG,CAAC,CACP,CAAA;YACH,CAAC,CAAC,CACJ;QAAA,EAAE,GAAG,CACP;MAAA,EAAE,GAAG,CAAC,CACP,CAAA;IACH,CAAC;CACF"}
@@ -0,0 +1,11 @@
1
+ import React from 'react';
2
+ import ReactDOM from 'react-dom';
3
+ import { Application } from './components/Application';
4
+ export function createApp(options) {
5
+ const root = document.createElement('div');
6
+ root.id = 'root';
7
+ document.body.appendChild(root);
8
+ // 作为 web 构建的启动入口文件
9
+ ReactDOM.render(<Application {...options}/>, root);
10
+ }
11
+ //# sourceMappingURL=createApp.jsx.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"createApp.jsx","sourceRoot":"","sources":["../src/createApp.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAA;AACzB,OAAO,QAAQ,MAAM,WAAW,CAAA;AAEhC,OAAO,EAAE,WAAW,EAAoB,MAAM,0BAA0B,CAAA;AAExE,MAAM,UAAU,SAAS,CAAC,OAAyB;IACjD,MAAM,IAAI,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;IAC1C,IAAI,CAAC,EAAE,GAAG,MAAM,CAAA;IAChB,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,IAAI,CAAC,CAAA;IAC/B,mBAAmB;IACnB,QAAQ,CAAC,MAAM,CAAC,CAAC,WAAW,CAAC,IAAI,OAAO,CAAC,EAAG,EAAE,IAAI,CAAC,CAAA;AACrD,CAAC"}
package/lib/index.js CHANGED
@@ -1,3 +1,4 @@
1
1
  export { createApp, getApp } from './app';
2
- export { lifecycle, PageInstance, PageInstanceContext, useAppEvent, usePageEvent, withPageLifecycle } from '@ray-js/runtime';
3
- export * from './api';
2
+ export { lifecycle, PageInstance, PageInstanceContext, useAppEvent, usePageEvent, withPageLifecycle, } from '@ray-js/runtime';
3
+ export * from './api';
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,OAAO,CAAA;AAEzC,OAAO,EACL,SAAS,EACT,YAAY,EACZ,mBAAmB,EACnB,WAAW,EACX,YAAY,EACZ,iBAAiB,GAClB,MAAM,iBAAiB,CAAA;AAExB,cAAc,OAAO,CAAA"}
@@ -1 +1,2 @@
1
- export * from '@ray-js/framework-native';
1
+ export * from '@ray-js/framework-native';
2
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.native.js","sourceRoot":"","sources":["../src/index.native.ts"],"names":[],"mappings":"AAAA,cAAc,0BAA0B,CAAA"}
@@ -1,3 +1,4 @@
1
- import { responsive } from './responsive'; // 响应式设计 rem 单位
2
-
3
- responsive();
1
+ import { responsive } from './responsive';
2
+ // 响应式设计 rem 单位
3
+ responsive();
4
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/runtime/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAA;AAEzC,eAAe;AACf,UAAU,EAAE,CAAA"}
@@ -1,22 +1,21 @@
1
- import "core-js/modules/es.parse-float.js";
2
- var htmlRoot = document.querySelector('html');
1
+ const htmlRoot = document.querySelector('html');
3
2
  export function responsive() {
4
- function setRem() {
5
- var clientWidth = htmlRoot.clientWidth; // clientWidth = Math.min(clientWidth, 640); // PC 模式下限定最大值
6
-
7
- htmlRoot.style.fontSize = "".concat(clientWidth / 7.5, "px");
8
- var div = document.createElement('div');
9
- div.style.width = '7.5rem';
10
- document.body.appendChild(div);
11
- htmlRoot.style.fontSize = "".concat(parseFloat(htmlRoot.style.fontSize) * clientWidth / div.clientWidth, "px");
12
- document.body.removeChild(div);
13
- document.body.style.fontSize = "16px";
14
- }
15
-
16
- var b = null;
17
- window.addEventListener('resize', function () {
18
- clearTimeout(b);
19
- b = setTimeout(setRem, 100);
20
- }, !1);
21
- setRem();
22
- }
3
+ function setRem() {
4
+ let clientWidth = htmlRoot.clientWidth;
5
+ // clientWidth = Math.min(clientWidth, 640); // PC 模式下限定最大值
6
+ htmlRoot.style.fontSize = `${clientWidth / 7.5}px`;
7
+ const div = document.createElement('div');
8
+ div.style.width = '7.5rem';
9
+ document.body.appendChild(div);
10
+ htmlRoot.style.fontSize = `${(parseFloat(htmlRoot.style.fontSize) * clientWidth) / div.clientWidth}px`;
11
+ document.body.removeChild(div);
12
+ document.body.style.fontSize = `16px`;
13
+ }
14
+ let b = null;
15
+ window.addEventListener('resize', function () {
16
+ clearTimeout(b);
17
+ b = setTimeout(setRem, 100);
18
+ }, !1);
19
+ setRem();
20
+ }
21
+ //# sourceMappingURL=responsive.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"responsive.js","sourceRoot":"","sources":["../../src/runtime/responsive.ts"],"names":[],"mappings":"AAAA,MAAM,QAAQ,GAAG,QAAQ,CAAC,aAAa,CAAC,MAAM,CAAC,CAAA;AAE/C,MAAM,UAAU,UAAU;IACxB,SAAS,MAAM;QACb,IAAI,WAAW,GAAG,QAAQ,CAAC,WAAW,CAAA;QACtC,2DAA2D;QAC3D,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,GAAG,WAAW,GAAG,GAAG,IAAI,CAAA;QAClD,MAAM,GAAG,GAAG,QAAQ,CAAC,aAAa,CAAC,KAAK,CAAC,CAAA;QACzC,GAAG,CAAC,KAAK,CAAC,KAAK,GAAG,QAAQ,CAAA;QAC1B,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC9B,QAAQ,CAAC,KAAK,CAAC,QAAQ,GAAG,GACxB,CAAC,UAAU,CAAC,QAAQ,CAAC,KAAK,CAAC,QAAQ,CAAC,GAAG,WAAW,CAAC,GAAG,GAAG,CAAC,WAC5D,IAAI,CAAA;QACJ,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,GAAG,CAAC,CAAA;QAC9B,QAAQ,CAAC,IAAI,CAAC,KAAK,CAAC,QAAQ,GAAG,MAAM,CAAA;IACvC,CAAC;IAED,IAAI,CAAC,GAAG,IAAI,CAAA;IACZ,MAAM,CAAC,gBAAgB,CACrB,QAAQ,EACR;QACE,YAAY,CAAC,CAAC,CAAC,CAAA;QACf,CAAC,GAAG,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAA;IAC7B,CAAC,EACD,CAAC,CAAC,CACH,CAAA;IAED,MAAM,EAAE,CAAA;AACV,CAAC"}
@@ -1,26 +1,25 @@
1
- import "core-js/modules/es.object.assign.js";
2
1
  import { Emitter } from '@ray-js/framework-shared';
3
- export var appStoreEmitter = new Emitter();
4
- export var renderOptions = {
5
- tabBarVisible: true,
6
- tabBarAnimation: false
2
+ export const appStoreEmitter = new Emitter();
3
+ export const renderOptions = {
4
+ tabBarVisible: true,
5
+ tabBarAnimation: false,
7
6
  };
8
- export var actions = {
9
- toggleTabBar: 'toggleTabBar',
10
- onChange: 'onChange'
7
+ export const actions = {
8
+ toggleTabBar: 'toggleTabBar',
9
+ onChange: 'onChange',
11
10
  };
12
- export var events = {
13
- tabBarChange: 'tabBarChange'
11
+ export const events = {
12
+ tabBarChange: 'tabBarChange',
14
13
  };
15
-
16
- var update = function (eventName, nextState) {
17
- Object.assign(renderOptions, nextState);
18
- appStoreEmitter.emit(eventName, renderOptions);
14
+ const update = (eventName, nextState) => {
15
+ Object.assign(renderOptions, nextState);
16
+ appStoreEmitter.emit(eventName, renderOptions);
19
17
  };
20
-
21
18
  appStoreEmitter.on(actions.toggleTabBar, function (next) {
22
- if (next.visible !== renderOptions.tabBarVisible) update(events.tabBarChange, {
23
- tabBarVisible: next.visible,
24
- tabBarAnimation: next.animation
25
- });
26
- });
19
+ if (next.visible !== renderOptions.tabBarVisible)
20
+ update(events.tabBarChange, {
21
+ tabBarVisible: next.visible,
22
+ tabBarAnimation: next.animation,
23
+ });
24
+ });
25
+ //# sourceMappingURL=appStore.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"appStore.js","sourceRoot":"","sources":["../../src/store/appStore.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAA;AAElD,MAAM,CAAC,MAAM,eAAe,GAAG,IAAI,OAAO,EAAE,CAAA;AAE5C,MAAM,CAAC,MAAM,aAAa,GAAG;IAC3B,aAAa,EAAE,IAAI;IACnB,eAAe,EAAE,KAAK;CACvB,CAAA;AAED,MAAM,CAAC,MAAM,OAAO,GAAG;IACrB,YAAY,EAAE,cAAc;IAC5B,QAAQ,EAAE,UAAU;CACrB,CAAA;AAED,MAAM,CAAC,MAAM,MAAM,GAAG;IACpB,YAAY,EAAE,cAAc;CAC7B,CAAA;AAED,MAAM,MAAM,GAAG,CAAC,SAAiB,EAAE,SAAwC,EAAE,EAAE;IAC7E,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,SAAS,CAAC,CAAA;IACvC,eAAe,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAA;AAChD,CAAC,CAAA;AAED,eAAe,CAAC,EAAE,CAAC,OAAO,CAAC,YAAY,EAAE,UAAU,IAA8C;IAC/F,IAAI,IAAI,CAAC,OAAO,KAAK,aAAa,CAAC,aAAa;QAC9C,MAAM,CAAC,MAAM,CAAC,YAAY,EAAE;YAC1B,aAAa,EAAE,IAAI,CAAC,OAAO;YAC3B,eAAe,EAAE,IAAI,CAAC,SAAS;SAChC,CAAC,CAAA;AACN,CAAC,CAAC,CAAA"}
@@ -1,2 +1,3 @@
1
1
  import get from 'lodash.get';
2
- export { get };
2
+ export { get };
3
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/utils/index.ts"],"names":[],"mappings":"AAAA,OAAO,GAAG,MAAM,YAAY,CAAA;AAE5B,OAAO,EAAE,GAAG,EAAE,CAAA"}
@@ -1,18 +1,12 @@
1
- import "core-js/modules/es.array.map.js";
2
- import "core-js/modules/es.array.find.js";
3
- import "core-js/modules/es.object.to-string.js";
4
1
  export function normalizeTabBar(tabBar, routes) {
5
- if (tabBar.list) {
6
- tabBar.list = tabBar.list.map(function (item) {
7
- if (item.id) {
8
- item.route = routes.find(function (i) {
9
- return i.id === item.id;
10
- }).route;
11
- }
12
-
13
- return item;
14
- });
15
- }
16
-
17
- return tabBar;
18
- }
2
+ if (tabBar.list) {
3
+ tabBar.list = tabBar.list.map((item) => {
4
+ if (item.id) {
5
+ item.route = routes.find((i) => i.id === item.id).route;
6
+ }
7
+ return item;
8
+ });
9
+ }
10
+ return tabBar;
11
+ }
12
+ //# sourceMappingURL=normalizeTabBar.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"normalizeTabBar.js","sourceRoot":"","sources":["../../src/utils/normalizeTabBar.ts"],"names":[],"mappings":"AAEA,MAAM,UAAU,eAAe,CAAC,MAAc,EAAE,MAAc;IAC5D,IAAI,MAAM,CAAC,IAAI,EAAE;QACf,MAAM,CAAC,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;YACrC,IAAI,IAAI,CAAC,EAAE,EAAE;gBACX,IAAI,CAAC,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,EAAE,KAAK,IAAI,CAAC,EAAE,CAAC,CAAC,KAAK,CAAA;aACxD;YACD,OAAO,IAAI,CAAA;QACb,CAAC,CAAC,CAAA;KACH;IACD,OAAO,MAAM,CAAA;AACf,CAAC"}
@@ -1,5 +1,4 @@
1
- import "core-js/modules/es.regexp.exec.js";
2
- import "core-js/modules/es.string.replace.js";
3
1
  export function withPublicPath(basePath) {
4
- return PUBLIC_PATH + basePath.replace(/^\//, '');
5
- }
2
+ return PUBLIC_PATH + basePath.replace(/^\//, '');
3
+ }
4
+ //# sourceMappingURL=withPublicPath.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"withPublicPath.js","sourceRoot":"","sources":["../../src/utils/withPublicPath.ts"],"names":[],"mappings":"AAAA,MAAM,UAAU,cAAc,CAAC,QAAgB;IAC7C,OAAO,WAAW,GAAG,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAA;AAClD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ray-js/framework",
3
- "version": "0.4.11",
3
+ "version": "0.4.12-beta-0",
4
4
  "description": "Ray Core",
5
5
  "keywords": [
6
6
  "ray"
@@ -20,21 +20,21 @@
20
20
  "watch": "tsc -p ./tsconfig.build.json --module esnext --outDir lib --watch"
21
21
  },
22
22
  "dependencies": {
23
- "@ray-js/framework-mp": "^0.4.11",
24
- "@ray-js/framework-native": "^0.4.11",
25
- "@ray-js/framework-shared": "^0.4.11",
26
- "@ray-js/library": "^0.4.11",
27
- "@ray-js/location": "^0.4.11",
28
- "@ray-js/router": "^0.4.11",
29
- "@ray-js/runtime": "^0.4.11",
23
+ "@ray-js/framework-mp": "^0.4.12-beta-0",
24
+ "@ray-js/framework-native": "^0.4.12-beta-0",
25
+ "@ray-js/framework-shared": "^0.4.12-beta-0",
26
+ "@ray-js/library": "^0.4.12-beta-0",
27
+ "@ray-js/location": "^0.4.12-beta-0",
28
+ "@ray-js/router": "^0.4.12-beta-0",
29
+ "@ray-js/runtime": "^0.4.12-beta-0",
30
30
  "clsx": "^1.1.1",
31
31
  "hoist-non-react-statics": "^3.3.2",
32
32
  "lodash.get": "^4.4.2",
33
33
  "tiny-invariant": "^1.1.0"
34
34
  },
35
35
  "devDependencies": {
36
- "@ray-js/cli": "^0.4.11",
37
- "@ray-js/types": "^0.4.11"
36
+ "@ray-js/cli": "^0.4.12-beta-0",
37
+ "@ray-js/types": "^0.4.12-beta-0"
38
38
  },
39
39
  "maintainers": [
40
40
  {
@@ -42,6 +42,6 @@
42
42
  "email": "tuyafe@tuya.com"
43
43
  }
44
44
  ],
45
- "gitHead": "e2e0f5ed5ad14b6c8b2a490d253facb9342387a9",
45
+ "gitHead": "522a92a23084e3195cdea186caf37f0c3492110b",
46
46
  "repository": {}
47
47
  }