From 0f83651366ed351bf129507c765739857f42105b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8B=92=E7=8B=92=E7=A5=9E?= <350740249@qq.com> Date: Wed, 16 Sep 2020 15:49:13 +0800 Subject: [PATCH] release: miniapp-render@1.2.3 (#2000) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit * chore: bump version * fix(miniapp): usePageShow not work in wechat (#1999) * fix(jsx2mp): usingComponents path error when disableCopyNpm (#1988) * fix(miniapp): judge __sharedEventNames * refactor: optimize miniapp runtime render (#2002) * fix: render error * fix: render error * refactor: optimize render * refactor: class * chore: refactor attribute * refactor(miniapp): getElement in document and element * refactor(miniapp): use BFS to replace resursion * refactor(miniapp): use map to replace object * fix(miniapp): lint error * refactor: native props * docs(miniapp): add get element example * fix(miniapp): exclude self node in element getelement * chore: remove tag props * fix(miniapp): separate nodeIdMap from idMap * refactor(miniapp): __eventHandlerMap * refactor(miniapp): style value * refactor: style * refactor: style * feat(miniapp): remove builtin components props * refactor(miniapp): node renderInfo * fix(miniapp): onchange not work in textarea * refactor: driver createElement * chore: bump version * chore: remove useless code * chore(example): add multipleSlots config in example * fix: custom component render * fix: custom component render * chore: remove lock file * fix(miniapp): input/textarea * fix(miniapp): test case (#2014) * fix(miniapp): test case * fix(miniapp): event process * fix(miniapp): dataset and classList * fix(miniapp): lint error * fix(miniapp): classList toggle * fix(miniapp): can't extend from Set * fix(miniapp): lint error * fix(miniapp): use contain to replace has Co-authored-by: 逆葵 Co-authored-by: NK * fix(miniapp): input/textarea focus-state not update * fix(miniapp): not trigger style update if node is not rendered Co-authored-by: NK Co-authored-by: 逆葵 --- examples/README.md | 2 +- examples/get-element/.eslintrc.js | 3 + examples/get-element/.gitignore | 17 + examples/get-element/README.md | 15 + examples/get-element/abc.json | 7 + examples/get-element/build.json | 20 + examples/get-element/package.json | 33 + examples/get-element/src/app.js | 28 + examples/get-element/src/app.json | 11 + .../get-element/src/components/Logo/index.css | 5 + .../get-element/src/components/Logo/index.jsx | 15 + examples/get-element/src/document/index.jsx | 21 + examples/get-element/src/pages/Home/index.css | 16 + examples/get-element/src/pages/Home/index.jsx | 61 ++ .../src/public/WechatNativeComp/index.js | 3 + .../project.config.json | 28 +- packages/driver-miniapp/package.json | 2 +- packages/driver-miniapp/src/index.js | 80 +- .../miniapp-render/__tests__/document.test.js | 13 +- .../__tests__/node/class-list.test.js | 6 +- .../__tests__/node/comment.test.js | 2 +- .../__tests__/node/element.test.js | 183 ++--- .../__tests__/node/element/image.test.js | 102 --- .../__tests__/node/style.test.js | 9 +- .../__tests__/node/text-node.test.js | 2 +- .../__tests__/tree/parser.test.js | 158 ---- .../__tests__/tree/query-selector.test.js | 95 --- .../__tests__/util/tool.test.js | 16 +- packages/miniapp-render/package.json | 2 +- packages/miniapp-render/renderMock.js | 72 +- .../src/bridge/events/callEvent.js | 154 +--- .../src/builtInComponents/button.js | 103 --- .../src/builtInComponents/camera.js | 44 +- .../src/builtInComponents/canvas.js | 40 - .../src/builtInComponents/checkbox-group.js | 6 - .../src/builtInComponents/checkbox.js | 26 - .../src/builtInComponents/cover-image.js | 11 - .../src/builtInComponents/cover-view.js | 14 +- .../src/builtInComponents/editor.js | 31 - .../src/builtInComponents/form.js | 16 - .../src/builtInComponents/icon.js | 23 +- .../src/builtInComponents/image.js | 51 -- .../src/builtInComponents/index.js | 17 +- .../src/builtInComponents/input.js | 126 +--- .../src/builtInComponents/label.js | 8 +- .../src/builtInComponents/map.js | 128 ---- .../src/builtInComponents/movable-area.js | 13 +- .../src/builtInComponents/movable-view.js | 87 +-- .../src/builtInComponents/navigator.js | 77 -- .../builtInComponents/picker-view-column.js | 8 +- .../src/builtInComponents/picker-view.js | 36 +- .../src/builtInComponents/picker.js | 76 +- .../src/builtInComponents/progress.js | 56 -- .../src/builtInComponents/radio-group.js | 6 - .../src/builtInComponents/radio.js | 26 - .../src/builtInComponents/rich-text.js | 21 +- .../src/builtInComponents/scroll-view.js | 131 +--- .../src/builtInComponents/slider.js | 77 +- .../src/builtInComponents/swiper-item.js | 13 +- .../src/builtInComponents/swiper.js | 81 +- .../src/builtInComponents/switch.js | 33 +- .../src/builtInComponents/text.js | 35 +- .../src/builtInComponents/textarea.js | 116 +-- .../src/builtInComponents/video.js | 173 +---- .../src/builtInComponents/view.js | 36 +- .../src/builtInComponents/web-view.js | 11 - packages/miniapp-render/src/constants.js | 13 + .../src/createConfig/element.js | 6 +- .../miniapp-render/src/createConfig/page.js | 42 +- packages/miniapp-render/src/document.js | 223 +++--- .../miniapp-render/src/event/event-target.js | 36 +- packages/miniapp-render/src/node/attribute.js | 177 ++--- .../miniapp-render/src/node/class-list.js | 166 ++--- packages/miniapp-render/src/node/comment.js | 25 +- packages/miniapp-render/src/node/element.js | 692 +++++------------- .../src/node/element/builtin-component.js | 51 -- .../src/node/element/custom-component.js | 65 +- .../miniapp-render/src/node/element/image.js | 52 +- .../miniapp-render/src/node/element/input.js | 130 ++-- .../src/node/element/textarea.js | 145 ++-- .../miniapp-render/src/node/element/video.js | 68 +- packages/miniapp-render/src/node/node.js | 60 +- packages/miniapp-render/src/node/root.js | 150 ++-- .../miniapp-render/src/node/style-list.js | 150 +++- packages/miniapp-render/src/node/style.js | 169 ++--- packages/miniapp-render/src/node/text-node.js | 37 +- packages/miniapp-render/src/tree/parser.js | 246 ------- .../miniapp-render/src/tree/query-selector.js | 370 ---------- packages/miniapp-render/src/tree/tree.js | 110 --- packages/miniapp-render/src/utils/cache.js | 35 +- .../src/utils/checkEventAccessDomNode.js | 13 - .../src/utils/findParentNode.js | 19 - .../miniapp-render/src/utils/getProperty.js | 1 - packages/miniapp-render/src/utils/tool.js | 27 +- packages/miniapp-render/src/utils/tree.js | 35 + packages/miniapp-render/src/window.js | 11 +- 96 files changed, 1511 insertions(+), 4750 deletions(-) create mode 100644 examples/get-element/.eslintrc.js create mode 100644 examples/get-element/.gitignore create mode 100644 examples/get-element/README.md create mode 100644 examples/get-element/abc.json create mode 100644 examples/get-element/build.json create mode 100644 examples/get-element/package.json create mode 100644 examples/get-element/src/app.js create mode 100644 examples/get-element/src/app.json create mode 100644 examples/get-element/src/components/Logo/index.css create mode 100644 examples/get-element/src/components/Logo/index.jsx create mode 100644 examples/get-element/src/document/index.jsx create mode 100644 examples/get-element/src/pages/Home/index.css create mode 100644 examples/get-element/src/pages/Home/index.jsx delete mode 100644 packages/miniapp-render/__tests__/node/element/image.test.js delete mode 100644 packages/miniapp-render/__tests__/tree/parser.test.js delete mode 100644 packages/miniapp-render/__tests__/tree/query-selector.test.js delete mode 100755 packages/miniapp-render/src/node/element/builtin-component.js delete mode 100755 packages/miniapp-render/src/tree/parser.js delete mode 100755 packages/miniapp-render/src/tree/query-selector.js delete mode 100755 packages/miniapp-render/src/tree/tree.js delete mode 100644 packages/miniapp-render/src/utils/checkEventAccessDomNode.js delete mode 100644 packages/miniapp-render/src/utils/findParentNode.js create mode 100644 packages/miniapp-render/src/utils/tree.js diff --git a/examples/README.md b/examples/README.md index 38a79edf2c..061970438c 100644 --- a/examples/README.md +++ b/examples/README.md @@ -25,4 +25,4 @@ npm run build * app-lifecycle: 使用 app 生命周期 * page-lifecycle-with-router: 使用 page 生命周期 + 路由跳转 * event-handler: 事件绑定(编译时小程序) - +* get-element: document/element getElementXXX 相关 API diff --git a/examples/get-element/.eslintrc.js b/examples/get-element/.eslintrc.js new file mode 100644 index 0000000000..04f3c852d6 --- /dev/null +++ b/examples/get-element/.eslintrc.js @@ -0,0 +1,3 @@ +module.exports = { + extends: ['rax'] +}; \ No newline at end of file diff --git a/examples/get-element/.gitignore b/examples/get-element/.gitignore new file mode 100644 index 0000000000..50a53daceb --- /dev/null +++ b/examples/get-element/.gitignore @@ -0,0 +1,17 @@ +# See https://help.github.com/articles/ignoring-files/ for more about ignoring files. + +*~ +*.swp +*.log + +.DS_Store +.idea/ +.temp/ + +build/ +dist/ +lib/ +coverage/ +node_modules/ + +template.yml diff --git a/examples/get-element/README.md b/examples/get-element/README.md new file mode 100644 index 0000000000..94c45d1ddc --- /dev/null +++ b/examples/get-element/README.md @@ -0,0 +1,15 @@ +# rax-materials-basic-app + +## Getting Started + +### `npm run start` + +Runs the app in development mode. + +Open [http://localhost:9999](http://localhost:9999) to view it in the browser. + +The page will reload if you make edits. + +### `npm run build` + +Builds the app for production to the `build` folder. diff --git a/examples/get-element/abc.json b/examples/get-element/abc.json new file mode 100644 index 0000000000..f9ee40f714 --- /dev/null +++ b/examples/get-element/abc.json @@ -0,0 +1,7 @@ +{ + "type": "rax", + "builder": "@ali/builder-rax-v1", + "info": { + "raxVersion": "1.x" + } +} diff --git a/examples/get-element/build.json b/examples/get-element/build.json new file mode 100644 index 0000000000..01a37c18e1 --- /dev/null +++ b/examples/get-element/build.json @@ -0,0 +1,20 @@ +{ + "inlineStyle": false, + "plugins": [ + [ + "build-plugin-rax-app", + { + "targets": [ + "miniapp", + "wechat-miniprogram" + ], + "miniapp": { + "buildType": "runtime" + }, + "wechat-miniprogram": { + "buildType": "runtime" + } + } + ] + ] +} diff --git a/examples/get-element/package.json b/examples/get-element/package.json new file mode 100644 index 0000000000..7d0a89bc64 --- /dev/null +++ b/examples/get-element/package.json @@ -0,0 +1,33 @@ +{ + "name": "@rax-materials/scaffolds-app-js", + "author": "rax", + "description": "Rax 无线跨端应用工程,使用 JavaScript。", + "version": "0.1.0", + "scripts": { + "build": "build-scripts build", + "start": "build-scripts start", + "lint": "eslint --ext .js --ext .jsx ./" + }, + "dependencies": { + "rax": "^1.1.0", + "rax-app": "^2.0.0", + "driver-universal": "^3.0.0", + "rax-image": "^2.0.0", + "rax-link": "^1.0.1", + "rax-text": "^1.0.0", + "rax-view": "^1.0.0", + "rax-document": "^0.1.0" + }, + "devDependencies": { + "@alib/build-scripts": "^0.1.0", + "babel-eslint": "^10.0.3", + "build-plugin-rax-app": "^5.0.0", + "eslint": "^6.8.0", + "eslint-config-rax": "^0.1.0", + "eslint-plugin-import": "^2.20.0", + "eslint-plugin-module": "^0.1.0", + "eslint-plugin-react": "^7.18.0" + }, + "private": true, + "originTemplate": "@rax-materials/scaffolds-app-js" +} diff --git a/examples/get-element/src/app.js b/examples/get-element/src/app.js new file mode 100644 index 0000000000..d78985c28d --- /dev/null +++ b/examples/get-element/src/app.js @@ -0,0 +1,28 @@ +import { runApp, useAppLaunch, useAppShow, useAppHide, useAppShare, useAppError } from 'rax-app'; +import appConfig from './app.json'; + +useAppLaunch((options) => { + console.log('app launch', options); +}); + +useAppShow((options) => { + console.log('app show', options); +}); + +useAppHide(() => { + console.log('app hide'); +}); + +useAppShare(() => { + return { + title: '分享标题', + desc: '分享详细说明', + path: 'pages/Home/index' + }; +}); + +useAppError(() => { + console.log('app error'); +}); + +runApp(appConfig); diff --git a/examples/get-element/src/app.json b/examples/get-element/src/app.json new file mode 100644 index 0000000000..ffbc0add84 --- /dev/null +++ b/examples/get-element/src/app.json @@ -0,0 +1,11 @@ +{ + "routes": [ + { + "path": "/", + "source": "pages/Home/index" + } + ], + "window": { + "title": "Rax App" + } +} diff --git a/examples/get-element/src/components/Logo/index.css b/examples/get-element/src/components/Logo/index.css new file mode 100644 index 0000000000..2f8d8d1144 --- /dev/null +++ b/examples/get-element/src/components/Logo/index.css @@ -0,0 +1,5 @@ +.logo { + width: 200rpx; + height: 180rpx; + margin-bottom: 20rpx; +} \ No newline at end of file diff --git a/examples/get-element/src/components/Logo/index.jsx b/examples/get-element/src/components/Logo/index.jsx new file mode 100644 index 0000000000..ef191bc442 --- /dev/null +++ b/examples/get-element/src/components/Logo/index.jsx @@ -0,0 +1,15 @@ +import { createElement } from 'rax'; +import Image from 'rax-image'; + +import './index.css'; + +export default (props) => { + const { uri } = props; + const source = { uri }; + return ( + + ); +}; diff --git a/examples/get-element/src/document/index.jsx b/examples/get-element/src/document/index.jsx new file mode 100644 index 0000000000..ae0b8d0cdb --- /dev/null +++ b/examples/get-element/src/document/index.jsx @@ -0,0 +1,21 @@ +import { createElement } from 'rax'; +import { Root, Style, Script} from 'rax-document'; + +function Document() { + return ( + + + + + rax-materials-basic-app +