From 1a74c4a28c020174456442c85fb19d942fb9c0ea Mon Sep 17 00:00:00 2001 From: wangxiaoyun Date: Tue, 12 Dec 2023 00:52:59 -0800 Subject: [PATCH] add my wps Signed-off-by: wangxiaoyun --- scenario/arkui/MyWps/.gitignore | 11 + scenario/arkui/MyWps/AppScope/app.json5 | 10 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2041 bytes scenario/arkui/MyWps/README_zh.md | 49 ++++ scenario/arkui/MyWps/build-profile.json5 | 49 ++++ scenario/arkui/MyWps/entry/.gitignore | 6 + .../arkui/MyWps/entry/build-profile.json5 | 31 +++ scenario/arkui/MyWps/entry/hvigorfile.ts | 6 + .../arkui/MyWps/entry/obfuscation-rules.txt | 18 ++ scenario/arkui/MyWps/entry/oh-package.json5 | 10 + .../main/ets/entryability/EntryAbility.ets | 43 ++++ .../MyWps/entry/src/main/ets/pages/Index.ets | 71 ++++++ .../entry/src/main/ets/pages/wps/HomePage.ets | 231 +++++++++++++++++ .../arkui/MyWps/entry/src/main/module.json5 | 37 +++ .../main/resources/base/element/color.json | 233 ++++++++++++++++++ .../main/resources/base/element/string.json | 68 +++++ .../src/main/resources/base/media/file.png | Bin 0 -> 2618 bytes .../main/resources/base/media/ic_dialog.png | Bin 0 -> 1706 bytes .../resources/base/media/ic_image_dirs.png | Bin 0 -> 685 bytes .../resources/base/media/ic_image_effects.png | Bin 0 -> 2246 bytes .../base/media/ic_image_wpsdaoke.png | Bin 0 -> 1197 bytes .../base/media/ic_image_wpsenddoc.png | Bin 0 -> 492 bytes .../base/media/ic_image_wpsevent.png | Bin 0 -> 758 bytes .../base/media/ic_image_wpsfilter.png | Bin 0 -> 589 bytes .../base/media/ic_image_wpshomepage.png | Bin 0 -> 617 bytes .../resources/base/media/ic_image_wpsme.png | Bin 0 -> 823 bytes .../base/media/ic_image_wpsservice.png | Bin 0 -> 1258 bytes .../base/media/ic_image_wpsstart.png | Bin 0 -> 948 bytes .../resources/base/media/ic_images_wpsdoc.png | Bin 0 -> 479 bytes .../resources/base/media/ic_images_wpsdot.png | Bin 0 -> 305 bytes .../base/media/ic_images_wpsexcel.png | Bin 0 -> 852 bytes .../main/resources/base/media/ic_search.png | Bin 0 -> 734 bytes .../media/ic_select_option_collection.png | Bin 0 -> 3088 bytes .../src/main/resources/base/media/ic_user.png | Bin 0 -> 710 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 606 bytes .../src/main/resources/base/media/image.png | Bin 0 -> 2451 bytes .../src/main/resources/base/media/myAudio.png | Bin 0 -> 3437 bytes .../main/resources/base/media/startIcon.png | Bin 0 -> 4351 bytes .../resources/base/media/utdType_back.svg | 12 + .../src/main/resources/base/media/video.png | Bin 0 -> 1376 bytes .../resources/base/profile/main_pages.json | 5 + .../main/resources/en_US/element/string.json | 16 ++ .../main/resources/zh_CN/element/string.json | 68 +++++ .../src/ohosTest/ets/test/Ability.test.ets | 35 +++ .../entry/src/ohosTest/ets/test/List.test.ets | 5 + .../ohosTest/ets/testability/TestAbility.ets | 50 ++++ .../ohosTest/ets/testability/pages/Index.ets | 17 ++ .../ets/testrunner/OpenHarmonyTestRunner.ets | 47 ++++ .../MyWps/entry/src/ohosTest/module.json5 | 37 +++ .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 16 ++ .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../arkui/MyWps/entry/src/test/List.test.ets | 5 + .../MyWps/entry/src/test/LocalUnit.test.ets | 33 +++ .../arkui/MyWps/hvigor/hvigor-config.json5 | 18 ++ scenario/arkui/MyWps/hvigor/hvigor-wrapper.js | 1 + scenario/arkui/MyWps/hvigorfile.ts | 6 + scenario/arkui/MyWps/hvigorw | 48 ++++ scenario/arkui/MyWps/hvigorw.bat | 64 +++++ scenario/arkui/MyWps/oh-package-lock.json5 | 13 + scenario/arkui/MyWps/oh-package.json5 | 12 + scenario/arkui/MyWps/screenshots/main.png | Bin 0 -> 54591 bytes 64 files changed, 1402 insertions(+) create mode 100755 scenario/arkui/MyWps/.gitignore create mode 100755 scenario/arkui/MyWps/AppScope/app.json5 create mode 100755 scenario/arkui/MyWps/AppScope/resources/base/element/string.json create mode 100755 scenario/arkui/MyWps/AppScope/resources/base/media/app_icon.png create mode 100755 scenario/arkui/MyWps/README_zh.md create mode 100755 scenario/arkui/MyWps/build-profile.json5 create mode 100755 scenario/arkui/MyWps/entry/.gitignore create mode 100755 scenario/arkui/MyWps/entry/build-profile.json5 create mode 100755 scenario/arkui/MyWps/entry/hvigorfile.ts create mode 100755 scenario/arkui/MyWps/entry/obfuscation-rules.txt create mode 100755 scenario/arkui/MyWps/entry/oh-package.json5 create mode 100755 scenario/arkui/MyWps/entry/src/main/ets/entryability/EntryAbility.ets create mode 100755 scenario/arkui/MyWps/entry/src/main/ets/pages/Index.ets create mode 100755 scenario/arkui/MyWps/entry/src/main/ets/pages/wps/HomePage.ets create mode 100755 scenario/arkui/MyWps/entry/src/main/module.json5 create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/element/color.json create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/element/string.json create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/file.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_dialog.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_dirs.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_effects.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsdaoke.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsenddoc.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsevent.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsfilter.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpshomepage.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsme.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsservice.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsstart.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_images_wpsdoc.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_images_wpsdot.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_images_wpsexcel.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_search.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_select_option_collection.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_user.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/icon.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/image.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/myAudio.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/startIcon.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/utdType_back.svg create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/media/video.png create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/base/profile/main_pages.json create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/en_US/element/string.json create mode 100755 scenario/arkui/MyWps/entry/src/main/resources/zh_CN/element/string.json create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/ets/test/List.test.ets create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/module.json5 create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/color.json create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/string.json create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/resources/base/media/icon.png create mode 100755 scenario/arkui/MyWps/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100755 scenario/arkui/MyWps/entry/src/test/List.test.ets create mode 100755 scenario/arkui/MyWps/entry/src/test/LocalUnit.test.ets create mode 100755 scenario/arkui/MyWps/hvigor/hvigor-config.json5 create mode 100755 scenario/arkui/MyWps/hvigor/hvigor-wrapper.js create mode 100755 scenario/arkui/MyWps/hvigorfile.ts create mode 100755 scenario/arkui/MyWps/hvigorw create mode 100755 scenario/arkui/MyWps/hvigorw.bat create mode 100755 scenario/arkui/MyWps/oh-package-lock.json5 create mode 100755 scenario/arkui/MyWps/oh-package.json5 create mode 100755 scenario/arkui/MyWps/screenshots/main.png diff --git a/scenario/arkui/MyWps/.gitignore b/scenario/arkui/MyWps/.gitignore new file mode 100755 index 00000000..fbabf771 --- /dev/null +++ b/scenario/arkui/MyWps/.gitignore @@ -0,0 +1,11 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test \ No newline at end of file diff --git a/scenario/arkui/MyWps/AppScope/app.json5 b/scenario/arkui/MyWps/AppScope/app.json5 new file mode 100755 index 00000000..ed4ef85d --- /dev/null +++ b/scenario/arkui/MyWps/AppScope/app.json5 @@ -0,0 +1,10 @@ +{ + "app": { + "bundleName": "com.example.mywps", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/scenario/arkui/MyWps/AppScope/resources/base/element/string.json b/scenario/arkui/MyWps/AppScope/resources/base/element/string.json new file mode 100755 index 00000000..6f03321b --- /dev/null +++ b/scenario/arkui/MyWps/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "MyWps" + } + ] +} diff --git a/scenario/arkui/MyWps/AppScope/resources/base/media/app_icon.png b/scenario/arkui/MyWps/AppScope/resources/base/media/app_icon.png new file mode 100755 index 0000000000000000000000000000000000000000..cd45accb1dfd2fd0da16c732c72faa6e46b26521 GIT binary patch literal 2041 zcmaJ?c~nzZ9u6@;0AXaYAVN(;Kr(@>EJ+}skOWf=BA~*l4us@ELY9{%0m5QX6pnb} z(jZF|S&pLAS}3BZAfeQSvJ_h>F2Q1PYqi?o5`;m_yjZdG$1v}l_wK#F^L^iMz2}uD z#K$>1dON~kFlWvhW+Jp=tuN9J`ZlM-rl4h+ij|^D0y9;4JOuz-EdVnB6i3R-0ulk9 zApi4zAQA>!N9@-o026$1@L`d124`3G5<@_m`0f)Ug_Ie~;HT2q<_a=HH> zDwTdfD^-cW-|_xWVP$f@93UhDN-#&khZ>jZXLTi~$0`7x3REP6pk%&^2|`c>DutjN zMJD4Zs6Z}{FOpd;*mo2zm(GzXRXiCV;4m3zNCYnu3Fy=i5;2An&Lp!#LP;bRD~1&s z%VH6UY+}r6YDgG+p34OJIZ{BTn&%4s=CT&#TBkuOhdeU@g(w#guoa*b^)73=XyI65 z7Swys6)YS}?1EeZ6b!-I+yCnIya^g0>-NLsLWd8t56GZ_S3r|ZGbR+mV2ErEb9J)X zIF!njY-D-7{qtF2(?nlQ$0}!pzt=}hc*m%%)0Jb#N_K4@IC-`Pi5DahPZN7N9rH;ol;Gc*>-Go@gXKTM{eP)iJj6CYTIi}B#zLKZYD@_;m zrXmXXsFq@~ou-z!9bHoM8*(hwl>X(zm)TDcdkF4lZm$1jP*HbnD`o1$g}_R#+bu2D zr%7Y8KdsaC-V*aem5#@*M%r^GPgu%P2e-BnBClhP2yoGFe40>);=}>{NONtkXQ01p z)OX^t2Ojhddot9eg0WTIVSTNBa}7V-^_pO595w|Hx9q?k4dMp@$G7PK*TD=y;ck6J zdGRB!_RAI2nR3%tO1IkdWp*bw*?<=pM_LZb30?!oK)s;En( z!#nnd9=cXJ<}+e{XLdx(q3&ikJISe?eSHHohk+pz+$6Cv{ytvc{QXmMn2XQ9U8rvt zrJdAn(0gpSD@N=yTrI_2^P#*zQg7MTp1)k(lv(*(KtUR6@M|2WB>2wRwC-h=wk6XF zPtSes*_JwI+^d>xW489MJw5R6=t5?{R zc|E8i?RL@p9)A3ZJAQOg`}+F;<_vnWA!KxR#g%jZ@y_1Qu#Uw)kFPw_xmZ?a^e*1{ zM|ImtqA|(CaDQ@Fyvcof`MN66&VI6m6gAyAXx`%cDx6BI{Bj#}V*Rn1(b~;Am)D2u zX7(027IO?Z2VYK^1vXXpoZ@AtH~N?0rYWwtyA15`6vEf6fk&;o-L;7zFt`5nk*iOy z`<918zB+k;EytI$FAXug)jk*e@e};4e9g__w4A5ev!!)H$yC@{?vsRqJ##X1R%xPG z&_R3oDi$MtTkVqfPj)HEUDx_7wd!y{8#1%$U*Dd0sK@=#6+!XlsE-s^1f5E`R9Wo71^b~mbVdU;Fw0LG~mUQg;xsX4QYRo3B@rH_=ry>DE8ef!c2ta8UcI#26# zF|`*4wtMHe@%#eGZw`#Yj|QWuB`eRD)b~)r9mM95p_JVG%-IdcbIX5qG#GpGD+IrS zEqxb1Rg&Dadk5#7t4j68I1f!@A$efp1?I%&d*56)yl!tkz!14<$0Od_&6cGw$WW0r zjSlQA7l*6;vgfhv!cR|RmAD$+w6j`rVf=-?-D@q>kOseUVSb*~jbAS^*1h?ZL)n(9 zDa}`4etXO6`}9;{k5E^N{rcfnV_(LPwsDg``wtyS*V<19c3!PGJ3Kqy9ksvkwbJ%Z z*N(fT0{e*Wji-Ck5!3YE0j|PZ@&z`v=kitWL$bqSt!e4bH!+(|Q)CZ30^nVPfkx{s zX{6of`p=BiPb@u@IyL!tRk>?qgBqCmo-Zlt!636g?z`s~zdfwuB7DXZHvV`Usp+%Z zo*&;Biu@MHE&2j+?j^o`Cr12u<>vOe=a&8a2hlcmFjJiDR>XnD4c4DAhZWCkiAgW{ E51q9-lK=n! literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/README_zh.md b/scenario/arkui/MyWps/README_zh.md new file mode 100755 index 00000000..ef40f2af --- /dev/null +++ b/scenario/arkui/MyWps/README_zh.md @@ -0,0 +1,49 @@ +# MyWps + +### 介绍 + +本示例主要模拟WPS应用,使用ArkUI的组件实现应用的布局、动效等,复制应用的界面及交互,以此测试ArkUI是否足够支持WPS应用的UX实现,以及是否存在问题; + +### 效果预览 + +|![image](screenshots/main.png)| + + + +### 工程目录 + +``` +entry/src/main/ets/ +|---Application +|---MainAbility +|---pages +| |---Index.ets + |---wps +| | |---HomePage.ets // 首页 +``` + + +### 依赖 + +不涉及 + +### 相关权限 +无 + +### 约束与限制 + +1. 本示例仅支持标准系统上运行,支持设备:RK3568; +2. 本示例仅支持API10版本SDK,版本号:4.0.10.13; +3. 本示例需要使用DevEco Studio 4.0 Release (Build Version: 4.0.0.600); + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo scenario/arkui/MyMusic/ > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony-sig/ostest_integration_test.git +git pull origin master +``` \ No newline at end of file diff --git a/scenario/arkui/MyWps/build-profile.json5 b/scenario/arkui/MyWps/build-profile.json5 new file mode 100755 index 00000000..430f0315 --- /dev/null +++ b/scenario/arkui/MyWps/build-profile.json5 @@ -0,0 +1,49 @@ +{ + "app": { + "signingConfigs": [ + { + "name": "default", + "material": { + "certpath": "C:\\Users\\15850\\.ohos\\config\\openharmony\\auto_ohos_default_MyWps_com.example.mywps.cer", + "storePassword": "0000001B4289C18772F96228FD1E4A07BAC6106C86D6E520A219CE921C8E30BC4852A81D030915E8929E1E", + "keyAlias": "debugKey", + "keyPassword": "0000001BB388ED5DDE7574C54028C65990894B634E6FD18ADD6886E50FB9F77B4778C4D38F74FA35FA8236", + "profile": "C:\\Users\\15850\\.ohos\\config\\openharmony\\auto_ohos_default_MyWps_com.example.mywps.p7b", + "signAlg": "SHA256withECDSA", + "storeFile": "C:\\Users\\15850\\.ohos\\config\\openharmony\\auto_ohos_default_MyWps_com.example.mywps.p12" + } + } + ], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 10, + "compatibleSdkVersion": 10, + "runtimeOS": "OpenHarmony", + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/.gitignore b/scenario/arkui/MyWps/entry/.gitignore new file mode 100755 index 00000000..e2713a27 --- /dev/null +++ b/scenario/arkui/MyWps/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/build-profile.json5 b/scenario/arkui/MyWps/entry/build-profile.json5 new file mode 100755 index 00000000..f8ddb398 --- /dev/null +++ b/scenario/arkui/MyWps/entry/build-profile.json5 @@ -0,0 +1,31 @@ +{ + "apiType": "stageMode", + "buildOption": { + "arkOptions": { + // "apPath": "./modules.ap" /* Profile used for profile-guided optimization (PGO), a compiler optimization technique to improve app runtime performance. */ + } + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": true, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/hvigorfile.ts b/scenario/arkui/MyWps/entry/hvigorfile.ts new file mode 100755 index 00000000..c6edcd90 --- /dev/null +++ b/scenario/arkui/MyWps/entry/hvigorfile.ts @@ -0,0 +1,6 @@ +import { hapTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/scenario/arkui/MyWps/entry/obfuscation-rules.txt b/scenario/arkui/MyWps/entry/obfuscation-rules.txt new file mode 100755 index 00000000..985b2aeb --- /dev/null +++ b/scenario/arkui/MyWps/entry/obfuscation-rules.txt @@ -0,0 +1,18 @@ +# Define project specific obfuscation rules here. +# You can include the obfuscation configuration files in the current module's build-profile.json5. +# +# For more details, see +# https://gitee.com/openharmony/arkcompiler_ets_frontend/blob/master/arkguard/README.md + +# Obfuscation options: +# -disable-obfuscation: disable all obfuscations +# -enable-property-obfuscation: obfuscate the property names +# -enable-toplevel-obfuscation: obfuscate the names in the global scope +# -compact: remove unnecessary blank spaces and all line feeds +# -remove-log: remove all console.* statements +# -print-namecache: print the name cache that contains the mapping from the old names to new names +# -apply-namecache: reuse the given cache file + +# Keep options: +# -keep-property-name: specifies property names that you want to keep +# -keep-global-name: specifies names that you want to keep in the global scope \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/oh-package.json5 b/scenario/arkui/MyWps/entry/oh-package.json5 new file mode 100755 index 00000000..60744fdb --- /dev/null +++ b/scenario/arkui/MyWps/entry/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "license": "", + "devDependencies": {}, + "author": "", + "name": "entry", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/scenario/arkui/MyWps/entry/src/main/ets/entryability/EntryAbility.ets b/scenario/arkui/MyWps/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100755 index 00000000..b2f67090 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,43 @@ +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; +import hilog from '@ohos.hilog'; +import UIAbility from '@ohos.app.ability.UIAbility'; +import Want from '@ohos.app.ability.Want'; +import window from '@ohos.window'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy(): void { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/scenario/arkui/MyWps/entry/src/main/ets/pages/Index.ets b/scenario/arkui/MyWps/entry/src/main/ets/pages/Index.ets new file mode 100755 index 00000000..47d81fe6 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2023-2024 Shenzhen Kaihong Digital Industry Development Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * 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. + */ + +import { HomePage } from './wps/HomePage'; + +@Entry +@Component +struct Index { + @State tabsIndex: number = 0 + + build() { + Tabs({ barPosition: BarPosition.End }) { + TabContent() { + HomePage() + }.tabBar(this.TabBarBuilder(0, $r('app.media.ic_image_wpshomepage'), $r('app.media.ic_image_wpshomepage'), $r('app.string.wps_homepage'))) + + TabContent() { + HomePage() + }.tabBar(this.TabBarBuilder(1, $r('app.media.ic_image_wpsenddoc'), $r('app.media.ic_image_wpsenddoc'), $r('app.string.wps_clouddoc'))) + + TabContent() { + HomePage() + }.tabBar(this.TabBarBuilder(2, $r('app.media.ic_image_wpsservice'), $r('app.media.ic_image_wpsservice'), $r('app.string.wps_service'))) + + TabContent() { + HomePage() + }.tabBar(this.TabBarBuilder(3, $r('app.media.ic_image_wpsdaoke'), $r('app.media.ic_image_wpsdaoke'), $r('app.string.wps_daoker'))) + + TabContent() { + HomePage() + }.tabBar(this.TabBarBuilder(4, $r('app.media.ic_image_wpsme'), $r('app.media.ic_image_wpsme'), $r('app.string.wps_me'))) + } + .barHeight(56) + .barWidth('100%') + .vertical(false) + .backgroundColor($r('app.color.background_shallow_grey')) + .onChange((index: number) => { + this.tabsIndex = index + }) + } + + @Builder TabBarBuilder(index: number, selectedImage: Resource, unselectedImage: Resource, tabBarName: Resource) { + Column() { + Image(this.tabsIndex === index ? selectedImage : unselectedImage) + .width(24) + .height(24) + .margin({ bottom: 4 }) + + Text(tabBarName) + .fontSize(10) + .fontFamily('HarmonyHeiTi-Medium') + .fontColor(this.tabsIndex === index ? $r('app.color.tab_bar_select') : $r('app.color.tab_bar_unselect')) + } + .width('100%') + .padding({ top: 6, bottom: 6 }) + .alignItems(HorizontalAlign.Center) + .id(`tabBar${index}`) + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/main/ets/pages/wps/HomePage.ets b/scenario/arkui/MyWps/entry/src/main/ets/pages/wps/HomePage.ets new file mode 100755 index 00000000..40dce07d --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/ets/pages/wps/HomePage.ets @@ -0,0 +1,231 @@ +/* + * Copyright (c) 2023-2024 Shenzhen Kaihong Digital Industry Development Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * 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. + */ + +// Page HomePage +@Component +export struct HomePage { + build() { + Column() { + Column() { + Row() { + Image($r('app.media.ic_user')) + .width('10%') + .height(30) + .margin({ left: 16 }) + .objectFit(ImageFit.Contain) + .id('backBtn1') + Text('Hello') + .fontSize(20) + .layoutWeight(1) + .margin({ left: 10 }) + .align(Alignment.Start) + Blank() + Image($r('app.media.ic_dialog')) + .width('10%') + .height(20) + .margin({ right: 16 }) + .objectFit(ImageFit.Contain) + .id('backBtn2') + } + .height(56) + .width('100%') + + Row() { + Image($r('app.media.ic_search')) + .width('%10') + .height(20) + .margin({ left: 12 }) + .objectFit(ImageFit.Contain) + .id('backBtn') + Text('搜索') + .fontSize(15) + .layoutWeight(1) + .fontColor(Color.Gray) + .margin({ left: 5 }) + .align(Alignment.Start) + Image($r('app.media.ic_image_effects')) + .width('%10') + .height(20) + .margin({ right: 12 }) + .objectFit(ImageFit.Contain) + .id('backBtn') + } + .height(40) + .width('92%') + .margin({ left: 10, right: 10 }) + .borderRadius(20) + .backgroundColor(Color.White) + + Row() { + }.height(10).width('100%') + }.backgroundColor($r('app.color.background_grey')) //column + Column(){ + Row() { + Text($r('app.string.wps_recent')) + .fontSize(20) + .width('12%') + .fontWeight('bold') + .margin({ left: '5%' }) + .align(Alignment.Start) + + Text($r('app.string.wps_share')) + .fontSize(20) + .fontColor(Color.Gray) + .width('12%') + .margin({ left: '4%' }) + .align(Alignment.Start) + + Text($r('app.string.wps_star')) + .fontSize(20) + .fontColor(Color.Gray) + .width('12%') + .margin({ left: '4%' }) + .align(Alignment.Start) + + Text($r('app.string.wps_label')) + .fontSize(20) + .fontColor(Color.Gray) + .width('12%') + .margin({ left: '5%' }) + .align(Alignment.Start) + + Text($r('app.string.wps_local')) + .fontSize(20) + .fontColor(Color.Gray) + .width('12%') + .margin({ left: '5%' }) + .align(Alignment.Start) + + Image($r('app.media.ic_image_dirs')) + .width('8%') + .height(30) + .margin({ left: '5%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + } + .width('100%') + .height(45) + .backgroundColor($r('app.color.white')) + .alignItems(VerticalAlign.Bottom) + .align(Alignment.End) //row + Row() { + Row() { + Path() + .commands('M0 0 L50 0') + .strokeLineCap(LineCapStyle.Round) + .stroke(Color.Red) + .strokeWidth(3) + }.width('10%').height(10).backgroundColor(Color.White).margin({ left: '6%' }) + }.width('100%').backgroundColor(Color.White) + + Scroll() { + Column() { + Row() { + Text($r('app.string.wps_today')) + .width('75%') + .fontSize(20) + .margin({ left: '5%' }) + .align(Alignment.Start) + + Image($r('app.media.ic_image_wpsfilter')) + .width('7%') + .height(40) + .margin({ left: '0%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + + Image($r('app.media.ic_image_wpsevent')) + .width('20.00vp') + .height(40) + .margin({ left: '4%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + }.width('100%').height(40).backgroundColor($r('app.color.white')) + + this.FileList(1, "欢迎使用My PS", "本地/data/doc"); + this.FileList(2, "常用命令记录", "电脑桌面"); + + Row() { + Text($r('app.string.wps_sevendays')) + .fontSize(20) + .layoutWeight(1) + .margin({ left: 12 }) + .fontColor(Color.Gray) + .align(Alignment.Start) + }.width('100%').height(40).backgroundColor($r('app.color.white')) + + this.FileList(1, "测试报告", "本地/data/work"); + this.FileList(2, "应用列表", "电脑桌面"); + + Row() { + Text($r('app.string.wps_earlier')) + .fontSize(20) + .fontColor(Color.Gray) + .layoutWeight(1) + .margin({ left: 12 }) + .align(Alignment.Start) + }.width('100%').height(40).backgroundColor($r('app.color.white')) + + this.FileList(1, "工具使用手册", "本地/data/work"); + this.FileList(1, "工具使用报告", "本地/data/work"); + this.FileList(2, "测试列表", "本地/data/work"); + this.FileList(1, "杂七杂八笔记", "本地/data/work"); + }.width('100%') + } + .padding({ left: 5, right: 5, bottom: 20 }) + .height(550) + .backgroundColor($r('app.color.background_shallow_grey')) + .scrollable(ScrollDirection.Vertical) + }.backgroundColor(Color.White) + } + } //build + + @Builder FileList(type: number, fileName: string, filePos: string) { + Row() { + Image( type == 1 ? $r('app.media.ic_images_wpsdoc') :$r('app.media.ic_images_wpsexcel')) + .width('15%') + .height(40) + .margin({ left: '2%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + + Column() { + Text(fileName) + .fontSize(20) + .align(Alignment.Start) + Text(filePos) + .fontSize(15) + .fontColor(Color.Gray) + .align(Alignment.Start) + }.height(40).width('60%') + .align(Alignment.Start) + .alignItems(HorizontalAlign.Start) + + Image($r('app.media.ic_image_wpsstart')) + .width('8%') + .height(40) + .margin({ left: '3%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + + Image($r('app.media.ic_images_wpsdot')) + .width('8%') + .height(40) + .margin({ left: '2%' }) + .objectFit(ImageFit.Contain) + .id('backBtn5') + }.width('100%').height(80).backgroundColor($r('app.color.white')) + } //FileList +} //Green \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/main/module.json5 b/scenario/arkui/MyWps/entry/src/main/module.json5 new file mode 100755 index 00000000..b4421e91 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/module.json5 @@ -0,0 +1,37 @@ +{ + "module": { + "name": "entry", + "type": "entry", + "description": "$string:module_desc", + "mainElement": "EntryAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:main_pages", + "abilities": [ + { + "name": "EntryAbility", + "srcEntry": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:white", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/element/color.json b/scenario/arkui/MyWps/entry/src/main/resources/base/element/color.json new file mode 100755 index 00000000..ebc46249 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/resources/base/element/color.json @@ -0,0 +1,233 @@ +{ + "color": [ + { + "name": "white", + "value": "#FFFFFF" + }, + { + "name": "bottom_title_divider", + "value": "#99838388" + }, + { + "name": "tab_bar_divider", + "value": "#33182431" + }, + { + "name": "font_color_shallow", + "value": "#182431" + }, + { + "name": "font_color_dark", + "value": "#000000" + }, + { + "name": "font_color_red", + "value": "#FFD22C2C" + }, + { + "name": "tab_bar_select", + "value": "#007DFF" + }, + { + "name": "tab_bar_unselect", + "value": "#66182431" + }, + { + "name": "background_shallow_grey", + "value": "#F1F3F5" + }, + { + "name": "background_dark", + "value": "#FF000000" + }, + { + "name": "background_grey", + "value": "#0d000000" + }, + { + "name": "background_orange", + "value": "#E6A23C" + }, + { + "name": "background_pink", + "value": "#F56C6C" + }, + { + "name": "background_blue", + "value": "#409EFF" + }, + { + "name": "background_green", + "value": "#67C23A" + }, + { + "name": "pop_up_background", + "value": "#0D182431" + }, + // Button + { + "name": "button_custom_color", + "value": "#80FF7500" + }, + { + "name": "button_default_bg_color", + "value": "#007DFF" + }, + // Divider + { + "name": "divider_block_color", + "value": "#1A838388" + }, + // Interpolation Calculation + { + "name": "curve_normal", + "value": "#3F56EA" + }, + { + "name": "curve_bezier", + "value": "#00BFC9" + }, + { + "name": "curve_spring", + "value": "#BCD600" + }, + { + "name": "curve_init", + "value": "#E40078" + }, + { + "name": "curve_steps", + "value": "#FF7500" + }, + // Radio + { + "name": "radio_response_region_color", + "value": "#66ffc0cb" + }, + // Select + { + "name": "select_option_bg_color", + "value": "#33007DFF" + }, + { + "name": "select_option_font_color", + "value": "#FF007DFF" + }, + // Toggle + { + "name": "toggle_selected_color", + "value": "#4D00BFC9" + }, + //Display + { + "name": "background_light_gray", + "value": "#f1f3f5" + }, + { + "name": "sub_title_color", + "value": "#182431" + }, + { + "name": "title_colorone", + "value": "#0A59F7" + }, + { + "name": "title_colortwo", + "value": "#000000" + }, + //辅助ScrollBarSample + { + "name": "scrollbar_background_color", + "value": "#ededed" + }, + { + "name": "contentArea_background_color", + "value": "#C0C0C0" + }, + // Interaction + { + "name": "normal_bg_color", + "value": "#0A59F7" + }, + { + "name": "btn_border_color", + "value": "#33000000" + }, + { + "name": "3D_background_color", + "value": "#F9BC64" + }, + { + "name": "3D_top_left_color", + "value": "#FED599" + }, + { + "name": "3D_right_buttom_color", + "value": "#D69942" + }, + { + "name": "btn_one_color", + "value": "#FFC0CB" + }, + { + "name": "btn_two_color", + "value": "#87CEFA" + }, + { + "name": "btn_three_color", + "value": "#90EE90" + }, + { + "name": "btn_onFocus_color", + "value": "#FF0000" + }, + { + "name": "focus_on_background", + "value": "#007DFE" + }, + { + "name": "COLOR_80000000", + "value": "#80000000" + }, + { + "name": "COLOR_FFFFFF", + "value": "#FFFFFF" + }, + { + "name": "COLOR_8C9BA2", + "value": "#8C9BA2" + }, + { + "name": "COLOR_99FFFFFF", + "value": "#99ffffff" + }, + { + "name": "canvas_background", + "value": "#ffff00" + }, + { + "name": "canvas_normal_button_bg", + "value": "#317aff" + }, + { + "name": "canvas_clear_button_bg", + "value": "#ffff7300" + }, + { + "name": "canvas_bg_color", + "value": "#00ffff" + }, + { + "name": "scroll_to_button_color", + "value": "#ff55c6f5" + }, + { + "name": "scroll_item_color", + "value": "#ff2a78db" + }, + { + "name": "scroll_grid_item_color", + "value": "#F9CF93" + } + ] +} diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/element/string.json b/scenario/arkui/MyWps/entry/src/main/resources/base/element/string.json new file mode 100755 index 00000000..e43b2956 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/resources/base/element/string.json @@ -0,0 +1,68 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "label" + }, + { + "name": "wps_homepage", + "value": "WpsHomePage" + }, + { + "name": "wps_clouddoc", + "value": "WpsCloudDoc" + }, + { + "name": "wps_service", + "value": "WpsService" + }, + { + "name": "wps_daoker", + "value": "WpsDaoke" + }, + { + "name": "wps_me", + "value": "WpsMe" + }, + { + "name": "wps_recent", + "value": "WpsRecent" + }, + { + "name": "wps_share", + "value": "WpsShare" + }, + { + "name": "wps_star", + "value": "WpsStar" + }, + { + "name": "wps_label", + "value": "WpsLabel" + }, + { + "name": "wps_local", + "value": "WpsLocal" + }, + { + "name": "wps_today", + "value": "WpsToday" + }, + { + "name": "wps_sevendays", + "value": "WpsSevenDays" + }, + { + "name": "wps_earlier", + "value": "WpsEarlier" + } + ] +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/file.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/file.png new file mode 100755 index 0000000000000000000000000000000000000000..f26a6bc36805a2a438c6495ad772dc065f7b591c GIT binary patch literal 2618 zcmeHJSyWS577g*CNf=B*5Cnv0c%UFuOvF+Ugva;-VF=3XR0@KHA|NW_5P3yIn8M>( z3A0*F8k8XvQVc?&lrjWCl%Rkzs3n5fia-GZwpyv~kN)Y8{;9S4qd)FF``&xbU2E@q z*10Fu$IDHFqDLVR2pU|(*;i@he+<$}zU0ceiej%~*YPh7(<8 z*0*ZMNTKX}&=;GgvRhs@qYIzQ7wY>bY)WGrtvB2P35m@>&o3*9)Io0o{92P#2ovCl z)g+K)M@amd$iu#ldi#{50z5%}us*D>0vvhSF3Y4kV3~~kLv=KV|9l+y9jF5}n@-}= zF1Kg;W>+pq=Gy!<&k9d`<%j)-Pq`=TRor*FsQ)_uJu|gR&x0}6pKTCuK5$J=22_Gu zdSWSfR6(GH-5RdC_8uI30PSUO4%`LdK)?wz)K(m4x%f6R(+O|6_Z5tNbbD`2%xYfV z2$9WaUZcF@awFBElaXwM?lY6EnrHZGXLf5}*@B}ncSqBgQz8p_2fp)-t7a9~rb+%HvpwZ(ufG^~f1?>zg2o$IQ8)WKg*! z<`+<4irV1K3@&E{6}H*Y{i9tZ`Zj7Ew`U_0)wTI~3nzrSFKRs!-ZdU&p9CT|O51tZ z@Hp#ca3%PGXpi6Rs?^eU#Bj;|y?so1Tnhh6h!cKj-t}KT>0sZk+ma1}k5j9-A~}d~ zyT)Zlv_l&`AhJvw1y*PX|4swAL`t+R5k?bNw$4*fNX2E)1w_E^tJg>{23^x7(E-k8 zQ+Fyv-bg_K2X&E<0dQ^7zXOX18bigZFfL-QM^@SP`KN%0BG3Xj0)!8b(*dqtS~95d zusfs>RjM>YmC^(6#MUc0^PPd~7sWqWIZ+`q3saPVy6=&gkZ=Y=8>WCJtWM?ahttx* z&XN7mH-q64?`bc4tH-~!m0tYt&#ulgG*zKc&!P12j3E!q)H$b7!8v@+;)Ub$&ML8dM@v6T? z0EBc2jZW(In_J;vK~CtS5=Shyau2Io^bGc}TPQlfzwJwc@9DE6Uqxtzo}Th_N5PzI!Mde zPk`?Qg;hFZ77En?7$YK`9#m-UVo;6~mY5b3w~55@@uY@cJqRN5EX@>u2J9GX~oa{vEL{ z7X4|2-Q-1gpdRuDg|sMND^wRY{_}y6FUA)bLbJuM+ZA?Mu2kbNz*<8G&d{i5ed({XR+8TT!JjF@ zvPim0yfk4xP&4dt)gN08oqyB(x8*s0!5fLxP290|-a_0Fcz-q+9=$ZT6j5qadp!zC zu+_7e>TrKvBCV}vLVQrGk$rTJbcOO@!5u|Y*lO4WU93MF8^gRll%{8QiCgSOLh&*w2;TOOG<1<{`(V;(#j#NMV{hg=Rif{FdfL#oZ~6PWtXbsS#Za8O@=nb78)XA!MOo-b9|EiZ}kVZzI zl5UiI8!L$>lIWuETed1&q^*9JYLc`ZuxKeDOC_Kc*YgWa3JGYEu}QQiKn?YLJZA9% pph5;_iIL2UU}TwTIC;Y~YuY$!Vy^eyPGvJl;JSD@%N!4&zXRC;Mv4Fc literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_dialog.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_dialog.png new file mode 100755 index 0000000000000000000000000000000000000000..466dd5956752e2b03b794fe4384159862999c310 GIT binary patch literal 1706 zcmc&#dpOez82UnrEf8l$~%wZgp}GXP)Og=ls+E=a2V$-|u_h|Gww>zKnw&E~+p%3;+OCoGaE_ z#>5pUL1p!Gej-{%V7#}B1Hct*8kRL!k{>S2-5o&6v=RWOM*{LI5gFhz004vy0uUL4 zD>Js-zb=st`A@F|?^*`} zrh0GqV9y1m7A9MYJWp#{ZBMzmOe>HYoV~Wao1wvgdacF1m}Nz5viuBTJo0Sm7#lhC z@mzGdBWGdLY*VABPto{a=id6fwMmRJr^G`G!EoLN@~>#U3Zz0{U!qOEMBpWmE&UX^ z^3lBgwRX*7#H7WnauQ4}RkZp2yrvY%9SJ5YHd)WXUQeVg$DMY0Oq~pVd1qRmcIKxe zQQNO5&da#I%Z$6AI>|SAS4;q=<_&p_x`1}x2#WbSkllLgE$UcR_rsKDQ{j)(#@(U# z__g>Ls9x%$59Y5B7+l*p(AY5mcNK%5APj>6-IO%fw!L?KW8WojmW>c0#JiR-OjXN*cpzZr(YFmkVLGVtmD8OAAbK4~0Ky@b9j@mX+3`{hQ+ea!Q=U2Wv_eN> z4WcH?=sfILOxX;Q)R5kQR}jkIR;-*-HH3$B&unc_j~LB71~dq{g%G@ z;nVl3Kcegn;RQzFC);8${mt73g-cH;t9mzTX+DRSe3Hu}MQVewoNf!LziEPqd{!H+ zM&0#7nAO5icoM?c-AB8}QIW{6p7Tt-NuLlkmr{e=pB72CS7T@4%c(r`kBGd}n4N+U zPVg6;aGQ7KB6IOGw)f&KVcS!R!3nMBEvd)^ufei2ljwB!uOE&Z*#ST5O9#bzL?w>27ne!=ZtcCHj!f2dRz}jp4`TH+S89G;++prZd@~`8a;HOFD+!2F zHudZj?+vmE>a4E07Uw(8$}pzvj&Tzyy7%n>6R_|h)|+Yz-$UcqXG~PAzFO<~%N?r` z&?aCb zPq3b&FdbOC;*qI)$r5qU4b*h;cT)3tj>YEhK|n)k-!QXBhpltVgb-@w@~6mFgM}|_ z$i0VQ0d74TCN0M@v?9&XjSc%UbL-L3qjLxg7SJ%W&WSWevrQ1GAz6HM-H2}z3y_ov zY8S}0uLSvA+=`qtxYpW$!M;~Nn?1HJ?yG#@Ld zdy8D(vPtWgt8~jQkW@76Sw&Aso)QVx zBu&(wPSjAXgB`qa^u|s}na9~X!`ysGM}b!Nbdq`15Q`SLb4dA!IzEfn_3I-{hO)YN Y=RrEp?Bu(<#w&jU=j4IqIuKL-28+G|n*aa+ literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_dirs.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_dirs.png new file mode 100755 index 0000000000000000000000000000000000000000..2fd7b2ec16ee772d9a72c5f5df75243da6a38377 GIT binary patch literal 685 zcmV;e0#f~nP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0zyedK~zXf?Nw`Y znotn!|Nlj8Qi+d>fyDTz4>TqXCcY7she;!75A52=m5I=4zI1wKhuOpK-g9A>%ctE3 z}6|b>Y zwXU_aJF;eY&C6xnZ*}fBo)>FeABTv*nG|exyWKM1T;5F3o9M6rF)cIOAtgm_Qj_AXfQK_3vk zuCzes=8|YapagG~i6DR$A>8irmT9OQcTF@Q&;z_!CW63dVqnF3vkTw%{qu{U0dOdq z1jc-c5=&k{FwFq@vQni`LR7zZP=&E(E(q9;i*WI>0>5|PhmWbCP(qwvT%zjr zb;Dc`KmcJWufi`^gAUIOlR^nW9}SZb5dnY(AE!#5I_#wF@F@W)JnwLPl2WSwjAc70 z5!xmS&}cplC&#HL(P;NjrT0h7Lx=)&-c{-vuK1GqZZe>Gs5FSLg!0APf0jxJYrDqC50?5{9J;P2vt1$Mh%fSmiA TXT!>s00000NkvXXu0mjfL$5LM literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_effects.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_effects.png new file mode 100755 index 0000000000000000000000000000000000000000..a658b102562654d413d47328b68c28796e061449 GIT binary patch literal 2246 zcmaJ@Yd8}O8{U?oNy0Fv7+%DPR5m2GA&HzfwwUvwCp;6MJpuu{j>YOjTsIo8;o3|z{$NP#*)@Aw$;6dh77&0Dc$3!8LRr~*^( z&!I7R-yuex*4)bis=kCK5te&3Mbty-j$kJY^WlK7cC0a<%~0&*L#~l*Ql^ni$1myU z^YfLV_Y0Q^;mK=1v*ex+w1)Rr{<8mM7H*8gp>5@lWkAnCl)!gE=5b|4{}Yz0vShcg zD#vy&O+`-$x~C(J`$T=Fck;;Ce>7t>c2!J``#^nc$<5^VW~fzX*7#cRQ*yDl+VUV{ z3jNOHxyiUA1^3?Rb5x71n?&*tMmyCCZVIG*RT91#!dCexfArN+%p`8AU2q#5_~r&( z_JJ11k(!$tpxPN3qVNoT>e%*SGEs$m^B`lxHjl=uJm2b)$l9<#>tC4&Y#J>L8cpXB#X|a0X3$vEHt1i%dBt{ss zY{ObSnu+pm_bs&nHh;$@mDFtegQVBpLf0)QySsKRM0meop6KW&&7BdVgZ8VwY+V; z6DM?#23lNTcZ2Si2FO;uOWo{_g{#oGc49>dzyZJOY7E|HofgQXOK@(I1}}@hx@wX? zKsVLujT%6oD1g+E%7U%{gENuOj92FU<73+fD2SgCNd!jernC$2#Hcg4!o}gui^CV1 zP2x&~;kn808)5fub(%5P6_`jxap1+rDNT+*x{rQ%mRXul+{AH8!vSW8YkM~>#At`m zCtc_$8BlGG{5CDM)$Wv9n_R+>lNBi9Dx3OQ(?Ba)SF*_tX$un%U<@^I6pq4Ka(8o9*!P9hCa5=&`AP5^vV z3;GyF0{xORlPE~}AZjI#l;vWby$|*X2 z#9fS37|Ls4+An=&`gf}MH7fp0+L^MEC0P3CjG94!5krvLk81i?!)rL#C#%;;*L0K~wE2~Yd89bQu z^5eIBP`hWie!x;5hY~0-{kKh)mcrtbdl>;a+>F8DG|3`v)5I6|bwU5+aK0cB0yYr0 z-8g#np`HAMK#_QN9I;g18%Vws)EYWG&HVNhPK`}BZU1=}!>-j-n?~)8QZnePoI&pS znSoxfYbH_nD_&L;urwxL8$#xu_UH-*T_<4ub7@n~qTqbYz(U}duk^q|Qk%@Hx-pbU zsL@)Cx})8$>Z=>ZDV_Xv=hwyr-M>dUO!Gasq>z3OwcN~4rgt2UZ0pt=C-^_|<0)TP z(QZY}5oMOFIzTj%N++iv#UHLk%kBB(I@}xCih%%jikx+f2 z{&*!O^3$_XiQ$nzYSv}iTBRTu|C0`{$5qCM^ReR8e&|L^5o6Ui1`BPoH?&scMyv3D<`I hzmxp?Liek$oc*C~_+nDMLv{a$FgLNn)}TqZ{slcz0;&K2 literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsdaoke.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsdaoke.png new file mode 100755 index 0000000000000000000000000000000000000000..3fc57737ca82282b169c5cc5d45cdb9180a4ed3b GIT binary patch literal 1197 zcmV;e1XBBnP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D1VTwfK~zXf^?55r+0&KmKAcitAl7PHZVLvrXQ8m4e5=+V5n20L$|KE zi$!v{lY?L=)T-8!b!EN!#QueN{lqkp@pyt5DQtn$}mOJt=%_e)z9$qq`Z-srBxegq!=^Kk_Mq- zN&>;bsnbomuHIpEN5(AFMXPD*Ov&V-8PG#hQq{tJIS3APdJ}X%{-pBxh1kCP=P2XA zy0Mdz$)oLgA2jV<{oI#>A`}jjtrssxh>AvInRTw$77hN!%zjfph0gQMUJ%NmfuOr_vBb@dL6K1^q`s43}*DtmUG zJ=lt2y^x^F1~n6DWIh6mA_iw|#9)3{oHY$wi16UZB-%^eSW|~46+ES7Zk4703e1PJ zs{UstM9>ZzFoc6<|KdcnYnq;uT`-g8#iLIrxFJ}YMp313dQ8(x+=qk3RU4?{r_D@= z;B;(ggKc|{;%wX5XDS6nB5_$zs=`2vTFaaW z=2`v%qb0koQiQ^h;>sq-u>4p&&TI-osX)*%M!_VOfV~EZA>3$r%2_-fuf^sF>rj69 z_Y<>e2oAnp_)^2w%^khO5+=+G#OEm(u#Ve8kQFMY=dIERak*fgNBWZJk1CMAHn6g86uKOx@r14@r}Qann2s3|Yso z5iIb)b+7{<7z(3ckWpkkoienXpdkhExfQjngmv5YexBUTIsov8qV5?=&lDOiiJ65p zm{@(iJv=&vOh=1*8w3CjsErS zV|61JpLA1}R<+D5SeKd=Gkj`B$NLG#O^{V8w6IT00000 LNkvXXu0mjfF}*D{ literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsenddoc.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsenddoc.png new file mode 100755 index 0000000000000000000000000000000000000000..57709037c7f398f151fbc65def3f64d9b3937ab6 GIT binary patch literal 492 zcmVPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0f9+GK~zXf?Uvn3 z0znkT`-AIE?V;AtEJCcLmx`hYA1dgjHz7$-R*n2j(IO}*{8;N%40qM8dzKZqW=94L z34a`hojcca99PF(7)+V}6rifAoXof+|B}-yrWNl_Br12is^O?(1oZp;!_#xi3&eC1 zx*|8&5=KC+pV@dj^qk+Yw0r_GDQ;VYU6dG8djUS-2K3#6>sYjKU z>N^@(ppzdU%-;lfrW)WOllcy87@9cd_rQ+%J>a67*zTaqJCJQ?w>!)o(D8`?$rlXl z9gE5B3l2>jo_eDNTfzt+LKoM_U~Bm9xa04Sjs*RSCGN7)`mWx`lGSn1F}hw}^XDJR iT5s%GW)v_L27_-^g63-sTfdC}0000Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0*gsRK~zXf?Uj3T znm`oA`~5#rQsXmS6e0*jNG#Z&#^C=6qC z%H0QnTCU!vm9Lp%A~0DX`hLHMZL@V!Svr&OAa2v7-s~};5aqtjmv}%?&Dq<+UaaI$ zG!q~!6E>_1<3_u0+cD3N=^W_0T!{gNC>IGlU_E#Elq|E_LTYX=G3M{sZe5;|#g?py z8z!0C=2NnMhfBl_)30!e#3dKF%H{Re&T*|~wBDj-VEn$>@>C?$8PjjbivRK{0@}T5n)8E&5Fit0{XB?cNacxo>3#6r$W92#rdE{T2d;e7#8% zO|SCGcU&)9(4u+Slgbna!!ZL2Q7*LK2cyZf)#*3ev6xI|K@e~cgUX#X9yFD{&FVBrve4U57UW|8|8z60tP1O^nM+$;6*IWB7O0{7T&3hTFPoe$vt z(fL5|N5H3KJyjafdinXVey2Sx3+;OTe1H{uiX(!Qo=|O35Y@mWSST3Sy6hZ)Q}!q& z0|yJ{F=jv^%0*$~#NpovjzsSx#jWU(BKs7lo=jd#oO6`Rg+DRZk2Mkkg(uQXSb^{F o5+1Z=aMG4X?sfH_OLaK>1UbGY4d@EL!~g&Q07*qoM6N<$f=kU_K>z>% literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsfilter.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsfilter.png new file mode 100755 index 0000000000000000000000000000000000000000..3cafd2a5e33261ad47cae597225cb8d30963e609 GIT binary patch literal 589 zcmV-T0Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0pdwSK~zXf?Ue~{ zf-o3{_y7OV4u-mk2kO*qE}kgj#k?lq1?XO(bI7U|lf}gC2{HDgU!S&og{$@N^Y38i zd=A@Qb$k7))U4FxW0$v2vnnZr;h2o_1;qhD>Zx$e38!5*_pwr?LB?{RIC|>fh7-ck zbX{)CN=H_@?7vc@1qZI>(j>!C9ksfG>7X}h2P7`$k!~1M(xyA4jRT7y?SLfHFG$zV z?~od8bV5;)c0h!97U{-xM%q+Ie=tHP{z0727bL{Y_(OA_xn)@-M0KEc#mr{CD6NU6 zlPCkNwtC0Mk%+TGLJkxMFiq1vB3vlZRR<(`kaA7N^pR35*H^0*i8|07z_#r|v4$LE zq6&OzUT`audvkgU?T-4h=UxXu@21jq_E*R~mtZ9~JYdDKWDbH`K0X>xNOYG&4j1)( z$b}Oa1x2~=oL->m2A&yiMWShMA^AA&04Vm*V+vzs^Tq8>V3ime!B{fCGfXU z40kEp?Z(#e5fMSt{4P@}td8kyzRzJS}{vJSsvq8T`zTsR4t8`%e|W4>5o zM4UL&vUFo6W?pglVfDTKsIWRPeIc=VXTXGC_YdPYhSdRZ)}qe$$C-Zf=oW1W;5eDf baIDv#$z|#weg3--00000NkvXXu0mjfNwo@E literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpshomepage.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpshomepage.png new file mode 100755 index 0000000000000000000000000000000000000000..c91d1073e7b7d411d74ece478a9c35886d2a8a3d GIT binary patch literal 617 zcmV-v0+#)WP)Px#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0scuuK~zXfWBmXB zKLcF=X*T`;_4CjDTYv6eXHnK*QB-GSV~0u*0Z6dv-|Oce8gl)YCe-&W3s@-YBccq&(L zJR>U`l#c@tu<76DkDofreqTKg<>LUX+J=1PT}-_EP(C(*&!#`OuYK$&{rB!Ql#drM z35oJobhD^xLHQT}r%gZhZTUR83CbZF@aEQWIQc+1r~r#i|9}4YGP~!;-c3+GiGah| zk0-T+k(~p|hXHh(fMNBqt@zK~8&E!30GQkOt9pUq3FU(UicNnW-u+OS^8fo+D4znr z$jL3xK8HnK8Olet>HnYK?{mZdzIX!RQVy6UWCSO#WMpB5aG4+!5d3}mh>F$#0njv{ znNSY0P5-}shO(#!kj+HcL~Af=6A-W{stGhsPx#1ZP1_K>z@;j|==^1poj532;bRa{vGi!vFvd!vV){sAK>D0?bK7K~z{r?UwIP zQc)Pk`-AHpPBBFw&4^IZOf7;im2iMb%9OI4FIq3!T8WvzatWg56y4&70@C;PJX>76 z%;yT_i~8=_8Rt0<-_OoD_nvdFm99?z*%FXu3wd+QM)pXlAJ`qXo>=lbe zuFxYL>`W%xJ2(vF`51EhFv@jeN!hS&w?80KW1GFJ-!tg;Ir`j&mOGThs9wB?jU^p; zJVp%n(?Fq6;DJ&pcXHwx3DA&pz>7`c0f9v9jm<4`_l`|)O08kv1Qo2VZ*oc?5qrcx z3Ezem8)nHVwXhOK^F7o&3rulJAQ9Wt(F0#RP~6wjLysRd%@zmu1ro7gs>~@k&3!Fl zl*+g-kci#XW{0V3c%1uM!YFF$KW}=JTHAZ7ogt_BywRfUw`U~CDS<@n*ymOFB7)&r zPN@}o5v78awXd8KNW{i;JG+L+{rU7O%#sK2gcpn9$Q%vfsLAJlzxo$S#D-Ew$5?Y> zU{goO!!s`ze1R!bhm(@6?cJ#1YMG>LD3v<4_qvEw5uJ{~!<0TSq=OCR3x$u1%Xra^ zW(Sasrn`^4{`VhZfBYV+yQ;FWd9N4V1t({NlQWlS=jPuY93HV(6=|^3nXJpJ927N# zg<4#CaAV(ds$}C1w%YpDMtXz6)WWUWyjE$C+Kvc`N&UC2PJ8 zH_?7?C-;cmY;{;|_b(NF<-g%WhKcQqp7Ybwe3M!EG?Rtu{8Czjc8kwFd}1)8Oe!{% z&F1`}i1N1!;+M6ceKH!tk;U$6RkHu4{!MnN^b@LCZ%mhH;9&p&002ovPDHLkV1nSR Bl<5Ef literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsservice.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_image_wpsservice.png new file mode 100755 index 0000000000000000000000000000000000000000..4ac7305f9e675ac8df70cae19dcaa415cca83edc GIT binary patch literal 1258 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 Vx99q$coYBt002ovPDHLkV1f_1)7bz3 literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_images_wpsdot.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/ic_images_wpsdot.png new file mode 100755 index 0000000000000000000000000000000000000000..18a57d588ac54492c589776db37c56927e3b5320 GIT binary patch literal 305 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 literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/image.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/image.png new file mode 100755 index 0000000000000000000000000000000000000000..57e2d21893de1117f4b0d96b0c4f7303e6194f0d GIT binary patch literal 2451 zcmZuzc{J1u8~%;K9V%wfU`QD?jIj-}gliki$QD_%jD5L;l4ejS%UGhDWr!mClCfU< zQqz!|J;_|V5p^@fjJo>bx}5W!@B8PT_dM_OF3F4bIOQ?{8%V$RE`Z0F)90a34#KfH(pGfJ;CC_=rKr zvl6cVZ3!jd|JTRD8Z}SrqZbEwoZ(d>XtT&=2<{*`s9$e6r5f5auxsD)PBj#iu4*NB zejAC|u5DGakb8cveE1xMt4Xh`+Lm@668fy9Yp6lBt`1ItbL>ap7b$KxH@@HL-QxKKb^UeUYxUVHqIrN)Vh6p{Ov7%JrI{p_}KGiS*;qM962!tm5}&^6J;Kfhh@ zrkSc$IiE>Rq2FhEL{K^$<`t-lonP&BK1-YGFAP3l`obnT@u9W8l)ajchCKe6;CQrr zY$c;TuTU#tN@}9FUz%FmCUBB(x+F_z6ke4sn@-}n)o-Wky!%UC%~eFKsoo0(+Tme_&d5-yDJ!;K4v;0xdQv*Hw&%TmXbGbZ$#I0NUs`Yn~fNp8SN${{I`BMVoN9h+{~q>mXlHo7vswqicu`}({M~>I8f4s{ETOO)!ql?Q zrxyd`;Tqve>n3E7mUD|&{is^iT_r`g*<3$f!$a|ct>k^kdvbV9SFgNFs^e( zYKkwPphWo<7@d3ppG(%$7%%!y=dmOYO$T%>n-a7PGHB&3RUu;|yk7E| zp}?5!b(k!9((b`eh$V87V&~vh9={XyDuB*Lx5*g8sxc^GCN-UY%X=NB$~|q*O^TkuYIZJSBPxB@bd~~w0-&&2bnpJg0^cV0FvUB0n<@jr+msd5X z09N=^Pn*$yU%x)V3O6>KA32Lxp8_D`J2a!o8DWTwwNfV1H3FX4n3X=@RfG#n0$mLm zpI~R+^`cI)q~&J3=j4}ar3l>=$Gu5_v{odOC4GTCI#-N5>$=^=*HCzq@N4Jo5c1QX!bww_PG8--q5M zb>%C2ct<0)7Ls)s1+w7nU-9)evntEFJN)Ui6CWtE5E2$(a*}MSoH1gLwnPg$toEtt z?@Y~O!%PasR4!xZzld)|MVTtbb$mp%V^~%ZHG9;(C&aG6!jiQG!&ki)^9qlPE7)nw zzbYC()oV3ayJ#Am|63)MNo(gPy0YMcv9ETh^Gj{&OxdP z&>g3mO662Y*eeP<)+4ev84vEW$q+Q_|2-@rzawraSP%k>tKfD$FC~0uIZK=IaI!Qs z`g=5&@gGu?sZpOmy^*)?TSP7frp4Rth+@Xi@05ARJuI7j3SIL$s9@s>951kYgKJ}D zpP?j%4I`X|O-vWOyDQR-bA$&?Kz2si%F_d2@5p|CvFkt28aFJC^Oi}*%qRDeQ zonkwd0s8JELSKZ;QUl2AddpIBnIctb0crZFmKpfK*1ep5_vijvHx|2HNKWO^;)H5` zBCdQoWmlKk80pLMgKS#`jzT@#C+>G4p1JT6evFxt-#>vLa8DRZFUB&xq_a&fK&tG@y8%oev8E8p(0drup2zH4e`mLY~|KE^Hd ztT%%Yhi5QebD_hBTREGD!Q*Fq^6wyDIWZ~8O|g#^?>^s)qdfL1f7J3mF@@V&^|11zO0g<#a&&F!3yoY zji(fMxPPolRcyq3{YCBMOH$DH3+STP3RKz9E0;DH9s&y5ZoJ_SVo1Vg3*25y$E1hS zx}o6hv?M{2Xj~#aLNCktqi|*;6dYo!yX4C*rM2{pnPDWH4>=igyqS!42A5?&6g)xe z9>HNX&A_CA&{|?u8M|0(AJgNm(~)N0#Za(59lCK>syTan+?zRO6VVKOj_D@0l&Su- zc35k^`W5*O=xH$ar)b}hP>e$%QBTx|9nGRbH%Ifwb*}W(uh3L^xb?~-LMubW)!ar! zbwU%8mr$KEWC@e^FC|Nx3RV}S+SWH0FIUTU?ZQangm_|}mR)&!H_DCYYrHlG{j2c^ zt{e*#G_A&1O43ad4$&{@Kg!L^P8fZHiuesOOgEmM`xaPJ>(%4-Jz literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/myAudio.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/myAudio.png new file mode 100755 index 0000000000000000000000000000000000000000..ec1662e1cedaad788b5b8c29d7dd68768f5d5b3d GIT binary patch literal 3437 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 P00000NkvXXu0mjfAyb~V literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/startIcon.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/startIcon.png new file mode 100755 index 0000000000000000000000000000000000000000..366f76459ffd4494ec40d0ddd5c59385b9c5da11 GIT binary patch literal 4351 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 literal 0 HcmV?d00001 diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/utdType_back.svg b/scenario/arkui/MyWps/entry/src/main/resources/base/media/utdType_back.svg new file mode 100755 index 00000000..8978121c --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/main/resources/base/media/utdType_back.svg @@ -0,0 +1,12 @@ + + + 编组 2@2x + + + + + + + + + \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/main/resources/base/media/video.png b/scenario/arkui/MyWps/entry/src/main/resources/base/media/video.png new file mode 100755 index 0000000000000000000000000000000000000000..4dd8593a99fb2e005392ebf8e172bc75859e9275 GIT binary patch literal 1376 zcmeAS@N?(olHy`uVBq!ia0vp^2_VeD1|%QND7OGojKx9jP7LeL$-D$|Tv8)E(|mmy zw18|52FCVG1{RPKAeI7R1_tH@j10^`nh_+nfC(;}uz(rC1}R)=9Ph`#z;epd#WAFU z@$Fpe3=v0(R0&Awj6Wpxy9l(@e^ki*H@=}h2$lY8yKT=8r3AXr!3WN z6jX_8{N*FvV;;K5??Ha^s;%KSd#nas(&N=9tVV zJ<-r|;!!6-mX?)s{Dl*Z9Q=0hn6pfKnWz4OYf8H0t0h?+Rnbd*!_PY$wF$ks{#0*V z%px_7-+DYbPTyiBUaUySHaZZZE^FI#?xo!7Dc2X*?as1Z22^FUP_2Ub>FrhPq6*oi zu1QL1-@a#@m!{QaxvSP^Ub}+)l;C3v7&QxOOfE8@vkSiJc}&}^6ZZICVCwBhE-HHM^PCTF zlNOz@J?yJtL($czs#@1~y*SmdbVlPo#mQG0c5d7#D)eLd!s8SAZ>(gq>@RxAcBFtq z>+Y@Dd%y_Ocr}WOQZN;e#H8N}UyQ*Hzirkm-)5!JS z_Jy%oT%QVe-I=Um5+iw`Ewat%f!wiu3{PW^FMj@?sn#u-;n^!&H-ks68n1ih-wRJ; zjNQvr^ZtxBk4C$UdiZL+@@0}dFPImczTiK7LCja#&5ZXMp6Yx#ASxsO_gGfL907mF z_q7g1mTo<4UzkpmzS!<PR8CC|05qVGX&Mla^y`EHkg_;u(7BKR8;I^Vv>IFD)xfb zo9Szk^!nd@a$@Q4Uu7BRyz@hT-7X^sF}Jf})&kLi=kK3P(wA#uve(UE;N|d9`0$~I z^+Lk|7AF4l;cx*KvjtZT{uN%Csdu3*KwtY@j?=!|+Sy-DJLj!9BBEEfD`J}WJKgpK zroV!m#iu79lj9BvymrBQ%GUV-w@(Ut*{^&xw|j$c%S(YTDiaSnO=Qu!F^gwHD7$@^ z%+%Vy$_hTMxk^6!cPent+vg { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }) + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }) + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }) + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }) + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + hilog.info(0x0000, 'testTag', '%{public}s', 'it begin'); + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }) + }) +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/ets/test/List.test.ets b/scenario/arkui/MyWps/entry/src/ohosTest/ets/test/List.test.ets new file mode 100755 index 00000000..794c7dc4 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,5 @@ +import abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/TestAbility.ets b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100755 index 00000000..9484761c --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,50 @@ +import UIAbility from '@ohos.app.ability.UIAbility'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import hilog from '@ohos.hilog'; +import { Hypium } from '@ohos/hypium'; +import testsuite from '../test/List.test'; +import window from '@ohos.window'; +import Want from '@ohos.app.ability.Want'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; + +export default class TestAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onCreate'); + hilog.info(0x0000, 'testTag', '%{public}s', 'want param:' + JSON.stringify(want) ?? ''); + hilog.info(0x0000, 'testTag', '%{public}s', 'launchParam:' + JSON.stringify(launchParam) ?? ''); + let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator; + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs; + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments(); + hilog.info(0x0000, 'testTag', '%{public}s', 'start run testcase!!!'); + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite); + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageCreate'); + windowStage.loadContent('testability/pages/Index', (err, data) => { + if (err.code) { + hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); + return; + } + hilog.info(0x0000, 'testTag', 'Succeeded in loading the content. Data: %{public}s', + JSON.stringify(data) ?? ''); + }); + } + + onWindowStageDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onForeground'); + } + + onBackground() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/pages/Index.ets b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100755 index 00000000..423b4276 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,17 @@ +@Entry +@Component +struct Index { + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets new file mode 100755 index 00000000..917d27a5 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ets @@ -0,0 +1,47 @@ +import hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import Want from '@ohos.app.ability.Want'; + +let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator | undefined = undefined +let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs | undefined = undefined + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err : Error) { + hilog.info(0x0000, 'testTag', 'addAbilityMonitorCallback : %{public}s', JSON.stringify(err) ?? ''); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun() { + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + const bundleName = abilityDelegatorArguments.bundleName; + const testAbilityName = 'TestAbility'; + let lMonitor: AbilityDelegatorRegistry.AbilityMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + const want: Want = { + bundleName: bundleName, + abilityName: testAbilityName + }; + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + abilityDelegator.startAbility(want, (err, data) => { + hilog.info(0x0000, 'testTag', 'startAbility : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'startAbility : data : %{public}s',JSON.stringify(data) ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/module.json5 b/scenario/arkui/MyWps/entry/src/ohosTest/module.json5 new file mode 100755 index 00000000..82ff674b --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/module.json5 @@ -0,0 +1,37 @@ +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false, + "pages": "$profile:test_pages", + "abilities": [ + { + "name": "TestAbility", + "srcEntry": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "exported": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/color.json b/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/color.json new file mode 100755 index 00000000..3c712962 --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/string.json b/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/string.json new file mode 100755 index 00000000..65d8fa5a --- /dev/null +++ b/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + } + ] +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/media/icon.png b/scenario/arkui/MyWps/entry/src/ohosTest/resources/base/media/icon.png new file mode 100755 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(() => { + // Presets an action, which is performed only once before all test cases of the test suite start. + // This API supports only one parameter: preset action function. + }); + beforeEach(() => { + // Presets an action, which is performed before each unit test case starts. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: preset action function. + }); + afterEach(() => { + // Presets a clear action, which is performed after each unit test case ends. + // The number of execution times is the same as the number of test cases defined by **it**. + // This API supports only one parameter: clear action function. + }); + afterAll(() => { + // Presets a clear action, which is performed after all test cases of the test suite end. + // This API supports only one parameter: clear action function. + }); + it('assertContain', 0, () => { + // Defines a test case. This API supports three parameters: test case name, filter parameter, and test case function. + let a = 'abc'; + let b = 'b'; + // Defines a variety of assertion methods, which are used to declare expected boolean conditions. + expect(a).assertContain(b); + expect(a).assertEqual(a); + }); + }); +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/hvigor/hvigor-config.json5 b/scenario/arkui/MyWps/hvigor/hvigor-config.json5 new file mode 100755 index 00000000..35b1ba68 --- /dev/null +++ b/scenario/arkui/MyWps/hvigor/hvigor-config.json5 @@ -0,0 +1,18 @@ +{ + "hvigorVersion": "3.0.9", + "dependencies": { + "@ohos/hvigor-ohos-plugin": "3.0.9" + }, + "execution": { + // "daemon": true, /* Enable daemon compilation. Default: true */ + // "incremental": true, /* Enable incremental compilation. Default: true */ + // "parallel": true, /* Enable parallel compilation. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Default: false */ + } +} diff --git a/scenario/arkui/MyWps/hvigor/hvigor-wrapper.js b/scenario/arkui/MyWps/hvigor/hvigor-wrapper.js new file mode 100755 index 00000000..372eae8e --- /dev/null +++ b/scenario/arkui/MyWps/hvigor/hvigor-wrapper.js @@ -0,0 +1 @@ +"use strict";var u=require("path"),D=require("os"),e=require("fs"),t=require("crypto"),r=require("child_process"),n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={},C={},F=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(C,"__esModule",{value:!0}),C.maxPathLength=C.isMac=C.isLinux=C.isWindows=void 0;const E=F(D),A="Windows_NT",o="Darwin";function a(){return E.default.type()===A}function c(){return E.default.type()===o}C.isWindows=a,C.isLinux=function(){return"Linux"===E.default.type()},C.isMac=c,C.maxPathLength=function(){return c()?1016:a()?259:4095},function(e){var t=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),r=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),i=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&t(D,u,e);return r(D,u),D};Object.defineProperty(e,"__esModule",{value:!0}),e.WORK_SPACE=e.HVIGOR_PROJECT_WRAPPER_HOME=e.HVIGOR_PROJECT_ROOT_DIR=e.HVIGOR_PROJECT_CACHES_HOME=e.HVIGOR_PNPM_STORE_PATH=e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=e.PROJECT_CACHES=e.HVIGOR_WRAPPER_TOOLS_HOME=e.HVIGOR_USER_HOME=e.DEFAULT_PACKAGE_JSON=e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME=e.PNPM=e.HVIGOR=e.NPM_TOOL=e.PNPM_TOOL=e.HVIGOR_ENGINE_PACKAGE_NAME=void 0;const F=i(D),E=i(u),A=C;e.HVIGOR_ENGINE_PACKAGE_NAME="@ohos/hvigor",e.PNPM_TOOL=(0,A.isWindows)()?"pnpm.cmd":"pnpm",e.NPM_TOOL=(0,A.isWindows)()?"npm.cmd":"npm",e.HVIGOR="hvigor",e.PNPM="pnpm",e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME="hvigor-config.json5",e.DEFAULT_PACKAGE_JSON="package.json",e.HVIGOR_USER_HOME=E.resolve(F.homedir(),".hvigor"),e.HVIGOR_WRAPPER_TOOLS_HOME=E.resolve(e.HVIGOR_USER_HOME,"wrapper","tools"),e.PROJECT_CACHES="project_caches",e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=E.resolve(e.HVIGOR_WRAPPER_TOOLS_HOME,"node_modules",".bin",e.PNPM_TOOL),e.HVIGOR_PNPM_STORE_PATH=E.resolve(e.HVIGOR_USER_HOME,"caches"),e.HVIGOR_PROJECT_CACHES_HOME=E.resolve(e.HVIGOR_USER_HOME,e.PROJECT_CACHES),e.HVIGOR_PROJECT_ROOT_DIR=process.cwd(),e.HVIGOR_PROJECT_WRAPPER_HOME=E.resolve(e.HVIGOR_PROJECT_ROOT_DIR,e.HVIGOR),e.WORK_SPACE="workspace"}(i);var s={},l={};Object.defineProperty(l,"__esModule",{value:!0}),l.logInfoPrintConsole=l.logErrorAndExit=void 0,l.logErrorAndExit=function(u){u instanceof Error?console.error(u.message):console.error(u),process.exit(-1)},l.logInfoPrintConsole=function(u){console.log(u)};var B=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),d=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),f=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&B(D,u,e);return d(D,u),D};Object.defineProperty(s,"__esModule",{value:!0});var _=s.executeBuild=void 0;const p=f(e),O=f(u),h=l;_=s.executeBuild=function(u){const D=O.resolve(u,"node_modules","@ohos","hvigor","bin","hvigor.js");try{const u=p.realpathSync(D);require(u)}catch(e){(0,h.logErrorAndExit)(`Error: ENOENT: no such file ${D},delete ${u} and retry.`)}};var P={},v={};!function(u){var D=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(u,"__esModule",{value:!0}),u.hashFile=u.hash=u.createHash=void 0;const r=D(t),i=D(e);u.createHash=(u="MD5")=>r.default.createHash(u);u.hash=(D,e)=>(0,u.createHash)(e).update(D).digest("hex");u.hashFile=(D,e)=>{if(i.default.existsSync(D))return(0,u.hash)(i.default.readFileSync(D,"utf-8"),e)}}(v);var g={},m={},R={};Object.defineProperty(R,"__esModule",{value:!0}),R.Unicode=void 0;class y{}R.Unicode=y,y.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,y.ID_START=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0370-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u05D0-\u05EA\u05F0-\u05F2\u0620-\u064A\u066E\u066F\u0671-\u06D3\u06D5\u06E5\u06E6\u06EE\u06EF\u06FA-\u06FC\u06FF\u0710\u0712-\u072F\u074D-\u07A5\u07B1\u07CA-\u07EA\u07F4\u07F5\u07FA\u0800-\u0815\u081A\u0824\u0828\u0840-\u0858\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u0904-\u0939\u093D\u0950\u0958-\u0961\u0971-\u0980\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BD\u09CE\u09DC\u09DD\u09DF-\u09E1\u09F0\u09F1\u09FC\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A59-\u0A5C\u0A5E\u0A72-\u0A74\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABD\u0AD0\u0AE0\u0AE1\u0AF9\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3D\u0B5C\u0B5D\u0B5F-\u0B61\u0B71\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BD0\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D\u0C58-\u0C5A\u0C60\u0C61\u0C80\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBD\u0CDE\u0CE0\u0CE1\u0CF1\u0CF2\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D3A\u0D3D\u0D4E\u0D54-\u0D56\u0D5F-\u0D61\u0D7A-\u0D7F\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0E01-\u0E30\u0E32\u0E33\u0E40-\u0E46\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB0\u0EB2\u0EB3\u0EBD\u0EC0-\u0EC4\u0EC6\u0EDC-\u0EDF\u0F00\u0F40-\u0F47\u0F49-\u0F6C\u0F88-\u0F8C\u1000-\u102A\u103F\u1050-\u1055\u105A-\u105D\u1061\u1065\u1066\u106E-\u1070\u1075-\u1081\u108E\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1711\u1720-\u1731\u1740-\u1751\u1760-\u176C\u176E-\u1770\u1780-\u17B3\u17D7\u17DC\u1820-\u1877\u1880-\u1884\u1887-\u18A8\u18AA\u18B0-\u18F5\u1900-\u191E\u1950-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u1A00-\u1A16\u1A20-\u1A54\u1AA7\u1B05-\u1B33\u1B45-\u1B4B\u1B83-\u1BA0\u1BAE\u1BAF\u1BBA-\u1BE5\u1C00-\u1C23\u1C4D-\u1C4F\u1C5A-\u1C7D\u1C80-\u1C88\u1CE9-\u1CEC\u1CEE-\u1CF1\u1CF5\u1CF6\u1D00-\u1DBF\u1E00-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u2071\u207F\u2090-\u209C\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CEE\u2CF2\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D80-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2E2F\u3005-\u3007\u3021-\u3029\u3031-\u3035\u3038-\u303C\u3041-\u3096\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA61F\uA62A\uA62B\uA640-\uA66E\uA67F-\uA69D\uA6A0-\uA6EF\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA801\uA803-\uA805\uA807-\uA80A\uA80C-\uA822\uA840-\uA873\uA882-\uA8B3\uA8F2-\uA8F7\uA8FB\uA8FD\uA90A-\uA925\uA930-\uA946\uA960-\uA97C\uA984-\uA9B2\uA9CF\uA9E0-\uA9E4\uA9E6-\uA9EF\uA9FA-\uA9FE\uAA00-\uAA28\uAA40-\uAA42\uAA44-\uAA4B\uAA60-\uAA76\uAA7A\uAA7E-\uAAAF\uAAB1\uAAB5\uAAB6\uAAB9-\uAABD\uAAC0\uAAC2\uAADB-\uAADD\uAAE0-\uAAEA\uAAF2-\uAAF4\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABE2\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D\uFB1F-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE70-\uFE74\uFE76-\uFEFC\uFF21-\uFF3A\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDE80-\uDE9C\uDEA0-\uDED0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF75\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00\uDE10-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE4\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC03-\uDC37\uDC83-\uDCAF\uDCD0-\uDCE8\uDD03-\uDD26\uDD50-\uDD72\uDD76\uDD83-\uDDB2\uDDC1-\uDDC4\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE2B\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEDE\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3D\uDF50\uDF5D-\uDF61]|\uD805[\uDC00-\uDC34\uDC47-\uDC4A\uDC80-\uDCAF\uDCC4\uDCC5\uDCC7\uDD80-\uDDAE\uDDD8-\uDDDB\uDE00-\uDE2F\uDE44\uDE80-\uDEAA\uDF00-\uDF19]|\uD806[\uDCA0-\uDCDF\uDCFF\uDE00\uDE0B-\uDE32\uDE3A\uDE50\uDE5C-\uDE83\uDE86-\uDE89\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC2E\uDC40\uDC72-\uDC8F\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD30\uDD46]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDED0-\uDEED\uDF00-\uDF2F\uDF40-\uDF43\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50\uDF93-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB]|\uD83A[\uDC00-\uDCC4\uDD00-\uDD43]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]/,y.ID_CONTINUE=/[\xAA\xB5\xBA\xC0-\xD6\xD8-\xF6\xF8-\u02C1\u02C6-\u02D1\u02E0-\u02E4\u02EC\u02EE\u0300-\u0374\u0376\u0377\u037A-\u037D\u037F\u0386\u0388-\u038A\u038C\u038E-\u03A1\u03A3-\u03F5\u03F7-\u0481\u0483-\u0487\u048A-\u052F\u0531-\u0556\u0559\u0561-\u0587\u0591-\u05BD\u05BF\u05C1\u05C2\u05C4\u05C5\u05C7\u05D0-\u05EA\u05F0-\u05F2\u0610-\u061A\u0620-\u0669\u066E-\u06D3\u06D5-\u06DC\u06DF-\u06E8\u06EA-\u06FC\u06FF\u0710-\u074A\u074D-\u07B1\u07C0-\u07F5\u07FA\u0800-\u082D\u0840-\u085B\u0860-\u086A\u08A0-\u08B4\u08B6-\u08BD\u08D4-\u08E1\u08E3-\u0963\u0966-\u096F\u0971-\u0983\u0985-\u098C\u098F\u0990\u0993-\u09A8\u09AA-\u09B0\u09B2\u09B6-\u09B9\u09BC-\u09C4\u09C7\u09C8\u09CB-\u09CE\u09D7\u09DC\u09DD\u09DF-\u09E3\u09E6-\u09F1\u09FC\u0A01-\u0A03\u0A05-\u0A0A\u0A0F\u0A10\u0A13-\u0A28\u0A2A-\u0A30\u0A32\u0A33\u0A35\u0A36\u0A38\u0A39\u0A3C\u0A3E-\u0A42\u0A47\u0A48\u0A4B-\u0A4D\u0A51\u0A59-\u0A5C\u0A5E\u0A66-\u0A75\u0A81-\u0A83\u0A85-\u0A8D\u0A8F-\u0A91\u0A93-\u0AA8\u0AAA-\u0AB0\u0AB2\u0AB3\u0AB5-\u0AB9\u0ABC-\u0AC5\u0AC7-\u0AC9\u0ACB-\u0ACD\u0AD0\u0AE0-\u0AE3\u0AE6-\u0AEF\u0AF9-\u0AFF\u0B01-\u0B03\u0B05-\u0B0C\u0B0F\u0B10\u0B13-\u0B28\u0B2A-\u0B30\u0B32\u0B33\u0B35-\u0B39\u0B3C-\u0B44\u0B47\u0B48\u0B4B-\u0B4D\u0B56\u0B57\u0B5C\u0B5D\u0B5F-\u0B63\u0B66-\u0B6F\u0B71\u0B82\u0B83\u0B85-\u0B8A\u0B8E-\u0B90\u0B92-\u0B95\u0B99\u0B9A\u0B9C\u0B9E\u0B9F\u0BA3\u0BA4\u0BA8-\u0BAA\u0BAE-\u0BB9\u0BBE-\u0BC2\u0BC6-\u0BC8\u0BCA-\u0BCD\u0BD0\u0BD7\u0BE6-\u0BEF\u0C00-\u0C03\u0C05-\u0C0C\u0C0E-\u0C10\u0C12-\u0C28\u0C2A-\u0C39\u0C3D-\u0C44\u0C46-\u0C48\u0C4A-\u0C4D\u0C55\u0C56\u0C58-\u0C5A\u0C60-\u0C63\u0C66-\u0C6F\u0C80-\u0C83\u0C85-\u0C8C\u0C8E-\u0C90\u0C92-\u0CA8\u0CAA-\u0CB3\u0CB5-\u0CB9\u0CBC-\u0CC4\u0CC6-\u0CC8\u0CCA-\u0CCD\u0CD5\u0CD6\u0CDE\u0CE0-\u0CE3\u0CE6-\u0CEF\u0CF1\u0CF2\u0D00-\u0D03\u0D05-\u0D0C\u0D0E-\u0D10\u0D12-\u0D44\u0D46-\u0D48\u0D4A-\u0D4E\u0D54-\u0D57\u0D5F-\u0D63\u0D66-\u0D6F\u0D7A-\u0D7F\u0D82\u0D83\u0D85-\u0D96\u0D9A-\u0DB1\u0DB3-\u0DBB\u0DBD\u0DC0-\u0DC6\u0DCA\u0DCF-\u0DD4\u0DD6\u0DD8-\u0DDF\u0DE6-\u0DEF\u0DF2\u0DF3\u0E01-\u0E3A\u0E40-\u0E4E\u0E50-\u0E59\u0E81\u0E82\u0E84\u0E87\u0E88\u0E8A\u0E8D\u0E94-\u0E97\u0E99-\u0E9F\u0EA1-\u0EA3\u0EA5\u0EA7\u0EAA\u0EAB\u0EAD-\u0EB9\u0EBB-\u0EBD\u0EC0-\u0EC4\u0EC6\u0EC8-\u0ECD\u0ED0-\u0ED9\u0EDC-\u0EDF\u0F00\u0F18\u0F19\u0F20-\u0F29\u0F35\u0F37\u0F39\u0F3E-\u0F47\u0F49-\u0F6C\u0F71-\u0F84\u0F86-\u0F97\u0F99-\u0FBC\u0FC6\u1000-\u1049\u1050-\u109D\u10A0-\u10C5\u10C7\u10CD\u10D0-\u10FA\u10FC-\u1248\u124A-\u124D\u1250-\u1256\u1258\u125A-\u125D\u1260-\u1288\u128A-\u128D\u1290-\u12B0\u12B2-\u12B5\u12B8-\u12BE\u12C0\u12C2-\u12C5\u12C8-\u12D6\u12D8-\u1310\u1312-\u1315\u1318-\u135A\u135D-\u135F\u1380-\u138F\u13A0-\u13F5\u13F8-\u13FD\u1401-\u166C\u166F-\u167F\u1681-\u169A\u16A0-\u16EA\u16EE-\u16F8\u1700-\u170C\u170E-\u1714\u1720-\u1734\u1740-\u1753\u1760-\u176C\u176E-\u1770\u1772\u1773\u1780-\u17D3\u17D7\u17DC\u17DD\u17E0-\u17E9\u180B-\u180D\u1810-\u1819\u1820-\u1877\u1880-\u18AA\u18B0-\u18F5\u1900-\u191E\u1920-\u192B\u1930-\u193B\u1946-\u196D\u1970-\u1974\u1980-\u19AB\u19B0-\u19C9\u19D0-\u19D9\u1A00-\u1A1B\u1A20-\u1A5E\u1A60-\u1A7C\u1A7F-\u1A89\u1A90-\u1A99\u1AA7\u1AB0-\u1ABD\u1B00-\u1B4B\u1B50-\u1B59\u1B6B-\u1B73\u1B80-\u1BF3\u1C00-\u1C37\u1C40-\u1C49\u1C4D-\u1C7D\u1C80-\u1C88\u1CD0-\u1CD2\u1CD4-\u1CF9\u1D00-\u1DF9\u1DFB-\u1F15\u1F18-\u1F1D\u1F20-\u1F45\u1F48-\u1F4D\u1F50-\u1F57\u1F59\u1F5B\u1F5D\u1F5F-\u1F7D\u1F80-\u1FB4\u1FB6-\u1FBC\u1FBE\u1FC2-\u1FC4\u1FC6-\u1FCC\u1FD0-\u1FD3\u1FD6-\u1FDB\u1FE0-\u1FEC\u1FF2-\u1FF4\u1FF6-\u1FFC\u203F\u2040\u2054\u2071\u207F\u2090-\u209C\u20D0-\u20DC\u20E1\u20E5-\u20F0\u2102\u2107\u210A-\u2113\u2115\u2119-\u211D\u2124\u2126\u2128\u212A-\u212D\u212F-\u2139\u213C-\u213F\u2145-\u2149\u214E\u2160-\u2188\u2C00-\u2C2E\u2C30-\u2C5E\u2C60-\u2CE4\u2CEB-\u2CF3\u2D00-\u2D25\u2D27\u2D2D\u2D30-\u2D67\u2D6F\u2D7F-\u2D96\u2DA0-\u2DA6\u2DA8-\u2DAE\u2DB0-\u2DB6\u2DB8-\u2DBE\u2DC0-\u2DC6\u2DC8-\u2DCE\u2DD0-\u2DD6\u2DD8-\u2DDE\u2DE0-\u2DFF\u2E2F\u3005-\u3007\u3021-\u302F\u3031-\u3035\u3038-\u303C\u3041-\u3096\u3099\u309A\u309D-\u309F\u30A1-\u30FA\u30FC-\u30FF\u3105-\u312E\u3131-\u318E\u31A0-\u31BA\u31F0-\u31FF\u3400-\u4DB5\u4E00-\u9FEA\uA000-\uA48C\uA4D0-\uA4FD\uA500-\uA60C\uA610-\uA62B\uA640-\uA66F\uA674-\uA67D\uA67F-\uA6F1\uA717-\uA71F\uA722-\uA788\uA78B-\uA7AE\uA7B0-\uA7B7\uA7F7-\uA827\uA840-\uA873\uA880-\uA8C5\uA8D0-\uA8D9\uA8E0-\uA8F7\uA8FB\uA8FD\uA900-\uA92D\uA930-\uA953\uA960-\uA97C\uA980-\uA9C0\uA9CF-\uA9D9\uA9E0-\uA9FE\uAA00-\uAA36\uAA40-\uAA4D\uAA50-\uAA59\uAA60-\uAA76\uAA7A-\uAAC2\uAADB-\uAADD\uAAE0-\uAAEF\uAAF2-\uAAF6\uAB01-\uAB06\uAB09-\uAB0E\uAB11-\uAB16\uAB20-\uAB26\uAB28-\uAB2E\uAB30-\uAB5A\uAB5C-\uAB65\uAB70-\uABEA\uABEC\uABED\uABF0-\uABF9\uAC00-\uD7A3\uD7B0-\uD7C6\uD7CB-\uD7FB\uF900-\uFA6D\uFA70-\uFAD9\uFB00-\uFB06\uFB13-\uFB17\uFB1D-\uFB28\uFB2A-\uFB36\uFB38-\uFB3C\uFB3E\uFB40\uFB41\uFB43\uFB44\uFB46-\uFBB1\uFBD3-\uFD3D\uFD50-\uFD8F\uFD92-\uFDC7\uFDF0-\uFDFB\uFE00-\uFE0F\uFE20-\uFE2F\uFE33\uFE34\uFE4D-\uFE4F\uFE70-\uFE74\uFE76-\uFEFC\uFF10-\uFF19\uFF21-\uFF3A\uFF3F\uFF41-\uFF5A\uFF66-\uFFBE\uFFC2-\uFFC7\uFFCA-\uFFCF\uFFD2-\uFFD7\uFFDA-\uFFDC]|\uD800[\uDC00-\uDC0B\uDC0D-\uDC26\uDC28-\uDC3A\uDC3C\uDC3D\uDC3F-\uDC4D\uDC50-\uDC5D\uDC80-\uDCFA\uDD40-\uDD74\uDDFD\uDE80-\uDE9C\uDEA0-\uDED0\uDEE0\uDF00-\uDF1F\uDF2D-\uDF4A\uDF50-\uDF7A\uDF80-\uDF9D\uDFA0-\uDFC3\uDFC8-\uDFCF\uDFD1-\uDFD5]|\uD801[\uDC00-\uDC9D\uDCA0-\uDCA9\uDCB0-\uDCD3\uDCD8-\uDCFB\uDD00-\uDD27\uDD30-\uDD63\uDE00-\uDF36\uDF40-\uDF55\uDF60-\uDF67]|\uD802[\uDC00-\uDC05\uDC08\uDC0A-\uDC35\uDC37\uDC38\uDC3C\uDC3F-\uDC55\uDC60-\uDC76\uDC80-\uDC9E\uDCE0-\uDCF2\uDCF4\uDCF5\uDD00-\uDD15\uDD20-\uDD39\uDD80-\uDDB7\uDDBE\uDDBF\uDE00-\uDE03\uDE05\uDE06\uDE0C-\uDE13\uDE15-\uDE17\uDE19-\uDE33\uDE38-\uDE3A\uDE3F\uDE60-\uDE7C\uDE80-\uDE9C\uDEC0-\uDEC7\uDEC9-\uDEE6\uDF00-\uDF35\uDF40-\uDF55\uDF60-\uDF72\uDF80-\uDF91]|\uD803[\uDC00-\uDC48\uDC80-\uDCB2\uDCC0-\uDCF2]|\uD804[\uDC00-\uDC46\uDC66-\uDC6F\uDC7F-\uDCBA\uDCD0-\uDCE8\uDCF0-\uDCF9\uDD00-\uDD34\uDD36-\uDD3F\uDD50-\uDD73\uDD76\uDD80-\uDDC4\uDDCA-\uDDCC\uDDD0-\uDDDA\uDDDC\uDE00-\uDE11\uDE13-\uDE37\uDE3E\uDE80-\uDE86\uDE88\uDE8A-\uDE8D\uDE8F-\uDE9D\uDE9F-\uDEA8\uDEB0-\uDEEA\uDEF0-\uDEF9\uDF00-\uDF03\uDF05-\uDF0C\uDF0F\uDF10\uDF13-\uDF28\uDF2A-\uDF30\uDF32\uDF33\uDF35-\uDF39\uDF3C-\uDF44\uDF47\uDF48\uDF4B-\uDF4D\uDF50\uDF57\uDF5D-\uDF63\uDF66-\uDF6C\uDF70-\uDF74]|\uD805[\uDC00-\uDC4A\uDC50-\uDC59\uDC80-\uDCC5\uDCC7\uDCD0-\uDCD9\uDD80-\uDDB5\uDDB8-\uDDC0\uDDD8-\uDDDD\uDE00-\uDE40\uDE44\uDE50-\uDE59\uDE80-\uDEB7\uDEC0-\uDEC9\uDF00-\uDF19\uDF1D-\uDF2B\uDF30-\uDF39]|\uD806[\uDCA0-\uDCE9\uDCFF\uDE00-\uDE3E\uDE47\uDE50-\uDE83\uDE86-\uDE99\uDEC0-\uDEF8]|\uD807[\uDC00-\uDC08\uDC0A-\uDC36\uDC38-\uDC40\uDC50-\uDC59\uDC72-\uDC8F\uDC92-\uDCA7\uDCA9-\uDCB6\uDD00-\uDD06\uDD08\uDD09\uDD0B-\uDD36\uDD3A\uDD3C\uDD3D\uDD3F-\uDD47\uDD50-\uDD59]|\uD808[\uDC00-\uDF99]|\uD809[\uDC00-\uDC6E\uDC80-\uDD43]|[\uD80C\uD81C-\uD820\uD840-\uD868\uD86A-\uD86C\uD86F-\uD872\uD874-\uD879][\uDC00-\uDFFF]|\uD80D[\uDC00-\uDC2E]|\uD811[\uDC00-\uDE46]|\uD81A[\uDC00-\uDE38\uDE40-\uDE5E\uDE60-\uDE69\uDED0-\uDEED\uDEF0-\uDEF4\uDF00-\uDF36\uDF40-\uDF43\uDF50-\uDF59\uDF63-\uDF77\uDF7D-\uDF8F]|\uD81B[\uDF00-\uDF44\uDF50-\uDF7E\uDF8F-\uDF9F\uDFE0\uDFE1]|\uD821[\uDC00-\uDFEC]|\uD822[\uDC00-\uDEF2]|\uD82C[\uDC00-\uDD1E\uDD70-\uDEFB]|\uD82F[\uDC00-\uDC6A\uDC70-\uDC7C\uDC80-\uDC88\uDC90-\uDC99\uDC9D\uDC9E]|\uD834[\uDD65-\uDD69\uDD6D-\uDD72\uDD7B-\uDD82\uDD85-\uDD8B\uDDAA-\uDDAD\uDE42-\uDE44]|\uD835[\uDC00-\uDC54\uDC56-\uDC9C\uDC9E\uDC9F\uDCA2\uDCA5\uDCA6\uDCA9-\uDCAC\uDCAE-\uDCB9\uDCBB\uDCBD-\uDCC3\uDCC5-\uDD05\uDD07-\uDD0A\uDD0D-\uDD14\uDD16-\uDD1C\uDD1E-\uDD39\uDD3B-\uDD3E\uDD40-\uDD44\uDD46\uDD4A-\uDD50\uDD52-\uDEA5\uDEA8-\uDEC0\uDEC2-\uDEDA\uDEDC-\uDEFA\uDEFC-\uDF14\uDF16-\uDF34\uDF36-\uDF4E\uDF50-\uDF6E\uDF70-\uDF88\uDF8A-\uDFA8\uDFAA-\uDFC2\uDFC4-\uDFCB\uDFCE-\uDFFF]|\uD836[\uDE00-\uDE36\uDE3B-\uDE6C\uDE75\uDE84\uDE9B-\uDE9F\uDEA1-\uDEAF]|\uD838[\uDC00-\uDC06\uDC08-\uDC18\uDC1B-\uDC21\uDC23\uDC24\uDC26-\uDC2A]|\uD83A[\uDC00-\uDCC4\uDCD0-\uDCD6\uDD00-\uDD4A\uDD50-\uDD59]|\uD83B[\uDE00-\uDE03\uDE05-\uDE1F\uDE21\uDE22\uDE24\uDE27\uDE29-\uDE32\uDE34-\uDE37\uDE39\uDE3B\uDE42\uDE47\uDE49\uDE4B\uDE4D-\uDE4F\uDE51\uDE52\uDE54\uDE57\uDE59\uDE5B\uDE5D\uDE5F\uDE61\uDE62\uDE64\uDE67-\uDE6A\uDE6C-\uDE72\uDE74-\uDE77\uDE79-\uDE7C\uDE7E\uDE80-\uDE89\uDE8B-\uDE9B\uDEA1-\uDEA3\uDEA5-\uDEA9\uDEAB-\uDEBB]|\uD869[\uDC00-\uDED6\uDF00-\uDFFF]|\uD86D[\uDC00-\uDF34\uDF40-\uDFFF]|\uD86E[\uDC00-\uDC1D\uDC20-\uDFFF]|\uD873[\uDC00-\uDEA1\uDEB0-\uDFFF]|\uD87A[\uDC00-\uDFE0]|\uD87E[\uDC00-\uDE1D]|\uDB40[\uDD00-\uDDEF]/,Object.defineProperty(m,"__esModule",{value:!0}),m.JudgeUtil=void 0;const I=R;m.JudgeUtil=class{static isIgnoreChar(u){return"string"==typeof u&&("\t"===u||"\v"===u||"\f"===u||" "===u||" "===u||"\ufeff"===u||"\n"===u||"\r"===u||"\u2028"===u||"\u2029"===u)}static isSpaceSeparator(u){return"string"==typeof u&&I.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||I.Unicode.ID_START.test(u))}static isIdContinueChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||u>="0"&&u<="9"||"$"===u||"_"===u||"‌"===u||"‍"===u||I.Unicode.ID_CONTINUE.test(u))}static isDigitWithoutZero(u){return/[1-9]/.test(u)}static isDigit(u){return"string"==typeof u&&/[0-9]/.test(u)}static isHexDigit(u){return"string"==typeof u&&/[0-9A-Fa-f]/.test(u)}};var N=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(g,"__esModule",{value:!0}),g.parseJsonText=g.parseJsonFile=void 0;const b=N(e),S=N(D),w=N(u),H=m;var x;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(x||(x={}));let M,T,V,G,j,J,W="start",U=[],L=0,$=1,k=0,K=!1,z="default",q="'",Z=1;function X(u,D=!1){T=String(u),W="start",U=[],L=0,$=1,k=0,G=void 0,K=D;do{M=Q(),nu[W]()}while("eof"!==M.type);return G}function Q(){for(z="default",j="",q="'",Z=1;;){J=Y();const u=Du[z]();if(u)return u}}function Y(){if(T[L])return String.fromCodePoint(T.codePointAt(L))}function uu(){const u=Y();return"\n"===u?($++,k=0):u?k+=u.length:k++,u&&(L+=u.length),u}g.parseJsonFile=function(u,D=!1,e="utf-8"){const t=b.default.readFileSync(w.default.resolve(u),{encoding:e});try{return X(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${S.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},g.parseJsonText=X;const Du={default(){switch(J){case"/":return uu(),void(z="comment");case void 0:return uu(),eu("eof")}if(!H.JudgeUtil.isIgnoreChar(J)&&!H.JudgeUtil.isSpaceSeparator(J))return Du[W]();uu()},start(){z="value"},beforePropertyName(){switch(J){case"$":case"_":return j=uu(),void(z="identifierName");case"\\":return uu(),void(z="identifierNameStartEscape");case"}":return eu("punctuator",uu());case'"':case"'":return q=J,uu(),void(z="string")}if(H.JudgeUtil.isIdStartChar(J))return j+=uu(),void(z="identifierName");throw Eu(x.Char,uu())},afterPropertyName(){if(":"===J)return eu("punctuator",uu());throw Eu(x.Char,uu())},beforePropertyValue(){z="value"},afterPropertyValue(){switch(J){case",":case"}":return eu("punctuator",uu())}throw Eu(x.Char,uu())},beforeArrayValue(){if("]"===J)return eu("punctuator",uu());z="value"},afterArrayValue(){switch(J){case",":case"]":return eu("punctuator",uu())}throw Eu(x.Char,uu())},end(){throw Eu(x.Char,uu())},comment(){switch(J){case"*":return uu(),void(z="multiLineComment");case"/":return uu(),void(z="singleLineComment")}throw Eu(x.Char,uu())},multiLineComment(){switch(J){case"*":return uu(),void(z="multiLineCommentAsterisk");case void 0:throw Eu(x.Char,uu())}uu()},multiLineCommentAsterisk(){switch(J){case"*":return void uu();case"/":return uu(),void(z="default");case void 0:throw Eu(x.Char,uu())}uu(),z="multiLineComment"},singleLineComment(){switch(J){case"\n":case"\r":case"\u2028":case"\u2029":return uu(),void(z="default");case void 0:return uu(),eu("eof")}uu()},value(){switch(J){case"{":case"[":return eu("punctuator",uu());case"n":return uu(),tu("ull"),eu("null",null);case"t":return uu(),tu("rue"),eu("boolean",!0);case"f":return uu(),tu("alse"),eu("boolean",!1);case"-":case"+":return"-"===uu()&&(Z=-1),void(z="numerical");case".":case"0":case"I":case"N":return void(z="numerical");case'"':case"'":return q=J,uu(),j="",void(z="string")}if(void 0===J||!H.JudgeUtil.isDigitWithoutZero(J))throw Eu(x.Char,uu());z="numerical"},numerical(){switch(J){case".":return j=uu(),void(z="decimalPointLeading");case"0":return j=uu(),void(z="zero");case"I":return uu(),tu("nfinity"),eu("numeric",Z*(1/0));case"N":return uu(),tu("aN"),eu("numeric",NaN)}if(void 0!==J&&H.JudgeUtil.isDigitWithoutZero(J))return j=uu(),void(z="decimalInteger");throw Eu(x.Char,uu())},zero(){switch(J){case".":case"e":case"E":return void(z="decimal");case"x":case"X":return j+=uu(),void(z="hexadecimal")}return eu("numeric",0)},decimalInteger(){switch(J){case".":case"e":case"E":return void(z="decimal")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimal(){switch(J){case".":j+=uu(),z="decimalFraction";break;case"e":case"E":j+=uu(),z="decimalExponent"}},decimalPointLeading(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalFraction");throw Eu(x.Char,uu())},decimalFraction(){switch(J){case"e":case"E":return j+=uu(),void(z="decimalExponent")}if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},decimalExponent(){switch(J){case"+":case"-":return j+=uu(),void(z="decimalExponentSign")}if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentSign(){if(H.JudgeUtil.isDigit(J))return j+=uu(),void(z="decimalExponentInteger");throw Eu(x.Char,uu())},decimalExponentInteger(){if(!H.JudgeUtil.isDigit(J))return eu("numeric",Z*Number(j));j+=uu()},hexadecimal(){if(H.JudgeUtil.isHexDigit(J))return j+=uu(),void(z="hexadecimalInteger");throw Eu(x.Char,uu())},hexadecimalInteger(){if(!H.JudgeUtil.isHexDigit(J))return eu("numeric",Z*Number(j));j+=uu()},identifierNameStartEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":break;default:if(!H.JudgeUtil.isIdStartChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},identifierName(){switch(J){case"$":case"_":case"‌":case"‍":return void(j+=uu());case"\\":return uu(),void(z="identifierNameEscape")}if(!H.JudgeUtil.isIdContinueChar(J))return eu("identifier",j);j+=uu()},identifierNameEscape(){if("u"!==J)throw Eu(x.Char,uu());uu();const u=ru();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!H.JudgeUtil.isIdContinueChar(u))throw Eu(x.Identifier)}j+=u,z="identifierName"},string(){switch(J){case"\\":return uu(),void(j+=function(){const u=Y(),D=function(){switch(Y()){case"b":return uu(),"\b";case"f":return uu(),"\f";case"n":return uu(),"\n";case"r":return uu(),"\r";case"t":return uu(),"\t";case"v":return uu(),"\v"}return}();if(D)return D;switch(u){case"0":if(uu(),H.JudgeUtil.isDigit(Y()))throw Eu(x.Char,uu());return"\0";case"x":return uu(),function(){let u="",D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());if(u+=uu(),D=Y(),!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());return u+=uu(),String.fromCodePoint(parseInt(u,16))}();case"u":return uu(),ru();case"\n":case"\u2028":case"\u2029":return uu(),"";case"\r":return uu(),"\n"===Y()&&uu(),""}if(void 0===u||H.JudgeUtil.isDigitWithoutZero(u))throw Eu(x.Char,uu());return uu()}());case'"':case"'":if(J===q){const u=eu("string",j);return uu(),u}return void(j+=uu());case"\n":case"\r":case void 0:throw Eu(x.Char,uu());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Fu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(J)}j+=uu()}};function eu(u,D){return{type:u,value:D,line:$,column:k}}function tu(u){for(const D of u){if(Y()!==D)throw Eu(x.Char,uu());uu()}}function ru(){let u="",D=4;for(;D-- >0;){const D=Y();if(!H.JudgeUtil.isHexDigit(D))throw Eu(x.Char,uu());u+=uu()}return String.fromCodePoint(parseInt(u,16))}const nu={start(){if("eof"===M.type)throw Eu(x.EOF);iu()},beforePropertyName(){switch(M.type){case"identifier":case"string":return V=M.value,void(W="afterPropertyName");case"punctuator":return void Cu();case"eof":throw Eu(x.EOF)}},afterPropertyName(){if("eof"===M.type)throw Eu(x.EOF);W="beforePropertyValue"},beforePropertyValue(){if("eof"===M.type)throw Eu(x.EOF);iu()},afterPropertyValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforePropertyName");case"}":Cu()}},beforeArrayValue(){if("eof"===M.type)throw Eu(x.EOF);"punctuator"!==M.type||"]"!==M.value?iu():Cu()},afterArrayValue(){if("eof"===M.type)throw Eu(x.EOF);switch(M.value){case",":return void(W="beforeArrayValue");case"]":Cu()}},end(){}};function iu(){const u=function(){let u;switch(M.type){case"punctuator":switch(M.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=M.value}return u}();if(K&&"object"==typeof u&&(u._line=$,u._column=k),void 0===G)G=u;else{const D=U[U.length-1];Array.isArray(D)?K&&"object"!=typeof u?D.push({value:u,_line:$,_column:k}):D.push(u):D[V]=K&&"object"!=typeof u?{value:u,_line:$,_column:k}:u}!function(u){if(u&&"object"==typeof u)U.push(u),W=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function Cu(){U.pop();const u=U[U.length-1];W=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Fu(u){const D={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(D[u])return D[u];if(u<" "){const D=u.charCodeAt(0).toString(16);return`\\x${`00${D}`.substring(D.length)}`}return u}function Eu(u,D){let e="";switch(u){case x.Char:e=void 0===D?`JSON5: invalid end of input at ${$}:${k}`:`JSON5: invalid character '${Fu(D)}' at ${$}:${k}`;break;case x.EOF:e=`JSON5: invalid end of input at ${$}:${k}`;break;case x.Identifier:k-=5,e=`JSON5: invalid identifier character at ${$}:${k}`}const t=new Au(e);return t.lineNumber=$,t.columnNumber=k,t}class Au extends SyntaxError{}var ou={},au=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),cu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),su=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&au(D,u,e);return cu(D,u),D},lu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(ou,"__esModule",{value:!0}),ou.isFileExists=ou.offlinePluginConversion=ou.executeCommand=ou.getNpmPath=ou.hasNpmPackInPaths=void 0;const Bu=r,du=lu(e),fu=su(u),_u=i,pu=l;ou.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},ou.getNpmPath=function(){const u=process.execPath;return fu.join(fu.dirname(u),_u.NPM_TOOL)},ou.executeCommand=function(u,D,e){0!==(0,Bu.spawnSync)(u,D,e).status&&(0,pu.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},ou.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?fu.resolve(u,_u.HVIGOR,D.replace("file:","")):D},ou.isFileExists=function(u){return du.default.existsSync(u)&&du.default.statSync(u).isFile()};var Ou=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),hu=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),Pu=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&Ou(D,u,e);return hu(D,u),D},vu=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(P,"__esModule",{value:!0});var gu=P.initProjectWorkSpace=void 0;const mu=Pu(e),Ru=vu(D),yu=Pu(u),Iu=v,Nu=i,bu=g,Su=l,wu=ou;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===yu.normalize(e.dependencies[u])}function Vu(){const u=yu.join(Mu,Nu.WORK_SPACE);if((0,Su.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=yu.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,wu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(yu.resolve(u,D),{recursive:!0})}))}catch(D){(0,Su.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${u}.`)}}gu=P.initProjectWorkSpace=function(){if(Hu=function(){const u=yu.resolve(Nu.HVIGOR_PROJECT_WRAPPER_HOME,Nu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Su.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,bu.parseJsonFile)(u)}(),Mu=function(u){let D;D=function(u){let D=u.hvigorVersion;if(D.startsWith("file:")||D.endsWith(".tgz"))return!1;const e=u.dependencies,t=Object.getOwnPropertyNames(e);for(const u of t){const D=e[u];if(D.startsWith("file:")||D.endsWith(".tgz"))return!1}if(1===t.length&&"@ohos/hvigor-ohos-plugin"===t[0])return D>"2.5.0";return!1}(u)?function(u){let D=`${Nu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,Iu.hash)(D)}(u):(0,Iu.hash)(process.cwd());return yu.resolve(Ru.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=yu.resolve(Mu,Nu.WORK_SPACE,Nu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,bu.parseJsonFile)(u):{dependencies:{}}}(),!(0,wu.hasNpmPackInPaths)(Nu.HVIGOR_ENGINE_PACKAGE_NAME,[yu.join(Mu,Nu.WORK_SPACE)])||(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]||!function(){function u(u){const D=null==u?void 0:u.dependencies;return void 0===D?0:Object.getOwnPropertyNames(D).length}const D=u(Hu),e=u(xu);if(D+1!==e)return!1;for(const u in null==Hu?void 0:Hu.dependencies)if(!(0,wu.hasNpmPackInPaths)(u,[yu.join(Mu,Nu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Su.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[Nu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,wu.offlinePluginConversion)(Nu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=yu.join(Mu,Nu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=yu.resolve(D,Nu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Su.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",Nu.HVIGOR_PNPM_STORE_PATH],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:yu.join(Mu,Nu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,wu.executeCommand)(Nu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Su.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(t){var C=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),F=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),E=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&C(D,u,e);return F(D,u),D},A=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(t,"__esModule",{value:!0}),t.executeInstallPnpm=t.isPnpmInstalled=t.environmentHandler=t.checkNpmConifg=t.PNPM_VERSION=void 0;const o=r,a=E(e),c=A(D),s=E(u),B=i,d=l,f=ou;t.PNPM_VERSION="7.30.0",t.checkNpmConifg=function(){const u=s.resolve(B.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),D=s.resolve(c.default.homedir(),".npmrc");if((0,f.isFileExists)(u)||(0,f.isFileExists)(D))return;const e=(0,f.getNpmPath)(),t=(0,o.spawnSync)(e,["config","get","prefix"],{cwd:B.HVIGOR_PROJECT_ROOT_DIR});if(0!==t.status||!t.stdout)return void(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const r=s.resolve(`${t.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,f.isFileExists)(r)||(0,d.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},t.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},t.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},t.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${t.PNPM_VERSION}...`);const u=(0,f.getNpmPath)();!function(){const u=s.resolve(B.HVIGOR_WRAPPER_TOOLS_HOME,B.DEFAULT_PACKAGE_JSON);try{a.existsSync(B.HVIGOR_WRAPPER_TOOLS_HOME)||a.mkdirSync(B.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const D={dependencies:{}};D.dependencies[B.PNPM]=t.PNPM_VERSION,a.writeFileSync(u,JSON.stringify(D))}catch(D){(0,d.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${u} failed.`)}}(),(0,f.executeCommand)(u,["install","pnpm"],{cwd:B.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,d.logInfoPrintConsole)("Pnpm install success.")}}(Gu),function(){Gu.checkNpmConifg(),Gu.environmentHandler(),Gu.isPnpmInstalled()||Gu.executeInstallPnpm();const D=gu();_(u.join(D,i.WORK_SPACE))}(); \ No newline at end of file diff --git a/scenario/arkui/MyWps/hvigorfile.ts b/scenario/arkui/MyWps/hvigorfile.ts new file mode 100755 index 00000000..f3cb9f1a --- /dev/null +++ b/scenario/arkui/MyWps/hvigorfile.ts @@ -0,0 +1,6 @@ +import { appTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/scenario/arkui/MyWps/hvigorw b/scenario/arkui/MyWps/hvigorw new file mode 100755 index 00000000..ff6a29a2 --- /dev/null +++ b/scenario/arkui/MyWps/hvigorw @@ -0,0 +1,48 @@ +#!/bin/bash + +# ---------------------------------------------------------------------------- +# Hvigor startup script, version 1.0.0 +# +# Required ENV vars: +# ------------------ +# NODE_HOME - location of a Node home dir +# or +# Add /usr/local/nodejs/bin to the PATH environment variable +# ---------------------------------------------------------------------------- + +HVIGOR_APP_HOME="`pwd -P`" +HVIGOR_WRAPPER_SCRIPT=${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js +warn() { + echo "" + echo -e "\033[1;33m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" +} + +error() { + echo "" + echo -e "\033[1;31m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" +} + +fail() { + error "$@" + exit 1 +} + +# Determine node to start hvigor wrapper script +if [ -n "${NODE_HOME}" ];then + EXECUTABLE_NODE="${NODE_HOME}/bin/node" + if [ ! -x "$EXECUTABLE_NODE" ];then + fail "ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installed" + fi +else + EXECUTABLE_NODE="node" + which ${EXECUTABLE_NODE} > /dev/null 2>&1 || fail "ERROR: NODE_HOME is not set and not 'node' command found in your path" +fi + +# Check hvigor wrapper script +if [ ! -r "$HVIGOR_WRAPPER_SCRIPT" ];then + fail "ERROR: Couldn't find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}" +fi + +# start hvigor-wrapper script +exec "${EXECUTABLE_NODE}" \ + "${HVIGOR_WRAPPER_SCRIPT}" "$@" diff --git a/scenario/arkui/MyWps/hvigorw.bat b/scenario/arkui/MyWps/hvigorw.bat new file mode 100755 index 00000000..d570007e --- /dev/null +++ b/scenario/arkui/MyWps/hvigorw.bat @@ -0,0 +1,64 @@ +@if "%DEBUG%" == "" @echo off +@rem ########################################################################## +@rem +@rem Hvigor startup script for Windows +@rem +@rem ########################################################################## + +@rem Set local scope for the variables with windows NT shell +if "%OS%"=="Windows_NT" setlocal + +set DIRNAME=%~dp0 +if "%DIRNAME%" == "" set DIRNAME=. +set APP_BASE_NAME=%~n0 +set APP_HOME=%DIRNAME% + +@rem Resolve any "." and ".." in APP_HOME to make it shorter. +for %%i in ("%APP_HOME%") do set APP_HOME=%%~fi + +set WRAPPER_MODULE_PATH=%APP_HOME%\hvigor\hvigor-wrapper.js +set NODE_EXE=node.exe + +goto start + +:start +@rem Find node.exe +if defined NODE_HOME goto findNodeFromNodeHome + +%NODE_EXE% --version >NUL 2>&1 +if "%ERRORLEVEL%" == "0" goto execute + +echo. +echo ERROR: NODE_HOME is not set and no 'node' command could be found in your PATH. +echo. +echo Please set the NODE_HOME variable in your environment to match the +echo location of your NodeJs installation. + +goto fail + +:findNodeFromNodeHome +set NODE_HOME=%NODE_HOME:"=% +set NODE_EXE_PATH=%NODE_HOME%/%NODE_EXE% + +if exist "%NODE_EXE_PATH%" goto execute +echo. +echo ERROR: NODE_HOME is not set and no 'node' command could be found in your PATH. +echo. +echo Please set the NODE_HOME variable in your environment to match the +echo location of your NodeJs installation. + +goto fail + +:execute +@rem Execute hvigor +"%NODE_EXE%" "%WRAPPER_MODULE_PATH%" %* + +if "%ERRORLEVEL%" == "0" goto hvigorwEnd + +:fail +exit /b 1 + +:hvigorwEnd +if "%OS%" == "Windows_NT" endlocal + +:end diff --git a/scenario/arkui/MyWps/oh-package-lock.json5 b/scenario/arkui/MyWps/oh-package-lock.json5 new file mode 100755 index 00000000..ddc8a54d --- /dev/null +++ b/scenario/arkui/MyWps/oh-package-lock.json5 @@ -0,0 +1,13 @@ +{ + "lockfileVersion": 1, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hypium@1.0.11": "@ohos/hypium@1.0.11" + }, + "packages": { + "@ohos/hypium@1.0.11": { + "resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.11.tgz", + "integrity": "sha512-KawcLnv43C3QIYv1UbDnKCFX3MohtDxGuFvzlUxT/qf2DBilR56Ws6zrj90LdH6PjloJQwOPESuBQIHBACAK7w==" + } + } +} \ No newline at end of file diff --git a/scenario/arkui/MyWps/oh-package.json5 b/scenario/arkui/MyWps/oh-package.json5 new file mode 100755 index 00000000..5fef4433 --- /dev/null +++ b/scenario/arkui/MyWps/oh-package.json5 @@ -0,0 +1,12 @@ +{ + "license": "", + "devDependencies": { + "@ohos/hypium": "1.0.11" + }, + "author": "", + "name": "mywps", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/scenario/arkui/MyWps/screenshots/main.png b/scenario/arkui/MyWps/screenshots/main.png new file mode 100755 index 0000000000000000000000000000000000000000..6e43f468ceab6adb77d382d189ade8b454a0c47b GIT binary patch literal 54591 zcmeFZ1yo#HmoB<-mk`_&NN@=576OD2AP`&=+}*8^V1)%pAi;w>K?--5;9gje;Dx&s zw{rUbyZfBJ9X&z(fO(M^TU-1IQ1M zP#z%NcL8*W&xwZg#|!w|3kewo6%8E&6AK#$@c@JnKt@7AK}JPELqkPHJne`0KY;oG zjpz}#H2Oo;_ZW|zhbbNApc7Abr zb^V(!Bmm`~*h0{MV(c$`JwWh}E02c)b@#UdB03?Bn zYv!x~?Eki{B=&(yep$-7xXc?Hk|u|z!fHxUR0Zv@iB@8ya#^p7@G^b_(av*k>g0(9 z8$l1t#AE1&urBr8MsJO?x1Se3X`>ZWaQUg7^sP*pit)^Q&Xy@>Q>ice#00xiw9!fy zFM7^3794q;5_EX=Rmv^DFM9gCjX`3t*I8PqGowJYv!!jmD<0Y}FNeeu-^Jf_H|Wae z2qlU}e0w36l82mlRrB*C9S`t9BWZh@Td43j%lG-{*V%xg?_CN^->-J7C*C&)bqJl| zws7oe1mKf#n4+aCXS>RP)M>hi4GHx_SCRymJ0~d^{ zscDbS$3dJKr6#MsRM^*+9}`raAuZr_cQALm%u5cZj&kdEtp-$87ha9dE3(R&nm%tw z0xD4QRFDfSy??cavo9Tw3!{Da3qJ^K1uSB+F&HvbUI7zX;Ld4ZRkNH(yIjt6y{)~R zmpQ0iBMFH#bu`Q<&S2(D@L=J&gTNFk3#A` zacjI27wW&J1okY8puSpftfr3)7w+=5-(Z!**Jn*L zyAKC4v9w%CqJO3&tpcnf`nufBxu(-`z)u!ppdaV3yLW9m~Iv&Mk=FJHz zg3V-LD(gF+3Za3uph%7u)Ysia#Y{eq(|5|8tuD4f1lM9$kJKaa;@rsqI`AY&V9dCh(yGqUt@UmIX+b@|Z{=Rojyht(Vdx8DKte@bFO(!H7c_HF4p8ga|_4KntFLo*KyvuONz3hgtHA^S;N3gFz84iA{=`!&3 zL|1NTY_`n%{B5Tf6℘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 clY|J2HlFr#`lT;02@#3=Kufz literal 0 HcmV?d00001 -- Gitee