From 6e910a008b041d5b9c0414a0b8e763c72735f90a Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Tue, 29 Jul 2025 15:21:14 +0800 Subject: [PATCH 1/4] EnhanceSampleArk1.2 READEME.md Signed-off-by: wangweiyuan --- sample/EnhanceSampleArk1.2/READEME.md | 49 +++++++++++++++++++++++++++ 1 file changed, 49 insertions(+) create mode 100644 sample/EnhanceSampleArk1.2/READEME.md diff --git a/sample/EnhanceSampleArk1.2/READEME.md b/sample/EnhanceSampleArk1.2/READEME.md new file mode 100644 index 00000000..87970cdd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/READEME.md @@ -0,0 +1,49 @@ +# ArkTS1.2迁移升级说明 + + +## 一、概述 +核心目标是通过 **一键迁移工具辅助 + 有限手动修正**(手动修改占比严格控制在 5%–10%),实现工程完整运行。 + + +## 二、升级步骤 + +### 1. 工程迁移与版本备份 +- **拉取代码**:获取四个工程的代码。 +- **自动迁移**:使用官方 **一键迁移工具** 执行 1.2 版本自动转换,生成初始迁移工程。 +- **版本记录**:通过 `git` 提交迁移后代码(备注:`迁移工具初始输出 - Ark1.2`),固化迁移基线,便于后续对比追溯。 + + +### 2. 迁移工具报错处理 +- **收集报错**:运行迁移工具后,汇总所有报错信息(含语法错误、配置冲突、API 废弃等)。 +- **分类处理**: + - **可修复项**:直接修改代码修复(如路径配置更新、简单 API 替换)。 + - **疑难项**:整理报错场景(代码片段 + 报错日志),提交至 **迁移问题跟踪表**(同步工具团队或技术负责人)。 + + +### 3. 报错修复与问题提单 +- **优先修复明确报错**:确保迁移工具层面的错误全部解决,工程通过工具校验。 +- **阻断性问题提单**:对于工具无法自动修复、手动修改困难的问题(如框架逻辑冲突),提交 **高优先级问题单**(标注 `迁移阻断`),协同解决。 + + +### 4. 编译阶段 TypeError 修复 +迁移后编译会触发 **类型不匹配(TypeError)** 问题,需手动修正(聚焦工具未覆盖场景)。 +- **修复范围**:变量类型对齐、方法参数匹配、组件属性约束、异步逻辑类型定义等。 +- **比例控制**:单工程手动修改量 **≤10%**(整体三个工程平均目标 ≤7%),通过注释标记手动修改点(如 `// 1.2迁移手动修复:类型对齐`)。 + + +## 三、Sample 升级核心内容 +1. **工具自动适配**: + - ArkUI 1.2 API 替换(组件、接口升级)。 + - 工程配置文件(如依赖、清单)自动更新。 +2. **手动修正焦点**: + - 类型系统细化:修复 `number/string` 混淆、泛型约束问题; + - 异步流程:调整 Promise、异步组件的类型定义; + - 自定义逻辑:修正工具未覆盖的参数/返回值类型错误。 + + +## 四、后续流程 +1. **内部评审**:组织全流程评审(代码规范、功能运行、性能基线),验证升级效果。 +2. **问题闭环**:评审问题回归至步骤 2-4 修复,直至满足可运行标准。 +3. **仓库上传**:内部检视通过后,推送代码至目标仓库。 + +**关键原则**:过程中记录手动修改点,便于工具优化反馈,保障后续版本迁移效率。 \ No newline at end of file -- Gitee From c18d39b49469e44c336d6af1ecb757835a7b753a Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Tue, 29 Jul 2025 16:06:43 +0800 Subject: [PATCH 2/4] Init(EnhanceSampleArk1.2): Sample1.0 Signed-off-by: wangweiyuan --- .../ConcurrentModule/.gitignore | 11 + .../ConcurrentModule/AppScope/app.json5 | 25 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../ConcurrentModule/README.md | 50 + .../ConcurrentModule/README_zh.md | 118 +++ .../ConcurrentModule/build-profile.json5 | 43 + .../ConcurrentModule/entry/.gitignore | 6 + .../entry/build-profile.json5 | 34 + .../ConcurrentModule/entry/hvigorfile.ts | 2 + .../ConcurrentModule/entry/oh-package.json5 | 25 + .../entry/src/main/ets/common/Common.ets | 87 ++ .../entry/src/main/ets/common/Logger.ts | 56 ++ .../src/main/ets/component/SendableTest.ets | 27 + .../src/main/ets/component/TaskPoolTab.ets | 430 +++++++++ .../src/main/ets/component/WorkerTab.ets | 168 ++++ .../entry/src/main/ets/component/test.ets | 50 + .../main/ets/entryability/EntryAbility.ets | 113 +++ .../entry/src/main/ets/fileFs/MyWorker.ets | 198 ++++ .../entry/src/main/ets/pages/CopyFile.ets | 253 +++++ .../entry/src/main/ets/pages/Index.ets | 71 ++ .../entry/src/main/ets/pages/StrSort.ets | 134 +++ .../entry/src/main/ets/workers/Worker.ts | 54 ++ .../entry/src/main/ets/workers/WorkerCopy.ts | 67 ++ .../entry/src/main/module.json5 | 52 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 100 ++ .../base/media/c_Checkbox_Selected.svg | 8 + .../src/main/resources/base/media/empties.svg | 24 + .../media/ic_Checkbox_Selected_Enabled.svg | 24 + .../src/main/resources/base/media/ic_back.svg | 13 + .../main/resources/base/media/ic_backward.svg | 7 + .../base/media/ic_backward_right.svg | 7 + .../main/resources/base/media/ic_delete.svg | 14 + .../src/main/resources/base/media/ic_edit.svg | 14 + .../src/main/resources/base/media/ic_ok.svg | 13 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../main/resources/base/media/public_add.svg | 24 + .../resources/base/profile/main_pages.json | 7 + .../main/resources/en_US/element/string.json | 100 ++ .../main/resources/zh_CN/element/string.json | 100 ++ .../ets/TestRunner/OpenHarmonyTestRunner.ts | 63 ++ .../src/ohosTest/ets/test/Ability.test.ets | 432 +++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../ohosTest/ets/testability/TestAbility.ets | 65 ++ .../ohosTest/ets/testability/pages/Index.ets | 50 + .../entry/src/ohosTest/module.json5 | 51 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 28 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../ohosTest/resources/en/element/string.json | 16 + .../ohosTest/resources/zh/element/string.json | 16 + .../hvigor/hvigor-config.json5 | 21 + .../ConcurrentModule/hvigor/hvigor-wrapper.js | 1 + .../ConcurrentModule/hvigorfile.ts | 2 + .../ConcurrentModule/hvigorw | 61 ++ .../ConcurrentModule/hvigorw.bat | 72 ++ .../ConcurrentModule/oh-package.json5 | 27 + .../ConcurrentModule/ohosTest.md | 10 + .../screenshots/device/copyFile.jpg | Bin 0 -> 19902 bytes .../screenshots/device/index.jpg | Bin 0 -> 11763 bytes .../screenshots/device/taskpoolTab.jpg | Bin 0 -> 18288 bytes .../screenshots/device/workerTab.jpg | Bin 0 -> 14152 bytes .../LanguageBaseClassLibrary/.gitignore | 10 + .../AppScope/app.json5 | 26 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../LanguageBaseClassLibrary/README_zh.md | 184 ++++ .../build-profile.json5 | 55 ++ .../common/.gitignore | 3 + .../LanguageBaseClassLibrary/common/Index.ets | 24 + .../common/build-profile.json5 | 20 + .../common/hvigorfile.ts | 17 + .../common/oh-package.json5 | 26 + .../main/ets/components/BaseDataSource.ets | 75 ++ .../main/ets/components/CustomDataSource.ets | 81 ++ .../src/main/ets/components/EmptyPage.ets | 37 + .../common/src/main/ets/util/Logger.ets | 45 + .../common/src/main/ets/util/ResourceUtil.ets | 27 + .../common/src/main/module.json5 | 25 + .../main/resources/base/element/color.json | 36 + .../main/resources/base/element/string.json | 64 ++ .../resources/base/media/bg_empty_page.svg | 104 ++ .../main/resources/en_US/element/string.json | 64 ++ .../main/resources/zh_CN/element/string.json | 64 ++ .../LanguageBaseClassLibrary/entry/.gitignore | 4 + .../entry/build-profile.json5 | 28 + .../entry/hvigorfile.ts | 16 + .../entry/oh-package.json5 | 27 + .../main/ets/entryability/EntryAbility.ets | 99 ++ .../src/main/ets/pages/AddInformationView.ets | 296 ++++++ .../main/ets/pages/AddKeyValuePairView.ets | 165 ++++ .../src/main/ets/pages/AddStringView.ets | 135 +++ .../entry/src/main/ets/pages/Index.ets | 91 ++ .../ets/pages/components/Capabilities.ets | 111 +++ .../entry/src/main/module.json5 | 52 + .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/strarray.json | 67 ++ .../main/resources/base/element/string.json | 128 +++ .../src/main/resources/base/media/ic_age.svg | 15 + .../resources/base/media/ic_public_back.svg | 5 + .../base/media/ic_public_confirm.svg | 5 + .../resources/base/media/ic_public_phone.svg | 7 + .../base/media/ic_public_spinner_down.svg | 5 + .../resources/base/media/ic_public_user.svg | 7 + .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/main_pages.json | 8 + .../resources/en_US/element/strarray.json | 67 ++ .../main/resources/en_US/element/string.json | 128 +++ .../resources/zh_CN/element/strarray.json | 67 ++ .../main/resources/zh_CN/element/string.json | 128 +++ .../ets/TestRunner/OpenHarmonyTestRunner.ts | 67 ++ .../src/ohosTest/ets/test/Ability.test.ets | 886 ++++++++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../ohosTest/ets/testability/TestAbility.ets | 64 ++ .../ohosTest/ets/testability/pages/Index.ets | 54 ++ .../entry/src/ohosTest/ets/util/Logger.ts | 40 + .../entry/src/ohosTest/module.json5 | 52 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 224 +++++ .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../resources/en_US/element/strarray.json | 72 ++ .../resources/en_US/element/string.json | 224 +++++ .../resources/zh_CN/element/strarray.json | 72 ++ .../resources/zh_CN/element/string.json | 223 +++++ .../feature/capabilities/.gitignore | 4 + .../feature/capabilities/build-profile.json5 | 25 + .../feature/capabilities/hvigorfile.ts | 16 + .../feature/capabilities/index.ets | 58 ++ .../feature/capabilities/oh-package.json5 | 28 + .../capabilities/src/main/ets/Constant.ts | 31 + .../main/ets/capabilities/ArrayListView.ets | 81 ++ .../src/main/ets/capabilities/ConvertXml.ets | 64 ++ .../src/main/ets/capabilities/DequeView.ets | 78 ++ .../src/main/ets/capabilities/HashMapView.ets | 76 ++ .../src/main/ets/capabilities/HashSetView.ets | 78 ++ .../ets/capabilities/LightWeightMapView.ets | 76 ++ .../ets/capabilities/LightWeightSetView.ets | 78 ++ .../main/ets/capabilities/LinkedListView.ets | 81 ++ .../src/main/ets/capabilities/ListView.ets | 67 ++ .../main/ets/capabilities/PlainArrayView.ets | 76 ++ .../src/main/ets/capabilities/Process.ets | 99 ++ .../main/ets/capabilities/ProcessMessage.ets | 52 + .../src/main/ets/capabilities/QueueView.ets | 66 ++ .../src/main/ets/capabilities/StackView.ets | 70 ++ .../src/main/ets/capabilities/TaskPool.ets | 115 +++ .../src/main/ets/capabilities/TreeMapView.ets | 66 ++ .../src/main/ets/capabilities/TreeSetView.ets | 66 ++ .../src/main/ets/capabilities/Url.ets | 68 ++ .../src/main/ets/capabilities/Util.ets | 64 ++ .../src/main/ets/capabilities/VectorView.ets | 66 ++ .../main/ets/components/ColumnOperation.ets | 57 ++ .../src/main/ets/components/DeleteView.ets | 34 + .../src/main/ets/components/GridOperation.ets | 60 ++ .../ets/components/InformationItemView.ets | 61 ++ .../main/ets/components/KeyValueItemView.ets | 54 ++ .../src/main/ets/components/ValueItemView.ets | 50 + .../arraylistcomponents/AddDialog.ets | 158 ++++ .../arraylistcomponents/ArrayListItem.ets | 89 ++ .../arraylistcomponents/MyDataSource.ets | 72 ++ .../dequecomponents/DequeDataSource.ets | 62 ++ .../hashmapcomponents/HashMapDataSource.ets | 41 + .../hashsetcomponents/HashSetDataSource.ets | 40 + .../LightWeightMapDataSource.ets | 41 + .../LightWeightSetDataSource.ets | 40 + .../LinkedListDataSource.ets | 54 ++ .../listcomponents/ListDataSource.ets | 42 + .../PlainArrayDataSource.ets | 53 ++ .../queuecomponents/QueueDataSource.ets | 48 + .../stackcomponents/StackDataSource.ets | 48 + .../treemapcomponents/TreeMapDataSource.ets | 53 ++ .../treesetcomponents/TreeSetDataSource.ets | 45 + .../utilcomponents/Base64Helper.ets | 112 +++ .../components/utilcomponents/LRUCache.ets | 124 +++ .../utilcomponents/RationalNumber.ets | 108 +++ .../components/utilcomponents/ScopeHelper.ets | 107 +++ .../components/utilcomponents/StringCode.ets | 194 ++++ .../components/utilcomponents/TypeCheck.ets | 54 ++ .../lrucache/ActionSheetDialog.ets | 59 ++ .../utilcomponents/scopehelper/InputItem.ets | 42 + .../utilcomponents/scopehelper/SleepView.ets | 115 +++ .../utilcomponents/scopehelper/TempView.ets | 106 +++ .../utilcomponents/stringcode/SpecInput.ets | 36 + .../utilcomponents/typecheck/CheckType.ets | 75 ++ .../utilcomponents/typecheck/ShowKey.ets | 42 + .../vectorcomponents/VectorDataSource.ets | 42 + .../src/main/ets/model/Information.ets | 29 + .../src/main/ets/model/KeyValuePair.ets | 25 + .../src/main/ets/model/ScopeNumber.ets | 34 + .../src/main/ets/util/ConvertXmlUtil.ets | 92 ++ .../src/main/ets/util/LRUCacheUtil.ets | 85 ++ .../src/main/ets/util/RationalNumberUtil.ets | 78 ++ .../src/main/ets/util/UrlUtil.ets | 54 ++ .../capabilities/src/main/module.json5 | 25 + .../main/resources/base/element/color.json | 16 + .../main/resources/base/element/strarray.json | 142 +++ .../main/resources/base/element/string.json | 392 ++++++++ .../resources/base/media/bg_empty_page.svg | 104 ++ .../src/main/resources/base/media/contact.png | Bin 0 -> 5311 bytes .../src/main/resources/base/media/ic_add.png | Bin 0 -> 212 bytes .../resources/base/media/ic_delete_plane.svg | 16 + .../resources/en_US/element/strarray.json | 142 +++ .../main/resources/en_US/element/string.json | 392 ++++++++ .../resources/zh_CN/element/strarray.json | 142 +++ .../main/resources/zh_CN/element/string.json | 392 ++++++++ .../feature/menuitems/.gitignore | 4 + .../feature/menuitems/build-profile.json5 | 25 + .../feature/menuitems/hvigorfile.ts | 16 + .../feature/menuitems/index.ets | 18 + .../feature/menuitems/oh-package.json5 | 27 + .../src/main/ets/components/ItemGroup.ets | 30 + .../src/main/ets/components/MainItem.ets | 55 ++ .../src/main/ets/components/MenuNavRouter.ets | 134 +++ .../src/main/ets/menulist/MenuList.ets | 53 ++ .../feature/menuitems/src/main/module.json5 | 25 + .../main/resources/base/element/color.json | 24 + .../main/resources/base/element/string.json | 8 + .../src/main/resources/base/media/ic_add.png | Bin 0 -> 212 bytes .../main/resources/base/media/ic_arrow.svg | 16 + .../resources/base/media/ic_public_add.svg | 15 + .../main/resources/en_US/element/string.json | 8 + .../main/resources/zh_CN/element/string.json | 8 + .../hvigor/hvigor-config.json5 | 6 + .../hvigor/hvigor-wrapper.js | 2 + .../LanguageBaseClassLibrary/hvigorfile.ts | 16 + .../LanguageBaseClassLibrary/hvigorw | 61 ++ .../LanguageBaseClassLibrary/hvigorw.bat | 78 ++ .../lib/ProcessMessage-1.0.0.hap | Bin 0 -> 96200 bytes .../lib/ProcessMessage-1.0.0.tgz | Bin 0 -> 35535 bytes .../LanguageBaseClassLibrary/oh-package.json5 | 26 + .../LanguageBaseClassLibrary/ohosTest.md | 152 +++ .../screenshots/devices/arraylist.jpg | Bin 0 -> 18312 bytes .../screenshots/devices/base64.jpg | Bin 0 -> 23602 bytes .../screenshots/devices/convertxml.jpg | Bin 0 -> 24774 bytes .../screenshots/devices/home.jpg | Bin 0 -> 32581 bytes .../screenshots/devices/lrucache.jpg | Bin 0 -> 40533 bytes .../screenshots/devices/process.jpg | Bin 0 -> 37570 bytes .../screenshots/devices/rationalnumber.jpg | Bin 0 -> 34447 bytes .../screenshots/devices/scopehelper.jpg | Bin 0 -> 39877 bytes .../screenshots/devices/stringcode.jpg | Bin 0 -> 46355 bytes .../screenshots/devices/typecheck.jpg | Bin 0 -> 30973 bytes .../screenshots/devices/url.jpg | Bin 0 -> 29947 bytes .../screenshots/devices/util.jpg | Bin 0 -> 20753 bytes .../PageLoading/.gitignore | 12 + .../PageLoading/AppScope/app.json5 | 25 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 2777 bytes .../EnhanceSampleArk1.2/PageLoading/README.md | 163 ++++ .../PageLoading/build-profile.json5 | 61 ++ .../PageLoading/code-linter.json5 | 34 + .../PageLoading/entry/.gitignore | 6 + .../PageLoading/entry/build-profile.json5 | 43 + .../PageLoading/entry/hvigorfile.ts | 21 + .../PageLoading/entry/obfuscation-rules.txt | 23 + .../PageLoading/entry/oh-package.json5 | 27 + .../main/ets/common/lottie/pageLoading.json | 1 + .../main/ets/entryability/EntryAbility.ets | 57 ++ .../entrybackupability/EntryBackupAbility.ets | 27 + .../entry/src/main/ets/pages/Index.ets | 28 + .../PageLoading/entry/src/main/module.json5 | 66 ++ .../main/resources/base/element/color.json | 8 + .../main/resources/base/element/string.json | 16 + .../main/resources/base/media/background.png | Bin 0 -> 57364 bytes .../main/resources/base/media/foreground.png | Bin 0 -> 12430 bytes .../resources/base/media/layered_image.json | 7 + .../main/resources/base/media/startIcon.png | Bin 0 -> 20093 bytes .../resources/base/profile/backup_config.json | 3 + .../resources/base/profile/main_pages.json | 5 + .../main/resources/dark/element/color.json | 8 + .../src/ohosTest/ets/test/Ability.test.ets | 66 ++ .../entry/src/ohosTest/ets/test/List.test.ets | 20 + .../entry/src/ohosTest/ets/utils/logger.ets | 49 + .../entry/src/ohosTest/module.json5 | 27 + .../PageLoading/entry/src/test/List.test.ets | 20 + .../entry/src/test/LocalUnit.test.ets | 48 + .../PageLoading/hvigor/hvigor-config.json5 | 22 + .../PageLoading/hvigorfile.ts | 6 + .../PageLoading/oh-package.json5 | 10 + .../PageLoading/ohosTest.md | 8 + .../PageLoading/pageloading/.gitignore | 6 + .../PageLoading/pageloading/Index.ets | 16 + .../pageloading/build-profile.json5 | 46 + .../pageloading/consumer-rules.txt | 0 .../PageLoading/pageloading/hvigorfile.ts | 21 + .../pageloading/obfuscation-rules.txt | 23 + .../PageLoading/pageloading/oh-package.json5 | 27 + .../src/main/ets/mock/CommodityMock.ets | 40 + .../src/main/ets/model/CommodityDataModel.ets | 40 + .../main/ets/model/CommodityDataSource.ets | 124 +++ .../pageloading/src/main/ets/utils/logger.ets | 49 + .../src/main/ets/view/CommodityList.ets | 178 ++++ .../src/main/ets/view/LoadingHUD.ets | 78 ++ .../src/main/ets/view/PageLoading.ets | 64 ++ .../pageloading/src/main/module.json5 | 24 + .../main/resources/base/element/color.json | 24 + .../main/resources/base/element/integer.json | 148 +++ .../main/resources/base/element/string.json | 116 +++ .../resources/base/media/page_loading.gif | Bin 0 -> 606897 bytes .../base/media/page_loading_commodity00.png | Bin 0 -> 79348 bytes .../base/media/page_loading_commodity01.png | Bin 0 -> 122040 bytes .../base/media/page_loading_commodity02.png | Bin 0 -> 189293 bytes .../base/media/page_loading_commodity03.png | Bin 0 -> 166153 bytes .../base/media/page_loading_commodity04.png | Bin 0 -> 223609 bytes .../base/media/page_loading_commodity05.png | Bin 0 -> 191819 bytes .../media/page_loading_light_mode_banner.jpg | Bin 0 -> 58602 bytes .../base/media/page_loading_views.svg | 7 + .../rawfile/routerMap/pageloading.json | 10 + .../src/ohosTest/ets/test/Ability.test.ets | 50 + .../src/ohosTest/ets/test/List.test.ets | 20 + .../pageloading/src/ohosTest/module.json5 | 27 + .../pageloading/src/test/List.test.ets | 20 + .../pageloading/src/test/LocalUnit.test.ets | 48 + .../StateManagement/.gitignore | 10 + .../StateManagement/AppScope/app.json5 | 26 + .../resources/base/element/string.json | 8 + .../resources/base/media/app_icon.png | Bin 0 -> 6790 bytes .../StateManagement/README_zh.md | 173 ++++ .../StateManagement/build-profile.json5 | 42 + .../StateManagement/entry/.gitignore | 4 + .../StateManagement/entry/build-profile.json5 | 28 + .../StateManagement/entry/hvigorfile.ts | 2 + .../StateManagement/entry/oh-package.json5 | 24 + .../main/ets/commoncomponents/CodeView.ets | 84 ++ .../main/ets/commoncomponents/TitleBar.ets | 56 ++ .../ets/commoncomponents/TitleBarDark.ets | 57 ++ .../ets/commoncomponents/ViewCodeText.ets | 37 + .../src/main/ets/entryability/EntryAbility.ts | 92 ++ .../ets/outofsyncability/OutOfSyncAbility.ts | 58 ++ .../AbilityGlobalDataSync.ets | 50 + .../AbilityGlobalDataSyncCode.ets | 142 +++ .../AbilityOutOfSyncPage.ets | 88 ++ .../LocalStorageLinkPage.ets | 87 ++ .../LocalStoragePropPage.ets | 123 +++ .../ApplyGlobalDataSync.ets | 47 + .../ApplyGlobalDataSyncCode.ets | 125 +++ .../StorageLinkAbilityPage.ets | 86 ++ .../StoragePropAbilityPage.ets | 121 +++ .../model/AbilityConfigType.ts | 19 + .../entry/src/main/ets/pages/home/Home.ets | 65 ++ .../ets/pages/home/TabContentNavigation.ets | 176 ++++ .../src/main/ets/pages/home/data/HomeData.ets | 127 +++ .../pages/home/model/CategoricalDataType.ets | 38 + .../BrotherComponentSync.ets | 39 + .../BrotherComponentSyncCode.ets | 44 + .../ConsumeBrotherOneComponent.ets | 64 ++ .../ConsumeBrotherTwoComponent.ets | 65 ++ .../LinkBrotherOneComponent.ets | 66 ++ .../LinkBrotherTwoComponent.ets | 63 ++ .../ProvideFatherComponent.ets | 48 + .../StateFatherComponent.ets | 54 ++ .../multicompomentssync/data/ColorData.ets | 27 + .../ConsumeDescendentComponent.ets | 69 ++ .../DeepNestComponentsSync.ets | 39 + .../DeepNestComponentsSyncCode.ets | 42 + .../LinkDescendentComponent.ets | 66 ++ .../ProvideGrandfatherComponent.ets | 88 ++ .../StateGrandfatherComponent.ets | 94 ++ .../multicompomentssync/model/ColorType.ets | 19 + .../ObjectLinkComponent.ets | 54 ++ .../ParentChildPartialContentSync.ets | 39 + .../ParentChildPartialContentSyncCode.ets | 108 +++ .../uniandbidirectionsync/ComponentLink.ets | 62 ++ .../uniandbidirectionsync/ComponentProp.ets | 61 ++ .../UniAndBidirectionSync.ets | 39 + .../UniAndBidirectionSyncCode.ets | 74 ++ .../arraytype/ArrayType.ets | 39 + .../arraytype/ArrayTypeCode.ets | 136 +++ .../decoratedobjecttype/basetype/BaseType.ets | 40 + .../basetype/BaseTypeCode.ets | 58 ++ .../classobjecttype/ClassObjectType.ets | 39 + .../classobjecttype/ClassObjectTypeCode.ets | 173 ++++ .../UpdateBoundComponent.ets | 39 + .../UpdateBoundComponentCode.ets | 93 ++ .../storagelinkability/StorageLinkAbility.ts | 58 ++ .../storagepropability/StoragePropAbility.ts | 58 ++ .../entry/src/main/ets/utils/Logger.ts | 45 + .../entry/src/main/ets/utils/ResourceUtils.ts | 26 + .../src/main/ets/utils/StartAbilityUtils.ts | 34 + .../entry/src/main/module.json5 | 87 ++ .../main/resources/base/element/color.json | 81 ++ .../main/resources/base/element/float.json | 64 ++ .../main/resources/base/element/string.json | 432 +++++++++ .../main/resources/base/media/app_level.svg | 34 + .../base/media/app_level_selected.svg | 34 + .../src/main/resources/base/media/ic_back.svg | 13 + .../resources/base/media/ic_back_white.svg | 13 + .../resources/base/media/ic_down_arrow.png | Bin 0 -> 663 bytes .../resources/base/media/ic_right_arrow.png | Bin 0 -> 709 bytes .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../main/resources/base/media/page_level.svg | 22 + .../base/media/page_level_selected.svg | 22 + .../resources/base/profile/main_pages.json | 20 + .../main/resources/en_US/element/string.json | 432 +++++++++ .../AbilityGlobalDataSyncCode.ets.html | 157 ++++ .../rawfile/AbilityOutOfSyncPage.ets.html | 110 +++ .../rawfile/ApplyGlobalDataSyncCode.ets.html | 142 +++ .../resources/rawfile/ArrayTypeCode.ets.html | 157 ++++ .../resources/rawfile/BaseTypeCode.ets.html | 81 ++ .../rawfile/BrotherComponentSyncCode.ets.html | 67 ++ .../rawfile/ClassObjectTypeCode.ets.html | 192 ++++ .../resources/rawfile/ComponentLink.ets.html | 85 ++ .../resources/rawfile/ComponentProp.ets.html | 84 ++ .../ConsumeBrotherOneComponent.ets.html | 87 ++ .../ConsumeBrotherTwoComponent.ets.html | 87 ++ .../ConsumeDescendentComponent.ets.html | 92 ++ .../DeepNestComponentsSyncCode.ets.html | 65 ++ .../rawfile/LinkBrotherOneComponent.ets.html | 89 ++ .../rawfile/LinkBrotherTwoComponent.ets.html | 86 ++ .../rawfile/LinkDescendentComponent.ets.html | 89 ++ .../rawfile/LocalStorageLinkPage.ets.html | 109 +++ .../rawfile/LocalStoragePropPage.ets.html | 145 +++ .../rawfile/ObjectLinkComponent.ets.html | 77 ++ ...ParentChildPartialContentSyncCode.ets.html | 132 +++ .../rawfile/ProvideFatherComponent.ets.html | 72 ++ .../ProvideGrandfatherComponent.ets.html | 111 +++ .../rawfile/StateFatherComponent.ets.html | 78 ++ .../StateGrandfatherComponent.ets.html | 117 +++ .../rawfile/StorageLinkAbilityPage.ets.html | 108 +++ .../rawfile/StoragePropAbilityPage.ets.html | 143 +++ .../UniAndBidirectionSyncCode.ets.html | 97 ++ .../rawfile/UpdateBoundComponentCode.ets.html | 116 +++ .../main/resources/zh_CN/element/string.json | 432 +++++++++ .../ets/TestRunner/OpenHarmonyTestRunner.ts | 62 ++ .../src/ohosTest/ets/test/Ability.test.ets | 839 +++++++++++++++++ .../entry/src/ohosTest/ets/test/List.test.ets | 22 + .../ohosTest/ets/testability/TestAbility.ets | 61 ++ .../ohosTest/ets/testability/pages/Index.ets | 54 ++ .../entry/src/ohosTest/ets/utils/Logger.ts | 44 + .../entry/src/ohosTest/module.json5 | 52 + .../resources/base/element/color.json | 8 + .../resources/base/element/string.json | 64 ++ .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../resources/base/profile/test_pages.json | 5 + .../ohosTest/resources/en/element/string.json | 60 ++ .../ohosTest/resources/zh/element/string.json | 60 ++ .../hvigor/hvigor-config.json5 | 21 + .../StateManagement/hvigor/hvigor-wrapper.js | 2 + .../StateManagement/hvigorfile.ts | 2 + .../StateManagement/hvigorw | 63 ++ .../StateManagement/hvigorw.bat | 72 ++ .../StateManagement/oh-package.json5 | 26 + .../StateManagement/ohosTest.md | 18 + .../device/ApplyGlobalDataSync.jpeg | Bin 0 -> 42808 bytes .../screenshots/device/DeepNestComponent.jpeg | Bin 0 -> 43715 bytes .../screenshots/device/Home.jpeg | Bin 0 -> 25882 bytes .../device/ParentChildPartialContentSync.jpeg | Bin 0 -> 26455 bytes 448 files changed, 27686 insertions(+) create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/app.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/media/app_icon.png create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/README.md create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/README_zh.md create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Common.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Logger.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/SendableTest.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/TaskPoolTab.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/WorkerTab.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/test.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/fileFs/MyWorker.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/CopyFile.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/StrSort.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/Worker.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/WorkerCopy.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/c_Checkbox_Selected.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/empties.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_Checkbox_Selected_Enabled.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_back.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward_right.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_delete.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_edit.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_ok.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/public_add.svg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/profile/main_pages.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/en/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/zh/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/hvigor/hvigor-config.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/hvigor/hvigor-wrapper.js create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw.bat create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/ohosTest.md create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/copyFile.jpg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/index.jpg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/taskpoolTab.jpg create mode 100644 sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/workerTab.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/AppScope/app.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/AppScope/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/AppScope/resources/base/media/app_icon.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/README_zh.md create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/BaseDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/CustomDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/EmptyPage.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/Logger.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/ResourceUtil.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/media/bg_empty_page.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddInformationView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddKeyValuePairView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddStringView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/components/Capabilities.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_age.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_back.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_confirm.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_phone.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_spinner_down.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_user.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/profile/main_pages.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/en_US/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/zh_CN/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/util/Logger.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/en_US/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/zh_CN/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/index.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/Constant.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ArrayListView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ConvertXml.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/DequeView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashMapView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashSetView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightMapView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightSetView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LinkedListView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ListView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/PlainArrayView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Process.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ProcessMessage.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/QueueView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/StackView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TaskPool.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeMapView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeSetView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Url.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Util.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/VectorView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ColumnOperation.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/DeleteView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/GridOperation.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/InformationItemView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/KeyValueItemView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ValueItemView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/AddDialog.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/ArrayListItem.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/MyDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/dequecomponents/DequeDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashmapcomponents/HashMapDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashsetcomponents/HashSetDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightmapcomponents/LightWeightMapDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightsetcomponents/LightWeightSetDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/linkedlistcomponents/LinkedListDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/listcomponents/ListDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/plainarraycomponents/PlainArrayDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/queuecomponents/QueueDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/stackcomponents/StackDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treemapcomponents/TreeMapDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treesetcomponents/TreeSetDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/Base64Helper.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/LRUCache.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/RationalNumber.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/ScopeHelper.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/StringCode.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/TypeCheck.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/lrucache/ActionSheetDialog.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/InputItem.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/SleepView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/TempView.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/stringcode/SpecInput.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/CheckType.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/ShowKey.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/vectorcomponents/VectorDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/Information.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/KeyValuePair.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/ScopeNumber.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/ConvertXmlUtil.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/LRUCacheUtil.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/RationalNumberUtil.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/UrlUtil.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/bg_empty_page.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/contact.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/ic_add.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/ic_delete_plane.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/strarray.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/index.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/ItemGroup.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MainItem.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MenuNavRouter.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/menulist/MenuList.ets create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_add.png create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_arrow.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_public_add.svg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-config.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-wrapper.js create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw.bat create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.hap create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.tgz create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/ohosTest.md create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/arraylist.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/base64.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/convertxml.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/home.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/lrucache.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/process.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/rationalnumber.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/scopehelper.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/stringcode.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/typecheck.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/url.jpg create mode 100644 sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/util.jpg create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/app.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/app_icon.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/README.md create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/obfuscation-rules.txt create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/common/lottie/pageLoading.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/background.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/foreground.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/layered_image.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/startIcon.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/backup_config.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/main_pages.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/dark/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/ohosTest.md create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/consumer-rules.txt create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/obfuscation-rules.txt create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/integer.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading.gif create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity00.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity01.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity02.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity03.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity04.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity05.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_light_mode_banner.jpg create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_views.svg create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/rawfile/routerMap/pageloading.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/AppScope/app.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/media/app_icon.png create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/README_zh.md create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/.gitignore create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/build-profile.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/CodeView.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBar.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBarDark.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/ViewCodeText.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/entryability/EntryAbility.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/outofsyncability/OutOfSyncAbility.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/model/AbilityConfigType.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/Home.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/TabContentNavigation.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/data/HomeData.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/model/CategoricalDataType.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherOneComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherTwoComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherOneComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherTwoComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ProvideFatherComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/StateFatherComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/data/ColorData.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ConsumeDescendentComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/LinkDescendentComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ProvideGrandfatherComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/StateGrandfatherComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/model/ColorType.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ObjectLinkComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentLink.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentProp.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSyncCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayTypeCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseTypeCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectTypeCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponentCode.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagelinkability/StorageLinkAbility.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagepropability/StoragePropAbility.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/Logger.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/ResourceUtils.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/StartAbilityUtils.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/float.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level_selected.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back_white.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_down_arrow.png create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_right_arrow.png create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/page_level.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/page_level_selected.svg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/profile/main_pages.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/en_US/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityGlobalDataSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityOutOfSyncPage.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ApplyGlobalDataSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ArrayTypeCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BaseTypeCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BrotherComponentSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ClassObjectTypeCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentLink.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentProp.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherOneComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherTwoComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeDescendentComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/DeepNestComponentsSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherOneComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherTwoComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkDescendentComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStorageLinkPage.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStoragePropPage.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ObjectLinkComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ParentChildPartialContentSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideFatherComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideGrandfatherComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateFatherComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateGrandfatherComponent.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StorageLinkAbilityPage.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StoragePropAbilityPage.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UniAndBidirectionSyncCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UpdateBoundComponentCode.ets.html create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/zh_CN/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/List.test.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/TestAbility.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/pages/Index.ets create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/utils/Logger.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/module.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/color.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/media/icon.png create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/profile/test_pages.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/en/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/zh/element/string.json create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/hvigor/hvigor-config.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/hvigor/hvigor-wrapper.js create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/hvigorfile.ts create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/hvigorw create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/hvigorw.bat create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/oh-package.json5 create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/ohosTest.md create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ApplyGlobalDataSync.jpeg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/DeepNestComponent.jpeg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/Home.jpeg create mode 100644 sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ParentChildPartialContentSync.jpeg diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/.gitignore b/sample/EnhanceSampleArk1.2/ConcurrentModule/.gitignore new file mode 100644 index 00000000..fbabf771 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/.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/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/app.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/app.json5 new file mode 100644 index 00000000..5a35ef2b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "app": { + "bundleName": "com.samples.concurrentmodule", + "vendor": "example", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/element/string.json new file mode 100644 index 00000000..33d5dba8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "ConcurrentModule" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/media/app_icon.png b/sample/EnhanceSampleArk1.2/ConcurrentModule/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +```` \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/build-profile.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/build-profile.json5 new file mode 100644 index 00000000..67556445 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/build-profile.json5 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2024 Huawei Device 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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 12, + "compatibleSdkVersion": 12, + "runtimeOS": "OpenHarmony", + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/.gitignore b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/.gitignore new file mode 100644 index 00000000..e2713a27 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/build-profile.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/build-profile.json5 new file mode 100644 index 00000000..0d0cc706 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/build-profile.json5 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2024 Huawei Device 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. + */ + +{ + "apiType": 'stageMode', + "buildOption": { + "sourceOption": { + "workers": [ + './src/main/ets/workers/Worker.ts', + "./src/main/ets/workers/WorkerCopy.ts", + ] + } + }, + "targets": [ + { + "name": "default", + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/hvigorfile.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/hvigorfile.ts new file mode 100644 index 00000000..80e4ec5b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/oh-package.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/oh-package.json5 new file mode 100644 index 00000000..3fbe67bb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/oh-package.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "", + "devDependencies": {}, + "author": "", + "name": "entry", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Common.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Common.ets new file mode 100644 index 00000000..786b9bba --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Common.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2023 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 abilityAccessCtrl, { Permissions } from '@ohos.abilityAccessCtrl'; +import { describe, it, expect } from '@ohos/hypium'; +import util from '@ohos.util'; +import Logger from '../common/Logger'; + +const INDEX: number = 2; +const SLEEP_TIME: number = 10; +const RADIX: number = 16; + +export function strToUtf8Bytes(content: string): Array { + const code = encodeURIComponent(content); + let bytes: Array = []; + for (let i = 0; i < code.length; i++) { + const char: string = code.charAt(i); + if (char === '%') { + const hex: string = code.charAt(i + 1) + code.charAt(i + INDEX); + const hexValue: number = Math.floor(Number(hex)); + // const hexValue: number = parseInt(hex, RADIX); + bytes.push(hexValue); + i += INDEX; + } else { + bytes.push(char.charCodeAt(0)); + } + } + return bytes; +} + +export function strToArrayBuffer(text: string): ArrayBuffer { + const bytes: number[] = strToUtf8Bytes(text); + const buffer: ArrayBuffer = new ArrayBuffer(bytes.length); + const bufView: DataView = new DataView(buffer); + for (let i: number = 0; i < bytes.length; i++) { + bufView.setUint8(i, bytes[i]); + } + return buffer; +} + +export async function sleep(times: number): Promise { + if (!times) { + times = SLEEP_TIME; + } + await new Promise((res) => setTimeout(res, times)); +} + +export function randomString(num: number, chars: string): string { + let len = num; + let maxPos = chars.length; + let pwd = ''; + for (let i = 0; i < len; i++) { + pwd += chars.charAt(Math.floor(Math.random() * maxPos)); + } + return pwd; +} + +export function bufferToString(buffer: ArrayBuffer): string { + let textDecoder = new util.TextDecoder('utf-8', { + ignoreBOM: true + }); + let resultPut = textDecoder.decodeWithStream(new Uint8Array(buffer), { + stream: true + }); + return resultPut; +} + +export function stringToBuffer(content: string): Uint8Array { + let textEncoder = new util.TextEncoder('utf-8'); + let resultBuf = textEncoder.encodeInto(content); + return resultBuf; +} + +export { + describe, it, expect, Logger +}; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Logger.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Logger.ts new file mode 100644 index 00000000..8a8540de --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/common/Logger.ts @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 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 hilog from '@ohos.hilog'; + +/** + * Common log for all features. + */ +export class Logger { + private domain: number; + private prefix: string; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + } + + debug(...args: string[]): void { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]): void { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]): void { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]): void { + hilog.error(this.domain, this.prefix, this.format, args); + } + + fatal(...args: string[]): void { + hilog.fatal(this.domain, this.prefix, this.format, args); + } + + isLoggable(level: number): void { + hilog.isLoggable(this.domain, this.prefix, level); + } +} + +export default new Logger('[Sample_ConcurrentModule]'); + diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/SendableTest.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/SendableTest.ets new file mode 100644 index 00000000..aa5c9fa9 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/SendableTest.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2024 Huawei Device 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 { TestA, TestB } from './test' + +@Sendable +export class SendableClass { + data1: TestA = new TestA(); + data2: TestB = new TestB(); + + constructor() { + } +} + +export let a: SendableClass = new SendableClass(); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/TaskPoolTab.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/TaskPoolTab.ets new file mode 100644 index 00000000..3c31ad51 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/TaskPoolTab.ets @@ -0,0 +1,430 @@ +/* + * Copyright (c) 2024 Huawei Device 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 taskpool from '@ohos.taskpool'; +import utils from '@arkts.utils'; +import stack from '@ohos.util.Stack'; +import { BusinessError } from '@ohos.base'; +import { SendableClass, a } from './SendableTest'; +import { TestA, TestB } from './test' + +@Component +export struct TaskPoolTab { + @State taskPoolOutPutStr: string = ''; + @State taskPoolInPutStr: string = ''; + taskPoolInPutArr: string[] = []; + isTaskGroup : boolean = false; + gStack: stack = new stack(); + taskGroup: taskpool.TaskGroup = new taskpool.TaskGroup(); + + + build() { + Column() { + Text($r('app.string.Text_desc')) + .width("100%") + .height("48vp") + .position({ x: "7%", y: "0" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#182431") + .lineHeight(22) + .fontWeight(500) + + Button() { + Row() { + Image($r('app.media.public_add')) + .width(20) + .height(20) + .margin({ left: 4 }) + Text($r('app.string.Add_task')) + .width("75%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("14fp") + .fontColor("#182431") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + } + .id("addButton") + .height("10vp") + .borderRadius("10vp") + .backgroundColor("#00000000") + .position({ x: "67%", y: "1.5%" }) + .width(135) + .height(35) + .onClick(() => { + this.taskAdd(); + }) + + Button() { + Row() { + Image($r('app.media.empties')) + .width(20) + .height(20) + .margin({ left: 4 }) + Text($r('app.string.Clear_desc')) + .width("35%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("14fp") + .fontColor("#182431") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + } + .id("taskPoolClearButton") + .height("10vp") + .borderRadius("10vp") + .backgroundColor("#00000000") + .position({ x: "71%", y: "31.5%" }) + .width(135) + .height(35) + .onClick(() => { + this.Clear(); + }) + + TextArea({placeholder:$r('app.string.Default_desc'), text:this.taskPoolInPutStr}) + .id("taskPoolInPutTextArea") + .width("93.3%") + .height("139vp") + .position({ x: "3.3%", y: "48vp" }) + .textAlign(TextAlign.Start) + .borderRadius("24vp") + .backgroundColor("#ffffff") + .fontFamily("HarmonyHeiTi") + .fontSize("16fp") + .fontColor("#182431") + .fontWeight(400) + .padding({ top: "8vp" , left: "16vp", right: "16vp", bottom: "21vp" }) + .onChange((value: string) => { + this.taskPoolInPutStr = value; + this.taskPoolInPutArr = this.taskPoolInPutStr.trim().split(','); + this.taskPoolOutPutStr = ''; + }) + + Text($r('app.string.Result_desc')) + .width("50%") + .height("48") + .position({ x: "7%", y: "187vp" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#182431") + .lineHeight(22) + .fontWeight(500) + + Scroll() { + Text(this.taskPoolOutPutStr) + .id("taskPoolOutPutText") + .fontFamily("HarmonyHeiTi") + .fontSize("16fp") + .fontColor("#182431") + .fontWeight(400) + .padding({ top: "8vp" , left: "16vp", right: "16vp", bottom: "21vp" }) + } + .id("taskPoolOutPutScroll") + .width("93.3%") + .height("139vp") + .position({ x: "3.3%", y: "235vp" }) + .borderRadius("24vp") + .backgroundColor("#ffffff") + .align(Alignment.TopStart) + + GridRow({columns: 4, + gutter: { x: 12, y: 12 }, + breakpoints: { value: ["360vp", "480vp"]}, + direction: GridRowDirection.Row}) { + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.Execute_After_3s_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#007DFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("exeDelayButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("rgba(24,36,49,0.05)") + .onClick(()=>{ + this.executeDelay(); + }) + } + + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.Execute_Immediately_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#FFFFFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("exeImmButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("#007DFF") + .onClick(()=>{ + if(this.isTaskGroup == true) { + this.TaskGroupExec(); + } else { + this.executeImmediately(); + } + }) + } + + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.Function_Task_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#007DFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("exeFunctionButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("rgba(24,36,49,0.05)") + .onClick(()=>{ + this.executeFunc(); + }) + } + + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.Cancel_Task_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#FFFFFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("exeCancelButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("#007DFF") + .onClick(()=>{ + this.cancelTask(); + }) + } + + GridCol ({ span: 4, offset: 0 }) { + Button() { + Text($r('app.string.transferSendableClass')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#007DFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("sendableButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("rgba(24,36,49,0.05)") + .onClick(()=>{ + this.sendableTask(); + }) + } + } + .width("100%") + .height("168vp") + .position({ x: "0", y: "73%" }) + .padding({ left: "25vp", right: "25vp" }) + } + .width("100%") + .height("100%") + .justifyContent(FlexAlign.Center) + } + + async executeImmediately(): Promise { + if (!this.taskPoolInPutStr.length) { + this.taskPoolOutPutStr = "No input for the string to be sorted.\n"; + return; + } + let task = new taskpool.Task(strSort,this.taskPoolInPutArr); + this.gStack.push(task); + try { + let result: taskpool.Task = await taskpool.execute(task) as taskpool.Task; + this.taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + this.taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + this.gStack.pop(); + } + + async executeDelay(): Promise { + if (!this.taskPoolInPutStr.length) { + this.taskPoolOutPutStr = "No input for the string to be sorted.\n"; + return; + } + let task = new taskpool.Task(strSortDelay,this.taskPoolInPutArr); + this.gStack.push(task); + try { + let result: string[] = await taskpool.execute(task) as string[]; + this.taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + this.taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString() + "\n"; + } + this.gStack.pop(); + } + + async executeFunc(): Promise { + if (!this.taskPoolInPutStr.length) { + this.taskPoolOutPutStr = "No input for the string to be sorted.\n"; + return; + } + try { + let result: string[] = await taskpool.execute(strSort,this.taskPoolInPutArr) as string[]; + this.taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + this.taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + } + + async taskAdd(): Promise { + if (!this.taskPoolInPutStr.length) { + this.taskPoolOutPutStr = "No input for the string to be sorted.\n"; + return; + } + try { + let task: taskpool.Task = new taskpool.Task(strSort, this.taskPoolInPutArr); + this.taskGroup.addTask(task); + this.isTaskGroup = true; + this.taskPoolOutPutStr += "TaskGroup addTask successfully.\n"; + } catch (e) { + this.taskPoolOutPutStr += "TaskGroup addTask failed: "+ (e as BusinessError).toString()+ "\n"; + } + } + + Clear(): void { + this.taskPoolInPutStr = ''; + this.taskPoolInPutArr = this.taskPoolInPutStr.trim().split(','); + this.taskPoolOutPutStr = ''; + } + + async TaskGroupExec(): Promise { + try { + let res: string[] = await taskpool.execute(this.taskGroup) as string[]; + this.taskPoolOutPutStr += "TaskGroup executed successfully: "+ res.toString()+ "\n"; + } catch(e) { + this.taskPoolOutPutStr += "TaskGroup executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + this.isTaskGroup = false; + } + + async cancelTask(): Promise { + if (this.gStack.isEmpty()) { + this.taskPoolOutPutStr += "The current task queue has no cancellable tasks."+ "\n"; + } else { + let task: taskpool.Task = this.gStack.peek() as taskpool.Task; + try { + taskpool.cancel(task); + this.taskPoolOutPutStr += "Task canceled successfully."+ "\n"; + this.gStack.pop(); + } catch(e) { + this.taskPoolOutPutStr += "Task canceled failed: "+ (e as BusinessError).toString()+ "\n"; + } + } + } + + async sendableTask(): Promise { + // 定义主线程异步锁sendableTask_lock + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("sendableTask_lock"); + let count: number = 0; + lock.lockAsync(async () => { + // 主线程调用实例a.data1的方法setCount、getCount + a.data1.setCount(111); + count = await a.data1.getCount(); + console.info("this data1 count is: " + await a.data1.getCount()); + }) + let task: taskpool.Task = new taskpool.Task(createSendableData, a); + try { + await taskpool.execute(task); + this.taskPoolOutPutStr += "sendableTask execute successfully."+ "\n"; + // 访问子线程返回的实例a中的各个属性 + this.taskPoolOutPutStr += "Sendable data TestA v1 is: " + a.data1.v1 + "\n"; + this.taskPoolOutPutStr += "Sendable data TestA v2 is: " + a.data1.v2 + "\n"; + this.taskPoolOutPutStr += "Sendable data TestA v3 is: " + a.data1.v3 + "\n"; + this.taskPoolOutPutStr += "Sendable data TestA count is: " + count + "\n"; + this.taskPoolOutPutStr += "Sendable data TestB v1 length is: " + a.data2.v1.length + "\n"; + this.taskPoolOutPutStr += "Sendable data TestB v2 has key: " + a.data2.v2.has(100) + "\n"; + this.taskPoolOutPutStr += "Sendable data TestB v3 size is: " + a.data2.v3.size + "\n"; + } catch(e) { + this.taskPoolOutPutStr += "Task execute failed: "+ (e as BusinessError).toString()+ "\n"; + } + } +} + +@Concurrent +function strSort(inPutArr: string[]) : string[] { + let newArr: string[] = inPutArr.sort(); + return newArr; +} + +@Concurrent +function strSortDelay(inPutArr: string[]) : string[] { + let start: number= new Date().getTime(); + while (new Date().getTime() - start < 3000) { + continue; + } + let newArr: string[] = inPutArr.sort(); + return newArr; +} + +@Concurrent +async function createSendableData(data: SendableClass): Promise { + // 定义taskpool子线程异步锁sendableTask_lock + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("sendableTask_lock"); + + // 构造TestA、TestB实例,组装SendableClass实例 + let d1: TestA = new TestA(); + d1.v1 = 1010; + d1.v2 = "aaa"; + d1.v3 = true; + let d2: TestB = new TestB(); + d2.v2.set(100, "aaa"); + for(let i = 0;i < 1000;i++) { + d2.v1.push(i); + } + d2.v3.add("hello"); + + lock.lockAsync(async () => { + // 子线程调用实例方法setCount、getCount + await d1.setCount(10); + console.info("taskpool: this data1 count is: " + await d1.getCount()); + }) + + data.data1 = d1; + data.data2 = d2; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/WorkerTab.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/WorkerTab.ets new file mode 100644 index 00000000..1f8c1885 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/WorkerTab.ets @@ -0,0 +1,168 @@ +/* + * Copyright (c) 2023 Huawei Device 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 worker from '@ohos.worker'; + +@Component +export struct WorkerTab { + @State jsWorkerOutPutStr: string = ''; + @State jsWorkerInPutStr: string = ''; + jsWorkerInPutArr: string[] = []; + isDone: boolean = false; + myWorker: worker.ThreadWorker = new worker.ThreadWorker("entry/ets/workers/Worker.ts"); + + build() { + Column() { + Text($r('app.string.Text_desc')) + .width("100%") + .height("48vp") + .position({ x: "7%", y: "0vp" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#182431") + .lineHeight(22) + .fontWeight(500) + + TextArea({text:this.jsWorkerInPutStr}) + .id("jsWorkerInPutTextArea") + .width("93.3%") + .height("139vp") + .position({ x: "3.3%", y: "48vp" }) + .textAlign(TextAlign.Start) + .fontFamily("HarmonyHeiTi") + .fontSize("16fp") + .fontColor("#182431") + .fontWeight(400) + .padding({ top: "8vp" , left: "16vp", right: "16vp", bottom: "21vp" }) + .borderRadius("24vp") + .backgroundColor("#ffffff") + .onChange((value: string) => { + this.jsWorkerInPutStr = value; + this.jsWorkerInPutArr = value.trim().split(','); + this.jsWorkerOutPutStr = ''; + }) + + Text($r('app.string.Result_desc')) + .width("100%") + .height("48") + .position({ x: "7%", y: "187vp" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#182431") + .lineHeight(22) + .fontWeight(500) + + Scroll() { + Text(this.jsWorkerOutPutStr) + .id("jsWorkerOutPutText") + .fontFamily("HarmonyHeiTi") + .fontSize("16fp") + .fontColor("#182431") + .fontWeight(400) + .padding({ top: "8vp" , left: "16vp", right: "16vp", bottom: "21vp" }) + } + .id("jsWorkerOutPutScroll") + .width("93.3%") + .height("139vp") + .position({ x: "3.3%", y: "235vp" }) + .borderRadius("24vp") + .backgroundColor("#ffffff") + .align(Alignment.TopStart) + + GridRow({columns: 4, + gutter: { x: 12, y: 12 }, + breakpoints: { value: ["360vp", "480vp"]}, + direction: GridRowDirection.Row}) { + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.Clear_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#007DFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("workerClearButton") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("rgba(24,36,49,0.05)") + .onClick(()=>{ + this.jsWorkerInPutStr = ''; + this.jsWorkerOutPutStr = ''; + }) + } + + GridCol ({ span: 2, offset: 0 }) { + Button() { + Text($r('app.string.SortString_desc')) + .width("100%") + .height("22") + .fontFamily("HarmonyHeiTi-Medium") + .fontSize("16fp") + .fontColor("#FFFFFF") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(500) + } + .id("workerStrSort") + .height("40vp") + .borderRadius("20vp") + .backgroundColor("#007DFF") + .onClick(()=>{ + this.executeWorkerFunc(this.jsWorkerInPutArr); + }) + } + } + .width("100%") + .height("40vp") + .position({ x: "0", y: "555vp" }) + .padding({ left: "24vp", right: "24vp" }) + } + .width("100%") + .height("100%") + .justifyContent(FlexAlign.Center) + } + + async executeWorkerFunc(inPutArr: string[]): Promise { + if (!this.jsWorkerInPutStr.length) { + this.jsWorkerOutPutStr = "No input for the string to be sorted.\n"; + return; + } + this.myWorker.postMessage(inPutArr); + let strFlag = false; + let outPutStr = ''; + this.myWorker.onmessage = (e) => { + outPutStr = e.data.toString(); + strFlag = true; + } + while(!strFlag) { + await promiseCase(); + } + this.jsWorkerOutPutStr = outPutStr; + } +} + +function promiseCase() : Promise { + let p: Promise = new Promise((resolve: Function, reject: Function) => { + setTimeout(() => { + resolve(1) + }, 100) + }).then(undefined, () => { + }) + return p; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/test.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/test.ets new file mode 100644 index 00000000..f27d7187 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/component/test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2024 Huawei Device 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 collections from '@arkts.collections'; +import utils from '@arkts.utils'; +@Sendable +export class TestA { + v1: number = 0; + v2: string = ""; + v3: boolean = false; + count_: number = 0; + async getCount(): Promise { + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("lock_1"); + return lock.lockAsync(() => { + return this.count_; + }) + } + async setCount(count: number) { + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("lock_1"); + await lock.lockAsync(() => { + this.count_ = count; + }) + } + + constructor() { + } +} + + +@Sendable +export class TestB { + v1: collections.Array = new collections.Array(); + v2: collections.Map = new collections.Map(); + v3: collections.Set = new collections.Set(); + + constructor() { + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/entryability/EntryAbility.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 00000000..22bae535 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,113 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import hilog from '@ohos.hilog'; +import window from '@ohos.window'; +import Want from '@ohos.app.ability.Want'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; +import { BusinessError } from '@ohos.base'; + + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onCreate'); + } + + onDestroy() { + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + // Main window is created, set main page for this ability + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); + let filesDir = this.context.filesDir; + AppStorage.SetOrCreate('sanBoxFileDir', filesDir); + this.getResourceStr(); + 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) ?? ''); + }); + } + + getResourceStr(): void { + try { + this.context.resourceManager.getStringValue($r('app.string.workerLog1').id) + .then(value => { + AppStorage.SetOrCreate('copyFileLog1', value); + hilog.info(0x0000, 'testTag', '%{public}s', 'getStringValue value' + value); + }) + .catch((error: BusinessError) => { + hilog.error(0x0000, 'testTag', 'Failed to getStringValue. Cause: %{public}s', error ?? ''); + }); + + this.context.resourceManager.getStringValue($r('app.string.workerLog2').id) + .then(value => { + AppStorage.SetOrCreate('copyFileLog2', value); + hilog.info(0x0000, 'testTag', '%{public}s', 'getStringValue value' + value); + }) + .catch((error: BusinessError) => { + hilog.error(0x0000, 'testTag', 'Failed to getStringValue. Cause: %{public}s', error ?? ''); + }); + + this.context.resourceManager.getStringValue($r('app.string.workerLog3').id) + .then(value => { + AppStorage.SetOrCreate('copyFileLog3', value); + hilog.info(0x0000, 'testTag', '%{public}s', 'getStringValue value' + value); + }) + .catch((error: BusinessError) => { + hilog.error(0x0000, 'testTag', 'Failed to getStringValue. Cause: %{public}s', error ?? ''); + }); + + this.context.resourceManager.getStringValue($r('app.string.workerLog4').id) + .then(value => { + AppStorage.SetOrCreate('copyFileLog4', value); + hilog.info(0x0000, 'testTag', '%{public}s', 'getStringValue value' + value); + }) + .catch((error: BusinessError) => { + hilog.error(0x0000, 'testTag', 'Failed to getStringValue. Cause: %{public}s', error ?? ''); + }); + + this.context.resourceManager.getStringValue($r('app.string.workerLog5').id) + .then(value => { + AppStorage.SetOrCreate('copyFileLog5', value); + hilog.info(0x0000, 'testTag', '%{public}s', 'getStringValue value' + value); + }) + .catch((error: BusinessError) => { + hilog.error(0x0000, 'testTag', 'Failed to getStringValue. Cause: %{public}s', error ?? ''); + }); + } catch (error) { + hilog.error(0x0000, 'testTag', 'callback getStringValue failed. Cause: %{public}s', error.message ?? ''); + } + } + + onWindowStageDestroy() { + // Main window is destroyed, release UI related resources + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageDestroy'); + } + + onForeground() { + // Ability has brought to foreground + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onForeground'); + } + + onBackground() { + // Ability has back to background + hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/fileFs/MyWorker.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/fileFs/MyWorker.ets new file mode 100644 index 00000000..bddb9f83 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/fileFs/MyWorker.ets @@ -0,0 +1,198 @@ +/* + * Copyright (c) 2023 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 worker from '@ohos.worker'; +import fs from '@ohos.file.fs'; +import { Logger, sleep } from '../common/Common'; +import { BusinessError } from '@ohos.base'; + +const CONTENT = 'hello world'; +const TAG: string = '[ConcurrentModule].[MyWorker]'; +const FILE_NUM: number = 200; // 预制200 1m以下的小文件 +const FILE_NUMBER: number = 9; // 文件1-9命名时加上0 +const LIST_FILE_TWO: number = 2; // 显示拷贝成功后的第二个文件名 +const SLEEP_TIME: number = 100; // 睡眠时间 + +let workerInstance: worker.ThreadWorker | null = null; +let fileFlag: boolean = false; + +export default class MyFile { + public baseDir: string | undefined = ''; + public filesCount: number = 0; + private flag: boolean = false; + public realFileNames: Array = []; + + constructor() { + this.baseDir = AppStorage.Get('sanBoxFileDir'); + } + + readyFileToFileFs(): void { + let fileFsDir = this.baseDir + '/fileFs'; + try { + if (!fs.accessSync(fileFsDir)) { + fs.mkdirSync(fileFsDir); + } + Logger.info(TAG, 'readyFileToFileFs successful'); + } catch (e) { + Logger.error(TAG, `readyFileToFileFs has failed for: {message: ${(e as BusinessError).message}, code: ${(e as BusinessError).code}}`); + } + } + + // worker file + readyFilesToWorker(): void { + let content = CONTENT + CONTENT + new Date() + '\n'; + let workerDir = this.baseDir + '/workerDir'; + + try { + if (!fs.accessSync(workerDir)) { + fs.mkdirSync(workerDir); + } + Logger.info(TAG, 'readyFilesToWorker dpath = ' + workerDir); + for (let i = 0; i < FILE_NUM; i++) { + let myFile = ''; + if (i < FILE_NUMBER) { + myFile = workerDir + `/TestFile0${i + 1}.txt`; + } else { + myFile = workerDir + `/TestFile${i + 1}.txt`; + } + Logger.info(TAG, 'readyFilesToWorker myFile = ' + myFile); + let file = fs.openSync(myFile, fs.OpenMode.CREATE | fs.OpenMode.READ_WRITE); + fs.writeSync(file.fd, content); + fs.closeSync(file); + } + Logger.info(TAG, 'readyFilesToWorker successful'); + } catch (e) { + Logger.error(TAG, `readyFilesToWorker has failed for: {message: ${(e as BusinessError).message}, code: ${(e as BusinessError).code}}`); + } + } + + async workToCopyFiles(files: Array, filePath: string): Promise { + try { + Logger.info(TAG, 'WorkCreator start to create worker'); + let destPath = filePath; + Logger.info(TAG, 'Workerets destPath ' + destPath); + if (!fs.accessSync(destPath)) { + fs.mkdirSync(destPath); + } + if (fs.accessSync(destPath)) { + fs.listFile(destPath).then((filenames) => { + Logger.info(TAG, 'listFile succeed'); + for (let i = 0; i < filenames.length; i++) { + Logger.info(TAG, 'Workerets fileName: ' + filenames[i]); + } + }).catch((err: BusinessError) => { + Logger.info(TAG, 'list file failed with error message: ' + err.message + ', error code: ' + err.code); + }); + } + if (files !== null) { + this.realFileNames.length = 0; + for (let i = 0; i < files.length; i++) { + if (files[i] === 'deletedTag') { + continue; + } + this.realFileNames.push(files[i]); + } + } + let count = this.realFileNames.length; + for (let j = 0; j < count; j++) { + Logger.info(TAG, 'workToCopyFiles this.realFileNames = ' + this.realFileNames[j]); + } + workerInstance = new worker.ThreadWorker('entry/ets/workers/WorkerCopy.ts'); + if (this.realFileNames !== null) { + let srcPath = this.baseDir + '/workerDir'; + workerInstance.postMessage({ + srcDir: srcPath, + destDir: destPath, + fileNames: this.realFileNames + }); + } + + workerInstance.onexit = (code): void => { + Logger.info(TAG, `workerInstance::onexit has been exit ${code}`); + }; + workerInstance.onerror = (err): void => { + Logger.info(TAG, `workerInstance::onerror has errors: ${JSON.stringify(err)}`); + }; + workerInstance.onmessageerror = (event): void => { + Logger.info(TAG, `workerInstance::onmessageerror has errors: ${JSON.stringify(event)}`); + }; + workerInstance.onmessage = (message): void => { + Logger.info(TAG, `workerInstance::onmessage receive data: ${JSON.stringify(message.data)}`); + if (message.data.hasOwnProperty('count')) { + Logger.info(TAG, `workerInstance::onmessage receive data length = ${message.data.count}`); + this.filesCount = message.data.count; + fileFlag = message.data.strFlag; + this.flag = true; + let fileName1: string | null = null; + let fileName2: string | null = null; + for (let i: number = 0; i < message.data.listFileNames.length; i++) { + Logger.info(TAG, `Worker workerInstance::onmessage receive listFileNames: ${message.data.listFileNames[i]}`); + } + if (message.data.listFileNames[0] !== undefined && message.data.listFileNames[1] !== undefined && message.data.listFileNames[LIST_FILE_TWO] === undefined) { + fileName1 = message.data.listFileNames[0] + '、'; + fileName2 = message.data.listFileNames[1]; + } else if (message.data.listFileNames[0] !== undefined && message.data.listFileNames[1] === undefined) { + fileName1 = message.data.listFileNames[0]; + fileName2 = ''; + } else { + fileName1 = message.data.listFileNames[0] + '、'; + let copyFileLog: string | undefined = AppStorage.Get('copyFileLog5'); + fileName2 = message.data.listFileNames[1] + copyFileLog; + } + AppStorage.SetOrCreate('fileListName1', fileName1); + AppStorage.SetOrCreate('fileListName2', fileName2); + let copyFileLog3: string | undefined = AppStorage.Get('copyFileLog3'); + let copyFileLog4: string | undefined = AppStorage.Get('copyFileLog4'); + let copyFileLog = '2、' + fileName1 + fileName2 + copyFileLog3 + 'copy' + copyFileLog4; + if (fileName1 !== 'undefined、') { + AppStorage.SetOrCreate('copyFileShowLog', copyFileLog); + } else { + AppStorage.SetOrCreate('copyFileShowLog', $r('app.string.workerLogChooseFile')); + } + Logger.info(TAG, `Worker workerInstance::onmessage receive count: ${JSON.stringify(this.filesCount)}`); + } + if (this.filesCount !== 0) { + AppStorage.SetOrCreate('fileNumber', JSON.stringify(this.filesCount)); + } else { + AppStorage.SetOrCreate('fileNumber', '0'); + AppStorage.SetOrCreate('fileListName1', ''); + AppStorage.SetOrCreate('fileListName2', ''); + } + Logger.info(TAG, 'workerInstance::onmessage Finish to process data from WorkerCopy.ts'); + workerInstance?.terminate(); + }; + while (!fileFlag) { + await sleep(SLEEP_TIME); + } + } catch (e) { + Logger.error(TAG, `Worker WorkCreator error package: message: ${(e as BusinessError).message}, code: ${(e as BusinessError).code}`); + } + } + + deleteCopyFile(filePath: string): void { + Logger.info(TAG, 'deleteCopyFile destCopyFilePath = ' + filePath); + try { + if (fs.accessSync(filePath)) { + let isDirectory = fs.statSync(filePath).isDirectory(); + if (isDirectory) { + fs.rmdirSync(filePath); + fs.mkdirSync(filePath); + } + } + } catch (e) { + Logger.error(TAG, `delete workerCopyFile error package: message: ${(e as BusinessError).message}, code: ${(e as BusinessError).code}`); + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/CopyFile.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/CopyFile.ets new file mode 100644 index 00000000..f30e1dfc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/CopyFile.ets @@ -0,0 +1,253 @@ +/* + * Copyright (c) 2023 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 MyWorker from '../fileFs/MyWorker'; +import common from '@ohos.app.ability.common'; +import fs from '@ohos.file.fs'; +import router from '@ohos.router'; +import { Logger } from '../common/Common'; + +const TAG: string = '[ConcurrentModule].[CopyFile]'; +@Entry +@Component +struct Watcher { + @State message: Resource = $r('app.string.copyFileText'); + @State myContext: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + @State filePathSize: Array = []; + @State showFilePath: Array = []; + @State eventFilePath: Array = []; + @State fileListNames: Array = []; + @StorageLink('fileNumber') fileNum: string = '0'; + @StorageLink('fileListName1') fileListName1: string = ' '; + @StorageLink('fileListName2') fileListName2: string = ''; + @StorageLink('copyFileLog1') copyFileLog1: string = ''; + @StorageLink('copyFileLog2') copyFileLog2: string = ''; + @StorageLink('copyFileLog3') copyFileLog3: string = ''; + @StorageLink('copyFileLog4') copyFileLog4: string = ''; + @StorageLink('copyFileShowLog') copyFileShowLog: string = ''; + myWorker: MyWorker = new MyWorker(); + scroller: Scroller = new Scroller(); + public dirPath: string = ''; + public baseDir: string | undefined = AppStorage.Get('sanBoxFileDir'); + + onPageShow() { + this.myWorker.readyFilesToWorker(); + let filePathDir = this.baseDir + '/workerDir'; + let filenames = fs.listFileSync(filePathDir); + Logger.info(TAG, 'listFile succeed'); + for (let i = 0; i < filenames.length; i++) { + Logger.info(TAG, 'filename: %s', filenames[i]); + this.showFilePath[i] = filenames[i]; + let filePath = filePathDir + '/' + filenames[i] + this.filePathSize[i] = fs.statSync(filePath).size; + } + this.dirPath = this.baseDir + '/workerCopy'; + if (!fs.accessSync(this.dirPath)) { + fs.mkdirSync(this.dirPath); + } + } + + onPageHide() { + this.dirPath = this.baseDir + '/workerCopy'; + let isDirectory = fs.statSync(this.dirPath).isDirectory(); + if (isDirectory) { + fs.rmdirSync(this.dirPath); + AppStorage.SetOrCreate('fileNumber', '0'); + AppStorage.SetOrCreate('fileListName1', ''); + AppStorage.SetOrCreate('fileListName2', ''); + AppStorage.SetOrCreate('copyFileShowLog', ''); + } + let filePathDir = this.baseDir + '/workerDir'; + let isDir = fs.statSync(filePathDir).isDirectory(); + if (isDir) { + fs.rmdirSync(filePathDir); + } + } + + build() { + Scroll(this.scroller) { + Row() { + Column() { + Row() { + Image($r('app.media.ic_back')) + .id('backIndex2') + .width(20) + .height(18) + .align(Alignment.Start) + .margin({ top: 13, bottom: 15, left: 26, right: 18 }) + .onClick(() => { + router.back(); + }) + Text(this.message) + .fontSize(20) + .fontColor('#182431') + .textAlign(TextAlign.Start) + .lineHeight(28) + .fontWeight(700) + .margin({ top: 13, bottom: 15 }) + } + .width('100%') + .height(56) + .backgroundColor('#f1f3f5') + .align(Alignment.Start) + + Flex({ direction: FlexDirection.Column }) { + + Column() { + Row() { + Row() { + Text($r('app.string.workerTitleText')) + .fontSize(14) + .margin({ top: 19.5, bottom: 9.5 }) + .lineHeight(19) + .width(176) + .fontColor('#182431') + .fontWeight(500) + .textAlign(TextAlign.Start) + } + .width('100%') + .backgroundColor('#f1f3f5') + } + .margin({ left: 24, right: 52 }) + .height(48) + .backgroundColor('#f1f3f5') + + Column() { + List({ space: 12, initialIndex: 0 }) { + ForEach(this.showFilePath, (item: string, index: number) => { + ListItem() { + Row() { + Text(item) + .fontSize(16) + .fontColor('#182431') + .width('86%') + .lineHeight(22) + .textAlign(TextAlign.Start) + .fontWeight(500) + .margin({ left: 12 }) + .borderRadius(10) + .backgroundColor(0xFFFFFF) + Row() { + Checkbox() + .select(false) + .id('checkbox' + index) + .width(20) + .height(20) + .margin({ right: 12 }) + .selectedColor('#007DFF') + .borderRadius(4) + .onChange((value: boolean) => { + Logger.info(TAG, 'Checkbox1 change is' + value); + if (value) { + Logger.info(TAG, 'Workerets Checkbox1 index ' + index + ' is true'); + this.eventFilePath.push(this.showFilePath[index]); + } else { + for (let i: number = 0; i < this.eventFilePath.length; i++) { + if (this.eventFilePath[i] === this.showFilePath[index]) { + this.eventFilePath[i] = 'deletedTag'; + } + } + } + }) + } + .id('row' + index) + .width('9%') + } + .borderRadius(20) + .margin({ left: 12, right: 12 }) + .height(56) + .backgroundColor(0xFFFFFF) + } + .id('listItem') + }, (item: string) => item) + } + .id('listWorkerFile') + .alignListItem(ListItemAlign.Center) + .scrollBar(BarState.Auto) + } + .backgroundColor('#f1f3f5') + .height(436) + .align(Alignment.Center) + + Column() { + Row() { + Text($r('app.string.logTitle')) + .fontSize(14) + .fontColor('#182431') + .textAlign(TextAlign.Start) + .lineHeight(19) + .fontWeight(500) + .margin({ top: 19.5, left: 24 }) + .width(176) + } + .width('100%') + .align(Alignment.Start) + + Column() { + Column() { + Text(this.copyFileLog1 + this.fileNum + this.copyFileLog2) + .fontSize(16) + .fontColor('#182431') + .fontWeight(400) + .width('100%') + Text(this.copyFileShowLog) + .fontSize(16) + .id("copyFileLog") + .fontColor('#182431') + .fontWeight(400) + .width('100%') + } + .margin({ top: 8, left: 12, right: 12, bottom: 8 }) + .height(64) + } + .borderRadius(20) + .height(80) + .margin({ top: 9.5, left: 16, right: 16 }) + .backgroundColor('#ffffff') + + Row({ space: 1 }) { + Column() { + Button($r('app.string.copyFileText')) + .fontSize(16) + .width(312) + .height(40) + .fontColor('#FFFFFF') + .fontWeight(500) + .id('copyFile') + .onClick(async () => { + this.myWorker.deleteCopyFile(this.dirPath); + await this.myWorker.workToCopyFiles(this.eventFilePath, this.dirPath); + }) + } + .width('100%') + .align(Alignment.End) + } + .align(Alignment.Center) + .width('100%') + .margin({ top: 24, left: 24, right: 24, bottom: 24 }) + } + .backgroundColor('#f1f3f5') + .width('100%') + .height(216) + } + .backgroundColor('#f1f3f5') + .width('100%') + } + .width('100%') + } + .height('100%') + } + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/Index.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/Index.ets new file mode 100644 index 00000000..aa691681 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2023 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 router from '@ohos.router'; +import { Logger } from '../common/Common'; +import fs from '@ohos.file.fs'; + +@Entry +@Component +struct Index { + scroller: Scroller = new Scroller(); + + build() { + Scroll(this.scroller) { + Row() { + Column() { + Button($r('app.string.strSortText')) + .fontSize(16) + .fontColor('#FFFFFF') + .fontWeight(500) + .padding(15) + .margin(10) + .width('300') + .height('60') + .id('strSort') + .onClick(() => { + router.pushUrl({ + url: 'pages/StrSort', + params: { + data: 'message', + } + }, router.RouterMode.Standard); + }) + + Button($r('app.string.copyFileText')) + .fontSize(16) + .fontColor('#FFFFFF') + .fontWeight(500) + .padding(15) + .margin(10) + .width('300') + .height('60') + .id('fileCopy') + .onClick(() => { + router.pushUrl({ + url: 'pages/CopyFile', + params: { + data3: 'message', + } + }, router.RouterMode.Standard); + }) + } + .width('100%') + } + .backgroundColor('#f1f3f5') + .height('100%') + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/StrSort.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/StrSort.ets new file mode 100644 index 00000000..d1bf9672 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/pages/StrSort.ets @@ -0,0 +1,134 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { WorkerTab } from '../component/WorkerTab'; +import { TaskPoolTab } from '../component/TaskPoolTab'; + +@Entry +@Component +struct Index { + private controller: TabsController = new TabsController(); + @State index: number = 0; + + @Builder tabJsWorker() { + Column() { + Text("Worker") + .width("57vp") + .height("22vp") + .position({ x: "0vp", y: "17vp" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize(16) + .fontColor(this.index === 0 ? "#007DFF" : "#182431") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(this.index === 0 ? 500 : 400) + .opacity(this.index === 0 ? 1 : 0.6) + Line() + .width("57vp") + .height("2vp") + .position({ x: "0", y: "46vp" }) + .backgroundColor(this.index === 0 ? "#007DFF" : "linear-gradient(269deg,rgba(0,0,0,0.00)%,#FFFFFF 10%)") + } + .id("tabJsWorker") + .width("100%") + .height("100%") + .position({ x: "65%", y: "0vp" }) + .onClick(() => { + this.index = 0; + this.controller.changeIndex(this.index); + }) + } + + @Builder tabTaskPool() { + Column() { + Text("TaskPool") + .width("68vp") + .height("22vp") + .position({ x: "10vp", y: "17vp" }) + .fontFamily("HarmonyHeiTi-Medium") + .fontSize(16) + .fontColor(this.index === 1 ? "#007DFF" : "#182431") + .textAlign(TextAlign.Center) + .lineHeight(22) + .fontWeight(this.index === 1 ? 500 : 400) + .opacity(this.index === 1 ? 1 : 0.6) + Line() + .width("68vp") + .height("2vp") + .position({ x: "10vp", y: "46vp" }) + .backgroundColor(this.index === 1 ? "#007DFF" : "linear-gradient(269deg,rgba(0,0,0,0.00)%,#FFFFFF 10%)") + } + .id("tabTaskPool") + .height("100%") + .width("100%") + .position({ x: "4%", y: "0" }) + .onClick(() => { + this.index = 1; + this.controller.changeIndex(this.index); + }) + } + + build() { + Row() { + Column() { + Text("ConcurrentModule") + .width("100%") + .height("41vp") + .position({ x: "7%", y: "31vp" }) + .fontColor("#182431") + .fontSize("30fp") + .fontFamily("HarmonyHeiTi-Bold") + .lineHeight(41) + .fontWeight(700) + .textAlign(TextAlign.Start) + + Tabs({ + barPosition: BarPosition.Start, + controller: this.controller + }) { + TabContent() { + WorkerTab(); + } + .width("100%") + .height("100%") + .tabBar(this.tabJsWorker) + + TabContent() { + TaskPoolTab(); + } + .width("100%") + .height("100%") + .tabBar(this.tabTaskPool) + } + .width("100%") + .height("696vp") + .barWidth("100%") + .barHeight("56vp") + .position({ x: "0vp", y: "80vp" }) + .padding({ bottom: "24vp" }) + .backgroundImage("linear-gradient(269deg,rgba(0,0,0,0.00)%,#FFFFFF 10%)") + .barMode(BarMode.Fixed) + .onChange((index: number) => { + this.index = index; + }) + } + .backgroundColor("#f1f3f5") + .width("100%") + .height("100%") + } + .width("100%") + .height("100%") + } +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/Worker.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/Worker.ts new file mode 100644 index 00000000..9548948a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/Worker.ts @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 worker, { ThreadWorkerGlobalScope, MessageEvents, ErrorEvent } from '@ohos.worker'; + +let workerPort : ThreadWorkerGlobalScope = worker.workerPort; + +/** + * Defines the event handler to be called when the worker thread receives a message sent by the host thread. + * The event handler is executed in the worker thread. + * + * @param e message data + */ +workerPort.onmessage = function(e : MessageEvents) { + let oldArr = e.data; + let newArr = strSort(oldArr); + workerPort.postMessage(newArr); +} + +/** + * Defines the event handler to be called when the worker receives a message that cannot be deserialized. + * The event handler is executed in the worker thread. + * + * @param e message data + */ +workerPort.onmessageerror = function(e : MessageEvents) { + console.log("worker::error = " + e.data); +} + +/** + * Defines the event handler to be called when an exception occurs during worker execution. + * The event handler is executed in the worker thread. + * + * @param e error message + */ +workerPort.onerror = function(e : ErrorEvent) { +} + +function strSort(inPutArr) : string { + let newArr = inPutArr.sort(); + return newArr; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/WorkerCopy.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/WorkerCopy.ts new file mode 100644 index 00000000..a5dc1138 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/ets/workers/WorkerCopy.ts @@ -0,0 +1,67 @@ +/* + * Copyright (c) 2023 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 worker from '@ohos.worker'; +import type { ThreadWorkerGlobalScope } from '@ohos.worker'; +import Logger from '../common/Logger'; +import fs from '@ohos.file.fs'; + +const workerPort: ThreadWorkerGlobalScope = worker.workerPort; +const TAG: string = '[ConcurrentModule].[WorkerCopy]'; + +workerPort.onmessage = (message): void => { + let srcPath: string = null; + let destPath: string = null; + let fileNames: string = message.data.fileNames; + for (let i = 0; i < fileNames.length; i++) { + srcPath = message.data.srcDir + '/' + fileNames[i]; + Logger.info(TAG, ' srcPath ' + srcPath); + destPath = message.data.destDir + '/' + fileNames[i]; + Logger.info(TAG, ' destPath ' + destPath); + try { + fs.copyFileSync(srcPath, destPath); + let countTest = fs.listFileSync(message.data.destDir).length; + Logger.info(TAG, `Worker workerInstance::onmessage receive countTest: ${countTest}`); + } catch (e) { + Logger.error(TAG, 'WorkerCopy::copyFile has failed for: ' + JSON.stringify(e)); + } + } + let listFileNames = []; + listFileNames.length = 0; + try { + let count = fs.listFileSync(message.data.destDir).length; + let listFiles = fs.listFileSync(message.data.destDir); + Logger.info(TAG, 'listFile succeed'); + for (let i = 0; i < listFiles.length; i++) { + listFileNames[i] = listFiles[i]; + Logger.info(TAG, `Worker workerInstance::onmessage receive listFileNames: ${listFileNames[i]}`); + } + workerPort.postMessage({ + count: count, + strFlag: true, + listFileNames: listFileNames + }); + Logger.info(TAG, 'WorkerCopy::onmessage thread post message successfully'); + } catch (e) { + Logger.error(TAG, 'WorkerCopy::onmessage has failed for: ' + JSON.stringify(e)); + } +}; + +workerPort.onmessageerror = async (message): Promise => { + Logger.error(TAG, 'WorkerCopy::onmessageerror : ' + JSON.stringify(message)); +}; + +workerPort.onerror = (e): void => { + Logger.error(TAG, 'WorkerCopy::onerror : ' + JSON.stringify(e)); +}; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/module.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/module.json5 new file mode 100644 index 00000000..e42c2962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/module.json5 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "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:icon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/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/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000..98b1870e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/element/string.json @@ -0,0 +1,100 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ConcurrentModule" + }, + { + "name": "Text_desc", + "value": "enter the string to be sorted, separated by commas" + }, + { + "name": "Default_desc", + "value": "enter the string to be sorted" + }, + { + "name": "Add_task", + "value": "add task to taskGroup" + }, + { + "name": "Result_desc", + "value": "execution result" + }, + { + "name": "SortString_desc", + "value": "Sort String" + }, + { + "name": "Clear_desc", + "value": "Clear" + }, + { + "name": "Execute_After_3s_desc", + "value": "Execute After 3s" + }, + { + "name": "Execute_Immediately_desc", + "value": "Execute Immediately" + }, + { + "name": "Function_Task_desc", + "value": "Function Task" + }, + { + "name": "Cancel_Task_desc", + "value": "Cancel Task" + }, + { + "name": "strSortText", + "value": "String Sort Text" + }, + { + "name": "copyFileText", + "value": "CopyFile Text" + }, + { + "name": "workerTitleText", + "value": "Worker Title Text" + }, + { + "name": "logTitle", + "value": "Log Title" + }, + { + "name": "workerLog1", + "value": "Sandbox File Number" + }, + { + "name": "workerLog2", + "value": "Sandbox File Number Unit" + }, + { + "name": "workerLog3", + "value": "File" + }, + { + "name": "workerLog4", + "value": "Finish" + }, + { + "name": "workerLog5", + "value": "And So On" + }, + { + "name": "workerLogChooseFile", + "value": "Please select a file" + }, + { + "name": "transferSendableClass", + "value": "transfer SendableClass" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/c_Checkbox_Selected.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/c_Checkbox_Selected.svg new file mode 100644 index 00000000..a2c0c722 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/c_Checkbox_Selected.svg @@ -0,0 +1,8 @@ + + + c_Checkbox_Selected + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/empties.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/empties.svg new file mode 100644 index 00000000..15090669 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/empties.svg @@ -0,0 +1,24 @@ + + + empties + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_Checkbox_Selected_Enabled.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_Checkbox_Selected_Enabled.svg new file mode 100644 index 00000000..229a8197 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_Checkbox_Selected_Enabled.svg @@ -0,0 +1,24 @@ + + + ic_Checkbox_Selected_Enabled + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_back.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_back.svg new file mode 100644 index 00000000..5e82eaf2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_back.svg @@ -0,0 +1,13 @@ + + + ic_back + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward.svg new file mode 100644 index 00000000..837626b4 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward.svg @@ -0,0 +1,7 @@ + + + ic_backward + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward_right.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward_right.svg new file mode 100644 index 00000000..ffa29203 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_backward_right.svg @@ -0,0 +1,7 @@ + + + ic_backward_right + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_delete.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_delete.svg new file mode 100644 index 00000000..45ff3a08 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_delete.svg @@ -0,0 +1,14 @@ + + + ic_delete + + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_edit.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_edit.svg new file mode 100644 index 00000000..c844d3c5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_edit.svg @@ -0,0 +1,14 @@ + + + ic_edit + + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_ok.svg b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_ok.svg new file mode 100644 index 00000000..480dfdfc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/ic_ok.svg @@ -0,0 +1,13 @@ + + + ic_ok + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/icon.png b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 + + public_add + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/profile/main_pages.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 00000000..315cfa0b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,7 @@ +{ + "src": [ + "pages/StrSort", + "pages/Index", + "pages/CopyFile" + ] +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/en_US/element/string.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000..986ceb7f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,100 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ConcurrentModule" + }, + { + "name": "Text_desc", + "value": "enter the string to be sorted" + }, + { + "name": "Default_desc", + "value": "enter the string to be sorted, separated by commas" + }, + { + "name": "Add_task", + "value": "add task to taskGroup" + }, + { + "name": "Result_desc", + "value": "execution result" + }, + { + "name": "SortString_desc", + "value": "Sort String" + }, + { + "name": "Clear_desc", + "value": "Clear" + }, + { + "name": "Execute_After_3s_desc", + "value": "Execute After 3s" + }, + { + "name": "Execute_Immediately_desc", + "value": "Execute Immediately" + }, + { + "name": "Function_Task_desc", + "value": "Function Task" + }, + { + "name": "Cancel_Task_desc", + "value": "Cancel Task" + }, + { + "name": "strSortText", + "value": "String Sort Text" + }, + { + "name": "copyFileText", + "value": "CopyFile Text" + }, + { + "name": "workerTitleText", + "value": "Worker Title Text" + }, + { + "name": "logTitle", + "value": "Log Title" + }, + { + "name": "workerLog1", + "value": "Sandbox File Number" + }, + { + "name": "workerLog2", + "value": "Sandbox File Number Unit" + }, + { + "name": "workerLog3", + "value": "File" + }, + { + "name": "workerLog4", + "value": "Finish" + }, + { + "name": "workerLog5", + "value": "And So On" + }, + { + "name": "workerLogChooseFile", + "value": "Please select a file" + }, + { + "name": "transferSendableClass", + "value": "transfer SendableClass" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/zh_CN/element/string.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000..741184c6 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,100 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "模块描述" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "ConcurrentModule" + }, + { + "name": "Text_desc", + "value": "请输入待排序字符串" + }, + { + "name": "Default_desc", + "value": "请输入待排序字符串,并以逗号分割" + }, + { + "name": "Result_desc", + "value": "执行结果" + }, + { + "name": "Add_task", + "value": "添加至任务组" + }, + { + "name": "SortString_desc", + "value": "字符串排序" + }, + { + "name": "Clear_desc", + "value": "清除" + }, + { + "name": "Execute_After_3s_desc", + "value": "超时3s执行" + }, + { + "name": "Execute_Immediately_desc", + "value": "立即执行" + }, + { + "name": "Function_Task_desc", + "value": "函数任务" + }, + { + "name": "Cancel_Task_desc", + "value": "取消任务" + }, + { + "name": "strSortText", + "value": "字符串排序" + }, + { + "name": "copyFileText", + "value": "拷贝文件" + }, + { + "name": "workerTitleText", + "value": "公共目录下文件列表" + }, + { + "name": "logTitle", + "value": "触发事件后日志" + }, + { + "name": "workerLog1", + "value": "1、沙箱目录文件个数" + }, + { + "name": "workerLog2", + "value": "个" + }, + { + "name": "workerLog3", + "value": "文件" + }, + { + "name": "workerLog4", + "value": "完成" + }, + { + "name": "workerLog5", + "value": "等" + }, + { + "name": "workerLogChooseFile", + "value": "2、请选择文件" + }, + { + "name": "transferSendableClass", + "value": "传递SendableClass" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts new file mode 100644 index 00000000..27f45c4e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; +import TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; + +var abilityDelegator = undefined; +var abilityDelegatorArguments = undefined; + +async function onAbilityCreateCallback() { + hilog.info(0x0000, 'testTag', '%{public}s', 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + 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(); + var testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility'; + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback); + var cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName; + var debug = abilityDelegatorArguments.parameters['-D']; + if (debug == 'true') { + cmd += ' -D'; + } + hilog.info(0x0000, 'testTag', 'cmd : %{public}s', cmd); + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + hilog.info(0x0000, 'testTag', 'executeShellCommand : err : %{public}s', JSON.stringify(err) ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.stdResult ?? ''); + hilog.info(0x0000, 'testTag', 'executeShellCommand : data : %{public}s', d.exitCode ?? ''); + }) + hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 00000000..796059c0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,432 @@ +/* + * Copyright (c) 2024 Huawei Device 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 hilog from '@ohos.hilog'; +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON} from '@ohos.UiTest'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import worker from '@ohos.worker'; +import taskpool from '@ohos.taskpool'; +import { SendableClass} from '../../../main/ets/component/SendableTest'; +import { TestA, TestB } from '../../../main/ets/component/test'; +import { BusinessError } from '@kit.BasicServicesKit'; +import utils from '@arkts.utils'; + +const TAG = '[Sample_JSConcurrent]'; +const DOMAIN = 0xF811; +const BUNDLE = 'JSConcurrent_'; + +let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() +let resourceManager = abilityDelegator.getAppContext().resourceManager; +// 资源本地化 +async function getResourceString(resource: Resource): Promise { + let manage = abilityDelegator.getAppContext().resourceManager + let text = await manage.getStringValue(resource) + return text +} + +function promiseCase() : Promise { + let p: Promise = new Promise((resolve: Function, reject: Function) => { + setTimeout(() => { + resolve(1) + }, 100) + }).then(undefined, () => { + }) + return p; +} + +async function executeWorkerFunc(inPutArr: string[]): Promise { + let myWorker: worker.ThreadWorker = new worker.ThreadWorker("entry/ets/workers/Worker.ts"); + myWorker.postMessage(inPutArr); + let outPutStr: string = ''; + let strFlag = false; + myWorker.onmessage = (e) => { + outPutStr = e.data.toString(); + strFlag = true; + } + while(!strFlag) { + await promiseCase(); + } + return outPutStr; + +} + +@Concurrent +function strSort(inPutArr: string[]) : string[] { + let newArr: string[] = inPutArr.sort(); + return newArr; +} + +@Concurrent +function strSortDelay(inPutArr: string[]) : string[] { + let start: number= new Date().getTime(); + while (new Date().getTime() - start < 3000) { + continue; + } + let newArr: string[] = inPutArr.sort(); + return newArr; +} + +@Concurrent +async function createSendableData(data: SendableClass): Promise { + // 定义taskpool子线程异步锁sendableTask_lock + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("testTask_lock"); + + // 构造TestA、TestB实例,组装SendableClass实例 + let d1: TestA = new TestA(); + d1.v1 = 1010; + d1.v2 = "aaa"; + d1.v3 = true; + let d2: TestB = new TestB(); + d2.v2.set(100, "aaa"); + for(let i = 0;i < 1000;i++) { + d2.v1.push(i); + d2.v3.add("hello"); + } + + lock.lockAsync(async () => { + // 子线程调用实例方法setCount、getCount + await d1.setCount(10); + console.info("taskpool: this data1 count is: " + await d1.getCount()); + }) + + data.data1 = d1; + data.data2 = d2; +} + +export default function abilityTest() { + describe('abilityTest', () => { + /** + * @tc.number : StartAbilityFunction_001 + * @tc.name : Start ability + * @tc.desc : Start an application + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('StartAbilityFunction_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbilityFunction_001 begin'); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: "com.samples.concurrentmodule", + abilityName: "EntryAbility" + }); + done(); + } catch (err) { + expect(err.code).assertEqual(0); + done(); + } + hilog.info(DOMAIN, TAG, BUNDLE + 'StartAbilityFunction_001 end'); + }) + + /** + * @tc.number : WorkerCopyFileFunction_001 + * @tc.name : WorkerCopyFile + * @tc.desc : Click the copy file button + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // 点击拷贝文件按钮 + it('WorkerCopyFileFunction_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileFunction_001 begin'); + let driver = Driver.create(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('fileCopy')); + let fileCopy = await driver.findComponent(ON.id('fileCopy')); + await fileCopy.click(); + let copyFileLog1 = await getResourceString($r('app.string.copyFileLog1')) + expect(copyFileLog1).assertEqual(await resourceManager.getStringValue($r('app.string.copyFileLog1'))); + await driver.delayMs(200); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileFunction_001 end'); + }) + + /** + * @tc.number : WorkerCopyFileButtonFunction_001 + * @tc.name : WorkerCopyFile + * @tc.desc : Click the copy file button + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // 进入页面直接点击拷贝文件按钮 + it('WorkerCopyFileButtonFunction_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileButtonFunction_001 begin'); + let driver = Driver.create(); + await driver.delayMs(1000); + await driver.assertComponentExist(ON.id('copyFile')); + let copyFile = await driver.findComponent(ON.id('copyFile')); + await copyFile.click(); + await driver.assertComponentExist(ON.id('copyFile')); + let copyFileLog = await driver.findComponent(ON.id('copyFileLog')); + let strValue = await copyFileLog.getText(); + expect(strValue).assertEqual(await resourceManager.getStringValue($r('app.string.workerLogChooseFile'))); + await driver.delayMs(500); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileButtonFunction_001 end'); + }) + + /** + * @tc.number : WorkerCopyFileFunction_002 + * @tc.name : WorkerCopyFile + * @tc.desc : Select file copy + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // 选择文件拷贝 + it('WorkerCopyFileFunction_002', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileFunction_002 begin'); + let driver = Driver.create(); + await driver.delayMs(500); + // 使用id寻找组件并点击,时间超过3min,因此采用坐标点击 + let copy1 = await driver.findComponent(ON.id('checkbox0')); + await copy1.click(); + let copy2 = await driver.findComponent(ON.id('checkbox1')); + await copy2.click(); + let copy3 = await driver.findComponent(ON.id('checkbox2')); + await copy3.click(); + let copyFileLog = await driver.findComponent(ON.id('copyFileLog')); + let strValue = await copyFileLog.getText(); + expect(strValue).assertEqual(await resourceManager.getStringValue($r('app.string.workerLogChooseFile'))); + await driver.delayMs(200); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerCopyFileFunction_002 end'); + }) + + /** + * @tc.number : WorkerFunction_001 + * @tc.name : Worker string sorting + * @tc.desc : Enter the string to be sorted + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // worker执行排序字符串 + it('WorkerFunction_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerFunction_001 begin'); + + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let outPutStr = await executeWorkerFunc(arr); + expect(outPutStr).assertEqual('add,dses,ssdf'); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'WorkerFunction_001 end'); + }) + + /** + * @tc.number : TaskPoolFunction_001 + * @tc.name : TaskPool string sorting + * @tc.desc : Click on the TaskPool tab + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // TaskPool立即执行字符串排序 + it('TaskPoolFunction_001', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_001 begin'); + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let taskPoolOutPutStr = ''; + let task = new taskpool.Task(strSort, arr); + try { + let result: taskpool.Task = await taskpool.execute(task) as taskpool.Task; + taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + expect(taskPoolOutPutStr).assertEqual("Task executed successfully: add,dses,ssdf\n"); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_001 end'); + }) + + /** + * @tc.number : TaskPoolFunction_002 + * @tc.name : TaskPool execute string sorting task + * @tc.desc : Enter the string to be sorted + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // TaskPool延时执行字符串排序任务 + it('TaskPoolFunction_002', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 begin'); + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let taskPoolOutPutStr = ''; + let task = new taskpool.Task(strSortDelay, arr); + try { + let result: taskpool.Task = await taskpool.execute(task) as taskpool.Task; + taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + expect(taskPoolOutPutStr).assertEqual("Task executed successfully: add,dses,ssdf\n"); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 end') + }) + + /** + * @tc.number : TaskPoolFunction_003 + * @tc.name : TaskPool execute string sorting func + * @tc.desc : Enter the string to be sorted + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // TaskPool延时执行字符串排序任务 + it('TaskPoolFunction_003', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 begin'); + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let taskPoolOutPutStr = ''; + try { + let result: taskpool.Task = await taskpool.execute(strSortDelay, arr) as taskpool.Task; + taskPoolOutPutStr += "Task executed successfully: "+ result.toString()+ "\n"; + } catch(e) { + taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + expect(taskPoolOutPutStr).assertEqual("Task executed successfully: add,dses,ssdf\n"); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 end') + }) + + /** + * @tc.number : TaskPoolFunction_004 + * @tc.name : TaskPool cancel string sorting task + * @tc.desc : Cancel string sorting task + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // TaskPool延时执行字符串排序 + it('TaskPoolFunction_004', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 begin'); + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let taskPoolOutPutStr = ''; + let task = new taskpool.Task(strSortDelay, arr); + try { + taskpool.execute(task).then((res) => { + taskPoolOutPutStr += "Task executed successfully: "+ res.toString()+ "\n"; + }).catch((e: BusinessError) => { + taskPoolOutPutStr += "Task executed failed: "+ e.toString()+ "\n"; + }); + taskpool.cancel(task); + } catch(e) { + taskPoolOutPutStr += "Task executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + expect(taskPoolOutPutStr).assertEqual(""); + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_002 end') + }) + + /** + * @tc.number : TaskPoolFunction_005 + * @tc.name : TaskPool Group execute string sorting + * @tc.desc : Execute string sorting TaskPool Group + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + // TaskPool Group执行字符串排序 + it('TaskPoolFunction_005', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_003 begin'); + let value: string = "add,dses,ssdf"; + let arr = value.trim().split(','); + let value1: string = "mnf,csfg,brsf"; + let arr1 = value1.trim().split(','); + let value2: string = "rkg,abhg,ungb"; + let arr2 = value2.trim().split(','); + let taskPoolOutPutStr = ''; + try { + let task1: taskpool.Task = new taskpool.Task(strSort, arr); + let task2: taskpool.Task = new taskpool.Task(strSort, arr1); + let task3: taskpool.Task = new taskpool.Task(strSort, arr2); + + let taskGroup:taskpool.TaskGroup = new taskpool.TaskGroup(); + taskGroup.addTask(task1); + taskGroup.addTask(task2); + taskGroup.addTask(task3); + let res: string[] = await taskpool.execute(taskGroup) as string[]; + taskPoolOutPutStr += "TaskGroup executed successfully: "+ res.toString()+ "\n"; + expect(taskPoolOutPutStr).assertEqual("TaskGroup executed successfully: add,dses,ssdf,brsf,csfg,mnf,abhg,rkg,ungb\n"); + } catch (e) { + taskPoolOutPutStr += "TaskGroup executed failed: "+ (e as BusinessError).toString()+ "\n"; + } + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolFunction_003 end'); + }) + + /** + * @tc.number : TaskPoolSendable_006 + * @tc.name : TaskPool execute SendableClass task + * @tc.desc : Inspection results + * @tc.size : MEDIUM + * @tc.type : Function + * @tc.level : Level 0 + */ + it('TaskPoolSendable_006', 0, async (done: Function) => { + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolSendable_001 begin'); + let a: SendableClass = new SendableClass(); + // 定义主线程异步锁sendableTask_lock + let lock: utils.locks.AsyncLock = utils.locks.AsyncLock.request("testTask_lock"); + let count: number = 0; + lock.lockAsync(async () => { + // 主线程调用实例a.data1的方法setCount、getCount + a.data1.setCount(111); + count = await a.data1.getCount(); + console.info("this data1 count is: " + await a.data1.getCount()); + }) + let task: taskpool.Task = new taskpool.Task(createSendableData, a); + let taskPoolOutPutStr1 = ''; + let taskPoolOutPutStr2 = ''; + let taskPoolOutPutStr3 = ''; + let taskPoolOutPutStr4 = ''; + let taskPoolOutPutStr5 = ''; + let taskPoolOutPutStr6 = ''; + let taskPoolOutPutStr7 = ''; + let taskPoolOutPutStr8 = ''; + + try { + await taskpool.execute(task); + taskPoolOutPutStr1 = "sendableTask execute successfully."; + // 访问子线程返回的实例a中的各个属性 + taskPoolOutPutStr2 = "Sendable data TestA v1 is: " + a.data1.v1; + taskPoolOutPutStr3 = "Sendable data TestA v2 is: " + a.data1.v2; + taskPoolOutPutStr4 = "Sendable data TestA v3 is: " + a.data1.v3; + taskPoolOutPutStr5 = "Sendable data TestA count is: " + count; + taskPoolOutPutStr6 = "Sendable data TestB v1 length is: " + a.data2.v1.length; + taskPoolOutPutStr7 = "Sendable data TestB v2 has key: " + a.data2.v2.has(100); + taskPoolOutPutStr8 = "Sendable data TestB v3 size is: " + a.data2.v2.size; + } catch(e) { + taskPoolOutPutStr1 = "Task execute failed: "+ (e as BusinessError).toString()+ "\n"; + } + expect(taskPoolOutPutStr1).assertEqual("sendableTask execute successfully.") + expect(taskPoolOutPutStr2).assertEqual("Sendable data TestA v1 is: 1010") + expect(taskPoolOutPutStr3).assertEqual("Sendable data TestA v2 is: aaa") + expect(taskPoolOutPutStr4).assertEqual("Sendable data TestA v3 is: true") + expect(taskPoolOutPutStr5).assertEqual("Sendable data TestA count is: 111") + expect(taskPoolOutPutStr6).assertEqual("Sendable data TestB v1 length is: 1000") + expect(taskPoolOutPutStr7).assertEqual("Sendable data TestB v2 has key: true") + expect(taskPoolOutPutStr8).assertEqual("Sendable data TestB v3 size is: 1") + + done(); + hilog.info(DOMAIN, TAG, BUNDLE + 'TaskPoolSendable_001 end'); + }) + }) +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000..70ea5798 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2023 Huawei Device 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 abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest() +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/TestAbility.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100644 index 00000000..df024854 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2023 Huawei Device 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 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/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/pages/Index.ets b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 00000000..665f6916 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; + +@Entry +@Component +struct Index { + aboutToAppear() { + hilog.info(0x0000, 'testTag', '%{public}s', 'TestAbility index aboutToAppear'); + } + @State message: string = 'Hello World'; + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + } + .type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(()=>{ + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/module.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000..c6ad62fb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/module.json5 @@ -0,0 +1,51 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "description": "$string:module_test_desc", + "mainElement": "TestAbility", + "deviceTypes": [ + "default" + ], + "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/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/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/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 00000000..1ad9f2b4 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,28 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + }, + { + "name": "copyFileLog1", + "value": "1. Number of sandbox directory files: 2" + }, + { + "name": "copyFileLog2", + "value": "2. File TestFile01.txt, TestFile02.txt and other files are copied" + }, + { + "name": "workerLogChooseFile", + "value": "2.Please select a file" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/media/icon.png b/sample/EnhanceSampleArk1.2/ConcurrentModule/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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.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/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorfile.ts b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorfile.ts new file mode 100644 index 00000000..64781869 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw new file mode 100644 index 00000000..0576aadb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw @@ -0,0 +1,61 @@ +#!/bin/bash +# ---------------------------------------------------------------------------- +# Copyright (c) 2023 Huawei Device 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. +# ---------------------------------------------------------------------------- +# ---------------------------------------------------------------------------- +# 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=$(dirname $(readlink -f $0)) +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/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw.bat b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw.bat new file mode 100644 index 00000000..af893e9a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/hvigorw.bat @@ -0,0 +1,72 @@ +:: Copyright (c) 2023 Huawei Device 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. + +@echo off + +@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% %* + +:fail +exit /b 1 diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/oh-package.json5 b/sample/EnhanceSampleArk1.2/ConcurrentModule/oh-package.json5 new file mode 100644 index 00000000..ac21a550 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/oh-package.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "", + "devDependencies": { + "@ohos/hypium": "1.0.6" + }, + "author": "", + "name": "concurrentmodule", + "description": "Please describe the basic information.", + "main": "", + "version": "1.0.0", + "dependencies": {} +} diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/ohosTest.md b/sample/EnhanceSampleArk1.2/ConcurrentModule/ohosTest.md new file mode 100644 index 00000000..ba0405da --- /dev/null +++ b/sample/EnhanceSampleArk1.2/ConcurrentModule/ohosTest.md @@ -0,0 +1,10 @@ +| 测试功能 | 预置条件 | 输入 | 预期输出 |是否自动|测试结果| +|---------------|----------|---------------------|-----------------------------------------------------|--------------------------------|--------------------------------| +| 拉起应用 | 设备正常运行 | | 成功拉起应用 |是|Pass| +| 文件拷贝 | 进入首页 | 点击文件拷贝按钮 | 点击文件拷贝按钮 |是|Pass| +| 选择文件并拷贝 | 进入文件拷贝界面 | 点击checkbox选择需要拷贝的文件 | 文件选择完成 |是|Pass| +| 拷贝文件 | 进入文件拷贝界面 | 点击文件拷贝按钮,然后点击返回图标 | 文件拷贝完成并显示相应日志 |是|Pass| +| Worker功能测试 | 执行用例 | 不涉及 | 不涉及 |是|Pass| +| Taskpool功能测试 | 执行用例 | 不涉及 | 不涉及 |是|Pass| +| TaskGroup功能测试 | 执行用例 | 不涉及 | 不涉及 |是|Pass| +| SendableClass功能测试 | 执行用例 | 不涉及 | 不涉及 |是|Pass| \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/copyFile.jpg b/sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/copyFile.jpg new file mode 100644 index 0000000000000000000000000000000000000000..3d1848067e0c0fa3690de3f84a197c3cc7ae0e5e GIT binary patch literal 19902 zcmeIa1yqz@yEi;^gCLz!(nxnBF(5HRhjgcaG&qES4&8`!holURC`e0pDuQ%(4&SK% zc%Ji}v(|Z^_nh;6?^-XghkNgR?JIuQzIX4ro4NZ2xTm5BR0JR)Apy(~zks`WfII*b z9UTK54HE+c0}Bfi842*`XjY0FVihPzaIk zJ_G0g03D1r-e)0}~4y2SEV42S7$bK|w}EK|@1DMNkJK@&TxXXhih9 zvgr3g<`@ia#C*Z=xtNS{HJ?bpqX$g<7VaTf*ra6S6qL*lSyo3dxja`HYyO2>)QBW~{+J%JdjR+`&sA%-O=tQz040E^p41B?u#B%YuHJ`8; z`N0Py7Ve|iq)Yc`=b?Zc1OMW!A5ePDXiqU;CaLkX(@o{*>-G65jfJH{JHK>a?Xcb zj(6`dpBV7bYqbIH0NWE}bE^7sOpdQ+5`*%e4X>*&_wIU#3wRiUHpbdAJX#OB$I2z_ zc0)eeW{*rn=00sD>Tl6kK=sDWFIA$r#W3XNR+{NA=rVEUdp?#3GJj>_$`%NmQ-6^G zwy!sxBP(@X!|W{2T#xTagp=rzakN3j14|ex77ZhnKm-sjn{_TtZO zCU$`>-nT*13cFNY9l0iQ8RWh=h>dZgc5xA7&vD8HE3zrDQj|AVJ}5>3LIGuj?CCzA zN+O6)MG9<2xtG|4zK!J$ldu}vIL}0)J}+h~{vJi3g61FeU_2a802drA%lU#$rb|&3 z+mtWZz4pn7$F^>T6L%FcIfL!c4#Bx^&s15>oH8S-Cwg-Cx2X+tjHz_(P`!7YtL;tq zx;I|N@$JSGqnsAc+rNJ*Fi%0&kE_1cBLn<+gGVM0N}Q$m^s3ke&k!rmSPhjgS8I&~ zK(~ymj@_h&#dxRLxF0HT|p&Uk+( zkpl31!)HkLicmw&=_+cult+O|zgh=1VFsWxHU5Y(jxjGp-YS)x%5U|ohb~jR0Gn$^ zSFaSQR6WzZfnlM0$=ow`o~xH)vv(~kh3`#kE)(;`9Ux_3C{Q$SBNbyNLI6cQML66h zTm~hd#C$W>&l#Od-;gygn7WI#pb&#(rN|#Gl77upMq;1k{FTI)6<0|J_D;@((^;rw zR|_FWE7C`I?IV5(-p2x`7Wl62vla|mGLAjA0Ue>^5ZE`qoa@B1k8>9d-^R6({ zU1-$2yQtMj7$;wj5AwJX8ShdcG}*Ds|oTktM9G-2-{1xbRiOb;f`c8=dRAk z6o~W{`a^E5Lc(WN+uCCc_A-k7;Vb2WE?|9>SH(DA&*$TRIAS*N~aQh;9$eO640!cRx0eT6*P$4LeJ5~ zPd%BC12qS2%S=S?<8L(whG$E*jXc}?F4Hfyhe0kF7O>5AGNyR_veKB^vUFcr(H{Fg zkW1~UQ9;_Rly$=-7jtrbfd?a<8Tox(PVSXZaEbxds@>YBb8GWk1>4#&!tuHA@M1?Q zLz6<(dzgC<a2TDGBS~o?n%F*B- zh%7%day>dLm0EN@+xBhr3Sm5U?mkCN9(-cL{mN^W{Q z(drU$lMSU&pvZe8B>w0E+y zbjPH>g*>~EjlG240e-Q_e5iotj~y7xa|Z}}EWN>Y2Z*}^T%EKZltQ-th@5WD<`a|b zu$@T^z)6H}AKw9v= z-`~Eho_&RlP?cT!*HiZOsYz+9xuRs4pl)F2mViI40YaWXJn!o-Eq(&!oqdS|S(Qeh zQ$c)Ncb#}jDH+Q_htYcnNNa%0A^4BCFKfnL;Sl^1T?Ni3zHPmZn6NvOXn~WE-6}wS z85et@Z3_=+|7}~o0_{?b;@<#jTGpU@ z{`_!b`}-0viB32P%dLX+F9Q+X9NnMKZE{e_HuWD6+mRh#?;Cb0$STJl)!@g)6Fs=a zA24M9);(LkW=&~X5wiAYUHN*U-2)H#!@yreo!4R!mR}&tV1)C2`GWOABlhwSTm77g z{rxgKucaa^2QfMlq}N#fs&nPiTYp4OH?={#Ti#@6Hgq*>Ul0DyIMFK@Rca{xh0Z4h zVqKOT@T8!4AVcrMq7)fDF@ELxg;JYr@fPk`*M4yW@Xc$&^4K^pjESr9(?Irly=q6J zBvdP6W_e=sUNZuUcemo5_2}cyd$DFLN~{L-#v(N21Q7Mln&=m1A4wjRZYV)iJQavR zpNJHQ%^7u&bQA$7Ikb~p0AJX2)T!fB%g+aW7zrtPgwAW`$>cHD?k~(!=u{#;evq0F z++LLGKFo9Kd}BixzxH8?tOyB}$RWDw<@ZCfR}xRpXw>&u@Z-2Tc^BLx0<5y;Kdy`_ zXdLWy<3R2YxY{x-7|zcAD2nQXS=n@tVKGXx4byC$)QF|*->6n{Ey2W0J6&z9OSlpq zCAPhG&Y`>UtG^L1-`3LjE-qdVJ=%T}555;_=5D!Icjd0&ex4q<{>sG@M-qF=vpyR{ zHZ8383MAYU#Sl}>tO%jpkP!57a=DTBFP(jAWWu8wSvY6NMlag;~+J_u`q>427yy%nB;I;KK=#D4erW!t!m#E_0*fjZ0iE0rXjQI zQ6-8x&M*C9Q)3;_V+^mq3$YrZkdp4}4~l*n%j)qprX6Hbm~WrBSq-GV zitgIN!{TBoP;5l&+(g>2O0)W^8$_mIwhO#2@@J8W+ zM-eHY|AGLvLK>zsRNIbPwX6V$LG3(k<}ini!F!;E7thhU^5Uv7P-EV#eh>N>71~9L z6RGfUd6@AyM=X^szR_LDO(Ep_D6r8F%EuoSb!%5`Y{({z>?2x$%1?qTjIW%-Ee2)H zL8$z{74RL68WSWPHE<8(sL9Q_CYy+qm-=7c0%<3ceRh^G+hfM`5_*V~@Mq=7WpJ^j z)P>3e+Mno|dKBp|_17-Ub_%@WsbD~7mqfSESFOgWHk7+Rc;6YDw;h0f6@|@>L9=}P zEQ>>n-6Z;q$K2+Px;6!$^6=tixTI*Mi_iUQ-g1h zYahoP^4iUYt0eF!->|>+@mIE^B^}@G|KJ@E%EFX5yrSc#zbfH$4SSTrTFl!+j?IYw z@qO9NQl`(aNpk-3Q>mr%PSCuGQ@Y3=v)#nAzNXn~B@5x_yJO97b}A~PY zZkp@NCy)mh0I9?o!nnOfsa>Q_DoI7!vFvSkB00~#F=BZ=WqQd&^~Nj9M`Q@|=fElXqd5K-wlP0XGx`&~yAAWogKA@!w` z5?g#|Y)52R4AGQ$ITu*Dsygdw#BO6`CWlDWQ~U`-(32Z)ue__qu82 z_&_r}PO+&XBE!adr8rbNt^QpNuZ)|W?L+W(B>AVQwe1V-4;47=?U8%<`FmT?X$D&;>eM{81RX;$JNzb<9WNGutn|IyC zDY1!uzQ+Zj`*0E(Ai>ugR-{zN=Vz5%v?A-$o(0Ci!)_;)TEIh+^Vt{UWqrh1)`MN| zc#Iy;&*sI)Wwr6VgbU8=(Rh3-DXs~5=u?=obhP$EVk0#7zIY9|_;&dsY9!oF;d_Oc z?>FeeAjgwP`lIhG7VneL+N7+_ht-P5YFs321=4Y+YdX(JBQ=fWx#pHho^Crdq*H)&+u?qi8D_uyzVpk##h%dJ({j3lC>33Oyl+AkB^6inPm*252hFqP z{QN*UFg8ess)VkTy9254myw13SSP-hpL1*CH00DBu6)Y+>9LK;xOEx%^N8XF(&ord zD40BV6g1xX_&8J$61{rtb$;*LBf2)trW;;^?1Pswf;z2Tb-`aAnu-B-o;Z{zvlPh% z*^LO2j(<*lZ#t{N+w^gW*@}n`RM6kn}b4>By;?+_ml`*P~o0z4H$Nb9|p? z8Z7N9(CLmU^g`6==Z4)=TShJZf$i=<;dPcqT1zwk$>jny5_q}4t2<-*C8G{A|Bob8 zl>Mn_z;Nwh0DqUiUeGhinW3P6@^@3EPVf0ZZITnZ7E+y(gv-M*<)4-g9@o;zp7R9^xoS-H$D_xDZ#* zRypV@tmxlObFra$24tbDa8^C<8T$Ys8n0qga%}%{{%o^5NxPwzF%Qad->jI!+04F9 z6Rld7f*7XrG%9YQ}l4xnq<_jR{BvpYF49v(qbY@5_*j}ly<^^E~Fs|RQ zB{R`M4stN}9})G>slG-@l1*Tg+npZqFu2ltwF7I2cT(s?U7*OqP(T$L<5T3%TJ#ZY ziqcD8FmQ;>GwhC6kApaTmF$1#q+hPa77eXpR+qg|cp%9rnCw|GGc!XqozaSHj&2EF z?Q5|a!C>0^-q-`1s3;h-a^1yg0*fSZaFo!sStiIX*T>=SHKMff3J8ZjX&K+;s@&b{ zZlDeaQ9MvMOX%HF{?tL8J(U@1i9(^Qq4%^8lk4E}GwIql1T7}}+L2_{CG7J1iGJ@wY`wZY!943|{@X!j40 zj@C0K>PKJb9-N|r%ri5j=*NpDsnk`2rm^*(i>p3b0-P{;pA>B_F^+p0g@+8Se2Lfk zLV=3$WW_!4Jlr4p!^vr%bYFFRX~@$b&v5I^C?vvCamfu_F_O4e(o-|2KMEslo^*lv zXNqfvC_67v8F|%t&SILmjiaTNWq2V+Vz1kxO$a}fC5FO{(!OHsRd3;OEOgR*(cNWu zZH3!ka3s?WNvo1nd#FkkXfxM8w8y1zN+2|)pgTKYBeXc~$|5z3Uf3`$JuV>%@wfCj z{>%d1tbfn<#o&dD^vi0GtTaX#DNa_j0x_8UcTN6ToBz`RX?;ob(D^JP(AC}=rrNW{ z&ofNHc%}D ztHqh$V^>P!fbo{>wBS*U>RZQ69v?sVT!O`-uUhN8f?Mok=fh?P_2t|R%h&$1+MKbC zJhVCSw;Z~z?H78&2ZzcB)>)7?7I^sNm?~l+1N(rZOYvP^ebb)#>JJsJJw7PwyTOo5 ziq6;0NKpB**H5)bSfdAqD^xl!b5x{obfbsh$gg4&$I5Ayx)06v;1|A(ied*$Zq zJCx;}&573Ejt%sdNgssUNuS_F998TNY_Tp$Di}LzL+h+|tTyG;kDv?<_0X|J`d|`9 z*)Sb)09e_*XCCU`cRL3y4m9wpt;I$x_#&odUlH{}t3cLQVj>7kp+#&_@jXft?Fk6l z0Oge-;Zs0QN9!>5p{*YNTWW(lJmmnPU-Fs6C%$t>G0Q&p-dI$PCWj!Bz zQWpQ@TR`g(a>;1{|2RLeCF-nFz^C>`GB{g9DDF%78t@r~TvJ@pLi|w{5=FPXn}IN8 z3`{!QHepZK7CuWla3+eatZkfRg=#rN;NV3vti0fFk?QHYyLxPYW+9-axCC@|wdxw| z^Fp&Q7S_7(qs)3l_O!=6B~E|Xy?y}IqxSQTK_=nrUUG6hjBGzn40mH}@C*&d@HVFlP7HS zM~txcaDy*at4U~>(of$JOr#@GQz~Cb${~l9CESntMe^=) zwTSOnRMA)djoAByF%{S`yehqCyHZzpD&67(wgkkX>>UNE5m(c~2Ro213S0Q`9bm(z z+2F;+m0r9dd!`=R==;fhVKE1dGI`cKXsBj!#|ucu8vRIeNypLYflqQyYF`tFC? zz@_g(O7x?PZ_>)~Wtr!5_YF5bbt^~{hnq`>KW}=1_Kit~L@q+atRNYe|JW?ScMy07 zz&y)fPLaKDWAw7gddce&I^TdaLVdiyRF8NwY)v+G{X!XyyIKp}AB#$R$%fO#m92NC z+qcB5%IGS05XAT5z29>|3GZ>5nk3J`wQH3u>MWJYOZlkY^)`iBUKm$q18YyoFq{C} zUbh2;i~GSzk>E7?ND&eyda0z2E~a}*PK*SFQ;(-_8ANdg%%*s&ty_w$619m1L6A08 z5!$V#6D<-wly&7-#h*5>uIWP=1@4a3+vT9;A=XF!g@E$<5EAjguZ{XVTk=D=?WnUk*NJaIlqq> z!2&@`>v;8(1?!Q*{}~K^f)%?BzWiwsnmbS;-Oxi()3&5&{C9g9?=3=83i~zc!#ZN^ z?b2yU_`yX}!3bo5qj`Olj`nCag<7YNsSX-aIdWKM89g@_TC-=2kBhRrO<|k?Q%r%a zbme^_RrKn$0?}P$cmr0}P>nWbz}2T-%s`BlDf zd(K{sP4f%2_?tVKT#ccn_Gg*J55(yT;B77>5EPU6O2`+Z!@~VbESeglDJ;18kDt?x zrBP9QkD7ku{5_>{B1hh?&(hPAD}zk@!%6)9Fm1$u6P?58xS;h!WffTD5U;hHIpCPy zgnDJ%OK%Gg;5cdw&;GvqNYj3jdG^QCz_e6UuEVSqHE=1 zh$RBBLFg)9z4|PLtWvl;Evd2z^7^&Zs^(@7dYWH+)3dDu1z%`lu#{e?Gg9-~KQo%^ zNI3^3$=10hBZmg>p*sX0IIVzf<6qXF)7kRVXHJ6hwY82y!-qa9`cL~pg@U)$zl$_V z@Iz=8VJ*Xyn`f!-mmUwmtLs8!kj_j6GOn>>)ecf}bGITrtV`bHLOXX36?i}?3mQzg zD;evRj*WA?Kba_eT(LR$aZ{gOpZQ8^0P@`C7!nP7#T6WrPyK>6nK>(>WF{If|A^+~ z)Ze?0F+i;j{SM%djYV59Z4|6H3YD+k`ZjDj zsiEq<#Z+KYRX^XtH8Q^;s6RommJwZ%Dir^vCTg7y@x)Hn<<8jFeNXa*g9x+>C*;jGGlY6-0-qRY?Cz zh*!`~Frf6nm9b*AVfp$1!l+umJtf^A#Nvt1#%-sr1StX zJa*9hqLqH&N048EpV(&9zb`c!C}>+MvN|S`P{6=rv)4zbpc7$hkV<=4#w4X4?`ey6 zEP3U)@x&u@p5IG_m&OQXTCwzRym0x!ecZJyK7p}wZ6CoAk;6AFckD!!Or(e8Nx@2c1ESY%kN;5Zad3s|SX zsM|2*%F=TA!t-@2V(a;uW^`pbN+%ZAfpAj~#~yJGVXkh5vmj+lDbl_^PHfpI25Vs* zBa36?%-x52%-517c-VxsQU6%g*J`Z7^D}JXp)*KOZe(73wO186lr{zn^$f9gjoYyT zKA6f6ELEdwYy>t)bs0tXKY1J|&n+HCvPp%$a|o=B42u~37nl8XqEytkp&GcPj1x(nRp*fD|iVcmICGc>%&=ji2-11lAPt4%Uw(xIKJ%I79LLh4vLI(*KSAiG~hw17T;- z{xNN6Q&C_uo$ejrgBn2j;4t~7jJ<|Bk^uuuq1?;ZCjX!_`-RbG_QJri(>Md43GJBM%s>-xTVf3Mn;=E46p`oVYk=B@5>I`;(~|2 z$b!|y&CcHqWD{+TU3mGwvGgZO&zpN~4q|k^mW>K(T@B*hbM)Kq#PZ`>Nk96r967KQ zHG7OL^iAE5`kcn^d2uYRQFu~do+Zu_^Hxv%%Q)Z~wLfXT%tU9ZLDTzMbdKxUELHy| zP^B4R=4f|;wKBDBc6X7KSWR7H$dDHS-#cWlV`9EKXn{Gf@A_kgmtcFDUCPz_?&J62 z$~HmH@Es^gd$M+Hr{?@p!Pz-~2SMt(;!EeG9BizW5!|a_r~uv*BS{aiu-}VZ!Cps> zTgC5R=66y0A0K-O`K_Nz+yUBlb#M5;+e~?4MJ+i2J)4a%S7Ysb?xVP8xC70UcQ7k3 zB{*#HiyHjb?8XdOpo?#LyExW8N>0V!!mp%YXvLx5-eWSfHltH{)x!qXcSh^^$c{|Z z)zMi;1lbKPiVh4Mywjs!t2(Mqg)LGs6B?n#Ubo)A7)J~`nA@5sPhQqnKOBRLS`7$M zS=5@heb8NumDgiBXlo7M#XSy8*>aPZx}?%yC8go7i{leN*-#Uc#_dGb=V}}LY-(itgf4gM$4fNG)x)_gSLu*! z>6`29FPcc!@G{vMmA_jkRl7M6W%FZxe!|TJwfl702RZ17<(kjLWnR?+Nt$RdvrdMT z(sGgw2Mxhe+^ke+)w&?9hb9_SC3MI^V(r(iz*_#01E5Ah?>IeHv;?_}#PnAV4zUhI zwB$HFh!do9^FKnuQrPuV2f-3#8?$^tgP664@o5cOh$i>f5eBVfZysU*JO7cG)=jow z8ZIujq5OlRz>TB8t$#7G#4`$~!XT7M-85+f1(o1}k->VGWB1`2rB z+t;_LR_@cgR?fGJ*d#!VcV*CiZf3HJ$tZ8Q$>6s%Cd^H)#Vi3A{T`<+ESwEmZqhPS z)`7oF@z2hG9tyXgmD^Kd9r$#Laa0jFc)LGU(pRKE;PN102;-HqHRfm(22;Y!Df4S- zEoHp>o%bqFNgZ6N{99JH;O!>T;&U=b}+Wd1yi;${drb`39?F^1*omrnfPfMtP zGR_`sjLy6)2r1^xd#6Dg)b zaK3AekDo4vd2g`$G2LKcVJz{mzJbF0eazyK*^#JSSeq#BZHE>#-eT zKOTsfZ|8xv@3mU3L$O#&2YGS+9B(W747$-W9;%&1f48duKbRUo?t8$|x9|mN*aCZH zqdT+6C+iqIdWutGGFtHd?Uw}EhkE_^tEEycWOUKuNOPl0joG*tk)SDV&X@DNl4;4w zNl`~q=JBD?orTuMJ}pL(;MwM{1Nv4LSmfdc&pxk@Uyhm^pR|squfPb1mO3lcEFCG^ zXA>5bj{?fNI^XkHPM|#@I4{-voF3{UHLR)qYO&v3D;$^SBlRhOw#}}3s3T@}*Z4zN zxrwQRiSZr{a)O*w$I0rq#NCUjr&Z9Z!kY2D!3DHRrUt!NM%8OdI_51CF59~bLHn$g z@}DW;#l@zaq&55mQaqR;iv7G4tGKkV5qn_|6MfF{qA6RB21ge8n22;4(|=*P@ZVcv zM8N?a4A$qDRTk{&{*b7Sj@reXueqFH>1f~Zm=FA56JsB+u8V@(^(Kw*cI*ol&0(zJ zrVhm=a^`A7N#6IGA$vG^tXhlja#Q@x&21qQ;5DBr@M360SfCJS8^v;?0(WC7k&dKp#R??JA~(WaM`EJT8G(x`90}xqckn zen^R_!OXFnjR!2Pkw%Hq&PN71mL6%8SR8sR9|murjl$Plr3RB&W80YadZgSk;Ek#b7>Gvm)yi%${ECV_8$RFqydF+Qe|Tp;|p=irtUYfN|lo=t>zN-a5d zy{_}Cp=U}(9R$nUPnn;c*Sq?7lBcS;34Ut~7c!046~>O*^CPvSRnm&C8=)eDGa5OI zRytQ$HMu<-Ax{k{)DIsnmX8H%dy^OvkP6K8&qND(^4-fxkkaker}al}FWF*`eH9?> z;k~@pv#&mmk?f70sE!MgR22Ic%EP7+DlI5L*;|8C$X!=1qIe|zV@k&4D)j)?h0 zcv{Q~Z1lFtM9|1AmXHeu#2XqB?Wu5dm=a5Yc{0^MqtXv}j|#V+bFo~^%n1DY{nKva z2zt3s3QB=Igc|JJl){>0KwKJMz)nW7du)3km2A@4EhK!EJ4smecBFFWMsE4hp6-&kG9hNPTwLWH zfCXioE)!rn5g^0m65Uo~MM_ z^efE6&@*|5vOCk0IaG<7J@PrDX8Q;Fk7gJ;AV%)Mo=A3P3}M<8@SU zirpIn9l(w|sF|QehRpU*g4aYu*-(|7%6f1vJLMrf$6FHp1*|oJ6H1}Xt|&{hO{7ZF zaEP8tE%eE0xuz-Bp{nIKPBSOmh2@)8B=e(%=< z)A?m^6qvdGKG_PkNeRMc<5&Hs!?c)+N`gAmcrlYMx!D(X$ds&kX(2_S7wy>Lzdq$T zOa;g08fH2u`jEU&C>XN?a1V6^#Ao-vHItzWJNl=D4n_skI-@WJVzCEK6-_yFyPnKC z?^G((?FqeBS$CCyi;$Pq>ykCUNJ$x0b^bs~Ygk~dXSYSbk~l1Yxm5Ys!7#I^)F<^^ zx81rfhJw5YYXNR40`Qpr0SI)gtn}78SQX3vdO3vsvkeW_GyR@MZr_YKpO zg>;j2_S)q`0?z%#28hNJkM!J9pE7-C&rZB|&?zB0M<|dusK=70cY6|&T_|y3Ooif- z*F`fA5=_XYY1aU4s-^x)D{&qlT22V|7w3iSnk|WD5E9>9xM$LP@j|gKZoA z&)IWRWH}28WLG@bE%W3eELA7P^FCR`HBiT7uQw?`8hW{TMm_6c8VtJJlZt4?k0xE% z7_&bXl%!;~YeFqgD*as16_>Qijr!QTM|raVEB0PyGLo3wFY1t((oaVlQ?`(BHmgnK z?Pe%!k0oHZ#Um6L6DWEWuKT8+Q+0*0C}mQTGO~Wst+&^6A@>NVrAm%B?ami_>__dKrdarcq+R9qDTR6rQm_km{g~Q-O zpZ}vbVk$KQ0-$(G{uPVFnYe+=Si|u1u4f8GPfZNx7u2ht70@GYo(PSHjvVmuhWVpTr)4uDpyz7l7Gr20$^eMh45{yWJcC_aKvM zPYU@ci(ISni!%Z<6uOR-ubPuCdCm2T4XWiF?F`>-FkB>HaXhBawm}NZ3aUzgxh|0u zHii_OXKxLK7I6I5b9bStRk&Z(%mp}Jgs7Hh*O?^J4G8y_-KSXg$_o(>jx_|t`NZho zh!$_T+8qHsIYCLWqhDQ=YIe5~_e_@QVb{RAd6sz;=WD62*?W77v3n~~C&M&8B`zoB z^DUUWKbl`#Md!z3D}@m;1y4tvd_=hfE9I)*);G7N8Z@KyJ8_fs^(>%FdkIC7wi*ThrpIbkw z&^cJiB;lmpd>s_;%s?tvJ|jdR6`ntK!^Z_%Z;#{Ae$5!=yEprwhAAZQg4m8S8HVR* zSl`&vTOaMD{iLrkQH;baH}E{_MdsF8VTFnQynXdTNzB>NvaEjiZcPYI_5jYQxvJap ze6-=3_@LYl)^4BBcczYRcYJlfqx>WE3XNhDQ$wR3zmeX<1rAZ1&YUgY{Y@E)Iqs?o zV~1U|-MqZpbSwjJf<%8{mgF-)56qr`$Usb0=;6HwOiwJunL5!fH3AZNx90^-zILQr zSGEXl*-trq&}O(-0|1R?q)@w^r)D1%^(^{k%V`1mbwpY9*e z_{s!ltwp1NmvT!TyyKYWJTASwb^Aw^>A5eR7gnmfJ0yKexnOEw4#)EH0t5Px*{`<- zQK_1kN}c$)fVoIf=8BXlH=d7nzp$3~op>AHMh`4g^!O5H?wdJcPLx;uv`N z8Kt)O+fiV+qIkLha`H432861)OpVG__nWS<;OA1K#80~{$9il&{ql(8agh%81y#^y zw!_*Z2@W^OdE>wu{hsHk&+>D+4{`xgpA<2guJnMm)YS%`sE;n+GqCs3ulQS{!XJiX zHvQuvG;RJn0KtmZ?|(A)5R2!ZNd)M+F0=)iFxD92ND&Li=>N(g+W)8w3GN-B^I~Gs z#N!xAhVZ92;xd&ur4^t8z(5aIqC&n~yjy1mtI0OB)(*34dHbln}*a2^dX z$}8P--KP{5Mm!t;)AN5o{@x?PbW-6(s5(EJy< zc?RoRc?~B}I!u_j?(@F~6*FLp;8lQ@*_neuhOB{rucrlB&(*sSVQ)q8h_Fu)B=ymzxXiGv zWpQJA>hN~cc@blx6uFGlU5_E(0WZJ9lj9PmCg<2U|A^7$3cvG!L^qZEQo~T?7C*`o zlbI$qqLhVAn5zTIS`mf#`0K6{3VNMDCcB!UeSUOuKx4W_T5twR@Nnt(_n#_;@t*cr zy7@|kphOx7T^3knMu!0o+}*m|E!IWANx4n+w7f~TyOH-V#J=M_a6s2#XW$dt5yfCa zy0W^`aeRs{xZy?W!PqoCI5Uw06&Vu-2JZks!MA%z zT?UhtC%c9-J?3I_zUt$x>O!xLPt5}Tk>+4$r)6(b@=wv zBu6aj29~`jUXwnc?43BdtQ)8gu|`R(3(W{}OW#cV3~JekbZ1O`6&2wNqA(z5dqB%m zEI70^&0}oZJ9WUMLi33gNHA>TaFFcAS2n5kx(b^;{l`MC0pfu`e*rz8_kY<0gFY8E&=kAH91J)>mjz9=-2s$>E1o;DGF^|# zyn2xj1IZ{~w(*#!#hwxWTWiDzA5?7^ai`q_)XrA@oEy^xre+02LD_tYdeuXiIXlf8@VM|Y8B4)hbrFRSAr|(K z69U*Bpj{PC{C7nDh86xb_6X-UTh{s0su%FiF~reEI_EpUiwK0e5r5lR@cx1;2f-9^ zL;9P@)o82-0)~Ic&i`lKZxATZopB;|#}BAMu@(O3|76XMl&US=&N*>3r?SCPZ`)>fa1L!l}WWV~8 zE6Lx;BJ>EO`xEA0kzc+=Sk?Z97NtH}y9P;?=>(^-<~RnP^%4YP_Rd}oz%qE zctuhd@g0Xb(8_l>^oGKXYt=A3A1j7+M#7Eflg%mP$P3t(BpW)Ld+Q(+Wd6bC_h`?L74zT>A+c;<|eKt%Fp#UN!tD$-)&SN3TZr zH|aIJU&>5;y)Z$62etoFQwgCM*_8dc9hm^?lrp9l$WQ zTxUn`Cs_#eh~UD615xiyZzAsiQ#m)!G^JPnfr`$sc;O72qX)9=`{))4a`XsMIw{~8 z2HfnoK#i?Qe~c+M1gDf%2%Ida=O*|!Q6ik|6#|DxziNC!oEvy;QR&x(s4-lCtRjF6*E#b%4d`+zi>df?+*(R&iM(%A4T8@R0A#Iw@>t9 z5&iu>;+rGl{?Pbm^lxsu>YcBjQIM3pLOA&rRPtiQxWc@o3i(o z^gj@253WLtf_`%O!|#xv3L?(T{jMEa)gNFQP1|3C3vcicBQ@@2gvGAEe3}m@dxr3Y z@EkIh;TZ^0kwH{4zSz{vr@ zNgKiG=je`m@-JtD5Dtbx{zA9{fv`iW$8^cBkcpqhvZuoj2ienIiQiON z9qfpV0}BUv(vj%-6&~6R^1VYHyRWSF&_3B5SR_1^VIPr>9ujpuZWyeb`*}P<@(wV3 zF%_1Tm7ouV(A$HB*2tU8_m(2}!C!|`#YkS3qJk{G`y52ha6U%ao;WRW_pZKt&O4)7 zF=Qu5C$EiVr|ze1lju$Sw$?sG{!`%~zkp2%Cwi*D!epix`Fh*qI8xcRUK;gDuHe&d zwjF_2qTSEjwpFmoi}jiw-O%bnCY)(aBzeaVw?SJxJ+6TairBf>Tg7GJnx8Zphgj7X zC^^=m#?iQV_2XzKl7hzHYmPG5K-t*zcRVIZ9; zKT=R>V~fHPysw%*0sGL{3_WFW-{P7H3Uuc+c(C^JVZncH3;18lhz ztlC9-uMTXHlKhewdDx1n zBf)Idn3M1XU7Q6?``IFtL9s}pt{hF)B6@p!G}ausu`%$dIT{x;u|8T}6eZh?(%tO; E1Gg2j!T$c&#|&i8-L_ji8#_jg@qT<_(XdGF`G@6YG{JkR?)&kVJPIsj}p(AC!k zXlQ7Fv+y54?E|y{W=2LPMh0dkCMFgZX4b6;wyj&XY~|(L!H(F?hZNY&$Irhu&}Uf-LjR3jg9AkAiv;&fA@>}0^ne# z{e{Mfjz$Qe<)ESCprO_PNC2Q=fU{jo`1^~7mX4l*k%^gwbqj1zvK^qMp`)Xvr(|oF?NA^f@M>ONawOQR&RWT7@sUOj>6|KQ72PK$ zE}@`!P)S)uRr`pJuHI3715-0|3rnk$*7oNwI5;{vyLkIt_Puh|&p+fw=*_TSZ(*Wi zV(-Sq-@BiXfy>Ow#y`k;_@t<~fbc9wRd!Ob@#mQ9UK}S866v+ zn4FrOn_pO5S|+ZL)^O1PbQ`dKAo~Yg9560gdU`r~rZrqNv{&GZj)R^-P>zvP6U}t) z(hi{mLCgrPsPw{@EW+|8GhB9Ft*qQ43WIxR*PyK<`)k00|3k=r0Q(JBFR+!41}+{Q z2Y>?Rr>vb6K6iC%oMuue*;^qxG$?qY<~c+4BjeFiCy3rnPIY}zMso)==a8S=f$_c^ zB>Hg2sh(n>Wq3oHGOsuI!W)8@hujz3d{L$tsF* zix`u?qmD(?7A2f=_CT{>q&(ds<=b*(JMuB7&AOI~PQM-13Qb7Qw|gOHs6$&~q!pwq zemJYv>d_wjHfOoRTv{TgCR_P_HGTOqtugw`P~zi|wv^imG471+J>kx~#T#6X6(yWc(5mb$=GZ${H(cJQLH$LoiBjv`pG+bx+!=J%d5 zmCh-!z4#TMrNAlCQWOP_Rv?#WOhs>{-^mQ2KRe>1=7_BhI+>w%Gjqhm&F-Zcr~V7t z0`S5okzC%03#Hx_XWdudt22s!K%DBy%Qs<-om>_gelv%?U$MVbSU4qFC5JK5M?}mV zU>Wn2IrybX{<-pWt>m2n64#_=`pqthqsq!6{H;cBa<}LpP6*$_(-|SAX4}<+8>7Ef zh0;U1XY>-2+?F3T^rH(|*=ifhJrzHFPz`g?j;0So?r&_oSXpS8BJtJCvEj0+!vm>& zMah5|ZjKNKeg|C{RsM(pv+H}F1rHmv-!RE>|2nEoYqtGf^FFS|kT1rk9dj~<$K0(Z z6;|IO9!E;%rb|D=d6vXUJ+@CR3-Asx%`RjsDXOd>RB?Ab#4*Jk=MPlvK9DxxU6*B$ z=9BgAw1;cI%dNny3M;GnGHt|`R$((?Yz>s1)p9u?F<>Gi+DkfG>CiR+C4AO#y4Iei zJ0IntXWSHNehHKJfitDhD%0V zmd%~p{!&JKmW-_P;i0ESMq;(%{4H$eH9UBlqck}{wqeE4IL&OO@YesT|cSHj_( z2)|>FXPUZ|D%2l3FR5NzT0ZycxnEGMJr7;_V&1M5?o*Rlx0mxGo1^8Dl3Fp&r(1B2 zm!380?`w%UeqVagP(RZ>hkxQ-Ah0JPrTVM#W!|i)7ZG)`Odrze78Nz)liE0p;|B2O zZ|6&*gPG~C$R9QDd&?5@YfGf@Q~kQ#MF!0m!XLP29=To3weOI3Nr-*bfzDt(g@;5% z8J28}m%CM&TMTr4fZR+pdluSj$W~c#RS3D_q>B8QF-rxmA)9ifewlGTsX1ak7xivQ zq@-+B{ewJ5s*KJx|ADUNzRz(i?k0Lp;|B`w;6HvW<-f8@$oHnGw%ru2+@{3uFr1<2 zSXNwCaf?si0%0}$>CnS$dF*LyL;h_ou4ka=bVJx%j%=ZN)?LbbAiqV$;B7Fa<@)0n za&v?e=9~qMWe$3o2hylZsGe0AaFUJ7yNo~^#S~G2P-!ZFP9=v@fo>dxD5dD4=5|s6 zn@VqlU4{LZ>p6ObBZQeO!jv2pxI-W+t+EDUWl=0NJW$6*FJq#aHWW-)VW$EGHt9Ntp4jlkd=#*{&K?5yLsNn4YpL`T zP5T$ul7+)8T8q!uHx4*ygxv+JlVOyl>nPi(Ky}LcJMA^h57Fjd9G-hM9>A6m2fq5;0Qn4D=A?B-A1aZ+&fwWR+t$#aV@C3}&sSOm<9ZtBu z<}x(~_E9wg#I=*66GmButy*EvSSVvNd0ppKzvZ1v*O4p6vT&HAdgNNd91^Y)oF!`# z6=?ZR%5?j>JJ4~E3dGK%i01U*yYIIq!9lZB5-T`@f-3#bAOhC>dF)y-J_!4>04Mf+ zCq8xNA(p~`T6bP45y7fnu^PTA&ql^4fYmvuh3^GH4Voi==L@;+O9A!;heK}^B^#{H zhG{EUhuw|0!@$0R-#(@S4SqpH18`!q)?jt!PiC#e)-U59!1qLOoe|_FBkf_;4#;_~ zAA%s&9v`HnhC!yVD$E=qyVUhM>%)B9gZZ%hPH+1I+%(sr@YO@?WIX(NbvA0@yNip& z6X1mS2I|GhSo9($`Q>O29JCMOg2j=BUr)P5gPQ|Z3u;4U`nV0=9AMs*V60ZZ@n)Hc zHiQcaI-DcKie+Hxzp;vC{POqpHwS-f;BO85-_XFce$?SDI=liI5m@wL2E=)P%mH;B z0D+F0602WC0BBvk2RPx56Ey$BCe{EvpZ@L=e>BOr)0Z{veDp;CZy9%$3e-fOv8jr3 z8+9Kf8RYy>Oy`rWi}11LyW4HyeJ9Two8;c$92J1&U`; z@BEd>(!x~Wa6kE$-j9}zw+?dMNPE?I2e}RhR=1%R*x=_@?2p#naRoF5djqnqLH%pE zvBQ3j*f$3WL+!Po+#dmN0$*cn-}9hG$=a)iTz`fNh1G~fQ=&pPfZ6^TKV8^)2$VoQ zkp4q{?nkRY zB?J5U8l1c!1%C^&ZzT*mBT0-@V8j6Rqcxu(2Gv!A`-hPKdv2I&h5L`8mgg$QFsQpCj6MltKBW-UX-lCGe%qVZbY?bErTM9Aqc%sdvM|2H$v976G@k2*lO4;xdtdpZzeHT8>#eBp z;LbW(7nR)OG8=rYeo7(yh^zXsM5Ci|u0?!VEoz)z7$$VY{M1G9gvDa{-uFCdPuTa? z-3jMC)R1#xXOefb%Hku7-MUt89`2eV$LmK+y|Rv9%~icwE`MrY(ca;{@T7OGU&gQoud_2UhmUcqi@Mk7}22|r~OV+m?I#lRj zXBE>C(-oumtvx)##PP0@-@#zGvaVWxUSHswiRPhGA8J+k)!ZJjmpvfywYB(+cV2#L zsA!^Hzh!mLNb39-D~nkB<0f%k2eWpHXO^l@2rx+R;X#zF^l6N`!6KwvfAWo8J2_}Y z)^>X$%=~BwDH4`05Z3qUnTw=>xub#0MSq-XG0tKe=hRh39Ik&-o~OV)^VcOi4bug6 zi6}bdf{gcE-L7JLmV_Qs0f+YjPcMS~g*Ig6V2kC!oS}|4GL$!|8W1D)MRyDMJ`OoQ z?g{Vg!iZ?f{c}`6!P@nt0$2NozphFMXoJ^pQY-ezk zv$k*GX>HB;8*IFwvRE6)LP^}L!z2i&-G}@+ZOgT^Z|xt~xJG6}2Cb(p^;_BpUj0Mb z`-b-aYgOf+itaz5qe!ylPikH-$`j<=y0mMN)3lIr4XSW2xh~ZCnGTdMi)na2y6<++ zieAS;f%QyksNKwBc~p;~pV-@aRhkL)%4wXL86Xi#mqwdxZex1yT#a7%_OJhp)&5OU0pPMBU)@g(K*_Be;=>1-g#a0E^h1<9Qu>N*pe`ypH7` zZJFfl-03X~ToKI$olkBnje|$ojAf{cYAuv67q>K~Z+v0jC{nX6hf_XbdGOU-DM8(s zJNt^`*TW>H)#G&#C=H8oiVED`zm$w6L-1Khe$|Rrj?k0>LkL!29SMTkm&^K%OT_n zd2PJqLJFXB4?KiM2^5O$Y(Xk&hu)AA6|fv8Q-NQ=zmoKA)8X{1h7ZI|SEO>MHlGnZJe2Y1Y|ePyfl?KadwN z{3#MXtx`pGj&A0?X8z|~Pmm{IkntN_kNg#`13}cl{y)U{BT9F3>Mh)?0+>4sfiF-` zN6GjW@TW>R{ajF6jq9S=npUWw?l1BImvDz3iGUm@)2({gHo&v^&+@_kR8htG@gXNz zP5-1U|14$OA1PbJuNu@ZRIKSFcuk+X=itfNvU^jY;g*&_E+bPqW3mlR_S7=TsQQ#- z{I8L|e-i%!-W!a+f(Y5>EIPzrP4>m`HGp6lA6cLuU?Px_;c85 z-qDrG99eFw3rlV=ki+yu443d`U`Rz{uMl<^F`$+Q-ek$?!iQE{(eOk-_tS^gs=84! z1!}D|4cW>zM$wE%>4TbcxROt$@I1#f4K4Xuybtbui&c(1<+_!oU!8g3(dpAuTCqt= zO0OO?WQ_F`p+de2w&_rTUK+H(^5NS_BfqF#9wv33vSrUBT~ji#mAZc3#K`Q3)k8@x z`=|-c{Jw(iwE=@yb_oUHe$_*0xxdqQL&mG{pC9kd>9y&3KZ(`}@XBj;S!#%@^A>s@ zFZF&nVwh`GN>{plxwNwQi+z>ZV{)&%XU#h*aKm@#*oB39kF$PUC(?a;kzO|eM}kmR zkB;0X^ILisaU1%}Q z11vlottXcXH1J!&0mY~s=XvM&+w{-DaObVNgl8TltLgDaJB9lQrV1VSe7;vmQu6Eo z|HVv8mAo^Wmme5(Elo1d^Tg>&6H+QV2VI6PShQQa=s2A)qcpxF!!;^6J@EgP>L2Pi zZEd|RlVnlud^PW|J^=ctaX^8&N|pNbY?r(d%m?NUqzQ~Y&gW@J!b#`38yuHE<`KAk zn~wAzepYMpmsGE(@aionbWLS8r)KG1d0Bs|%6Ci5A465KY7F~R*!+_fTSc@Y(_uPd!-l#QZLz`jWjn$sBzlE=d^qRtGgD{Jgrh{E~{e%tOzB!FQFycZ5<)sqM@lY^o zWn0z5l*^&f6^VLH#^N>j^N;*Gxh4oRxmXH)9c2{Iyv#PKctueMGLiqFa^ULB=Pe zZNlLtQ5k$-Yy|c{Lk(IYNi5jaWxb`>J5~q)^sa^qh>x3DX22)Mk5CIckjr1OMDsc* z*dC&^QVMTCo-a^;JtJM$R`5rJpK^nGszIdz)JEERZhsi94eEYL1(XJm@9!0is!jJ- z(uLIi8Ngm5Y7Cz8MysXI*ELJT?+Ec7~vL+fD# zzz7sb$~Fm`Y`cq0R9D+(E~amm+nzQhmQm%ithKqA`mg#Q!EW$`pn8<0|><0nXjw}2-= zGWLPpuTu-35pay+YNpu?>kmk8Ppmo-V#VN^p)Zi5)iEcd&*bn?mfROd}nu$h< zVfkldDA#cR%yTL*1s~lL=QmEfO( zoy_{M#D`*??I+sUE;4Lngr0qY{MkrAG~T-hWQDDUX9>vp?^dY6t6&Grmk|6@hXwnQ7`CcU6p zevd|xartM3HAnDc^p70rb-FCE=e2(gVAqKKeLNF*VfFP#ClgZ1@oG}%4_*mS8V-Wi z2>2b$tVI_%f3ww;S2|az09oc6={x27e`+HwHVQetV0j1pDaIPY=bQD?>wLJxo^SHi zpTaeQoOw>ztS?v%pO$SRS#(K;qdiX{=)i~NGX39$0>^6J)Qm;Wx@M+3EbqX0KL6Gg zj#UJu^>66DbINx;){;|!AdIIMocOLRuzDKqA`7o`VZCbPTRskSiTCb)ux`~27xx@| zDgg@+y$%~52F7LM`4R~iWL)2?NwPX;4z!KoM1wMAoW+&X5-wP=WHt&a+|M=-6}@*% zc_I6R0)nnLp@UUtTch$>OiNMwZ~)8xQE915NeXg-vrs#DIdJNXmQQ(0-rl1^;X9fI zgl%5hy*4)Omc+P#0h|7iA?J|KG&+gY<}q|fQGtcs#2MssaB4hZ zb-Fdd!=)>g_Oz`Ye~1{}a~iUy*;5TX581g=kx%E^d{-=AC8h8(A@8~_*x@E%qmeq& zp&B9X2?`xKn7&0Q2ipE(y9Q2~EG}+)*j1~_+4~qHCd2J0n_wnma>C6UqHr8-eS;UO z7^AMdE2h>?ao_0Zon=I~9i~r`x;njxO4g>2sJdim{j|Gu=fzK%bDn6oqYQfV94Gg* z1f_Qfh>Hi9bMh?X5V7T1XLsuj>l^Ca5S!Eyb=Hw&7T@OV-)h8=5sf*kai^{Q6oy61 z;ZA~4o5OuyRyM{2Cmw;=Scf}{*(W~FqQ@fI6a_PtlQ5qCG->U;Qu2oG2aati_7ZG( zlEl%Q|7ptI&y}8y9=+l*$9-I>$o);7=CYnaGh&Cy(4im?XM6(NUReMx*jSSD%>?mn zObW#>Hh7$zxA4Q86^9k3d47rJjr-Kx;B5L<=7MxkD!#B5j7=#ZVV&jq$k&}@Uk&sZ(u+mXbF;kO}&_88hX6NAM z<|e1(6XN9*WaZ-Kyk!E1ii(PXjzNHlNx(@-Ldp4G{<~=eaPGl-!kHq#Q33Eca0obX zH?06U0Kg%E+TJSs`yU)U0wNMJ$~{yxbdaF@J^&AgfB=t(fP{pI2vU21zXOOkNDnAE z#E>6CUZYUi;&OV0eYr<1Uebi8GPp;>^~TN{73~o|0U;6XV>)^UMsA)bPkH(HC7wx2 zNz2H}sj8`KXllLCHZU|YHZe6bw|8)Ka&~cb^ZDTG=l}6jKzKxCRCG*iTzp!3MrKxa zPHx_}(z5c3%Bt#`=9bpB_Kwc3?xEq4(XsKLzb57v7MGS+R@c@y_74t^j!#a{&M$6p z!2t-r!TJ-~zr%$C;(|v+L_kEj#RUiN3|whxKml7fEOAoS|ih9{*~gX2X!a(kDInSdx-PNi5XU^GMYyURkEN5sfc{ zkL7uib}S(?tNq#EQBH|xzVTB> zzO>)ZimT>vC)qUr5KCge1?^DQ>(9Q%opZ@Pic zlm!yRW~O=RNPbkNZ==WEGA>%E8dOB#woFC)f~~58LG;m9g`ti5$)_j#vX#h*{(@== zW^t8om~n;@3zgc4J#qt10kLchBC9EY{+%P2bL$8oBL!P=$_0i;S~DQisG&P*-CaLHgE<{k08;HA-~ z%o(OF)8U=n*_EtDu8{gf$HhW?8C)H0yr?`erAJRO9mZz#XrD)8G{OZhC3Ea*Pz~+O z%r!n@drE=GML|bRO(^JnZ%KKAwy8c$Ba#RkL;6dHHa+K~0QyvE4mpOjL`+xIpdAN9xtaT52THWNqpQmFA^iHZ||dYzno% z3jWpHuEi>&2MCvc1hRe8mh)$pgY>ra`-y1|y9i$T#$tRCl9JZ*NoI^>+|oec3nnB$ z=@O8p4oAs?gE8tRs=S>WR-sZW+Og8oHG6V@D;S#O$=arGP|6+vt%!8Rl%C zM>pAFzRM*v_0((CC%Hx7e7WfD<}*I= zwM4uGIkSl~v8X`ziE_v}6l|v74R3%2b6r(sof7K@^pjS;2qBBBd?$J0qAuoya7*fw zDy|b6B?bz$kKBCgTXKzpMO(3|`gyYPt_rIv$~8GBSP!3^eLthQ58MEr!5*6^1l)5n z84IyeRsux%&Uo9a2~dFy1!_KD+&LQnVUOShU4?kfce!^wmQ0DskobPi%b+@wEPP%V z69vhzFG-GKIt?kqNSmOlFIQ4)h=Qq7ClH^(-$6sgG z%di(K2=j2{horypNEXIPxxj+nRnm*QBO}xGgPQD{#6z1wy>e#n42%7t3e*8CgE}~_ zJ3x*DlG?5ke6RJ}lC43E>DTG{=S;UQg3hZ#M=U@)LNED`^5{>F1p+U*&_TdA09UWb zyvhwQ0#>-SvdFwD`Ja+w?j%EhRq5X<*szxi-QWS;*l?A^4x<9KxO1=LdKqMU!x?*P z>gmBX8>}B}F1}(n0OU7Et&7Zq&KUXKhesFm7j24**L^Ke(1vUvr3h$X=z%KeuWYtv zs)j!dP|qJAT%uY9HF@0-vu_fY^1<^4`0=}n)-Xo4i{Rgllk~d{tL|*5|F@RL`;Mjq z)_w!rF)x-+3n@_BJx4jQBEEG?&Y42Uc@XH9V$dz}f49|m#-Q{Vqci@AG5$Fe|Jo!0 zY=yZX*6}+lJ7{J=Zhyw!s$;uF+Z;e&ptuLVfx!P?R}o!%vS5VR2#bRPS<9ugP7Pr& z2`mT8MrZuXBDJS1b%Ujz{KHKDZ5+D^FErLdbxXoCLXI2)u+Mtwp;XWPSigKfBVM+DO0IU~Eg1@lu{I;#B9+^@;)KqSR;AngJYil5OVT8c#n|I? z8xMA|vPh!3Y@fl=>9RVSWMasuG{agX?+L2D0le&YvS&)Tl@KQ_L{P1GCVM6;s!IKw zOGR&h+E2=*IF+Q6wsbQo^e;~@Bpu&wzp}BhantlO7p5L97A8CsZ=LNz9c3k(SlP6l zE}{9!`ToPh&5GJ-?D?#y`6N9d>F3`^sF@zpgqEddbP)8|_79KaYB$+erqw0PO?@J7 z@pzr&{h>B4He$e)q1XNq^uU@wRnQUW5viZlQeqd1vppj{Vp_H~BNhx#}}}Ji^Jja9Z(B z9d@I;xC`)wqLNhaY+`1y8XMIA`S{9eS8d=}!K6F31;c3^o~MkEmq2JwL?Ur4IQ>zB z#h#LK>G+qbpt<@WOW0vFhmno2=gO@u6gF$Eq_#{5SE~E(yVM9F=nouam%1jXN49=L z0i+Mj;7IWb2;Iw%|WN zm9QAfsXaft0irDqE^JI8;%|4q)40@JHr0?8UVVOYC|D_vUNHZ0Lj6ox7= zl#kp3mfC|IVVqVJ$;!cb9!;Ia>}M(Sm*ki*;UR}wIJ#dEY8voTQ?9b8E9s*!wgpRU zt-8HczagY;SmtWiSd%F zYL_n%b)hw&qVfVQ5ob-hC?QEoZRCiludANRl6ihxJSXClwl{gU|0LaGUqE-j*z~%^ z2(6CdF~P&q+}+b4r_2#{l}3&=uC8L*;hm-7Yi5^~0~&1F@9{?JLfsjL*h5u8PZhrJ zvj#fm^?cbRN-h*A2~-JQLJIO1s~jL}$f7TAvtMUqO4*a&*q+A}v?%F}4`8B6)338> zWe{E#x9w$RY`hd(Da z2F&>@3O(|>ti*g-b(U55O=u!Qo-a-modwSKW|bBs8Mmm`4<6I$e(N{BeAhIbc;CKp z&7wRl>1RQ(s`wsOT&ihJP*7c|ylswDm%S?oCiM>DdkLDw!(RE!vnR9idxF>a^3{5% zY4Ow?$^@uf5y6SZHRcSu!5t*RBxam0RI|;eb_#+|w)*iJn>#wmm#iYtAt38zMk{uWapDAnw)ZF#-2v%&c$(=o|^&ht|sM~nF+QRs~{r}>W_ztkGUd=y}A<(viHVqCGp>U;~JKGws)|$putg? zQ+~+N_r$VSbuY#5%U-e%Srk%B-^Z=XX;Bf5e)Flc(7uQ2XC~H;g)cX1q{?$lho_gO z3e)Ee>2ez>yx&*lJBwg58}Et0sMbB4DlS|7T#4PIF>4zDceE{Vvh#>9!u!eLWQwY8FD}G}ugCgcljUN5KW<l>?(MOHi(<9x5-Cmi60PS(*5?PZGDm5!ONH6V~g7hr82eXzw(GJh1(a zmd-DHI=)%?xo^U%^V}}o5TWXLeyZY!%;5C@j^lEc88fJRJfG$1A%eD4Q0Z=|&Dq^X4FmBdNVFB)h3$nidKU z@2T+r1244GL3y6fT?mn}Uk-kfysmv;9&}Z71DNYd+k1R$S$5Um-a6zuf7hVBW?p<^ znf>c~{}Nl&%K4<-`|Isrup6L{9zkS#TtnjB{BV?OK~s2h`ZP~8 z@M5o1vQD6_mJiIyd?-P_V@1YMo~i7jf+Fsk<0$m%%;VX8hN|FuuwU;wqGg|iyH#Kb z%$1Nu)jC>WE(xox*FR-iq_N9jU*ADe|31ilB_-vagI<~)eQ9WfRX2D4ULU7za@4S5 z0Sm!Mt^73#>|uN+!*q9Y(9f=s^8AvkZ1X|diq6Le1f|SD<)~QM1R|n#9O|q*xjdxz zdeOVT()QL7e{p&!8?AfAE+w{D-RC|Ai+_~FJkZ5+w_%JA*GMGVnCIErLx?vud+ zGJW=@!}nW>0>E<L4@MoEHKTBu_D7oZ$s%8$x%K z@0UgkRtW3CtrSQX>rTs)CO-NaxII+x-7vdHpE-x-KBs-PZ3oGPM%!{wJ&cMe_B7{J zw*(%ew2d^y6=SKXw*91}mE}psvq<`_0@Mv>gk<-_ezy<{Iqh!#8$i#@ zLrXc%&mOBe5J|kaREQ)l@DE&YaqedM3U+$^>H!lZ7*b>25-COV>R`wK1LF*_O(+Z? zhv`}lYUd5fjp^In0Mv9+EHk^i#&jppk0NVAVA$Y^a03LUUy8JnACcXzI>FrlZDZ58 zS9P^))zHxT5AF^1H$dE{tCR)o3v8VmU=EDa7uK%(_ff7;3U7ct0J`s3DM>b?8#C3= zDfByeoRL|+gdN$TdcX<^NqdDiS4z>Mwgcovx1!=MtbtmlP4Wd2E<{E7KeB-8vyU$# zIip`%5iY6b_q{U{RNml^)D(H`#Qvi0jT%LinW01?nNuQZqoEabJt~3_!nVf3$h7Oe zN0M@<(aaO1c4w0;j+t=z9@8Sq%J2o6_;=@!QqQ4RhTEijLQGxUffnj}S>@*0&kq)K z9Gy*!ULY^Xuu9KRu(!`-s39L4>*T^Juu0Rpb4fDZGM4a8*jG!f6YSwDBI^b9G20>>{+2OlV;$qfdx9z!Al5aN9REA&iRep6Lm6De}%WGC8VxV}L zyY^l`O3H1{Fz`Eztg7<3aSi4@4_59UmEUs0LgG##1fIeg=SqYqm#s0cUmmTk1ixx$ zz-g`+n`oT7AQH1he<@Vc?PsXGP4K!}Z3$lbOA{=}wb7KQqiv7-;}D*Ilr?M-7Nd5ZB3&dL57N1n; zV+fsJ0bPwtm+|i3(zt4o)Cp-40jAz}`X&Z%Pfs^9rUm^ix>nW)dkF<_@FXgnawhmq z!p-GbgaxqC&A;_z>Je8~ets!|ms1|#QP4_H7W;T1)*r6WCtV-z#-rpJPzBe%=v$thK7!@oxx4YeV zoYq`DKKRntKX9>ToVGkdd*CxpUQNM66xY()Werw<+LX>`yiz+8JIE2g*3q;O5&6}# zGXq5Bu+c0OGb?PXI){}&tW{S@JEDewU6yj*j7UonlMe5CSv~|@Sb)u zRyKS;_pZ|&b0((Bf9i7*`#jP>_NQP>hQx-xx7OCc>vf|~^YX=oh=P5MD3WT5TuDt0 zK9>%)qF}>}!&_==NZ3yfI#R~fp`_*NYa$?%EY1wK(vFeO{rh7U>L=2?2z1LN$;c=? zvUO}3?4iW295nA$;cO|8*wYCxr>GD%@Ds;oBd=2m$y6`im%(YEGg+AJ(D@3(Hnr_N<>>Q`{>FPfqz%#+xPJ4 z9V(|MJ4K#y-5I$^&VcCK`}d|3$s&bA445mwbv+c&e@2<&P$WTtXo(;~f1a?j7?E6_ zzATcxDSfL0V1h~3D8BEJNHF7AWyCDQ$$}AZI{SPx8WGo3imHo#nIG$ zAA5E&4`#VlW%TAg|P3T=yKi=Qot8Amd2;KOPB1Cz*pyRRDAw zyesJyvW0a5Sq+ijmQx+&U7Skh9G8|Z_eF`jporcN3ZU+kK~h-GK&#LCsnW87huk!} z&q^uvTcconJ1nkF;6%uRdfQvRN0tZ)M}kZ6pqVp}nn9BAni;u?`b)>WDx~_;a=3th z*dS|V>yWE?rqlK-j967~o$>5NQBwSq&+wx=1ac)`(43n$>}-&6KPT7wQkgsLa@)Rf zbVXG=WSNHJr6Z)k^1N36WPp9*=Oy^aDy&70o-sZ3RPNZrP}D6ugT{h zgr!RgBtc|webSK}>t_QfvOHVLod%TgV#M<0$co@*&*tJ-0_zuRyfXWkX%ZifZ9=wo z7Z{R(40WJJmCNyqS0B8sXbs2^TM@8h<@z$C&XFMX zxn3aw){pbeXv{b1G}I@=Fi;s$P*N84`-(Nm&Acqk;vf}2N^HMAn0ZSVl;KC9+F8`> zMFDmo1pg`k==jWgdYsq#YVJ5cO7FFQe@^PXwX}dYXz|z!Fh-)=I|D|1d}o0eg&~Pg zaO4I(JO_q(0zAF`j#nE+ETtM{&UONFi{{h2@GJ;?RCn{R54LdQ3 z*Kz7I&-*x{bTkIJ$Jv9T7&v*J@Ls`*4qvEc4omRt?3_Lu4zH!c$FCK!H{z_B-Bmsm z>!E;%)27dsP>l*CoNuQmY1lTZq(s4PiE=Y~j9{y9hd zCnWwREw9$f&fO^$c@RW*yM`)vU)n7KyXepG!$ zp{=|xuO%i=I?OF8!%{e#Yz zk+>#4%NwAMp3r47tTJqv`v~*7@BVe>NxN_1RzSKq)^OJ$u{Am0`q_Becv8!pg486W zs#YgE?nFwQJBvGVxsvf~59@3U;wm5C$q_-ND?{D=Nhz_nb64&|PKd$*^cn1bOxpf4 zp9Q4mH-J{l~8I~Ae z23j8iXT%yk0_OtxeU~>~#hNN1${*VZs&vMTtpzJkLlAu5bU)cc<}GSwuF8{LGiY<@c&9Fqyk*t!BmcH{v*A(vvMR15|AHaCq>;_V>? zoEL(11mr7xBtD;U4iOTs>r`i3FSM_MK78ZUUG1@bhy<{!=umq_lf|q2Ih9y%ab2Y&$ z05M`1_Xub5r+G!qr%;_*tLLOewX&+GFA+wS3}*N8%iGVmq#~YICu?|%k$g9ap`Mh+ zAqd?Q4bp;#4@>4qMn-Z{`*%wLVN@(#b86nWq@|*GYx%+|ZjfcVOvY{Fc zznqZ*a5(}8cIPs$|H07%kTTCN8mB6}8?#dH<@_(xf`58b;%?wjx*M}RsnWo1j?q*k za4*OF_MXA{$HM#V;`={x-H!QDLU*GG5D-A0MUk6&&DQ+o?jG6&!oBNa|LAJ}cRv|# z$9%QpyZHt^JR^Nttap~rSp%Bi-Cg4Gf2O1Ouh85L`l=(h^Nrtq7maX;vk6i07DIGO zMR!nzw0sV5{AWjG%~;sk5gt<&WOrTtQy0xK_wCC2-KY$N+F^?HLiLB@Bmvn~k(~5C zCkiKydXKj}#YRhu+`}8v3prA`QA=BtR=I-!0W|Le$)i(Y z@1iJ%(fAK|lT?{9!-0v@;ZNy{AJy-#G&nOD)n4*D$*2J$5BoROq4TWZMiP>h2#4Me zI}8a;JNaF3ld3z~QBvrkP+!1a|CxNK*gWdbk0gc7O^uJ11`o*xG{TqPde-*D2(iif(&bP(i_4K*43OQ(KJmqI< z5%~>qkqC!0jCO|N21qUMSfRfG{d)NvP3@V0FAmv zsUFlL1TEv#09r{WW{0_X0;y_XQBnf%PVZnx>R;<)|mYEXY7dqp3 zp*I1=M()-*zuKHFD8dPm)&0*mHJIAXvW?wxvx>ZbpDDrtsltUiKTl&HHA}0 zgsDsF>gp;iTnOhsATTJ@_US71)Ot$|H(ejAl~#PWs1T3w(lsWG_<`nZVkKsoPS#w1 zPbGaT!l}ARrBGcx)1659?9#5e2^`RzH{AFYg z8L#01zROmVpU!wm78yd(Nlfyu2D?e0LniKb2y02vWh1VNXjeLC&nTr${7hi7`0%Lv z^SAF~0m@YvSlEhg_RqdZ#OYX^-T*!qA53(jX5F25#+A#AKM9_-4rLvE_=?p+IPW$l zcNX^RmG##ta?Tx@dpL>n5;(zbu=L}jEK;f~wz)9zN}Q`SD3`GDXp?|UCsh32XJ+#2@J2S1Hw&5|gUC1P>U*qYx9Uz-`q2YhYES){NGAotVo4eF@Ap zBsASQVGmb|!XYMA%IyT);#rQFK3PRSm4_pK@KoBpzW!@1%3(o|5dU_egHo9U6;Gr$ zHQ83t=;xp%w#{06Lnyy?(3?zg0si z`^@iRx``kz&VE|9QzQ&;X9-PsLUX1gD5=_=e$pZ?5+dngc1U?U>yt~jhYRI&OZE;= zBFdM^>!Vf?Wfh~8F2+sxMl`kdumy+UvvvN9z%DdmmyzlROwdOAeO7zcr50uCT}_pa~{Kd`ME#9}`xZwj+`$nPwiZ z7l`<^C#UWPSeK=@a8c@e5|;QKZ7%U*Uyph7jjK^Nm|)YgI;=Pww;>gUM1QC~^Ib2K zco$Q`!q_MTGRt{RJS5{p^+}9kXUfeWneoSWEcNIU-eYvTeVWHCLtf!$eLF&ZB53b3 z^M4Y&sjP_UPllL%e-Y_Q-J>G>dOUZ@pj>|hrtmiTP2JvX!C|X7AnFB?(lS7aS;C6d zcT2JSTxRL38z zA}uSnCEJi_9dZ`vZsF>=M*U8cc=W2VOAc*?D&xS0@4PZnLW~;vwwn-}q zUp|0^eC?h}ek9l=iK`jwcDqo7@InHE$Sd7wTf;OJtxDMMGr5FD&Rr=2Wni?19=-_s zOGeWXk5vGW>$7J1AC}B)JTSG>JQ=~QY4*Dk6QaQYQQUp{(_JNS#=Q*FohN`vp!Fj# zYYu*9A`2F&nO)SC#498kPUqpb>LnaYM;ow-AK25G#o8o#=gZ2y>D#f-_(=7LIw1cl z#r*~lj<^A4E5JPGiw6Ox)U9}y1vra6G`>d(!tU4oVD3W-n8v<43H2rab=q*aE^>8g zy;uB&KKuG>|2h5)+ZOK)ATsyv^xv`)Dcyyx4nZ$ZX6N3Re1*ax79!mM8?40oa(aW5=*52j9dsz!JYxLL&3cE)9r@lkiTkb4n#tJ zQ-S=a?KQOVeD_lL^x6YFbmryl<#jlF;;{=m@4o@wPr{fir1vyR@}Jih zCJ$l2hWavXguIr<%OMa|kwW?j9N8Ep+N`AI$Ai+cLxp9Q{7g*hRNPA?8y(fc$8G^k z&5?--k(DN;1UZ=mTi{5Pd$&eB_A32xsu^MJaFz%=SrjS2s+5~fH!=iyF1~aT&*`B+ ziwjf>XGPGB48GjSESwT!X{?N=!QuT#Q&BKE%gFm`&e3r*m`P486EgAGk+D6#E;taR zjo7e=SGxZ)=z)A34%r4D&I^OjIjpO$F%8|Rwi>1<(fLNBwW*%PN#GT&ET8anI9>PpYZXRP;%(!d^EvpC1a?_$1-FD}ad zmslftDBk)qFYkhdut(Ucu}kjjbykI+dS`)JBQ$KbIa5!dzAy7aQc2YHx6xeL(3 z{nr#xX#OgVQ7EBUoWf;EylmgR6m@&Z{{_2=85d27pp0kuufvuRx|0lz4+i)M7};g$ zg5BK5-s+KjVs+4lK?;HcFOQory9wmBzxbUoH_n4Vfas6!@O)H?-F%=(IQ~o6R4c3lH;`*(@-?o&TB)=X9kuZCvEbSC}WJ-!(3a zA6Iu}DLk!h^yvv}MyAyA>7pZO6DgXncCChDD;;9zjn@~SC5D{%?!vCX7XwNRGrb@EK^?wFD*gKTg&LS_=1(?(C32?qE+&&V; zEK)g@sIK~+G%?Ui{PI)GX*wciouv>elegPK%`D3eP-A*9dzn?9sjZf@V5ITcJYQy+ z_*s37!gsGXF7d8v?L=$KY83i${xmjHLYR!EZfRW>OkIe@#@kfZQIoyQ?{}0K0R(dQ zP^P?FJ|VXpE%XaVCNC!1p=#L;$Mrvm3!f~_=yf4wW(4x5lG$$q^WR)l`((1jvUH`> z0{Pxr3XW)vKF7yO2)F@oUZsZUaV5sDy{o)lPw#>5#D^5fjUBZwE>1)~>!@Hf6!n4kB-O)PNa9yuYjyt0A6iHm&b9H`PNZe8*s(z5!I|-RtCJV4 zuzD+WBMX7nBP6F-nyI~j#iD=SJ&`aNXTeNcAiX80DEze1?J6TvV|W|&*ZeCn7`8|z zm|OTk8jPLLs$jkzA8e~!nR1Kk$=R4$Olx^Xs@l>j8s>4phz{OLgi;ztC43v-D0D0_ zTv_=a7S}&KHlOXjUU@UTNKY%lSSnp*jb9LKUI-ZFJ+wVX zQ^NB%pW57&&~oe9YN$>^cbVxnlK;hGg|uAX(u*kNdV^ zSC4~DRv99zVGO2P?)KYHoJmum4=#I8j6 zGxV2Mp9B?{109CbTOY|Lyi!rL+i4_|7G*Tr$BH?*Oo(IS5nI)9g`)~`Dtd!jWz<2j zbX1V?7u&x{2r=-M>rT5I*MWw*KUd$GyI#F=WHpOFu887k-L$uL2-w(bv9(#>b zVA2L!+trxEqo7TkL}(dp7`-A3`(+qBNYU)ooRn&{6mfTLz*Bo;yP?z0TZ)CEftr4$$T;@L&b>2A~tU z)OGOCC^m@MEE7pM6fzGukl3#!KV*Y0f$Ihq>DTzqSMsyx0yn_K+C`z&Z0L2hboHi# zW*B%<4J60~r+akJOIyE^uYNBC?7o5o^GJHm?m2-8q|{n#dch0&cc#z#is1l zK{s^4V~4ZXCiq8!?0`}<<4Oc}Wc^cd2C}X+K zLf!%3`oNi9$}uZ=k`9b1Z*|MQl27?vw@gqs5AzuNpY+A#;8DNz8$f0CS_yhmgWd5Q z`y5~70Mzt1)hMrw@5o3&vh6>~Y|hqG&SOOWKu`}N=mjOkZQ*K$qy)QwB``aQuHg=< z{>7h!a<@=NSy#Uf>VdsC`tYAnq0L92c|d#InulDiaPk1VP-Vv*6K}C$uO0*!_B%T^ z7~37YTlI!7?ob%VK!2PNF?BS|yMd<}Zw)aE8sZN6?_Sw(Y=}9)E*RQ9Pi~QPIsF@p z+taP!az^g&+iN@5 z-}5yqm&mo#r;aa}Iz{GPp(C}wJN`@$dgto9X1Fox{$A`j4>U2?_*ya82l_69p4+`v z1P`Ou=%4B7|G$&w6jOqvi+_=d%!5YwQ$)V{ZQEKqh21tm|7-k^EBW7=Ah=ld_gcb* zw@T`y&mIc71ssr{>52R$?(elO%JslTXcYqealFCQ*)Z<{9jX5fO@Qzn&RZ6O34%kp zS%dK>N@&f=M?+@z&mVhb;6}!!b9a9wl8{lLQN1<{#iDJWdxr8cS87cQR`U z)7)nMa)~h8r>!+u5lcyJb7~J`>PJDL3+5lGiR`h>{3%zl*Ag8i-Wm(QR}pTw9n-`I zTfP<6Wi|NPl&P`GO=iw%WA4S2WU!!ich&eY_=`xnZCp*g6n9;;qcYGI*#S6-&6@E0s6f{+v%zNEH=f z)`NsdhJ7lj+)JNpEAeyCV$-m^DqyC+$83O_FR}tKvWh*1ycj9-3)euOvf-}ILg?iW ne9)GvOrJ$*<~D=|5%tZ?$V_WS)0U(EiY`fzmh=I7^XvZs2IYIN literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/workerTab.jpg b/sample/EnhanceSampleArk1.2/ConcurrentModule/screenshots/device/workerTab.jpg new file mode 100644 index 0000000000000000000000000000000000000000..8fa3260d093937f7266446ae92ecdc33fe38e977 GIT binary patch literal 14152 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 .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +``` \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/build-profile.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/build-profile.json5 new file mode 100644 index 00000000..d618c219 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/build-profile.json5 @@ -0,0 +1,55 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compileSdkVersion": 10, + "compatibleSdkVersion": 10, + "runtimeOS": "OpenHarmony" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "menuitems", + "srcPath": "./feature/menuitems" + }, + { + "name": "capabilities", + "srcPath": "./feature/capabilities" + }, + { + "name": "common", + "srcPath": "./common" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/.gitignore b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/.gitignore new file mode 100644 index 00000000..4f9a9738 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/.gitignore @@ -0,0 +1,3 @@ +/node_modules +/.preview +/build \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/Index.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/Index.ets new file mode 100644 index 00000000..eea56ec4 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/Index.ets @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export { logger } from './src/main/ets/util/Logger'; + +export { CustomDataSource } from './src/main/ets/components/CustomDataSource'; + +export { getString, getStringArray } from './src/main/ets/util/ResourceUtil'; + +export { BaseDataSource } from './src/main/ets/components/BaseDataSource'; + +export { EmptyPage } from './src/main/ets/components/EmptyPage'; diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/build-profile.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/build-profile.json5 new file mode 100644 index 00000000..43199987 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/build-profile.json5 @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/hvigorfile.ts b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/hvigorfile.ts new file mode 100644 index 00000000..9c3992ac --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/hvigorfile.ts @@ -0,0 +1,17 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').harTasks + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/oh-package.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/oh-package.json5 new file mode 100644 index 00000000..995e5e09 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "ISC", + "types": "", + "devDependencies": {}, + "name": "@ohos/common", + "description": "a npm package which contains arkUI2.0 page", + "main": "Index.ets", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/BaseDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/BaseDataSource.ets new file mode 100644 index 00000000..d65bcf27 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/BaseDataSource.ets @@ -0,0 +1,75 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { logger } from '../util/Logger'; + +const TAG: string = 'BaseDataSource'; + +export class BaseDataSource implements IDataSource { + private listeners: DataChangeListener[] = []; + + public totalCount(): number { + return 0; + } + + public getData(index: number): Object { + return ''; + } + + registerDataChangeListener(listener: DataChangeListener): void { + if (this.listeners.indexOf(listener) < 0) { + logger.info(TAG, 'add listener'); + this.listeners.push(listener); + } + } + + unregisterDataChangeListener(listener: DataChangeListener): void { + const pos = this.listeners.indexOf(listener); + if (pos >= 0) { + logger.info(TAG, 'remove listener'); + this.listeners.splice(pos, 1); + } + } + + notifyDataReload(): void { + this.listeners.forEach(listener => { + listener.onDataReloaded(); + }) + } + + notifyDataAdd(index: number): void { + this.listeners.forEach(listener => { + listener.onDataAdd(index); + }) + } + + notifyDataChange(index: number): void { + this.listeners.forEach(listener => { + listener.onDataChange(index); + }) + } + + notifyDataDelete(index: number): void { + this.listeners.forEach(listener => { + listener.onDataDelete(index); + }) + } + + notifyDataMove(from: number, to: number): void { + this.listeners.forEach(listener => { + listener.onDataMove(from, to); + }) + } + +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/CustomDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/CustomDataSource.ets new file mode 100644 index 00000000..24104d2f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/CustomDataSource.ets @@ -0,0 +1,81 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ + +class BasicDataSource implements IDataSource { + private listeners: DataChangeListener[] = []; + + public totalCount(): number { + return 0; + } + + public getData(index: number): Object { + return ''; + } + + registerDataChangeListener(listener: DataChangeListener): void { + if (this.listeners.indexOf(listener) < 0) { + this.listeners.push(listener); + } + } + + unregisterDataChangeListener(listener: DataChangeListener): void { + const pos = this.listeners.indexOf(listener); + if (pos >= 0) { + this.listeners.splice(pos, 1); + } + } + + notifyDataReload(): void { + this.listeners.forEach(listener => { + listener.onDataReloaded(); + }) + } + + notifyDataAdd(index: number): void { + this.listeners.forEach(listener => { + listener.onDataAdded(index); + }) + } + + notifyDataChange(index: number): void { + this.listeners.forEach(listener => { + listener.onDataChanged(index); + }) + } +} + +export class CustomDataSource extends BasicDataSource { + public dataArray: string[] = []; + + constructor(ele: string[]) { + super(); + for (let index = 0;index < ele.length; index++) { + this.dataArray.push(ele[index]); + } + } + + public totalCount(): number { + return this.dataArray.length; + } + + public getData(index: number): string { + return this.dataArray[index]; + } + + public addData(index: number, data: string): void { + this.dataArray.splice(index, 0, data); + this.notifyDataAdd(index); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/EmptyPage.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/EmptyPage.ets new file mode 100644 index 00000000..c9b0c800 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/components/EmptyPage.ets @@ -0,0 +1,37 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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. +*/ + +@Component +export struct EmptyPage { + private img: string | PixelMap | Resource = $r('app.media.bg_empty_page'); + private message: ResourceStr = $r('app.string.tv_no_data'); + + build() { + Column() { + Image(this.img) + .width(120) + .aspectRatio(1) + + Text(this.message) + .fontSize(14) + .fontColor($r('app.color.text_color_second')) + .margin({ top: 8 }) + } + .width('100%') + .height('100%') + .justifyContent(FlexAlign.Center) + .alignItems(HorizontalAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/Logger.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/Logger.ets new file mode 100644 index 00000000..c5bb2fd8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/Logger.ets @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; + +class Logger { + private domain: number; + private prefix: string; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + } + + debug(...args: string[]): void { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]): void { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]): void { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]): void { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export const logger = new Logger('Sample_LanguageBaseClassLibrary'); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/ResourceUtil.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/ResourceUtil.ets new file mode 100644 index 00000000..ec54102c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/ets/util/ResourceUtil.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; + +export async function getStringArray(resource: Resource): Promise> { + let context = getContext() as common.UIAbilityContext; + let menuList: Array = await context.resourceManager.getStringArrayValue(resource); + return menuList; +} + +export function getString(resource: Resource): string { + let context = getContext() as common.UIAbilityContext; + return context.resourceManager.getStringSync(resource); +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/module.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/module.json5 new file mode 100644 index 00000000..922bccb7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/module.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "module": { + "name": "common", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/color.json new file mode 100644 index 00000000..cfd45be1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/color.json @@ -0,0 +1,36 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + }, + { + "name": "text_color_accent", + "value": "#FF007DFF" + }, + { + "name": "text_color_primary", + "value": "#E6000000" + }, + { + "name": "text_color_second", + "value": "#99000000" + }, + { + "name": "text_color_tertiary", + "value": "#66000000" + }, + { + "name": "text_color_red", + "value": "#FFE84026" + }, + { + "name": "bg_btn_red", + "value": "#FFD94838" + }, + { + "name": "bg_btn_grey", + "value": "#0D000000" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/string.json new file mode 100644 index 00000000..9bfeb225 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/element/string.json @@ -0,0 +1,64 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "tv_no_data", + "value": "No data" + }, + { + "name": "deque", + "value": "Deque (Linear Container Deque)" + }, + { + "name": "hash_map", + "value": "HashMap (NoLinear Container HashMap)" + }, + { + "name": "hash_set", + "value": "HashSet (NoLinear Container HashSet)" + }, + { + "name": "light_weight_map", + "value": "LightWeightMap (NoLinear Container LightWeightMap)" + }, + { + "name": "light_weight_set", + "value": "LightWeightSet (NoLinear Container LightWeightSet)" + }, + { + "name": "linked_list", + "value": "LinkedList (Linear Container LinkedList)" + }, + { + "name": "list", + "value": "List (Linear Container List)" + }, + { + "name": "plain_array", + "value": "PlainArray (NoLinear Container PlainArray)" + }, + { + "name": "queue", + "value": "Queue (Linear Container Queue)" + }, + { + "name": "stack", + "value": "Stack (Linear Container Stack)" + }, + { + "name": "tree_map", + "value": "TreeMap (NoLinear Container TreeMap)" + }, + { + "name": "tree_set", + "value": "TreeSet (NoLinear Container TreeSet)" + }, + { + "name": "vector", + "value": "Vector (Linear Container Vector)" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/media/bg_empty_page.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/media/bg_empty_page.svg new file mode 100644 index 00000000..038a4c3c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/base/media/bg_empty_page.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/en_US/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000..9bfeb225 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/en_US/element/string.json @@ -0,0 +1,64 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "tv_no_data", + "value": "No data" + }, + { + "name": "deque", + "value": "Deque (Linear Container Deque)" + }, + { + "name": "hash_map", + "value": "HashMap (NoLinear Container HashMap)" + }, + { + "name": "hash_set", + "value": "HashSet (NoLinear Container HashSet)" + }, + { + "name": "light_weight_map", + "value": "LightWeightMap (NoLinear Container LightWeightMap)" + }, + { + "name": "light_weight_set", + "value": "LightWeightSet (NoLinear Container LightWeightSet)" + }, + { + "name": "linked_list", + "value": "LinkedList (Linear Container LinkedList)" + }, + { + "name": "list", + "value": "List (Linear Container List)" + }, + { + "name": "plain_array", + "value": "PlainArray (NoLinear Container PlainArray)" + }, + { + "name": "queue", + "value": "Queue (Linear Container Queue)" + }, + { + "name": "stack", + "value": "Stack (Linear Container Stack)" + }, + { + "name": "tree_map", + "value": "TreeMap (NoLinear Container TreeMap)" + }, + { + "name": "tree_set", + "value": "TreeSet (NoLinear Container TreeSet)" + }, + { + "name": "vector", + "value": "Vector (Linear Container Vector)" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/zh_CN/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000..627e1976 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/common/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,64 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "tv_no_data", + "value": "无数据" + }, + { + "name": "deque", + "value": "Deque (线性容器Deque)" + }, + { + "name": "hash_map", + "value": "HashMap (非线性容器HashMap)" + }, + { + "name": "hash_set", + "value": "HashSet (非线性容器HashSet)" + }, + { + "name": "light_weight_map", + "value": "LightWeightMap (非线性容器LightWeightMap)" + }, + { + "name": "light_weight_set", + "value": "LightWeightSet (非线性容器LightWeightSet)" + }, + { + "name": "linked_list", + "value": "LinkedList (线性容器LinkedList)" + }, + { + "name": "list", + "value": "List (线性容器List)" + }, + { + "name": "plain_array", + "value": "PlainArray (非线性容器PlainArray)" + }, + { + "name": "queue", + "value": "Queue (线性容器Queue)" + }, + { + "name": "stack", + "value": "Stack (线性容器Stack)" + }, + { + "name": "tree_map", + "value": "TreeMap (非线性容器TreeMap)" + }, + { + "name": "tree_set", + "value": "TreeSet (非线性容器TreeSet)" + }, + { + "name": "vector", + "value": "Vector (线性容器Vector)" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/.gitignore b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/.gitignore new file mode 100644 index 00000000..5a6ba80f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/.preview +/build +/.cxx \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/build-profile.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/build-profile.json5 new file mode 100644 index 00000000..ddd6e5f1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/build-profile.json5 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "apiType": 'stageMode', + "buildOption": { + }, + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/hvigorfile.ts b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/hvigorfile.ts new file mode 100644 index 00000000..27a66d9a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/hvigorfile.ts @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/oh-package.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/oh-package.json5 new file mode 100644 index 00000000..d83add34 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/oh-package.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ +{ + "license": "ISC", + "devDependencies": {}, + "name": "entry", + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": { + "@ohos/capabilities": "file:../feature/capabilities", + "@ohos/menuitems": "file:../feature/menuitems", + "@ohos/common": "file:../common" + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/entryability/EntryAbility.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 00000000..91207544 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2023 Huawei Device 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 display from '@ohos.display'; +import UIAbility from '@ohos.app.ability.UIAbility'; +import window from '@ohos.window'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import Want from '@ohos.app.ability.Want'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; + +const BREAKPOINT_MD: number = 600; +const BREAKPOINT_BIG: number = 840; +const PARAMS_PX_TO_VP: number = 160; +const TAG: string = 'EntryAbility'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + logger.info(TAG, 'Ability onCreate'); + AppStorage.setOrCreate('selectedLabel', ''); + AppStorage.setOrCreate('selectedSecondLabel', ''); + AppStorage.setOrCreate('context', this.context); + } + + updateBreakpoint(windowWidth: number): void { + let windowWidthVp: number = windowWidth / (display.getDefaultDisplaySync().densityDPI / PARAMS_PX_TO_VP); + let curBp: string; + if (windowWidthVp < BREAKPOINT_MD) { + curBp = 'sm'; + } else if (windowWidthVp < BREAKPOINT_BIG) { + curBp = 'md'; + } else { + curBp = 'lg'; + } + logger.info(TAG, 'window width: ' + windowWidth + ', window width vp: ' + windowWidthVp + ', breakpoint: ' + curBp); + AppStorage.SetOrCreate('currentBreakpoint', curBp); + AppStorage.SetOrCreate('windowWidth', windowWidthVp); + AppStorage.SetOrCreate('isSplitMode', curBp === 'sm' ? false : true); + } + + onDestroy(): void { + logger.info(TAG, 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + logger.info(TAG, 'Ability onWindowStageCreate'); + + windowStage.getMainWindow().then((windowObj: window.Window) => { + let windowWidth: number = windowObj.getWindowProperties().windowRect.width; + this.updateBreakpoint(windowWidth); + windowObj.on('windowSizeChange', (newSize: window.Size) => { + let windowWidth: number = newSize.width; + this.updateBreakpoint(windowWidth); + + if (windowObj.getWindowProperties().isFullScreen) { + logger.info(TAG, 'isFullScreen'); + } + if (windowObj.getWindowProperties().isLayoutFullScreen) { + logger.info(TAG, 'isLayoutFullScreen'); + } + }); + }); + + windowStage.loadContent('pages/Index', (err, data) => { + if (err.code) { + logger.error(TAG, `Failed to load the content. Cause: ${JSON.stringify(err)}`); + return; + } + logger.info(TAG, `Succeeded in loading the content. Data: ${JSON.stringify(data)}`); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + logger.info(TAG, 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + logger.info(TAG, 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + logger.info(TAG, 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddInformationView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddInformationView.ets new file mode 100644 index 00000000..ba17d420 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddInformationView.ets @@ -0,0 +1,296 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 router from '@ohos.router'; +import emitter from '@ohos.events.emitter'; +import { Constant, Information } from '@ohos/capabilities'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +const MIN_AGE = 1; +const AGE_RANGE = 9; +const AGE_DEFAULT = 0; + +const arr = Array(AGE_RANGE) + .fill(0) + .map((_: number, i: number) => `${i + MIN_AGE}${getString($r('app.string.old'))}`); + +@CustomDialog +struct AgePickDialog { + private controller?: CustomDialogController; + private sure: (age: number) => void = () => { + }; + @State select: number = AGE_DEFAULT; + + build() { + Column() { + Text($r('app.string.age')) + .margin({ left: 24, top: 14 }) + .width('100%') + .fontColor($r('app.color.text_color_primary')) + .fontSize(20) + .textAlign(TextAlign.Start) + + Column() { + TextPicker({ range: arr, selected: this.select }) + .onChange((value: string | string[], index: number | number[]) => { + if (typeof index === 'number') { + this.select = index; + } + }) + } + .width('100%') + .height(238) + + Row() { + Text($r('app.string.cancel')) + .height('100%') + .width('50%') + .textAlign(TextAlign.Center) + .fontSize(16) + .fontColor($r('app.color.text_color_accent')) + .onClick(() => { + this.controller?.close(); + }) + Divider() + .vertical(true) + .height('100%') + Text($r('app.string.sure')) + .id('add_sure') + .height('100%') + .width('50%') + .textAlign(TextAlign.Center) + .fontSize(16) + .fontColor($r('app.color.text_color_accent')) + .onClick(() => { + this.sure(this.select + MIN_AGE) + this.controller?.close(); + }) + } + .height(40) + } + .height(328) + .margin({ left: 12, right: 12, bottom: 16 }) + .borderRadius(24) + .backgroundColor($r('app.color.bg_white')) + } +} + +@Entry +@Component +export struct AddInformationView { + @State information: Information = new Information('', 0, '', true) + private dialogController: CustomDialogController = new CustomDialogController({ + builder: AgePickDialog({ sure: (age: number) => { + this.information.age = age; + } }), + customStyle: false, + alignment: DialogAlignment.Bottom + }) + @State flag: string = ''; + + aboutToAppear() { + let tem: string = (router.getParams() as Record)['title'] as string; + if (!tem) { + return; + } + this.flag = tem; + } + + build() { + Column() { + Row() { + Row() { + Image($r("app.media.ic_public_back")) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .height('100%') + .aspectRatio(1) + .padding({ left: 24 }) + .onClick(() => { + router.back(); + }) + + Text($r('app.string.add_new_contact')) + .fontColor($r('app.color.text_color_primary')) + .fontSize(20) + .margin({ left: 24 }) + + Blank() + + Row() { + Image($r('app.media.ic_public_confirm')) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .id('add_confirm') + .height('100%') + .aspectRatio(1) + .padding({ right: 24 }) + .onClick(() => { + let eventId = Constant.EMITTER_ID_DEFAULT; + switch (this.flag) { + case getString($r('app.string.deque')): + eventId = Constant.EMITTER_ID_DEQUE; + break; + case getString($r('app.string.linked_list')): + eventId = Constant.EMITTER_ID_LINKED_LIST; + break; + case getString($r('app.string.list')): + eventId = Constant.EMITTER_ID_LIST; + break; + case getString($r('app.string.queue')): + eventId = Constant.EMITTER_ID_QUEUE; + break; + case getString($r('app.string.stack')): + eventId = Constant.EMITTER_ID_STACK; + break; + case getString($r('app.string.vector')): + eventId = Constant.EMITTER_ID_VECTOR; + break; + default: + eventId = Constant.EMITTER_ID_DEFAULT; + break; + } + + let event: emitter.InnerEvent = { + eventId: eventId, + priority: emitter.EventPriority.HIGH + }; + + let eventData: emitter.EventData = { + data: { + 'name': this.information.name, + 'age': this.information.age, + 'phone': this.information.phone, + 'clickAble': this.information.clickAble + } + }; + + emitter.emit(event, eventData); + router.back(); + }) + + } + .width('100%') + .height(56) + + Row() { + Image($r('app.media.ic_public_user')) + .margin({ left: 19 }) + .width(19) + .aspectRatio(1) + Text($r('app.string.names')) + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + TextInput({ placeholder: $r('app.string.input_name') }) + .id('add_name') + .height(48) + .fontSize(16) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onChange((value: string) => { + this.information.name = value; + }) + } + .layoutWeight(1) + .margin({ left: 52, right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + + Row() { + Image($r('app.media.ic_age')) + .margin({ left: 19 }) + .width(19) + .aspectRatio(1) + Text($r('app.string.age')) + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + Image($r('app.media.ic_public_spinner_down')) + .height(24) + .width(12) + } + .id('add_age') + .justifyContent(FlexAlign.Center) + .width(54) + .height('100%') + .onClick(() => { + this.dialogController.open(); + }) + + Column() { + TextInput({ + text: this.information.age === 0 ? '' : `${this.information.age}`, + placeholder: $r('app.string.please_choose') + }) + .height(48) + .fontSize(16) + .focusable(false) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onClick(() => { + this.dialogController.open(); + }) + } + .layoutWeight(1) + .margin({ right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + + Row() { + Image($r('app.media.ic_public_phone')) + .margin({ left: 19 }) + .width(19) + .aspectRatio(1) + Text($r('app.string.contact_phone')) + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + TextInput({ placeholder: $r('app.string.input_phone') }) + .id('add_phone') + .height(48) + .fontSize(16) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onChange((value: string) => { + this.information.phone = value; + }) + } + .layoutWeight(1) + .margin({ left: 52, right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + } + .height('100%') + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + .padding({ left: 12, right: 12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddKeyValuePairView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddKeyValuePairView.ets new file mode 100644 index 00000000..3d60ee4a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddKeyValuePairView.ets @@ -0,0 +1,165 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 router from '@ohos.router'; +import emitter from '@ohos.events.emitter'; +import { Constant, KeyValuePair } from '@ohos/capabilities'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +@Entry +@Component +export struct AddKeyValueView { + @State keyValuePair: KeyValuePair = new KeyValuePair('', '') + @State title: string = ''; + @State flag: string = ''; + + aboutToAppear() { + let tem: string = (router.getParams() as Record)['title'] as string; + if (!tem) { + return; + } + this.flag = tem; + let matchArr: RegExpMatchArray | null = tem.match(new RegExp('.*(?=\\(|()')); + if (matchArr !== null) { + this.title = `${getString($r('app.string.add'))}${matchArr[0]}`; + } + } + + build() { + Column() { + Row() { + Row() { + Image($r("app.media.ic_public_back")) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .height('100%') + .aspectRatio(1) + .padding({ left: 24 }) + .onClick(() => { + router.back(); + }) + + Text(this.title) + .fontColor($r('app.color.text_color_primary')) + .fontSize(20) + .margin({ left: 24 }) + + Blank() + + Row() { + Image($r("app.media.ic_public_confirm")) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .id('add_confirm') + .height('100%') + .aspectRatio(1) + .padding({ right: 24 }) + .onClick(() => { + let eventId = Constant.EMITTER_ID_DEFAULT; + switch (this.flag) { + case getString($r('app.string.hash_map')): + eventId = Constant.EMITTER_ID_HASH_MAP; + break; + case getString($r('app.string.light_weight_map')): + eventId = Constant.EMITTER_ID_LIGHT_WEIGHT_MAP; + break; + case getString($r('app.string.plain_array')): + eventId = Constant.EMITTER_ID_PLAIN_ARRAY; + break; + case getString($r('app.string.tree_map')): + eventId = Constant.EMITTER_ID_TREE_MAP; + break; + default: + eventId = Constant.EMITTER_ID_DEFAULT; + break; + } + + let event: emitter.InnerEvent = { + eventId: eventId, + priority: emitter.EventPriority.HIGH + }; + + let eventData: emitter.EventData = { + data: { + 'key': this.keyValuePair.key, + 'value': this.keyValuePair.value + } + }; + + emitter.emit(event, eventData); + router.back(); + }) + } + .width('100%') + .height(56) + + Row() { + Text('Key') + .width(44) + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + TextInput({ placeholder: $r('app.string.input_key') }) + .id('add_key') + .height(48) + .fontSize(16) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onChange((value: string) => { + this.keyValuePair.key = value; + }) + } + .layoutWeight(1) + .margin({ left: 52, right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + + Row() { + Text('Value') + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + TextInput({ placeholder: $r('app.string.input_value') }) + .id('add_value') + .height(48) + .fontSize(16) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onChange((value: string) => { + this.keyValuePair.value = value; + }) + } + .layoutWeight(1) + .margin({ left: 52, right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + } + .height('100%') + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + .padding({ left: 12, right: 12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddStringView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddStringView.ets new file mode 100644 index 00000000..425ec835 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/AddStringView.ets @@ -0,0 +1,135 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 router from '@ohos.router'; +import emitter from '@ohos.events.emitter'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { Constant } from '@ohos/capabilities'; + +@Entry +@Component +export struct AddKeyValueView { + @State value: string = '' + @State title: string = ''; + @State flag: string = ''; + + aboutToAppear() { + let tem: string = (router.getParams() as Record)['title'] as string; + if (!tem) { + return; + } + this.flag = tem; + let regex: RegExp = new RegExp('.*(?=\\(|()'); + let matchArr: RegExpMatchArray | null = tem.match(regex); + if (matchArr !== null) { + this.title = `${getString($r('app.string.add'))}${matchArr[0]}`; + } + } + + build() { + Column() { + Row() { + Row() { + Image($r("app.media.ic_public_back")) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .height('100%') + .aspectRatio(1) + .padding({ left: 24 }) + .onClick(() => { + router.back(); + }) + + Text(this.title) + .fontColor($r('app.color.text_color_primary')) + .fontSize(20) + .margin({ left: 24 }) + + Blank() + + Row() { + Image($r("app.media.ic_public_confirm")) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .id('add_confirm') + .height('100%') + .aspectRatio(1) + .padding({ right: 24 }) + .onClick(() => { + let eventId = Constant.EMITTER_ID_DEFAULT; + switch (this.flag) { + case getString($r('app.string.hash_set')): + eventId = Constant.EMITTER_ID_HASH_SET; + break; + case getString($r('app.string.light_weight_set')): + eventId = Constant.EMITTER_ID_LIGHT_WEIGHT_SET; + break; + case getString($r('app.string.tree_set')): + eventId = Constant.EMITTER_ID_TREE_SET; + break; + default: + eventId = Constant.EMITTER_ID_DEFAULT; + break; + } + + let event: emitter.InnerEvent = { + eventId: eventId, + priority: emitter.EventPriority.HIGH + }; + + let eventData: emitter.EventData = { + data: { 'value': this.value } + }; + + emitter.emit(event, eventData); + router.back(); + }) + } + .width('100%') + .height(56) + + Row() { + Text('Value') + .margin({ left: 19 }) + .fontSize(16) + .fontColor($r('app.color.text_color_primary')) + Column() { + TextInput({ placeholder: $r('app.string.input_value') }) + .id('add_value') + .height(48) + .fontSize(16) + .backgroundColor($r('sys.color.ohos_id_color_background_transparent')) + .onChange((value: string) => { + this.value = value; + }) + } + .layoutWeight(1) + .margin({ left: 52, right: 16 }) + } + .height(64) + .width('100%') + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .margin({ top: 12 }) + } + .height('100%') + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + .padding({ left: 12, right: 12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/Index.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/Index.ets new file mode 100644 index 00000000..f318e089 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,91 @@ +/* + * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router'; +import { Capabilities } from './components/Capabilities'; +import { MenuList } from '@ohos/menuitems'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +const TAG: string = 'Index'; + +@Entry +@Component +struct Index { + @StorageProp('windowWidth') windowWidth: number = 300; + @StorageProp('isSplitMode') isSplitMode: boolean = false; + @State title: string = ''; + + aboutToAppear() { + this.title = getContext().resourceManager.getStringSync($r('app.string.lable_name').id); + } + + build() { + Navigation() { + Divider() + .strokeWidth('1px') + .color($r('sys.color.ohos_id_color_list_separator')) + MenuList({ + menuList: $r('app.strarray.language_base_class_library_list'), + addAction: (title: string) => { + logger.info(TAG, `addAction: title = ${title}`) + switch (title) { + case getString($r('app.string.deque')): + case getString($r('app.string.linked_list')): + case getString($r('app.string.list')): + case getString($r('app.string.queue')): + case getString($r('app.string.stack')): + case getString($r('app.string.vector')): + router.pushUrl({ url: 'pages/AddInformationView', params: { 'title': title } }) + break; + case getString($r('app.string.hash_map')): + case getString($r('app.string.light_weight_map')): + case getString($r('app.string.plain_array')): + case getString($r('app.string.tree_map')): + router.pushUrl({ url: 'pages/AddKeyValuePairView', params: { 'title': title } }) + break; + case getString($r('app.string.hash_set')): + case getString($r('app.string.light_weight_set')): + case getString($r('app.string.tree_set')): + router.pushUrl({ url: 'pages/AddStringView', params: { 'title': title } }) + break; + } + } + }) { + Capabilities() + } + } + .title(this.CustomTitle()) + .mode(this.isSplitMode ? NavigationMode.Split : NavigationMode.Stack) + .navBarWidth(0.4 * this.windowWidth) + .titleMode(NavigationTitleMode.Mini) + .hideToolBar(true) + .width('100%') + .height('100%') + .backgroundColor($r("sys.color.ohos_id_color_sub_background")) + } + + @Builder + CustomTitle() { + Row() { + Text(this.title) + .fontColor($r('app.color.black')) + .fontSize(26) + .fontWeight(FontWeight.Bold) + } + .height(56) + .width('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/components/Capabilities.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/components/Capabilities.ets new file mode 100644 index 00000000..49cbb344 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/ets/pages/components/Capabilities.ets @@ -0,0 +1,111 @@ +/** + * Copyright (c) 2023 Huawei Device 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 { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { + ArrayListView, + ConvertXml, + Url, + Util, + ProcessMessage, + TaskPool, + DequeView, + HashMapView, + HashSetView, + LightWeightMapView, + LightWeightSetView, + LinkedListView, + ListView, + PlainArrayView, + QueueView, + StackView, + TreeMapView, + TreeSetView, + VectorView +} from '@ohos/capabilities'; + +@Component +export struct Capabilities { + @StorageLink('selectedLabel') selectedLabel: string = ''; + + build() { + Column() { + Divider() + .strokeWidth('1px') + .color($r('sys.color.ohos_id_color_list_separator')) + Column() { + // 此处根据选中的菜单,显示对应的页面内容 + if (this.selectedLabel === getString($r('app.string.xml'))) { + ConvertXml() + } + if (this.selectedLabel === getString($r('app.string.util'))) { + Util() + } + if (this.selectedLabel === getString($r('app.string.process'))) { + ProcessMessage() + } + if (this.selectedLabel === getString($r('app.string.url'))) { + Url() + } + if (this.selectedLabel === getString($r('app.string.array_list'))) { + ArrayListView() + } + if (this.selectedLabel === getString($r('app.string.task_pool'))) { + TaskPool() + } + if (this.selectedLabel === getString($r('app.string.deque'))) { + DequeView() + } + if (this.selectedLabel === getString($r('app.string.hash_map'))) { + HashMapView() + } + if (this.selectedLabel === getString($r('app.string.hash_set'))) { + HashSetView() + } + if (this.selectedLabel === getString($r('app.string.light_weight_map'))) { + LightWeightMapView() + } + if (this.selectedLabel === getString($r('app.string.light_weight_set'))) { + LightWeightSetView() + } + if (this.selectedLabel === getString($r('app.string.linked_list'))) { + LinkedListView() + } + if (this.selectedLabel === getString($r('app.string.list'))) { + ListView() + } + if (this.selectedLabel === getString($r('app.string.plain_array'))) { + PlainArrayView() + } + if (this.selectedLabel === getString($r('app.string.queue'))) { + QueueView() + } + if (this.selectedLabel === getString($r('app.string.stack'))) { + StackView() + } + if (this.selectedLabel === getString($r('app.string.tree_map'))) { + TreeMapView() + } + if (this.selectedLabel === getString($r('app.string.tree_set'))) { + TreeSetView() + } + if (this.selectedLabel === getString($r('app.string.vector'))) { + VectorView() + } + } + .padding({ left: 12, right: 12 }) + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/module.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/module.json5 new file mode 100644 index 00000000..7d12c705 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/module.json5 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "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", + "srcEntrance": "./ets/entryability/EntryAbility.ets", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:lable_name", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/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/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/strarray.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/strarray.json new file mode 100644 index 00000000..6f294c6c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/strarray.json @@ -0,0 +1,67 @@ +{ + "strarray": [ + { + "name": "language_base_class_library_list", + "value": [ + + { + "value": "Xml & ConvertXml (XML Parsing,Generation and convert)" + }, + { + "value": "Process (Obtaining Process Information)" + }, + { + "value": "TaskPool (Using the Task Pool)" + }, + { + "value": "Url (URL String Parsing)" + }, + { + "value": "Util (util)" + }, + { + "value": "ArrayList (Linear Container ArrayList)" + }, + { + "value": "Deque (Linear Container ArrayList)" + }, + { + "value": "HashMap (Nonlinear Container HashMap)" + }, + { + "value": "HashSet (Nonlinear Container HashSet)" + }, + { + "value": "LightWeightMap (Nonlinear Container LightWeightMap)" + }, + { + "value": "LightWeightSet (Nonlinear Container LightWeightMap)" + }, + { + "value": "LinkedList (Nonlinear Container LightWeightMap)" + }, + { + "value": "List (Nonlinear Container LightWeightMap)" + }, + { + "value": "PlainArray (Nonlinear Container PlainArray)" + }, + { + "value": "Queue (Linear Container Queue)" + }, + { + "value": "Stack (Linear Container Stack)" + }, + { + "value": "TreeMap (Nonlinear Container TreeMap)" + }, + { + "value": "TreeSet (Nonlinear Container TreeSet)" + }, + { + "value": "Vector (Linear Container Vector)" + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000..3bcb2fe1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/element/string.json @@ -0,0 +1,128 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "lable_name", + "value": "LanguageBaseClassLibrary" + }, + { + "name": "xml", + "value": "Xml & ConvertXml (XML Parsing,Generation and convert)" + }, + { + "name": "url", + "value": "Url (URL String Parsing)" + }, + { + "name": "util", + "value": "Util (util)" + }, + { + "name": "process", + "value": "Process (Obtaining Process Information)" + }, + { + "name": "array_list", + "value": "ArrayList (Linear Container ArrayList)" + }, + { + "name": "task_pool", + "value": "TaskPool (Start Task Pool)" + }, + { + "name": "deque", + "value": "Deque (Linear Container Deque)" + }, + { + "name": "hash_map", + "value": "HashMap (NoLinear Container HashMap)" + }, + { + "name": "hash_set", + "value": "HashSet (NoLinear Container HashSet)" + }, + { + "name": "light_weight_map", + "value": "LightWeightMap (NoLinear Container LightWeightMap)" + }, + { + "name": "light_weight_set", + "value": "LightWeightSet (NoLinear Container LightWeightSet)" + }, + { + "name": "linked_list", + "value": "LinkedList (Linear Container LinkedList)" + }, + { + "name": "list", + "value": "List (Linear Container List)" + }, + { + "name": "plain_array", + "value": "PlainArray (NoLinear Container PlainArray)" + }, + { + "name": "queue", + "value": "Queue (Linear Container Queue)" + }, + { + "name": "stack", + "value": "Stack (Linear Container Stack)" + }, + { + "name": "tree_map", + "value": "TreeMap (NoLinear Container TreeMap)" + }, + { + "name": "tree_set", + "value": "TreeSet (NoLinear Container TreeSet)" + }, + { + "name": "vector", + "value": "Vector (Linear Container Vector)" + }, + { + "name": "age", + "value": "Age" + }, + { + "name": "cancel", + "value": "Cancel" + }, + { + "name": "sure", + "value": "Sure" + }, + { + "name": "add_new_contact", + "value": "Add new contact" + }, + { + "name": "names", + "value": "Name" + }, + { + "name": "please_choose", + "value": "Please choose" + }, + { + "name": "add", + "value": "Add" + }, + { + "name": "input_key", + "value": "Please input key" + }, + { + "name": "input_value", + "value": "Please input value" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_age.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_age.svg new file mode 100644 index 00000000..57041b2f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_age.svg @@ -0,0 +1,15 @@ + + + + + + + + + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_back.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_back.svg new file mode 100644 index 00000000..3cb34504 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_back.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_confirm.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_confirm.svg new file mode 100644 index 00000000..7cbd6159 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_confirm.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_phone.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_phone.svg new file mode 100644 index 00000000..e2aad498 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_phone.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_spinner_down.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_spinner_down.svg new file mode 100644 index 00000000..e22aa83a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_spinner_down.svg @@ -0,0 +1,5 @@ + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_user.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_user.svg new file mode 100644 index 00000000..dacbc0f1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/ic_public_user.svg @@ -0,0 +1,7 @@ + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/icon.png b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 { + logger.info(TAG, `executeShellCommand : err : ${JSON.stringify(err) ?? ''}`); + logger.info(TAG, `executeShellCommand : data : ${d.stdResult ?? ''}`); + logger.info(TAG, `executeShellCommand : data : ${d.exitCode ?? ''}`); + }); + logger.info(TAG, 'OpenHarmonyTestRunner onRun end'); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 00000000..240281c6 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,886 @@ +/* + * Copyright (c) 2023 Huawei Device 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 AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { describe, it, expect } from '@ohos/hypium'; +import { Driver, ON, MatchPattern } from '@ohos.UiTest'; +import { logger } from '../util/Logger'; +import Want from '@ohos.app.ability.Want'; + +const TAG: string = 'Sample_LanguageBaseClassLibraryTest'; +const BUNDLE = 'LanguageBaseClassLibrary'; +const delegator = AbilityDelegatorRegistry.getAbilityDelegator() +const driver: Driver = Driver.create(); + +// 资源本地化 +async function getResourceString(resource: Resource): Promise { + let manage = delegator.getAppContext().resourceManager + let text = await manage.getStringValue(resource) + return text +} + +async function addContact(driver: Driver, name: string, phone: string) { + // 进入新增联系人 + await driver.assertComponentExist(ON.id('add')); + let addBtn = await driver.findComponent(ON.id('add')); + await addBtn.click(); + await driver.delayMs(200); + // 点击姓名输入框 + await driver.assertComponentExist(ON.id('add_name')); + let addNameTextInput = await driver.findComponent(ON.id('add_name')); + await addNameTextInput.inputText(name); + await driver.delayMs(200); + // 点击年龄输入框 + await driver.assertComponentExist(ON.id('add_age')); + let addAgeComponent = await driver.findComponent(ON.id('add_age')); + await addAgeComponent.click(); + await driver.delayMs(200); + // 点击确定按钮 + await driver.assertComponentExist(ON.id('add_sure')); + let addSureBtn = await driver.findComponent(ON.id('add_sure')); + await addSureBtn.click(); + await driver.delayMs(200); + // 点击电话输入框 + await driver.assertComponentExist(ON.id('add_phone')); + let addPhoneTextInput = await driver.findComponent(ON.id('add_phone')); + await addPhoneTextInput.inputText(phone); + await driver.delayMs(200); + // 点击完成按钮 + await driver.assertComponentExist(ON.id('add_confirm')); + let addConfirmBtn = await driver.findComponent(ON.id('add_confirm')); + await addConfirmBtn.click(); + await driver.delayMs(200); +} + +async function deleteItem(driver: Driver, id: string) { + await driver.assertComponentExist(ON.id(id)); + let deleteBtn = await driver.findComponent(ON.id(id)); + await deleteBtn.click(); + await driver.delayMs(200); +} + +async function addKeyValue(driver: Driver, key: string, value: string) { + // 进入新增Key/Value + await driver.assertComponentExist(ON.id('add')); + let addBtn = await driver.findComponent(ON.id('add')); + await addBtn.click(); + await driver.delayMs(200); + // 点击Key输入框 + await driver.assertComponentExist(ON.id('add_key')); + let addKeyTextInput = await driver.findComponent(ON.id('add_key')); + await addKeyTextInput.inputText(key); + await driver.delayMs(200); + // 点击Value输入框 + await driver.assertComponentExist(ON.id('add_value')); + let addValueTextInput = await driver.findComponent(ON.id('add_value')); + await addValueTextInput.inputText(value); + await driver.delayMs(200); + // 点击完成按钮 + await driver.assertComponentExist(ON.id('add_confirm')); + let addConfirmBtn = await driver.findComponent(ON.id('add_confirm')); + await addConfirmBtn.click(); + await driver.delayMs(200); +} + +async function addValue(driver: Driver, value: string) { + // 进入新增Value + await driver.assertComponentExist(ON.id('add')); + let addBtn = await driver.findComponent(ON.id('add')); + await addBtn.click(); + await driver.delayMs(200); + // 点击Value输入框 + await driver.assertComponentExist(ON.id('add_value')); + let addValueTextInput = await driver.findComponent(ON.id('add_value')); + await addValueTextInput.inputText(value); + await driver.delayMs(200); + // 点击完成按钮 + await driver.assertComponentExist(ON.id('add_confirm')); + let addConfirmBtn = await driver.findComponent(ON.id('add_confirm')); + await addConfirmBtn.click(); + await driver.delayMs(200); +} + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // 打开应用 + it(BUNDLE + 'StartAbility_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}StartAbility_001 begin`); + let want: Want = { + bundleName: 'com.samples.languagebaseclasslibrary', + abilityName: 'EntryAbility' + }; + delegator.startAbility(want, (err) => { + logger.info(TAG, `${BUNDLE}_startAbility end err ${JSON.stringify(err)}`); + }) + await driver.delayMs(1000); + logger.info(TAG, `${BUNDLE}StartAbility_001 end`); + done(); + }) + + // 进入xml解析、生成与转换页面 + it(BUNDLE + 'Xml_ConvertXml_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}Xml_ConvertXml_001 begin`); + await driver.delayMs(200); + // find component on text 'Xml' + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.xml')))); + let button = await driver.findComponent(ON.text(await getResourceString($r('app.string.xml')))); + await button.click(); + await driver.delayMs(200); + // 点击Xml生成 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.serializer')), MatchPattern.CONTAINS)); + let serializer = await driver.findComponent(ON.text(await getResourceString($r('app.string.serializer')), MatchPattern.CONTAINS)); + await serializer.click(); + await driver.delayMs(1000); + logger.info(TAG, BUNDLE + 'ClickXmlFunction_001 clickParserXml'); + // 点击Xml解析 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.parser')), MatchPattern.CONTAINS)); + let parser = await driver.findComponent(ON.text(await getResourceString($r('app.string.parser')), MatchPattern.CONTAINS)); + await parser.click(); + await driver.delayMs(1000); + logger.info(TAG, BUNDLE + 'ClickXmlFunction_001 clickConvertXml'); + // 点击Xml转换 + let convert = await driver.findComponent(ON.text(await getResourceString($r('app.string.convert')), MatchPattern.CONTAINS)); + await convert.click(); + await driver.delayMs(1000); + // 校验是否进入对应页面 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.xml')))); + await driver.delayMs(200); + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE}Xml_ConvertXml_001 end`); + }) + + // 进入Util界面 + it(BUNDLE + 'util_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}util_001 begin`); + await driver.delayMs(200); + // check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.util')))); + let button = await driver.findComponent(ON.text(await getResourceString($r('app.string.util')))); + await button.click(); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}util_001 end`); + }) + + // StringCode(字符串编码) + it(BUNDLE + 'StringCodeFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} StringCodeFunction_001 begin`); + await driver.delayMs(200); + // 进入字符串编解码界面 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.string_code')))); + let strBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.string_code')))); + await strBtn.click(); + await driver.delayMs(200); + // 点击特定格式输出 + await driver.assertComponentExist(ON.id('specFormatOutput')); + let specOutputBtn = await driver.findComponent(ON.id('specFormatOutput')); + await specOutputBtn.click(); + await driver.delayMs(200); + // 点击文本编码器 + await driver.assertComponentExist(ON.id('textEncoder')); + let textEncoderBtn = await driver.findComponent(ON.id('textEncoder')); + await textEncoderBtn.click(); + await driver.delayMs(200); + // 判断读取信息是否正确 + await driver.assertComponentExist(ON.id('read')); + let readInfo = await driver.findComponent(ON.id('read')); + let readValue = await readInfo.getText(); + logger.info(TAG, `${BUNDLE}clickTextEncoderFunction_001 readValue:${readValue}`); + expect(readValue).assertEqual('23'); + // 判断写入信息是否正确 + await driver.assertComponentExist(ON.id('write')); + let writeInfo = await driver.findComponent(ON.id('write')); + let writeValue = await writeInfo.getText(); + logger.info(TAG, `${BUNDLE}clickTextEncoderFunction_001 writeValue:${writeValue}`); + expect(writeValue).assertEqual('39'); + // 点击文本译码器 + await driver.assertComponentExist(ON.id('textDecoder')); + let textDecoderBtn = await driver.findComponent(ON.id('textDecoder')); + await textDecoderBtn.click(); + await driver.delayMs(200); + // 获取译码文本,判断是否是原字符串 + await driver.assertComponentExist(ON.id('decRes')); + let decRes = await driver.findComponent(ON.id('decRes')); + let decodeValue = await decRes.getText(); + expect(decodeValue).assertContain('OpenHarmony 3.0'); + // 返回首页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} StringCodeFunction_001 end`); + }) + + // RationalNumber(有理数) + it(BUNDLE + 'RationalNumber_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}RationalNumber_001 begin`); + await driver.delayMs(200); + // 进入有理数界面 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.rational_number')))); + let button = await driver.findComponent(ON.text(await getResourceString($r('app.string.rational_number')))); + await button.click(); + await driver.delayMs(200); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.compare')))); + let compare = await driver.findComponent(ON.text(await getResourceString($r('app.string.compare')))); + await compare.click(); + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.less_than')))); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get')))); + let getValue = await driver.findComponent(ON.text(await getResourceString($r('app.string.get')))); + await getValue.click(); + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get_value')), MatchPattern.CONTAINS)); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.getDenominator')))); + let operation0 = await driver.findComponent(ON.text(await getResourceString($r('app.string.getDenominator')))); + await operation0.click(); + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.numerator')), MatchPattern.CONTAINS)); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.isZero')))); + let operation1 = await driver.findComponent(ON.text(await getResourceString($r('app.string.isZero')))); + await operation1.click(); + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.rational_number_is')), MatchPattern.CONTAINS)); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.isNaN')))); + let operation2 = await driver.findComponent(ON.text(await getResourceString($r('app.string.isNaN')))); + await operation2.click(); + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.rational_number_is_not_nan')), MatchPattern.CONTAINS)); + + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.isFinite')))); + let operation3 = await driver.findComponent(ON.text(await getResourceString($r('app.string.isFinite')))); + await operation3.click(); + await driver.assertComponentExist(ON.text('Finite', MatchPattern.CONTAINS)); + + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE}RationalNumber_001 end`); + }) + + // 进入到LRUCache (缓冲区) + it(BUNDLE + 'UtilLruBuffer_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}UtilLruBuffer_001 begin`); + await driver.delayMs(200); + // find component on text 'LRUCache' + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.lru_cache')))); + let button = await driver.findComponent(ON.text(await getResourceString($r('app.string.lru_cache')))); + await button.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击初始化缓冲区 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.initialize_buffer')))); + let initializeBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.initialize_buffer')))); + await initializeBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击获取缓冲区容量 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get_buffer_capacity')))); + let getBufferBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.get_buffer_capacity')))); + await getBufferBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击更新缓冲区容量 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.update_buffer_capacity')))); + let updateBufferBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.update_buffer_capacity')))); + await updateBufferBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击获取缓冲区字符串 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get_buffer_string')))); + let getBufferCharacterBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.get_buffer_string')))); + await getBufferCharacterBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击添加键值对 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.add_key_value')))); + let addBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.add_key_value')))); + await addBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击获取键对应的值 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get_value_with_key')))); + let getBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.get_value_with_key')))); + await getBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 关闭弹窗 + let getDialogBtn = await driver.findComponent(ON.type('Dialog')); + await getDialogBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击获取所有键值对 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.get_all_key_values')))); + let getAllBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.get_all_key_values')))); + await getAllBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击删除指定键及关联值 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.delete_key_and_value')))); + let deleteBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.delete_key_and_value')))); + await deleteBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 关闭弹窗 + let deleteDialogBtn = await driver.findComponent(ON.type('Dialog')); + await deleteDialogBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击清除所有键值对 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.clear_all_key_values')))); + let eliminateBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.clear_all_key_values')))); + await eliminateBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilLruBuffer_001 clickCheckPresetValue'); + // 点击查看操作记录 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.view_operation_record')))); + let operatingBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.view_operation_record')))); + await operatingBtn.click(); + await driver.delayMs(200); + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE}UtilLruBuffer_001 end`); + }) + + // Base64Helper (Base64编解码) + it(BUNDLE + 'UtilBase64Codec_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}UtilBase64Codec_001 begin`); + await driver.delayMs(200); + // 进入Base64编解码 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.base64')))); + let typeBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.base64')))); + await typeBtn.click(); + await driver.delayMs(200); + // 点击编码 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.encode')))); + let codeBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.encode')))); + await codeBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'UtilBase64Codec_001 clickCheckPresetValue'); + // 点击解码 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.decode')))); + let decodeBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.decode')))); + await decodeBtn.click(); + await driver.delayMs(1000); + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE}UtilBase64Codec_001 begin`); + }) + + // TypeCheck (类型检查) + it(BUNDLE + 'TypeCheck_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}TypeCheck_001 begin`); + await driver.delayMs(200); + // 进入类型检查 + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.type_check')))); + let typeBtn = await driver.findComponent(ON.text(await getResourceString($r('app.string.type_check')))); + await typeBtn.click(); + await driver.delayMs(1000); + // 点击显示预置值 + await driver.assertComponentExist(ON.id('displayPresetValue')); + let displayPresetValueBtn = await driver.findComponent(ON.id('displayPresetValue')); + await displayPresetValueBtn.click(); + await driver.delayMs(200); + logger.info(TAG, BUNDLE + 'TypeCheck_001 clickCheckPresetValue'); + // 点击校验预置值 + await driver.assertComponentExist(ON.id('checkPresetValue')); + let checkPresetValueBtn = await driver.findComponent(ON.id('checkPresetValue')); + await checkPresetValueBtn.click(); + await driver.delayMs(200); + await driver.pressBack(); + await driver.pressBack(); + await driver.delayMs(1000); + done(); + + logger.info(TAG, `${BUNDLE}TypeCheck_001 begin`) + }) + + // 进入Url字符串解析页面 + it(BUNDLE + 'Url_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}Url_001 begin`); + await driver.delayMs(500); + // find component on text 'Xml' + await driver.assertComponentExist(ON.text('Url (Url字符串解析)')); + let button = await driver.findComponent(ON.text('Url (Url字符串解析)')); + await button.click(); + await driver.delayMs(1000); + // check text + await driver.assertComponentExist(ON.text('Url (Url字符串解析)')); + await driver.delayMs(1000); + done() + logger.info(TAG, `${BUNDLE}Url_001 end`); + }) + + // Url字符串解析 + it(BUNDLE + 'ClickUrlStringBtnFunction_001', 0, async (done: Function) => { + logger.info(TAG, BUNDLE + 'ClickUrlStringBtnFunction_001 begin') + await driver.delayMs(1000) + // 点击插入键值对到查询字符串 + await driver.assertComponentExist(ON.id('item0')) + let insertKeyValuePairs = await driver.findComponent(ON.id('item0')) + await insertKeyValuePairs.click() + await driver.delayMs(500) + // 是否成功插入 + await driver.assertComponentExist(ON.id('output')) + let outputInsert = await driver.findComponent(ON.id('output')) + let insertValue = await outputInsert.getText() + await driver.delayMs(1000); + expect(insertValue).assertContain('node=nodeValue1') + // 点击删除键值对 + await driver.assertComponentExist(ON.id('item1')) + let deleteKeyValuePairs = await driver.findComponent(ON.id('item1')) + await deleteKeyValuePairs.click() + await driver.delayMs(500) + // 是否成功删除 + await driver.assertComponentExist(ON.id('output')) + let outputDelete = await driver.findComponent(ON.id('output')) + let deleteValue = await outputDelete.getText() + await driver.delayMs(1000); + expect(deleteValue).assertEqual('https://gitee.com/openharmony/'); + // 点击获取指定名称对应的第一个值 + await driver.assertComponentExist(ON.id('item0')) + let insertKeyValue = await driver.findComponent(ON.id('item0')) + await insertKeyValue.click() + await driver.delayMs(500) + await driver.assertComponentExist(ON.id('item2')) + let getFirstValue = await driver.findComponent(ON.id('item2')) + await getFirstValue.click() + await driver.delayMs(500) + // 是否成功获取 + await driver.assertComponentExist(ON.id('output')) + let outputGet = await driver.findComponent(ON.id('output')) + let getValue = await outputGet.getText() + await driver.delayMs(1000); + expect(getValue).assertContain('nodeValue1') + // 点击设置键的新值 + await driver.assertComponentExist(ON.id('item3')) + let setNewValue = await driver.findComponent(ON.id('item3')) + await setNewValue.click() + await driver.delayMs(500) + // 是否成功设置新值 + await driver.assertComponentExist(ON.id('output')) + let outputSet = await driver.findComponent(ON.id('output')) + let setValue = await outputSet.getText() + await driver.delayMs(1000); + expect(setValue).assertContain('newValue') + // 返回首页 + await driver.pressBack(); + done(); + logger.info(TAG, BUNDLE + 'ClickUrlStringBtnFunction_001 end') + }) + + // 进入TaskPool页面 + it(BUNDLE + 'TaskPool_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}TaskPool_001 begin`); + await driver.delayMs(200); + // 滚动到TaskPool + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + // find component on text 'TaskPool' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.task_pool')))); + await button.click(); + await driver.delayMs(200); + // 点击Execute task + await driver.assertComponentExist(ON.id('execute_task')); + let executeTask = await driver.findComponent(ON.id('execute_task')); + await executeTask.click(); + await driver.delayMs(1000); + logger.info(TAG, BUNDLE + 'ClickTaskPoolFunction_001 clickExecuteTask'); + // 点击Cancel task + await driver.assertComponentExist(ON.id('cancel_task')); + let parser = await driver.findComponent(ON.id('cancel_task')); + await parser.click(); + await driver.delayMs(1000); + logger.info(TAG, BUNDLE + 'ClickTaskPoolFunction_001 clickCancelTask'); + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE}TaskPool_001 end`); + }) + + // 进入Deque界面 + it(BUNDLE + 'deque_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}deque_001 begin`); + await driver.delayMs(200); + // 滚动到Deque + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'Deque' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.deque')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.deque')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}deque_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'DequeAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} DequeAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // 删除三条数据 + await deleteItem(driver, 'delete2'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} DequeAddFunction_001 end`); + }) + + // 进入HashMap界面 + it(BUNDLE + 'hash_map_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}hash_map_001 begin`); + await driver.delayMs(200); + // 滚动到HashMap + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'HashMap' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.hash_map')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.hash_map')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}hash_map_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'HashMapAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} HashMapAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addKeyValue(driver, '1', '1'); + await addKeyValue(driver, '2', '2'); + await addKeyValue(driver, '3', '3'); + // 删除三条数据 + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} HashMapAddFunction_001 end`); + }) + + // 进入HashSet界面 + it(BUNDLE + 'hash_set_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}hash_set_001 begin`); + await driver.delayMs(200); + // 滚动到HashSet + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'HashSet' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.hash_set')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.hash_set')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}hash_set_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'HashSetAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} HashSetAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addValue(driver, '1'); + await addValue(driver, '2'); + await addValue(driver, '3'); + // 删除三条数据 + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} HashSetAddFunction_001 end`); + }) + + // 进入LightWeightMap界面 + it(BUNDLE + 'light_weight_map_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}light_weight_map_001 begin`); + await driver.delayMs(200); + // 滚动到LightWeightMap + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'LightWeightMap' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.light_weight_map')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.light_weight_map')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}light_weight_map_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'LightWeightMapAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} LightWeightMapAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addKeyValue(driver, '1', '1'); + await addKeyValue(driver, '2', '2'); + await addKeyValue(driver, '3', '3'); + // 删除三条数据 + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} LightWeightMapAddFunction_001 end`); + }) + + // 进入LightWeightSet界面 + it(BUNDLE + 'light_weight_set_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}light_weight_set_001 begin`); + await driver.delayMs(200); + // 滚动到LightWeightSet + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'LightWeightSet' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.light_weight_set')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.light_weight_set')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}light_weight_set_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'LightWeightSetAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} LightWeightSetAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addValue(driver, '1'); + await addValue(driver, '2'); + await addValue(driver, '3'); + // 删除三条数据 + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} LightWeightSetAddFunction_001 end`); + }) + + // 进入LinkedList界面 + it(BUNDLE + 'linked_list_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE}linked_list_001 begin`); + await driver.delayMs(200); + // 滚动到LinkedList + await driver.assertComponentExist(ON.id('menu_list')); + let menuList = await driver.findComponent(ON.id('menu_list')); + //find component on text 'LinkedList' + let button = await menuList.scrollSearch(ON.text(await getResourceString($r('app.string.linked_list')))); + await button.click(); + await driver.delayMs(200); + //check text + await driver.assertComponentExist(ON.text(await getResourceString($r('app.string.linked_list')))); + await driver.delayMs(200); + done(); + logger.info(TAG, `${BUNDLE}linked_list_001 end`); + }) + + // 新增数据 + it(BUNDLE + 'LinkedListAddFunction_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} LinkedListAddFunction_001 begin`); + await driver.delayMs(200); + // 添加三条数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // 删除三条数据 + await deleteItem(driver, 'delete2'); + await deleteItem(driver, 'delete0'); + await deleteItem(driver, 'delete0'); + // 返回上一页 + await driver.pressBack(); + done(); + logger.info(TAG, `${BUNDLE} LinkedListAddFunction_001 end`); + }) + + // 进入List页面 + it(BUNDLE + 'list_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} list_001 begin`); + await driver.delayMs(200); + //find component on text 'list' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.list')))); + await button.click() + await driver.delayMs(200); + // list添加数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // list删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} list_001 end`); + }) + + // 进入plain_array页面 + it(BUNDLE + 'plain_array_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} plain_array_001 begin`); + await driver.delayMs(200); + //find component on text 'plain_array' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.plain_array')))); + await button.click() + await driver.delayMs(200); + // PlainArray添加数据 + await addKeyValue(driver, '1', '1'); + await addKeyValue(driver, '2', '2'); + await addKeyValue(driver, '3', '3'); + // PlainArray删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} plain_array_001 end`); + }) + + // 进入queue页面 + it(BUNDLE + 'queue_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} queue_001 begin`); + await driver.delayMs(200); + //find component on text 'queue' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.queue')))); + await button.click() + await driver.delayMs(200); + // queue添加数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // queue删除数据 + await deleteItem(driver, 'delete0') + await deleteItem(driver, 'delete0') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} queue_001 end`); + }) + + // 进入stack页面 + it(BUNDLE + 'stack_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} stack_001 begin`); + await driver.delayMs(200); + // find component on text 'stack' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.stack')))); + await button.click() + await driver.delayMs(200); + // stack添加数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // stack删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} stack_001 end`); + }) + + // 进入tree_map页面 + it(BUNDLE + 'tree_map_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} tree_map_001 begin`); + await driver.delayMs(200); + //find component on text 'tree_map' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.tree_map')))); + await button.click() + await driver.delayMs(200); + // tree_map添加数据 + await addKeyValue(driver, '1', '1'); + await addKeyValue(driver, '2', '2'); + await addKeyValue(driver, '3', '3'); + // tree_map删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} tree_map_001 end`); + }) + + // 进入tree_set页面 + it(BUNDLE + 'tree_set_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} tree_set_001 begin`); + await driver.delayMs(200); + //find component on text 'tree_set' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.tree_set')))); + await button.click() + await driver.delayMs(200); + // tree_set添加数据 + await addValue(driver, '1'); + await addValue(driver, '2'); + await addValue(driver, '3'); + // tree_set删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} tree_set_001 end`); + }) + + // 进入vector页面 + it(BUNDLE + 'vector_001', 0, async (done: Function) => { + logger.info(TAG, `${BUNDLE} vector_001 begin`); + await driver.delayMs(200); + //find component on text 'vector' + let scrollBar = await driver.findComponent(ON.id('menu_list')); + let button = await scrollBar.scrollSearch(ON.text(await getResourceString($r('app.string.vector')))); + await button.click() + await driver.delayMs(200); + // vector添加数据 + await addContact(driver, '1', '1'); + await addContact(driver, '2', '2'); + await addContact(driver, '3', '3'); + // vector删除数据 + await deleteItem(driver, 'delete2') + await deleteItem(driver, 'delete1') + await deleteItem(driver, 'delete0') + await driver.pressBack(); + await driver.delayMs(3000); + done(); + logger.info(TAG, `${BUNDLE} vector_001 end`); + }) + }) +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000..657d1941 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2023 Huawei Device 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 abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/TestAbility.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100644 index 00000000..b2d6c3a3 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 Huawei Device 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 AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import testsuite from '../test/List.test'; +import UIAbility from '@ohos.app.ability.UIAbility'; +import window from '@ohos.window'; +import { Hypium } from '@ohos/hypium'; +import { logger } from '../util/Logger'; +import Want from '@ohos.app.ability.Want'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; + +const TAG: string = 'TestAbility'; + +export default class TestAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam) { + logger.info(TAG, `TestAbility onCreate`); + setTimeout(() => { + let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs = AbilityDelegatorRegistry.getArguments(); + logger.info(TAG, 'start run testcase!!!'); + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite); + }, 1500); + } + + onDestroy() { + logger.info(TAG, 'TestAbility onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + logger.info(TAG, 'TestAbility onWindowStageCreate'); + windowStage.loadContent('testability/pages/Index', (err, data) => { + if (err.code) { + logger.error(TAG, `Failed to load the content. Cause: ${JSON.stringify(err)}`); + return; + } + logger.info(TAG, `Succeeded in loading the content. Data: ${JSON.stringify(data) ?? ''}`); + }); + } + + onWindowStageDestroy() { + logger.info(TAG, 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + logger.info(TAG, 'TestAbility onForeground'); + } + + onBackground() { + logger.info(TAG, 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/pages/Index.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 00000000..b3180f1c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { logger } from '../../util/Logger'; + +const TAG: string = 'TestIndex'; + +@Entry +@Component +struct Index { + @State message: string = 'Hello World'; + + aboutToAppear() { + logger.info(TAG, 'TestAbility index aboutToAppear'); + } + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + } + .type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(() => { + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/util/Logger.ts b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/util/Logger.ts new file mode 100644 index 00000000..ebea3407 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/ets/util/Logger.ts @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; + +const DOMAIN: number = 0xF811; +const PREFIX = 'Sample_LanguageBaseClassLibraryTest'; +const FORMAT = '%{public}s, %{public}s'; + +class Logger { + debug(...args: string[]): void { + hilog.debug(DOMAIN, PREFIX, FORMAT, args); + } + + info(...args: string[]): void { + hilog.info(DOMAIN, PREFIX, FORMAT, args); + } + + warn(...args: string[]): void { + hilog.warn(DOMAIN, PREFIX, FORMAT, args); + } + + error(...args: string[]): void { + hilog.error(DOMAIN, PREFIX, FORMAT, args); + } +} + +export const logger = new Logger(); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/module.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000..22e2c611 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/module.json5 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "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", + "srcEntrance": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "visible": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/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/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 00000000..505f35cb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,224 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + }, + { + "name": "xml", + "value": "Xml & ConvertXml (XML Parsing,Generation and convert)" + }, + { + "name": "serializer", + "value": "Xml Serializer" + }, + { + "name": "parser", + "value": "Xml Pull Parser" + }, + { + "name": "convert", + "value": "Xml Convert" + }, + { + "name": "url", + "value": "Url (URL String Parsing)" + }, + { + "name": "util", + "value": "Util (util)" + }, + { + "name": "process", + "value": "Process (Obtaining Process Information)" + }, + { + "name": "array_list", + "value": "ArrayList (Linear Container ArrayList)" + }, + { + "name": "string_code", + "value": "StringCode (String encoding and decoding)" + }, + { + "name": "rational_number", + "value": "RationalNumber (RationalNumber)" + }, + { + "name": "rationalNumber", + "value": "Rational number:" + }, + { + "name": "numerator", + "value": "Numerator:" + }, + { + "name": "denominator", + "value": "Denominator:" + }, + { + "name": "compare", + "value": "Compare rational numbers" + }, + { + "name": "less_than", + "value": "FirstRationalNumber id less than SecondRationalNumber" + }, + { + "name": "get", + "value": "Get rational number value" + }, + { + "name": "get_value", + "value": "Get Value" + }, + { + "name": "getDenominator", + "value": "Get numerator and denominator" + }, + { + "name": "isZero", + "value": "Check for zero" + }, + { + "name": "rational_number_is", + "value": "Rational Number1 is" + }, + { + "name": "isNaN", + "value": "Check for NaN" + }, + { + "name": "rational_number_is_not_nan", + "value": "Rational Number1 is not NaN" + }, + { + "name": "isFinite", + "value": "Check for finite number" + }, + { + "name": "lru_cache", + "value": "LRUCache (Lru cache)" + }, + { + "name": "initialize_buffer", + "value": "Initialize buffer" + }, + { + "name": "get_buffer_capacity", + "value": "Get buffer capacity" + }, + { + "name": "update_buffer_capacity", + "value": "Update buffer capacity" + }, + { + "name": "get_buffer_string", + "value": "Get buffer string" + }, + { + "name": "add_key_value", + "value": "Add key value pair" + }, + { + "name": "get_value_with_key", + "value": "Get value with key" + }, + { + "name": "get_all_key_values", + "value": "Get all key-values" + }, + { + "name": "delete_key_and_value", + "value": "Delete the value of key" + }, + { + "name": "clear_all_key_values", + "value": "Clear all key-values" + }, + { + "name": "view_operation_record", + "value": "View operation record" + }, + { + "name": "base64", + "value": "Base64Helper (Base64 codec)" + }, + { + "name": "encode", + "value": "Encode" + }, + { + "name": "decode", + "value": "Decode" + }, + { + "name": "type_check", + "value": "TypeCheck (Type check)" + }, + { + "name": "task_pool", + "value": "TaskPool (Using the Task Pool)" + }, + { + "name": "deque", + "value": "Deque (Linear Container Deque)" + }, + { + "name": "hash_map", + "value": "HashMap (NoLinear Container HashMap)" + }, + { + "name": "hash_set", + "value": "HashSet (NoLinear Container HashSet)" + }, + { + "name": "light_weight_map", + "value": "LightWeightMap (NoLinear Container LightWeightMap)" + }, + { + "name": "light_weight_set", + "value": "LightWeightSet (NoLinear Container LightWeightSet)" + }, + { + "name": "linked_list", + "value": "LinkedList (Linear Container LinkedList)" + }, + { + "name": "list", + "value": "List (Linear Container List)" + }, + { + "name": "plain_array", + "value": "PlainArray (NoLinear Container PlainArray)" + }, + { + "name": "queue", + "value": "Queue (Linear Container Queue)" + }, + { + "name": "stack", + "value": "Stack (Linear Container Stack)" + }, + { + "name": "tree_map", + "value": "TreeMap (NoLinear Container TreeMap)" + }, + { + "name": "tree_set", + "value": "TreeSet (NoLinear Container TreeSet)" + }, + { + "name": "vector", + "value": "Vector (Linear Container Vector)" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/media/icon.png b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 zcmX|G1ymHk)?T_}Vd;>R?p|tHQo6fg38|$UVM!6BLrPFWk?s;$LOP{GmJpBl$qoSA!PUg~PA65-S00{{S`XKG6NkG0RgjEntPrmV+?0|00mu7;+5 zrdpa{2QLqPJ4Y{j7=Mrl{BaxrkdY69+c~(w{Fv-v&aR%aEI&JYSeRTLWm!zbv;?)_ ziZB;fwGbbeL5Q}YLx`J$lp~A09KK8t_z}PZ=4ZzgdeKtgoc+o5EvN9A1K1_<>M?MBqb#!ASf&# zEX?<)!RH(7>1P+j=jqG(58}TVN-$psA6K}atCuI!KTJD&FMmH-78ZejBm)0qc{ESp z|LuG1{QnBUJRg_E=h1#XMWt2%fcoN@l7eAS!Es?Q+;XsRNPhiiE=@AqlLkJzF`O18 zbsbSmKN=aaq8k3NFYZfDWpKmM!coBU0(XnL8R{4=i|wi{!uWYM2je{U{B*K2PVdu&=E zTq*-XsEsJ$u5H4g6DIm2Y!DN`>^v|AqlwuCD;w45K0@eqauiqWf7l&o)+YLHm~|L~ z7$0v5mkobriU!H<@mVJHLlmQqzQ3d6Rh_-|%Yy2li*tHO>_vcnuZ7OR_xkAIuIU&x z-|8Y0wj|6|a6_I(v91y%k_kNw6pnkNdxjqG8!%Vz_d%c_!X+6-;1`GC9_FpjoHev5fEV7RhJ>r=mh-jp$fqbqRJ=obwdgLDVP5+s zy1=_DWG0Y-Jb3t^WXmkr(d9~08k-|#Ly zaNOmT(^9tIb&eb4%CzIT zAm3CUtWSr1t4?h1kk#NBi{U|pJslvME{q|_eS^3En>SOqSxyuN1x;Is@8~m?*>}** znrRFArP!K_52RpX*&JHMR<^lVdm8ypJ}0R(SD(51j;6@ni$6bQ+2XL+R^|NnSp5}(kzvMZ^(@4fD_{QVu$(&K6H|C37TG1Am9Re{<<3gd zh@`>;BqkXMW&p0T6rt|iB$)~CvFe(XC)F9WgAZn*0@t$oZo;!*}r@_`h?KKH&6A@3= zISXoQB+~`op>NP-buiA*^0n{@i{_?MRG)&k)c)k_F+-2Lud!S9pc+i`s74NpBCaGF zXN+pHkubw*msGBTY27BKHv)RRh3;nMg4&$fD_6X9Vt~;_4D+5XPH~#Kn-yjcy!$}1 zigv#FNY>TqMhtIBb@UoF!cE~Q8~;!Pek>SQQwHnHuWKoVBosAiOr}q>!>aE*Krc)V zBUMEcJ5NU0g8}-h6i1zpMY9>m4ne?=U2~`w7K7Q0gB_=p@$5K7p6}thw z-~3dMj?YNX2X$lZ+7ngQ$=s}3mizNN@kE%OtB)?c&i~2L55z8^=yz;xMHLmlY>&Q# zJj?!)M#q_SyfkQh)k?j8IfLtB)ZCp|*vf4_B zos?73yd^h-Ac+;?E4*bpf=o*^3x3-`TVjbY4n6!EN10K6o@fxdyps05Vo3PU)otB} z`3kR+2w7_C#8Z!q`J)p{Vh!+m9-UP!$STp+Hb}}#@#_u^SsUQg<}59< zTvH3%XS4G+6FF^(m6bVF&nSUIXcl;nw{=H$%fgeJ>CgDYiLdpDXr{;-AnG z8dvcrHYVMI&`R6;GWekI@Ir3!uo)oz4^{6q0m^}@f2tM9&=YHNi6-?rh0-{+k@cQm zdp`g#YdQn%MDVg2GR>wZ`n2<0l4)9nx1Wfr&!Dvz=bPwU!h2S?ez6MVc5APE4-xLB zi&W9Q8k2@0w!C53g?iAIQ}~p*3O(@zja6KQ=M3zfW*_6o5SwR-)6VBh~m7{^-=MC-owYH5-u40a}a0liho3QZZ5L{bS_xM1)4}19)zTU$$MY zq3eZML1WC{K%YFd`Be0M-rkO^l?h{kM{$2oK1*A@HVJ57*yhDkUF!2WZ&oA4Y-sK( zCY69%#`mBCi6>6uw(x4gbFaP0+FD*JKJ-q!F1E?vLJ+d35!I5d7@^eU?(CS|C^tmI5?lv@s{{*|1F zFg|OzNpZ0hxljdjaW%45O0MOttRrd(Z?h{HYbB-KFUx&9GfFL3b8NwZ$zNu)WbBD` zYkj$^UB5%3Pj1MDr>S2Ejr9pUcgA!;ZG!@{uAy12)vG=*^9-|dNQBc8&`oxBlU~#y zs!anJX&T?57Jdr^sb>e+V`MVfY>Y0ESg7MG<7W0g&bR-ZYzzZ%2H&Etcp zcd6QeXO1D!5A#zM0lx*GH}`M)2~ZFLE;sP^RSB5wVMNfiZXPd(cmO>j=OSA3`o5r& zna(|^jGXbdN7PK)U8b7^zYtYkkeb%<%F~=OqB~kXMQkq}ii|skh@WSRt>5za;cjP0 zZ~nD%6)wzedqE}BMLt~qKwlvTr33))#uP~xyw#*Eaa|DbMQ_%mG0U8numf8)0DX`r zRoG2bM;#g|p-8gWnwRV5SCW0tLjLO&9Z?K>FImeIxlGUgo0Zk`9Qzhj1eco~7XZy+hXc@YF&ZQ=? zn*^1O56yK^x{y}q`j7}blGCx%dydV!c7)g~tJzmHhV=W~jbWRRR{1<^oDK+1clprm zz$eCy7y9+?{E|YgkW~}}iB#I4XoJ*xr8R?i_Hv$=Cof5bo-Nj~f`-DLebH}&0% zfQj9@WGd4;N~Y?mzQsHJTJq6!Qzl^-vwol(+fMt#Pl=Wh#lI5Vmu@QM0=_r+1wHt` z+8WZ~c2}KQQ+q)~2Ki77QvV&`xb|xVcTms99&cD$Zz4+-^R4kvUBxG8gDk7Y`K*)JZ^2rL(+ZWV~%W(@6 z)0bPArG#BROa_PHs~&WplQ_UIrpd)1N1QGPfv!J(Z9jNT#i%H?CE6|pPZb9hJ1JW4 z^q;ft#!HRNV0YgPojzIYT`8LuET2rUe-J|c!9l4`^*;4WtY@Ew@pL>wkjmMgGfN7 ze}}GtmU0@<_#08~I-Suk=^*9GLW=H4xhsml;vAV{%hy5Eegl@!6qKqbG024%n2HHw zCc@ivW_$@5ZoHP70(7D+(`PvgjW1Pd`wsiuv-aCukMrafwDm)B!xXVy*j2opohhoU zcJz%ADmj>i3`-3-$7nQKBQQuGY;2Qt&+(L~C>vSGFj5{Mlv?T_^dql;{zkpe4R1}R z%XfZyQ}wr*sr>jrKgm*PWLjuVc%6&&`Kbf1SuFpHPN&>W)$GmqC;pIoBC`=4-hPY8 zT*>%I2fP}vGW;R=^!1be?ta2UQd2>alOFFbVl;(SQJ4Jk#)4Z0^wpWEVvY4=vyDk@ zqlModi@iVPMC+{?rm=4(n+<;|lmUO@UKYA>EPTS~AndtK^Wy^%#3<;(dQdk3WaUkRtzSMC9}7x2||CNpF#(3T4C)@ z$~RWs`BNABKX|{cmBt>Q=&gkXl&x!!NK_%5hW0LS)Z4PB>%sV?F-{Wyj#s7W%$F{D zXdK^Fp3wvy+48+GP6F_|^PCRx=ddcTO3sG;B23A49~Qaw31SZ0Rc~`r4qqt%#OGW{ zCA_(LG5^N>yzUn&kAgVmxb=EA8s&tBXC}S1CZ(KoW)(%^JjLTPo^fs`Va;`=YlVPgmB$!yB}<(4ym6OeZ3xAJJ#;)2+B%p3P1Wt+d$eo`vz`T zXfUP2))kBDPoscH;Jc7I3NU<({|@wM$&GaDt`n7WLgIY3IA7A6-_R?z8N3mz|}*i z(zl5ot--Oq@f2-nv{X(ujT2T(k1vY_qh93pK@>H-qc%2Xta)IP0Q%zt%bqYgI`o!wv!0QerB`nCN^1n|@$sVOQ!V0teVG!I z_fD%JvfDeT1cK#-{o6Gv7}& zY0#NWin~kVaf$aufV&;63Hbs|`QVZWpDX6IMk1Hj2G}fiH9e-^6u2zf^FIr^BwD<6zjw63+{yUe8PUFvk8v{sJ=R{d#`O!sz`Q13~< zPT$JS(w=yQfU2`zPCNfSw=&zup@DXc(98afjhv@1w_f!m2Z>rMJ19AB&dB%P#Ls3b z=lK7OILM+SQ&VEd=1GN6o&>YVVtIzoZ%=Z_SdqJN2}E43{bE`>w+A;=y->@^k{oCC z$F*WTY&?34;kfyFV?b*Xb1Pq`Z=%OgwEg)Rz)tx=`f%5#w_INP=x&z5!jI;#;N$ma zhO)+MDm;SxOEVL15; zGq(v2pL3&P1Sl)8P*;G-fd{l1QJsv@e@d8)1PK4w2m*M%V3j-V~L^$i|&C@b?D?9tfwE{B^}Z$k8e5FmQ>v7Xz)sG32g9t}YBt zyR$+*_00RmPx+0mW+vVG4mxd(n$(eQf3-w>JPl2UJpafrPaL5@2j}%{VE-) zBI%6Qpj*dsdH<;g!S!avA~bv^0E+ zfyJbSjPb+j;J52U)<|cIcntQBI2T#>2;tOxu{%D?kML476AErF(qN9hPva5Nkc@BF zC-tLF@3ZFb%Kpj)M<{)x*l|*Ia@ECeXo2E4h2f!aV=cHAhi_E_mfUth(sM4^hJq7B zQsGWqdZUm9S%F`$nQ*_#NcuD`&)Ek%_s{&^78{9Hm ztri&rYLOxgFdG>O@+XHy z9#;|&vBCPXH5Mon^I`jSuR$&~ZWtyB67ujzFSj!51>#C}C17~TffQ{c-!QFQkTQ%! zIR^b1`zHx|*1GU?tbBx23weFLz5H?y_Q%N&t$}k?w+``2A=aotj0;2v$~AL z{scF-cL{wsdrmPvf#a9OHyYLcwQD4Kcm)`LLwMh4WT~p29f7M!iafJSU`IV}QY5Wa z(n44-9oA}?J{a+ah*@31WTs#&J#o1`H98#6IQf;Wv0N_!);f&9g7o-k(lW5rWnDUR zQBFIRG+X=6NnsI@mxnwm;tf5;_Uxg?jZ8m-m0}&6+DA!qam(p$mN5R})yA_7m$q@| zFEd|dpS595rxQr-n#GjI5i-AhnUE>Cr;jpCqSrD~EwK_DqI^7%3#p5)%T_od!t3SOmH9MyXeeGO2(UQL;ax|x?Ncixmeo1=$ z{-);Au{*tfzOG?KQ~K|ak8-HQ?`Pekhe2WM(8s{xv-p>Zmu_6{G!-oE$7$mY`MOJorI=+mMx?H;`pr!;fVYz?5~yXBACruWB`Ph zZM}90_<^OBxIhyZ9BW$`>6JvO;%VFpqVr8|7t3~AmxYak6?`Pp#c;**_SYmi`&z23 z`p6_~ePvH)C6x-G9$hgL=eVALq`-AiamN>!3~Lxw&{H(b{B(7xSRm6<3<{%{yXiH# zos5Rv1L+8fUKJLo%P>4I&$}y = new ArrayList(); + private dialogController: CustomDialogController = new CustomDialogController({ + builder: AddDialog({ + saveData: (writeInformation: Information) => { + this.informations.add(writeInformation); + this.dataSource = this.informations.convertToArray(); + logger.info(TAG, `this.list= ${this.dataSource.length}`); + } + }), + autoCancel: true, + alignment: DialogAlignment.Default + }); + + build() { + Column() { + Row() { + Blank() + Button() { + Image($r('app.media.ic_add')) + .height(35) + .width('100%') + .objectFit(ImageFit.Contain) + .align(Alignment.End) + } + .key('addBtn') + .width(35) + .type(ButtonType.Normal) + .backgroundColor($r("app.color.button_bg")) + .align(Alignment.End) + .onClick(() => { + this.dialogController.open(); + logger.info(TAG, `enter the AddDialog`); + }) + } + .width('100%') + + List({ space: 12 }) { + ForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + ArrayListItem({ information: item, index: index, handleOnClick: this.handleOnClick }) + } + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .margin({ top: 10 }) + } + .width('100%') + .height('100%') + } + + handleOnClick = (index: number) => { + this.informations.removeByIndex(index); + this.dataSource = this.informations.convertToArray(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ConvertXml.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ConvertXml.ets new file mode 100644 index 00000000..55dcf9fb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ConvertXml.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ColumnOperation } from '../components/ColumnOperation'; +import { serializerNode, parserNode, convertNode } from '../util/ConvertXmlUtil'; + +@Component +export struct ConvertXml { + @State output: string = `eTSXmlTextConvert`; + @State input: string = + ` + + Happy + Work + Play + `; + + build() { + Scroll() { + Column() { + Text(this.output) + .width('90%') + .height('60%') + .fontSize(15) + .padding(10) + .margin({ left: 10, right: 10, top: 20, bottom: 10 }) + .border({ width: 2, radius: 5, color: Color.Gray }) + ColumnOperation({ operationRes: $r('app.strarray.convert_xml_operations'), doOperation: this.doOperation }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + doOperation = (index: number) => { + switch (index) { + case 0: + this.output = serializerNode(); + break; + case 1: + this.output = parserNode(this.input); + break; + case 2: + this.output = convertNode(this.input); + break; + default: + break; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/DequeView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/DequeView.ets new file mode 100644 index 00000000..e78ff50b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/DequeView.ets @@ -0,0 +1,78 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from "@ohos.events.emitter"; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { Information } from '../model/Information' +import { InformationItemView } from '../components/InformationItemView'; +import { DequeDataSource } from '../components/dequecomponents/DequeDataSource'; +import { Constant } from "../Constant"; + +const TAG = 'DequeView'; + +@Component +export struct DequeView { + @State totalCount: number = 0; + private dataSource: DequeDataSource = new DequeDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_DEQUE }, (eventData) => { + let item = eventData.data as Information; + this.dataSource.insertFront(item); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_DEQUE); + } + + build() { + Column() { + if (this.totalCount != 0) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ + index: index, + information: item, + deleteAction: () => { + logger.info(TAG, `deleteAction: ${JSON.stringify(item)}`); + if (index === 0) { + this.dataSource.deleteFront(); + this.totalCount = this.dataSource.totalCount(); + } else if (index === this.totalCount - 1) { + this.dataSource.deleteEnd(); + this.totalCount = this.dataSource.totalCount(); + } + } + }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashMapView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashMapView.ets new file mode 100644 index 00000000..e0a3290f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashMapView.ets @@ -0,0 +1,76 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 HashMap from '@ohos.util.HashMap'; +import emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { KeyValueItemView } from '../components/KeyValueItemView'; +import { KeyValuePair } from '../model/KeyValuePair'; +import { HashMapDataSource } from '../components/hashmapcomponents/HashMapDataSource'; +import { Constant } from '../Constant'; + +const TAG = 'HashMapView'; + +@Component +export struct HashMapView { + @State totalCount: number = 0; + private hashMap: HashMap = new HashMap(); + private dataSource: HashMapDataSource = new HashMapDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_HASH_MAP }, (eventData) => { + let item: KeyValuePair = eventData.data as KeyValuePair; + this.dataSource.addData(item); + this.totalCount = this.dataSource.totalCount(); + this.hashMap.set(item.key, item.value); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_HASH_MAP); + } + + build() { + Column() { + if (this.totalCount != 0) { + List({ space: 12 }) { + LazyForEach(this.dataSource, (item: KeyValuePair, index: number) => { + ListItem() { + KeyValueItemView({ + index: index, + keyValuePair: item, + deleteAction: () => { + logger.info(TAG, `item = ${JSON.stringify(item)}`) + this.dataSource.deleteData(item, index); + this.totalCount = this.dataSource.totalCount(); + this.hashMap.remove(item.key); + } + }) + } + .height(72) + .width('100%') + }, (item: KeyValuePair, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashSetView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashSetView.ets new file mode 100644 index 00000000..061e18cc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/HashSetView.ets @@ -0,0 +1,78 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 HashSet from '@ohos.util.HashSet'; +import emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { ValueItemView } from '../components/ValueItemView'; +import { HashSetDataSource } from '../components/hashsetcomponents/HashSetDataSource'; +import { Constant } from '../Constant'; + +const TAG = 'HashSetView' + +@Component +export struct HashSetView { + @State totalCount: number = 0; + private hashSet: HashSet = new HashSet(); + private dataSource: HashSetDataSource = new HashSetDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_HASH_SET }, (eventData: emitter.EventData) => { + if (eventData.data === undefined) { + return; + } + let item: string = eventData.data.value; + this.dataSource.addData(item); + this.totalCount = this.dataSource.totalCount(); + this.hashSet.add(item); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_HASH_SET); + } + + build() { + Column() { + if (this.totalCount != 0) { + List({ space: 12 }) { + LazyForEach(this.dataSource, (item: string, index: number) => { + ListItem() { + ValueItemView({ + index: index, + value: item, + deleteAction: () => { + logger.info(TAG, `item = ${JSON.stringify(item)}`) + this.dataSource.deleteData(item, index); + this.totalCount = this.dataSource.totalCount(); + this.hashSet.remove(item); + } + }) + } + .height(72) + .width('100%') + }, (item: string, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightMapView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightMapView.ets new file mode 100644 index 00000000..0e7b57cf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightMapView.ets @@ -0,0 +1,76 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 LightWeightMap from '@ohos.util.LightWeightMap'; +import emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { KeyValueItemView } from '../components/KeyValueItemView'; +import { KeyValuePair } from '../model/KeyValuePair'; +import { LightWeightMapDataSource } from '../components/lightweightmapcomponents/LightWeightMapDataSource'; +import { Constant } from '../Constant'; + +const TAG = 'LightWeightMapView'; + +@Component +export struct LightWeightMapView { + @State totalCount: number = 0; + private lightWeightMap: LightWeightMap = new LightWeightMap(); + private dataSource: LightWeightMapDataSource = new LightWeightMapDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_LIGHT_WEIGHT_MAP }, (eventData) => { + let item: KeyValuePair = eventData.data as KeyValuePair; + this.dataSource.addData(item); + this.totalCount = this.dataSource.totalCount(); + this.lightWeightMap.set(item.key, item.value); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_LIGHT_WEIGHT_MAP); + } + + build() { + Column() { + if (this.totalCount != 0) { + List({ space: 12 }) { + LazyForEach(this.dataSource, (item: KeyValuePair, index: number) => { + ListItem() { + KeyValueItemView({ + index: index, + keyValuePair: item, + deleteAction: () => { + logger.info(TAG, `item = ${JSON.stringify(item)}`) + this.dataSource.deleteData(item, index); + this.totalCount = this.dataSource.totalCount(); + this.lightWeightMap.remove(item.key); + } + }) + } + .height(72) + .width('100%') + }, (item: KeyValuePair, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightSetView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightSetView.ets new file mode 100644 index 00000000..d4116ffc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LightWeightSetView.ets @@ -0,0 +1,78 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 LightWeightSet from '@ohos.util.LightWeightSet'; +import emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { ValueItemView } from '../components/ValueItemView'; +import { LightWeightSetDataSource } from '../components/lightweightsetcomponents/LightWeightSetDataSource'; +import { Constant } from '../Constant'; + +const TAG = 'LightWeightSetView'; + +@Component +export struct LightWeightSetView { + @State totalCount: number = 0; + @State lightWeightSet: LightWeightSet = new LightWeightSet(); + private dataSource: LightWeightSetDataSource = new LightWeightSetDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_LIGHT_WEIGHT_SET }, (eventData: emitter.EventData) => { + if (eventData.data === undefined) { + return; + } + let item: string = eventData.data.value; + this.dataSource.addData(item); + this.lightWeightSet.add(item); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_LIGHT_WEIGHT_SET); + } + + build() { + Column() { + if (this.totalCount != 0) { + List({ space: 12 }) { + LazyForEach(this.dataSource, (item: string, index: number) => { + ListItem() { + ValueItemView({ + index: index, + value: item, + deleteAction: () => { + logger.info(TAG, `item = ${JSON.stringify(item)}`) + this.dataSource.deleteData(item, index); + this.totalCount = this.dataSource.totalCount(); + this.lightWeightSet.remove(item); + } + }) + } + .height(72) + .width('100%') + }, (item: string, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LinkedListView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LinkedListView.ets new file mode 100644 index 00000000..cc9135bf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/LinkedListView.ets @@ -0,0 +1,81 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { Information } from '../model/Information' +import { InformationItemView } from '../components/InformationItemView'; +import { LinkedListDataSource } from '../components/linkedlistcomponents/LinkedListDataSource' +import { Constant } from '../Constant'; + +const TAG = 'LinkedListView' + +@Component +export struct LinkedListView { + @State totalCount: number = 0; + private dataSource: LinkedListDataSource = new LinkedListDataSource(); + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_LINKED_LIST }, (eventData) => { + let item = eventData.data as Information; + this.dataSource.addData(item); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_LINKED_LIST); + } + + build() { + Column() { + if (this.totalCount != 0) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ + index: index, + information: item, + deleteAction: () => { + logger.info(TAG, `deleteAction: ${JSON.stringify(item)}`); + if (index === 0) { + this.dataSource.deleteFirst(); + this.totalCount = this.dataSource.totalCount(); + } else if (index === this.totalCount - 1) { + this.dataSource.deleteLast(); + this.totalCount = this.dataSource.totalCount(); + } else { + this.dataSource.deleteData(index); + this.totalCount = this.dataSource.totalCount(); + } + } + }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .height('100%') + .padding({ top: 8, left: 12, right: 12 }) + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ListView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ListView.ets new file mode 100644 index 00000000..f6485cc2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ListView.ets @@ -0,0 +1,67 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { Information } from '../model/Information'; +import { ListDateSource } from '../components/listcomponents/ListDataSource'; +import { InformationItemView } from '../components/InformationItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Entry +@Component +export struct ListView { + private dataSource: ListDateSource = new ListDateSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_LIST }, (eventData) => { + this.dataSource.addData(eventData.data as Information); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_LIST); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ index: index, information: item, deleteAction: () => { + this.dataSource.deleteData(index); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/PlainArrayView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/PlainArrayView.ets new file mode 100644 index 00000000..08303ae5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/PlainArrayView.ets @@ -0,0 +1,76 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import promptAction from '@ohos.promptAction'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { KeyValuePair } from '../model/KeyValuePair'; +import { PlainArrayDataSource } from '../components/plainarraycomponents/PlainArrayDataSource'; +import { KeyValueItemView } from '../components/KeyValueItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; +const isNaturalNumber = (str: string): boolean => { + let regExp: RegExp = new RegExp('^\\d+$'); + return regExp.test(str); +}; + +@Component +export struct PlainArrayView { + private dataSource: PlainArrayDataSource = new PlainArrayDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_PLAIN_ARRAY }, (eventData) => { + let data = eventData.data as KeyValuePair; + if (isNaturalNumber(data.key)) { + this.dataSource.addData(eventData.data as KeyValuePair); + this.totalCount = this.dataSource.totalCount(); + } else { + promptAction.showToast({ message: $r('app.string.key_limit') }); + } + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_PLAIN_ARRAY); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: KeyValuePair, index: number) => { + ListItem() { + KeyValueItemView({ index: index, keyValuePair: item, deleteAction: () => { + this.dataSource.deleteData(index); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: KeyValuePair, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Process.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Process.ets new file mode 100644 index 00000000..7ee21aaa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Process.ets @@ -0,0 +1,99 @@ +/* + * Copyright (c) 2023 Huawei Device 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 process from '@ohos.process'; +import { ColumnOperation } from '../components/ColumnOperation'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; + +let child: process.ChildProcess | undefined = undefined; +const TAG: string = 'Process'; + +@Component +export struct Process { + @State result: string = ''; + + build() { + Scroll() { + Column() { + Text(this.result) + .width('100%') + .height(100) + .backgroundColor('#DFDFDF') + .fontSize(20) + .margin({ top: 20 }) + .textAlign(TextAlign.Start) + .padding(10) + ColumnOperation({ operationRes: $r('app.strarray.process_operations'), doOperation: this.doOperation }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + doOperation = (index: number) => { + let proManager = new process.ProcessManager(); + switch (index) { + case 0: + this.result = process.uptime().toString() + 's'; + logger.info(TAG, 'uptime=' + this.result); + break; + case 1: + logger.info(TAG, 'process cwd'); + this.result = process.cwd().toString(); + break; + case 2: + logger.info(TAG, 'process change dir'); + process.chdir('/system'); + this.result = process.cwd().toString(); + break; + case 3: + child = process.runCmd('sleep 2;ls'); + this.result = child == null ? 'failed' : 'succeed'; + logger.info(TAG, 'runCmd=' + this.result); + let childResult = child.wait(); + childResult.then(val => { + this.result = 'child process run finish' + JSON.stringify(val); + logger.info(TAG, 'runCmd result =' + val); + }) + break; + case 4: + if (child != null) { + this.result = getString($r('app.string.close_success')); + child.close(); + } else { + this.result = getString($r('app.string.child_null')); + } + logger.info(TAG, this.result); + break; + case 5: + let pres = process.pid; + let result = proManager.kill(28, pres); + if (result === true) { + this.result = getString($r('app.string.success')); + } else { + this.result = getString($r('app.string.failed')); + } + break; + case 6: + proManager.exit(0); + break; + default: + break; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ProcessMessage.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ProcessMessage.ets new file mode 100644 index 00000000..a32d916c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/ProcessMessage.ets @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2024 Huawei Device 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 { BusinessError } from '@ohos.base'; +import Want from '@ohos.app.ability.Want'; +import common from '@ohos.app.ability.common'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; + +@Component +export struct ProcessMessage { + + build() { + Column() { + Button() { + Text($r('app.string.process')) + .fontSize(16) + .fontColor(Color.White) + } + .width('100%') + .height(50) + .type(ButtonType.Capsule) + .onClick(() => { + let context: common.UIAbilityContext | undefined = AppStorage.get('context'); + let want: Want = { + bundleName: "com.samples.process_message", + abilityName: "EntryAbility", + }; + context && context.startAbility(want, (err: BusinessError) => { + if (err.code) { + logger.error('StartAbility', `Failed to startAbility. Code: ${err.code}, message: ${err.message}`); + } + }); + }) + } + .width('100%') + .height('100%') + .justifyContent(FlexAlign.Center) + .alignItems(HorizontalAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/QueueView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/QueueView.ets new file mode 100644 index 00000000..3fe07c47 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/QueueView.ets @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { Information } from '../model/Information'; +import { QueueDataSource } from '../components/queuecomponents/QueueDataSource'; +import { InformationItemView } from '../components/InformationItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Component +export struct QueueView { + private dataSource: QueueDataSource = new QueueDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_QUEUE }, (eventData) => { + this.dataSource.addData(eventData.data as Information); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_QUEUE); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ index: index, information: item, deleteAction: () => { + this.dataSource.deleteData(); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/StackView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/StackView.ets new file mode 100644 index 00000000..1360f913 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/StackView.ets @@ -0,0 +1,70 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { Information } from '../model/Information'; +import { StackDataSource } from '../components/stackcomponents/StackDataSource'; +import { InformationItemView } from '../components/InformationItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Component +export struct StackView { + private dataSource: StackDataSource = new StackDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_STACK }, (eventData) => { + this.dataSource.addData(eventData.data as Information); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_STACK); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ + index: index, + information: item, + deleteAction: () => { + this.dataSource.deleteData(); + this.totalCount = this.dataSource.totalCount(); + } + }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TaskPool.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TaskPool.ets new file mode 100644 index 00000000..a012667e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TaskPool.ets @@ -0,0 +1,115 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 taskpool from '@ohos.taskpool' +import router from '@ohos.router' + +function functionForTasks(numberOfExecutions: number) { + "use concurrent" + return numberOfExecutions + 1 +} + +@Component +export struct TaskPool { + @State numberOfExecutions: number = 0; + private isExecute = true; + private clickAble = true; + @State task: taskpool.Task | null = null; + @State msg: string = 'task ready'; + + build() { + Column() { + Row() { + Text($r('app.string.click_exec_add_one')) + .margin({ top: 22 }) + } + .width('90%') + + Column() { + Row() { + Text('numberOfExecutions:') + .fontColor($r('sys.color.ohos_id_color_text_primary')) + Text(this.numberOfExecutions.toString()) + .fontColor($r('sys.color.ohos_id_color_text_primary')) + } + .width('100%') + + Row() { + Text('task status:') + .fontColor($r('sys.color.ohos_id_color_text_primary')) + Text(this.msg) + .fontColor($r('sys.color.ohos_id_color_text_primary')) + } + .width('100%') + } + .height(160) + .margin({ top: 12 }) + .padding(16) + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + + Blank() + .layoutWeight(1) + + Row({ space: 20 }) { + Button('Execute task') + .id('execute_task') + .type(ButtonType.Capsule) + .width('45%') + .fontColor($r('app.color.text_color_accent')) + .backgroundColor($r('app.color.bg_btn_grey')) + .onClick(async () => { + if (!this.clickAble) { + return; + } + for (let i = 0; i > -1; i++) { + this.task = new taskpool.Task(functionForTasks, i); + if (!this.isExecute) { + this.isExecute = true; + taskpool.cancel(this.task); + } else { + this.clickAble = false; + this.msg = 'task is running'; + await taskpool.execute(this.task) + .then((res: Object) => { + this.numberOfExecutions = Number(JSON.parse(JSON.stringify(res))); + }); + } + } + }) + + Button('Cancel task') + .id('cancel_task') + .type(ButtonType.Capsule) + .width('45%') + .fontColor($r('app.color.text_color_red')) + .backgroundColor($r('app.color.bg_btn_grey')) + .onClick(() => { + if (!this.clickAble) { + this.msg = 'task cancel'; + this.clickAble = true; + this.isExecute = !this.isExecute; + } + }) + } + .width('100%') + .margin({ top: 12, bottom: 16 }) + .justifyContent(FlexAlign.Center) + } + .width('100%') + .height('100%') + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeMapView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeMapView.ets new file mode 100644 index 00000000..60c81946 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeMapView.ets @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { KeyValuePair } from '../model/KeyValuePair'; +import { TreeMapDataSource } from '../components/treemapcomponents/TreeMapDataSource'; +import { KeyValueItemView } from '../components/KeyValueItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Component +export struct TreeMapView { + private dataSource: TreeMapDataSource = new TreeMapDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_TREE_MAP }, (eventData) => { + this.dataSource.addData(eventData.data as KeyValuePair); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_TREE_MAP); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: KeyValuePair, index: number) => { + ListItem() { + KeyValueItemView({ index: index, keyValuePair: item, deleteAction: () => { + this.dataSource.deleteData(item.key); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: KeyValuePair, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeSetView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeSetView.ets new file mode 100644 index 00000000..ab739671 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/TreeSetView.ets @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { TreeSetDataSource } from '../components/treesetcomponents/TreeSetDataSource'; +import { ValueItemView } from '../components/ValueItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Component +export struct TreeSetView { + private dataSource: TreeSetDataSource = new TreeSetDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_TREE_SET }, (eventData) => { + this.dataSource.addData((eventData.data as Record)['value'] as string); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_TREE_SET); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: string, index: number) => { + ListItem() { + ValueItemView({ index: index, value: item, deleteAction: () => { + this.dataSource.deleteData(item, index); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: string, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Url.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Url.ets new file mode 100644 index 00000000..25704027 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Url.ets @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ColumnOperation } from '../components/ColumnOperation'; +import { changeValue, deleteNode, getFirstNode, insertNode } from '../util/UrlUtil'; + +const URL_NET: string = 'https://gitee.com/openharmony/'; + +@Preview +@Component +export struct Url { + @State output: string = URL_NET; + + build() { + Scroll() { + Column() { + Text(this.output) + .id('output') + .width('95%') + .height('30%') + .fontSize(15) + .padding(10) + .margin({ left: 10, right: 10, top: 10 }) + .border({ width: 2, radius: 5, color: Color.Gray }) + Text(URL_NET) + .fontSize(15) + .margin({ top: 15 }) + .fontWeight(FontWeight.Bold) + ColumnOperation({ operationRes: $r('app.strarray.url_operations'), doOperation: this.doOperation }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + doOperation = (index: number) => { + switch (index) { + case 0: + this.output = insertNode(); + break; + case 1: + this.output = deleteNode(); + break; + case 2: + this.output = getFirstNode(); + break; + case 3: + this.output = changeValue(); + break; + default: + break; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Util.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Util.ets new file mode 100644 index 00000000..fd71ca42 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/Util.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { LRUCache } from '../components/utilcomponents/LRUCache'; +import { Base64Helper } from '../components/utilcomponents/Base64Helper'; +import { MenuList } from '@ohos/menuitems'; +import { RationalNumber } from '../components/utilcomponents/RationalNumber'; +import { ScopeHelper } from '../components/utilcomponents/ScopeHelper'; +import { StringCode } from '../components/utilcomponents/StringCode'; +import { TypeCheck } from '../components/utilcomponents/TypeCheck'; + +@Component +export struct Util { + @StorageLink('selectedSecondLabel') selectedSecondLabel: string = ''; + + @Builder + UtilCapabilities() { + if (this.selectedSecondLabel === getString($r('app.string.lru_cache'))) { + LRUCache() + } + if (this.selectedSecondLabel === getString($r('app.string.base64'))) { + Base64Helper() + } + if (this.selectedSecondLabel === getString($r('app.string.string_code'))) { + StringCode() + } + if (this.selectedSecondLabel === getString($r('app.string.rational_number'))) { + RationalNumber() + } + if (this.selectedSecondLabel === getString($r('app.string.type_check'))) { + TypeCheck() + } + if (this.selectedSecondLabel === getString($r('app.string.scope_helper'))) { + ScopeHelper() + } + } + + build() { + Column() { + MenuList({ menuList: $r('app.strarray.util_menu') }) { + Column() { + Divider() + .strokeWidth('1px') + .color($r('sys.color.ohos_id_color_list_separator')) + this.UtilCapabilities() + } + } + } + .margin({ left: -12, right: -12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/VectorView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/VectorView.ets new file mode 100644 index 00000000..b1d4443d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/capabilities/VectorView.ets @@ -0,0 +1,66 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 emitter from '@ohos.events.emitter'; +import { EmptyPage } from '@ohos/common/src/main/ets/components/EmptyPage'; +import { Information } from '../model/Information'; +import { VectorDataSource } from '../components/vectorcomponents/VectorDataSource'; +import { InformationItemView } from '../components/InformationItemView'; +import { Constant } from '../Constant'; + +const MIN_LENGTH = 0; + +@Component +export struct VectorView { + private dataSource: VectorDataSource = new VectorDataSource(); + @State totalCount: number = MIN_LENGTH; + + aboutToAppear() { + emitter.on({ eventId: Constant.EMITTER_ID_VECTOR }, (eventData) => { + this.dataSource.addData(eventData.data as Information); + this.totalCount = this.dataSource.totalCount(); + }); + } + + aboutToDisappear() { + emitter.off(Constant.EMITTER_ID_VECTOR); + } + + build() { + Column() { + if (this.totalCount > MIN_LENGTH) { + List() { + LazyForEach(this.dataSource, (item: Information, index: number) => { + ListItem() { + InformationItemView({ index: index, information: item, deleteAction: () => { + this.dataSource.deleteData(index); + this.totalCount = this.dataSource.totalCount(); + } }) + } + .height(72) + .width('100%') + .margin({ bottom: 20 }) + }, (item: Information, index: number) => JSON.stringify(item) + index) + } + .width('100%') + .layoutWeight(1) + + } else { + EmptyPage() + } + } + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ColumnOperation.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ColumnOperation.ets new file mode 100644 index 00000000..5fd6bc7a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ColumnOperation.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { getStringArray } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +@Component +export struct ColumnOperation { + private operationRes: Resource | undefined = undefined; + @State operationSource: string[] = []; + private doOperation: (index: number) => void = () => { + }; + + build() { + Column() { + ForEach(this.operationSource, (item: string, index: number) => { + Row() { + Button() { + Text(item) + .fontSize(16) + .fontColor(Color.White) + } + .id(`item${index}`) + .width('100%') + .height(50) + .type(ButtonType.Capsule) + .margin({ right: 15, top: 15 }) + .onClick(() => { + this.doOperation(index); + }) + } + .width('100%') + .justifyContent(FlexAlign.Center) + }, (index: string) => index) + } + .width('100%') + .padding({ bottom: 15 }) + } + + async aboutToAppear() { + if (this.operationRes) { + let menuList = await getStringArray(this.operationRes); + this.operationSource = menuList; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/DeleteView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/DeleteView.ets new file mode 100644 index 00000000..51fd28c5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/DeleteView.ets @@ -0,0 +1,34 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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. +*/ + +@Component +export struct DeleteView { + private enable: boolean = false; + + build() { + Row() { + Image($r('app.media.ic_delete_plane')) + .width(24) + .aspectRatio(1) + } + .width(40) + .aspectRatio(1) + .borderRadius(20) + .justifyContent(FlexAlign.Center) + .alignItems(VerticalAlign.Center) + .backgroundColor($r('app.color.bg_btn_red')) + .opacity(this.enable ? 1.0 : 0.25) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/GridOperation.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/GridOperation.ets new file mode 100644 index 00000000..85df4446 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/GridOperation.ets @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { getStringArray } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +@Component +export struct GridOperation { + private operationRes: Resource | undefined = undefined; + @State operationSource: string[] = []; + private doOperation: (index: number) => void = () => {}; + + build() { + Column() { + GridRow({ columns: 12, gutter: { x: 2, y: 5 }, + direction: GridRowDirection.Row + }) { + ForEach(this.operationSource, (item: string, index: number) => { + GridCol({ span: { xs: 6, sm: 6, md: 4, lg: 4 } }) { + Row() { + Button() { + Text(item) + .fontSize(16) + .fontColor(Color.White) + } + .width(160) + .height(50) + .type(ButtonType.Capsule) + .margin({ right: 10, top: 10 }) + .onClick(() => { + this.doOperation(index); + }) + } + .justifyContent(FlexAlign.Center) + } + }, (index: string) => index) + } + } + .width('100%') + .padding({ bottom: 15 }) + } + + async aboutToAppear() { + if (this.operationRes) { + let menuList = await getStringArray(this.operationRes); + this.operationSource = menuList; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/InformationItemView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/InformationItemView.ets new file mode 100644 index 00000000..3040517e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/InformationItemView.ets @@ -0,0 +1,61 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { Information } from '../model/Information'; +import { DeleteView } from './DeleteView'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +@Component +export struct InformationItemView { + @ObjectLink information: Information; + private deleteAction: (event?: ClickEvent) => void = () => { + }; + private index: number = 0; + + build() { + Row() { + Row() { + Column() { + Text(this.information.name) + .fontColor($r('app.color.text_color_primary')) + .fontSize(16) + Text(this.information.phone) + .fontColor($r('app.color.text_color_second')) + .fontSize(14) + .margin({ top: 5 }) + } + + Blank() + Text(`${this.information.age}${getString($r('app.string.old'))}`) + .fontColor($r('app.color.text_color_second')) + .fontSize(12) + } + .height(72) + .layoutWeight(1) + .padding({ left: 16, right: 15 }) + .margin({ right: 12 }) + .backgroundColor($r('app.color.bg_white')) + .borderRadius(16) + + DeleteView({ enable: this.information.clickAble }) + .id(`delete${this.index}`) + .enabled(this.information.clickAble) + .onClick(this.deleteAction) + } + .padding({ left: 12 }) + .width('100%') + .margin({ top: 12, right: 12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/KeyValueItemView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/KeyValueItemView.ets new file mode 100644 index 00000000..4f651057 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/KeyValueItemView.ets @@ -0,0 +1,54 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { KeyValuePair } from '../model/KeyValuePair'; +import { DeleteView } from './DeleteView'; + +@Component +export struct KeyValueItemView { + @ObjectLink keyValuePair: KeyValuePair; + @State deleteEnabled: boolean = true; + private deleteAction: (event?: ClickEvent) => void = () => { + }; + private index: number = 0; + + build() { + Row() { + Column() { + Text(`Key: ${this.keyValuePair.key}`) + .fontColor($r('app.color.text_color_primary')) + .fontSize(16) + Text(`Value: ${this.keyValuePair.value}`) + .fontColor($r('app.color.text_color_second')) + .fontSize(14) + } + .height('100%') + .layoutWeight(1) + .padding({ left: 16, right: 16, top: 12, bottom: 12 }) + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .alignItems(HorizontalAlign.Start) + + DeleteView({ enable: this.deleteEnabled }) + .id(`delete${this.index}`) + .margin({ left: 12 }) + .enabled(this.deleteEnabled) + .onClick(this.deleteAction) + } + .width('100%') + .height(64) + .alignItems(VerticalAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ValueItemView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ValueItemView.ets new file mode 100644 index 00000000..89641acd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/ValueItemView.ets @@ -0,0 +1,50 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { DeleteView } from './DeleteView'; + +@Component +export struct ValueItemView { + @State deleteEnabled: boolean = true; + private value: string = ''; + private deleteAction: (event?: ClickEvent) => void = () => {}; + private index: number = 0; + + build() { + Row() { + Column() { + Text(`Value: ${this.value}`) + .fontColor($r('app.color.text_color_primary')) + .fontSize(16) + } + .height('100%') + .layoutWeight(1) + .padding({ left: 16, right: 16, top: 12, bottom: 12 }) + .borderRadius(16) + .backgroundColor($r('app.color.bg_white')) + .justifyContent(FlexAlign.Center) + .alignItems(HorizontalAlign.Start) + + DeleteView({ enable: this.deleteEnabled }) + .id(`delete${this.index}`) + .margin({ left: 12 }) + .enabled(this.deleteEnabled) + .onClick(this.deleteAction) + } + .width('100%') + .height(64) + .alignItems(VerticalAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/AddDialog.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/AddDialog.ets new file mode 100644 index 00000000..3537b75c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/AddDialog.ets @@ -0,0 +1,158 @@ +/* + * Copyright (c) 2023 Huawei Device 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 prompt from '@ohos.promptAction'; +import { Information } from '../../model/Information'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; + +const TAG: string = 'AddDialog'; + +@CustomDialog +export struct AddDialog { + @State writeInformation: Information = new Information('', Number.NaN, '') + private saveData: (information: Information) => void = () => { + }; + private controller?: CustomDialogController; + + build() { + Column() { + Text($r('app.string.contact_information')) + .fontSize(24) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + .margin({ top: 12 }) + Row() { + Text($r('app.string.contact_name')) + .width(65) + .fontSize(20) + .fontColor(Color.Black) + .fontWeight(FontWeight.Medium) + .margin({ left: 10 }) + + TextInput({ placeholder: $r('app.string.input_name'), text: this.writeInformation.name }) + .key('inputPhone') + .layoutWeight(1) + .type(InputType.Normal) + .placeholderColor(Color.Gray) + .fontSize(19) + .maxLength(11) + .margin({ right: 10 }) + .onChange((value: string) => { + this.writeInformation.name = value; + logger.info(TAG, ` this.writeInformation.name = ${value}`); + }) + } + .margin({ top: 12 }) + + Row() { + Text($r('app.string.contact_age')) + .width(65) + .fontSize(20) + .fontColor(Color.Black) + .fontWeight(FontWeight.Medium) + .margin({ left: 10 }) + + TextInput({ placeholder: $r('app.string.input_age') }) + .key('inputPhone') + .layoutWeight(1) + .type(InputType.Number) + .placeholderColor(Color.Gray) + .fontSize(19) + .maxLength(11) + .margin({ right: 10 }) + .onChange((value: string) => { + this.writeInformation.age = Number(value); + }) + } + .margin({ top: 12 }) + + Row() { + Text($r('app.string.contact_phone')) + .width(65) + .fontSize(20) + .fontColor(Color.Black) + .fontWeight(FontWeight.Medium) + .margin({ left: 10 }) + + TextInput({ placeholder: $r('app.string.input_phone'), text: this.writeInformation.phone }) + .key('inputPhone') + .layoutWeight(1) + .type(InputType.Number) + .placeholderColor(Color.Gray) + .fontSize(19) + .maxLength(11) + .margin({ right: 10 }) + .onChange((value: string) => { + this.writeInformation.phone = value; + }) + } + .margin({ top: 12 }) + + Row() { + Button() { + Text($r("app.string.button_confirm")) + .key('confirm') + .fontColor(Color.Blue) + .fontSize(17) + } + .layoutWeight(7) + .backgroundColor(Color.White) + .margin(5) + .onClick(() => { + this.addInformation(); + }) + + Divider() + .height(30) + .vertical(true) + .strokeWidth(2) + .color('#999999') + + Button() { + Text($r('app.string.button_cancel')) + .fontColor(Color.Red) + .fontSize(17) + } + .margin(5) + .layoutWeight(7) + .backgroundColor(Color.White) + .onClick(() => { + this.controller?.close(); + }) + } + .margin({ top: 12 }) + } + .padding(12) + } + + addInformation() { + if (this.writeInformation.name === '') { + prompt.showToast({ message: $r('app.string.name_null') }); + return; + } + if (this.writeInformation.age < 1 || Number.isNaN(this.writeInformation.age)) { + prompt.showToast({ message: $r('app.string.age_null') }); + return; + } + if (this.writeInformation.phone === '') { + prompt.showToast({ message: $r('app.string.phone_null') }); + return; + } + if (this.writeInformation.name !== '' && this.writeInformation.phone !== '' && this.writeInformation.age > 0) { + this.saveData(this.writeInformation); + } + this.controller?.close(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/ArrayListItem.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/ArrayListItem.ets new file mode 100644 index 00000000..fe6f99ee --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/ArrayListItem.ets @@ -0,0 +1,89 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { Information } from '../../model/Information'; + +@Component +export struct ArrayListItem { + @ObjectLink information: Information; + private index: number = 0; + private handleOnClick: (index: number) => void = () => {}; + + build() { + Row() { + Image($r('app.media.contact')) + .width('20%') + .objectFit(ImageFit.Contain) + Column() { + Row() { + Text($r("app.string.contact_name")) + .fontSize(24) + .fontColor(Color.Black) + Text(this.information.name) + .fontColor(Color.Black) + .fontSize(24) + } + .width('100%') + .margin({ top: 5 }) + + Row() { + Text($r("app.string.contact_age")) + .fontColor(Color.Black) + .fontSize(24) + Text(this.information.age.toString()) + .fontColor(Color.Black) + .fontSize(24) + } + .width('100%') + .margin({ top: 5 }) + + Row() { + Text($r("app.string.contact_phone")) + .fontColor(Color.Black) + .fontSize(24) + Text(this.information.phone) + .fontColor(Color.Black) + .fontSize(24) + } + .width('100%') + .margin({ top: 5 }) + } + .width('55%') + .margin({ left: 10 }) + .justifyContent(FlexAlign.Start) + + Blank() + Button() { + Text($r('app.string.button_delete')) + .key('delContact') + .fontColor(Color.Red) + .fontSize(19) + .width(100) + .textAlign(TextAlign.Center) + } + .type(ButtonType.Capsule) + .backgroundColor($r("app.color.button_bg")) + .height(40) + .onClick(() => { + this.handleOnClick(this.index); + }) + } + .width('100%') + .padding(10) + .align(Alignment.Center) + .borderRadius(20) + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/MyDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/MyDataSource.ets new file mode 100644 index 00000000..afea36a0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/arraylistcomponents/MyDataSource.ets @@ -0,0 +1,72 @@ +/* + * Copyright (c) 2023 Huawei Device 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 ArrayList from '@ohos.util.ArrayList'; +import { Information } from '../../model/Information'; + +export class MyDataSource { + public dataArray: ArrayList = new ArrayList(); + private listeners: DataChangeListener[] = []; + + constructor(ele: ArrayList) { + for (let index = 0;index < ele.length; index++) { + this.dataArray.add(ele[index]); + } + } + + public totalCount(): number { + return this.dataArray.length; + } + + public getData(index: number): Information { + return this.dataArray[index]; + } + + public addData(index: number, data: Information): void { + this.dataArray.removeByIndex(index); + this.notifyDataAdd(index); + } + + registerDataChangeListener(listener: DataChangeListener): void { + if (this.listeners.indexOf(listener) < 0) { + this.listeners.push(listener); + } + } + + unregisterDataChangeListener(listener: DataChangeListener): void { + const pos = this.listeners.indexOf(listener); + if (pos >= 0) { + this.listeners.splice(pos, 1); + } + } + + notifyDataReload(): void { + this.listeners.forEach(listener => { + listener.onDataReloaded(); + }) + } + + notifyDataAdd(index: number): void { + this.listeners.forEach(listener => { + listener.onDataAdd(index); + }) + } + + notifyDataChange(index: number): void { + this.listeners.forEach(listener => { + listener.onDataChange(index); + }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/dequecomponents/DequeDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/dequecomponents/DequeDataSource.ets new file mode 100644 index 00000000..a3b8d19c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/dequecomponents/DequeDataSource.ets @@ -0,0 +1,62 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 Deque from '@ohos.util.Deque'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class DequeDataSource extends BaseDataSource { + private deque = new Deque(); + + public totalCount(): number { + return this.deque.length + } + + public getData(index: number): Information { + return this.deque[index] + } + + public insertFront(information: Information): void { + this.deque.insertFront(information); + this.deque.forEach((value, index) => { + value.clickAble = index === 0 || index === this.deque.length - 1; + }); + this.notifyDataReload(); + } + + public insertEnd(information: Information): void { + this.deque.insertEnd(information); + this.deque.forEach((value, index) => { + value.clickAble = index === 0 || index === this.deque.length - 1; + }); + this.notifyDataReload(); + } + + public deleteFront(): void { + this.deque.popFirst(); + this.deque.forEach((value, index) => { + value.clickAble = index === 0 || index === this.deque.length - 1; + }); + this.notifyDataReload(); + } + + public deleteEnd(): void { + this.deque.popLast(); + this.deque.forEach((value, index) => { + value.clickAble = index === 0 || index === this.deque.length - 1; + }); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashmapcomponents/HashMapDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashmapcomponents/HashMapDataSource.ets new file mode 100644 index 00000000..2cac4c37 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashmapcomponents/HashMapDataSource.ets @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { KeyValuePair } from '../../model/KeyValuePair'; + +export class HashMapDataSource extends BaseDataSource { + public dataArr: KeyValuePair[] = []; + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): KeyValuePair { + return this.dataArr[index]; + } + + public addData(item: KeyValuePair): void { + this.dataArr.push(item); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(item: KeyValuePair, index: number): void { + this.notifyDataDelete(index); + this.dataArr.splice(index, 1); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashsetcomponents/HashSetDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashsetcomponents/HashSetDataSource.ets new file mode 100644 index 00000000..7e52c42c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/hashsetcomponents/HashSetDataSource.ets @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; + +export class HashSetDataSource extends BaseDataSource { + public dataArr: string[] = []; + + public totalCount(): number { + return this.dataArr.length + } + + public getData(index: number): string { + return this.dataArr[index]; + } + + public addData(item: string): void { + this.dataArr.push(item); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(item: string, index: number): void { + this.dataArr.splice(index, 1); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightmapcomponents/LightWeightMapDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightmapcomponents/LightWeightMapDataSource.ets new file mode 100644 index 00000000..b18a663e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightmapcomponents/LightWeightMapDataSource.ets @@ -0,0 +1,41 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { KeyValuePair } from '../../model/KeyValuePair'; + +export class LightWeightMapDataSource extends BaseDataSource { + public dataArr: KeyValuePair[] = []; + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): KeyValuePair { + return this.dataArr[index]; + } + + public addData(item: KeyValuePair): void { + this.dataArr.push(item); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(item: KeyValuePair, index: number): void { + this.dataArr.splice(index, 1); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightsetcomponents/LightWeightSetDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightsetcomponents/LightWeightSetDataSource.ets new file mode 100644 index 00000000..660df755 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/lightweightsetcomponents/LightWeightSetDataSource.ets @@ -0,0 +1,40 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; + +export class LightWeightSetDataSource extends BaseDataSource { + public dataArr: string[] = [] + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): string { + return this.dataArr[index]; + } + + public addData(item: string): void { + this.dataArr.push(item); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(item: string, index: number): void { + this.dataArr.splice(index, 1); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/linkedlistcomponents/LinkedListDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/linkedlistcomponents/LinkedListDataSource.ets new file mode 100644 index 00000000..43684afa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/linkedlistcomponents/LinkedListDataSource.ets @@ -0,0 +1,54 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 LinkedList from '@ohos.util.LinkedList'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class LinkedListDataSource extends BaseDataSource { + private linkedList: LinkedList = new LinkedList(); + + public totalCount(): number { + return this.linkedList.length; + } + + public getData(index: number): Information { + return this.linkedList[index]; + } + + public addData(item: Information): void { + this.linkedList.add(item); + this.notifyDataAdd(this.linkedList.length - 1); + this.notifyDataReload(); + } + + public deleteFirst(): void { + this.linkedList.removeFirst(); + this.notifyDataDelete(0); + this.notifyDataReload(); + } + + public deleteLast(): void { + this.linkedList.removeLast(); + this.notifyDataDelete(this.linkedList.length - 1); + this.notifyDataReload(); + } + + public deleteData(index: number): void { + this.linkedList.removeByIndex(index); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/listcomponents/ListDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/listcomponents/ListDataSource.ets new file mode 100644 index 00000000..d25893ad --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/listcomponents/ListDataSource.ets @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 ListUtil from '@ohos.util.List'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class ListDateSource extends BaseDataSource { + private dataArr: ListUtil = new ListUtil(); + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): Information { + return this.dataArr.get(index); + } + + public addData(information: Information): void { + this.dataArr.add(information); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(index: number): void { + this.dataArr.removeByIndex(index); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/plainarraycomponents/PlainArrayDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/plainarraycomponents/PlainArrayDataSource.ets new file mode 100644 index 00000000..77ef76fd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/plainarraycomponents/PlainArrayDataSource.ets @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 PlainArray from '@ohos.util.PlainArray'; +import ArrayList from '@ohos.util.ArrayList'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { KeyValuePair } from '../../model/KeyValuePair'; + +export class PlainArrayDataSource extends BaseDataSource { + private dataArr: PlainArray = new PlainArray(); + private arr: ArrayList = new ArrayList(); + + public totalCount(): number { + return this.arr.length; + } + + public getData(index: number): KeyValuePair { + let key: number = this.arr[index]; + let value: string = this.dataArr.get(key); + this.dataArr.get(this.arr[index]); + let keyValuePair: KeyValuePair = new KeyValuePair(`${this.arr[index]}`, value); + return keyValuePair; + } + + public addData(keyValuePair: KeyValuePair): void { + let key: number = Number(keyValuePair.key); + if (!this.dataArr.has(key)) { + this.arr.add(key) + } + this.dataArr.add(key, keyValuePair.value); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(index: number): void { + this.dataArr.removeAt(index); + this.arr.removeByIndex(index); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/queuecomponents/QueueDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/queuecomponents/QueueDataSource.ets new file mode 100644 index 00000000..fff7d9ea --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/queuecomponents/QueueDataSource.ets @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 Queue from '@ohos.util.Queue'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class QueueDataSource extends BaseDataSource { + private dataArr: Queue = new Queue(); + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): Information { + return this.dataArr[index]; + } + + public addData(information: Information): void { + this.dataArr.add(information); + this.dataArr.forEach((value, index) => { + value.clickAble = index === 0; + }); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(): void { + this.dataArr.pop(); + this.dataArr.forEach((value, index) => { + value.clickAble = index === 0; + }); + this.notifyDataDelete(0); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/stackcomponents/StackDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/stackcomponents/StackDataSource.ets new file mode 100644 index 00000000..92239bc3 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/stackcomponents/StackDataSource.ets @@ -0,0 +1,48 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 Stack from '@ohos.util.Stack'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class StackDataSource extends BaseDataSource { + private dataArr: Stack = new Stack(); + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): Information { + return this.dataArr[index]; + } + + public addData(information: Information): void { + this.dataArr.push(information); + this.dataArr.forEach((value, index) => { + value.clickAble = index === this.dataArr.length - 1; + }); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(): void { + this.dataArr.pop(); + this.dataArr.forEach((value, index) => { + value.clickAble = index === this.dataArr.length - 1; + }); + this.notifyDataDelete(this.dataArr.length - 1); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treemapcomponents/TreeMapDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treemapcomponents/TreeMapDataSource.ets new file mode 100644 index 00000000..629a08d6 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treemapcomponents/TreeMapDataSource.ets @@ -0,0 +1,53 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 TreeMap from '@ohos.util.TreeMap'; +import ArrayList from '@ohos.util.ArrayList'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { KeyValuePair } from '../../model/KeyValuePair'; + +export class TreeMapDataSource extends BaseDataSource { + private dataArr: TreeMap = new TreeMap(); + private arr: ArrayList = new ArrayList(); + + public totalCount(): number { + return this.arr.length; + } + + public getData(index: number): KeyValuePair { + let key: string = this.arr[index]; + let value: string = this.dataArr.get(key); + this.dataArr.get(this.arr[index]); + let keyValuePair: KeyValuePair = new KeyValuePair(`${this.arr[index]}`, value); + return keyValuePair; + } + + public addData(keyValuePair: KeyValuePair): void { + if (!this.dataArr.hasKey(keyValuePair.key)) { + this.arr.add(keyValuePair.key) + } + this.dataArr.set(keyValuePair.key, keyValuePair.value); + this.notifyDataChange(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(key: string): void { + this.dataArr.remove(key); + let index = this.arr.getIndexOf(key); + this.arr.remove(key); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treesetcomponents/TreeSetDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treesetcomponents/TreeSetDataSource.ets new file mode 100644 index 00000000..86889ed7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/treesetcomponents/TreeSetDataSource.ets @@ -0,0 +1,45 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 TreeSet from '@ohos.util.TreeSet'; +import ArrayList from '@ohos.util.ArrayList'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; + +export class TreeSetDataSource extends BaseDataSource { + private dataArr: TreeSet = new TreeSet(); + private arr: ArrayList = new ArrayList(); + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): string { + return this.arr[index]; + } + + public addData(value: string): void { + this.dataArr.add(value); + this.arr.add(value); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(value: string, index: number): void { + this.dataArr.remove(value); + this.arr.removeByIndex(index); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/Base64Helper.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/Base64Helper.ets new file mode 100644 index 00000000..7908c132 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/Base64Helper.ets @@ -0,0 +1,112 @@ +/* + * Copyright (c) 2023 Huawei Device 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 util from '@ohos.util'; + +@Component +export struct Base64Helper { + @State resultEncode: string = ''; + @State resultDecode: string = ''; + @State input: string = 'harmony'; + + build() { + Scroll() { + Column({ space: 12 }) { + Row() { + Text($r('app.string.change_str')) + .fontSize(20) + .fontWeight(FontWeight.Bold) + .textAlign(TextAlign.End) + + Text(this.input) + .fontSize(20) + .fontWeight(FontWeight.Bold) + .textAlign(TextAlign.Start) + } + .width('100%') + .height('10%') + + Text(this.resultEncode) + .width('100%') + .height('10%') + .padding({ left: 10 }) + .fontSize(20) + .fontWeight(FontWeight.Bold) + .border({ width: 2, radius: 10, color: Color.Black }) + + Button() { + Text($r("app.string.encode")) + .fontSize(25) + .fontColor(Color.White) + } + .key('encodeBtn') + .width('100%') + .height(50) + .type(ButtonType.Capsule) + .onClick(() => { + this.encode(); + }) + + Text(this.resultDecode) + .width('100%') + .height('10%') + .fontSize(20) + .padding({ left: 10 }) + .fontWeight(FontWeight.Bold) + .border({ width: 2, radius: 10, color: Color.Black }) + .margin({ top: 50 }) + + Button() { + Text($r("app.string.decode")) + .fontSize(25) + .fontColor(Color.White) + } + .key('decodeBtn') + .width('100%') + .height(50) + .type(ButtonType.Capsule) + .onClick(() => { + this.decode(); + }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + encode() { + let strToAscii: number[] = []; + for (let i = 0;i < this.input.length; i++) { + strToAscii.push(this.input.charCodeAt(i)); + } + let that = new util.Base64Helper(); + let encodeNum = new Uint8Array(strToAscii); + this.resultEncode = that.encodeToStringSync(encodeNum); + } + + decode() { + let that = new util.Base64Helper(); + if (this.resultEncode === undefined || this.resultEncode === '') { + return; + } + let decodeNum = that.decodeSync(this.resultEncode); + this.resultDecode = ''; + for (let i = 0; i < decodeNum.length; i++) { + this.resultDecode += String.fromCharCode(decodeNum[i]); + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/LRUCache.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/LRUCache.ets new file mode 100644 index 00000000..f3c9d436 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/LRUCache.ets @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ActionSheetDialog } from './lrucache/ActionSheetDialog'; +import { GridOperation } from '../GridOperation'; +import { + clear, + getCapacity, + getAllKeyValues, + getCacheString, + initLRUCache, + lruBuffer, + operationLog, + putKeyValue, + updateCapacity +} from '../../util/LRUCacheUtil'; + +@Component +export struct LRUCache { + @State resultText: string = ''; + @State actionSheets: Array = []; + private isGet: boolean = true; + + build() { + Scroll() { + Column() { + Scroll() { + Text(this.resultText) + .width('100%') + .fontSize(16) + } + .width('90%') + .height(240) + .margin({ top: 10 }) + .border({ width: 1, color: Color.Gray, radius: 15 }) + .scrollBar(BarState.Off) + .padding(15) + + GridOperation({ operationRes: $r('app.strarray.lru_cache_operations'), doOperation: this.doOperation }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + action = (key: string) => { + if (this.isGet) { + if (lruBuffer.contains(key)) { + let value: string = lruBuffer.get(key) as string; + this.resultText = `key = ${key}, value=${value}`; + } else { + this.resultText = `the key:${key} is not found`; + } + } else { + lruBuffer.remove(key); + this.resultText = `key:${key} is removed\n`; + } + } + private actionDialogController: CustomDialogController = new CustomDialogController({ + builder: ActionSheetDialog({ + title: 'Click the key', + sheets: this.actionSheets, + action: this.action + }), + autoCancel: true + }); + doOperation = (index: number) => { + if (index !== 0 && lruBuffer === null) { + this.resultText = 'Click the first button and then operate'; + return; + } + switch (index) { + case 0: + this.resultText = initLRUCache(); + break; + case 1: + this.resultText = getCapacity(); + break; + case 2: + this.resultText = updateCapacity(); + break; + case 3: + this.resultText = getCacheString(); + break; + case 4: + this.resultText = putKeyValue(); + break; + case 5: + this.isGet = true; + this.actionSheets = lruBuffer.keys() as string[]; + this.actionDialogController.open(); + break; + case 6: + this.resultText = getAllKeyValues(); + break; + case 7: + this.isGet = false; + this.actionSheets = lruBuffer.keys() as string[]; + this.actionDialogController.open(); + break; + case 8: + this.resultText = clear(); + break; + case 9: + this.resultText = operationLog(); + default: + break; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/RationalNumber.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/RationalNumber.ets new file mode 100644 index 00000000..c6c40244 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/RationalNumber.ets @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { compareTo, getDenominator, getValueOf, isFinite, isNaN, isZero } from '../../util/RationalNumberUtil'; +import { GridOperation } from '../GridOperation'; + +const NUMERATOR1: number = 1; +const DENOMINATOR1: number = 2; +const NUMERATOR2: number = 3; +const DENOMINATOR2: number = 4; + +@Extend(Text) function textStyle() { + .border({ width: 1, color: '#000000', radius: 10, style: BorderStyle.Solid }) + .fontSize(24) + .textAlign(TextAlign.Center) +} + +@Preview +@Component +export struct RationalNumber { + @State resultText: string = ''; + + build() { + Scroll() { + Column({ space: 12 }) { + Text($r('app.string.first_rational_number')) + .width('100%') + .fontSize(24) + .textAlign(TextAlign.Start) + this.Texts(NUMERATOR1, DENOMINATOR1) + Text($r('app.string.second_rational_number')) + .width('100%') + .fontSize(24) + .textAlign(TextAlign.Start) + this.Texts(NUMERATOR2, DENOMINATOR2) + Text(this.resultText) + .textStyle() + .width('100%') + .height(100) + GridOperation({ operationRes: $r('app.strarray.rational_number_operations'), doOperation: this.doOperation }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + @Builder + Texts(numerator: number, denominator: number) { + Row() { + Text($r('app.string.numerator')) + .fontSize(24) + .fontWeight(FontWeight.Bold) + Text(`${numerator}`) + .textStyle() + .margin({ left: 5 }) + .layoutWeight(1) + Text($r('app.string.denominator')) + .fontSize(24) + .fontWeight(FontWeight.Bold) + Text(`${denominator}`) + .textStyle() + .margin({ left: 5 }) + .layoutWeight(1) + } + .width('100%') + .alignItems(VerticalAlign.Center) + .justifyContent(FlexAlign.SpaceAround) + } + + doOperation = (index: number) => { + switch (index) { + case 0: + this.resultText = compareTo(); + break; + case 1: + this.resultText = getValueOf(); + break; + case 2: + this.resultText = getDenominator(); + break; + case 3: + this.resultText = isZero(); + break; + case 4: + this.resultText = isNaN(); + break; + case 5: + this.resultText = isFinite(); + break; + default: + break; + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/ScopeHelper.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/ScopeHelper.ets new file mode 100644 index 00000000..632feed7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/ScopeHelper.ets @@ -0,0 +1,107 @@ +/* + * Copyright (c) 2023 Huawei Device 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 util from '@ohos.util'; +import { ScopeNumber } from '../../model/ScopeNumber'; +import { TempView } from './scopehelper/TempView'; +import { SleepView } from './scopehelper/SleepView'; + +const AGE_MIN: number = 16; +const AGE_MAX: number = 62; + +@Preview +@Component +export struct ScopeHelper { + @State age: number = 0; + @State tempMorning: number = 0; + @State tempNoon: number = 1; + @State tempNight: number = 2; + @State shortTime: number = 0; + @State longTime: number = 0; + + build() { + Scroll() { + Column({ space: 12 }) { + Text($r('app.string.judge_age')) + .fontSize(20) + .fontColor(Color.White) + .backgroundColor(Color.Gray) + .textAlign(TextAlign.Start) + Row({ space: 5 }) { + TextInput({ placeholder: $r('app.string.age_placeholder') }) + .key('inputAge') + .height('100%') + .layoutWeight(6) + .type(InputType.Number) + .fontSize(24) + .fontStyle(FontStyle.Italic) + .maxLength(20) + .fontWeight(FontWeight.Bold) + .placeholderFont({ size: 24, weight: FontWeight.Normal }) + .enterKeyType(EnterKeyType.Go) + .onChange((value: string) => { + this.age = Number(value); + }) + + Button() { + Text($r('app.string.age_analyse')) + .fontColor(Color.White) + .fontSize(16) + } + .key('ageAnalysis') + .layoutWeight(4) + .height(40) + .type(ButtonType.Capsule) + .onClick(() => { + this.ageRange(); + }) + } + .height(50) + TempView() + SleepView() + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + dialog(title: ResourceStr, message: ResourceStr, value: ResourceStr) { + AlertDialog.show( + { + title: title, + message: message, + confirm: { + value: value, + action: () => { + } + }, + } + ); + } + + ageRange() { + let tempLower = new ScopeNumber(AGE_MIN); + let tempUpper = new ScopeNumber(AGE_MAX); + let range = new util.Scope(tempLower, tempUpper); + let ageTemp = new ScopeNumber(this.age); + if (range.contains(ageTemp)) { + this.dialog($r('app.string.age'), $r('app.string.age_message_confirm'), $r('app.string.determine')); + } else { + this.dialog($r('app.string.age'), $r('app.string.age_message_not_confirm'), $r('app.string.determine')); + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/StringCode.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/StringCode.ets new file mode 100644 index 00000000..68a22787 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/StringCode.ets @@ -0,0 +1,194 @@ +/* + * Copyright (c) 2023 Huawei Device 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 util from '@ohos.util'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { SpecInput } from './stringcode/SpecInput'; + +@Preview +@Component +export struct StringCode { + @State specStrInput_f: string = ''; + @State specStrInput_s: string = ''; + @State specStrInput_d: string = ''; + @State specStrInput_i: string = ''; + @State resen: string = ''; + @State resdec: string = ''; + @State read: string = ''; + @State write: string = ''; + private resArray: Uint8Array | undefined = undefined; + + build() { + Scroll() { + Column({ space: 12 }) { + Row() { + Text($r('app.string.SpecString')) + .fontSize(15) + .textAlign(TextAlign.Start) + Text($r('app.string.SpecString_info')) + .fontSize(15) + .textAlign(TextAlign.Start) + } + + SpecInput({ result_str: $r('app.string.result_f'), specStrInput: $specStrInput_f }) + SpecInput({ result_str: $r('app.string.result_i'), specStrInput: $specStrInput_i }) + SpecInput({ result_str: $r('app.string.result_d'), specStrInput: $specStrInput_d }) + SpecInput({ result_str: $r('app.string.result_s'), specStrInput: $specStrInput_s }) + Button() { + Text($r('app.string.SpecFormOutput')) + .fontSize(15) + .fontWeight(FontWeight.Bold) + .fontColor(Color.White) + } + .id('specFormatOutput') + .width('100%') + .height(40) + .onClick(() => { + this.specStrInput_f = util.format("%f", "OpenHarmony 3.0") + this.specStrInput_i = util.format("%i", "OpenHarmony 3.0") + this.specStrInput_d = util.format("%d", "OpenHarmony 3.0") + this.specStrInput_s = util.format("%s", "OpenHarmony 3.0") + }) + + Divider() + .strokeWidth(4) + .color($r('sys.color.ohos_id_color_floating_button_shadow_end')) + + Row() { + Text($r('app.string.SpecString')) + .fontSize(15) + .textAlign(TextAlign.Start) + Text($r('app.string.StringCodec_info')) + .fontSize(15) + .margin({ left: 5 }) + .textAlign(TextAlign.Start) + } + + Row() { + Text($r('app.string.result')) + .width('20%') + .height(30) + .fontSize(15) + .textAlign(TextAlign.Start) + Text(this.resen) + .height(60) + .fontSize(15) + .layoutWeight(1) + .maxLines(2) + .textAlign(TextAlign.Start) + .border({ width: 2, radius: 5, color: $r('app.color.text_color') }) + } + .margin({ top: 20 }) + .width('100%') + + Row() { + Text($r('app.string.read')) + .width('20%') + .fontSize(15) + .textAlign(TextAlign.Start) + Text(this.read) + .id('read') + .width('30%') + .fontSize(15) + .height(30) + .textAlign(TextAlign.Start) + .border({ width: 2, radius: 5, color: $r('app.color.text_color') }) + Text($r('app.string.write')) + .width('20%') + .fontSize(15) + .textAlign(TextAlign.Center) + Text(this.write) + .id('write') + .width('30%') + .fontSize(15) + .height(30) + .textAlign(TextAlign.Start) + .border({ width: 2, radius: 5, color: $r('app.color.text_color') }) + } + .width('100%') + + Button() { + Text($r('app.string.Text_encoder')) + .fontColor(Color.White) + .fontSize(15) + .fontWeight(FontWeight.Bold) + } + .id('textEncoder') + .width('100%') + .height(40) + .onClick(() => { + this.textEncode(); + }) + + Row() { + Text($r('app.string.result')) + .width('20%') + .height(30) + .fontSize(15) + .textAlign(TextAlign.Start) + .fontColor(Color.Black) + Text(this.resdec) + .id('decRes') + .width('80%') + .height(60) + .fontSize(15) + .textAlign(TextAlign.Start) + .maxLines(2) + .border({ width: 2, radius: 5, color: $r('app.color.text_color') }) + } + .margin({ top: 20 }) + .width(300) + + Button() { + Text($r('app.string.Text_decoder')) + .fontColor(Color.White) + .fontSize(15) + .fontWeight(FontWeight.Bold) + } + .id('textDecoder') + .width('100%') + .height(40) + .margin({ bottom: 50 }) + .onClick(() => { + this.textDecode(); + }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } + + textEncode() { + let textEncoder = new util.TextEncoder(); + let buffer = new ArrayBuffer(100); + this.resArray = new Uint8Array(buffer); + this.resArray = textEncoder.encodeInto(getString($r('app.string.message'))); + let resArratNum = textEncoder.encodeIntoUint8Array(getString($r('app.string.message')), this.resArray); + this.resen = this.resArray.toString(); + this.read = JSON.stringify(resArratNum.read); + this.write = JSON.stringify(resArratNum.written); + } + + textDecode() { + let textDecoder = util.TextDecoder.create('utf-8', { ignoreBOM: true }); + if (this.resArray === undefined) { + return; + } + this.resdec = textDecoder.decodeWithStream(this.resArray, { stream: false }); + } +} + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/TypeCheck.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/TypeCheck.ets new file mode 100644 index 00000000..bf847a1f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/TypeCheck.ets @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ShowKey } from './typecheck/ShowKey'; +import { CheckType } from './typecheck/CheckType'; + + +let int8Array: Int8Array = new Int8Array(new ArrayBuffer(8)); +let numVal: Number = new Number(55); +let strVal: String = new String('zhangsan'); +let boolVal: Boolean = new Boolean(true); +; +for (let i = 0; i < int8Array.length; i++) { + int8Array[i] = i; +} + +@Preview +@Component +export struct TypeCheck { + @State checkResult: string = ''; + @State presetValue: Array = [numVal, strVal, boolVal, int8Array]; + + build() { + Scroll() { + Column() { + Text(this.checkResult) + .width('100%') + .height(200) + .fontSize(20) + .margin(20) + .padding({ left: 5, right: 5 }) + .border({ width: 2, radius: 15, color: Color.Gray }) + ShowKey({ presetValue: $presetValue, checkResult: $checkResult }) + CheckType({ presetValue: $presetValue, checkResult: $checkResult }) + } + .width('100%') + .padding(16) + } + .scrollBar(BarState.Off) + .align(Alignment.Start) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/lrucache/ActionSheetDialog.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/lrucache/ActionSheetDialog.ets new file mode 100644 index 00000000..bfab9410 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/lrucache/ActionSheetDialog.ets @@ -0,0 +1,59 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@CustomDialog +export struct ActionSheetDialog { + private controller?: CustomDialogController; + private title: string = ''; + private sheets: string[] = []; + private action: (key: string) => void = () => {}; + + build() { + Column() { + Text(this.title) + .width('100%') + .fontSize(18) + .fontColor(Color.Black) + .textAlign(TextAlign.Center) + .margin({ top: 10, bottom: 10 }) + List() { + ForEach(this.sheets, (item: string) => { + ListItem() { + Row() { + Text('key:') + .fontSize(18) + .fontColor(Color.Gray) + Text(item) + .fontSize(18) + .fontColor(Color.Gray) + } + .key('getValueOfTheKey') + .width('100%') + .margin(10) + } + .width('100%') + .onClick(() => { + this.controller?.close(); + this.action(item); + }) + }) + } + .width('100%') + .margin({ bottom: 56 }) + .divider({ strokeWidth: 1, color: Color.Gray, startMargin: 5, endMargin: 5 }) + } + .width('80%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/InputItem.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/InputItem.ets new file mode 100644 index 00000000..012caaf2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/InputItem.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct InputItem { + @Link value: number; + private textValue: Resource = $r('app.string.short_sleep'); + private placeHolder: Resource = $r('app.string.enter_sleep_time'); + + build() { + Row() { + Text(this.textValue) + .layoutWeight(1) + .fontSize(20) + TextInput({ placeholder: this.placeHolder }) + .key('shortestSleepTime') + .layoutWeight(1) + .type(InputType.Normal) + .fontSize(20) + .fontStyle(FontStyle.Italic) + .maxLength(20) + .fontWeight(FontWeight.Bold) + .placeholderFont({ size: 16, weight: FontWeight.Normal }) + .enterKeyType(EnterKeyType.Go) + .onChange((value: string) => { + this.value = Number(value); + }) + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/SleepView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/SleepView.ets new file mode 100644 index 00000000..11c3c4eb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/SleepView.ets @@ -0,0 +1,115 @@ +/* + * Copyright (c) 2023 Huawei Device 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 promptAction from '@ohos.promptAction'; +import util from '@ohos.util'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { InputItem } from './InputItem'; +import { ScopeNumber } from '../../../model/ScopeNumber'; + +const ZERO: number = 0; +const SLEEP_TIME_SHORT: number = 7; +const SLEEP_TIME_LONG: number = 10; + +@Component +export struct SleepView { + @State shortTime: number = ZERO; + @State longTime: number = ZERO; + + build() { + Column({ space: 12 }) { + Text($r('app.string.judge_sleep')) + .fontSize(20) + .fontColor(Color.White) + .backgroundColor(Color.Gray) + .textAlign(TextAlign.Start) + .margin({ top: 2 }) + + InputItem({ + textValue: $r('app.string.short_sleep'), + placeHolder: $r('app.string.enter_sleep_time'), + value: $shortTime + }) + InputItem({ + textValue: $r('app.string.long_sleep'), + placeHolder: $r('app.string.enter_sleep_time'), + value: $longTime + }) + + Text($r('app.string.sleep_time')) + .fontSize(18) + .fontColor(Color.Red) + + Button() { + Text($r('app.string.sleep_analyse')) + .fontColor(Color.White) + .fontSize(16) + .textAlign(TextAlign.Center) + } + .key('sleepAnalysis') + .type(ButtonType.Capsule) + .width('100%') + .height(45) + .margin({ top: 10, bottom: 10 }) + .backgroundColor(0x317aff) + .onClick(() => { + this.sleepRange(); + }) + } + .alignItems(HorizontalAlign.Center) + .justifyContent(FlexAlign.Start) + .width('100%') + } + + sleepRange() { + if (this.shortTime <= ZERO || this.longTime <= ZERO) { + promptAction.showToast({ message: $r("app.string.scope_sleep_tips") }); + return; + } + if (this.longTime <= this.shortTime) { + promptAction.showToast({ message: $r("app.string.scope_sleep_tips_less") }); + return; + } + let timeLower = new ScopeNumber(SLEEP_TIME_SHORT); + let timeUpper = new ScopeNumber(SLEEP_TIME_LONG); + let timeRange = new util.ScopeHelper(timeLower, timeUpper); + let yTimeLower = new ScopeNumber(this.shortTime); + let yTimeUpper = new ScopeNumber(this.longTime); + let yTimeRange = new util.ScopeHelper(yTimeLower, yTimeUpper); + let message = getString($r("app.string.scope_expand")); + try { + message += `${timeRange.expand(yTimeRange)}`; + } catch { + message += getString($r('app.string.empty')); + } + message += getString($r("app.string.scope_intersect")); + try { + message += `${timeRange.intersect(yTimeRange)}`; + } catch { + message += getString($r('app.string.empty')); + } + AlertDialog.show( + { + title: $r('app.string.sleep_analyse'), + message: message, + confirm: { + value: $r('app.string.determine'), + action: () => { + } + }, + } + ); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/TempView.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/TempView.ets new file mode 100644 index 00000000..4f82613f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/scopehelper/TempView.ets @@ -0,0 +1,106 @@ +/* + * Copyright (c) 2023 Huawei Device 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 promptAction from '@ohos.promptAction'; +import util from '@ohos.util'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { InputItem } from './InputItem'; +import { ScopeNumber } from '../../../model/ScopeNumber'; + +const ZERO: number = 0; +const TEMPERATURE_MIN: number = 36; +const TEMPERATURE_MAX: number = 37.2; + +@Component +export struct TempView { + @State tempMorning: number = ZERO; + @State tempNoon: number = ZERO; + @State tempNight: number = ZERO; + + build() { + Column({ space: 12 }) { + Text($r('app.string.judge_temp')) + .fontSize(20) + .fontColor(Color.White) + .backgroundColor(Color.Gray) + .textAlign(TextAlign.Start) + .margin({ top: 2 }) + InputItem({ + textValue: $r('app.string.temp_morning'), + placeHolder: $r('app.string.morning_placeholder'), + value: $tempMorning + }) + InputItem({ + textValue: $r('app.string.temp_noon'), + placeHolder: $r('app.string.noon_placeholder'), + value: $tempNoon + }) + InputItem({ + textValue: $r('app.string.temp_night'), + placeHolder: $r('app.string.night_placeholder'), + value: $tempNight + }) + Button() { + Text($r('app.string.temp_analyse')) + .fontColor(Color.White) + .fontSize(16) + } + .key('temperatureAnalysis') + .type(ButtonType.Capsule) + .width('100%') + .height(45) + .backgroundColor(0x317aff) + .onClick(() => { + this.tempRange(); + }) + } + .alignItems(HorizontalAlign.Center) + .justifyContent(FlexAlign.Start) + .width('100%') + } + + alertDialog(title: ResourceStr, message: ResourceStr, value: ResourceStr) { + AlertDialog.show( + { + title: title, + message: message, + confirm: { + value: value, + action: () => { + } + }, + } + ); + } + + tempRange() { + if (this.tempMorning <= ZERO || this.tempNoon <= ZERO || this.tempNight <= ZERO) { + promptAction.showToast({ message: $r("app.string.scope_temp_tips") }); + return; + } + let arr = [this.tempMorning, this.tempNoon, this.tempNight].sort(); + let max = new ScopeNumber(arr[2]); + let min = new ScopeNumber(arr[0]); + let tempLower = new ScopeNumber(TEMPERATURE_MIN); + let tempUpper = new ScopeNumber(TEMPERATURE_MAX); + let standardRange = new util.ScopeHelper(tempLower, tempUpper); + if (standardRange.contains(min) && standardRange.contains(max)) { + this.alertDialog($r('app.string.temperature'), getString($r('app.string.temp_min')) + min + getString($r('app.string.temp_max')) + + max + getString($r('app.string.temp_normal_range')), $r('app.string.determine')); + } else { + this.alertDialog($r('app.string.temperature'), $r('app.string.temp_message_abnormal'), $r('app.string.determine')); + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/stringcode/SpecInput.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/stringcode/SpecInput.ets new file mode 100644 index 00000000..f9404fbd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/stringcode/SpecInput.ets @@ -0,0 +1,36 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct SpecInput { + private result_str: Resource = $r('app.string.result_f'); + @Link specStrInput: string; + + build() { + Row() { + Text(this.result_str) + .height(30) + .fontSize(15) + .textAlign(TextAlign.Start) + Text(this.specStrInput) + .height(30) + .layoutWeight(1) + .fontSize(15) + .textAlign(TextAlign.Start) + .border({ width: 2, radius: 5, color: "#0D9FFB" }) + } + .width('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/CheckType.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/CheckType.ets new file mode 100644 index 00000000..10127b79 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/CheckType.ets @@ -0,0 +1,75 @@ +/* + * Copyright (c) 2023 Huawei Device 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 util from '@ohos.util'; + +@Component +export struct CheckType { + @State result: string = ' '; + @Link checkResult: string; + @Link presetValue: Array; + + check(value: Object) { + let utilType: util.types = new util.types(); + let utilData: Map | null = new Map([ + ['ArrayBuffer', utilType.isAnyArrayBuffer(value)], + ['Int8Array', utilType.isInt8Array(value)], + ['Number', utilType.isNumberObject(value)], + ['String', utilType.isStringObject(value)], + ['Boolean', utilType.isBooleanObject(value)], + ['ArrayBuffer', utilType.isAnyArrayBuffer(value)], + ['DataView', utilType.isDataView(value)], + ['Arguments', utilType.isArgumentsObject(value)], + ['AsyncFunction', utilType.isAsyncFunction(value)], + ['External', utilType.isExternal(value)], + ['Float32Array', utilType.isFloat32Array(value)], + ['Generator', utilType.isGeneratorFunction(value)] + ]); + for (let item of utilData) { + if (item[1] === true) { + this.result = item[0]; + } + } + utilData = null; + return this.result; + } + + show() { + let showResult: string = ''; + for (let i = 0; i < this.presetValue.length; i++) { + let typeResult = this.check(this.presetValue[i]); + showResult = showResult + `${this.presetValue[i]} check success,this value type is ${typeResult}\n`; + } + this.checkResult = showResult; + } + + build() { + Button() { + Text($r('app.string.check')) + .fontColor(Color.Black) + .fontSize(20) + .textAlign(TextAlign.Center) + .width('85%') + } + .key('checkPresetValue') + .type(ButtonType.Capsule) + .backgroundColor('#0D9FFB') + .padding(5) + .margin({ top: 10 }) + .onClick(() => { + this.show(); + }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/ShowKey.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/ShowKey.ets new file mode 100644 index 00000000..72f894af --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/utilcomponents/typecheck/ShowKey.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct ShowKey { + @State result: string = ' '; + @Link checkResult: string; + @Link presetValue: Array; + + build() { + Button() { + Text($r('app.string.show')) + .fontColor(Color.Black) + .fontSize(20) + .textAlign(TextAlign.Center) + .width('85%') + } + .key('displayPresetValue') + .type(ButtonType.Capsule) + .backgroundColor('#0D9FFB') + .padding(5) + .margin({ top: 10 }) + .onClick(() => { + this.checkResult = `numberVal = ${this.presetValue[0]}\n` + +`stringVal = ${this.presetValue[1]}\n` + +`booleanVal = ${this.presetValue[2]}\n` + +`int8Array = ${this.presetValue[3]}`; + }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/vectorcomponents/VectorDataSource.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/vectorcomponents/VectorDataSource.ets new file mode 100644 index 00000000..dd454135 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/components/vectorcomponents/VectorDataSource.ets @@ -0,0 +1,42 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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 Vector from '@ohos.util.Vector'; +import { BaseDataSource } from '@ohos/common/src/main/ets/components/BaseDataSource'; +import { Information } from '../../model/Information'; + +export class VectorDataSource extends BaseDataSource { + private dataArr: Vector = new Vector(); + + public totalCount(): number { + return this.dataArr.length; + } + + public getData(index: number): Information { + return this.dataArr.get(index); + } + + public addData(information: Information): void { + this.dataArr.add(information); + this.notifyDataAdd(this.dataArr.length - 1); + this.notifyDataReload(); + } + + public deleteData(index: number): void { + this.dataArr.removeByIndex(index); + this.notifyDataDelete(index); + this.notifyDataReload(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/Information.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/Information.ets new file mode 100644 index 00000000..457c17a2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/Information.ets @@ -0,0 +1,29 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@Observed +export class Information { + name: string; + age: number; + phone: string; + clickAble?: boolean; + + constructor(name: string, age: number, phone: string, clickAble?: boolean) { + this.name = name; + this.age = age; + this.phone = phone; + this.clickAble = clickAble; + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/KeyValuePair.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/KeyValuePair.ets new file mode 100644 index 00000000..fe895a77 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/KeyValuePair.ets @@ -0,0 +1,25 @@ +/* +* Copyright (c) 2023 Hunan OpenValley 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. +*/ + +@Observed +export class KeyValuePair { + key: string; + value: string; + + constructor(key: string, value: string) { + this.key = key; + this.value = value; + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/ScopeNumber.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/ScopeNumber.ets new file mode 100644 index 00000000..8afb73ba --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/model/ScopeNumber.ets @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export class ScopeNumber { + temp: number; + + constructor(value: number) { + this.temp = value; + } + + compareTo(value: ScopeNumber) { + return this.temp >= value.getTemp(); + } + + getTemp() { + return this.temp; + } + + toString() { + return this.temp.toString(); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/ConvertXmlUtil.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/ConvertXmlUtil.ets new file mode 100644 index 00000000..9e8406bc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/ConvertXmlUtil.ets @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2023 Huawei Device 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 ConvertXML from '@ohos.convertxml'; +import xml from '@ohos.xml'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; + +const TAG: string = 'ConvertXmlUtil'; + +export function serializerNode(): string { + let arrayBuffer = new ArrayBuffer(1024); + let serializer = new xml.XmlSerializer(arrayBuffer); + serializer.setDeclaration(); + serializer.setNamespace('h', 'https://gitee.com/openharmony'); + serializer.startElement('note'); + serializer.setAttributes('importance', 'high'); + serializer.addEmptyElement('b'); + serializer.setComment('contact information'); + serializer.setText('ZhangSan 18712345678'); + serializer.setCDATA('CData'); + serializer.setDocType('DocType'); + serializer.endElement(); + let array = new Uint8Array(arrayBuffer); + let serializerStr = ''; + for (let i = 0; i < array.length; ++i) { + serializerStr = serializerStr + String.fromCodePoint(array[i]); + } + return serializerStr; +} + +export function parserNode(input: string): string { + let arrayBuffer = new ArrayBuffer(input.length * 2); + let bufView = new Uint8Array(arrayBuffer); + let strLen = input.length; + for (let k = 0; k < strLen; ++k) { + bufView[k] = input.charCodeAt(k); + } + let parser = new xml.XmlPullParser(arrayBuffer); + let arr: Record = {}; + let i = 0; + + let func = (key: xml.EventType, info: xml.ParseInfo) => { + arr[i] = `key:${key}, value:${info.getDepth()} ${info.getColumnNumber()} ` + + `${info.getLineNumber()} ${info.getAttributeCount()} ${info.getName()} ` + + `${info.getText()} ${info.isEmptyElementTag()} ${info.isWhitespace()}\n`; + i++; + return true; + } + + let options: xml.ParseOptions = { supportDoctype: true, ignoreNameSpace: true, tokenValueCallbackFunction: func }; + parser.parse(options); + let str = ''; + for (let j = 0; j < i; ++j) { + str = str + arr[j]; + } + return str; +} + +export function convertNode(input: string): string { + logger.info(TAG, 'convertNode start'); + let options: ConvertXML.ConvertOptions = { + trim: false, + declarationKey: "_declaration", + instructionKey: "_instruction", + attributesKey: "_attributes", + textKey: "_text", + cdataKey: "_cdata", + doctypeKey: "_doctype", + commentKey: "_comment", + parentKey: "_parent", + typeKey: "_type", + nameKey: "_name", + elementsKey: "_elements" + }; + let conv = new ConvertXML.ConvertXML(); + logger.info(TAG, 'convertNode new ConvertXML'); + let result = JSON.stringify(conv.convertToJSObject(input, options)); + logger.info(TAG, `convertNode conv.convert result = ${result}`); + return JSON.stringify(result); +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/LRUCacheUtil.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/LRUCacheUtil.ets new file mode 100644 index 00000000..12dc354b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/LRUCacheUtil.ets @@ -0,0 +1,85 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import util from '@ohos.util'; + +export let lruBuffer: util.LRUCache = new util.LRUCache(); + +export function initLRUCache(): string { + lruBuffer = new util.LRUCache(); + return getString($r('app.string.create_lru_cache')); +} + +export function getCapacity(): string { + return `capacity = ${lruBuffer.getCapacity()}`; +} + +export function updateCapacity(): string { + lruBuffer.updateCapacity(100); + return `update capacity success,capacity=${lruBuffer.getCapacity()}`; +} + +export function getCacheString(): string { + return lruBuffer.toString(); +} + +export function clear(): string { + lruBuffer.clear(); + return getString($r('app.string.clear')); +} + +export function putKeyValue(): string { + lruBuffer.put(randomString(3), randomString(5)); + return getString($r('app.string.put_success')); +} + +export function operationLog(): string { + lruBuffer.createDefault('10'); + lruBuffer.get('10'); + return `getCreateCount=${lruBuffer.getCreateCount()}\n` + + `getMissCount=${lruBuffer.getMissCount()}\n` + + `getRemovalCount=${lruBuffer.getRemovalCount()}\n` + + `getMatchCount=${lruBuffer.getMatchCount()}\n` + + `getPutCount=${lruBuffer.getPutCount()}\n`; +} + +export function getString(resource: Resource) { + let context = getContext() as common.UIAbilityContext; + let resultStr = context.resourceManager.getStringSync(resource); + return resultStr; +} + +export function randomString(length: number): string { + length = length || 32; + let string = 'abcdefhijkmnprstwxyz123456789'; + let maxLength = string.length; + let resultString = ''; + for (let i = 0; i < length; i++) { + resultString += string.charAt(Math.floor(Math.random() * maxLength)); + } + return resultString; +} + +export function getAllKeyValues(): string { + let result = ''; + let keyArr: string[] = lruBuffer.keys(); + let valueArr: string[] = lruBuffer.values(); + keyArr.forEach((key: string, index: number) => { + result += `key: ${key}, value: ${valueArr[index]}\n`; + }) + + return result; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/RationalNumberUtil.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/RationalNumberUtil.ets new file mode 100644 index 00000000..7e5051ff --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/RationalNumberUtil.ets @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2023 Huawei Device 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 util from '@ohos.util'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +const NUMERATOR1: number = 1; +const DENOMINATOR1: number = 2; +const NUMERATOR2: number = 3; +const DENOMINATOR2: number = 4; +const RATIONAL_NUMBER1 = util.RationalNumber.parseRationalNumber(NUMERATOR1, DENOMINATOR1); +const RATIONAL_NUMBER2 = util.RationalNumber.parseRationalNumber(NUMERATOR2, DENOMINATOR2); + +export function compareTo(): string { + let result = RATIONAL_NUMBER1.compare(RATIONAL_NUMBER2) + if (result === 0) { + return getString($r('app.string.equal_to')); + } + if (result === 1) { + return getString($r('app.string.greater_than')); + } + if (result === -1) { + return getString($r('app.string.less_than')); + } + return ''; +} + +export function getValueOf(): string { + let valueOf = RATIONAL_NUMBER1.valueOf(); + return `${getString($r('app.string.rational_number_value_of'))}${valueOf}`; +} + +export function getDenominator(): string { + let numerator = RATIONAL_NUMBER1.getNumerator(); + let denominator = RATIONAL_NUMBER1.getDenominator(); + return `${getString($r('app.string.numerator'))}${numerator}, ${getString($r('app.string.denominator'))}${denominator}`; +} + +export function isZero(): string { + let isZero = RATIONAL_NUMBER1.isZero(); + console.log('ButtonComponent isZero' + isZero); + if (isZero) { + return `${getString($r('app.string.first_rational_number'))} is zero`; + } else { + return `${getString($r('app.string.first_rational_number'))} is not zero`; + } +} + +export function isNaN(): string { + let isNaN = RATIONAL_NUMBER1.isNaN(); + if (isNaN) { + return `${getString($r('app.string.first_rational_number'))} is NaN`; + } else { + return `${getString($r('app.string.first_rational_number'))} is not NaN`; + } +} + +export function isFinite(): string { + let isFinite = RATIONAL_NUMBER1.isFinite(); + if (isFinite) { + return `${getString($r('app.string.first_rational_number'))} is Finite`; + } else { + return `${getString($r('app.string.first_rational_number'))} is not Finite`; + } +} + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/UrlUtil.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/UrlUtil.ets new file mode 100644 index 00000000..a1ac820c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/ets/util/UrlUtil.ets @@ -0,0 +1,54 @@ +/* +* Copyright (c) 2023 Huawei Device 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 url from '@ohos.url'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; + +let urlObject = url.URL.parseURL('https://gitee.com/openharmony/'); +let paramsObject = new url.URLParams(urlObject.search.slice(1)); +let nodeValue: string = 'nodeValue'; +let nodeKey: string = 'node'; +let nodeNum: number = 0; + +export function insertNode(): string { + nodeNum++; + paramsObject.append(nodeKey, nodeValue + nodeNum); + return urlObject.toString() + paramsObject.toString(); +} + +export function deleteNode(): string { + if (paramsObject.has(nodeKey)) { + paramsObject.delete(nodeKey); + nodeNum = 0; + return urlObject.toString() + paramsObject.toString(); + } else { + return "It does not exist. Please insert first"; + } +} + +export function getFirstNode(): string { + if (paramsObject.has(nodeKey)) { + let fod = paramsObject.get(nodeKey); + return fod !== null ? fod.toString() : ''; + } else { + return getString($r('app.string.please_insert')); + } +} + +export function changeValue(): string { + paramsObject.set(nodeKey, 'newValue'); + nodeNum = 0; + return urlObject.toString() + paramsObject.toString(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/module.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/module.json5 new file mode 100644 index 00000000..2cff837a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/module.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "module": { + "name": "capabilities", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/color.json new file mode 100644 index 00000000..d62691aa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/color.json @@ -0,0 +1,16 @@ +{ + "color": [ + { + "name": "text_color", + "value": "#0D9FFB" + }, + { + "name": "button_bg", + "value": "#00FFFFFF" + }, + { + "name": "bg_white", + "value": "#FFFFFF" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/strarray.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/strarray.json new file mode 100644 index 00000000..e55764a2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/strarray.json @@ -0,0 +1,142 @@ +{ + "strarray": [ + { + "name": "util_menu", + "value": [ + { + "value": "StringCode (String encoding and decoding)" + }, + { + "value": "RationalNumber (RationalNumber)" + }, + { + "value": "LRUCache (Lru cache)" + }, + { + "value": "ScopeHelper (Scope judgment)" + }, + { + "value": "Base64Helper (Base64 codec)" + }, + { + "value": "TypeCheck (Type check)" + } + ] + }, + { + "name": "convert_xml_operations", + "value": [ + { + "value": "Xml Serializer" + }, + { + "value": "Xml Pull Parser" + }, + { + "value": "Xml Convert" + } + ] + }, + { + "name": "lru_cache_operations", + "value": [ + { + "value": "Initialize buffer" + }, + { + "value": "Get buffer capacity" + }, + { + "value": "Update buffer capacity" + }, + { + "value": "Get buffer string" + }, + { + "value": "Add key value pair" + }, + { + "value": "Get value with key" + }, + { + "value": "Get all key-values" + }, + { + "value": "Delete the value of key" + }, + { + "value": "Clear all key-values" + }, + { + "value": "View operation record" + } + ] + }, + { + "name": "process_operations", + "value": [ + { + "value": "Get current process rum time" + }, + { + "value": "Get process work directory" + }, + { + "value": "Change work directory" + }, + { + "value": "Start a child process" + }, + { + "value": "Close the child process" + }, + { + "value": "send signal to process" + }, + { + "value": "Exit the process" + } + ] + }, + { + "name": "rational_number_operations", + "value": [ + { + "value": "Compare rational numbers" + }, + { + "value": "Get rational number value" + }, + { + "value": "Get numerator and denominator" + }, + { + "value": "Check for zero" + }, + { + "value": "Check for NaN" + }, + { + "value": "Check for finite number" + } + ] + }, + { + "name": "url_operations", + "value": [ + { + "value": "Insert Key-value" + }, + { + "value": "Delete Key-value" + }, + { + "value": "GetFirst Key-value" + }, + { + "value": "Set new value of key" + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/string.json new file mode 100644 index 00000000..f0ca7048 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/element/string.json @@ -0,0 +1,392 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "string_code", + "value": "StringCode (String encoding and decoding)" + }, + { + "name": "rational_number", + "value": "RationalNumber (RationalNumber)" + }, + { + "name": "lru_cache", + "value": "LRUCache (Lru cache)" + }, + { + "name": "scope_helper", + "value": "ScopeHelper (Scope judgment)" + }, + { + "name": "base64", + "value": "Base64Helper (Base64 codec)" + }, + { + "name": "type_check", + "value": "TypeCheck (Type check)" + }, + { + "name": "create_lru_cache", + "value": "create LruCache success" + }, + { + "name": "put_success", + "value": "put success" + }, + { + "name": "clear", + "value": "clear success" + }, + { + "name": "success", + "value": "success" + }, + { + "name": "close_success", + "value": "close success" + }, + { + "name": "child_null", + "value": "child process is null" + }, + { + "name": "failed", + "value": "failed" + }, + { + "name": "change_str", + "value": "String to convert:" + }, + { + "name": "encode", + "value": "encode" + }, + { + "name": "decode", + "value": "decode" + }, + { + "name": "SpecString", + "value": "specString:" + }, + { + "name": "SpecString_info", + "value": "OpenHarmony 3.0" + }, + { + "name": "result", + "value": "result = " + }, + { + "name": "result_f", + "value": "result[%f] = " + }, + { + "name": "result_i", + "value": "result[%i] = " + }, + { + "name": "result_d", + "value": "result[%d] = " + }, + { + "name": "result_s", + "value": "result[%s] = " + }, + { + "name": "SpecFormOutput", + "value": "specific format output" + }, + { + "name": "StringCodec_info", + "value": "OpenHarmony 3.0 has a track to follow in the future!" + }, + { + "name": "read", + "value": "read:" + }, + { + "name": "write", + "value": "write:" + }, + { + "name": "Text_encoder", + "value": "text encoder" + }, + { + "name": "Text_decoder", + "value": "text decoder" + }, + { + "name": "message", + "value": "OpenHarmony 3.0 has a track to follow in the future!" + }, + { + "name": "numerator", + "value": "Numerator:" + }, + { + "name": "denominator", + "value": "Denominator:" + }, + { + "name": "first_rational_number", + "value": "FirstRationalNumber" + }, + { + "name": "second_rational_number", + "value": "SecondRationalNumber" + }, + { + "name": "less_than", + "value": "FirstRationalNumber id less than SecondRationalNumber" + }, + { + "name": "equal_to", + "value": "FirstRationalNumber id equal to SecondRationalNumber" + }, + { + "name": "greater_than", + "value": "FirstRationalNumber id greater than SecondRationalNumber" + }, + { + "name": "rational_number_value_of", + "value": "The value of the rational number 1 obtained as an integer or as a floating-point number is" + }, + { + "name": "show", + "value": "Display preset value" + }, + { + "name": "check", + "value": "Check preset value" + }, + { + "name": "age", + "value": "Age judgment" + }, + { + "name": "temperature", + "value": "Temperature detection" + }, + { + "name": "range", + "value": "Range judgment" + }, + { + "name": "judge_age", + "value": "Determine whether the age is within the limit" + }, + { + "name": "age_analyse", + "value": "Age analysis" + }, + { + "name": "judge_temp", + "value": "Judge whether your temperature is normal" + }, + { + "name": "temp_morning", + "value": "What's your temperature in the morning:" + }, + { + "name": "temp_noon", + "value": "What's your temperature at noon:" + }, + { + "name": "temp_night", + "value": "What's your temperature at night:" + }, + { + "name": "temp_min", + "value": "Your minimum temperature today is" + }, + { + "name": "temp_max", + "value": "Your maximum temperature today is" + }, + { + "name": "temp_normal_range", + "value": "Your temperature is in the normal range" + }, + { + "name": "judge_sleep", + "value": "Judge whether you have enough sleep:" + }, + { + "name": "short_sleep", + "value": "What is your shortest sleep time this month:" + }, + { + "name": "long_sleep", + "value": "What is your longest sleep time this month:" + }, + { + "name": "sleep_analyse", + "value": "Sleep analysis" + }, + { + "name": "sleep_time", + "value": "*A person's normal sleep time is 7 to 10 hours" + }, + { + "name": "temp_analyse", + "value": "Temperature analysis" + }, + { + "name": "determine", + "value": "determine" + }, + { + "name": "age_message_confirm", + "value": "Your age meets the requirements" + }, + { + "name": "age_message_not_confirm", + "value": "Sorry, your age doesn't meet the requirements" + }, + { + "name": "temp_message_lower", + "value": "What's your minimum temperature today" + }, + { + "name": "temp_message_upper", + "value": "What's your maximum temperature today" + }, + { + "name": "temp_message_normal", + "value": "Your temperature is in the normal range" + }, + { + "name": "temp_message_abnormal", + "value": "Your temperature is abnormal today. Please see a doctor as soon as possible and pay attention to your health!" + }, + { + "name": "combine", + "value": "The sleep interval and the normal sleep interval are combined as" + }, + { + "name": "interval", + "value": "The intersection of sleep interval and normal sleep interval is" + }, + { + "name": "age_placeholder", + "value": "Please enter your age" + }, + { + "name": "morning_placeholder", + "value": "Please enter your morning temperature" + }, + { + "name": "noon_placeholder", + "value": "Please enter your temperature at noon" + }, + { + "name": "night_placeholder", + "value": "Please enter your temperature at night" + }, + { + "name": "enter_sleep_time", + "value": "Please enter sleep time" + }, + { + "name": "upper", + "value": "37" + }, + { + "name": "scope_temp_tips", + "value": "Please make sure that you enter your body temperature for all three time periods and that your body temperature is greater than 0" + }, + { + "name": "scope_sleep_tips", + "value": "Please enter the minimum and maximum sleep time" + }, + { + "name": "scope_sleep_tips_less", + "value": "The maximum sleep time is less than or equal to the minimum sleep time, please re-enter" + }, + { + "name": "scope_expand", + "value": "The union of the sleep interval and the normal sleep interval is" + }, + { + "name": "scope_intersect", + "value": "The intersection of the sleep zone and the normal sleep zone is" + }, + { + "name": "empty", + "value": "empty" + }, + { + "name": "please_insert", + "value": "It does not exist. Insert key-value pair first." + }, + { + "name": "contact_name", + "value": "Name:" + }, + { + "name": "contact_age", + "value": "Age:" + }, + { + "name": "contact_phone", + "value": "Phone:" + }, + { + "name": "button_delete", + "value": "Delete" + }, + { + "name": "button_confirm", + "value": "OK" + }, + { + "name": "button_cancel", + "value": "Cancel" + }, + { + "name": "contact_information", + "value": "Contact Information" + }, + { + "name": "input_name", + "value": "Enter a name" + }, + { + "name": "input_age", + "value": "Enter the age" + }, + { + "name": "input_phone", + "value": "Enter a phone" + }, + { + "name": "name_null", + "value": "The name cannot be empty" + }, + { + "name": "age_null", + "value": "The age cannot be empty" + }, + { + "name": "phone_null", + "value": "The phone number cannot be empty" + }, + { + "name": "click_exec_add_one", + "value": "Click execute task to make numberOfExecutions++" + }, + { + "name": "old", + "value": "years old" + }, + { + "name": "key_limit", + "value": "key must be a number" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/bg_empty_page.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/bg_empty_page.svg new file mode 100644 index 00000000..038a4c3c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/bg_empty_page.svg @@ -0,0 +1,104 @@ + + + + + + + + + + + + + + + + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/contact.png b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/contact.png new file mode 100644 index 0000000000000000000000000000000000000000..705a27f8c2dd9d962bbcc1b8c24aa6fcd34103d3 GIT binary patch literal 5311 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/ic_add.png b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/base/media/ic_add.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1f93dfe0882b204163603401ec9f441017f062 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|`aE46Lp;2b zQx+H|EZO*zM*ye3K5hW)4%9jJQ-Go&p^%53glUA{ZE2>XRh-L{Ea;&EV + + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/strarray.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/strarray.json new file mode 100644 index 00000000..e55764a2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/strarray.json @@ -0,0 +1,142 @@ +{ + "strarray": [ + { + "name": "util_menu", + "value": [ + { + "value": "StringCode (String encoding and decoding)" + }, + { + "value": "RationalNumber (RationalNumber)" + }, + { + "value": "LRUCache (Lru cache)" + }, + { + "value": "ScopeHelper (Scope judgment)" + }, + { + "value": "Base64Helper (Base64 codec)" + }, + { + "value": "TypeCheck (Type check)" + } + ] + }, + { + "name": "convert_xml_operations", + "value": [ + { + "value": "Xml Serializer" + }, + { + "value": "Xml Pull Parser" + }, + { + "value": "Xml Convert" + } + ] + }, + { + "name": "lru_cache_operations", + "value": [ + { + "value": "Initialize buffer" + }, + { + "value": "Get buffer capacity" + }, + { + "value": "Update buffer capacity" + }, + { + "value": "Get buffer string" + }, + { + "value": "Add key value pair" + }, + { + "value": "Get value with key" + }, + { + "value": "Get all key-values" + }, + { + "value": "Delete the value of key" + }, + { + "value": "Clear all key-values" + }, + { + "value": "View operation record" + } + ] + }, + { + "name": "process_operations", + "value": [ + { + "value": "Get current process rum time" + }, + { + "value": "Get process work directory" + }, + { + "value": "Change work directory" + }, + { + "value": "Start a child process" + }, + { + "value": "Close the child process" + }, + { + "value": "send signal to process" + }, + { + "value": "Exit the process" + } + ] + }, + { + "name": "rational_number_operations", + "value": [ + { + "value": "Compare rational numbers" + }, + { + "value": "Get rational number value" + }, + { + "value": "Get numerator and denominator" + }, + { + "value": "Check for zero" + }, + { + "value": "Check for NaN" + }, + { + "value": "Check for finite number" + } + ] + }, + { + "name": "url_operations", + "value": [ + { + "value": "Insert Key-value" + }, + { + "value": "Delete Key-value" + }, + { + "value": "GetFirst Key-value" + }, + { + "value": "Set new value of key" + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000..f0ca7048 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/en_US/element/string.json @@ -0,0 +1,392 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "string_code", + "value": "StringCode (String encoding and decoding)" + }, + { + "name": "rational_number", + "value": "RationalNumber (RationalNumber)" + }, + { + "name": "lru_cache", + "value": "LRUCache (Lru cache)" + }, + { + "name": "scope_helper", + "value": "ScopeHelper (Scope judgment)" + }, + { + "name": "base64", + "value": "Base64Helper (Base64 codec)" + }, + { + "name": "type_check", + "value": "TypeCheck (Type check)" + }, + { + "name": "create_lru_cache", + "value": "create LruCache success" + }, + { + "name": "put_success", + "value": "put success" + }, + { + "name": "clear", + "value": "clear success" + }, + { + "name": "success", + "value": "success" + }, + { + "name": "close_success", + "value": "close success" + }, + { + "name": "child_null", + "value": "child process is null" + }, + { + "name": "failed", + "value": "failed" + }, + { + "name": "change_str", + "value": "String to convert:" + }, + { + "name": "encode", + "value": "encode" + }, + { + "name": "decode", + "value": "decode" + }, + { + "name": "SpecString", + "value": "specString:" + }, + { + "name": "SpecString_info", + "value": "OpenHarmony 3.0" + }, + { + "name": "result", + "value": "result = " + }, + { + "name": "result_f", + "value": "result[%f] = " + }, + { + "name": "result_i", + "value": "result[%i] = " + }, + { + "name": "result_d", + "value": "result[%d] = " + }, + { + "name": "result_s", + "value": "result[%s] = " + }, + { + "name": "SpecFormOutput", + "value": "specific format output" + }, + { + "name": "StringCodec_info", + "value": "OpenHarmony 3.0 has a track to follow in the future!" + }, + { + "name": "read", + "value": "read:" + }, + { + "name": "write", + "value": "write:" + }, + { + "name": "Text_encoder", + "value": "text encoder" + }, + { + "name": "Text_decoder", + "value": "text decoder" + }, + { + "name": "message", + "value": "OpenHarmony 3.0 has a track to follow in the future!" + }, + { + "name": "numerator", + "value": "Numerator:" + }, + { + "name": "denominator", + "value": "Denominator:" + }, + { + "name": "first_rational_number", + "value": "FirstRationalNumber" + }, + { + "name": "second_rational_number", + "value": "SecondRationalNumber" + }, + { + "name": "less_than", + "value": "FirstRationalNumber id less than SecondRationalNumber" + }, + { + "name": "equal_to", + "value": "FirstRationalNumber id equal to SecondRationalNumber" + }, + { + "name": "greater_than", + "value": "FirstRationalNumber id greater than SecondRationalNumber" + }, + { + "name": "rational_number_value_of", + "value": "The value of the rational number 1 obtained as an integer or as a floating-point number is" + }, + { + "name": "show", + "value": "Display preset value" + }, + { + "name": "check", + "value": "Check preset value" + }, + { + "name": "age", + "value": "Age judgment" + }, + { + "name": "temperature", + "value": "Temperature detection" + }, + { + "name": "range", + "value": "Range judgment" + }, + { + "name": "judge_age", + "value": "Determine whether the age is within the limit" + }, + { + "name": "age_analyse", + "value": "Age analysis" + }, + { + "name": "judge_temp", + "value": "Judge whether your temperature is normal" + }, + { + "name": "temp_morning", + "value": "What's your temperature in the morning:" + }, + { + "name": "temp_noon", + "value": "What's your temperature at noon:" + }, + { + "name": "temp_night", + "value": "What's your temperature at night:" + }, + { + "name": "temp_min", + "value": "Your minimum temperature today is" + }, + { + "name": "temp_max", + "value": "Your maximum temperature today is" + }, + { + "name": "temp_normal_range", + "value": "Your temperature is in the normal range" + }, + { + "name": "judge_sleep", + "value": "Judge whether you have enough sleep:" + }, + { + "name": "short_sleep", + "value": "What is your shortest sleep time this month:" + }, + { + "name": "long_sleep", + "value": "What is your longest sleep time this month:" + }, + { + "name": "sleep_analyse", + "value": "Sleep analysis" + }, + { + "name": "sleep_time", + "value": "*A person's normal sleep time is 7 to 10 hours" + }, + { + "name": "temp_analyse", + "value": "Temperature analysis" + }, + { + "name": "determine", + "value": "determine" + }, + { + "name": "age_message_confirm", + "value": "Your age meets the requirements" + }, + { + "name": "age_message_not_confirm", + "value": "Sorry, your age doesn't meet the requirements" + }, + { + "name": "temp_message_lower", + "value": "What's your minimum temperature today" + }, + { + "name": "temp_message_upper", + "value": "What's your maximum temperature today" + }, + { + "name": "temp_message_normal", + "value": "Your temperature is in the normal range" + }, + { + "name": "temp_message_abnormal", + "value": "Your temperature is abnormal today. Please see a doctor as soon as possible and pay attention to your health!" + }, + { + "name": "combine", + "value": "The sleep interval and the normal sleep interval are combined as" + }, + { + "name": "interval", + "value": "The intersection of sleep interval and normal sleep interval is" + }, + { + "name": "age_placeholder", + "value": "Please enter your age" + }, + { + "name": "morning_placeholder", + "value": "Please enter your morning temperature" + }, + { + "name": "noon_placeholder", + "value": "Please enter your temperature at noon" + }, + { + "name": "night_placeholder", + "value": "Please enter your temperature at night" + }, + { + "name": "enter_sleep_time", + "value": "Please enter sleep time" + }, + { + "name": "upper", + "value": "37" + }, + { + "name": "scope_temp_tips", + "value": "Please make sure that you enter your body temperature for all three time periods and that your body temperature is greater than 0" + }, + { + "name": "scope_sleep_tips", + "value": "Please enter the minimum and maximum sleep time" + }, + { + "name": "scope_sleep_tips_less", + "value": "The maximum sleep time is less than or equal to the minimum sleep time, please re-enter" + }, + { + "name": "scope_expand", + "value": "The union of the sleep interval and the normal sleep interval is" + }, + { + "name": "scope_intersect", + "value": "The intersection of the sleep zone and the normal sleep zone is" + }, + { + "name": "empty", + "value": "empty" + }, + { + "name": "please_insert", + "value": "It does not exist. Insert key-value pair first." + }, + { + "name": "contact_name", + "value": "Name:" + }, + { + "name": "contact_age", + "value": "Age:" + }, + { + "name": "contact_phone", + "value": "Phone:" + }, + { + "name": "button_delete", + "value": "Delete" + }, + { + "name": "button_confirm", + "value": "OK" + }, + { + "name": "button_cancel", + "value": "Cancel" + }, + { + "name": "contact_information", + "value": "Contact Information" + }, + { + "name": "input_name", + "value": "Enter a name" + }, + { + "name": "input_age", + "value": "Enter the age" + }, + { + "name": "input_phone", + "value": "Enter a phone" + }, + { + "name": "name_null", + "value": "The name cannot be empty" + }, + { + "name": "age_null", + "value": "The age cannot be empty" + }, + { + "name": "phone_null", + "value": "The phone number cannot be empty" + }, + { + "name": "click_exec_add_one", + "value": "Click execute task to make numberOfExecutions++" + }, + { + "name": "old", + "value": "years old" + }, + { + "name": "key_limit", + "value": "key must be a number" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/strarray.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/strarray.json new file mode 100644 index 00000000..371dbce8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/strarray.json @@ -0,0 +1,142 @@ +{ + "strarray": [ + { + "name": "util_menu", + "value": [ + { + "value": "StringCode (字符串编解码)" + }, + { + "value": "RationalNumber (有理数)" + }, + { + "value": "LRUCache (缓冲区)" + }, + { + "value": "ScopeHelper (范围判断)" + }, + { + "value": "Base64Helper (Base64编解码)" + }, + { + "value": "TypeCheck (类型检查)" + } + ] + }, + { + "name": "convert_xml_operations", + "value": [ + { + "value": "Xml 生成" + }, + { + "value": "Xml 解析" + }, + { + "value": "Xml 转换" + } + ] + }, + { + "name": "lru_cache_operations", + "value": [ + { + "value": "初始化缓冲区" + }, + { + "value": "获取缓冲区容量" + }, + { + "value": "更新缓冲区容量" + }, + { + "value": "获取缓冲区字符串" + }, + { + "value": "添加键值对" + }, + { + "value": "获取键对应的值" + }, + { + "value": "获取所有键值对" + }, + { + "value": "删除指定键及关联值" + }, + { + "value": "清除所有键值对" + }, + { + "value": "查看操作记录" + } + ] + }, + { + "name": "process_operations", + "value": [ + { + "value": "获取当前系统运行时间" + }, + { + "value": "获取进程当前工作目录" + }, + { + "value": "更改进程当前工作目录" + }, + { + "value": "启动一个子进程" + }, + { + "value": "关闭子进程" + }, + { + "value": "发送signal到指定的进程" + }, + { + "value": "退出当前进程" + } + ] + }, + { + "name": "rational_number_operations", + "value": [ + { + "value": "有理数比较" + }, + { + "value": "获取有理数的值" + }, + { + "value": "获取有理数分子分母" + }, + { + "value": "检查是否为0" + }, + { + "value": "检查是否表示NaN" + }, + { + "value": "检查是否为有限值" + } + ] + }, + { + "name": "url_operations", + "value": [ + { + "value": "插入键值对到查询字符串" + }, + { + "value": "删除键值对" + }, + { + "value": "获取指定名称对应的第一个值" + }, + { + "value": "设置键的新值" + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000..1e507194 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/capabilities/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,392 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + }, + { + "name": "string_code", + "value": "StringCode (字符串编解码)" + }, + { + "name": "rational_number", + "value": "RationalNumber (有理数)" + }, + { + "name": "lru_cache", + "value": "LRUCache (缓冲区)" + }, + { + "name": "scope_helper", + "value": "ScopeHelper (范围判断)" + }, + { + "name": "base64", + "value": "Base64Helper (Base64编解码)" + }, + { + "name": "type_check", + "value": "TypeCheck (类型检查)" + }, + { + "name": "create_lru_cache", + "value": "创建LruCache成功" + }, + { + "name": "put_success", + "value": "添加成功" + }, + { + "name": "clear", + "value": "清除缓冲区成功" + }, + { + "name": "success", + "value": "成功" + }, + { + "name": "close_success", + "value": "关闭成功" + }, + { + "name": "child_null", + "value": "子进程为空" + }, + { + "name": "failed", + "value": "失败" + }, + { + "name": "change_str", + "value": "要转换的字符串:" + }, + { + "name": "encode", + "value": "编码" + }, + { + "name": "decode", + "value": "解码" + }, + { + "name": "SpecString", + "value": "字符串 : " + }, + { + "name": "SpecString_info", + "value": "OpenHarmony 3.0" + }, + { + "name": "result", + "value": "result = " + }, + { + "name": "result_f", + "value": "result[%f] = " + }, + { + "name": "result_i", + "value": "result[%i] = " + }, + { + "name": "result_d", + "value": "result[%d] = " + }, + { + "name": "result_s", + "value": "result[%s] = " + }, + { + "name": "SpecFormOutput", + "value": "特定格式输出" + }, + { + "name": "StringCodec_info", + "value": "OpenHarmony 3.0,未来有迹可循!" + }, + { + "name": "read", + "value": "读取:" + }, + { + "name": "write", + "value": "写入:" + }, + { + "name": "Text_encoder", + "value": "文本编码器" + }, + { + "name": "Text_decoder", + "value": "文本译码器" + }, + { + "name": "message", + "value": "OpenHarmony 3.0,未来有迹可循!" + }, + { + "name": "numerator", + "value": "分子:" + }, + { + "name": "denominator", + "value": "分母:" + }, + { + "name": "first_rational_number", + "value": "有理数1" + }, + { + "name": "second_rational_number", + "value": "有理数2" + }, + { + "name": "less_than", + "value": "有理数1小于有理数2" + }, + { + "name": "equal_to", + "value": "有理数1等于有理数2" + }, + { + "name": "greater_than", + "value": "有理数1大于有理数2" + }, + { + "name": "rational_number_value_of", + "value": "以整数形式或者浮点数的形式获取有理数1的值是" + }, + { + "name": "show", + "value": "显示预置值" + }, + { + "name": "check", + "value": "校验预置值" + }, + { + "name": "age", + "value": "年龄判断" + }, + { + "name": "temperature", + "value": "体温检测" + }, + { + "name": "range", + "value": "范围判断" + }, + { + "name": "judge_age", + "value": "判断年龄是否在限制内" + }, + { + "name": "age_analyse", + "value": "年龄分析" + }, + { + "name": "judge_temp", + "value": "判断您的体温是否正常" + }, + { + "name": "temp_morning", + "value": "您早上的体温是:" + }, + { + "name": "temp_noon", + "value": "您中午的体温是:" + }, + { + "name": "temp_night", + "value": "您晚上的体温是:" + }, + { + "name": "temp_min", + "value": "您今天的最低体温是" + }, + { + "name": "temp_max", + "value": "您今天的最高体温是" + }, + { + "name": "temp_normal_range", + "value": "您的体温在正常范围" + }, + { + "name": "judge_sleep", + "value": "判断您的睡眠是否充足:" + }, + { + "name": "short_sleep", + "value": "这一个月,您最短的睡眠时间是几小时:" + }, + { + "name": "long_sleep", + "value": "这一个月,您最长的睡眠时间是几小时:" + }, + { + "name": "sleep_analyse", + "value": "睡眠分析" + }, + { + "name": "sleep_time", + "value": "*人的正常睡眠时间是7到10个小时" + }, + { + "name": "temp_analyse", + "value": "体温分析" + }, + { + "name": "determine", + "value": "确定" + }, + { + "name": "age_message_confirm", + "value": "您的年龄符合规定" + }, + { + "name": "age_message_not_confirm", + "value": "对不起,您的年龄不符合规定" + }, + { + "name": "temp_message_lower", + "value": "您今天的最低体温是" + }, + { + "name": "temp_message_upper", + "value": "您今天的最高体温是" + }, + { + "name": "temp_message_normal", + "value": "您的体温在正常范围" + }, + { + "name": "temp_message_abnormal", + "value": "您今天的体温不正常,还望您尽快就医,注意身体!" + }, + { + "name": "combine", + "value": "睡眠区间和正常的睡眠区间的并集为" + }, + { + "name": "interval", + "value": "睡眠区间和正常的睡眠区间的交集为" + }, + { + "name": "age_placeholder", + "value": "请输入您的年龄" + }, + { + "name": "morning_placeholder", + "value": "请输入您早上的体温" + }, + { + "name": "noon_placeholder", + "value": "请输入您中午的体温" + }, + { + "name": "night_placeholder", + "value": "请输入您晚上的体温" + }, + { + "name": "enter_sleep_time", + "value": "请输入睡眠时间" + }, + { + "name": "upper", + "value": "37" + }, + { + "name": "scope_temp_tips", + "value": "请确认输入三个时间段的体温,且体温均大于0" + }, + { + "name": "scope_sleep_tips", + "value": "请输入最长和最短睡眠时间" + }, + { + "name": "scope_sleep_tips_less", + "value": "最长睡眠时间小于或等于最短睡眠时间,请重新输入" + }, + { + "name": "scope_expand", + "value": "睡眠区间和正常的睡眠区间的并集为" + }, + { + "name": "scope_intersect", + "value": "T睡眠区间和正常的睡眠区间的交集为" + }, + { + "name": "empty", + "value": "空" + }, + { + "name": "please_insert", + "value": "不存在,请先插入." + }, + { + "name": "contact_name", + "value": "姓名:" + }, + { + "name": "contact_age", + "value": "年龄:" + }, + { + "name": "contact_phone", + "value": "电话:" + }, + { + "name": "button_delete", + "value": "删除" + }, + { + "name": "button_confirm", + "value": "确认" + }, + { + "name": "button_cancel", + "value": "取消" + }, + { + "name": "contact_information", + "value": "联系人信息" + }, + { + "name": "input_name", + "value": "请输入姓名" + }, + { + "name": "input_age", + "value": "请输入年龄" + }, + { + "name": "input_phone", + "value": "请输入电话" + }, + { + "name": "name_null", + "value": "姓名不能为空" + }, + { + "name": "age_null", + "value": "年龄不能为空" + }, + { + "name": "phone_null", + "value": "电话号码不能为空" + }, + { + "name": "click_exec_add_one", + "value": "点击execute task使numberOfExecutions++" + }, + { + "name": "old", + "value": "岁" + }, + { + "name": "key_limit", + "value": "key必须为数字" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/.gitignore b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/.gitignore new file mode 100644 index 00000000..5a6ba80f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/.preview +/build +/.cxx \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/build-profile.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/build-profile.json5 new file mode 100644 index 00000000..12fe2d84 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/build-profile.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "targets": [ + { + "name": "default" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/hvigorfile.ts b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/hvigorfile.ts new file mode 100644 index 00000000..6522df25 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/hvigorfile.ts @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { harTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/index.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/index.ets new file mode 100644 index 00000000..4bf4e3a7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/index.ets @@ -0,0 +1,18 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export { MenuList } from './src/main/ets/menulist/MenuList'; + +export { MenuNavRouter } from './src/main/ets/components/MenuNavRouter'; diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/oh-package.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/oh-package.json5 new file mode 100644 index 00000000..e6ebdefa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/oh-package.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "ISC", + "types": "", + "devDependencies": {}, + "name": "menuitems", + "description": "a npm package which contains arkUI2.0 page", + "main": "index.ets", + "version": "1.0.0", + "dependencies": { + "@ohos/common": "file:../../common" + } +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/ItemGroup.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/ItemGroup.ets new file mode 100644 index 00000000..9a483d10 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/ItemGroup.ets @@ -0,0 +1,30 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct ItemGroup { + @BuilderParam noParam: () => void; + + build() { + Column() { + this.noParam() + } + .width('100%') + .borderRadius(24) + .backgroundColor($r('sys.color.ohos_id_color_foreground_contrary')) + .padding(4) + .margin({ bottom: 12 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MainItem.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MainItem.ets new file mode 100644 index 00000000..d9051ac7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MainItem.ets @@ -0,0 +1,55 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct MainItem { + private title: string | Resource = ''; + @LocalStorageProp('isSplitMode') isSplitMode: boolean = false; + @State isTouched: boolean = false; + + build() { + Row() { + Text(this.title) + .fontSize(16) + .lineHeight(22) + .fontWeight(FontWeight.Medium) + .fontFamily('HarmonyHeiTi') + .fontColor($r('sys.color.ohos_id_color_text_primary')) + .align(Alignment.Start) + .margin({ left: 16 }) + + Blank() + + Image($r('app.media.ic_arrow')) + .width(12) + .height(24) + .margin({ left: 4 }) + .fillColor($r('sys.color.ohos_id_color_fourth')) + } + .alignItems(VerticalAlign.Center) + .width('100%') + .height(56) + .borderRadius(20) + .padding({ left: 8, right: 8 }) + .backgroundColor(this.isTouched ? $r('app.color.itemActivated') : $r('app.color.itemInactivated')) + .onTouch((event: TouchEvent) => { + if (event.type === TouchType.Down) { + this.isTouched = true; + } else if (event.type === TouchType.Up) { + this.isTouched = false; + } + }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MenuNavRouter.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MenuNavRouter.ets new file mode 100644 index 00000000..7f0bcc43 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/components/MenuNavRouter.ets @@ -0,0 +1,134 @@ +/** + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ItemGroup } from './ItemGroup'; +import { logger } from '@ohos/common/src/main/ets/util/Logger'; +import { getString } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { MainItem } from './MainItem'; + +const TAG: string = 'MenuNavRouter'; + +@Component +export struct MenuNavRouter { + @StorageLink('selectedLabel') selectedLabel: string = ''; + @StorageLink('selectedSecondLabel') selectedSecondLabel: string = ''; + @BuilderParam navDestination: () => void; + private childList: Array = []; + private addAction?: (title: string) => void; + + @Builder CustomDivider() { + Divider() + .strokeWidth('1px') + .color($r('sys.color.ohos_id_color_list_separator')) + .margin({ left: 8, right: 8 }) + } + + build() { + ItemGroup() { + Column() { + ForEach(this.childList, (item: string, index: number) => { + if (index > 0) { + this.CustomDivider() + } + NavRouter() { + MainItem({ + title: item + }) + NavDestination() { + this.navDestination() + } + .title(this.CustomTitle(item)) + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + } + .onStateChange((isActivated: boolean) => { + // 组件激活状态切换时 + if (isActivated) { + // 点击一级路由菜单进入时 + if (this.addAction) { + this.selectedLabel = item; + logger.info(TAG, `NavRouter isActivated= ${isActivated}, selectedLabel=${item}`); + } + // 点击二级路由菜单进入时 + else { + this.selectedSecondLabel = item; + logger.info(TAG, `NavRouter isActivated= ${isActivated}, selectedSecondLabel=${item}`); + } + } + }) + }, (item: string) => JSON.stringify(item)) + } + } + } + + @Builder + CustomTitle(title: string) { + Row() { + Text(title) + .fontColor($r('app.color.black')) + .fontSize(16) + .fontWeight(FontWeight.Bold) + + Row() { + Image($r('app.media.ic_public_add')) + .height(24) + .aspectRatio(1) + .objectFit(ImageFit.Contain) + } + .id('add') + .height('100%') + .aspectRatio(1) + .visibility(this.showAddButton(title) ? Visibility.Visible : Visibility.None) + .onClick(() => { + logger.info(TAG, 'addAction') + if (this.addAction) { + this.addAction(title) + } + }) + } + .width('85%') + .height(56) + .justifyContent(FlexAlign.SpaceBetween) + } + + showAddButton(title: string) { + let ret = false + switch (title) { + case getString($r('app.string.deque')): + case getString($r('app.string.hash_map')): + case getString($r('app.string.hash_set')): + case getString($r('app.string.light_weight_map')): + case getString($r('app.string.light_weight_set')): + case getString($r('app.string.linked_list')): + case getString($r('app.string.list')): + case getString($r('app.string.plain_array')): + case getString($r('app.string.queue')): + case getString($r('app.string.stack')): + case getString($r('app.string.tree_map')): + case getString($r('app.string.tree_set')): + case getString($r('app.string.vector')): + ret = true + break; + } + return ret + } + + getString(resource: Resource) { + let context = getContext(this) as common.UIAbilityContext; + let resultStr = context.resourceManager.getStringSync(resource); + logger.info(TAG, `getString = ${resultStr}`); + return resultStr; + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/menulist/MenuList.ets b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/menulist/MenuList.ets new file mode 100644 index 00000000..6ac095f8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/ets/menulist/MenuList.ets @@ -0,0 +1,53 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { getStringArray } from '@ohos/common/src/main/ets/util/ResourceUtil'; +import { MenuNavRouter } from '../components/MenuNavRouter'; + +@Component +export struct MenuList { + @State menuListData: Array = []; + @BuilderParam childNavDestination: () => void; + private menuList: Resource | undefined = undefined; + private addAction?: (title: string) => void; + + build() { + List({ space: 12 }) { + ListItem() { + if (this.menuListData.length > 0) { + MenuNavRouter({ childList: this.menuListData, addAction: this.addAction }) { + this.childNavDestination() + } + } + } + } + .id('menu_list') + .width('100%') + .padding({ left: 12, right: 12 }) + .margin({ top: 12 }) + .backgroundColor($r('sys.color.ohos_id_color_sub_background')) + .scrollBar(BarState.Off) + } + + aboutToAppear() { + this.getData(); + } + + getData = async () => { + if (this.menuList) { + this.menuListData = await getStringArray(this.menuList); + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/module.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/module.json5 new file mode 100644 index 00000000..d5bce391 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/module.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "module": { + "name": "menuitems", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/color.json new file mode 100644 index 00000000..af2a41bd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/color.json @@ -0,0 +1,24 @@ +{ + "color": [ + { + "name": "white", + "value": "#FFFFFF" + }, + { + "name": "black", + "value": "#000000" + }, + { + "name": "itemActivated", + "value": "#335291FF" + }, + { + "name": "itemInactivated", + "value": "#FFFFFF" + }, + { + "name": "level_title", + "value": "#77000000" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/string.json new file mode 100644 index 00000000..1e76de0c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_add.png b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_add.png new file mode 100644 index 0000000000000000000000000000000000000000..fe1f93dfe0882b204163603401ec9f441017f062 GIT binary patch literal 212 zcmeAS@N?(olHy`uVBq!ia0vp^5+KaM1|%Pp+x`GjjKx9jP7LeL$-D$|`aE46Lp;2b zQx+H|EZO*zM*ye3K5hW)4%9jJQ-Go&p^%53glUA{ZE2>XRh-L{Ea;&EV + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_public_add.svg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_public_add.svg new file mode 100644 index 00000000..7408e5cf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/base/media/ic_public_add.svg @@ -0,0 +1,15 @@ + + + + + diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/en_US/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000..1e76de0c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/en_US/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/zh_CN/element/string.json b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000..1e76de0c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/feature/menuitems/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-config.json5 b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-config.json5 new file mode 100644 index 00000000..e75281b2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-config.json5 @@ -0,0 +1,6 @@ +{ + "hvigorVersion": "3.0.2", + "dependencies": { + "@ohos/hvigor-ohos-plugin": "3.0.2" + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-wrapper.js b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-wrapper.js new file mode 100644 index 00000000..994f2298 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigor/hvigor-wrapper.js @@ -0,0 +1,2 @@ +"use strict";var e=require("fs"),t=require("path"),n=require("os"),r=require("crypto"),u=require("child_process"),o=require("constants"),i=require("stream"),s=require("util"),c=require("assert"),a=require("tty"),l=require("zlib"),f=require("net");function d(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}var D=d(e),p=d(t),E=d(n),m=d(r),h=d(u),y=d(o),C=d(i),F=d(s),g=d(c),A=d(a),v=d(l),S=d(f),w="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},O={},b={},_={},B=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(_,"__esModule",{value:!0}),_.isMac=_.isLinux=_.isWindows=void 0;const P=B(E.default),k="Windows_NT",x="Linux",N="Darwin";_.isWindows=function(){return P.default.type()===k},_.isLinux=function(){return P.default.type()===x},_.isMac=function(){return P.default.type()===N};var I={},T=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),R=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),M=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&T(t,e,n);return R(t,e),t};Object.defineProperty(I,"__esModule",{value:!0}),I.hash=void 0;const L=M(m.default);I.hash=function(e,t="md5"){return L.createHash(t).update(e,"utf-8").digest("hex")},function(e){var t=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var u in e)"default"!==u&&Object.prototype.hasOwnProperty.call(e,u)&&t(r,e,u);return n(r,e),r};Object.defineProperty(e,"__esModule",{value:!0}),e.HVIGOR_BOOT_JS_FILE_PATH=e.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH=e.HVIGOR_PROJECT_DEPENDENCIES_HOME=e.HVIGOR_PROJECT_WRAPPER_HOME=e.HVIGOR_PROJECT_NAME=e.HVIGOR_PROJECT_ROOT_DIR=e.HVIGOR_PROJECT_CACHES_HOME=e.HVIGOR_PNPM_STORE_PATH=e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=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 u=r(p.default),o=r(E.default),i=_,s=I;e.HVIGOR_ENGINE_PACKAGE_NAME="@ohos/hvigor",e.PNPM_TOOL=(0,i.isWindows)()?"pnpm.cmd":"pnpm",e.NPM_TOOL=(0,i.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=u.resolve(o.homedir(),".hvigor"),e.HVIGOR_WRAPPER_TOOLS_HOME=u.resolve(e.HVIGOR_USER_HOME,"wrapper","tools"),e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=u.resolve(e.HVIGOR_WRAPPER_TOOLS_HOME,"node_modules",".bin",e.PNPM_TOOL),e.HVIGOR_PNPM_STORE_PATH=u.resolve(e.HVIGOR_USER_HOME,"caches"),e.HVIGOR_PROJECT_CACHES_HOME=u.resolve(e.HVIGOR_USER_HOME,"project_caches"),e.HVIGOR_PROJECT_ROOT_DIR=process.cwd(),e.HVIGOR_PROJECT_NAME=u.basename((0,s.hash)(e.HVIGOR_PROJECT_ROOT_DIR)),e.HVIGOR_PROJECT_WRAPPER_HOME=u.resolve(e.HVIGOR_PROJECT_ROOT_DIR,e.HVIGOR),e.HVIGOR_PROJECT_DEPENDENCIES_HOME=u.resolve(e.HVIGOR_PROJECT_CACHES_HOME,e.HVIGOR_PROJECT_NAME,"workspace"),e.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH=u.resolve(e.HVIGOR_PROJECT_DEPENDENCIES_HOME,e.DEFAULT_PACKAGE_JSON),e.HVIGOR_BOOT_JS_FILE_PATH=u.resolve(e.HVIGOR_PROJECT_DEPENDENCIES_HOME,"node_modules","@ohos","hvigor","bin","hvigor.js")}(b);var j={},$={};Object.defineProperty($,"__esModule",{value:!0}),$.logInfoPrintConsole=$.logErrorAndExit=void 0,$.logErrorAndExit=function(e){e instanceof Error?console.error(e.message):console.error(e),process.exit(-1)},$.logInfoPrintConsole=function(e){console.log(e)};var H=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),J=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),G=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&H(t,e,n);return J(t,e),t},V=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(j,"__esModule",{value:!0}),j.isFileExists=j.offlinePluginConversion=j.executeCommand=j.getNpmPath=j.hasNpmPackInPaths=void 0;const U=h.default,W=G(p.default),z=b,K=$,q=V(D.default);j.hasNpmPackInPaths=function(e,t){try{return require.resolve(e,{paths:[...t]}),!0}catch(e){return!1}},j.getNpmPath=function(){const e=process.execPath;return W.join(W.dirname(e),z.NPM_TOOL)},j.executeCommand=function(e,t,n){0!==(0,U.spawnSync)(e,t,n).status&&(0,K.logErrorAndExit)(`Error: ${e} ${t} execute failed.See above for details.`)},j.offlinePluginConversion=function(e,t){return t.startsWith("file:")||t.endsWith(".tgz")?W.resolve(e,z.HVIGOR,t.replace("file:","")):t},j.isFileExists=function(e){return q.default.existsSync(e)&&q.default.statSync(e).isFile()},function(e){var t=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),n=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),r=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var r={};if(null!=e)for(var u in e)"default"!==u&&Object.prototype.hasOwnProperty.call(e,u)&&t(r,e,u);return n(r,e),r},u=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(e,"__esModule",{value:!0}),e.executeInstallPnpm=e.isPnpmAvailable=e.environmentHandler=e.checkNpmConifg=e.PNPM_VERSION=void 0;const o=r(D.default),i=b,s=j,c=r(p.default),a=$,l=h.default,f=u(E.default);e.PNPM_VERSION="7.30.0",e.checkNpmConifg=function(){const e=c.resolve(i.HVIGOR_PROJECT_ROOT_DIR,".npmrc"),t=c.resolve(f.default.homedir(),".npmrc");if((0,s.isFileExists)(e)||(0,s.isFileExists)(t))return;const n=(0,s.getNpmPath)(),r=(0,l.spawnSync)(n,["config","get","prefix"],{cwd:i.HVIGOR_PROJECT_ROOT_DIR});if(0!==r.status||!r.stdout)return void(0,a.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.");const u=c.resolve(`${r.stdout}`.replace(/[\r\n]/gi,""),".npmrc");(0,s.isFileExists)(u)||(0,a.logErrorAndExit)("Error: The hvigor depends on the npmrc file. Configure the npmrc file first.")},e.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},e.isPnpmAvailable=function(){return!!o.existsSync(i.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,s.hasNpmPackInPaths)("pnpm",[i.HVIGOR_WRAPPER_TOOLS_HOME])},e.executeInstallPnpm=function(){(0,a.logInfoPrintConsole)(`Installing pnpm@${e.PNPM_VERSION}...`);const t=(0,s.getNpmPath)();!function(){const t=c.resolve(i.HVIGOR_WRAPPER_TOOLS_HOME,i.DEFAULT_PACKAGE_JSON);try{o.existsSync(i.HVIGOR_WRAPPER_TOOLS_HOME)||o.mkdirSync(i.HVIGOR_WRAPPER_TOOLS_HOME,{recursive:!0});const n={dependencies:{}};n.dependencies[i.PNPM]=e.PNPM_VERSION,o.writeFileSync(t,JSON.stringify(n))}catch(e){(0,a.logErrorAndExit)(`Error: EPERM: operation not permitted,create ${t} failed.`)}}(),(0,s.executeCommand)(t,["install","pnpm"],{cwd:i.HVIGOR_WRAPPER_TOOLS_HOME,stdio:["inherit","inherit","inherit"],env:process.env}),(0,a.logInfoPrintConsole)("Pnpm install success.")}}(O);var Y={},X={},Z={},Q={};Object.defineProperty(Q,"__esModule",{value:!0}),Q.Unicode=void 0;class ee{}Q.Unicode=ee,ee.Space_Separator=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,ee.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]/,ee.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(Z,"__esModule",{value:!0}),Z.JudgeUtil=void 0;const te=Q;Z.JudgeUtil=class{static isIgnoreChar(e){return"string"==typeof e&&("\t"===e||"\v"===e||"\f"===e||" "===e||" "===e||"\ufeff"===e||"\n"===e||"\r"===e||"\u2028"===e||"\u2029"===e)}static isSpaceSeparator(e){return"string"==typeof e&&te.Unicode.Space_Separator.test(e)}static isIdStartChar(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||"$"===e||"_"===e||te.Unicode.ID_Start.test(e))}static isIdContinueChar(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"$"===e||"_"===e||"‌"===e||"‍"===e||te.Unicode.ID_Continue.test(e))}static isDigitWithoutZero(e){return/[1-9]/.test(e)}static isDigit(e){return"string"==typeof e&&/[0-9]/.test(e)}static isHexDigit(e){return"string"==typeof e&&/[0-9A-Fa-f]/.test(e)}};var ne={},re={fromCallback:function(e){return Object.defineProperty((function(...t){if("function"!=typeof t[t.length-1])return new Promise(((n,r)=>{e.call(this,...t,((e,t)=>null!=e?r(e):n(t)))}));e.apply(this,t)}),"name",{value:e.name})},fromPromise:function(e){return Object.defineProperty((function(...t){const n=t[t.length-1];if("function"!=typeof n)return e.apply(this,t);e.apply(this,t.slice(0,-1)).then((e=>n(null,e)),n)}),"name",{value:e.name})}},ue=y.default,oe=process.cwd,ie=null,se=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ie||(ie=oe.call(process)),ie};try{process.cwd()}catch(e){}if("function"==typeof process.chdir){var ce=process.chdir;process.chdir=function(e){ie=null,ce.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ce)}var ae=function(e){ue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&function(e){e.lchmod=function(t,n,r){e.open(t,ue.O_WRONLY|ue.O_SYMLINK,n,(function(t,u){t?r&&r(t):e.fchmod(u,n,(function(t){e.close(u,(function(e){r&&r(t||e)}))}))}))},e.lchmodSync=function(t,n){var r,u=e.openSync(t,ue.O_WRONLY|ue.O_SYMLINK,n),o=!0;try{r=e.fchmodSync(u,n),o=!1}finally{if(o)try{e.closeSync(u)}catch(e){}else e.closeSync(u)}return r}}(e);e.lutimes||function(e){ue.hasOwnProperty("O_SYMLINK")&&e.futimes?(e.lutimes=function(t,n,r,u){e.open(t,ue.O_SYMLINK,(function(t,o){t?u&&u(t):e.futimes(o,n,r,(function(t){e.close(o,(function(e){u&&u(t||e)}))}))}))},e.lutimesSync=function(t,n,r){var u,o=e.openSync(t,ue.O_SYMLINK),i=!0;try{u=e.futimesSync(o,n,r),i=!1}finally{if(i)try{e.closeSync(o)}catch(e){}else e.closeSync(o)}return u}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}(e);e.chown=r(e.chown),e.fchown=r(e.fchown),e.lchown=r(e.lchown),e.chmod=t(e.chmod),e.fchmod=t(e.fchmod),e.lchmod=t(e.lchmod),e.chownSync=u(e.chownSync),e.fchownSync=u(e.fchownSync),e.lchownSync=u(e.lchownSync),e.chmodSync=n(e.chmodSync),e.fchmodSync=n(e.fchmodSync),e.lchmodSync=n(e.lchmodSync),e.stat=o(e.stat),e.fstat=o(e.fstat),e.lstat=o(e.lstat),e.statSync=i(e.statSync),e.fstatSync=i(e.fstatSync),e.lstatSync=i(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){});e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){});"win32"===se&&(e.rename="function"!=typeof e.rename?e.rename:function(t){function n(n,r,u){var o=Date.now(),i=0;t(n,r,(function s(c){if(c&&("EACCES"===c.code||"EPERM"===c.code||"EBUSY"===c.code)&&Date.now()-o<6e4)return setTimeout((function(){e.stat(r,(function(e,o){e&&"ENOENT"===e.code?t(n,r,s):u(c)}))}),i),void(i<100&&(i+=10));u&&u(c)}))}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n}(e.rename));function t(t){return t?function(n,r,u){return t.call(e,n,r,(function(e){s(e)&&(e=null),u&&u.apply(this,arguments)}))}:t}function n(t){return t?function(n,r){try{return t.call(e,n,r)}catch(e){if(!s(e))throw e}}:t}function r(t){return t?function(n,r,u,o){return t.call(e,n,r,u,(function(e){s(e)&&(e=null),o&&o.apply(this,arguments)}))}:t}function u(t){return t?function(n,r,u){try{return t.call(e,n,r,u)}catch(e){if(!s(e))throw e}}:t}function o(t){return t?function(n,r,u){function o(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),u&&u.apply(this,arguments)}return"function"==typeof r&&(u=r,r=null),r?t.call(e,n,r,o):t.call(e,n,o)}:t}function i(t){return t?function(n,r){var u=r?t.call(e,n,r):t.call(e,n);return u&&(u.uid<0&&(u.uid+=4294967296),u.gid<0&&(u.gid+=4294967296)),u}:t}function s(e){return!e||("ENOSYS"===e.code||!(process.getuid&&0===process.getuid()||"EINVAL"!==e.code&&"EPERM"!==e.code))}e.read="function"!=typeof e.read?e.read:function(t){function n(n,r,u,o,i,s){var c;if(s&&"function"==typeof s){var a=0;c=function(l,f,d){if(l&&"EAGAIN"===l.code&&a<10)return a++,t.call(e,n,r,u,o,i,c);s.apply(this,arguments)}}return t.call(e,n,r,u,o,i,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n}(e.read),e.readSync="function"!=typeof e.readSync?e.readSync:(c=e.readSync,function(t,n,r,u,o){for(var i=0;;)try{return c.call(e,t,n,r,u,o)}catch(e){if("EAGAIN"===e.code&&i<10){i++;continue}throw e}});var c};var le=C.default.Stream,fe=function(e){return{ReadStream:function t(n,r){if(!(this instanceof t))return new t(n,r);le.call(this);var u=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,r=r||{};for(var o=Object.keys(r),i=0,s=o.length;ithis.end)throw new Error("start must be <= end");this.pos=this.start}if(null!==this.fd)return void process.nextTick((function(){u._read()}));e.open(this.path,this.flags,this.mode,(function(e,t){if(e)return u.emit("error",e),void(u.readable=!1);u.fd=t,u.emit("open",t),u._read()}))},WriteStream:function t(n,r){if(!(this instanceof t))return new t(n,r);le.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,r=r||{};for(var u=Object.keys(r),o=0,i=u.length;o= zero");this.pos=this.start}this.busy=!1,this._queue=[],null===this.fd&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}};var de=function(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Object)var t={__proto__:De(e)};else t=Object.create(null);return Object.getOwnPropertyNames(e).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})),t},De=Object.getPrototypeOf||function(e){return e.__proto__};var pe,Ee,me=D.default,he=ae,ye=fe,Ce=de,Fe=F.default;function ge(e,t){Object.defineProperty(e,pe,{get:function(){return t}})}"function"==typeof Symbol&&"function"==typeof Symbol.for?(pe=Symbol.for("graceful-fs.queue"),Ee=Symbol.for("graceful-fs.previous")):(pe="___graceful-fs.queue",Ee="___graceful-fs.previous");var Ae=function(){};if(Fe.debuglog?Ae=Fe.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Ae=function(){var e=Fe.format.apply(Fe,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: "),console.error(e)}),!me[pe]){var ve=w[pe]||[];ge(me,ve),me.close=function(e){function t(t,n){return e.call(me,t,(function(e){e||_e(),"function"==typeof n&&n.apply(this,arguments)}))}return Object.defineProperty(t,Ee,{value:e}),t}(me.close),me.closeSync=function(e){function t(t){e.apply(me,arguments),_e()}return Object.defineProperty(t,Ee,{value:e}),t}(me.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",(function(){Ae(me[pe]),g.default.equal(me[pe].length,0)}))}w[pe]||ge(w,me[pe]);var Se,we=Oe(Ce(me));function Oe(e){he(e),e.gracefulify=Oe,e.createReadStream=function(t,n){return new e.ReadStream(t,n)},e.createWriteStream=function(t,n){return new e.WriteStream(t,n)};var t=e.readFile;e.readFile=function(e,n,r){"function"==typeof n&&(r=n,n=null);return function e(n,r,u,o){return t(n,r,(function(t){!t||"EMFILE"!==t.code&&"ENFILE"!==t.code?"function"==typeof u&&u.apply(this,arguments):be([e,[n,r,u],t,o||Date.now(),Date.now()])}))}(e,n,r)};var n=e.writeFile;e.writeFile=function(e,t,r,u){"function"==typeof r&&(u=r,r=null);return function e(t,r,u,o,i){return n(t,r,u,(function(n){!n||"EMFILE"!==n.code&&"ENFILE"!==n.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,r,u,o],n,i||Date.now(),Date.now()])}))}(e,t,r,u)};var r=e.appendFile;r&&(e.appendFile=function(e,t,n,u){"function"==typeof n&&(u=n,n=null);return function e(t,n,u,o,i){return r(t,n,u,(function(r){!r||"EMFILE"!==r.code&&"ENFILE"!==r.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,n,u,o],r,i||Date.now(),Date.now()])}))}(e,t,n,u)});var u=e.copyFile;u&&(e.copyFile=function(e,t,n,r){"function"==typeof n&&(r=n,n=0);return function e(t,n,r,o,i){return u(t,n,r,(function(u){!u||"EMFILE"!==u.code&&"ENFILE"!==u.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,n,r,o],u,i||Date.now(),Date.now()])}))}(e,t,n,r)});var o=e.readdir;e.readdir=function(e,t,n){"function"==typeof t&&(n=t,t=null);var r=i.test(process.version)?function(e,t,n,r){return o(e,u(e,t,n,r))}:function(e,t,n,r){return o(e,t,u(e,t,n,r))};return r(e,t,n);function u(e,t,n,u){return function(o,i){!o||"EMFILE"!==o.code&&"ENFILE"!==o.code?(i&&i.sort&&i.sort(),"function"==typeof n&&n.call(this,o,i)):be([r,[e,t,n],o,u||Date.now(),Date.now()])}}};var i=/^v[0-5]\./;if("v0.8"===process.version.substr(0,4)){var s=ye(e);d=s.ReadStream,D=s.WriteStream}var c=e.ReadStream;c&&(d.prototype=Object.create(c.prototype),d.prototype.open=function(){var e=this;E(e.path,e.flags,e.mode,(function(t,n){t?(e.autoClose&&e.destroy(),e.emit("error",t)):(e.fd=n,e.emit("open",n),e.read())}))});var a=e.WriteStream;a&&(D.prototype=Object.create(a.prototype),D.prototype.open=function(){var e=this;E(e.path,e.flags,e.mode,(function(t,n){t?(e.destroy(),e.emit("error",t)):(e.fd=n,e.emit("open",n))}))}),Object.defineProperty(e,"ReadStream",{get:function(){return d},set:function(e){d=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return D},set:function(e){D=e},enumerable:!0,configurable:!0});var l=d;Object.defineProperty(e,"FileReadStream",{get:function(){return l},set:function(e){l=e},enumerable:!0,configurable:!0});var f=D;function d(e,t){return this instanceof d?(c.apply(this,arguments),this):d.apply(Object.create(d.prototype),arguments)}function D(e,t){return this instanceof D?(a.apply(this,arguments),this):D.apply(Object.create(D.prototype),arguments)}Object.defineProperty(e,"FileWriteStream",{get:function(){return f},set:function(e){f=e},enumerable:!0,configurable:!0});var p=e.open;function E(e,t,n,r){return"function"==typeof n&&(r=n,n=null),function e(t,n,r,u,o){return p(t,n,r,(function(i,s){!i||"EMFILE"!==i.code&&"ENFILE"!==i.code?"function"==typeof u&&u.apply(this,arguments):be([e,[t,n,r,u],i,o||Date.now(),Date.now()])}))}(e,t,n,r)}return e.open=E,e}function be(e){Ae("ENQUEUE",e[0].name,e[1]),me[pe].push(e),Be()}function _e(){for(var e=Date.now(),t=0;t2&&(me[pe][t][3]=e,me[pe][t][4]=e);Be()}function Be(){if(clearTimeout(Se),Se=void 0,0!==me[pe].length){var e=me[pe].shift(),t=e[0],n=e[1],r=e[2],u=e[3],o=e[4];if(void 0===u)Ae("RETRY",t.name,n),t.apply(null,n);else if(Date.now()-u>=6e4){Ae("TIMEOUT",t.name,n);var i=n.pop();"function"==typeof i&&i.call(null,r)}else{var s=Date.now()-o,c=Math.max(o-u,1);s>=Math.min(1.2*c,100)?(Ae("RETRY",t.name,n),t.apply(null,n.concat([u]))):me[pe].push(e)}void 0===Se&&(Se=setTimeout(Be,0))}}process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!me.__patched&&(we=Oe(me),me.__patched=!0),function(e){const t=re.fromCallback,n=we,r=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>"function"==typeof n[e]));Object.assign(e,n),r.forEach((r=>{e[r]=t(n[r])})),e.realpath.native=t(n.realpath.native),e.exists=function(e,t){return"function"==typeof t?n.exists(e,t):new Promise((t=>n.exists(e,t)))},e.read=function(e,t,r,u,o,i){return"function"==typeof i?n.read(e,t,r,u,o,i):new Promise(((i,s)=>{n.read(e,t,r,u,o,((e,t,n)=>{if(e)return s(e);i({bytesRead:t,buffer:n})}))}))},e.write=function(e,t,...r){return"function"==typeof r[r.length-1]?n.write(e,t,...r):new Promise(((u,o)=>{n.write(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffer:n})}))}))},"function"==typeof n.writev&&(e.writev=function(e,t,...r){return"function"==typeof r[r.length-1]?n.writev(e,t,...r):new Promise(((u,o)=>{n.writev(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffers:n})}))}))})}(ne);var Pe={},ke={};const xe=p.default;ke.checkPath=function(e){if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(xe.parse(e).root,""))){const t=new Error(`Path contains invalid characters: ${e}`);throw t.code="EINVAL",t}}};const Ne=ne,{checkPath:Ie}=ke,Te=e=>"number"==typeof e?e:{mode:511,...e}.mode;Pe.makeDir=async(e,t)=>(Ie(e),Ne.mkdir(e,{mode:Te(t),recursive:!0})),Pe.makeDirSync=(e,t)=>(Ie(e),Ne.mkdirSync(e,{mode:Te(t),recursive:!0}));const Re=re.fromPromise,{makeDir:Me,makeDirSync:Le}=Pe,je=Re(Me);var $e={mkdirs:je,mkdirsSync:Le,mkdirp:je,mkdirpSync:Le,ensureDir:je,ensureDirSync:Le};const He=re.fromPromise,Je=ne;var Ge={pathExists:He((function(e){return Je.access(e).then((()=>!0)).catch((()=>!1))})),pathExistsSync:Je.existsSync};const Ve=we;var Ue=function(e,t,n,r){Ve.open(e,"r+",((e,u)=>{if(e)return r(e);Ve.futimes(u,t,n,(e=>{Ve.close(u,(t=>{r&&r(e||t)}))}))}))},We=function(e,t,n){const r=Ve.openSync(e,"r+");return Ve.futimesSync(r,t,n),Ve.closeSync(r)};const ze=ne,Ke=p.default,qe=F.default;function Ye(e,t,n){const r=n.dereference?e=>ze.stat(e,{bigint:!0}):e=>ze.lstat(e,{bigint:!0});return Promise.all([r(e),r(t).catch((e=>{if("ENOENT"===e.code)return null;throw e}))]).then((([e,t])=>({srcStat:e,destStat:t})))}function Xe(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Ze(e,t){const n=Ke.resolve(e).split(Ke.sep).filter((e=>e)),r=Ke.resolve(t).split(Ke.sep).filter((e=>e));return n.reduce(((e,t,n)=>e&&r[n]===t),!0)}function Qe(e,t,n){return`Cannot ${n} '${e}' to a subdirectory of itself, '${t}'.`}var et={checkPaths:function(e,t,n,r,u){qe.callbackify(Ye)(e,t,r,((r,o)=>{if(r)return u(r);const{srcStat:i,destStat:s}=o;if(s){if(Xe(i,s)){const r=Ke.basename(e),o=Ke.basename(t);return"move"===n&&r!==o&&r.toLowerCase()===o.toLowerCase()?u(null,{srcStat:i,destStat:s,isChangingCase:!0}):u(new Error("Source and destination must not be the same."))}if(i.isDirectory()&&!s.isDirectory())return u(new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`));if(!i.isDirectory()&&s.isDirectory())return u(new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`))}return i.isDirectory()&&Ze(e,t)?u(new Error(Qe(e,t,n))):u(null,{srcStat:i,destStat:s})}))},checkPathsSync:function(e,t,n,r){const{srcStat:u,destStat:o}=function(e,t,n){let r;const u=n.dereference?e=>ze.statSync(e,{bigint:!0}):e=>ze.lstatSync(e,{bigint:!0}),o=u(e);try{r=u(t)}catch(e){if("ENOENT"===e.code)return{srcStat:o,destStat:null};throw e}return{srcStat:o,destStat:r}}(e,t,r);if(o){if(Xe(u,o)){const r=Ke.basename(e),i=Ke.basename(t);if("move"===n&&r!==i&&r.toLowerCase()===i.toLowerCase())return{srcStat:u,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(u.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`);if(!u.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`)}if(u.isDirectory()&&Ze(e,t))throw new Error(Qe(e,t,n));return{srcStat:u,destStat:o}},checkParentPaths:function e(t,n,r,u,o){const i=Ke.resolve(Ke.dirname(t)),s=Ke.resolve(Ke.dirname(r));if(s===i||s===Ke.parse(s).root)return o();ze.stat(s,{bigint:!0},((i,c)=>i?"ENOENT"===i.code?o():o(i):Xe(n,c)?o(new Error(Qe(t,r,u))):e(t,n,s,u,o)))},checkParentPathsSync:function e(t,n,r,u){const o=Ke.resolve(Ke.dirname(t)),i=Ke.resolve(Ke.dirname(r));if(i===o||i===Ke.parse(i).root)return;let s;try{s=ze.statSync(i,{bigint:!0})}catch(e){if("ENOENT"===e.code)return;throw e}if(Xe(n,s))throw new Error(Qe(t,r,u));return e(t,n,i,u)},isSrcSubdir:Ze,areIdentical:Xe};const tt=we,nt=p.default,rt=$e.mkdirs,ut=Ge.pathExists,ot=Ue,it=et;function st(e,t,n,r,u){const o=nt.dirname(n);ut(o,((i,s)=>i?u(i):s?at(e,t,n,r,u):void rt(o,(o=>o?u(o):at(e,t,n,r,u)))))}function ct(e,t,n,r,u,o){Promise.resolve(u.filter(n,r)).then((i=>i?e(t,n,r,u,o):o()),(e=>o(e)))}function at(e,t,n,r,u){(r.dereference?tt.stat:tt.lstat)(t,((o,i)=>o?u(o):i.isDirectory()?function(e,t,n,r,u,o){return t?Dt(n,r,u,o):function(e,t,n,r,u){tt.mkdir(n,(o=>{if(o)return u(o);Dt(t,n,r,(t=>t?u(t):dt(n,e,u)))}))}(e.mode,n,r,u,o)}(i,e,t,n,r,u):i.isFile()||i.isCharacterDevice()||i.isBlockDevice()?function(e,t,n,r,u,o){return t?function(e,t,n,r,u){if(!r.overwrite)return r.errorOnExist?u(new Error(`'${n}' already exists`)):u();tt.unlink(n,(o=>o?u(o):lt(e,t,n,r,u)))}(e,n,r,u,o):lt(e,n,r,u,o)}(i,e,t,n,r,u):i.isSymbolicLink()?function(e,t,n,r,u){tt.readlink(t,((t,o)=>t?u(t):(r.dereference&&(o=nt.resolve(process.cwd(),o)),e?void tt.readlink(n,((t,i)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?tt.symlink(o,n,u):u(t):(r.dereference&&(i=nt.resolve(process.cwd(),i)),it.isSrcSubdir(o,i)?u(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${i}'.`)):e.isDirectory()&&it.isSrcSubdir(i,o)?u(new Error(`Cannot overwrite '${i}' with '${o}'.`)):function(e,t,n){tt.unlink(t,(r=>r?n(r):tt.symlink(e,t,n)))}(o,n,u)))):tt.symlink(o,n,u))))}(e,t,n,r,u):i.isSocket()?u(new Error(`Cannot copy a socket file: ${t}`)):i.isFIFO()?u(new Error(`Cannot copy a FIFO pipe: ${t}`)):u(new Error(`Unknown file: ${t}`))))}function lt(e,t,n,r,u){tt.copyFile(t,n,(o=>o?u(o):r.preserveTimestamps?function(e,t,n,r){if(function(e){return 0==(128&e)}(e))return function(e,t,n){return dt(e,128|t,n)}(n,e,(u=>u?r(u):ft(e,t,n,r)));return ft(e,t,n,r)}(e.mode,t,n,u):dt(n,e.mode,u)))}function ft(e,t,n,r){!function(e,t,n){tt.stat(e,((e,r)=>e?n(e):ot(t,r.atime,r.mtime,n)))}(t,n,(t=>t?r(t):dt(n,e,r)))}function dt(e,t,n){return tt.chmod(e,t,n)}function Dt(e,t,n,r){tt.readdir(e,((u,o)=>u?r(u):pt(o,e,t,n,r)))}function pt(e,t,n,r,u){const o=e.pop();return o?function(e,t,n,r,u,o){const i=nt.join(n,t),s=nt.join(r,t);it.checkPaths(i,s,"copy",u,((t,c)=>{if(t)return o(t);const{destStat:a}=c;!function(e,t,n,r,u){r.filter?ct(at,e,t,n,r,u):at(e,t,n,r,u)}(a,i,s,u,(t=>t?o(t):pt(e,n,r,u,o)))}))}(e,o,t,n,r,u):u()}var Et=function(e,t,n,r){"function"!=typeof n||r?"function"==typeof n&&(n={filter:n}):(r=n,n={}),r=r||function(){},(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),it.checkPaths(e,t,"copy",n,((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;it.checkParentPaths(e,i,t,"copy",(u=>u?r(u):n.filter?ct(st,s,e,t,n,r):st(s,e,t,n,r)))}))};const mt=we,ht=p.default,yt=$e.mkdirsSync,Ct=We,Ft=et;function gt(e,t,n,r){const u=(r.dereference?mt.statSync:mt.lstatSync)(t);if(u.isDirectory())return function(e,t,n,r,u){return t?St(n,r,u):function(e,t,n,r){return mt.mkdirSync(n),St(t,n,r),vt(n,e)}(e.mode,n,r,u)}(u,e,t,n,r);if(u.isFile()||u.isCharacterDevice()||u.isBlockDevice())return function(e,t,n,r,u){return t?function(e,t,n,r){if(r.overwrite)return mt.unlinkSync(n),At(e,t,n,r);if(r.errorOnExist)throw new Error(`'${n}' already exists`)}(e,n,r,u):At(e,n,r,u)}(u,e,t,n,r);if(u.isSymbolicLink())return function(e,t,n,r){let u=mt.readlinkSync(t);r.dereference&&(u=ht.resolve(process.cwd(),u));if(e){let e;try{e=mt.readlinkSync(n)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return mt.symlinkSync(u,n);throw e}if(r.dereference&&(e=ht.resolve(process.cwd(),e)),Ft.isSrcSubdir(u,e))throw new Error(`Cannot copy '${u}' to a subdirectory of itself, '${e}'.`);if(mt.statSync(n).isDirectory()&&Ft.isSrcSubdir(e,u))throw new Error(`Cannot overwrite '${e}' with '${u}'.`);return function(e,t){return mt.unlinkSync(t),mt.symlinkSync(e,t)}(u,n)}return mt.symlinkSync(u,n)}(e,t,n,r);if(u.isSocket())throw new Error(`Cannot copy a socket file: ${t}`);if(u.isFIFO())throw new Error(`Cannot copy a FIFO pipe: ${t}`);throw new Error(`Unknown file: ${t}`)}function At(e,t,n,r){return mt.copyFileSync(t,n),r.preserveTimestamps&&function(e,t,n){(function(e){return 0==(128&e)})(e)&&function(e,t){vt(e,128|t)}(n,e);(function(e,t){const n=mt.statSync(e);Ct(t,n.atime,n.mtime)})(t,n)}(e.mode,t,n),vt(n,e.mode)}function vt(e,t){return mt.chmodSync(e,t)}function St(e,t,n){mt.readdirSync(e).forEach((r=>function(e,t,n,r){const u=ht.join(t,e),o=ht.join(n,e),{destStat:i}=Ft.checkPathsSync(u,o,"copy",r);return function(e,t,n,r){if(!r.filter||r.filter(t,n))return gt(e,t,n,r)}(i,u,o,r)}(r,e,t,n)))}var wt=function(e,t,n){"function"==typeof n&&(n={filter:n}),(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const{srcStat:r,destStat:u}=Ft.checkPathsSync(e,t,"copy",n);return Ft.checkParentPathsSync(e,r,t,"copy"),function(e,t,n,r){if(r.filter&&!r.filter(t,n))return;const u=ht.dirname(n);mt.existsSync(u)||yt(u);return gt(e,t,n,r)}(u,e,t,n)};var Ot={copy:(0,re.fromCallback)(Et),copySync:wt};const bt=we,_t=p.default,Bt=g.default,Pt="win32"===process.platform;function kt(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach((t=>{e[t]=e[t]||bt[t],e[t+="Sync"]=e[t]||bt[t]})),e.maxBusyTries=e.maxBusyTries||3}function xt(e,t,n){let r=0;"function"==typeof t&&(n=t,t={}),Bt(e,"rimraf: missing path"),Bt.strictEqual(typeof e,"string","rimraf: path should be a string"),Bt.strictEqual(typeof n,"function","rimraf: callback function required"),Bt(t,"rimraf: invalid options argument provided"),Bt.strictEqual(typeof t,"object","rimraf: options should be object"),kt(t),Nt(e,t,(function u(o){if(o){if(("EBUSY"===o.code||"ENOTEMPTY"===o.code||"EPERM"===o.code)&&rNt(e,t,u)),100*r)}"ENOENT"===o.code&&(o=null)}n(o)}))}function Nt(e,t,n){Bt(e),Bt(t),Bt("function"==typeof n),t.lstat(e,((r,u)=>r&&"ENOENT"===r.code?n(null):r&&"EPERM"===r.code&&Pt?It(e,t,r,n):u&&u.isDirectory()?Rt(e,t,r,n):void t.unlink(e,(r=>{if(r){if("ENOENT"===r.code)return n(null);if("EPERM"===r.code)return Pt?It(e,t,r,n):Rt(e,t,r,n);if("EISDIR"===r.code)return Rt(e,t,r,n)}return n(r)}))))}function It(e,t,n,r){Bt(e),Bt(t),Bt("function"==typeof r),t.chmod(e,438,(u=>{u?r("ENOENT"===u.code?null:n):t.stat(e,((u,o)=>{u?r("ENOENT"===u.code?null:n):o.isDirectory()?Rt(e,t,n,r):t.unlink(e,r)}))}))}function Tt(e,t,n){let r;Bt(e),Bt(t);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw n}try{r=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw n}r.isDirectory()?Lt(e,t,n):t.unlinkSync(e)}function Rt(e,t,n,r){Bt(e),Bt(t),Bt("function"==typeof r),t.rmdir(e,(u=>{!u||"ENOTEMPTY"!==u.code&&"EEXIST"!==u.code&&"EPERM"!==u.code?u&&"ENOTDIR"===u.code?r(n):r(u):function(e,t,n){Bt(e),Bt(t),Bt("function"==typeof n),t.readdir(e,((r,u)=>{if(r)return n(r);let o,i=u.length;if(0===i)return t.rmdir(e,n);u.forEach((r=>{xt(_t.join(e,r),t,(r=>{if(!o)return r?n(o=r):void(0==--i&&t.rmdir(e,n))}))}))}))}(e,t,r)}))}function Mt(e,t){let n;kt(t=t||{}),Bt(e,"rimraf: missing path"),Bt.strictEqual(typeof e,"string","rimraf: path should be a string"),Bt(t,"rimraf: missing options"),Bt.strictEqual(typeof t,"object","rimraf: options should be object");try{n=t.lstatSync(e)}catch(n){if("ENOENT"===n.code)return;"EPERM"===n.code&&Pt&&Tt(e,t,n)}try{n&&n.isDirectory()?Lt(e,t,null):t.unlinkSync(e)}catch(n){if("ENOENT"===n.code)return;if("EPERM"===n.code)return Pt?Tt(e,t,n):Lt(e,t,n);if("EISDIR"!==n.code)throw n;Lt(e,t,n)}}function Lt(e,t,n){Bt(e),Bt(t);try{t.rmdirSync(e)}catch(r){if("ENOTDIR"===r.code)throw n;if("ENOTEMPTY"===r.code||"EEXIST"===r.code||"EPERM"===r.code)!function(e,t){if(Bt(e),Bt(t),t.readdirSync(e).forEach((n=>Mt(_t.join(e,n),t))),!Pt){return t.rmdirSync(e,t)}{const n=Date.now();do{try{return t.rmdirSync(e,t)}catch{}}while(Date.now()-n<500)}}(e,t);else if("ENOENT"!==r.code)throw r}}var jt=xt;xt.sync=Mt;const $t=we,Ht=re.fromCallback,Jt=jt;var Gt={remove:Ht((function(e,t){if($t.rm)return $t.rm(e,{recursive:!0,force:!0},t);Jt(e,t)})),removeSync:function(e){if($t.rmSync)return $t.rmSync(e,{recursive:!0,force:!0});Jt.sync(e)}};const Vt=re.fromPromise,Ut=ne,Wt=p.default,zt=$e,Kt=Gt,qt=Vt((async function(e){let t;try{t=await Ut.readdir(e)}catch{return zt.mkdirs(e)}return Promise.all(t.map((t=>Kt.remove(Wt.join(e,t)))))}));function Yt(e){let t;try{t=Ut.readdirSync(e)}catch{return zt.mkdirsSync(e)}t.forEach((t=>{t=Wt.join(e,t),Kt.removeSync(t)}))}var Xt={emptyDirSync:Yt,emptydirSync:Yt,emptyDir:qt,emptydir:qt};const Zt=re.fromCallback,Qt=p.default,en=we,tn=$e;var nn={createFile:Zt((function(e,t){function n(){en.writeFile(e,"",(e=>{if(e)return t(e);t()}))}en.stat(e,((r,u)=>{if(!r&&u.isFile())return t();const o=Qt.dirname(e);en.stat(o,((e,r)=>{if(e)return"ENOENT"===e.code?tn.mkdirs(o,(e=>{if(e)return t(e);n()})):t(e);r.isDirectory()?n():en.readdir(o,(e=>{if(e)return t(e)}))}))}))})),createFileSync:function(e){let t;try{t=en.statSync(e)}catch{}if(t&&t.isFile())return;const n=Qt.dirname(e);try{en.statSync(n).isDirectory()||en.readdirSync(n)}catch(e){if(!e||"ENOENT"!==e.code)throw e;tn.mkdirsSync(n)}en.writeFileSync(e,"")}};const rn=re.fromCallback,un=p.default,on=we,sn=$e,cn=Ge.pathExists,{areIdentical:an}=et;var ln={createLink:rn((function(e,t,n){function r(e,t){on.link(e,t,(e=>{if(e)return n(e);n(null)}))}on.lstat(t,((u,o)=>{on.lstat(e,((u,i)=>{if(u)return u.message=u.message.replace("lstat","ensureLink"),n(u);if(o&&an(i,o))return n(null);const s=un.dirname(t);cn(s,((u,o)=>u?n(u):o?r(e,t):void sn.mkdirs(s,(u=>{if(u)return n(u);r(e,t)}))))}))}))})),createLinkSync:function(e,t){let n;try{n=on.lstatSync(t)}catch{}try{const t=on.lstatSync(e);if(n&&an(t,n))return}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const r=un.dirname(t);return on.existsSync(r)||sn.mkdirsSync(r),on.linkSync(e,t)}};const fn=p.default,dn=we,Dn=Ge.pathExists;var pn={symlinkPaths:function(e,t,n){if(fn.isAbsolute(e))return dn.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:e})));{const r=fn.dirname(t),u=fn.join(r,e);return Dn(u,((t,o)=>t?n(t):o?n(null,{toCwd:u,toDst:e}):dn.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:fn.relative(r,e)})))))}},symlinkPathsSync:function(e,t){let n;if(fn.isAbsolute(e)){if(n=dn.existsSync(e),!n)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const r=fn.dirname(t),u=fn.join(r,e);if(n=dn.existsSync(u),n)return{toCwd:u,toDst:e};if(n=dn.existsSync(e),!n)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:fn.relative(r,e)}}}};const En=we;var mn={symlinkType:function(e,t,n){if(n="function"==typeof t?t:n,t="function"!=typeof t&&t)return n(null,t);En.lstat(e,((e,r)=>{if(e)return n(null,"file");t=r&&r.isDirectory()?"dir":"file",n(null,t)}))},symlinkTypeSync:function(e,t){let n;if(t)return t;try{n=En.lstatSync(e)}catch{return"file"}return n&&n.isDirectory()?"dir":"file"}};const hn=re.fromCallback,yn=p.default,Cn=ne,Fn=$e.mkdirs,gn=$e.mkdirsSync,An=pn.symlinkPaths,vn=pn.symlinkPathsSync,Sn=mn.symlinkType,wn=mn.symlinkTypeSync,On=Ge.pathExists,{areIdentical:bn}=et;function _n(e,t,n,r){An(e,t,((u,o)=>{if(u)return r(u);e=o.toDst,Sn(o.toCwd,n,((n,u)=>{if(n)return r(n);const o=yn.dirname(t);On(o,((n,i)=>n?r(n):i?Cn.symlink(e,t,u,r):void Fn(o,(n=>{if(n)return r(n);Cn.symlink(e,t,u,r)}))))}))}))}var Bn={createSymlink:hn((function(e,t,n,r){r="function"==typeof n?n:r,n="function"!=typeof n&&n,Cn.lstat(t,((u,o)=>{!u&&o.isSymbolicLink()?Promise.all([Cn.stat(e),Cn.stat(t)]).then((([u,o])=>{if(bn(u,o))return r(null);_n(e,t,n,r)})):_n(e,t,n,r)}))})),createSymlinkSync:function(e,t,n){let r;try{r=Cn.lstatSync(t)}catch{}if(r&&r.isSymbolicLink()){const n=Cn.statSync(e),r=Cn.statSync(t);if(bn(n,r))return}const u=vn(e,t);e=u.toDst,n=wn(u.toCwd,n);const o=yn.dirname(t);return Cn.existsSync(o)||gn(o),Cn.symlinkSync(e,t,n)}};const{createFile:Pn,createFileSync:kn}=nn,{createLink:xn,createLinkSync:Nn}=ln,{createSymlink:In,createSymlinkSync:Tn}=Bn;var Rn={createFile:Pn,createFileSync:kn,ensureFile:Pn,ensureFileSync:kn,createLink:xn,createLinkSync:Nn,ensureLink:xn,ensureLinkSync:Nn,createSymlink:In,createSymlinkSync:Tn,ensureSymlink:In,ensureSymlinkSync:Tn};var Mn={stringify:function(e,{EOL:t="\n",finalEOL:n=!0,replacer:r=null,spaces:u}={}){const o=n?t:"";return JSON.stringify(e,r,u).replace(/\n/g,t)+o},stripBom:function(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e.replace(/^\uFEFF/,"")}};let Ln;try{Ln=we}catch(e){Ln=D.default}const jn=re,{stringify:$n,stripBom:Hn}=Mn;const Jn=jn.fromPromise((async function(e,t={}){"string"==typeof t&&(t={encoding:t});const n=t.fs||Ln,r=!("throws"in t)||t.throws;let u,o=await jn.fromCallback(n.readFile)(e,t);o=Hn(o);try{u=JSON.parse(o,t?t.reviver:null)}catch(t){if(r)throw t.message=`${e}: ${t.message}`,t;return null}return u}));const Gn=jn.fromPromise((async function(e,t,n={}){const r=n.fs||Ln,u=$n(t,n);await jn.fromCallback(r.writeFile)(e,u,n)}));const Vn={readFile:Jn,readFileSync:function(e,t={}){"string"==typeof t&&(t={encoding:t});const n=t.fs||Ln,r=!("throws"in t)||t.throws;try{let r=n.readFileSync(e,t);return r=Hn(r),JSON.parse(r,t.reviver)}catch(t){if(r)throw t.message=`${e}: ${t.message}`,t;return null}},writeFile:Gn,writeFileSync:function(e,t,n={}){const r=n.fs||Ln,u=$n(t,n);return r.writeFileSync(e,u,n)}};var Un={readJson:Vn.readFile,readJsonSync:Vn.readFileSync,writeJson:Vn.writeFile,writeJsonSync:Vn.writeFileSync};const Wn=re.fromCallback,zn=we,Kn=p.default,qn=$e,Yn=Ge.pathExists;var Xn={outputFile:Wn((function(e,t,n,r){"function"==typeof n&&(r=n,n="utf8");const u=Kn.dirname(e);Yn(u,((o,i)=>o?r(o):i?zn.writeFile(e,t,n,r):void qn.mkdirs(u,(u=>{if(u)return r(u);zn.writeFile(e,t,n,r)}))))})),outputFileSync:function(e,...t){const n=Kn.dirname(e);if(zn.existsSync(n))return zn.writeFileSync(e,...t);qn.mkdirsSync(n),zn.writeFileSync(e,...t)}};const{stringify:Zn}=Mn,{outputFile:Qn}=Xn;var er=async function(e,t,n={}){const r=Zn(t,n);await Qn(e,r,n)};const{stringify:tr}=Mn,{outputFileSync:nr}=Xn;var rr=function(e,t,n){const r=tr(t,n);nr(e,r,n)};const ur=re.fromPromise,or=Un;or.outputJson=ur(er),or.outputJsonSync=rr,or.outputJSON=or.outputJson,or.outputJSONSync=or.outputJsonSync,or.writeJSON=or.writeJson,or.writeJSONSync=or.writeJsonSync,or.readJSON=or.readJson,or.readJSONSync=or.readJsonSync;var ir=or;const sr=we,cr=p.default,ar=Ot.copy,lr=Gt.remove,fr=$e.mkdirp,dr=Ge.pathExists,Dr=et;function pr(e,t,n,r,u){return r?Er(e,t,n,u):n?lr(t,(r=>r?u(r):Er(e,t,n,u))):void dr(t,((r,o)=>r?u(r):o?u(new Error("dest already exists.")):Er(e,t,n,u)))}function Er(e,t,n,r){sr.rename(e,t,(u=>u?"EXDEV"!==u.code?r(u):function(e,t,n,r){const u={overwrite:n,errorOnExist:!0};ar(e,t,u,(t=>t?r(t):lr(e,r)))}(e,t,n,r):r()))}var mr=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=n.overwrite||n.clobber||!1;Dr.checkPaths(e,t,"move",n,((n,o)=>{if(n)return r(n);const{srcStat:i,isChangingCase:s=!1}=o;Dr.checkParentPaths(e,i,t,"move",(n=>n?r(n):function(e){const t=cr.dirname(e);return cr.parse(t).root===t}(t)?pr(e,t,u,s,r):void fr(cr.dirname(t),(n=>n?r(n):pr(e,t,u,s,r)))))}))};const hr=we,yr=p.default,Cr=Ot.copySync,Fr=Gt.removeSync,gr=$e.mkdirpSync,Ar=et;function vr(e,t,n){try{hr.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;return function(e,t,n){const r={overwrite:n,errorOnExist:!0};return Cr(e,t,r),Fr(e)}(e,t,n)}}var Sr=function(e,t,n){const r=(n=n||{}).overwrite||n.clobber||!1,{srcStat:u,isChangingCase:o=!1}=Ar.checkPathsSync(e,t,"move",n);return Ar.checkParentPathsSync(e,u,t,"move"),function(e){const t=yr.dirname(e);return yr.parse(t).root===t}(t)||gr(yr.dirname(t)),function(e,t,n,r){if(r)return vr(e,t,n);if(n)return Fr(t),vr(e,t,n);if(hr.existsSync(t))throw new Error("dest already exists.");return vr(e,t,n)}(e,t,r,o)};var wr,Or,br,_r,Br,Pr={move:(0,re.fromCallback)(mr),moveSync:Sr},kr={...ne,...Ot,...Xt,...Rn,...ir,...$e,...Pr,...Xn,...Ge,...Gt},xr={},Nr={exports:{}},Ir={exports:{}};function Tr(){if(Or)return wr;Or=1;var e=1e3,t=60*e,n=60*t,r=24*n,u=7*r,o=365.25*r;function i(e,t,n,r){var u=t>=1.5*n;return Math.round(e/n)+" "+r+(u?"s":"")}return wr=function(s,c){c=c||{};var a=typeof s;if("string"===a&&s.length>0)return function(i){if((i=String(i)).length>100)return;var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(!s)return;var c=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*o;case"weeks":case"week":case"w":return c*u;case"days":case"day":case"d":return c*r;case"hours":case"hour":case"hrs":case"hr":case"h":return c*n;case"minutes":case"minute":case"mins":case"min":case"m":return c*t;case"seconds":case"second":case"secs":case"sec":case"s":return c*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(s);if("number"===a&&isFinite(s))return c.long?function(u){var o=Math.abs(u);if(o>=r)return i(u,o,r,"day");if(o>=n)return i(u,o,n,"hour");if(o>=t)return i(u,o,t,"minute");if(o>=e)return i(u,o,e,"second");return u+" ms"}(s):function(u){var o=Math.abs(u);if(o>=r)return Math.round(u/r)+"d";if(o>=n)return Math.round(u/n)+"h";if(o>=t)return Math.round(u/t)+"m";if(o>=e)return Math.round(u/e)+"s";return u+"ms"}(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))}}function Rr(){if(_r)return br;return _r=1,br=function(e){function t(e){let r,u,o,i=null;function s(...e){if(!s.enabled)return;const n=s,u=Number(new Date),o=u-(r||u);n.diff=o,n.prev=r,n.curr=u,r=u,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,u)=>{if("%%"===r)return"%";i++;const o=t.formatters[u];if("function"==typeof o){const t=e[i];r=o.call(n,t),e.splice(i,1),i--}return r})),t.formatArgs.call(n,e);(n.log||t.log).apply(n,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=n,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(u!==t.namespaces&&(u=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function n(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function r(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(r),...t.skips.map(r).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),u=r.length;for(n=0;n{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),u=t.indexOf("--");return-1!==r&&(-1===u||r{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=function(){if($r)return jr;$r=1;const e=E.default,t=A.default,n=Vr(),{env:r}=process;let u;function o(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function i(t,o){if(0===u)return 0;if(n("color=16m")||n("color=full")||n("color=truecolor"))return 3;if(n("color=256"))return 2;if(t&&!o&&void 0===u)return 0;const i=u||0;if("dumb"===r.TERM)return i;if("win32"===process.platform){const t=e.release().split(".");return Number(t[0])>=10&&Number(t[2])>=10586?Number(t[2])>=14931?3:2:1}if("CI"in r)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in r))||"codeship"===r.CI_NAME?1:i;if("TEAMCITY_VERSION"in r)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(r.TEAMCITY_VERSION)?1:0;if("truecolor"===r.COLORTERM)return 3;if("TERM_PROGRAM"in r){const e=parseInt((r.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(r.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(r.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(r.TERM)||"COLORTERM"in r?1:i}return n("no-color")||n("no-colors")||n("color=false")||n("color=never")?u=0:(n("color")||n("colors")||n("color=true")||n("color=always"))&&(u=1),"FORCE_COLOR"in r&&(u="true"===r.FORCE_COLOR?1:"false"===r.FORCE_COLOR?0:0===r.FORCE_COLOR.length?1:Math.min(parseInt(r.FORCE_COLOR,10),3)),jr={supportsColor:function(e){return o(i(e,e&&e.isTTY))},stdout:o(i(!0,t.isatty(1))),stderr:o(i(!0,t.isatty(2)))}}();e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const n=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[n]=r,e}),{}),e.exports=Rr()(t);const{formatters:u}=e.exports;u.o=function(e){return this.inspectOpts.colors=this.useColors,r.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},u.O=function(e){return this.inspectOpts.colors=this.useColors,r.inspect(e,this.inspectOpts)}}(Gr,Gr.exports)),Gr.exports}Jr=Nr,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?Jr.exports=(Br||(Br=1,function(e,t){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,u=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(u=r))})),t.splice(u,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=Rr()(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Ir,Ir.exports)),Ir.exports):Jr.exports=Ur();var Wr=function(e){return(e=e||{}).circles?function(e){var t=[],n=[];return e.proto?function e(u){if("object"!=typeof u||null===u)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,e);if(u instanceof Map)return new Map(r(Array.from(u),e));if(u instanceof Set)return new Set(r(Array.from(u),e));var o={};for(var i in t.push(u),n.push(o),u){var s=u[i];if("object"!=typeof s||null===s)o[i]=s;else if(s instanceof Date)o[i]=new Date(s);else if(s instanceof Map)o[i]=new Map(r(Array.from(s),e));else if(s instanceof Set)o[i]=new Set(r(Array.from(s),e));else if(ArrayBuffer.isView(s))o[i]=zr(s);else{var c=t.indexOf(s);o[i]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o}:function e(u){if("object"!=typeof u||null===u)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,e);if(u instanceof Map)return new Map(r(Array.from(u),e));if(u instanceof Set)return new Set(r(Array.from(u),e));var o={};for(var i in t.push(u),n.push(o),u)if(!1!==Object.hasOwnProperty.call(u,i)){var s=u[i];if("object"!=typeof s||null===s)o[i]=s;else if(s instanceof Date)o[i]=new Date(s);else if(s instanceof Map)o[i]=new Map(r(Array.from(s),e));else if(s instanceof Set)o[i]=new Set(r(Array.from(s),e));else if(ArrayBuffer.isView(s))o[i]=zr(s);else{var c=t.indexOf(s);o[i]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o};function r(e,r){for(var u=Object.keys(e),o=new Array(u.length),i=0;i!e,Qr=e=>e&&"object"==typeof e&&!Array.isArray(e),eu=(e,t,n)=>{(Array.isArray(t)?t:[t]).forEach((t=>{if(t)throw new Error(`Problem with log4js configuration: (${Kr.inspect(e,{depth:5})}) - ${n}`)}))};var tu={configure:e=>{qr("New configuration to be validated: ",e),eu(e,Zr(Qr(e)),"must be an object."),qr(`Calling pre-processing listeners (${Yr.length})`),Yr.forEach((t=>t(e))),qr("Configuration pre-processing finished."),qr(`Calling configuration listeners (${Xr.length})`),Xr.forEach((t=>t(e))),qr("Configuration finished.")},addListener:e=>{Xr.push(e),qr(`Added listener, now ${Xr.length} listeners`)},addPreProcessingListener:e=>{Yr.push(e),qr(`Added pre-processing listener, now ${Yr.length} listeners`)},throwExceptionIf:eu,anObject:Qr,anInteger:e=>e&&"number"==typeof e&&Number.isInteger(e),validIdentifier:e=>/^[A-Za-z][A-Za-z0-9_]*$/g.test(e),not:Zr},nu={exports:{}};!function(e){function t(e,t){for(var n=e.toString();n.length-1?s:c,l=n(u.getHours()),f=n(u.getMinutes()),d=n(u.getSeconds()),D=t(u.getMilliseconds(),3),p=function(e){var t=Math.abs(e),n=String(Math.floor(t/60)),r=String(t%60);return n=("0"+n).slice(-2),r=("0"+r).slice(-2),0===e?"Z":(e<0?"+":"-")+n+":"+r}(u.getTimezoneOffset());return r.replace(/dd/g,o).replace(/MM/g,i).replace(/y{1,4}/g,a).replace(/hh/g,l).replace(/mm/g,f).replace(/ss/g,d).replace(/SSS/g,D).replace(/O/g,p)}function u(e,t,n,r){e["set"+(r?"":"UTC")+t](n)}e.exports=r,e.exports.asString=r,e.exports.parse=function(t,n,r){if(!t)throw new Error("pattern must be supplied");return function(t,n,r){var o=t.indexOf("O")<0,i=!1,s=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(e,t){u(e,"FullYear",t,o)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(e,t){u(e,"Month",t-1,o),e.getMonth()!==t-1&&(i=!0)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(e,t){i&&u(e,"Month",e.getMonth()-1,o),u(e,"Date",t,o)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(e,t){u(e,"Hours",t,o)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(e,t){u(e,"Minutes",t,o)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(e,t){u(e,"Seconds",t,o)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(e,t){u(e,"Milliseconds",t,o)}},{pattern:/O/,regexp:"[+-]\\d{1,2}:?\\d{2}?|Z",fn:function(e,t){t="Z"===t?0:t.replace(":","");var n=Math.abs(t),r=(t>0?-1:1)*(n%100+60*Math.floor(n/100));e.setUTCMinutes(e.getUTCMinutes()+r)}}],c=s.reduce((function(e,t){return t.pattern.test(e.regexp)?(t.index=e.regexp.match(t.pattern).index,e.regexp=e.regexp.replace(t.pattern,"("+t.regexp+")")):t.index=-1,e}),{regexp:t,index:[]}),a=s.filter((function(e){return e.index>-1}));a.sort((function(e,t){return e.index-t.index}));var l=new RegExp(c.regexp).exec(n);if(l){var f=r||e.exports.now();return a.forEach((function(e,t){e.fn(f,l[t+1])})),f}throw new Error("String '"+n+"' could not be parsed as '"+t+"'")}(t,n,r)},e.exports.now=function(){return new Date},e.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS",e.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO",e.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS",e.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"}(nu);const ru=nu.exports,uu=E.default,ou=F.default,iu=p.default,su={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[91,39],yellow:[33,39]};function cu(e){return e?`[${su[e][0]}m`:""}function au(e){return e?`[${su[e][1]}m`:""}function lu(e,t){return n=ou.format("[%s] [%s] %s - ",ru.asString(e.startTime),e.level.toString(),e.categoryName),cu(r=t)+n+au(r);var n,r}function fu(e){return lu(e)+ou.format(...e.data)}function du(e){return lu(e,e.level.colour)+ou.format(...e.data)}function Du(e){return ou.format(...e.data)}function pu(e){return e.data[0]}function Eu(e,t){const n=/%(-?[0-9]+)?(\.?-?[0-9]+)?([[\]cdhmnprzxXyflos%])(\{([^}]+)\})?|([^%]+)/;function r(e){return e&&e.pid?e.pid.toString():process.pid.toString()}e=e||"%r %p %c - %m%n";const u={c:function(e,t){let n=e.categoryName;if(t){const e=parseInt(t,10),r=n.split(".");ee&&(n=r.slice(-e).join(iu.sep))}return n},l:function(e){return e.lineNumber?`${e.lineNumber}`:""},o:function(e){return e.columnNumber?`${e.columnNumber}`:""},s:function(e){return e.callStack||""}};function o(e,t,n){return u[e](t,n)}function i(e,t,n){let r=e;return r=function(e,t){let n;return e?(n=parseInt(e.substr(1),10),n>0?t.slice(0,n):t.slice(n)):t}(t,r),r=function(e,t){let n;if(e)if("-"===e.charAt(0))for(n=parseInt(e.substr(1),10);t.lengthDu,basic:()=>fu,colored:()=>du,coloured:()=>du,pattern:e=>Eu(e&&e.pattern,e&&e.tokens),dummy:()=>pu};var hu={basicLayout:fu,messagePassThroughLayout:Du,patternLayout:Eu,colouredLayout:du,coloredLayout:du,dummyLayout:pu,addLayout(e,t){mu[e]=t},layout:(e,t)=>mu[e]&&mu[e](t)};const yu=tu,Cu=["white","grey","black","blue","cyan","green","magenta","red","yellow"];class Fu{constructor(e,t,n){this.level=e,this.levelStr=t,this.colour=n}toString(){return this.levelStr}static getLevel(e,t){return e?e instanceof Fu?e:(e instanceof Object&&e.levelStr&&(e=e.levelStr),Fu[e.toString().toUpperCase()]||t):t}static addLevels(e){if(e){Object.keys(e).forEach((t=>{const n=t.toUpperCase();Fu[n]=new Fu(e[t].value,n,e[t].colour);const r=Fu.levels.findIndex((e=>e.levelStr===n));r>-1?Fu.levels[r]=Fu[n]:Fu.levels.push(Fu[n])})),Fu.levels.sort(((e,t)=>e.level-t.level))}}isLessThanOrEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level<=e.level}isGreaterThanOrEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level>=e.level}isEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level===e.level}}Fu.levels=[],Fu.addLevels({ALL:{value:Number.MIN_VALUE,colour:"grey"},TRACE:{value:5e3,colour:"blue"},DEBUG:{value:1e4,colour:"cyan"},INFO:{value:2e4,colour:"green"},WARN:{value:3e4,colour:"yellow"},ERROR:{value:4e4,colour:"red"},FATAL:{value:5e4,colour:"magenta"},MARK:{value:9007199254740992,colour:"grey"},OFF:{value:Number.MAX_VALUE,colour:"grey"}}),yu.addListener((e=>{const t=e.levels;if(t){yu.throwExceptionIf(e,yu.not(yu.anObject(t)),"levels must be an object");Object.keys(t).forEach((n=>{yu.throwExceptionIf(e,yu.not(yu.validIdentifier(n)),`level name "${n}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`),yu.throwExceptionIf(e,yu.not(yu.anObject(t[n])),`level "${n}" must be an object`),yu.throwExceptionIf(e,yu.not(t[n].value),`level "${n}" must have a 'value' property`),yu.throwExceptionIf(e,yu.not(yu.anInteger(t[n].value)),`level "${n}".value must have an integer value`),yu.throwExceptionIf(e,yu.not(t[n].colour),`level "${n}" must have a 'colour' property`),yu.throwExceptionIf(e,yu.not(Cu.indexOf(t[n].colour)>-1),`level "${n}".colour must be one of ${Cu.join(", ")}`)}))}})),yu.addListener((e=>{Fu.addLevels(e.levels)}));var gu=Fu,Au={exports:{}},vu={};/*! (c) 2020 Andrea Giammarchi */ +const{parse:Su,stringify:wu}=JSON,{keys:Ou}=Object,bu=String,_u="string",Bu={},Pu="object",ku=(e,t)=>t,xu=e=>e instanceof bu?bu(e):e,Nu=(e,t)=>typeof t===_u?new bu(t):t,Iu=(e,t,n,r)=>{const u=[];for(let o=Ou(n),{length:i}=o,s=0;s{const r=bu(t.push(n)-1);return e.set(n,r),r},Ru=(e,t)=>{const n=Su(e,Nu).map(xu),r=n[0],u=t||ku,o=typeof r===Pu&&r?Iu(n,new Set,r,u):r;return u.call({"":o},"",o)};vu.parse=Ru;const Mu=(e,t,n)=>{const r=t&&typeof t===Pu?(e,n)=>""===e||-1Su(Mu(e));vu.fromJSON=e=>Ru(wu(e));const Lu=vu,ju=gu;class $u{constructor(e,t,n,r,u){this.startTime=new Date,this.categoryName=e,this.data=n,this.level=t,this.context=Object.assign({},r),this.pid=process.pid,u&&(this.functionName=u.functionName,this.fileName=u.fileName,this.lineNumber=u.lineNumber,this.columnNumber=u.columnNumber,this.callStack=u.callStack)}serialise(){const e=this.data.map((e=>(e&&e.message&&e.stack&&(e=Object.assign({message:e.message,stack:e.stack},e)),e)));return this.data=e,Lu.stringify(this)}static deserialise(e){let t;try{const n=Lu.parse(e);n.data=n.data.map((e=>{if(e&&e.message&&e.stack){const t=new Error(e);Object.keys(e).forEach((n=>{t[n]=e[n]})),e=t}return e})),t=new $u(n.categoryName,ju.getLevel(n.level.levelStr),n.data,n.context),t.startTime=new Date(n.startTime),t.pid=n.pid,t.cluster=n.cluster}catch(n){t=new $u("log4js",ju.ERROR,["Unable to parse log:",e,"because: ",n])}return t}}var Hu=$u;const Ju=Nr.exports("log4js:clustering"),Gu=Hu,Vu=tu;let Uu=!1,Wu=null;try{Wu=require("cluster")}catch(e){Ju("cluster module not present"),Uu=!0}const zu=[];let Ku=!1,qu="NODE_APP_INSTANCE";const Yu=()=>Ku&&"0"===process.env[qu],Xu=()=>Uu||Wu.isMaster||Yu(),Zu=e=>{zu.forEach((t=>t(e)))},Qu=(e,t)=>{if(Ju("cluster message received from worker ",e,": ",t),e.topic&&e.data&&(t=e,e=void 0),t&&t.topic&&"log4js:message"===t.topic){Ju("received message: ",t.data);const e=Gu.deserialise(t.data);Zu(e)}};Uu||Vu.addListener((e=>{zu.length=0,({pm2:Ku,disableClustering:Uu,pm2InstanceVar:qu="NODE_APP_INSTANCE"}=e),Ju(`clustering disabled ? ${Uu}`),Ju(`cluster.isMaster ? ${Wu&&Wu.isMaster}`),Ju(`pm2 enabled ? ${Ku}`),Ju(`pm2InstanceVar = ${qu}`),Ju(`process.env[${qu}] = ${process.env[qu]}`),Ku&&process.removeListener("message",Qu),Wu&&Wu.removeListener&&Wu.removeListener("message",Qu),Uu||e.disableClustering?Ju("Not listening for cluster messages, because clustering disabled."):Yu()?(Ju("listening for PM2 broadcast messages"),process.on("message",Qu)):Wu.isMaster?(Ju("listening for cluster messages"),Wu.on("message",Qu)):Ju("not listening for messages, because we are not a master process")}));var eo={onlyOnMaster:(e,t)=>Xu()?e():t,isMaster:Xu,send:e=>{Xu()?Zu(e):(Ku||(e.cluster={workerId:Wu.worker.id,worker:process.pid}),process.send({topic:"log4js:message",data:e.serialise()}))},onMessage:e=>{zu.push(e)}},to={};function no(e){if("number"==typeof e&&Number.isInteger(e))return e;const t={K:1024,M:1048576,G:1073741824},n=Object.keys(t),r=e.substr(e.length-1).toLocaleUpperCase(),u=e.substring(0,e.length-1).trim();if(n.indexOf(r)<0||!Number.isInteger(Number(u)))throw Error(`maxLogSize: "${e}" is invalid`);return u*t[r]}function ro(e){return function(e,t){const n=Object.assign({},t);return Object.keys(e).forEach((r=>{n[r]&&(n[r]=e[r](t[r]))})),n}({maxLogSize:no},e)}const uo={file:ro,fileSync:ro};to.modifyConfig=e=>uo[e.type]?uo[e.type](e):e;var oo={};const io=console.log.bind(console);oo.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{io(e(n,t))}}(n,e.timezoneOffset)};var so={};so.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{process.stdout.write(`${e(n,t)}\n`)}}(n,e.timezoneOffset)};var co={};co.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{process.stderr.write(`${e(n,t)}\n`)}}(n,e.timezoneOffset)};var ao={};ao.configure=function(e,t,n,r){const u=n(e.appender);return function(e,t,n,r){const u=r.getLevel(e),o=r.getLevel(t,r.FATAL);return e=>{const t=e.level;t.isGreaterThanOrEqualTo(u)&&t.isLessThanOrEqualTo(o)&&n(e)}}(e.level,e.maxLevel,u,r)};var lo={};const fo=Nr.exports("log4js:categoryFilter");lo.configure=function(e,t,n){const r=n(e.appender);return function(e,t){return"string"==typeof e&&(e=[e]),n=>{fo(`Checking ${n.categoryName} against ${e}`),-1===e.indexOf(n.categoryName)&&(fo("Not excluded, sending to appender"),t(n))}}(e.exclude,r)};var Do={};const po=Nr.exports("log4js:noLogFilter");Do.configure=function(e,t,n){const r=n(e.appender);return function(e,t){return n=>{po(`Checking data: ${n.data} against filters: ${e}`),"string"==typeof e&&(e=[e]),e=e.filter((e=>null!=e&&""!==e));const r=new RegExp(e.join("|"),"i");(0===e.length||n.data.findIndex((e=>r.test(e)))<0)&&(po("Not excluded, sending to appender"),t(n))}}(e.exclude,r)};var Eo={},mo={exports:{}},ho={},yo={fromCallback:function(e){return Object.defineProperty((function(){if("function"!=typeof arguments[arguments.length-1])return new Promise(((t,n)=>{arguments[arguments.length]=(e,r)=>{if(e)return n(e);t(r)},arguments.length++,e.apply(this,arguments)}));e.apply(this,arguments)}),"name",{value:e.name})},fromPromise:function(e){return Object.defineProperty((function(){const t=arguments[arguments.length-1];if("function"!=typeof t)return e.apply(this,arguments);e.apply(this,arguments).then((e=>t(null,e)),t)}),"name",{value:e.name})}};!function(e){const t=yo.fromCallback,n=we,r=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchown","lchmod","link","lstat","mkdir","mkdtemp","open","readFile","readdir","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>"function"==typeof n[e]));Object.keys(n).forEach((t=>{"promises"!==t&&(e[t]=n[t])})),r.forEach((r=>{e[r]=t(n[r])})),e.exists=function(e,t){return"function"==typeof t?n.exists(e,t):new Promise((t=>n.exists(e,t)))},e.read=function(e,t,r,u,o,i){return"function"==typeof i?n.read(e,t,r,u,o,i):new Promise(((i,s)=>{n.read(e,t,r,u,o,((e,t,n)=>{if(e)return s(e);i({bytesRead:t,buffer:n})}))}))},e.write=function(e,t,...r){return"function"==typeof r[r.length-1]?n.write(e,t,...r):new Promise(((u,o)=>{n.write(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffer:n})}))}))},"function"==typeof n.realpath.native&&(e.realpath.native=t(n.realpath.native))}(ho);const Co=p.default;function Fo(e){return(e=Co.normalize(Co.resolve(e)).split(Co.sep)).length>0?e[0]:null}const go=/[<>:"|?*]/;var Ao=function(e){const t=Fo(e);return e=e.replace(t,""),go.test(e)};const vo=we,So=p.default,wo=Ao,Oo=parseInt("0777",8);var bo=function e(t,n,r,u){if("function"==typeof n?(r=n,n={}):n&&"object"==typeof n||(n={mode:n}),"win32"===process.platform&&wo(t)){const e=new Error(t+" contains invalid WIN32 path characters.");return e.code="EINVAL",r(e)}let o=n.mode;const i=n.fs||vo;void 0===o&&(o=Oo&~process.umask()),u||(u=null),r=r||function(){},t=So.resolve(t),i.mkdir(t,o,(o=>{if(!o)return r(null,u=u||t);if("ENOENT"===o.code){if(So.dirname(t)===t)return r(o);e(So.dirname(t),n,((u,o)=>{u?r(u,o):e(t,n,r,o)}))}else i.stat(t,((e,t)=>{e||!t.isDirectory()?r(o,u):r(null,u)}))}))};const _o=we,Bo=p.default,Po=Ao,ko=parseInt("0777",8);var xo=function e(t,n,r){n&&"object"==typeof n||(n={mode:n});let u=n.mode;const o=n.fs||_o;if("win32"===process.platform&&Po(t)){const e=new Error(t+" contains invalid WIN32 path characters.");throw e.code="EINVAL",e}void 0===u&&(u=ko&~process.umask()),r||(r=null),t=Bo.resolve(t);try{o.mkdirSync(t,u),r=r||t}catch(u){if("ENOENT"===u.code){if(Bo.dirname(t)===t)throw u;r=e(Bo.dirname(t),n,r),e(t,n,r)}else{let e;try{e=o.statSync(t)}catch(e){throw u}if(!e.isDirectory())throw u}}return r};const No=(0,yo.fromCallback)(bo);var Io={mkdirs:No,mkdirsSync:xo,mkdirp:No,mkdirpSync:xo,ensureDir:No,ensureDirSync:xo};const To=we;E.default,p.default;var Ro=function(e,t,n,r){To.open(e,"r+",((e,u)=>{if(e)return r(e);To.futimes(u,t,n,(e=>{To.close(u,(t=>{r&&r(e||t)}))}))}))},Mo=function(e,t,n){const r=To.openSync(e,"r+");return To.futimesSync(r,t,n),To.closeSync(r)};const Lo=we,jo=p.default,$o=10,Ho=5,Jo=0,Go=process.versions.node.split("."),Vo=Number.parseInt(Go[0],10),Uo=Number.parseInt(Go[1],10),Wo=Number.parseInt(Go[2],10);function zo(){if(Vo>$o)return!0;if(Vo===$o){if(Uo>Ho)return!0;if(Uo===Ho&&Wo>=Jo)return!0}return!1}function Ko(e,t){const n=jo.resolve(e).split(jo.sep).filter((e=>e)),r=jo.resolve(t).split(jo.sep).filter((e=>e));return n.reduce(((e,t,n)=>e&&r[n]===t),!0)}function qo(e,t,n){return`Cannot ${n} '${e}' to a subdirectory of itself, '${t}'.`}var Yo,Xo,Zo={checkPaths:function(e,t,n,r){!function(e,t,n){zo()?Lo.stat(e,{bigint:!0},((e,r)=>{if(e)return n(e);Lo.stat(t,{bigint:!0},((e,t)=>e?"ENOENT"===e.code?n(null,{srcStat:r,destStat:null}):n(e):n(null,{srcStat:r,destStat:t})))})):Lo.stat(e,((e,r)=>{if(e)return n(e);Lo.stat(t,((e,t)=>e?"ENOENT"===e.code?n(null,{srcStat:r,destStat:null}):n(e):n(null,{srcStat:r,destStat:t})))}))}(e,t,((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;return s&&s.ino&&s.dev&&s.ino===i.ino&&s.dev===i.dev?r(new Error("Source and destination must not be the same.")):i.isDirectory()&&Ko(e,t)?r(new Error(qo(e,t,n))):r(null,{srcStat:i,destStat:s})}))},checkPathsSync:function(e,t,n){const{srcStat:r,destStat:u}=function(e,t){let n,r;n=zo()?Lo.statSync(e,{bigint:!0}):Lo.statSync(e);try{r=zo()?Lo.statSync(t,{bigint:!0}):Lo.statSync(t)}catch(e){if("ENOENT"===e.code)return{srcStat:n,destStat:null};throw e}return{srcStat:n,destStat:r}}(e,t);if(u&&u.ino&&u.dev&&u.ino===r.ino&&u.dev===r.dev)throw new Error("Source and destination must not be the same.");if(r.isDirectory()&&Ko(e,t))throw new Error(qo(e,t,n));return{srcStat:r,destStat:u}},checkParentPaths:function e(t,n,r,u,o){const i=jo.resolve(jo.dirname(t)),s=jo.resolve(jo.dirname(r));if(s===i||s===jo.parse(s).root)return o();zo()?Lo.stat(s,{bigint:!0},((i,c)=>i?"ENOENT"===i.code?o():o(i):c.ino&&c.dev&&c.ino===n.ino&&c.dev===n.dev?o(new Error(qo(t,r,u))):e(t,n,s,u,o))):Lo.stat(s,((i,c)=>i?"ENOENT"===i.code?o():o(i):c.ino&&c.dev&&c.ino===n.ino&&c.dev===n.dev?o(new Error(qo(t,r,u))):e(t,n,s,u,o)))},checkParentPathsSync:function e(t,n,r,u){const o=jo.resolve(jo.dirname(t)),i=jo.resolve(jo.dirname(r));if(i===o||i===jo.parse(i).root)return;let s;try{s=zo()?Lo.statSync(i,{bigint:!0}):Lo.statSync(i)}catch(e){if("ENOENT"===e.code)return;throw e}if(s.ino&&s.dev&&s.ino===n.ino&&s.dev===n.dev)throw new Error(qo(t,r,u));return e(t,n,i,u)},isSrcSubdir:Ko};const Qo=we,ei=p.default,ti=Io.mkdirsSync,ni=Mo,ri=Zo;function ui(e,t,n,r){if(!r.filter||r.filter(t,n))return function(e,t,n,r){const u=r.dereference?Qo.statSync:Qo.lstatSync,o=u(t);if(o.isDirectory())return function(e,t,n,r,u){if(!t)return function(e,t,n,r){return Qo.mkdirSync(n),ii(t,n,r),Qo.chmodSync(n,e.mode)}(e,n,r,u);if(t&&!t.isDirectory())throw new Error(`Cannot overwrite non-directory '${r}' with directory '${n}'.`);return ii(n,r,u)}(o,e,t,n,r);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return function(e,t,n,r,u){return t?function(e,t,n,r){if(r.overwrite)return Qo.unlinkSync(n),oi(e,t,n,r);if(r.errorOnExist)throw new Error(`'${n}' already exists`)}(e,n,r,u):oi(e,n,r,u)}(o,e,t,n,r);if(o.isSymbolicLink())return function(e,t,n,r){let u=Qo.readlinkSync(t);r.dereference&&(u=ei.resolve(process.cwd(),u));if(e){let e;try{e=Qo.readlinkSync(n)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return Qo.symlinkSync(u,n);throw e}if(r.dereference&&(e=ei.resolve(process.cwd(),e)),ri.isSrcSubdir(u,e))throw new Error(`Cannot copy '${u}' to a subdirectory of itself, '${e}'.`);if(Qo.statSync(n).isDirectory()&&ri.isSrcSubdir(e,u))throw new Error(`Cannot overwrite '${e}' with '${u}'.`);return function(e,t){return Qo.unlinkSync(t),Qo.symlinkSync(e,t)}(u,n)}return Qo.symlinkSync(u,n)}(e,t,n,r)}(e,t,n,r)}function oi(e,t,n,r){return"function"==typeof Qo.copyFileSync?(Qo.copyFileSync(t,n),Qo.chmodSync(n,e.mode),r.preserveTimestamps?ni(n,e.atime,e.mtime):void 0):function(e,t,n,r){const u=65536,o=(Xo?Yo:(Xo=1,Yo=function(e){if("function"==typeof Buffer.allocUnsafe)try{return Buffer.allocUnsafe(e)}catch(t){return new Buffer(e)}return new Buffer(e)}))(u),i=Qo.openSync(t,"r"),s=Qo.openSync(n,"w",e.mode);let c=0;for(;cfunction(e,t,n,r){const u=ei.join(t,e),o=ei.join(n,e),{destStat:i}=ri.checkPathsSync(u,o,"copy");return ui(i,u,o,r)}(r,e,t,n)))}var si=function(e,t,n){"function"==typeof n&&(n={filter:n}),(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const{srcStat:r,destStat:u}=ri.checkPathsSync(e,t,"copy");return ri.checkParentPathsSync(e,r,t,"copy"),function(e,t,n,r){if(r.filter&&!r.filter(t,n))return;const u=ei.dirname(n);Qo.existsSync(u)||ti(u);return ui(e,t,n,r)}(u,e,t,n)},ci={copySync:si};const ai=yo.fromPromise,li=ho;var fi={pathExists:ai((function(e){return li.access(e).then((()=>!0)).catch((()=>!1))})),pathExistsSync:li.existsSync};const di=we,Di=p.default,pi=Io.mkdirs,Ei=fi.pathExists,mi=Ro,hi=Zo;function yi(e,t,n,r,u){const o=Di.dirname(n);Ei(o,((i,s)=>i?u(i):s?Fi(e,t,n,r,u):void pi(o,(o=>o?u(o):Fi(e,t,n,r,u)))))}function Ci(e,t,n,r,u,o){Promise.resolve(u.filter(n,r)).then((i=>i?e(t,n,r,u,o):o()),(e=>o(e)))}function Fi(e,t,n,r,u){return r.filter?Ci(gi,e,t,n,r,u):gi(e,t,n,r,u)}function gi(e,t,n,r,u){(r.dereference?di.stat:di.lstat)(t,((o,i)=>o?u(o):i.isDirectory()?function(e,t,n,r,u,o){if(!t)return function(e,t,n,r,u){di.mkdir(n,(o=>{if(o)return u(o);Si(t,n,r,(t=>t?u(t):di.chmod(n,e.mode,u)))}))}(e,n,r,u,o);if(t&&!t.isDirectory())return o(new Error(`Cannot overwrite non-directory '${r}' with directory '${n}'.`));return Si(n,r,u,o)}(i,e,t,n,r,u):i.isFile()||i.isCharacterDevice()||i.isBlockDevice()?function(e,t,n,r,u,o){return t?function(e,t,n,r,u){if(!r.overwrite)return r.errorOnExist?u(new Error(`'${n}' already exists`)):u();di.unlink(n,(o=>o?u(o):Ai(e,t,n,r,u)))}(e,n,r,u,o):Ai(e,n,r,u,o)}(i,e,t,n,r,u):i.isSymbolicLink()?function(e,t,n,r,u){di.readlink(t,((t,o)=>t?u(t):(r.dereference&&(o=Di.resolve(process.cwd(),o)),e?void di.readlink(n,((t,i)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?di.symlink(o,n,u):u(t):(r.dereference&&(i=Di.resolve(process.cwd(),i)),hi.isSrcSubdir(o,i)?u(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${i}'.`)):e.isDirectory()&&hi.isSrcSubdir(i,o)?u(new Error(`Cannot overwrite '${i}' with '${o}'.`)):function(e,t,n){di.unlink(t,(r=>r?n(r):di.symlink(e,t,n)))}(o,n,u)))):di.symlink(o,n,u))))}(e,t,n,r,u):void 0))}function Ai(e,t,n,r,u){return"function"==typeof di.copyFile?di.copyFile(t,n,(t=>t?u(t):vi(e,n,r,u))):function(e,t,n,r,u){const o=di.createReadStream(t);o.on("error",(e=>u(e))).once("open",(()=>{const t=di.createWriteStream(n,{mode:e.mode});t.on("error",(e=>u(e))).on("open",(()=>o.pipe(t))).once("close",(()=>vi(e,n,r,u)))}))}(e,t,n,r,u)}function vi(e,t,n,r){di.chmod(t,e.mode,(u=>u?r(u):n.preserveTimestamps?mi(t,e.atime,e.mtime,r):r()))}function Si(e,t,n,r){di.readdir(e,((u,o)=>u?r(u):wi(o,e,t,n,r)))}function wi(e,t,n,r,u){const o=e.pop();return o?function(e,t,n,r,u,o){const i=Di.join(n,t),s=Di.join(r,t);hi.checkPaths(i,s,"copy",((t,c)=>{if(t)return o(t);const{destStat:a}=c;Fi(a,i,s,u,(t=>t?o(t):wi(e,n,r,u,o)))}))}(e,o,t,n,r,u):u()}var Oi=function(e,t,n,r){"function"!=typeof n||r?"function"==typeof n&&(n={filter:n}):(r=n,n={}),r=r||function(){},(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),hi.checkPaths(e,t,"copy",((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;hi.checkParentPaths(e,i,t,"copy",(u=>u?r(u):n.filter?Ci(yi,s,e,t,n,r):yi(s,e,t,n,r)))}))};var bi={copy:(0,yo.fromCallback)(Oi)};const _i=we,Bi=p.default,Pi=g.default,ki="win32"===process.platform;function xi(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach((t=>{e[t]=e[t]||_i[t],e[t+="Sync"]=e[t]||_i[t]})),e.maxBusyTries=e.maxBusyTries||3}function Ni(e,t,n){let r=0;"function"==typeof t&&(n=t,t={}),Pi(e,"rimraf: missing path"),Pi.strictEqual(typeof e,"string","rimraf: path should be a string"),Pi.strictEqual(typeof n,"function","rimraf: callback function required"),Pi(t,"rimraf: invalid options argument provided"),Pi.strictEqual(typeof t,"object","rimraf: options should be object"),xi(t),Ii(e,t,(function u(o){if(o){if(("EBUSY"===o.code||"ENOTEMPTY"===o.code||"EPERM"===o.code)&&rIi(e,t,u)),100*r)}"ENOENT"===o.code&&(o=null)}n(o)}))}function Ii(e,t,n){Pi(e),Pi(t),Pi("function"==typeof n),t.lstat(e,((r,u)=>r&&"ENOENT"===r.code?n(null):r&&"EPERM"===r.code&&ki?Ti(e,t,r,n):u&&u.isDirectory()?Mi(e,t,r,n):void t.unlink(e,(r=>{if(r){if("ENOENT"===r.code)return n(null);if("EPERM"===r.code)return ki?Ti(e,t,r,n):Mi(e,t,r,n);if("EISDIR"===r.code)return Mi(e,t,r,n)}return n(r)}))))}function Ti(e,t,n,r){Pi(e),Pi(t),Pi("function"==typeof r),n&&Pi(n instanceof Error),t.chmod(e,438,(u=>{u?r("ENOENT"===u.code?null:n):t.stat(e,((u,o)=>{u?r("ENOENT"===u.code?null:n):o.isDirectory()?Mi(e,t,n,r):t.unlink(e,r)}))}))}function Ri(e,t,n){let r;Pi(e),Pi(t),n&&Pi(n instanceof Error);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw n}try{r=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw n}r.isDirectory()?ji(e,t,n):t.unlinkSync(e)}function Mi(e,t,n,r){Pi(e),Pi(t),n&&Pi(n instanceof Error),Pi("function"==typeof r),t.rmdir(e,(u=>{!u||"ENOTEMPTY"!==u.code&&"EEXIST"!==u.code&&"EPERM"!==u.code?u&&"ENOTDIR"===u.code?r(n):r(u):function(e,t,n){Pi(e),Pi(t),Pi("function"==typeof n),t.readdir(e,((r,u)=>{if(r)return n(r);let o,i=u.length;if(0===i)return t.rmdir(e,n);u.forEach((r=>{Ni(Bi.join(e,r),t,(r=>{if(!o)return r?n(o=r):void(0==--i&&t.rmdir(e,n))}))}))}))}(e,t,r)}))}function Li(e,t){let n;xi(t=t||{}),Pi(e,"rimraf: missing path"),Pi.strictEqual(typeof e,"string","rimraf: path should be a string"),Pi(t,"rimraf: missing options"),Pi.strictEqual(typeof t,"object","rimraf: options should be object");try{n=t.lstatSync(e)}catch(n){if("ENOENT"===n.code)return;"EPERM"===n.code&&ki&&Ri(e,t,n)}try{n&&n.isDirectory()?ji(e,t,null):t.unlinkSync(e)}catch(n){if("ENOENT"===n.code)return;if("EPERM"===n.code)return ki?Ri(e,t,n):ji(e,t,n);if("EISDIR"!==n.code)throw n;ji(e,t,n)}}function ji(e,t,n){Pi(e),Pi(t),n&&Pi(n instanceof Error);try{t.rmdirSync(e)}catch(r){if("ENOTDIR"===r.code)throw n;if("ENOTEMPTY"===r.code||"EEXIST"===r.code||"EPERM"===r.code)!function(e,t){if(Pi(e),Pi(t),t.readdirSync(e).forEach((n=>Li(Bi.join(e,n),t))),!ki){return t.rmdirSync(e,t)}{const n=Date.now();do{try{return t.rmdirSync(e,t)}catch(e){}}while(Date.now()-n<500)}}(e,t);else if("ENOENT"!==r.code)throw r}}var $i=Ni;Ni.sync=Li;const Hi=$i;var Ji={remove:(0,yo.fromCallback)(Hi),removeSync:Hi.sync};const Gi=yo.fromCallback,Vi=we,Ui=p.default,Wi=Io,zi=Ji,Ki=Gi((function(e,t){t=t||function(){},Vi.readdir(e,((n,r)=>{if(n)return Wi.mkdirs(e,t);r=r.map((t=>Ui.join(e,t))),function e(){const n=r.pop();if(!n)return t();zi.remove(n,(n=>{if(n)return t(n);e()}))}()}))}));function qi(e){let t;try{t=Vi.readdirSync(e)}catch(t){return Wi.mkdirsSync(e)}t.forEach((t=>{t=Ui.join(e,t),zi.removeSync(t)}))}var Yi={emptyDirSync:qi,emptydirSync:qi,emptyDir:Ki,emptydir:Ki};const Xi=yo.fromCallback,Zi=p.default,Qi=we,es=Io,ts=fi.pathExists;var ns={createFile:Xi((function(e,t){function n(){Qi.writeFile(e,"",(e=>{if(e)return t(e);t()}))}Qi.stat(e,((r,u)=>{if(!r&&u.isFile())return t();const o=Zi.dirname(e);ts(o,((e,r)=>e?t(e):r?n():void es.mkdirs(o,(e=>{if(e)return t(e);n()}))))}))})),createFileSync:function(e){let t;try{t=Qi.statSync(e)}catch(e){}if(t&&t.isFile())return;const n=Zi.dirname(e);Qi.existsSync(n)||es.mkdirsSync(n),Qi.writeFileSync(e,"")}};const rs=yo.fromCallback,us=p.default,os=we,is=Io,ss=fi.pathExists;var cs={createLink:rs((function(e,t,n){function r(e,t){os.link(e,t,(e=>{if(e)return n(e);n(null)}))}ss(t,((u,o)=>u?n(u):o?n(null):void os.lstat(e,(u=>{if(u)return u.message=u.message.replace("lstat","ensureLink"),n(u);const o=us.dirname(t);ss(o,((u,i)=>u?n(u):i?r(e,t):void is.mkdirs(o,(u=>{if(u)return n(u);r(e,t)}))))}))))})),createLinkSync:function(e,t){if(os.existsSync(t))return;try{os.lstatSync(e)}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const n=us.dirname(t);return os.existsSync(n)||is.mkdirsSync(n),os.linkSync(e,t)}};const as=p.default,ls=we,fs=fi.pathExists;var ds={symlinkPaths:function(e,t,n){if(as.isAbsolute(e))return ls.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:e})));{const r=as.dirname(t),u=as.join(r,e);return fs(u,((t,o)=>t?n(t):o?n(null,{toCwd:u,toDst:e}):ls.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:as.relative(r,e)})))))}},symlinkPathsSync:function(e,t){let n;if(as.isAbsolute(e)){if(n=ls.existsSync(e),!n)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const r=as.dirname(t),u=as.join(r,e);if(n=ls.existsSync(u),n)return{toCwd:u,toDst:e};if(n=ls.existsSync(e),!n)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:as.relative(r,e)}}}};const Ds=we;var ps={symlinkType:function(e,t,n){if(n="function"==typeof t?t:n,t="function"!=typeof t&&t)return n(null,t);Ds.lstat(e,((e,r)=>{if(e)return n(null,"file");t=r&&r.isDirectory()?"dir":"file",n(null,t)}))},symlinkTypeSync:function(e,t){let n;if(t)return t;try{n=Ds.lstatSync(e)}catch(e){return"file"}return n&&n.isDirectory()?"dir":"file"}};const Es=yo.fromCallback,ms=p.default,hs=we,ys=Io.mkdirs,Cs=Io.mkdirsSync,Fs=ds.symlinkPaths,gs=ds.symlinkPathsSync,As=ps.symlinkType,vs=ps.symlinkTypeSync,Ss=fi.pathExists;var ws={createSymlink:Es((function(e,t,n,r){r="function"==typeof n?n:r,n="function"!=typeof n&&n,Ss(t,((u,o)=>u?r(u):o?r(null):void Fs(e,t,((u,o)=>{if(u)return r(u);e=o.toDst,As(o.toCwd,n,((n,u)=>{if(n)return r(n);const o=ms.dirname(t);Ss(o,((n,i)=>n?r(n):i?hs.symlink(e,t,u,r):void ys(o,(n=>{if(n)return r(n);hs.symlink(e,t,u,r)}))))}))}))))})),createSymlinkSync:function(e,t,n){if(hs.existsSync(t))return;const r=gs(e,t);e=r.toDst,n=vs(r.toCwd,n);const u=ms.dirname(t);return hs.existsSync(u)||Cs(u),hs.symlinkSync(e,t,n)}};var Os,bs={createFile:ns.createFile,createFileSync:ns.createFileSync,ensureFile:ns.createFile,ensureFileSync:ns.createFileSync,createLink:cs.createLink,createLinkSync:cs.createLinkSync,ensureLink:cs.createLink,ensureLinkSync:cs.createLinkSync,createSymlink:ws.createSymlink,createSymlinkSync:ws.createSymlinkSync,ensureSymlink:ws.createSymlink,ensureSymlinkSync:ws.createSymlinkSync};try{Os=we}catch(e){Os=D.default}function _s(e,t){var n,r="\n";return"object"==typeof t&&null!==t&&(t.spaces&&(n=t.spaces),t.EOL&&(r=t.EOL)),JSON.stringify(e,t?t.replacer:null,n).replace(/\n/g,r)+r}function Bs(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,"")}var Ps={readFile:function(e,t,n){null==n&&(n=t,t={}),"string"==typeof t&&(t={encoding:t});var r=(t=t||{}).fs||Os,u=!0;"throws"in t&&(u=t.throws),r.readFile(e,t,(function(r,o){if(r)return n(r);var i;o=Bs(o);try{i=JSON.parse(o,t?t.reviver:null)}catch(t){return u?(t.message=e+": "+t.message,n(t)):n(null,null)}n(null,i)}))},readFileSync:function(e,t){"string"==typeof(t=t||{})&&(t={encoding:t});var n=t.fs||Os,r=!0;"throws"in t&&(r=t.throws);try{var u=n.readFileSync(e,t);return u=Bs(u),JSON.parse(u,t.reviver)}catch(t){if(r)throw t.message=e+": "+t.message,t;return null}},writeFile:function(e,t,n,r){null==r&&(r=n,n={});var u=(n=n||{}).fs||Os,o="";try{o=_s(t,n)}catch(e){return void(r&&r(e,null))}u.writeFile(e,o,n,r)},writeFileSync:function(e,t,n){var r=(n=n||{}).fs||Os,u=_s(t,n);return r.writeFileSync(e,u,n)}},ks=Ps;const xs=yo.fromCallback,Ns=ks;var Is={readJson:xs(Ns.readFile),readJsonSync:Ns.readFileSync,writeJson:xs(Ns.writeFile),writeJsonSync:Ns.writeFileSync};const Ts=p.default,Rs=Io,Ms=fi.pathExists,Ls=Is;var js=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=Ts.dirname(e);Ms(u,((o,i)=>o?r(o):i?Ls.writeJson(e,t,n,r):void Rs.mkdirs(u,(u=>{if(u)return r(u);Ls.writeJson(e,t,n,r)}))))};const $s=we,Hs=p.default,Js=Io,Gs=Is;var Vs=function(e,t,n){const r=Hs.dirname(e);$s.existsSync(r)||Js.mkdirsSync(r),Gs.writeJsonSync(e,t,n)};const Us=yo.fromCallback,Ws=Is;Ws.outputJson=Us(js),Ws.outputJsonSync=Vs,Ws.outputJSON=Ws.outputJson,Ws.outputJSONSync=Ws.outputJsonSync,Ws.writeJSON=Ws.writeJson,Ws.writeJSONSync=Ws.writeJsonSync,Ws.readJSON=Ws.readJson,Ws.readJSONSync=Ws.readJsonSync;var zs=Ws;const Ks=we,qs=p.default,Ys=ci.copySync,Xs=Ji.removeSync,Zs=Io.mkdirpSync,Qs=Zo;function ec(e,t,n){try{Ks.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;return function(e,t,n){const r={overwrite:n,errorOnExist:!0};return Ys(e,t,r),Xs(e)}(e,t,n)}}var tc=function(e,t,n){const r=(n=n||{}).overwrite||n.clobber||!1,{srcStat:u}=Qs.checkPathsSync(e,t,"move");return Qs.checkParentPathsSync(e,u,t,"move"),Zs(qs.dirname(t)),function(e,t,n){if(n)return Xs(t),ec(e,t,n);if(Ks.existsSync(t))throw new Error("dest already exists.");return ec(e,t,n)}(e,t,r)},nc={moveSync:tc};const rc=we,uc=p.default,oc=bi.copy,ic=Ji.remove,sc=Io.mkdirp,cc=fi.pathExists,ac=Zo;function lc(e,t,n,r){rc.rename(e,t,(u=>u?"EXDEV"!==u.code?r(u):function(e,t,n,r){const u={overwrite:n,errorOnExist:!0};oc(e,t,u,(t=>t?r(t):ic(e,r)))}(e,t,n,r):r()))}var fc=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=n.overwrite||n.clobber||!1;ac.checkPaths(e,t,"move",((n,o)=>{if(n)return r(n);const{srcStat:i}=o;ac.checkParentPaths(e,i,t,"move",(n=>{if(n)return r(n);sc(uc.dirname(t),(n=>n?r(n):function(e,t,n,r){if(n)return ic(t,(u=>u?r(u):lc(e,t,n,r)));cc(t,((u,o)=>u?r(u):o?r(new Error("dest already exists.")):lc(e,t,n,r)))}(e,t,u,r)))}))}))};var dc={move:(0,yo.fromCallback)(fc)};const Dc=yo.fromCallback,pc=we,Ec=p.default,mc=Io,hc=fi.pathExists;var yc={outputFile:Dc((function(e,t,n,r){"function"==typeof n&&(r=n,n="utf8");const u=Ec.dirname(e);hc(u,((o,i)=>o?r(o):i?pc.writeFile(e,t,n,r):void mc.mkdirs(u,(u=>{if(u)return r(u);pc.writeFile(e,t,n,r)}))))})),outputFileSync:function(e,...t){const n=Ec.dirname(e);if(pc.existsSync(n))return pc.writeFileSync(e,...t);mc.mkdirsSync(n),pc.writeFileSync(e,...t)}};!function(e){e.exports=Object.assign({},ho,ci,bi,Yi,bs,zs,Io,nc,dc,yc,fi,Ji);const t=D.default;Object.getOwnPropertyDescriptor(t,"promises")&&Object.defineProperty(e.exports,"promises",{get:()=>t.promises})}(mo);const Cc=Nr.exports("streamroller:fileNameFormatter"),Fc=p.default;const gc=Nr.exports("streamroller:fileNameParser"),Ac=nu.exports;const vc=Nr.exports("streamroller:moveAndMaybeCompressFile"),Sc=mo.exports,wc=v.default;var Oc=async(e,t,n)=>{if(n=function(e){const t={mode:parseInt("0600",8),compress:!1},n=Object.assign({},t,e);return vc(`_parseOption: moveAndMaybeCompressFile called with option=${JSON.stringify(n)}`),n}(n),e!==t){if(await Sc.pathExists(e))if(vc(`moveAndMaybeCompressFile: moving file from ${e} to ${t} ${n.compress?"with":"without"} compress`),n.compress)await new Promise(((r,u)=>{let o=!1;const i=Sc.createWriteStream(t,{mode:n.mode,flags:"wx"}).on("open",(()=>{o=!0;const t=Sc.createReadStream(e).on("open",(()=>{t.pipe(wc.createGzip()).pipe(i)})).on("error",(t=>{vc(`moveAndMaybeCompressFile: error reading ${e}`,t),i.destroy(t)}))})).on("finish",(()=>{vc(`moveAndMaybeCompressFile: finished compressing ${t}, deleting ${e}`),Sc.unlink(e).then(r).catch((t=>{vc(`moveAndMaybeCompressFile: error deleting ${e}, truncating instead`,t),Sc.truncate(e).then(r).catch((t=>{vc(`moveAndMaybeCompressFile: error truncating ${e}`,t),u(t)}))}))})).on("error",(e=>{o?(vc(`moveAndMaybeCompressFile: error writing ${t}, deleting`,e),Sc.unlink(t).then((()=>{u(e)})).catch((e=>{vc(`moveAndMaybeCompressFile: error deleting ${t}`,e),u(e)}))):(vc(`moveAndMaybeCompressFile: error creating ${t}`,e),u(e))}))})).catch((()=>{}));else{vc(`moveAndMaybeCompressFile: renaming ${e} to ${t}`);try{await Sc.move(e,t,{overwrite:!0})}catch(n){if(vc(`moveAndMaybeCompressFile: error renaming ${e} to ${t}`,n),"ENOENT"!==n.code){vc("moveAndMaybeCompressFile: trying copy+truncate instead");try{await Sc.copy(e,t,{overwrite:!0}),await Sc.truncate(e)}catch(e){vc("moveAndMaybeCompressFile: error copy+truncate",e)}}}}}else vc("moveAndMaybeCompressFile: source and target are the same, not doing anything")};const bc=Nr.exports("streamroller:RollingFileWriteStream"),_c=mo.exports,Bc=p.default,Pc=E.default,kc=()=>new Date,xc=nu.exports,{Writable:Nc}=C.default,Ic=({file:e,keepFileExt:t,needsIndex:n,alwaysIncludeDate:r,compress:u,fileNameSep:o})=>{let i=o||".";const s=Fc.join(e.dir,e.name),c=t=>t+e.ext,a=(e,t,r)=>!n&&r||!t?e:e+i+t,l=(e,t,n)=>(t>0||r)&&n?e+i+n:e,f=(e,t)=>t&&u?e+".gz":e,d=t?[l,a,c,f]:[c,l,a,f];return({date:e,index:t})=>(Cc(`_formatFileName: date=${e}, index=${t}`),d.reduce(((n,r)=>r(n,t,e)),s))},Tc=({file:e,keepFileExt:t,pattern:n,fileNameSep:r})=>{let u=r||".";const o="__NOT_MATCHING__";let i=[(e,t)=>e.endsWith(".gz")?(gc("it is gzipped"),t.isCompressed=!0,e.slice(0,-1*".gz".length)):e,t?t=>t.startsWith(e.name)&&t.endsWith(e.ext)?(gc("it starts and ends with the right things"),t.slice(e.name.length+1,-1*e.ext.length)):o:t=>t.startsWith(e.base)?(gc("it starts with the right things"),t.slice(e.base.length+1)):o,n?(e,t)=>{const r=e.split(u);let o=r[r.length-1];gc("items: ",r,", indexStr: ",o);let i=e;void 0!==o&&o.match(/^\d+$/)?(i=e.slice(0,-1*(o.length+1)),gc(`dateStr is ${i}`),n&&!i&&(i=o,o="0")):o="0";try{const r=Ac.parse(n,i,new Date(0,0));return Ac.asString(n,r)!==i?e:(t.index=parseInt(o,10),t.date=i,t.timestamp=r.getTime(),"")}catch(t){return gc(`Problem parsing ${i} as ${n}, error was: `,t),e}}:(e,t)=>e.match(/^\d+$/)?(gc("it has an index"),t.index=parseInt(e,10),""):e];return e=>{let t={filename:e,index:0,isCompressed:!1};return i.reduce(((e,n)=>n(e,t)),e)?null:t}},Rc=Oc;var Mc=class extends Nc{constructor(e,t){if(bc(`constructor: creating RollingFileWriteStream. path=${e}`),"string"!=typeof e||0===e.length)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(Bc.sep))throw new Error(`Filename is a directory: ${e}`);0===e.indexOf(`~${Bc.sep}`)&&(e=e.replace("~",Pc.homedir())),super(t),this.options=this._parseOption(t),this.fileObject=Bc.parse(e),""===this.fileObject.dir&&(this.fileObject=Bc.parse(Bc.join(process.cwd(),e))),this.fileFormatter=Ic({file:this.fileObject,alwaysIncludeDate:this.options.alwaysIncludePattern,needsIndex:this.options.maxSize 0`)}else delete n.maxSize;if(n.numBackups||0===n.numBackups){if(n.numBackups<0)throw new Error(`options.numBackups (${n.numBackups}) should be >= 0`);if(n.numBackups>=Number.MAX_SAFE_INTEGER)throw new Error(`options.numBackups (${n.numBackups}) should be < Number.MAX_SAFE_INTEGER`);n.numToKeep=n.numBackups+1}else if(n.numToKeep<=0)throw new Error(`options.numToKeep (${n.numToKeep}) should be > 0`);return bc(`_parseOption: creating stream with option=${JSON.stringify(n)}`),n}_final(e){this.currentFileStream.end("",this.options.encoding,e)}_write(e,t,n){this._shouldRoll().then((()=>{bc(`_write: writing chunk. file=${this.currentFileStream.path} state=${JSON.stringify(this.state)} chunk=${e}`),this.currentFileStream.write(e,t,(t=>{this.state.currentSize+=e.length,n(t)}))}))}async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(bc(`_shouldRoll: rolling because dateChanged? ${this._dateChanged()} or tooBig? ${this._tooBig()}`),await this._roll())}_dateChanged(){return this.state.currentDate&&this.state.currentDate!==xc(this.options.pattern,kc())}_tooBig(){return this.state.currentSize>=this.options.maxSize}_roll(){return bc("_roll: closing the current stream"),new Promise(((e,t)=>{this.currentFileStream.end("",this.options.encoding,(()=>{this._moveOldFiles().then(e).catch(t)}))}))}async _moveOldFiles(){const e=await this._getExistingFiles();for(let t=(this.state.currentDate?e.filter((e=>e.date===this.state.currentDate)):e).length;t>=0;t--){bc(`_moveOldFiles: i = ${t}`);const e=this.fileFormatter({date:this.state.currentDate,index:t}),n=this.fileFormatter({date:this.state.currentDate,index:t+1}),r={compress:this.options.compress&&0===t,mode:this.options.mode};await Rc(e,n,r)}this.state.currentSize=0,this.state.currentDate=this.state.currentDate?xc(this.options.pattern,kc()):null,bc(`_moveOldFiles: finished rolling files. state=${JSON.stringify(this.state)}`),this._renewWriteStream(),await new Promise(((e,t)=>{this.currentFileStream.write("","utf8",(()=>{this._clean().then(e).catch(t)}))}))}async _getExistingFiles(){const e=await _c.readdir(this.fileObject.dir).catch((()=>[]));bc(`_getExistingFiles: files=${e}`);const t=e.map((e=>this.fileNameParser(e))).filter((e=>e)),n=e=>(e.timestamp?e.timestamp:kc().getTime())-e.index;return t.sort(((e,t)=>n(e)-n(t))),t}_renewWriteStream(){const e=this.fileFormatter({date:this.state.currentDate,index:0}),t=e=>{try{return _c.mkdirSync(e,{recursive:!0})}catch(n){if("ENOENT"===n.code)return t(Bc.dirname(e)),t(e);if("EEXIST"!==n.code&&"EROFS"!==n.code)throw n;try{if(_c.statSync(e).isDirectory())return e;throw n}catch(e){throw n}}};t(this.fileObject.dir);const n={flags:this.options.flags,encoding:this.options.encoding,mode:this.options.mode};var r,u;_c.appendFileSync(e,"",(r={...n},u="flags",r["flag"]=r[u],delete r[u],r)),this.currentFileStream=_c.createWriteStream(e,n),this.currentFileStream.on("error",(e=>{this.emit("error",e)}))}async _clean(){const e=await this._getExistingFiles();if(bc(`_clean: numToKeep = ${this.options.numToKeep}, existingFiles = ${e.length}`),bc("_clean: existing files are: ",e),this._tooManyFiles(e.length)){const n=e.slice(0,e.length-this.options.numToKeep).map((e=>Bc.format({dir:this.fileObject.dir,base:e.filename})));await(t=n,bc(`deleteFiles: files to delete: ${t}`),Promise.all(t.map((e=>_c.unlink(e).catch((t=>{bc(`deleteFiles: error when unlinking ${e}, ignoring. Error was ${t}`)}))))))}var t}_tooManyFiles(e){return this.options.numToKeep>0&&e>this.options.numToKeep}};const Lc=Mc;var jc=class extends Lc{constructor(e,t,n,r){r||(r={}),t&&(r.maxSize=t),r.numBackups||0===r.numBackups||(n||0===n||(n=1),r.numBackups=n),super(e,r),this.backups=r.numBackups,this.size=this.options.maxSize}get theStream(){return this.currentFileStream}};const $c=Mc;var Hc={RollingFileWriteStream:Mc,RollingFileStream:jc,DateRollingFileStream:class extends $c{constructor(e,t,n){t&&"object"==typeof t&&(n=t,t=null),n||(n={}),t||(t="yyyy-MM-dd"),n.pattern=t,n.numBackups||0===n.numBackups?n.daysToKeep=n.numBackups:(n.daysToKeep||0===n.daysToKeep?process.emitWarning("options.daysToKeep is deprecated due to the confusion it causes when used together with file size rolling. Please use options.numBackups instead.","DeprecationWarning","streamroller-DEP0001"):n.daysToKeep=1,n.numBackups=n.daysToKeep),super(e,n),this.mode=this.options.mode}get theStream(){return this.currentFileStream}}};const Jc=Nr.exports("log4js:file"),Gc=p.default,Vc=Hc,Uc=E.default.EOL;let Wc=!1;const zc=new Set;function Kc(){zc.forEach((e=>{e.sighupHandler()}))}function qc(e,t,n,r){const u=new Vc.RollingFileStream(e,t,n,r);return u.on("error",(t=>{console.error("log4js.fileAppender - Writing to file %s, error happened ",e,t)})),u.on("drain",(()=>{process.emit("log4js:pause",!1)})),u}Eo.configure=function(e,t){let n=t.basicLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),e.mode=e.mode||384,function(e,t,n,r,u,o){e=Gc.normalize(e),Jc("Creating file appender (",e,", ",n,", ",r=r||0===r?r:5,", ",u,", ",o,")");let i=qc(e,n,r,u);const s=function(e){if(i.writable){if(!0===u.removeColor){const t=/\x1b[[0-9;]*m/g;e.data=e.data.map((e=>"string"==typeof e?e.replace(t,""):e))}i.write(t(e,o)+Uc,"utf8")||process.emit("log4js:pause",!0)}};return s.reopen=function(){i.end((()=>{i=qc(e,n,r,u)}))},s.sighupHandler=function(){Jc("SIGHUP handler called."),s.reopen()},s.shutdown=function(e){zc.delete(s),0===zc.size&&Wc&&(process.removeListener("SIGHUP",Kc),Wc=!1),i.end("","utf-8",e)},zc.add(s),Wc||(process.on("SIGHUP",Kc),Wc=!0),s}(e.filename,n,e.maxLogSize,e.backups,e,e.timezoneOffset)};var Yc={};const Xc=Hc,Zc=E.default.EOL;function Qc(e,t,n,r,u){r.maxSize=r.maxLogSize;const o=function(e,t,n){const r=new Xc.DateRollingFileStream(e,t,n);return r.on("error",(t=>{console.error("log4js.dateFileAppender - Writing to file %s, error happened ",e,t)})),r.on("drain",(()=>{process.emit("log4js:pause",!1)})),r}(e,t,r),i=function(e){o.writable&&(o.write(n(e,u)+Zc,"utf8")||process.emit("log4js:pause",!0))};return i.shutdown=function(e){o.end("","utf-8",e)},i}Yc.configure=function(e,t){let n=t.basicLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),e.alwaysIncludePattern||(e.alwaysIncludePattern=!1),e.mode=e.mode||384,Qc(e.filename,e.pattern,n,e,e.timezoneOffset)};var ea={};const ta=Nr.exports("log4js:fileSync"),na=p.default,ra=D.default,ua=E.default.EOL||"\n";function oa(e,t){if(ra.existsSync(e))return;const n=ra.openSync(e,t.flags,t.mode);ra.closeSync(n)}class ia{constructor(e,t,n,r){ta("In RollingFileStream"),function(){if(!e||!t||t<=0)throw new Error("You must specify a filename and file size")}(),this.filename=e,this.size=t,this.backups=n,this.options=r,this.currentSize=0,this.currentSize=function(e){let t=0;try{t=ra.statSync(e).size}catch(t){oa(e,r)}return t}(this.filename)}shouldRoll(){return ta("should roll with current size %d, and max size %d",this.currentSize,this.size),this.currentSize>=this.size}roll(e){const t=this,n=new RegExp(`^${na.basename(e)}`);function r(e){return n.test(e)}function u(t){return parseInt(t.substring(`${na.basename(e)}.`.length),10)||0}function o(e,t){return u(e)>u(t)?1:u(e) ${e}.${r+1}`),ra.renameSync(na.join(na.dirname(e),n),`${e}.${r+1}`)}}ta("Rolling, rolling, rolling"),ta("Renaming the old files"),ra.readdirSync(na.dirname(e)).filter(r).sort(o).reverse().forEach(i)}write(e,t){const n=this;ta("in write"),this.shouldRoll()&&(this.currentSize=0,this.roll(this.filename)),ta("writing the chunk to the file"),n.currentSize+=e.length,ra.appendFileSync(n.filename,e)}}ea.configure=function(e,t){let n=t.basicLayout;e.layout&&(n=t.layout(e.layout.type,e.layout));const r={flags:e.flags||"a",encoding:e.encoding||"utf8",mode:e.mode||384};return function(e,t,n,r,u,o){ta("fileSync appender created");const i=function(e,t,n){let r;var u;return t?r=new ia(e,t,n,o):(oa(u=e,o),r={write(e){ra.appendFileSync(u,e)}}),r}(e=na.normalize(e),n,r=r||0===r?r:5);return e=>{i.write(t(e,u)+ua)}}(e.filename,n,e.maxLogSize,e.backups,e.timezoneOffset,r)};var sa={};const ca=Nr.exports("log4js:tcp"),aa=S.default;sa.configure=function(e,t){ca(`configure with config = ${e}`);let n=function(e){return e.serialise()};return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){let n=!1;const r=[];let u,o=3,i="__LOG4JS__";function s(e){ca("Writing log event to socket"),n=u.write(`${t(e)}${i}`,"utf8")}function c(){let e;for(ca("emptying buffer");e=r.shift();)s(e)}function a(e){n?s(e):(ca("buffering log event because it cannot write at the moment"),r.push(e))}return function t(){ca(`appender creating socket to ${e.host||"localhost"}:${e.port||5e3}`),i=`${e.endMsg||"__LOG4JS__"}`,u=aa.createConnection(e.port||5e3,e.host||"localhost"),u.on("connect",(()=>{ca("socket connected"),c(),n=!0})),u.on("drain",(()=>{ca("drain event received, emptying buffer"),n=!0,c()})),u.on("timeout",u.end.bind(u)),u.on("error",(e=>{ca("connection error",e),n=!1,c()})),u.on("close",t)}(),a.shutdown=function(e){ca("shutdown called"),r.length&&o?(ca("buffer has items, waiting 100ms to empty"),o-=1,setTimeout((()=>{a.shutdown(e)}),100)):(u.removeAllListeners("close"),u.end(e))},a}(e,n)};const la=p.default,fa=Nr.exports("log4js:appenders"),da=tu,Da=eo,pa=gu,Ea=hu,ma=to,ha=new Map;ha.set("console",oo),ha.set("stdout",so),ha.set("stderr",co),ha.set("logLevelFilter",ao),ha.set("categoryFilter",lo),ha.set("noLogFilter",Do),ha.set("file",Eo),ha.set("dateFile",Yc),ha.set("fileSync",ea),ha.set("tcp",sa);const ya=new Map,Ca=(e,t)=>{fa("Loading module from ",e);try{return require(e)}catch(n){return void da.throwExceptionIf(t,"MODULE_NOT_FOUND"!==n.code,`appender "${e}" could not be loaded (error was: ${n})`)}},Fa=new Set,ga=(e,t)=>{if(ya.has(e))return ya.get(e);if(!t.appenders[e])return!1;if(Fa.has(e))throw new Error(`Dependency loop detected for appender ${e}.`);Fa.add(e),fa(`Creating appender ${e}`);const n=Aa(e,t);return Fa.delete(e),ya.set(e,n),n},Aa=(e,t)=>{const n=t.appenders[e],r=n.type.configure?n.type:((e,t)=>ha.get(e)||Ca(`./${e}`,t)||Ca(e,t)||require.main&&Ca(la.join(la.dirname(require.main.filename),e),t)||Ca(la.join(process.cwd(),e),t))(n.type,t);return da.throwExceptionIf(t,da.not(r),`appender "${e}" is not valid (type "${n.type}" could not be found)`),r.appender&&fa(`DEPRECATION: Appender ${n.type} exports an appender function.`),r.shutdown&&fa(`DEPRECATION: Appender ${n.type} exports a shutdown function.`),fa(`${e}: clustering.isMaster ? ${Da.isMaster()}`),fa(`${e}: appenderModule is ${F.default.inspect(r)}`),Da.onlyOnMaster((()=>(fa(`calling appenderModule.configure for ${e} / ${n.type}`),r.configure(ma.modifyConfig(n),Ea,(e=>ga(e,t)),pa))),(()=>{}))},va=e=>{ya.clear(),Fa.clear();const t=[];Object.values(e.categories).forEach((e=>{t.push(...e.appenders)})),Object.keys(e.appenders).forEach((n=>{(t.includes(n)||"tcp-server"===e.appenders[n].type)&&ga(n,e)}))},Sa=()=>{va({appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"trace"}}})};Sa(),da.addListener((e=>{da.throwExceptionIf(e,da.not(da.anObject(e.appenders)),'must have a property "appenders" of type object.');const t=Object.keys(e.appenders);da.throwExceptionIf(e,da.not(t.length),"must define at least one appender."),t.forEach((t=>{da.throwExceptionIf(e,da.not(e.appenders[t].type),`appender "${t}" is not valid (must be an object with property "type")`)}))})),da.addListener(va),Au.exports=ya,Au.exports.init=Sa;var wa={exports:{}};!function(e){const t=Nr.exports("log4js:categories"),n=tu,r=gu,u=Au.exports,o=new Map;function i(e,t,n){if(!1===t.inherit)return;const r=n.lastIndexOf(".");if(r<0)return;const u=n.substring(0,r);let o=e.categories[u];o||(o={inherit:!0,appenders:[]}),i(e,o,u),!e.categories[u]&&o.appenders&&o.appenders.length&&o.level&&(e.categories[u]=o),t.appenders=t.appenders||[],t.level=t.level||o.level,o.appenders.forEach((e=>{t.appenders.includes(e)||t.appenders.push(e)})),t.parent=o}function s(e){if(!e.categories)return;Object.keys(e.categories).forEach((t=>{const n=e.categories[t];i(e,n,t)}))}n.addPreProcessingListener((e=>s(e))),n.addListener((e=>{n.throwExceptionIf(e,n.not(n.anObject(e.categories)),'must have a property "categories" of type object.');const t=Object.keys(e.categories);n.throwExceptionIf(e,n.not(t.length),"must define at least one category."),t.forEach((t=>{const o=e.categories[t];n.throwExceptionIf(e,[n.not(o.appenders),n.not(o.level)],`category "${t}" is not valid (must be an object with properties "appenders" and "level")`),n.throwExceptionIf(e,n.not(Array.isArray(o.appenders)),`category "${t}" is not valid (appenders must be an array of appender names)`),n.throwExceptionIf(e,n.not(o.appenders.length),`category "${t}" is not valid (appenders must contain at least one appender name)`),Object.prototype.hasOwnProperty.call(o,"enableCallStack")&&n.throwExceptionIf(e,"boolean"!=typeof o.enableCallStack,`category "${t}" is not valid (enableCallStack must be boolean type)`),o.appenders.forEach((r=>{n.throwExceptionIf(e,n.not(u.get(r)),`category "${t}" is not valid (appender "${r}" is not defined)`)})),n.throwExceptionIf(e,n.not(r.getLevel(o.level)),`category "${t}" is not valid (level "${o.level}" not recognised; valid levels are ${r.levels.join(", ")})`)})),n.throwExceptionIf(e,n.not(e.categories.default),'must define a "default" category.')}));const c=e=>{o.clear();Object.keys(e.categories).forEach((n=>{const i=e.categories[n],s=[];i.appenders.forEach((e=>{s.push(u.get(e)),t(`Creating category ${n}`),o.set(n,{appenders:s,level:r.getLevel(i.level),enableCallStack:i.enableCallStack||!1})}))}))},a=()=>{c({categories:{default:{appenders:["out"],level:"OFF"}}})};a(),n.addListener(c);const l=e=>(t(`configForCategory: searching for config for ${e}`),o.has(e)?(t(`configForCategory: ${e} exists in config, returning it`),o.get(e)):e.indexOf(".")>0?(t(`configForCategory: ${e} has hierarchy, searching for parents`),l(e.substring(0,e.lastIndexOf(".")))):(t("configForCategory: returning config for default category"),l("default")));e.exports=o,e.exports=Object.assign(e.exports,{appendersForCategory:e=>l(e).appenders,getLevelForCategory:e=>l(e).level,setLevelForCategory:(e,n)=>{let r=o.get(e);if(t(`setLevelForCategory: found ${r} for ${e}`),!r){const n=l(e);t(`setLevelForCategory: no config found for category, found ${n} for parents of ${e}`),r={appenders:n.appenders}}r.level=n,o.set(e,r)},getEnableCallStackForCategory:e=>!0===l(e).enableCallStack,setEnableCallStackForCategory:(e,t)=>{l(e).enableCallStack=t},init:a})}(wa);const Oa=Nr.exports("log4js:logger"),ba=Hu,_a=gu,Ba=eo,Pa=wa.exports,ka=tu,xa=/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/;function Na(e,t=4){const n=e.stack.split("\n").slice(t),r=xa.exec(n[0]);return r&&6===r.length?{functionName:r[1],fileName:r[2],lineNumber:parseInt(r[3],10),columnNumber:parseInt(r[4],10),callStack:n.join("\n")}:null}class Ia{constructor(e){if(!e)throw new Error("No category provided.");this.category=e,this.context={},this.parseCallStack=Na,Oa(`Logger created (${this.category}, ${this.level})`)}get level(){return _a.getLevel(Pa.getLevelForCategory(this.category),_a.TRACE)}set level(e){Pa.setLevelForCategory(this.category,_a.getLevel(e,this.level))}get useCallStack(){return Pa.getEnableCallStackForCategory(this.category)}set useCallStack(e){Pa.setEnableCallStackForCategory(this.category,!0===e)}log(e,...t){let n=_a.getLevel(e);n||(this._log(_a.WARN,"log4js:logger.log: invalid value for log-level as first parameter given: ",e),n=_a.INFO),this.isLevelEnabled(n)&&this._log(n,t)}isLevelEnabled(e){return this.level.isLessThanOrEqualTo(e)}_log(e,t){Oa(`sending log data (${e}) to appenders`);const n=new ba(this.category,e,t,this.context,this.useCallStack&&this.parseCallStack(new Error));Ba.send(n)}addContext(e,t){this.context[e]=t}removeContext(e){delete this.context[e]}clearContext(){this.context={}}setParseCallStackFunction(e){this.parseCallStack=e}}function Ta(e){const t=_a.getLevel(e),n=t.toString().toLowerCase().replace(/_([a-z])/g,(e=>e[1].toUpperCase())),r=n[0].toUpperCase()+n.slice(1);Ia.prototype[`is${r}Enabled`]=function(){return this.isLevelEnabled(t)},Ia.prototype[n]=function(...e){this.log(t,...e)}}_a.levels.forEach(Ta),ka.addListener((()=>{_a.levels.forEach(Ta)}));var Ra=Ia;const Ma=gu;function La(e){return e.originalUrl||e.url}function ja(e,t){for(let n=0;ne.source?e.source:e));t=new RegExp(n.join("|"))}return t}(t.nolog);return(e,i,s)=>{if(e._logging)return s();if(o&&o.test(e.originalUrl))return s();if(n.isLevelEnabled(r)||"auto"===t.level){const o=new Date,{writeHead:s}=i;e._logging=!0,i.writeHead=(e,t)=>{i.writeHead=s,i.writeHead(e,t),i.__statusCode=e,i.__headers=t||{}},i.on("finish",(()=>{i.responseTime=new Date-o,i.statusCode&&"auto"===t.level&&(r=Ma.INFO,i.statusCode>=300&&(r=Ma.WARN),i.statusCode>=400&&(r=Ma.ERROR)),r=function(e,t,n){let r=t;if(n){const t=n.find((t=>{let n=!1;return n=t.from&&t.to?e>=t.from&&e<=t.to:-1!==t.codes.indexOf(e),n}));t&&(r=Ma.getLevel(t.level,r))}return r}(i.statusCode,r,t.statusRules);const s=function(e,t,n){const r=[];return r.push({token:":url",replacement:La(e)}),r.push({token:":protocol",replacement:e.protocol}),r.push({token:":hostname",replacement:e.hostname}),r.push({token:":method",replacement:e.method}),r.push({token:":status",replacement:t.__statusCode||t.statusCode}),r.push({token:":response-time",replacement:t.responseTime}),r.push({token:":date",replacement:(new Date).toUTCString()}),r.push({token:":referrer",replacement:e.headers.referer||e.headers.referrer||""}),r.push({token:":http-version",replacement:`${e.httpVersionMajor}.${e.httpVersionMinor}`}),r.push({token:":remote-addr",replacement:e.headers["x-forwarded-for"]||e.ip||e._remoteAddress||e.socket&&(e.socket.remoteAddress||e.socket.socket&&e.socket.socket.remoteAddress)}),r.push({token:":user-agent",replacement:e.headers["user-agent"]}),r.push({token:":content-length",replacement:t.getHeader("content-length")||t.__headers&&t.__headers["Content-Length"]||"-"}),r.push({token:/:req\[([^\]]+)]/g,replacement:(t,n)=>e.headers[n.toLowerCase()]}),r.push({token:/:res\[([^\]]+)]/g,replacement:(e,n)=>t.getHeader(n.toLowerCase())||t.__headers&&t.__headers[n]}),(e=>{const t=e.concat();for(let e=0;eja(e,s)));t&&n.log(r,t)}else n.log(r,ja(u,s));t.context&&n.removeContext("res")}))}return s()}},nl=Va;let rl=!1;function ul(e){if(!rl)return;Ua("Received log event ",e);Za.appendersForCategory(e.categoryName).forEach((t=>{t(e)}))}function ol(e){rl&&il();let t=e;return"string"==typeof t&&(t=function(e){Ua(`Loading configuration from ${e}`);try{return JSON.parse(Wa.readFileSync(e,"utf8"))}catch(t){throw new Error(`Problem reading config from file "${e}". Error was ${t.message}`,t)}}(e)),Ua(`Configuration is ${t}`),Ka.configure(za(t)),el.onMessage(ul),rl=!0,sl}function il(e){Ua("Shutdown called. Disabling all log writing."),rl=!1;const t=Array.from(Xa.values());Xa.init(),Za.init();const n=t.reduceRight(((e,t)=>t.shutdown?e+1:e),0);if(0===n)return Ua("No appenders with shutdown functions found."),void 0!==e&&e();let r,u=0;function o(t){r=r||t,u+=1,Ua(`Appender shutdowns complete: ${u} / ${n}`),u>=n&&(Ua("All shutdown functions completed."),e&&e(r))}return Ua(`Found ${n} appenders with shutdown functions.`),t.filter((e=>e.shutdown)).forEach((e=>e.shutdown(o))),null}const sl={getLogger:function(e){return rl||ol(process.env.LOG4JS_CONFIG||{appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"OFF"}}}),new Qa(e||"default")},configure:ol,shutdown:il,connectLogger:tl,levels:Ya,addLayout:qa.addLayout,recording:function(){return nl}};var cl=sl,al={};Object.defineProperty(al,"__esModule",{value:!0}),al.levelMap=al.getLevel=al.setCategoriesLevel=al.getConfiguration=al.setConfiguration=void 0;const ll=cl;let fl={appenders:{debug:{type:"stdout",layout:{type:"pattern",pattern:"[%d] > hvigor %p %c %[%m%]"}},info:{type:"stdout",layout:{type:"pattern",pattern:"[%d] > hvigor %[%m%]"}},"no-pattern-info":{type:"stdout",layout:{type:"pattern",pattern:"%m"}},wrong:{type:"stderr",layout:{type:"pattern",pattern:"[%d] > hvigor %[%p: %m%]"}},"just-debug":{type:"logLevelFilter",appender:"debug",level:"debug",maxLevel:"debug"},"just-info":{type:"logLevelFilter",appender:"info",level:"info",maxLevel:"info"},"just-wrong":{type:"logLevelFilter",appender:"wrong",level:"warn",maxLevel:"error"}},categories:{default:{appenders:["just-debug","just-info","just-wrong"],level:"debug"},"no-pattern-info":{appenders:["no-pattern-info"],level:"info"}}};al.setConfiguration=e=>{fl=e};al.getConfiguration=()=>fl;let dl=ll.levels.DEBUG;al.setCategoriesLevel=(e,t)=>{dl=e;const n=fl.categories;for(const r in n)(null==t?void 0:t.includes(r))||Object.prototype.hasOwnProperty.call(n,r)&&(n[r].level=e.levelStr)};al.getLevel=()=>dl,al.levelMap=new Map([["ALL",ll.levels.ALL],["MARK",ll.levels.MARK],["TRACE",ll.levels.TRACE],["DEBUG",ll.levels.DEBUG],["INFO",ll.levels.INFO],["WARN",ll.levels.WARN],["ERROR",ll.levels.ERROR],["FATAL",ll.levels.FATAL],["OFF",ll.levels.OFF]]);var Dl=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),pl=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),El=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Dl(t,e,n);return pl(t,e),t};Object.defineProperty(xr,"__esModule",{value:!0}),xr.evaluateLogLevel=xr.HvigorLogger=void 0;const ml=El(cl),hl=cl,yl=El(F.default),Cl=al;class Fl{constructor(e){ml.configure((0,Cl.getConfiguration)()),this._logger=ml.getLogger(e),this._logger.level=(0,Cl.getLevel)()}static getLogger(e){return new Fl(e)}log(e,...t){this._logger.log(e,...t)}debug(e,...t){this._logger.debug(e,...t)}info(e,...t){this._logger.info(e,...t)}warn(e,...t){void 0!==e&&""!==e&&this._logger.warn(e,...t)}error(e,...t){this._logger.error(e,...t)}_printTaskExecuteInfo(e,t){this.info(`Finished :${e}... after ${t}`)}_printFailedTaskInfo(e){this.error(`Failed :${e}... `)}_printDisabledTaskInfo(e){this.info(`Disabled :${e}... `)}_printUpToDateTaskInfo(e){this.info(`UP-TO-DATE :${e}... `)}errorMessageExit(e,...t){throw new Error(yl.format(e,...t))}errorExit(e,t,...n){t&&this._logger.error(t,n),this._logger.error(e.stack)}setLevel(e,t){(0,Cl.setCategoriesLevel)(e,t),ml.shutdown(),ml.configure((0,Cl.getConfiguration)())}getLevel(){return this._logger.level}configure(e){const t=(0,Cl.getConfiguration)(),n={appenders:{...t.appenders,...e.appenders},categories:{...t.categories,...e.categories}};(0,Cl.setConfiguration)(n),ml.shutdown(),ml.configure(n)}}xr.HvigorLogger=Fl,xr.evaluateLogLevel=function(e,t){t.debug?e.setLevel(hl.levels.DEBUG):t.warn?e.setLevel(hl.levels.WARN):t.error?e.setLevel(hl.levels.ERROR):e.setLevel(hl.levels.INFO)};var gl=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(X,"__esModule",{value:!0}),X.parseJsonText=X.parseJsonFile=void 0;const Al=Z,vl=gl(kr),Sl=gl(p.default),wl=gl(E.default),Ol=xr.HvigorLogger.getLogger("parse-json-util");var bl;!function(e){e[e.Char=0]="Char",e[e.EOF=1]="EOF",e[e.Identifier=2]="Identifier"}(bl||(bl={}));let _l,Bl,Pl,kl,xl,Nl,Il="start",Tl=[],Rl=0,Ml=1,Ll=0,jl=!1,$l="default",Hl="'",Jl=1;function Gl(e,t=!1){Bl=String(e),Il="start",Tl=[],Rl=0,Ml=1,Ll=0,kl=void 0,jl=t;do{_l=Vl(),Xl[Il]()}while("eof"!==_l.type);return kl}function Vl(){for($l="default",xl="",Hl="'",Jl=1;;){Nl=Ul();const e=zl[$l]();if(e)return e}}function Ul(){if(Bl[Rl])return String.fromCodePoint(Bl.codePointAt(Rl))}function Wl(){const e=Ul();return"\n"===e?(Ml++,Ll=0):e?Ll+=e.length:Ll++,e&&(Rl+=e.length),e}X.parseJsonFile=function(e,t=!1,n="utf-8"){const r=vl.default.readFileSync(Sl.default.resolve(e),{encoding:n});try{return Gl(r,t)}catch(t){if(t instanceof SyntaxError){const n=t.message.split("at");2===n.length&&Ol.errorMessageExit(`${n[0].trim()}${wl.default.EOL}\t at ${e}:${n[1].trim()}`)}Ol.errorMessageExit(`${e} is not in valid JSON/JSON5 format.`)}},X.parseJsonText=Gl;const zl={default(){switch(Nl){case"/":return Wl(),void($l="comment");case void 0:return Wl(),Kl("eof")}if(!Al.JudgeUtil.isIgnoreChar(Nl)&&!Al.JudgeUtil.isSpaceSeparator(Nl))return zl[Il]();Wl()},start(){$l="value"},beforePropertyName(){switch(Nl){case"$":case"_":return xl=Wl(),void($l="identifierName");case"\\":return Wl(),void($l="identifierNameStartEscape");case"}":return Kl("punctuator",Wl());case'"':case"'":return Hl=Nl,Wl(),void($l="string")}if(Al.JudgeUtil.isIdStartChar(Nl))return xl+=Wl(),void($l="identifierName");throw tf(bl.Char,Wl())},afterPropertyName(){if(":"===Nl)return Kl("punctuator",Wl());throw tf(bl.Char,Wl())},beforePropertyValue(){$l="value"},afterPropertyValue(){switch(Nl){case",":case"}":return Kl("punctuator",Wl())}throw tf(bl.Char,Wl())},beforeArrayValue(){if("]"===Nl)return Kl("punctuator",Wl());$l="value"},afterArrayValue(){switch(Nl){case",":case"]":return Kl("punctuator",Wl())}throw tf(bl.Char,Wl())},end(){throw tf(bl.Char,Wl())},comment(){switch(Nl){case"*":return Wl(),void($l="multiLineComment");case"/":return Wl(),void($l="singleLineComment")}throw tf(bl.Char,Wl())},multiLineComment(){switch(Nl){case"*":return Wl(),void($l="multiLineCommentAsterisk");case void 0:throw tf(bl.Char,Wl())}Wl()},multiLineCommentAsterisk(){switch(Nl){case"*":return void Wl();case"/":return Wl(),void($l="default");case void 0:throw tf(bl.Char,Wl())}Wl(),$l="multiLineComment"},singleLineComment(){switch(Nl){case"\n":case"\r":case"\u2028":case"\u2029":return Wl(),void($l="default");case void 0:return Wl(),Kl("eof")}Wl()},value(){switch(Nl){case"{":case"[":return Kl("punctuator",Wl());case"n":return Wl(),ql("ull"),Kl("null",null);case"t":return Wl(),ql("rue"),Kl("boolean",!0);case"f":return Wl(),ql("alse"),Kl("boolean",!1);case"-":case"+":return"-"===Wl()&&(Jl=-1),void($l="numerical");case".":case"0":case"I":case"N":return void($l="numerical");case'"':case"'":return Hl=Nl,Wl(),xl="",void($l="string")}if(void 0===Nl||!Al.JudgeUtil.isDigitWithoutZero(Nl))throw tf(bl.Char,Wl());$l="numerical"},numerical(){switch(Nl){case".":return xl=Wl(),void($l="decimalPointLeading");case"0":return xl=Wl(),void($l="zero");case"I":return Wl(),ql("nfinity"),Kl("numeric",Jl*(1/0));case"N":return Wl(),ql("aN"),Kl("numeric",NaN)}if(void 0!==Nl&&Al.JudgeUtil.isDigitWithoutZero(Nl))return xl=Wl(),void($l="decimalInteger");throw tf(bl.Char,Wl())},zero(){switch(Nl){case".":case"e":case"E":return void($l="decimal");case"x":case"X":return xl+=Wl(),void($l="hexadecimal")}return Kl("numeric",0)},decimalInteger(){switch(Nl){case".":case"e":case"E":return void($l="decimal")}if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},decimal(){switch(Nl){case".":xl+=Wl(),$l="decimalFraction";break;case"e":case"E":xl+=Wl(),$l="decimalExponent"}},decimalPointLeading(){if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalFraction");throw tf(bl.Char,Wl())},decimalFraction(){switch(Nl){case"e":case"E":return xl+=Wl(),void($l="decimalExponent")}if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},decimalExponent(){switch(Nl){case"+":case"-":return xl+=Wl(),void($l="decimalExponentSign")}if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalExponentInteger");throw tf(bl.Char,Wl())},decimalExponentSign(){if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalExponentInteger");throw tf(bl.Char,Wl())},decimalExponentInteger(){if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},hexadecimal(){if(Al.JudgeUtil.isHexDigit(Nl))return xl+=Wl(),void($l="hexadecimalInteger");throw tf(bl.Char,Wl())},hexadecimalInteger(){if(!Al.JudgeUtil.isHexDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},identifierNameStartEscape(){if("u"!==Nl)throw tf(bl.Char,Wl());Wl();const e=Yl();switch(e){case"$":case"_":break;default:if(!Al.JudgeUtil.isIdStartChar(e))throw tf(bl.Identifier)}xl+=e,$l="identifierName"},identifierName(){switch(Nl){case"$":case"_":case"‌":case"‍":return void(xl+=Wl());case"\\":return Wl(),void($l="identifierNameEscape")}if(!Al.JudgeUtil.isIdContinueChar(Nl))return Kl("identifier",xl);xl+=Wl()},identifierNameEscape(){if("u"!==Nl)throw tf(bl.Char,Wl());Wl();const e=Yl();switch(e){case"$":case"_":case"‌":case"‍":break;default:if(!Al.JudgeUtil.isIdContinueChar(e))throw tf(bl.Identifier)}xl+=e,$l="identifierName"},string(){switch(Nl){case"\\":return Wl(),void(xl+=function(){const e=Ul(),t=function(){switch(Ul()){case"b":return Wl(),"\b";case"f":return Wl(),"\f";case"n":return Wl(),"\n";case"r":return Wl(),"\r";case"t":return Wl(),"\t";case"v":return Wl(),"\v"}return}();if(t)return t;switch(e){case"0":if(Wl(),Al.JudgeUtil.isDigit(Ul()))throw tf(bl.Char,Wl());return"\0";case"x":return Wl(),function(){let e="",t=Ul();if(!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());if(e+=Wl(),t=Ul(),!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());return e+=Wl(),String.fromCodePoint(parseInt(e,16))}();case"u":return Wl(),Yl();case"\n":case"\u2028":case"\u2029":return Wl(),"";case"\r":return Wl(),"\n"===Ul()&&Wl(),""}if(void 0===e||Al.JudgeUtil.isDigitWithoutZero(e))throw tf(bl.Char,Wl());return Wl()}());case'"':case"'":if(Nl===Hl){const e=Kl("string",xl);return Wl(),e}return void(xl+=Wl());case"\n":case"\r":case void 0:throw tf(bl.Char,Wl());case"\u2028":case"\u2029":!function(e){Ol.warn(`JSON5: '${ef(e)}' in strings is not valid ECMAScript; consider escaping.`)}(Nl)}xl+=Wl()}};function Kl(e,t){return{type:e,value:t,line:Ml,column:Ll}}function ql(e){for(const t of e){if(Ul()!==t)throw tf(bl.Char,Wl());Wl()}}function Yl(){let e="",t=4;for(;t-- >0;){const t=Ul();if(!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());e+=Wl()}return String.fromCodePoint(parseInt(e,16))}const Xl={start(){if("eof"===_l.type)throw tf(bl.EOF);Zl()},beforePropertyName(){switch(_l.type){case"identifier":case"string":return Pl=_l.value,void(Il="afterPropertyName");case"punctuator":return void Ql();case"eof":throw tf(bl.EOF)}},afterPropertyName(){if("eof"===_l.type)throw tf(bl.EOF);Il="beforePropertyValue"},beforePropertyValue(){if("eof"===_l.type)throw tf(bl.EOF);Zl()},afterPropertyValue(){if("eof"===_l.type)throw tf(bl.EOF);switch(_l.value){case",":return void(Il="beforePropertyName");case"}":Ql()}},beforeArrayValue(){if("eof"===_l.type)throw tf(bl.EOF);"punctuator"!==_l.type||"]"!==_l.value?Zl():Ql()},afterArrayValue(){if("eof"===_l.type)throw tf(bl.EOF);switch(_l.value){case",":return void(Il="beforeArrayValue");case"]":Ql()}},end(){}};function Zl(){const e=function(){let e;switch(_l.type){case"punctuator":switch(_l.value){case"{":e={};break;case"[":e=[]}break;case"null":case"boolean":case"numeric":case"string":e=_l.value}return e}();if(jl&&"object"==typeof e&&(e._line=Ml,e._column=Ll),void 0===kl)kl=e;else{const t=Tl[Tl.length-1];Array.isArray(t)?jl&&"object"!=typeof e?t.push({value:e,_line:Ml,_column:Ll}):t.push(e):t[Pl]=jl&&"object"!=typeof e?{value:e,_line:Ml,_column:Ll}:e}!function(e){if(e&&"object"==typeof e)Tl.push(e),Il=Array.isArray(e)?"beforeArrayValue":"beforePropertyName";else{const e=Tl[Tl.length-1];Il=e?Array.isArray(e)?"afterArrayValue":"afterPropertyValue":"end"}}(e)}function Ql(){Tl.pop();const e=Tl[Tl.length-1];Il=e?Array.isArray(e)?"afterArrayValue":"afterPropertyValue":"end"}function ef(e){const t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){const t=e.charCodeAt(0).toString(16);return`\\x${`00${t}`.substring(t.length)}`}return e}function tf(e,t){let n="";switch(e){case bl.Char:n=void 0===t?`JSON5: invalid end of input at ${Ml}:${Ll}`:`JSON5: invalid character '${ef(t)}' at ${Ml}:${Ll}`;break;case bl.EOF:n=`JSON5: invalid end of input at ${Ml}:${Ll}`;break;case bl.Identifier:Ll-=5,n=`JSON5: invalid identifier character at ${Ml}:${Ll}`}const r=new nf(n);return r.lineNumber=Ml,r.columnNumber=Ll,r}class nf extends SyntaxError{}var rf=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),uf=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),of=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&rf(t,e,n);return uf(t,e),t};Object.defineProperty(Y,"__esModule",{value:!0});var sf=Y.cleanWorkSpace=Ff=Y.executeInstallHvigor=yf=Y.isHvigorInstalled=mf=Y.isAllDependenciesInstalled=void 0;const cf=of(D.default),af=of(p.default),lf=b,ff=j,df=$,Df=X;let pf,Ef;var mf=Y.isAllDependenciesInstalled=function(){function e(e){const t=null==e?void 0:e.dependencies;return void 0===t?0:Object.getOwnPropertyNames(t).length}if(pf=gf(),Ef=Af(),e(pf)+1!==e(Ef))return!1;for(const e in null==pf?void 0:pf.dependencies)if(!(0,ff.hasNpmPackInPaths)(e,[lf.HVIGOR_PROJECT_DEPENDENCIES_HOME])||!hf(e,pf,Ef))return!1;return!0};function hf(e,t,n){return void 0!==n.dependencies&&(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,t.dependencies[e])===n.dependencies[e]}var yf=Y.isHvigorInstalled=function(){return pf=gf(),Ef=Af(),(0,ff.hasNpmPackInPaths)(lf.HVIGOR_ENGINE_PACKAGE_NAME,[lf.HVIGOR_PROJECT_DEPENDENCIES_HOME])&&(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,pf.hvigorVersion)===Ef.dependencies[lf.HVIGOR_ENGINE_PACKAGE_NAME]};const Cf={cwd:lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,stdio:["inherit","inherit","inherit"]};var Ff=Y.executeInstallHvigor=function(){(0,df.logInfoPrintConsole)("Hvigor installing...");const e={dependencies:{}};e.dependencies[lf.HVIGOR_ENGINE_PACKAGE_NAME]=(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,pf.hvigorVersion);try{cf.mkdirSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,{recursive:!0});const t=af.resolve(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,lf.DEFAULT_PACKAGE_JSON);cf.writeFileSync(t,JSON.stringify(e))}catch(e){(0,df.logErrorAndExit)(e)}!function(){const e=["config","set","store-dir",lf.HVIGOR_PNPM_STORE_PATH];(0,ff.executeCommand)(lf.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,e,Cf)}(),(0,ff.executeCommand)(lf.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,["install"],Cf)};function gf(){const e=af.resolve(lf.HVIGOR_PROJECT_WRAPPER_HOME,lf.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);return cf.existsSync(e)||(0,df.logErrorAndExit)(`Error: Hvigor config file ${e} does not exist.`),(0,Df.parseJsonFile)(e)}function Af(){return cf.existsSync(lf.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH)?(0,Df.parseJsonFile)(lf.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH):{dependencies:{}}}sf=Y.cleanWorkSpace=function(){if((0,df.logInfoPrintConsole)("Hvigor cleaning..."),!cf.existsSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME))return;const e=cf.readdirSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME);if(e&&0!==e.length){cf.existsSync(lf.HVIGOR_BOOT_JS_FILE_PATH)&&(0,ff.executeCommand)(process.argv[0],[lf.HVIGOR_BOOT_JS_FILE_PATH,"--stop-daemon"],{});try{e.forEach((e=>{cf.rmSync(af.resolve(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,e),{recursive:!0})}))}catch(e){(0,df.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${lf.HVIGOR_PROJECT_DEPENDENCIES_HOME}.`)}}};var vf={},Sf=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),wf=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Of=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Sf(t,e,n);return wf(t,e),t};Object.defineProperty(vf,"__esModule",{value:!0});var bf=vf.executeBuild=void 0;const _f=b,Bf=Of(D.default),Pf=Of(p.default),kf=$;bf=vf.executeBuild=function(){const e=Pf.resolve(_f.HVIGOR_PROJECT_DEPENDENCIES_HOME,"node_modules","@ohos","hvigor","bin","hvigor.js");try{const t=Bf.realpathSync(e);require(t)}catch(t){(0,kf.logErrorAndExit)(`Error: ENOENT: no such file ${e},delete ${_f.HVIGOR_PROJECT_DEPENDENCIES_HOME} and retry.`)}},function(){if(O.checkNpmConifg(),O.environmentHandler(),O.isPnpmAvailable()||O.executeInstallPnpm(),yf()&&mf())bf();else{sf();try{Ff()}catch(e){return void sf()}bf()}}(); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorfile.ts b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorfile.ts new file mode 100644 index 00000000..988feb9d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorfile.ts @@ -0,0 +1,16 @@ +/** + * Copyright (c) 2023 Huawei Device 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. + */ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw new file mode 100644 index 00000000..0576aadb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw @@ -0,0 +1,61 @@ +#!/bin/bash +# ---------------------------------------------------------------------------- +# Copyright (c) 2023 Huawei Device 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. +# ---------------------------------------------------------------------------- +# ---------------------------------------------------------------------------- +# 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=$(dirname $(readlink -f $0)) +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/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw.bat b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw.bat new file mode 100644 index 00000000..0a70d283 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/hvigorw.bat @@ -0,0 +1,78 @@ +:: Copyright (c) 2023 Hunan OpenValley 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. + +@Echo off +@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/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.hap b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.hap new file mode 100644 index 0000000000000000000000000000000000000000..80e4063583cb9523ecc2f7504757366fdbf9ebb2 GIT binary patch literal 96200 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 B0KNbK literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.tgz b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/lib/ProcessMessage-1.0.0.tgz new file mode 100644 index 0000000000000000000000000000000000000000..23e8404fb8bd796cb2331cfae34ef38873c7fd99 GIT binary patch literal 35535 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�mvE$_(58F|2>LIB9`=R%XqtZE#)`ET? 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/base64.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/base64.jpg new file mode 100644 index 0000000000000000000000000000000000000000..2e190932b4d128088a2cf7d0384738f1f68c63aa GIT binary patch literal 23602 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 H#DD+Ubo30b literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/convertxml.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/convertxml.jpg new file mode 100644 index 0000000000000000000000000000000000000000..03fde7086e4305167235a197f62c06744532402c GIT binary patch literal 24774 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 E*>SD6YybcN literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/home.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/home.jpg new file mode 100644 index 0000000000000000000000000000000000000000..d62a1135c8f616ef6ca987fcb5dc88ceea88dbfe GIT binary patch literal 32581 zcmd?Q2Ut@}*FPEr>4-D|X-W~Kca#=EX(G})h|-II^iZQ9y$J{?DiM(0q=e9s-bFfu zUZj@<1cC|4jpse*JDzjj(Axq@XtP7RXhCo zc?697H@bh+d;fbof8$}Ub9*Mz|Nj0T z^#6XHlKN|X5bwY8d`f@4FZ#EB{+-T~|EB!!^*{YCmkqpre)RvwKk)PS=TQHKzw>xG zz5iWK_~dW;)A_yLANhZG{c-QdK?%Uk0B!@$5fJ?N`~4t1Px#{?CL$s{PeM#W^5Y~W zqaY(CB_|~zA*UiIr=Y|iBxDz;sVFb}NdF-6andcfW-*tXT zDQTG-H)U_%QBhS>*SM>1U}$7)Vrph%YiIA^=;Z9>?c?hQ@(&1m9v%@H6&;hD@-j6o z{nhJ??3@p|dHDr}MU_?6&>C26U42`7M`u@ePjBDI=-Bwg)QIp<`(kc z@Y~Vx3F`Fw555Qhg#Tjezc~9FUo?2W&f#@HMDl|#f^&ZOlaPk!{8cexS|weQM;>&X z;?GFwm6Nh6TFJO1^biczp2OsqxFwf(kUv=ajkEt5W1;^`oc$MLfAR$fP!ba0l}AVe z00J=bGI^HKH#j-7V|bt{?1aIC#rHq{qn=O$)U^YNwGS^cR7ZVTXt}O#YDnw zj;h?FZvnzdr4|pIOKlG<+a=R|FI8Z%H@?I2S zBd(}RST#pmg3l-MAGaEOj(b_Z9b}B&A9RGH6H|$l3d>y+7W^if-mFl!K`2nSTiF4L zn)NYT8g4#vRPL5lUOvRR^0a1dX>*=MU%J=jJyK`Zirl%~2?E))7uUn~fOcpq&AauH zCbiHoy)+jb0Hum)vf#XbZUA}hed)3HV^w>{b(65583IEYR%LU#v&07n#t*idv5@uV z?t$dixNk#JOi>SU0JE(|k=&`-vK*J-yseCgEPpqlZ!arvUI&d_QSP5m5okKcH*5MO z>|h71Gy$~Jz%Zi~wiN{@&F+lHm!^IVFVRX3y}q9YIG|~l;O|k6d&+jf&rYpSjXtNY zUya(x<$g5mt4*hJAxS>UAWxnnKljE=%_wHWBnBHy6->-QA_NpyAGHJJO(?Bu}BE6}jP zKL>5)qP_loe92lPKlmwRY1hC*^Wul5WxfXzv*i<|o#eIXc7zo9l&gGMNcL+l+lMSU zeQ2HG=OuF~B3+PO;d$&>Pq^NzXgyg;gmBxj*6gH{k-qDz%UZEU2 zP3oYdvh7d1xy~)5jiAZP@_No0hPkC*%RV@y1b+-x{(LT$>FP~W+kR1NKY;WKZzJOK zo5eXBD@2jT(wzf&m8DaTUh_J$8|(sg9qIag2O??3?u4&-nN1AMlqkZdo}}@po@jqJ zR=CR?tWkjOH^_wTyUpPM5*=5@VQf{x`yP4<8M9?*U!y&hfc2;lqUjAq(Mj&wk!4xS z#7Ov|R=68C4xj;Ya}}IkZ>8k+;!YMXBxn1iXJB1BMArSN9F#E9in-2KG!IO(k67Cu zh`oa8uj^a&S*6*!uHU8q_U)s3jh1&fKyQj*Q&)MF-d#)R-pJ-eHxFC?ouE4786tyd z;`_;7`Ff>;S1hPsKy!$vffVpcW%H~?`6hTQ5Dq9_9?E6u?H4$3}oARb44`UqSNLgDon=E{Ks zr23%ZoT2rYmH}*TdZd5OHgyxeChy8)4rY0C7aMnX>S!p+b=NKel&qj^(&0|2K_n>J z{%Scv(rT{=Aj;3wd}TYunamTOduSn??c?Kh-CBf&r3|>81s9(Kl}|szccTYGL4s9l ziC;iT4dVc(#(HY_n}b1AambaHct}F=Z+)vViS@>WVXtDJoV*1ic(H0LJ}pr`nhSJ; zWtxS~v@XWRv=6jGgxTC|GgXDSBW~TkWN*(?l~VhC;$7+PYEsYTgUt!owObC4)h!}| zr-9PTMfU?z^*nEtPdT$zlm$MOy@3`>vE#;!uv&_^0P?;2k0E_8b zrlutjJk9AR#0Gmc^Y*>G@Jer&xPSR%Eq?i!(+>0SMlN)@$vWr_qi}#eyZbE&ciz?` z3vinc^2MsnJ56$ojjH3p>FjOTWGDudneA?@aGkpEcD5Y`l)u0dagWG zBDoSbuB9UKq2|E0u{mQdG%LD{?FIka0{HzK^3M{exiZdP0TJ$Mtp{Rwmb$w{+)=MK zS;1eWv)^E;W>GTYuI{WsHoz0w5#Xt*C4EJ5Y{QL;x94MuIeaINfb_zWhcxKoLysd2 zKXH}b6yZ%Azy*N=+$@JrgBNELLl3FnbaOCY0B`a9kY6SKUz8h`4E$vm`35h^3~d}h zzy+T5PCv2Z^K#Ng=JOnl>49Do24(>C^LReUMZS~R%Gsw(L)&#VT*q4&cWotLu?p@Bm_V=A4M7!lD$ISGxZ7EM6ha`C!x)_cpSN z0-&npZZ;gCx_STy*lbS!J{fw57v0+hBynxLf&v6ff_KC)VJ=LE@ldL+eIiE|3>ePS}T^@3=KhX zU*?=z;kRs3mhJ~d@9dAfM<6U{6!;Bb~uSK;fJN4R3@M6}fEk1YBf}gO6 zw)2-{XoOCI2pO!}s#av8Pp~4Ec~Wmo9(DB+vPak|$m2p%vBOoh6E(t-8Xi=5u}jT9 zWyTt`MuiXA^sS^UKa_MXlyt}C$Pv$PBL^`x=Cc*k58>nWk`& z+0e)G$&Hr91#nn}N)?t)Bz8muZI+n^K4H^^VOXXSPKiI%ZM<2CXSS>u2QU|<4m|7P zK$3#OH$@z9fM>u1AlJj-5&sxdtDB$wrLvslBpu@h3?)9&wXHLE=YfXsqv^-&i3(y# z#5!=qF8r>R{6s7%0U|&#Qv?O=F8fVY&CwqA1Z6FL7`n{-u(!(JEPm6~L5RfQeX?Dv z;&v=4GvX z1pGtgyM25mR?&(~%}7{#%SFff2XzG?E4>NHnKuFo_MN(A)vrH9Ckb0$D9K&1W_8mO z&xyf|Ve9!(YRg?=D+`RE6qVt97M(^!_<*ljb&~Sh#K`9809xc-qEP-Fz7f?A)ygKY zaN+absRxNW?+~yqxWls#2v#61bSU!sOM({VYxF_3r69vU&BS<`zO_oS$+@!_LetO099 zx;3Am@;Jb82kPtc(DdkHKd2o4!cx08^Ua$$8^soYz*(z zn5QKUw6@!xcaI3U0dDPNoqwZcnPbiOysSlcW|WuCNZzFu$A&70ao1#U zRYJq+b4gIo>;<{Wwf$~L^aD2Jes?+i+;<#cnKx0M#Rt7Wy=?~U(1r_OX}~lt8BR4W z!+Gy+I8HK!Q|%yx>RzYXI^4@NS)0}c8Y>Fp2fi_Q>0R?hj2zN0zL}}lJs*SvsD>FP z>W?;G1v#^wW4?CCE}-s1Wpt>GHYjx~1nw;n+U79Br;xy>5X2Kr&`d}D=h$WHNJZxH zBUjCiQ4^GOck9BXM(W_;Vy6T3LL2&;!LsW3f;u@f0kD|qw6g764vMqFW}Zz&V*J#0 z1KWA*t0;&h3HRoRqI+EmO=LzLE#m;sLpXL$_c&|n#;%S!_zSJ*2rU~zS#CXNCwR07 zB*OALSy2O>sY6eUfNYHAW$lRSqhX8`QV$2vYfK*;cbyDWl799$S-Hv9>L!`R zQ%}d*Q|(a^6kjBUp}))Oqjop&c|F5Wt5+e&c-fXQ&WEBDY=`l?Xxi<;Q#oVS{-g&f zUsN{0t=bB|)lUhTCc#pOt!U5C9nZl~Ht#VEF$?V#Am;_Eai~V43QyB~Jj+6_^P#`7 z(Z}Fy9`eZkc$u`%tOty%_(@YZJ;sNc7Tl_dQE*x2VA+zj3dPdT3c;P=Zyyk*sdJ8b zKd0^e-~{jZ(uC3GK5tjw^rD3BrutQ|;AJEb#Y57yPxAl^U!Vx#M7eiWnzgT-38*15 z8{Ti|Vs4Hc6;AKx)+Ns?hzpf^S=$n6dVDprYD*@pREY-&3vhg3=f{hA4As8m7awv% zBo+s-Z=rPxp+HdtyF4mKg?4wPF%C+m!!CB`e-QQOyR2cI$viK1U6ebDBkk6FJQ}}1 zv}(AwICI3Ct+zvHL7ofukV5e%adyzgQHB(4SD^A_Y4y`Go}^V7T9(`wNzdEf0`3bS z6IU$enNf7e$m7@%j9uwekUlEft`ybm9);XGkl7iE(NTGt+4(I%OOYa&JNA-1 zK{8B+XHAS88p#^y%nsTKO`ANIhRJ9+Jqdd5-(gN{YwdCXTvi%u=H1F*%a06U##}k8 zZZuqC)9dfZltKo>qA^x0+fzG&15*(P2byw$b}+CM(#f$hl7`sDN!Nxnit z@9a|Vq@4uXKfK?0YEnLDRWY>7QW!GMfqyZVgvT1$n<);Zn0HD`xsa-_mv5A1M_rM~ zop>ks@nMf`T;A^1mzrBW<)3f>c>fYC8t4FytATe|QOoMFPGKH z*fU;~?w?7W^OZXW!fWuGg!1Hf|EWrv<(&U2D@~>n5l6w5i-8xZbuEryZ6c)8&9%cI z&9;h`=)A!AN9n3HbH#TzD^}~|BqYRxav|Ia7gQbxC#+z>ct^KI155vNnjk43!-dF9 zby+G7v?52@!xvf~o3~e}e3;30B}xSgn^PANh?t6k))3#VlV_ug|80l@(hhJ=bxa*p8Wx4cc5&fJd;CPOa%0p4K zOUqsh%iH|U9-G^BwQ}^^wrzEFmC~?vjA+5r0KRjDuy*hTnJB2jLzJJAY)#Fvp0iB1 zR@kmttm)0P{oU~Ht$Zm776!P|^~8aPG#24OW(rmOF(tBoce!h%G8x|t#T zDgP`CZ-mM-9_9RAYV;xXk>x;N&Q;I*H+cae+{^D&rs(mO`D1(sL$TH1htoK~(D^gx zuk@DB{!X#9xOkn2m6g>uH+zR1JS7c2Yz3PEe}5F}8S`(NGv@n0ziM9Z(zXWU*#kTd zsLFqY=X+o)<6ees&bwi;HrO{Qqk30s0*}0V`ITuLx`SR^xn@_hUFERK(m24;F!-I1 zVc+J$0SycXD2v5x7v)~I3(^YG8ab7W~_G8_%EO}D|*9v{x=gCfZdYc>$K)*3@GMOR#Y}wLW`6H}$ z*k=)8rV>mK^OyxY%{YYwrFE8qM}_qJWBh89-ABIj#g&xM#vcK%d+%SsJUlBdYvfuk zXL7E`zAFF?X``GRN}Yz5`d`AJF$dkd^|`S0wf6~g<;Fe(AePW>`p#r2v!j_7c=vHs zGx8*{x>!>#m~cn7bwqH-0TGew?X3=8;;kHgT(-sz^l+%?BAi zNXT$ZxznofZ9F~!-|G54v_jI#CSx=v0_D3h+IZ*K&paq?EJ*EAQmiV)MY7{CXCEg$ zQBg{_zV}_ZAqsdy1sr6Jibl{1Nti@XGds_dHjl_NaKzZbM&vaL%^dZL7CH+VBTg;x zUN}$k^57nKC1o^Q&Gz$HGVYdQvxFq45pEzTQ5F;ejkof+r5vfiUy?pexOky*}2kN|^xSSgWAZl;5kx_8V>0`%q)A zq?0$!1-V=e1j-FPev?>{H# zt~y&C9^swtr|~#IH~*1Te!@)#=5aG+u^IJ7tO-Q1};;e1GX}s^eV8wPc_;P+XE$c8?|L z{uA|`3lr;8-}O2@SXWkk+z5m6<=G>V@5wWNZYuF-ff!f)n#raNzH^B`3oYj_92;&u zs#SSsBb=?O*Y_OLL3!@hH)f7kN55>b;61tGKlkT(TPr2DjbVE3R^EQ}m4%@##vxKsg^u+;aKOnk3WYVW; z3p@@eguXBnJA4)!-B^YGq>uhorV{kdVP&5h!-+7A?{1~yU515Lmzo=X{D_=yDFgX+ zTyE-mMpHS)W7-*ieCSo6Fl&@HY0Q`0JX4!t^dxHdY(<6Kh`20>Zc#hY3QCdyQEnQ~ za3`zD0!CJw&+&n-&+Lpkn@K2);{dO|##zI6I(c8tOwjT~7^m>-ze81^twY9p5q_FT z>7=D5nYJ9`W{5@-G@eB#1ueX-{W0O@y|iOr#z|FyK@+Q}nO@T48c~1GZk`?07FE8Y zb<42y0hC`C2Yra*R;Dn5H%hA10ZXGr-o8RL5mq?0fu(P5jG*F?j5j0At$lPQd28O~ zq}t$3zxsH5b*{0E!+^WgP_z}9h@u!Ozg?EGqa39wSx$s%H$)LSNWb&&XNV}J)t1_t zH+#H*O?txV%74B6nY}Ql(uHr)IKVx=!nF(fhbhNJsBpA0H6_LjVV~<$0;*C8_bISjjYQ9*L8Q16T)+kjD4h$Ky(^yebgre%}u zGQ}>XN_n7mGgvfyg7}u=WIlXGz9jzZD>wPJyi4TZ`vo}=`>^!7Q|6^N+KeEtm4yyV zuMX;^vug_-5VC8NHudB38s(r67gzC72 z%bjqN9ETkoHr#EDK6Y3KcJIRzm&+o{FzU#mHa6-m4eD5_QZChzGN~4-Ezy})p1k-# zg*JsMvq7)RQmr*%LB5@KZ$wX%=+=2X{LrSDpqk+zQ-6;og#adRYD$ge8C58LuOjng zc+0m2GF|gbeQwQU?wzR{m!VUKY;a>-oZBTCbZAVb-Bg+JET$Y8nb;VNOu2{Xj#K0W z`E|~7BJ-Z7oB1X#%~%R_NE@+Vb@YjF6s~T%+b3Z3ah&IwP`icYj0#ajqhKhU&X)wH zgxp>!Pbhcw4z#-H9KwcFtyn>Q6SD8dGOP}{EH+7&l|vWnUog27MZ4H9FIHV~qCphO zDl0B$CptDzqz_=ejsab)Vp}dW^KFGNBX(paWG<=|xC9tS{=kUPE1;oI2^<>9%RfI-OOf+%ITOFm~6hf31JVi%u_mR$PZ4~5~2vH z;7ho6@WR4WA!>BpNDG-2=&hG&#u?m1-9C3|VVR*jmhL{xipFwt*h#|bY0$I~XR?OP z^TYUJ?h(kRB1SA6Y-;JN?;MkpF3AzyJMRqo4I$*;UieBxx4zt75D^t6Vmd zPT!;yerZua*~YxIxShCNxo^<&Jv0>;7nig38l?7O^%8XDcHz42qqiWY`}Dp7@lwhR z*Thr)f9!y|PlKr75Pa98P*#p1MaOvHMIkz=A) z5;|zK!t`ME&;(G~)nw+1uRRIOwnO*WBNfL8to~v+{M}Ug?@X!x^UJCBmh!b4&No&i z6H9b@=H&Vq;{eDNnKLi@VOdd~PDnVYW1qmqClr{uj^(xA<7&rgE7NnviA)H88+JbY)ssgMz37Sg!0iZwS0xl2Nf)M8%+p;ej*sZCn=3)R z4qMuR)i}T|o6l10*NHdXzCg#C5qsoX7Grz+abh@ZbWVfqEFmJ|T*iQCM~+>O=C@eK zdWZVZtAxots z75oL7GG`9CM*Q6Lby;aXM}V&OYhT9e2yp8V++l?W2j~z9tN9+k-tkUbbxhdJ`%HO$ zyVXt@+9`7)3U-{gq!NdZyK=$Qb8kVWy$aY}lzb~Y-Db;ocbCxdE^Ss&B^NFBl`f<2 zu*fnY?(wCXOp0J~Az*M)k{heYH2Wdi`s(x7jnid8wYD#pTU3j#RfO+dHj3clI&b6| z=5?OCfOjfcE$doFp@VmLzmLrUOB)VAC^_iWZdDz5Y}LMS!3+iNvZCJqR!*>)!TWU2 z49uj&*8I+T=(1>SYIAoW8O*vTTL)-G3<87K6) za>UjRYcdy#v&xN`tcXjZ724A;Vwh@%YmaVhD_>E13SfV#cbt(w74(j}PbB8@V+gC_ zRSflTDMpJjAS5TpY{Sg(b6Cl?gf@}>He=1@$f;{D?ie}lq*^yHin&KKTJONAY%HCO z;WF(F^3G`|9Mp{hNKHevVa&}y|Dw%DJ6KxzPfqDxeLOMnNdstuSeIDMV);O_O3L>= z;`3szIVy%U@5wa*j9E8(F`i%vO*r)nOdR6coBTmEe~<-Y@B_SQA`d%M zGqHVI8Dsa_)`n9|Cpi+MHjJ#`Ru0&a1G-(X!%)iFF3YjQyN0T`!#KlwzLNNV3%ghN zyt(csuVu&cR-2*Y7E5e$ZCq;#I_K;dDE&oosh`zWU|09n#Ra^p`+VVOuqE}sne;L? zxswG|IJ>5|jQuu~EIz-(0j{!uzi+gBt}o)Ixqg;*f(3KpL3WO_R1Ui)ywBd#vXA$y z?Tq;f`SOp=7fvy;SPb~sAo!<>7THgK_27GQ@XwUgrrp8o2O?-ZHa4x(e06j|%e=F> z%0=4a^5<(-f^}d)zQ-#(SPO7q0@T{2$945ivdN0m1sc<*Lf`N%Exs#1_3CF@`Xn*c zRk_{4XSt7#uk)H4)S{LBwI%LeHEDM^Kkz}7vCxyToZ*p=oI`W+n8hu(EG5Ag(Il^; zJP8@L2wGd^Svl?kVs~IIho_8Z_)wyq0<_RR2CIStgaFa}$^9nPW8MYsyL+X3f^M9q z%e4u&zVx#I49B0f>XBXv3#Afw4e6TS+9DHi<;v(fUtbrWr!#@5cv5-evmsf`Ev7{d zAsnFo2>|j>y*Di2P1qtz<2B_z1nDE0^9v5F+{LL#=WO!pQ& z_NRPes0<R!78_rpAQ#R0an zaRAw^;?%zaP1m#&Foan_dWev$rF}ZbdhMu2V6n36e)XWjY~08=qqE zK7yn+Gq$y*A|aNymE*Z=WJJ)TWj5munT#S7xHXY*0h;@Dc(in%6FO2Z%%nlb-`XU! zB$lP`2XJi1zS6y8XD?kA;t^zqDn{P{?JqZ1Jo6{lFmls-@QMlbss59&)38XSp z9p3V|lX7oDgFBkGT3l05hVeyTh46zerxAkutdM@J@L6$-vld5J)uyLox~xNZ5MwZJ zyu9&}<~xDT<0|t9Rztxyw#cXzXkdIOMZt(#yvv#DtyY$a5{Zv$|LjtyH1hml7F4##n~tq--bG<+Dr7lG`rN zs0P2S@j{fx`v+)mOt@d8?}(4KosUV)$}UX|4I#ns)Q@7>w{%d(?U&1=eS+;It%y5I zO*h1Dm$$+6rk#OPHSPDN$r>8eb70Wai9wqtIyCI`JnMNUM78LE%AzZ)T7Q%1D@EAx@y(b_91H6P9T+Q2not- zxh6?5WpS6pAabds5;Z@mHvEk$(D(~^XRIadlAuuO4nxt1uYMh%AM4{2hvpgf~cOZHg-i_MQSTSj!JC;Sgh z;2NoK!(d0*Z{*2*2)j82lX`M3ne0s1Nx5nz&k6!1I>3u>o;Y7x_=p3vkF_uga7=N_ zTF(;G=Dl*`kqxNX^Av3UeDhoRlPm+yaNVaj0KVCk0Sy^K452Z69|%pVe7TeU|vlfA{)7`e|mh^$8>M8o9|gmcupG z_gW1B%-oruF8Jr+caj5LSicNXe(7UKzVoDS=_$VwD{Cm}5#C?L{v&v5l+zetU~g(; zX9VvMy{escQk34zKk{wPen_i!tVHOD>dxJXno0}KK~GLVk1pBl4B_?1gw>*-#rX(= zesW*`0!$ZgvnzbT$VsgRL_j}G_2%Pu<{amQI%hqkpfx7`dra{aUs>I6SS8ghj=!_% z$N)!r_m)E`&;l$1Pt43?qbK;X0gGw&S1393Z;|~1%YM0gyW`Sj?dj(6U(VDTmSw3B#Z1zh92vVA_+UzSm4W1dxwQT3#_NlM~-<9>UT*Z*_t2`!Z!kKVCEYKVCEb?0eDG`=_KcIKZR|)@R&U z;7{+jSW=zSAG}+KXs|%7pqYX!5ylZg$MlzZOY6) zu0w;mkq+HfbczZXGb{EWi7(B3K?)|{Amk{ct$jlT+T0B6m^k}VC->2fS5*J2tT8+*W|= zWK<*1!{b;yKpW^c=4OMmY&_8{A>opUOd?ygPv_yDrDGRfzTQ zAYR1$g!Uzu%aEwdE->x1v$kJ;Z zaS;2&L2v@zF6+q9-X$#Dx_lC<$ZE2|&WuQZzPopATq<6>LwEDLcE%U0z09vWC#^&^ zz6%=-eM6LfUb4*PU!OHb9v7ayQRD`_!IHrc*2{P_+AJu*q0Pn*uWxIRYM1)M`bISU zu7gzS$s3`@J^~?m6j~RMV$~st_(Gq51Ru8t|jy_tE{xs>+*~F$Pn5_dpt>Y<=rVol5|)Rhe)98wTa5x z(LEu2C_@pSrijVU&naAbEpF#;>AjhLu&*Pot^vE1KB8VpCbUumI|F4yYJ5L7B?GTx zcou^-+ac#ejB1s;&lPq=mGz98VN)5 z2LqQinT2c|?P2X&ewb^lhZlfxHHxt(l@|zI|0DNli#J24qUTFZ2to(^&P(=ZTeRTC zo%~}8$SF1*dzOz6jry;oVIO|^ISXCKg7JHeEl&9Gr9aaQ_RDK>a{kvc?!@rDY-p$% zS7A-o*dQsD&>AZ}dM7)7@Ohb~ShHZlkvF^}X&{ck$cR<^g%Z&drT3&Et@to*;0O+| zfX9!>75|c}GnAYQ=r*lyj`(~qvgIo7;o{FKAsFu@la}o73Ght(+RL*0n62{q#-|rV z=<`Du96%HA>5O9de$MbWzg~%FG_MO~QLxc$%-EPMxlT3fDcJ?rrTV0EK|A$2DGD9u zTSLv@>1sAXb)Vw8uHEgzUm?KXnfc9o|#k1na_cW#BjV?dM0e%~#hJB8y_u}592R!Zc>LIxS%)-P2)B?ov2UBWK z9Uu?>^WE2eup97s0Bn~4O^CHCZ znDW=RB9%d;R2{4QHtFfylof#%zw z=aAN6BhVx3Q@!8`W2IHtF=#b@hxfU8L+op&JID^?jhDd->QNQ%4Rwlg00f`%^6{$- zisDmC)qaO|LNg0Oeu2K)(q;Kt#R_#q2oH2}S6UGq{<-{jIldpH6gzUlhSRe1Yea$A=R%UBiX+5t-$`37TvXv={yr;|(thQuZ zzq9M_Ua9~+y?rg0?E3k4?@Az#U8K?+fs+>U0|$K}6C5AitYN;C5VQ{^3*H<9VBT68*J_JU-xXE72Z7(Pi&7rJ8ZyHfp^GEF&alMi~?ZzN{6IGNYZ z-^io8^VwQ71Ujr%^JwQtk@4)Myg-?0(CxE#hEO4W{fUyt7-O$u=tR;Z{Iu)f7&koA z?R>QYS`$vQ&sCL5s8$zq&+nqB;>HKktbSLPsMZ_n^w77to;m-M6$O^B1zvU`6S8*X zt~p(6+_C0;<$*D;SO`bYJ-IMWPk{fh2Ll?!0W9!e|NH@BNc;ncv00X^!P%iF=$e`9 z7xJ26;O7{!Y$aOAPk5Q`p9q|x_12c0fYY@M^`!^~5$=RmLwd?&jYWXm@NoflboDgp zbjELIR>t+SL_+OQKyu7K17`-y-|4)s9%dg#+0*Q^L|HZ@$Rg{!HfsZ7A~h#>e0trv zDjT5*5h1M&uj5nNL2QyeIl6h^oZGQq74b*@-Kfp4N1V4{%PK z_shAE&jQY&!cg@p`dMnt( zQYmknz#=Blao8=RC&^F9PBk`F-+NpA6C!6M{2H0x3ZIO8KVH&ky3{bpzqM#~+n+d} zGVSo5y6)xr3cb^Z(qWk@mNlr@C3H_?kI&#Wb?hWV!cjw9VQng{diH0JrV;gN<6;s$ ziKJVMA^#tS>;8m7{~tvN@qxREe*nzav+cyI1Jeg|n9BSC>m=+bVA6ZieWlAm)2pWr zylnrWds7rmq%D314WZdu;J^WFz_AYqzt}<}Es(GIv!l+>3-gxUu$;a^{d+}KDGurH^zE9&rFG9`*$sluEF!WqlS|R;*zZ!Oyh{`ILYuT2^{Qz3r!^M|R%F2micXBooPEs=1Mc&NxlGn7qN zy>PKZ&a~Ow1E+a;*=)w~3S6E8wg*r@6S)GTMRD$HM2uV) zc{J@dagrWztJ+SQ$B3C*Tr`c>gy`nGpe`K17?p^aJeEb7FQIafYEOMM*;qOz9%nSa z3ARu4mLi?zzVw(>qSB%#>9sJYSfcnc%j*t4VW4F}UePz+X-Gn|D9UM>%H>#oT%Kd; z9d+kC->7$Dj4b%rwfvb+sk>6dH=$5VEiaejVCmbJH9WW)i^X>${MlCP8(veUe48gk ziFqxFJm+A&8rj+`{iRW5xn-wEo}g%3)-8waGpsDV^1S-fcW9FRQ$JbN&@@nH4dzdanTK7n|iI`o@74j z4>@jtuu#SKq5OCGfBlSHaluaMYK9Y61m9Ry!$(8iEsaH;^Hw{>iQmbrzzd@IefN4` zWf^dTCm06^!tXA2ZH-#0!UV{Y#Uu)S;y%vyiINeP5vwUKe;5SlV*Bt@!TZ#cvqNee zfF%dbzk&@lUN{*5V%!SyJ8%FhjbffqROD@!O)2SNy;-Zyb*b+&Qln<)=TdIKj9zud zFH4EUzt6~D8cJZNKt_g^$ZLE+wX}WDkMuDuE!}~dYZ;O4l=IX%PR!p}GveD7(7br- zL%R4Ci#=ul{1=TEZQ=v3n*tHHeekGX&Sa}yQ=buob>@VKQuTdKx&l1t9 z2Oyq2HtaqlDsS0;1xC$rOdE52qix0knjhh{?K6l9JdQ;LFVBIsMyerfAQ}B}sSo~= zXgMusxJ&HOZBZ{;fwULbYifxKZb%=j?@7y|_G~gVXt-4!?@t;&etCn0WHgjoA?iIj z`F#35%g!aA_mN9Adj zW_E4N#vXge^WFeuS^gQ6Ny#2ik`0&f? z_H*S2*-w8xybFHK-uTvk+`1NCXZ!!s*@L|36^ZJ=$pJ%3eV{1G71jV&j-D?>emQRM zM0+2rs%nS)hfdTWE$LerekNpb;h@4&gCGy^fp?Ma@|Md~y!SHK?|s=d;f6y;vP5Sh z}p2h_D%N<@AYy^K*~ zZ)P4|O?KI^9aBGerRoz&!+I+VtXhyQUitB^j3N`N)DC^y5keN^8l3OaLeD*cQ9_dF zjecu)a(D#9aLMvCPIhZ2Q`psrYqRc5Y>mk6F-O1a5bKFwTew`k4<}qHZv)0aD4;{T z;EQ)#DBg528eQymb}NIjnX8$T1}SdjyiCASIUh3XQEYA`*u>lc<}oBLSw+^9JQMbD zs#c&@8_q+XKimrVkS47=Qs~6aV{WBP%pjRC11~5iZJG4NCic?< z22^-{kPlKjs+rR~NV{UJ(P_z&L|@a@`hcQ|pE>6vtfoO#8mU6**9J0ueTmO7&E769 zs1IVPt3Q|<*Nh`jUicX6>#7vg*qYm&S+aifeo(7!DNrfa-w#yg#Jpt-dEiB10#Mj>qtN zAp;G^nyFAgGklbg-_o^;%cbFYdA8$R8E`vS@p+aZ>KUGaIM>E-@_YMK@UuMg^%z>9 z6<-cq?11CNLZx5(LTo1ES#t=3v+POO(e)3Z-;o%NBI!s$X(MAHk=T$x4R9rA8mO_@ ze9csNHO7NCT6LuNNm28grNl@el%(y9V>vypdY_{AJu3G2=@(&n)zX{?RN4lJygG*I zU`4rN|7CNZ*WR(O1i5KWhvhar#BRQR-J;2tyDJ~QGZc@#igI6xeCDnwX6Y2djmlc4 zV7oA?GAz$ao|kFnm>bcvWmX?vEpBPi)hi};jeyu7oXgMnf!tzbOpBva$W@FG!aWu` z7vPT47F-`Y>J=$16%zRts6}E>@9^Tz`xicr!rpQY_pEOuZ?-1*i-(++1j{V#JLGdZB6HxVShG+T%i9JKpCy}`BiOL_JO_wRX@O$L#k7opHq4TB-%ZN&mpH;bFsdoX z^r-WT3zQ(4WsdMhCqzn{FZ_P7Q1|nPPSx8Rn5zZwj$?elgL!ZhcUbj^M5yAN-VwZLG+O9nG?vfw{Q+=&4IX=ysvIy zg{Ic!`C2)oN#VcSEdLd$|7)9NOk2|2CMoOj*&=@1Uv|y=r)>(|E796JjKIS)ku$V5 zBInO!F=P6R&57h$3r*Hbh^xsO+z$&cKTGb&1P~@`8Gi}7osTM3kJK62FF6umd3w)S zx=Qd%AHkJfA8yu*Y9s|xJS2a@cK<^JPog7)Z#0M_pJ%PKz;qM8Z8tOhVNzdE{c!f) z3#E&Kx5PChle%JV`Xw2hQzyBAUV(*rH{GB3yxuv_0;_Lo4i+cAJoh>Y~4KSZZld|I)5OQM)CU6c=9DZ zPqy&g*Mx;=1K{DXmvJ`-dm|m9-=uOBqq4kDwSkW)AM-W(Vzs4f-YYmF(CG1W;KG`L z>-)2vhqf>H#)Q3rKLM0KgO#2k+-G^sEGRjnksT>;lp@JUIkewN#CyhN(076iN&y79s(Gy@_X0}+tk1Oya>D7{Czbb$a0 zVuS#J&_f4-gc?bR_jT{@enY=;ws)K}?vL{$3`PiRy=$#!mCR?(xeW8DPnobjW7RT7CTsY*@W}wdRucjWpvpy;mJvI< zr>TQE)?lgS&M23tJB;*k0^9E6>}i^8yMw_Kg|mQw2M3IIkbD zXt1P)bT2JwMaxeo0>(n}1`%jtrx~$AV<{TSm1ngYtD5MPAIp$s#O+b;V|~9NTWjca z-)R|PJ+UOf@h129y2j)!(q1Wnxs!px5kHO86W0^a!gr_Q%o|$J^R2^Ebh|9&wl32T zTD2yom#Nz_8LK`BZ<&7{WnMmB{&sW?-*sj;tNhy|gEOCXlywDrB;EP1Qr&&D+{?uxzXs8EC4yuNK5zIc4*$zL`+#-s+)-}JR8%EN+Y+v+c zpVJ9)FfloSQbC?lC-hUx0y|&Rr-!V#3tHbC*){V+I+o^P>rN!mx@bZZP9X^F%@J`X)bX{)_hoB6uhd<+0za|-244?M`CPpjkM(kg+j#dhY&FV9V%5C+i;HxP&f9oo z`bmNHEk_DQ((vY>j%5D`nU#137X@IjGGUkfF|%#)sxlTtC!BACSJ~*QmAGE9t8cPD z%ovSp%D@=cpchQia26l9bcFJ5 z>!+kVc>Vp<>br(r!Cr%B84qsYWj%mb2=EasmB7+&NQmlPB(C#V;zZ zbhm4;o4f#IpH%%^o85hPaf5#Pg!hnK-`S^B-PSa||2@@+ z-!YpTwda$MfAKr}KL8tyT^q|Q!V7Hdrfsap#>S9nl=2oWE>xc8)mS3^o1;3)RARg> z#Y1VRb+aE-5B=ji+83EGAtoEySQ|8)Q<`X4}D;ZB> zqvu(=s9hN@Hz^z~qDt2Ja5Ph))(KK%h1KzMJ2Sl1G~O{-lst2u;f2jYXarBs?L;f8 z#9!fu#NVpR=rpex7HLcvS)G~%JO@=ey3Tr0XPVYsIk5mKD?IV~qDq&=pTBO7*kZa+ z45O=lX2$-JS_xY{M)d;~=iF+TX?BsGeKggK^LoOMk*kr55`uLXKMY$lCr}uMq4EJ` zoR-9K=@C@I)1tSV4PM6RHM|Q_bbY& z(5gnb%zv>CX z=BsL(+*XwAUYs~Gjf&-&YFJj5Ay{`%t`LqF=PkDif0d6nzwx}Y*mBI3#m2^EgZr&c zuBH^cgOZrT(# z>#9pS+w$uw8);(edZnNH9@MjOBP)5R`E9&DZ1A_P=7dX}#DHWe=g6Xm#lgbl;}~Tn zoP>aYe+~%=Vo=tZb!)jcyR)u}w8>Pt$Do@tFm=10OVJW-GX5FfKi)N6 z+0*U85j=Pelv3&+vpPN7T3fuPN=@*H+Q2nf^DGYRJQi%Q4iL<6yNUqSLZ&2-3TBw9 zN4?`99mF7D}nbh@3qa<;m*zB)!H@4a`# zCEl83B^{yXCnPsMe-2E$r>`S-E!|8&Bn$Ng5e=$F#WaK8xLgw;3$;q8AOS>R90zA# ztM@fSqxP~Cw)R%HdYv)r3Itm&w9LbDBeQ^;Iy4I}H6#i&#<9gZubfTq?ek9l-I(Y z@2B)COhNhw>8LAD^o}0J2cLnu63o|6%orn}S2Oi$tMPV)CD)7B>N6(3E_1C>b3W>- z+tvaMWmql&x_FG1!*)_&S7_q?K(#X3iRKaQT_|OiMkvlvVRm z)$}Flyg}wmYOmHi#xp&`vBZE13VKQb&lO?bDS^uzs|`;@w)cMMK=7$BlZg zIs_;$GE~@OFY_N;f1Vtlbim^YIkV9Gyq{N>vBYoy^SCh^pb4wK=wqOjE9Hhj>?5!v zSos+4dumC@n2RMPR{#U|V^3-L(I27NPMrePs1Q|2nP>{*C{%4&*%U#{Ky_o&+Rl6_ zpCuHaa-H8TCtFSQNG7fFKK0Jn+c=Z$*ip?xtNrXwXq)eV#_jya$?ps`IE4O7qlzAk zT=A~$69eazZ)*>xye7l8ld|m%mq))>f1tX{*=`#nb`&ssAmab8BgLPYk7(Nu7#4_5 zUPyJ;K)5I%D4-5b{m(r6pAhKt^%a)>P8!WawGw@{Abs@Alg!f6S7u_691Y1WrAqpe z5;{q3s-t=W<0GJPiGsr_3`t#^X%PFpZ%OW4=&Penz8{cGquttPR&NRYVYSa6@hJtJ zblwk)cs!`jR zCG{qQvZds_m`a&<{i623z4xk0(NWZ|F!}EQyw79HG}^IwM-9W|&yQ#x_?PxvQw+(e z401B59K@KkM&7O_ne=gCHwqw?*ZB?lg|cI0_34(Gs0{uYhxc+L-5}C6>&qF=889eR z*yfP9htFO1uoyII@^gBWpgn!Y_q_^}60)sEAOy;%G9OqUrz~I43NKPk@s;-B&LN55 zTzX8N1Snn{6I@w!kEx@L+=u&R1cnU!maq6dcV+W~DlS-+C_1~ex3sq(s|*4T(jAJ0 z@#ZEZ$DK!qpu%gdMwuh=aP!CNh3pV=J>t z$meJ-tGe|r_t^uccOTpR9Gq3O+jH++^Z3K=z7{_M9G7ImgL%+9nf@N!|HCj$I;2F`1WW#F>P+Ht#MoFs(qJX8aHw4x;^iG@@Mr* zdf7*XgU?z1bgVMnW#)Gd)QWlNt<>VAQ#-PIGvMLQ_lh~)(i(%-0i^yC!$i?pv)s>> zRT8qL+T(ZF;(MrP0`YWYCMx4UJpWs~Q~VArYKpgR#GA>e6Hrzt25_Yrmwo+c8gqp) zFRrxo!kHTvPEfO0z4%{tl=?N<`Cpyn&I4&ozrWL%2$OqTY`!Cuhrxkwp7*@>pw~H4 ziJ=a?{LT4D{r@;w1o)kNf_cCr1KR-1aMXOx{23Wkm}PATq|SHyh4d;WjzShne&KY@|)#@uupb-Pcqy=&jvlwPd<=v zs#GxIQn=uCmO;))K;ogXhLD8$qzOQ$#x5;_;we-Vw7{w06K?zh7`f@_sk1}7i0~;9 zeBM`AtA)5gNRxavf+l-6=HO;?^UJ!I6&QuBcMrAG!&Se=f2Dk#t};h{^qD?o-3dU{ zQD8Q?L(Z*(>2?gJF(MXc$;xy?XV7W`FpjcL1(;&)KHSo}I;ROX*cV%OFIj$Gh3D*; zKG7P5KM3|D8y&uYIUB^LO>@c_a45zZRl z{+=!)nba?PL%vg2f&W2Lo@c|_@~U`11pvCd@D+Fm>;Bj(aib7ecDQEiMx@B5p5>J( zhJ)#9&YA&BZLRHa{VIuii}2@$S$@Ezg2Q>!gow8s6euLjckfDU`qi__JAxmF$(J>s{XR z+Z#CymzUuos}d2xloN!AmN^+te+Ip4>|Cl`*O0L#s$pdowPEtj^z^(z|ePqaKqa>4pQ_Qso78AOtYvQBkMtEhlp zEpRzVi1#=X+JbDgM6W{@NwUofa7h_{h;0r%t>Hnw2FUfB%uhx=mU%DWFu(QmvH*`g zUWmBe#eWt9H7@dps}oeSU=D?LuGe1kv)~UaQbqb}6ge-d6gAbgL=PG$9NW8s9Pv|q z{7Jxe4lx#s>*+#ak8c|cmj|E!G&4XDL|X;9Zz4U%`aPWCSZ8DX1ctHJ{-fAFk5k!W z4-3b{)8Z!Sq}eu0#Dj7rQUzXTA3IE^TyzE~?I+4@iCi`qWk2CYsk#OPF>6Q9;bucM zdLu6ijFL=fOwBH*$-Jxy;nWsQ&2eG#u4iWQhy+(fcK3T25tVQ2()oe_8r8bl zif-j5mfmToX+`en8Ks42cVy3(gbBnQH-s-XAWWU}Fp!Y^jP7=W7xZ z%ZZ`-&zFR#)!^cAZ4+m_MzgQplKfYp&+Y-yTDeEI)8_a*)4r!z{Y%jGZ>7l}O`5zh z7x`Y+MGMEi-cY}M5cZ$slncO?qe!OM!KMKYI&$Ff#q{=fVA=%90Ld$@DCiCQS*fEW z(_xRYoqn0y^~oDsTN{oMQ-jj{kM0WA7-_&z|SC&-P% zSyx7a1#1S+4@uq|u4M?QC@;(Qv5tLd@0@1Is=RSuGvn0fBlM1Or`>tn^Ktz$njgdJ)5^H?!A8L)2Jd|JXtkIUw{;6C_qj3y5JF zLwuGIZt=?2V2ul{F`TBUIBd^n6DPH<$L#M;P{%ZR;DQu3k?9%AR^f3Ot#Am_!f=d! zxfg`GU;KtdPgZZT99u~x)ujkEIuL+GWT_kMUv5mSn)h$8zDj@3?7( z_;a3ekuJ0?ZEaHyz?Ace-wFUOd>@Lm0wZR)hvOiMT`V@A3RXF<#aK@CIX)VxF6*G1 zgH+vI&>0uJc<#kk-rW%MqNDJC8WQ<_SAiPlQ14Rf;)-U&obgVllK7M6$qOby@B0`* zPBw>2tSI*T(vLRSXF`w3ZDJ)pG`59&gX+5A$~o86hbqb>A)DtKEQJC#D}?H5ViRuk z$qjVBdFprN#OZ+tTv~>|hubet@pu|PU`GcW(O}4H2(oYnY!4Q$JiQ+92~x*zirgFY zn9D)AdGZK>5K z%2sW2$U75sHA5!+x4`=~Krkuf%YX@DH1sGDHTRJ$F)I)cr&rd)=|+dQw5AvMS9Gs# zY#2yiwrnKslDw2c22Y~zQJRZA-y`|zqDNr(mh zvZ*8_nFeA4*nwd*uB&kY zI;u4>+_tQ+hqVlbZp`R63A|D#5}Nc+Fyg&1ZZy1E;^oxur1Dw59$^ z-B+@tJ!VPi#_3aKn&m&wqrd!P?l0~5sjUA)9e-)-e~od_FOLIwr5^dUPr~v5Q^WM} zzb8Y3A;YrXO5HZwI(?`ye=sC3>2=`!drw(+Am~LNQI_ogHdW~7>F)=Xhet%%gJd#qmyc0?r#!Q@qLsIOHk<5r_fUuAB zpstUROQiMho5@cMZ@yGvy~<@Lim74HQS~agro+CMzVE4qVl*Gnl8ejX(e|Scu{bQ( z%Mf`VottDj&~9eN!^nIGFu=P|3Qt$1B{~um_YhSC<~TC5B61CIV|L+JMU#0RDSNqj z!5oYFAhVH!W&GdW?UeFJj#(>8PT9lv>zo%~4cQ+u*d8XSO8XnkZgvIfwyQD^K`4?g za8_fSOsG7Q0r;oksdec%n~P_aLgRy{H<;GR#(7EIr^Q%mN-HCmkHZVCR{+Y8RXbB{ zvqasM9JOff9jZqs1`A36VT4KsNNLAllmWN&Z5Q8(1N0bNgxk&MlmpM&dJ@)Zngt`*BW}85#ptnYvjooG~%gFMO zlA9DsG*qe7^_;v6XTL%^)91$5rR?vz0^YjIx=KEXIL6(WZFm7T=o)5(ma5IXAmt%7 z(^&V?9+z=R@XA_mHWUBAu7Eg53FIgf2IC4AAv(0TaineI7_n)^1^ySH0KTDfFJ3-V zWVlvfU9(ZszrS5iVTCq;ot1}|>i%f~srzD>_1 zvQSWV)aY~g@~*{V{60>3(CzjbtKB6Sr?p*B0ryn5QwEO|eEqz(v=qK!qCb@D`5?&N zAgZzLo6;yhh;`euGCdy0iIKDL_+j@XvPOPiiA$r(a8DHU&{fY&Od6~o z`3-$pR~i4wiRtQy`q2I4#x=yQ$u8hLId;p6e>&<2Y7CS>epkoI2 z`n~sgkyU*0S|qDguSTW!BbLvoCIgaa2d6)tYty~d&tW%)ZT~jt2Ljl%4ya?4ue?3o z@X&gGNqk`xm#$B`$w&&)$Ti++c4caKvA?R)JmF?Q_Sy6;yK33D+d?n{+*(m+TzUrF zP{87v?&o#G>1_|r*M(0{A)}x!!@bm@K+ls@uCC~;vC6I5%lkz~G3h`>!@LGadK1Aj z_1|`J9ud5VP-Q;PSum%|L40Bln1eX%!#8P6GV7hw%$~DoOxU^*JaAd9N~73Hjqv$g z>IT2>=$todA4tn8J{}3tU^n_V8N4jWODod?>>ev*-LQ;xtCVhl6{t*!w+O*}E%MmSaNI4D450Ipuz=c5S55&1!j z`b0n?7}|2;2UW^SJm3taLuLklPYDLWW)NyWsOArV>m%SUdnKC}`^^vH(|pqb{~@a7 z#3-K96=pKc52{zBBG}9dA_NfB$$G3G`B~JlpG6f?PQr=2z!>7{$vzk(fQ!U25d2SLkD;QV=_Z5A{6jFkRfvr0Z*7T zcEG?RtW=c-m>Wqld%$1X!2qNO6d1PM|KUW1=kv$nuPg4r_2)+52eGMtKjPGB&sQo# zs!PCKcLFW3K&fU>dWRoWg5Y)Fp+kSBKDRnD0mipEnO-W9s19=mkvaT-R>nb;IMZ$8 zWBXwVzP)bV49Wrfms;1My_+P;Zx}W@%#T}ZI;PpaskS#^ee|YMg~~{u>U>rDu?0_a z=roawd=$gGs5d5dh$5pV1KMWR5Fr;8M(|qeOhB!OziQ13qnxZFvOOB*r#pOmJjna+ zciZTd-Dcf@arRF%8SrttT65^2(F`|et9f}uq#P+L_ZZnp`Xnfuv|3OJasMn^Qm1P7 zBAwb1V(SH)0po!YwY@AM-^Yg#r8sTAn8y1=ekh`yoPlH6;Cd3BKu+&nK_c-QdPY}< z91W@wy*)?z`&~qP(|GuOyWss56J%U6$+RcranB$aMn0kyU(Hz;Iq`$)^Whc<@00l9 zc>{1jme~vYdF{<#y?+NNaC_$JJUcoIaMSGSr5b zA<}5YdvP@;{#_oJcnve7%lw@cfOG!U>+CS3S=&)Ssvu~v4xGgQ)m3fupL>^JsV-Hj_(j+YPPa27j={_y7bI8Z3+>$!9F_l0bK+kgfv^kkY@#1kv7LF7$YR?Y1TJ_jQ}v zD_oLR`7&*kBcQczhXG(hkdsJXU^A<2A@+d&n-)lX{kv!W3SB5L>~BSX84_?k=sm&=aIf8 zN5EfUbW|Dgs@{>i4d{sZ#0fYtCU*vWNC&IoqR^8;KdAcX4S|VdL}rwL6M-G}-}93L z@VsG;z+#^5bOt=}aN0A?f&h2<=@0HYB&EJGZH@-piY8uQcliIjQl z10LY#3r{~t^7Z@~X5WSOp|JL0&`}im6ZmI^&3{!0#8p_a>TxH^%{DC1TADzh3xFXA zPdOeA-S0P^fi@K?P6I0v>Ja+5Q7q`^tlK2U#Ljs9d~9Y4{SGt5;tptLRVL)w52}yp zB(=YnwT19t*6y)f9(njd3h;H}$tK_-Zg4<)<@hl zCgRHWIinuEfgoUrKI&JSQ%*i5p41{o!A^tl#<{Sq!8XP*-);C{RKbbfSnVc#YyXUsp^z0y1Ve(Bn{@c zu$z{b`E+E5qNHcX^Uby^6Z=+fCNGrGO*{~rvt%V1P5BL zYFy6}Qs?Ts#1;1V+!M(Bq-dtiX@$)%sSiE?wAPMV4nxa>EN|CFj||nwx4}bG;%Krh z$$)%kM6UFsJd=bOA+0vZ!SBdl?4E=4n`k&4$<@BOe#tk~RZqfXHl2y0MAElLwzHV3HB(CUK^ee}5WhnhiN{(}~) z8Ck8bm`2}Us>jY{&(4MQV`CYkHV{?ViQ?z1mBYkWFegV~E;BB39)wpQJZDL6;qRO4 z?(GqH3SGkUq+uf(EK=uZ!(}H8YEDrnd)_5y7Wa}O=r)ac6;e0zH$4=8P@QzShKWzc zJRqkh-MgR?V61=p&Du`M>Z72Nn^5}EIZqi4g&F_Z;tHhKIQFepdvThEPnifCJncjB zU5w9+g*`#EeVTRIt;l&VFdh>nXRFS=D?xmin@lU^6P5pHTlTH^{vD<_8-ll=s#o#{ z_bPvM$rDZ)xN|SB6eWInzXZA!e;*52RX{|8J{Aq_nN_}tq|bD&S8=Ai>E6Ql$Zl5cy;d(LytdEW26_q)IEue+1^?b&^9dmokVn1yTi_AtU?!|Jy}QN&fqyqM#tB zq^6>#{+-U!(9xVdOM8}@nwFlHmhK#IQPZ4fpg(v1cm6k!-_?KD0{-XDQlI@@;(zTT zeFZU|C7UNZPfo@UI>Sgt&PYaT2Y~_Nr37gIH~IhVB0ED)K}iL4iIxs1fVcp3pPc** z&{;|f3ZQfd@Et_KNO|$nwcAuo`j4pjJ(;DSCuN@%xKr7}VlaRay#Dyv3mRHhHg*n9 zAz=~G%VILJa`Fl{6jkr4scYQR)G{7?a`W;F3O^MUS5?;_YLRtc>Ra2|J370*b$=fm8Xg%P8=sh5Krb#W zudJ@EZ(#R+?H?Q-;f_y!<3$D{|0`Pmh1tL0#R%Ya2ABg1>fd;go$&(_IU@z-rE63d zZ|hS(@?_$detwquPEvMd3yr{a0}RXKX9KjXf-(z2*x#uA1+)JdVlV!;F#9jW{(;vd z=o~p2FnQ#RAP9(X97h73Y&aNDTNIs((Ar1f+ zUD&2ak3-(-UsB=1w5Myk=Wk@ZvEi@OyXI}2e8N>ya8-@(9_Pcju|CdwNwE(Gw7`AI zs4Ws`K9PJAT%CWgA1IkrW@Y12X1{0MCX?>VT1g}-EZ1FPS%uA{C7;bEV=>zKC8$<6 zdQ)mEph3l_7`j6OMX6ZqkwD6Z?ZI}Kif6UBpqzCS0@|)awb*9hGU@nob>s@44n(KE z9*JE8~=I*J022Bkv#v7itlsS+4Q?mS4uS zyAEk;>*9qT3A|z@YB<@G{XB~QywTuu*v-AamocQ<>okc^Or^M8RNti-FJ$#htq1M%2K2-V27cD%}W}X%IcdaUWrcSLCLj|E^K|Ff%tKmBk z2RyyDR(+IN9U|Ny&6NbgsS}#4_;t_xzzTmXJM?x_f8w-i79KoBW-QNr$CBwZ(Pq!o zW}}%1Uv2LCk=zou-zUrd>LCeavC$}%KR#Wa>l#w9krA04;32X9rs~FJ|3SVxJ)>&k zO=m=>&HKamwqUnMAr6`Z4*bncl`CTwcSqvOQkNr2by8nk-c1ATF}7V7`*tTTjOVpUB{gw>O!1Rfik!-Uty|th_GfBLkyu0p#n2{rGE4FgtGA6 zi7Kq5Mkva3K~@R-C5-A-WGy#eRaktuJMc39v4Z_n3m!FE?fK1&RBiHO@uXyjEI)3z@OI`bJn`!@S}XS9W z#T0i-%ALCRuaLF*vFIz6pb4&^O9CGL9nOOEqH_YvOu0Hky z$t{XBVt!`M&)C^wiZvJR?kTG+9D}c=Rx*YFovZEHb`YM!SVol}h zm|)!?TG2W&YVwy(gohvrr0MVBeq~~{<(#0GV6t=(Ezeg2qsMi9G+mD>{1XOS2$y+^ zXCY}%B3E{Q#PSh(zIT18vW(b6u;;v6)P6bnv%%i@ zyj;V%t8G`8PAZ~8DcAOJY&yfJY6M-8N)ObJVqGT7_EkYzkA7X+pe%Vf#c0x<;2cZ- zTjS0GbOVNr>_Q^L85|)NL#YZA3cFJn)WJrgNNxQ$+L_SQT;|7j`;J-Gn>lf}vp2v@ zQu~pE2Sb2c$k>;S^5ds_gu96{HAC+S&OB?PX1N6GtA=s+tRE?z728bAVLP}_=MXY zCUoz-i=cbkxisWcoU>;`Z0XC3bQK{^5_Ufyi0HoUlfUTcXQufz{;WMn@T_TUDWub z%^trH%@+~L?!~R&8GAZ%i;7Z}t)1tY`)x@}qh{BLVcqg_hbwA}c0OIF-b(706)gCx zkogJlb6^4Zc7$ypfvD;sB#_v~Jz!~_sCZtPrR;~T#*TOcJsa&|^nkyHwL^aL{z@cL z02K%xNbLEdAanqt+ehM#j>`sGySt*Jt?Wn2w~oBm-_Ab%@uR)=nIG6<2+`D-e1qJ^ zTCunB+qvy%y4QUTA}iCzntcYvy7yS{^lSt!Ym6?_9`4toEs*zYJOTOoKX(8 zpp5JH+$?gMBa{@S@!#Lg{^~y-Y=ZCWT6$iXpztGE=4qN}T$h_eW!>|Brswa^KfOL! zp~uph?O^AsJk;%4xQiFmUCyoj#pU&eI$}CNp;J%xylktfiS%nY6?Mph z0t8^T%|;8ZI*Ws8Y%jzqMD1_>lCo|7i6@8`&RJ*?8$ZfBBMh>qyY zdJORi^-w`Y+!}SU1UW*sL&2-EcuOe)R}#kN(J%kS#Y=sscLDk_F@j;~=USvrc$%-n z=7%&%pk?aEum(@$d(`}OteM4I?ntYvTj~r5?Zam(-rs8#R!~k+ z1THVkU4~`W>FT`3wQr3Kuut}V=*SYS#r3ZMAc$v z2%)U}6IPcI3Tq(JylIsBIXMKhaR#;&s!+-jq*w3Cp@dJ=I*qi&$!pJ7kw8CIv9SQ9 zW|#t_<=jT3AIC{TR=jYnq4fo+K;Jeh4oWCbcL7*khOKdXT77>5rZs6()*b+sgD4`n zOS%p!M$I7evygDP-c&5SlOcOVrh;f{3;+lZX+Hmn1WIZ{uM*GgH^cTmSV)S0JwBbo z=t&ob2mA`%{Tr(9A}QfJi-lT}G6!@+o3>^8!04dnsB@M5|5_DAG#%b0fhg#4xA`fd ztifiBsKc~(@KgCgV7tZGz<{C4B=U_h78X{MKwkll1HX2+J^5e@u#O(EP%MY=!&*=z5OqJmf6G`e?C?I&iU9!c^IzaO;UMj?wq7IzGwf%S!oKnbg}I0{)+byo@l>pM)BourcYvGj5((tJwB&u` z#-?p$3eW zFj@#DLZte=Dnx(A?o<@cwJB~`M8PTeXKzsU>?T|qlyzGYC9cf}nzW-XAl!Xt7E-K6 zYrp05$~UK`4r6X}eZI{TA6f>+$%oIkkU;Nx7O8>J2d2c(lt@2?yINM~KeTuOa>zW0 zI<__@)+`fYo_UP|eY3?6^axNw;mJCxf%}k5f_W)fC&#$p}+Q*3Ew!C{R_Gyu+1lAyRf=8;w6R) zO+tX6i4h@cEV(zV=w0K;eZ9m=eeN~|_y-f*Dx<&pU7RM@b>{oqh67%4i$e+=C#IW% zFbp)RrH%wz@x(RZHUez{N-g#WhA<3Fox6@Efnu!!|N3?Rmwd2qGgv!-3oIM~*qc%Z zCFH9B6ovfx3P#lN(O;pcOy|UW#g#1RXm`Qs2%6bzM80NBR#};|sR^s%a!iTU+OHla zK|lRSO6|^eg>T9gMB0sLLgOfEnKseuTzTxebY;?}^-VbF{***1)XU!LOB<^P|i=qixaNP6vrNYcoBD!fh#;z#0g-f^e_}~hDW#&v|f}AAMTkz z)kyF)>KEQzv6e8I#^@mDXNMDwh=xa3x}SCR`Z`lANU}POZ81bzuof-Y(mNe;j=hpp z)-N`X&@QuC`AK&}D%01m=7CuI`wLfNs5v$>sGgy!ZMTIMV3R#9Y+08u-We|^-6I=d z3lkZK!;{^I4VQl~h2_2f=-KASJr;vwBGO&Ln0E1s5A7dwp&6pQw=Jzx+E{r7#)5f5 z>=qhkbVU4Bx_R@Ara10@S|juP{@OD<2m;oiLi3xpVo=h0ZSZBki^IrFWE|+gzKl8uryR`t2_~_g!DL=$yXy7?NJ`)d82n zXdzA&=LpWYLM&ZNJ#$9*Cj6YNlDmMlWvuEs{XS1>IQY#{693kQ`c?mmYXHf;C?K#^ zp1vbo$69RK4sQqFSkyk=M=_Xv5OelvdbY=r7qPuvYDX_q(JY70Wf#-riVQaBTNDNs z6^iZCFC>tYyO#~l5Np@P3&ypD39nI`4QI2#1CCKx)BZB#>Jo!^TlF^{_05Btbsl6kfJ=QvOaQ zy=2Xg(y!FiBt@*7(f;^3-;3)%RmnDN40omwNITzaQ==#d%ndea+73rZZH1K1IiaeL zI_Ra^6p@KFGm3|Jn?Z!O>t?Tz`$WO$%AiciD_QMNk2BcIh&=*{*LX#4oE_-;H5V4j z7Obr|p|&q|!5_NFTZEBngYlNzwuf>K?#J6{k4gm#o~Xr*77TvZ%pZnSr$5Nhw3!h} z`YKsBo%!I0=81enN_%oN_^HFQ zCpsT5Q#dBsynOuB%+0NEmVN!8;)gZ$p&SOheF<+C+BYdt(FTprU}#Ywuq`qNftjr~ z14G&!5NFRZ>L^*sb~M$DOSiaR`8LHOf47uFBi1HZ0M~}rn{YgIN8*wkumbux+m9{i z84;tJW=uf?T02vG9MLoG{mzG8Ubnt_*j}}ui~H$)>rqH*ZE&mF&5S_XlVPh~Z-~Re zj7wkZr0ijC(X_^+!gb$0>shP&zWFu!MFBibsYWUL6=@Za`Qj7SM7%6P9`~UbXA?rL zjVml|a2gFPsNiY(5y~DL($V#5^^EWYtur<@>CBF#BjTmziXQtF4D2hE3ztGX+ZKY^ zSv13ze_0H1T&T^@pP0s#=vhN-rFGmDYG3RyXFNroE#ua>_)Sy)7x!5A96|+^LjV@i z7te@YyvhSL3O?@O1we`C$FiJE5)`4#dU@qZ4u!EL&cgC?Pt8@KJ|3L@%k^NIQk1OwljnVrCLZrudY91iWxB`6KrONFSw&(*KC>nQ0YI6odiRoy%NVJf6q z*B*A2dJA7j0+}TA>_RRA%Xa~st{D`phaHOu6|r@(W$_Sod7q$hicHFeH8CJgSS>P|53kT7$c&uDZG4@XFs_uz*(ewdHmH+9UkNs z0|`X=80Ure!CB1G(c}(0vF8lwGl_Uk~e#qF|0`b%@M1-)5=0$VGHT)V4>>w(yEvGS}2w2Z!Xd9L9a`_>05x zlEwRg!HR=bo5mq*UpAk?^_2U!wWiOq4Jvb>E9lnhRp5Dj^hDMJATiEnAbpXmvuS{ze1vHnU&2kvzu)y z{tqVP@&)MY|u$YvMe}8WvETT(Y;027cQ@=_kmPd`*#DS7o|JHv@JjE5`JCM~q zJ^Vg=LE|6UTdY6gj3iek8=q%U3K`>hx(Gx-N)JsTi2if_%xcDz=a;uZOF5ex$z=67y zxrD3{(=9*nuVazZ6Fp4sKe8X`EUT1$jm@S9QT@~naVh*qfB(?+D5~mUiTN4u*Y4nY z;gtNflA<}CVjD@gBhRPC#&<`(UQ%gP$9d3qd2ZFbn!=?a35!ISAPI!hBr^YVp6ub> z5|_~hJJvmFhO@Vq>z-*l1oE^eKf58gdZVx=Zil@(%_dGy0A)K`{Lj_?IZq}O@sd-g zSk)CuS<1MS_uy`&`a8k*VqsL8A_+?w$U}VM@h;?)09iCr>GC9jAjz<~JQ9fZ4-cS< zGJhpatVncCysN>Wcay3a2Cp?~lI`QnJr-!5ah5mX^G?%`@)m(OrmxdKay=K+HRnz2ZD^W@(Z77${fu3|+;H0ODXgqPl0c8IzD)|- z8LYm}om6>G4YYQoU;kweXM!Pt`dvFvxSRDP5PA&|q@WC^RE?H^&^}c`lnhgp81^Xl zBeFC?_BpXoB7+ACR}WdRY$JhgSFi$W(BUQ^Ykxc+>%&z7n5X_&Iq_eiljqE+Z>+-p zwR-L!!GqS2|F>)ZG$;RuNA1c=%(9Oew3*kkHlLoDUF^)dS${HkKpc=^WN4DPxELTN z-OC-(CPs*qqlOus6^Jz9d3A$&{l6Abb{l1`?15hZ0c1*@a=}+9JrYu*7EuR^kkd#v z5@_GSmiUrS`~79AMo%bd-qOon!DQ`hZfm9A+h@+6)HwZpJ2#sp^)i2n(o z$3Mg;o-&Wv-64Tqvj86fMf0Ns$Ra036a*x4hA!BKHw=Gnf&^OoKFuTkhi7Oz3B)Pi z28&eT$6f?VILSTFpK;N4T{(t0Uu_)>2s*5tneuFKwY$->ev50^G}S-la1iG+f6A$} zt!?#A;=}HnZui3JS@p_s_Vfo|W|-ZH(awSc9kM?u^uPJC&g_i>;u6Y9j}BMAGD=rIsQKC37dwyT7Ye5#bl2vP7NId zX6SPLK7PXYb$~oOizv&Qwd44oDp2 z7|BYsYn?j@RJ$W%JmkH(t@I#D9p&sZ)||Dc6Q7Qng|HQ0T-vs zon9-oy%>CJkZ@@s)7s7;4c({LkTp1CpD}7SDN>)N@aUI-0|TplnymXqKFx7hOP9PK z{yt7#chuX`vSeFpmL6v4&O7!%QEg%73~(&-z~H+it1hHth2Is-+F106>rf@#oK4915>bB6iASLJiSXlBd6$HY zKIG=&%<<~}ri;q6wowJ6l0pW-<2&BkJ#q-ci#lB2g`

(r&QiIDUN{W!%%nFTVW9 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 S8tP|5{CwBU8{Q#*4E`T2uv4x8 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/rationalnumber.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/rationalnumber.jpg new file mode 100644 index 0000000000000000000000000000000000000000..a563d96f0bb302645db5ee1c604d4c51f31c9407 GIT binary patch literal 34447 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�*Q-%O1gZ<*NI*BMVX1+)&wzkKC~nKA;c%hLme4< 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%0ALI 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/scopehelper.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/scopehelper.jpg new file mode 100644 index 0000000000000000000000000000000000000000..64748977d4bfa0231ad88e8a6727a10c0ddd6451 GIT binary patch literal 39877 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

&u_u+933H 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 z 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 HU*7%;8zbJ? literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/typecheck.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/typecheck.jpg new file mode 100644 index 0000000000000000000000000000000000000000..12f6fa162249e6a1ef485159bf1f84680769121b GIT binary patch literal 30973 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 G>-jgGpu`&h literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/util.jpg b/sample/EnhanceSampleArk1.2/LanguageBaseClassLibrary/screenshots/devices/util.jpg new file mode 100644 index 0000000000000000000000000000000000000000..08b664cf32d40909537df8be16347649c5a1cefe GIT binary patch literal 20753 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 YCxz#%Y(S)=sqLDr?0%75=-I@71N!S`N&o-= literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/.gitignore b/sample/EnhanceSampleArk1.2/PageLoading/.gitignore new file mode 100644 index 00000000..d2ff2014 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/.gitignore @@ -0,0 +1,12 @@ +/node_modules +/oh_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +**/.test +/.appanalyzer \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/AppScope/app.json5 b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/app.json5 new file mode 100644 index 00000000..9711c466 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/app.json5 @@ -0,0 +1,25 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "app": { + "bundleName": "com.samples.pageloading", + "vendor": "samples", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name" + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/element/string.json new file mode 100644 index 00000000..179f90c3 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "PageLoading" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/app_icon.png b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..a39445dc87828b76fed6d2ec470dd455c45319e3 GIT binary patch literal 2777 zcmV;~3MTc5P)9*YHQQH znh@I(s7WDIN`nJ+5@|<)iZcg=qN74U#DNnD1Se7u4fs(|1ivr?9ayP|B3iYCD$mfQ zCQ{S1n2)}^yxe#1J=_0pt-a1UPwQ^Z*?X_`Uu*sM+8<}X+baE^a`3seUF}?bEaiMO zrD`Qrd5@qw^epHZ>Df|p-qKBUEB%*?!m0{PHC6j|RplEgR~PkM5a^}N)Sfwi>W;Uz zdhwo_4HXBU%kRl^w@&7iKPx$e-n9%#IU!&oMI~iNsw0n19qSX;dS>I`G_G=WdcN9r z;_Rtv9XC<7kbL+HHxJ782T~pg05t)tf^>2vNJqfYt{YmqQDoBxkv+ra*BxxhcuK2v zm5%@Y)biQz)R8O%e=o%n${;ojY;EUP>`Qj6Cq)7GHm)C%2%^+hI;Z4T#a|oKIvshv z5H%!I+|I4PEXaXj04%ybsVolr%vhKnW7AEhC?eP!o1{y;8m2R#;}{6VZPc!+)ou0C zVWz$|1#2(|L5z%EYRxOzP+uLB>qYGuajX-<#^u;Kw&2uh&93)h>nHaFA%{&2PW=Nn zr?*a;gk3xvRhQIRa1de-!r(ss&?tRmZ=L2FMkhxI3lK6Jn<>5c*ID|@KU#^MCIo6> zpFA{|R(4fsBwHIW z9v!7G|7enadv4}~*8q_h%tD^j$7=PCnn0=dR0GKA(fgb9`2IRg6ksBIo+Gdw#|-3eSe=3tmDe zIqVN)tScM`0W#Z>2wc>~2Uv=3L)~D4gXqZtPQ8rifbYJqwkG>bv}95G7+};9Br?hF zWSa3b)X}z#79W9kukM%6-b_54WDJm~Ub=gsrJ0lz-8&lrQ7zfK1qzuZQkZvcE3|~S zZWmk0ETaNIHnMALn>akuvHLf5c4`y%!f+u>ZGp%@q_;T!`76_snc_?K;Wx%YpF;5K zw^F+BCYUPy`fpRif@5O@Im5cf?evD$>KlAgX;D0*HiO0`Yg3j;R4jT(9h(L_TsY6yxk*@ZBe%+dMqY=cB5oGs{D$QwOFbH)G$iVf<3Olcd7^#fr- zM{!ILWt#coT)s9ySkwDCPHv0oww8g8K%Yr{aR}msELVX(}JQr%F4Q8=KKn*OjSO*uSp;JK%GwhRF_K??vGC$ZqmJX z@+}8sQ)9Z}3*DiWl+L_7OXn_^{SW~2&C*b^;%IP!j$lkre7H&bMR1}7aTT*G8P}|G zHM1)hZDe{r_E3{{Y=d}}_PxJO_w4MaE4)$<<3JwzPdwPzfNemK(-X;{UCzmVr0zu5 zEnT}fzx)oVd!*W77`1Ig`DFcZ6TkPaI$hO1+`cGb$({ukz&{p4Ic-Xnwrg-KEkDqW zW3l$7Q`V$!1T(=QL1jgjIachdr75>-8>1A^h+;rTrD^nnwf?bw(Rang!*16Odj$Pn z@)JN5&5w~}ae6d};oa|&G>sT!)ixE#5;QW(u(=bqYHXcOflE%@t4A?n5fTUm0F~8_ zwpoz9rrU`@G=vsNjDRY(CrF(jIjqg8bd|CP02>eFag7T?u;C^ir+Z7YKmBYw;%%XdT2T}a$X4yR7EI;zaof3a)5Z;`OwVi%D?gbkBj!{;z2tOBSFk&E1DeiZXD**uvNqL}+|pO{ ztO$}2NMRit2ddU?)7Prq&*&H3X>&=E{-+j4iUz zrvL;?0$^@lyl=LHz9G^$SJV6ID__@7z->Bh>Vm=6AK&5bP%@heveHja5F@agGgUsY z@L@W2+^*NVoId0!kS~4XkWb%y;f}XBf>S+NIw9aHK;vN+4mJ|em)_QjIVfb2$;bwv zDKmoq6AThgKydS6Hs+UpKPWq|UA}s=UOEBZNM3oNT5qTAabY)X>L6jxfGDuu7&GD_ z=@@m?sJ-o2GS}&hNRW}-zHkr>o4&138@a8IC-FjSBxzjx?(*3@YmdmWGAd%0QvXzS zJ53JpX%Fp!=>v&`Hd7F@+Atw2vx9%^2M-APg0Jd|ePsRn3*B$#9Z5hCou4fo7W#SN z#}-@-N=##yQDh26pNzr9f*Q88krhI5@DHcf{dU-~PLSs}MvI4s1i|<=qxD~9`7>*~ znlw5lr$_6mTG4XbBNF_79BzvZ!TeIP)exdk3)kSHjYdW1P10ZJ_NCJSlrCuIU#gqw f88(SSw!Z%ZUzhC#9QlKF00000NkvXXu0mjfG$}gK literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/README.md b/sample/EnhanceSampleArk1.2/PageLoading/README.md new file mode 100644 index 00000000..62ddbee3 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/README.md @@ -0,0 +1,163 @@ +# 页面加载效果实现案例 + +### 介绍 + +本示例介绍Stack堆叠组件和LoadingProgress加载组件模拟首次进入页面实现页面加载的效果。加载完成后,LoadingProgress组件会消失并展示加载结果页(即商品页)。 + +### 效果图预览 + +![](pageloading/src/main/resources/base/media/page_loading.gif) + +**使用说明** + +1. 进入页面开始加载,加载完成后显示整个界面。 + +### 实现思路 + +1. 为了实现在页面初次加载时即展现出加载提示效果,预先定义了一个布尔类型的变量isLoading,并将其初始值设定为true。在页面加载初期,这一变量状态将触发加载页的显现,传达数据正在加载的即时信息。 +```javascript +build() { + Stack() { + if (this.isLoading) { + // 加载页 + LoadingHUD(); + } else { + // 商品页 + CommodityList(); + } + } + .width('100%') + .height('100%') + .backgroundColor(Color.White) +} +``` +2. 使用Canvas播放lottie动画以及Progress组件实现进度条 +```javascript +Canvas(this.politeChickyController) + .width($r('app.integer.lottie_view_canvas_size')) + .height($r('app.integer.lottie_view_canvas_size')) + .borderRadius($r('app.string.ohos_id_corner_radius_default_m')) + .onReady(() => { + // TODO:知识点:必须要Canvas组件初始化之后才能执行lottie.loadAnimation方法去加载动画。 + this.initAnimation(); + }) +Row() { + Progress({ value: this.nowProgress, total: 100, type: ProgressType.Linear }) + .style({ strokeWidth: 10, enableSmoothEffect: true }) + .color(this.gradientColor) +} +.width('60%') +.margin({ top: $r('app.integer.lottie_view_canvas_height') }) +``` +3. 为了模拟真实的网络加载情景,设置了5秒的延迟加载机制。在页面初次加载后的5秒钟内,isLoading变量保持为true,保持加载页的展示。当5秒时限到达时,将isLoading变量的值更新为false,代表加载状态的loadingHUD将会消失,真正的加载结果CommodityList商品列表页面便会呈现出来。 +```javascript +aboutToAppear(): void { + // 模拟网络请求操作,请求网络3秒后得到数据,通知组件,变更列表数据 + setTimeout(() => { + this.isLoading = false; + }, MILLISECONDS); +} +``` +4. CommodityList商品列表页面采用[RelativeContainer](pageloading/src/main/ets/view/CommodityList.ets)相对布局组件,容器内子组件区分水平方向,垂直方向,子组件可以将容器或者其他子组件设为锚点。 +```javascript +RelativeContainer() { + // 商品图片 + Image(item.uri) + ... + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + left: { anchor: '__container__', align: HorizontalAlign.Start } + }) + .id('image') + // 保价标签 + Text(item.insurance) + ... + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.End }, + center: { anchor: '__container__', align: VerticalAlign.Center } + }) + .id('insurance') + // 浏览量 + Row() { + Image($r('app.media.page_loading_views')) + ... + Text(item.views) + ... + } + .alignRules({ + middle: { anchor: 'insurance', align: HorizontalAlign.Center }, + top: { anchor: 'insurance', align: VerticalAlign.Bottom } + }) + .id('views') + // 标题和价格标签 + Column() { + Text(item.title) + ... + Text(item.price) + ... + } + .alignRules({ + left: { anchor: 'image', align: HorizontalAlign.End }, + right: { anchor: 'insurance', align: HorizontalAlign.Start }, + center: { anchor: 'image', align: VerticalAlign.Center } + }) + .id('column') +} + +``` + +### 高性能知识点 + +本示例使用了[LazyForEach](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-rendering-control-lazyforeach.md)进行数据懒加载,LazyForEach懒加载可以通过设置cachedCount属性来指定缓存数量,同时搭配[组件复用](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/performance/component-reuse-overview.md)能力以达到性能最优效果。 + +### 工程结构&模块类型 + +``` +pageloading // har类型 +|---mock +| |---CommodityMock.ets // 本地数据源 +|---model +| |---CommodityDataModel.ets // 数据类型定义 +| |---CommodityDataSource.ets // 列表数据模型 +|---view +| |---CommodityList.ets // 商品列表自定义组件 +| |---LoadingHUD.ets // 加载自定义组件 +| |---PageLoading.ets // 主页面 +``` + +### 模块依赖 + +不涉及 + +### 参考资料 + +[Stack](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-container-stack.md) + +[Progress](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-basic-components-progress.md) + +[RelativeContainer](https://gitee.com/openharmony/docs/blob/master/zh-cn/application-dev/reference/apis-arkui/arkui-ts/ts-container-relativecontainer.md) + +### 相关权限 + +不涉及 + +### 约束与限制 + +1.本示例仅支持在标准系统上运行,支持设备:RK3568。 + +2.本示例为Stage模型,支持API12版本SDK,SDK版本号(API Version 12 Release)。 + +3.本示例需要使用DevEco Studio 5.0.0 Release 才可编译运行。 + +### 下载 + +如需单独下载本工程,执行如下命令: +```javascript +git init +git config core.sparsecheckout true +echo code/UI/PageLoading/ > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master +``` + + diff --git a/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 new file mode 100644 index 00000000..4e296f0d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "app": { + "signingConfigs": [], + "products": [ + { + "name": "default", + "signingConfig": "default", + "compatibleSdkVersion": 12, + "compileSdkVersion": 12, + "runtimeOS": "OpenHarmony", + "buildOption": { + "strictMode": { + "caseSensitiveCheck": true, + "useNormalizedOHMUrl": true + } + } + } + ], + "buildModeSet": [ + { + "name": "debug", + }, + { + "name": "release" + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "pageloading", + "srcPath": "./pageloading", + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 b/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 new file mode 100644 index 00000000..44d50304 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ +{ + "files": [ + "**/*.ets" + ], + "ignore": [ + "**/src/ohosTest/**/*", + "**/src/test/**/*", + "**/src/mock/**/*", + "**/node_modules/**/*", + "**/oh_modules/**/*", + "**/build/**/*", + "**/.preview/**/*" + ], + "ruleSet": [ + "plugin:@performance/recommended", + "plugin:@typescript-eslint/recommended" + ], + "rules": { + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/.gitignore b/sample/EnhanceSampleArk1.2/PageLoading/entry/.gitignore new file mode 100644 index 00000000..e2713a27 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 new file mode 100644 index 00000000..e7569e30 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 @@ -0,0 +1,43 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + } + } + } + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts b/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts new file mode 100644 index 00000000..e4f43d54 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { 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/sample/EnhanceSampleArk1.2/PageLoading/entry/obfuscation-rules.txt b/sample/EnhanceSampleArk1.2/PageLoading/entry/obfuscation-rules.txt new file mode 100644 index 00000000..272efb6c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# 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://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# 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 + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package.json5 new file mode 100644 index 00000000..7134a935 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "name": "entry", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "", + "author": "", + "license": "", + "dependencies": { + "pageloading": "file:../pageloading" + } +} + diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/common/lottie/pageLoading.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/common/lottie/pageLoading.json new file mode 100644 index 00000000..89edde9e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/common/lottie/pageLoading.json @@ -0,0 +1 @@ +{"v":"5.9.6","fr":25,"ip":0,"op":101,"w":600,"h":600,"nm":"huakuai","ddd":0,"assets":[],"layers":[{"ddd":0,"ind":1,"ty":4,"nm":"five","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":21,"s":[10]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":26,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":51,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":57,"s":[-10]},{"t":62,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.351,"y":1},"o":{"x":0.276,"y":0},"t":15,"s":[520,360,0],"to":[-4.667,-15,0],"ti":[22.917,0,0]},{"i":{"x":0.351,"y":1},"o":{"x":0.276,"y":0},"t":21,"s":[465,250,0],"to":[-22.917,0,0],"ti":[0,0,0]},{"i":{"x":0.416,"y":0.416},"o":{"x":0.317,"y":0.317},"t":26,"s":[410,360,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.467,"y":0.739},"o":{"x":0.225,"y":0},"t":51,"s":[410,360,0],"to":[0,0,0],"ti":[-18.333,0,0]},{"i":{"x":0.579,"y":1},"o":{"x":0.256,"y":0.125},"t":56,"s":[464.291,250,0],"to":[18.333,0,0],"ti":[0,0,0]},{"t":61,"s":[520,360,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-162,-58,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":21,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":25,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":27,"s":[120,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":29,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":51,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":57,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":61,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":63,"s":[120,70,100]},{"t":65,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":15,"s":[0.623529434204,0.917647063732,0.494117647409,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":26,"s":[0.443137258291,0.737254917622,0.078431375325,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":51,"s":[0.443137258291,0.737254917622,0.078431375325,1]},{"t":61,"s":[0.623529434204,0.917647063732,0.494117647409,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,-98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":2,"ty":4,"nm":"four","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":16,"s":[10]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":21,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":56,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":61,"s":[-10]},{"t":66,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.316,"y":1},"o":{"x":0.24,"y":0},"t":11,"s":[410,360,0],"to":[-4.667,-15,0],"ti":[22.917,0,0]},{"i":{"x":0.316,"y":1},"o":{"x":0.24,"y":0},"t":16,"s":[355,250,0],"to":[-22.917,0,0],"ti":[6.307,-19.302,0]},{"i":{"x":0.316,"y":1},"o":{"x":0.167,"y":0},"t":21,"s":[300,360,0],"to":[-0.116,0.355,0],"ti":[0,0,0]},{"i":{"x":0.583,"y":0.775},"o":{"x":0.167,"y":0},"t":56,"s":[300,360,0],"to":[0,0,0],"ti":[-27.317,0.053,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.417,"y":0.224},"t":61,"s":[354.435,250,0],"to":[28.392,-0.055,0],"ti":[-2.765,-8.21,0]},{"t":66,"s":[410,360,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-162,-58,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":11,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":16,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":20,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":22,"s":[120,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":24,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":56,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":61,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":65,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":67,"s":[120,70,100]},{"t":69,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[0.443137258291,0.737254917622,0.078431375325,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":21,"s":[0.298039227724,0.623529434204,0.043137256056,1]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":56,"s":[0.298039227724,0.623529434204,0.043137256056,1]},{"t":66,"s":[0.443137258291,0.737254917622,0.078431375325,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,-98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":3,"ty":4,"nm":"three","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":6,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":11,"s":[10]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":16,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":61,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":66,"s":[-10]},{"t":71,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.369,"y":1},"o":{"x":0.258,"y":0},"t":6,"s":[300,360,0],"to":[-5.167,-18.5,0],"ti":[22.917,0,0]},{"i":{"x":0.369,"y":1},"o":{"x":0.258,"y":0},"t":11,"s":[245,250,0],"to":[-22.917,0,0],"ti":[2.434,-10.892,0]},{"i":{"x":0.369,"y":1},"o":{"x":0.167,"y":0},"t":16,"s":[190,360,0],"to":[-0.385,1.723,0],"ti":[0,0,0]},{"i":{"x":0.583,"y":0.776},"o":{"x":0.167,"y":0},"t":61,"s":[190,360,0],"to":[0,0,0],"ti":[-29.055,-0.462,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.417,"y":0.224},"t":66,"s":[245.406,250,0],"to":[28.268,0.45,0],"ti":[-3.029,-9.151,0]},{"t":71,"s":[300,360,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-162,-58,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":6,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":11,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":15,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":17,"s":[120,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":19,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":61,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":66,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":70,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":72,"s":[120,70,100]},{"t":74,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":6,"s":[0.298039227724,0.623529434204,0.043137256056,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":16,"s":[0.176470592618,0.474509805441,0.023529412225,1]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":61,"s":[0.176470592618,0.474509805441,0.023529412225,1]},{"t":71,"s":[0.298039227724,0.623529434204,0.043137256056,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,-98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":4,"ty":4,"nm":"two","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":6,"s":[10]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":11,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":67,"s":[0]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":73,"s":[-10]},{"t":79,"s":[0]}],"ix":10},"p":{"a":1,"k":[{"i":{"x":0.458,"y":1},"o":{"x":0.222,"y":0},"t":1,"s":[190,360,0],"to":[-2.417,-11.5,0],"ti":[22.917,0,0]},{"i":{"x":0.458,"y":1},"o":{"x":0.222,"y":0},"t":6,"s":[135,250,0],"to":[-22.917,0,0],"ti":[2.778,-8.535,0]},{"i":{"x":0.458,"y":1},"o":{"x":0.167,"y":0},"t":11,"s":[80,360,0],"to":[-0.664,2.04,0],"ti":[0,0,0]},{"i":{"x":0.583,"y":0.731},"o":{"x":0.167,"y":0},"t":67,"s":[80,360,0],"to":[0,0,0],"ti":[-28.172,-0.208,0]},{"i":{"x":0.833,"y":1},"o":{"x":0.417,"y":0.269},"t":73,"s":[135.986,250,0],"to":[26.782,0.198,0],"ti":[3.225,8.657,0]},{"t":79,"s":[190,360,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-162,-58,0],"ix":1,"l":2},"s":{"a":1,"k":[{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":1,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":6,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":10,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":12,"s":[120,70,100]},{"i":{"x":[0.833,0.833,0.833],"y":[1,1,1]},"o":{"x":[0.167,0.167,0.167],"y":[0,0,0]},"t":14,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":67,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":73,"s":[90,110,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":78,"s":[100,100,100]},{"i":{"x":[0.667,0.667,0.667],"y":[1,1,1]},"o":{"x":[0.333,0.333,0.333],"y":[0,0,0]},"t":80,"s":[120,70,100]},{"t":82,"s":[100,100,100]}],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":1,"s":[0.176470592618,0.474509805441,0.023529412225,1]},{"i":{"x":[0.667],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":11,"s":[0.141176477075,0.388235300779,0.019607843831,1]},{"i":{"x":[0.833],"y":[1]},"o":{"x":[0.167],"y":[0]},"t":67,"s":[0.141176477075,0.388235300779,0.019607843831,1]},{"t":79,"s":[0.176470592618,0.474509805441,0.023529412225,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,-98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"ct":1,"bm":0},{"ddd":0,"ind":5,"ty":4,"nm":"one","sr":1,"ks":{"o":{"a":0,"k":100,"ix":11},"r":{"a":0,"k":0,"ix":10},"p":{"a":1,"k":[{"i":{"x":0.111,"y":1},"o":{"x":0.26,"y":0},"t":0,"s":[80,320,0],"to":[73.333,0,0],"ti":[-73.333,0,0]},{"i":{"x":0.082,"y":0.082},"o":{"x":0.213,"y":0.213},"t":39.967,"s":[520,320,0],"to":[0,0,0],"ti":[0,0,0]},{"i":{"x":0.112,"y":1},"o":{"x":0.26,"y":0},"t":50,"s":[520,320,0],"to":[-73.333,0,0],"ti":[73.333,0,0]},{"t":90,"s":[80,320,0]}],"ix":2,"l":2},"a":{"a":0,"k":[-162,-98,0],"ix":1,"l":2},"s":{"a":0,"k":[100,100,100],"ix":6,"l":2}},"ao":0,"shapes":[{"ty":"gr","it":[{"ty":"rc","d":1,"s":{"a":0,"k":[80,80],"ix":2},"p":{"a":0,"k":[0,0],"ix":3},"r":{"a":0,"k":10,"ix":4},"nm":"Rectangle Path 1","mn":"ADBE Vector Shape - Rect","hd":false},{"ty":"fl","c":{"a":1,"k":[{"i":{"x":[0.444],"y":[1]},"o":{"x":[0.249],"y":[0]},"t":0,"s":[0.141176477075,0.388235300779,0.019607843831,1]},{"i":{"x":[0],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":40,"s":[0.623529434204,0.917647063732,0.494117647409,1]},{"i":{"x":[0.444],"y":[1]},"o":{"x":[0.333],"y":[0]},"t":50,"s":[0.623529434204,0.917647063732,0.494117647409,1]},{"t":90,"s":[0.141176477075,0.388235300779,0.019607843831,1]}],"ix":4},"o":{"a":0,"k":100,"ix":5},"r":1,"bm":0,"nm":"Fill 1","mn":"ADBE Vector Graphic - Fill","hd":false},{"ty":"tr","p":{"a":0,"k":[-162,-98],"ix":2},"a":{"a":0,"k":[0,0],"ix":1},"s":{"a":0,"k":[100,100],"ix":3},"r":{"a":0,"k":0,"ix":6},"o":{"a":0,"k":100,"ix":7},"sk":{"a":0,"k":0,"ix":4},"sa":{"a":0,"k":0,"ix":5},"nm":"Transform"}],"nm":"Rectangle 1","np":3,"cix":2,"bm":0,"ix":1,"mn":"ADBE Vector Group","hd":false}],"ip":0,"op":101,"st":0,"ct":1,"bm":0}],"markers":[]} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets new file mode 100644 index 00000000..edc2839f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; +import { hilog } from '@kit.PerformanceAnalysisKit'; +import { window } from '@kit.ArkUI'; + +export default class EntryAbility extends UIAbility { + onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { + this.context.getApplicationContext().setColorMode(ConfigurationConstant.ColorMode.COLOR_MODE_NOT_SET); + 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) => { + 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.'); + }); + } + + 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'); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets new file mode 100644 index 00000000..b1e21294 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; + +export default class EntryBackupAbility extends BackupExtensionAbility { + async onBackup() { + hilog.info(0x0000, 'testTag', 'onBackup ok'); + } + + async onRestore(bundleVersion: BundleVersion) { + hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets new file mode 100644 index 00000000..22e70962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { PageLoadingComponent } from 'pageloading'; + +@Entry +@Component +struct Index { + build() { + Column() { + PageLoadingComponent() + } + .height('100%') + .width('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/module.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/module.json5 new file mode 100644 index 00000000..4144486d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/module.json5 @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "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:layered_image", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:startIcon", + "startWindowBackground": "$color:start_window_background", + "exported": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + } + ], + "extensionAbilities": [ + { + "name": "EntryBackupAbility", + "srcEntry": "./ets/entrybackupability/EntryBackupAbility.ets", + "type": "backup", + "exported": false, + "metadata": [ + { + "name": "ohos.extension.backup", + "resource": "$profile:backup_config" + } + ] + } + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/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/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000..f7e4e8e2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "module description" + }, + { + "name": "EntryAbility_desc", + "value": "description" + }, + { + "name": "EntryAbility_label", + "value": "pageloading" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/background.png b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..f939c9fa8cc8914832e602198745f592a0dfa34d GIT binary patch literal 57364 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 A4*&oF literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/foreground.png b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/media/foreground.png new file mode 100644 index 0000000000000000000000000000000000000000..4483ddad1f079e1089d685bd204ee1cfe1d01902 GIT binary patch literal 12430 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 cSLciz6AsI{U0tD9;7S&f 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

c)ijgxDm}8EsRXFt3h@+Ufr7@DN z^55r2UpdZvo*$)c`MJ_3zXBARbH%T}ifygzYy6g*WBtspGU<*Ccb`wpyW!Ui$gZ}y zo>MwK`K>f-62KfvO2{S zXF|ni6T=gB=C>=mF~5ojWS?I%DBt!ouB^&}v*S8G>5&(6>bM<0W9)PIeSXbv;v2lq zgZx&0)nJZqzUPEz=3RZouldy~VSciFe9|fxrs_KoD#u$hYz3BTu8Twxs@yt>*lp{< zm_XbpVEfL5#v}%x;+@AY<0*cV$ZF-248A&7CXCUG-9e@z7Va=V8J*&{q4I$n{~M-~K{qUmg-Y{N~tC__Y!6wZ`uS zAN=8SKnb`wARia}P{>}4q*mFJ2rt$xz9z}40>2@prKgMpJ4y?1MK zsu;8LLY(s8tNKp-L`??i35r}^567PuI=u8S&*EdFoy9Nf;48%{S#m8d=h|q*N!*Hw zE&QzCc2jn4u4(uar*pTPKCQ7DC)&Cs49?>3$7+X~)XJA`!=HT>p7`~r%@S~FvIWT% zL)t28t$h|BY!xpHnSQNXihG*>p${(0U;hi2mrwZcOUrZh0ee^UiT1oYO{3$5Hop*u zLXEN0l1qM=vD`rN)XOLJdon_5oHz3`AzpsrE1f=|*Mk1={U^)6{EcJ3kodUYZmX=p z&l4~2a)h&L*mG4|<3d+3_?Prr)`vgu$Y1U7EWIl2?@iUEd5K>;n9zxxlFNU^0vTLl zH@o9AcfQkuuVr{d?>6N1tv`70$?|*eKGqA1!uC8^rS(s+P1LOQ9lYFac+7nk_^^=}_9|LQHrRm;gm z#jgtmwd-2xd;fSm;rGSZd-@wbDeXS|)%sP&lv@b1qs`Sf43!0V?3qvsHeeF4^Q(*h z^}o7zxuRcU@`@_U0N4FIMxo}rPTLvJc{K#}XhYWmowJJ2$Yjbl`u)zkPnNIv?#GvR zeQ>x@oZ)FOm|m&l>_ivC(ek;URCk@4f5BINBIPcJedSknv#$7sL09O4r%@qb_M zz2et2d?)PSD|vhJv?jf^coe^7;*5D_(i{GoNjc@GFgNZjMJ5=HK91L-#6s_k5ZsDS zGS%RQ&sF+5eNE*3{W~3);ByDsjH9O)4$S@$?yR>?gy?){V`EPI$n>{$7kZJt&E|jq z@9tl&>KhB0wjiX?fvux_ph<@^P`xU#l~@YcVmvoP|52 zFCDST=db-|m-UT`(xE24+%n&4gZ%FnLi&Yo)!)!<`8*?XqEn@~PlG4oI{hPQc|SBA-3UqQo@Ok7n} zIAZ21l@78Rn`X^sw|ukiJP&AnypS?sjm)BYgRrvd_2vm*-zj>cKd@`Ab&91Yp=>6{)F%4)7auKu@lUJhnvWozKNZb^uG+`E@Y3=U zeK~|@uUf1nf;jWRpXQgYuqA_|MTZQJmcB;TNR^GlS{T8}iC6rO{IH|tWqO{uY5h}C zK^05FmfvX7IMk$1hE*ehH{+tKyHIa1DdB;;rJvHi z@XysN8q8vy7k-&z&tLr~zqICPT-#vO+|kk)bI{UP%}!$rHS^6TDD1uXt~a|@W*~+c z8vo^wJW;Rw34f4ZJkG`2_D~Yj%WRNd2O^Mwn=s<$0*s{9@EYCPT5v)bA~e(n|~6M0EUxGtnrcN&$s(s zzN8S(XWAcol9+ za@NCPqQw`HsBTqo#8>DWj&U^~+CTP~&69^IHqX$ty#E|%_>m7|XO7~asM|V+|Xy_l(fh&fm#RNST>VcoN?=6S_DPi%0~BG=sQt4-78)-@|b)lahBHa~PL<9jHj zNE~dl9PG02qUPM@QPu+cEDu-Af8%z}zB%Ihfge*{9Wd$&G+)E(=&9+o!^CjO`cwNdjVRH+WU`h_MXAOitJp5x3ifW{$igPf9iBj$(b=HI#x==`-hy-E&gI#->XR(BW&pMdcoR19-nNcPkY4s2bR7uK27u z;T-wi{Jv$d3tg^Khr|3zu!D-f$3GV1rd-BjB{h8+psmB&uHFO}3e<>-KnIym}P_oSC zslstp61Dm&1NiV|^pEbaNt}ZX!rh1GA<@OoA~K`yhAgd{@foOROsg!`F}gM(u1!jB zP-&PeM7Vk8W1#d^)-p1e`o(13g|c~w?dj`;4_bZu^_E|g3d=E{cLES;rdxmDH283uG=7WUKG<2~ea{IxU4q0( zBCeM((XD0e;O571>R|^u&Ev*jpsQGwzvm-2(K$^ICifY)?_e`E(umG-isbY(H;sFS z_TV{-u;uIR9OWMt?$V=eCxZbQ9k$3lC>2^A@xz~@XvD&(_uWN31AO=Zpf(=jB!lHh zOT3|j8)NsuFr00(J`~5*Aa@-yCcZDeY#2MK^7+byjE?yuYo4B|14zoWZPTeh8BIOF zi#LZ9-0pPpQq1&2arSg`YF@vQoGhb26RLwnlb*1L_^M-Vlx>giHItHpV-y+pt6ZEK z556G7lZ4?GS?qbNp_S;OAM&IlDs9+mIL@;^vinA)D6z3H9OHAVWxzHP_n^luSJ#<< zbsIty2lS^g(Tp%sL>_Jx%DMrbLPR&IRuN*2au@Mv3b3wQaDyVnmOp4Ma3Q*l1@}l- z7!@6xqcC>X;&3#^WC@2>d~Pt-WCFI;DSS*he8-yHfN>hl!&k7gZRoJWX*}IU_<3Dv zFh%O=_d;$wPTu#$88_QzeaYlJH`gOD^~u}%0AtVi0{v!P<5awgzdH2uJ`V|wUL*2lawezA2~fq&{P;mfB?8T6HUC*4h6A&Uoa8O-j$RT~z$aZBVg6 zzF?cyl6N zdHw?sJ7Tp$XXHMr#>SS7hWS(q4Vv|F6FxR`qoAKa__u1W&%AQI4T^VKan^IyU>zfs zE|$R$NQPNwnbWKcmi{dLjG5%b9r@2i8f!K??SvY4H+*lPY@EblJRiC1P#E;CqroIW z@amJ2xy(A56v{9|GuaTpMMj+DK>H#%Xah4-!k=}#^ zneQH-ALI49-brtya+(0Rs?MoH;W4xa=7q~HKFb7Z1nBuy5&@vrkTKXDY=saRII;oP z3R%&P2^nF-NYearIVR*J3O2Ys934KH3%!qF8Ezacu`vg0S*Oab^yt!p+xLq-xy5gM z#Kw5jI=`XA!CkZ&zAqE&VEj1=NFmPhl*4MSO=PEas`~e2-T71-1sApc|fu*Q}= zsYFnC_DZcy+zSDb@&j)&>t^-n;oK7;%>Y=GI zf;q6^#lf=W>#ky4S#ll)lVVQT_DO*_|C(c%5cIB9nT$1w zdZdwu#x~{=-+@S!Al?*`YqRX_$W)w|mL<42l`iKk-%cwYqIN?eH8`i)kL=}d1?JZx ztLCs2KGwvGug#(X==ud4yo;s5T!B+uNNV9YMyc!;d~C+efEeaJa{IVw7aDzJFOkR6 zSlJt<<>?A3vyx@)YW!;#RD~3cJ<+yt$FWi*K*_8K6|i@y5t3Ja zJ+H|ads>I+vjj95MRGK=^x>=qv2joEMXBp_IFN4`AdHaye#ZCSN+T3ki zEEWhGJ-%>&Q^eAnKgqhuJba{|Jl+AxddOr{Cxi+(@50!IbHi4?hjyY5LQ=XVPTEpb zyqVjwx1@vOf~d3GC@cCi=V6PSGqd|Ua>`SZ|JP5mkUUL?=|EPi{@-nlH?JLkAw z*sMbLgtgvL+o_1?*wJfZjcXpC5>GR~M4yu?y`l7N54Pg1hB01ME2+8Z!14qfU-Yz@ zpP&@C_lf&Q^@(4j;1EbkPV$`KhCay2t@XoalE&DO(HG;)bGsV$(1$|8a365@r{WKw zNW$FkEp^Sm<|7b9uV3Ad{N#D~L@0goVuYqx6L^T_<{Zg#=0otZT7J0Sg93< zJ_mX2IquB#Bm6s#^rsweb>du#$y5q2icb}=oNpi;{UA7T{^iK)*yGw5d6=pq_?*D>mRC&iQRDaItw;A9 zUwyN}YMcO55)^&3H9%p>YklyFuHBgRqrZ5o{^}Fg-RyE2Q&BkPr4P7!;2dsBBY5kZ z6MOo=-HSke#!JD&S`O^!e_!8v^T8YV)+p1?{L!gB{K1puy1vT%sWe=-JBLXqC(&~o zh8QdS8g_rYT88wPo<6+$(H>5CKO8#&q^#c>*j4hprAvR9e{%Kyt8YGf`?u>?8Tz14 zS1k!Et{sV(!ehcu#U^0M9yMmukRS`=W<1D5*Xuj%0?f#3B#i1AuV%Dk0a#p(np`Z z@Ny<>{{ZDV5+@v)mOs>&&;9Vv>-)pHaOkS3YygE%;ePHnZ!h`bKx(H9HZuLnZ`piM z2ii=ClLN3rsu>=c{+jNjKd(=0rLpid^!u4*y(mWJPG6kjm0Yv8i=0jt@0q$c?3SO6 zo`T_+i0(Myt98b;JQvD(PJ8@c_^spR4R6xbATVp;gA^fWJoolt6Viy=aHkR(bL6>a z0*u#QIOR-CHs#1eI_@gp{LgMJH~1i?ZcMM{ufkCb2He+@V%l*Br$@ccN`(OGk)9u)8Cl^IS$70>cnNtJOD;^adIv1mfzOH@{j*A zpUGT+)Iu&-&YD8$81J|E-`Afpo?Sod(=~-f1KG?W4N<>A4H|trX(W)6k{Oa&+m(#9NV~FpO<-jgq5FpLo=R80h%`t-tc094&kfl2?<-(g>J|r?=r^r}OA> zmp&f(`pX~wSI3@L@|*kMoPV!t)up3lQ3afNHGkNJ?ukAA%&S+P!*d|=aQo0Nz5YfK zKR4s_UId|>uzYyqbjJt5=GTt(Ez-yS$U9G{Cqm(9+ajN> zgT~ide(a0*RMefm>R_qQXttNTKUJiWa#G(o>gibbxL(-&eO>l^>-4Yw{;}#f=Ndog zTpjgwLr5GKkp=Bm^VjU9%39U~*@|iCk3RCfSN<|`f4G7d?}tSDTy`AIwQL?;#$97+ ztSvnwvYK=4p}Io0?fv>@g@5oyeJpBc$rtZF^xS26hCWZ4#Yok->p2VeHu^YSPUGG2k^A|XtmgmW>+a9E=9)4OCk5TSW^(Rd;pI_JfySLre zQLOv*sbCN46V?6wuS}=FN|eBT_p(bFq*`MXpIA`Vg(EMp(umI{;a4t?=!xmyYV?&H2P7PMKv=d+vjRBWh(As6Lj0Qcn$#3?!%y6`&&<3aj!!;n$@xk0 z*`QFf2~yb7*ZgYBR84)J;s=KZ&x_vE!tWtII60`G5(@|IFyHPr=5zVG<@(X_<1hTc z_kGCwAo)o&!Uw+XL*A!{f;S*LxN;y5=0e-ZrK)pdNED2liw(!iVbw-%n7!XMpG8kA zGUJMmr0RBj5-MyJddQOpL{O*s7%s{`6u+WXrgQwlI?smCIg$&Q{AYgqCt0wKb7$_% zm%{TugWsEv_{Fa|uJO;}cZ_9uLpG0)>jq*Vhu`WPlbLjiH(IU~Fm-o{X+n|rIebs+ zBK*FBMohVN%r4@=_@qH>4)KXqe5CL#cK)Tu;+Dei@z-rsKEYOe;uO{W-~*^lGv{e} zg4af91r84J?WZul<4pXy&Q9bMAD7uEiayKu@j6WtFdw~+#;%<5b$dDfR;X#?4us;} z-~EhV6zs>~=Rof`?o~=VM~9%M_?8J+n!&AcCV)?AP=;fE71{~UeEA>#S{QucDki=r zzHybu$j{hvT>Nr&n2+r=zY;+&dlw*cHh$KbFJ$UN=-6jIG7AR2vDH_c$iN1FmhpRt z?{%2s!?BZglURd~-k|DP8~&9Flv)o?mLI$Jz3h>-Z8i{UeJRS<(K9vL#!-~$F*1Sp z9>4-|wb7EC2gB>kF9$2`EI#_O(HBeOdGZy+=Ze2BPH_+Mi?qgP47=j(>kB=mJ%oMS z9r<0iE@an9F`Z)KGra&4x%#2EIrCiSSMf=2pI?~4w>$UPbpC{gT;8zlrl=Bb2 zc!MuoiVfHWSDf^|NDlF(^ZW;&*`LSHX6X1EeyW$cIeN{P*pA<}=H;OUB#~>P2l%!Y z!u69#KlsSz*U2UJ{M*;+{q-Mwz4pdlJGFtZ-+TGiS1Ql<#B&y|xO2F8BP#-G95X!= zS3AtF&0v5*jT?Lk8~!j1%0_T}otooBko6is#Sgz&6@Aj7$ONp`$^7Ks*zOGN$=Vl+ z!3WfQyRB%BY(65Ff(S*v1=yWtyJ{I0gB$4W-~OP!g>&~BlI$ss{JeWJ0Y~lvE4La}LgwmJ{B^=-^LrxrR*K+!NY34Y z%M z<9FfUS32e(gAJbEtbl5ub8iasSIo+HYW6cI2(;PPCVrX9hj6>)HIID%gYPzH@6^%v zv^{*@-@5)2n!;y#NN$bBu|)+fn^0}89(_q=8AGE|lG!A3qm}-*G$sPd@g2 zSN`*ry_F8$fdaX8yu3>5_^=Mm3a>SxDq|(W496V3gthog+!l-+gI^0x3>K~U0B9_I z@g1v9#%%cbQY(J<)|7{e%NhR$c6@0R)3;{wt|Y5hT-qAn?23((Ie*Is_;P_4Gx3j1 z3^!RMCcZ=O#~*wM_}}BBm6H6+W|(D1K9`SA_)O&v{7zZehxLm7tBQH}eC`H%|3AL+ zwv$WC=ZSiwBbOHn*aasRMW->jDp-wcQfvqt$sDPv&GGOq`KuGkd^o;c>O`@?JJE_` zdU788%6;TNa;;()znFK!uf=i(n|UXb!}$}T5F5S&N6!Fu`(`Au^2Zij=Z|V?HNBZ# z{Jg_J&>P3Qlh3>HhAVHIXs5)?*?J{TB9TPPY-Gp32p`^F3!lv=`TY2MT!#Dn_EX5YDwXjm4@%zo zyA%j0dpPZ8aUi>rp!dHqyG~d+l6Q>+x9T-*oC&4dQmFv;TYcH~Spj>DJ0esIt zzWNO+#A`{>E5i(Xk;Z0`sjgNLsQM^ePYfMu`tZTDpWqGSgiZetwnduxeT7P8ynTsi zel~9SC}kpn5&t6m<~Z?*-@e9Xw_7%@1cxGiwOUv!*ZAgV{^YpI;WyoHSsAi`#H6j9 zt$aSe;%xY&tQ7Q@%CCLw|GfH*c7B0V=63;TLHuy07aBFXpK@e@kz6>#YSGcv3{ghz zzVXF3=^Q@()T&z5KP7&Q>i!XZTNu&$kfkNQnO!8-_aDL+?R~C8sjF4t! z6x@c9tB)3F@nK85F<=By?G&Gi4}X@LiXJ2XmM&tvDMDVeZJcH{s6W+y1bgFn`9~ZXTFjEjziZ(}(o3vn z`%X>ZGshK%2W48h%Jnqix>9=bSGbGC-{Va~Hp{r_k-l2)R5e=9GXJFTue#GuTPtHLO_kpoE;{;<|N8ou=yCIP zN<{A~WY5T@7mLhsKlK)EER*b9LF?v{dT-&+=Hpvd_~PVB{13->Hs|DD_AU++MKR^? zVbs#s_)ceV^X6!`7vaB08NBAP@4xarcZzYI{jMLv_MN@||G4r!x9+?3(b^}k&qm0m zIJo%3!Mf<)XVROminu6NX7e>E)#+h2O$}L)eu$)~=3}XaGUgyZ_V8KMnK#)7zjPHp z_Ts=j%wK(OAJ%4maf|Pa51wLAKZDR6(r+-k<@J}An;-pDHxE9y+0Rj)g#6$aUwirP zX!kYxQ0mVy-QN2yL-92;)+QS*i|kvrv|fAPK+-?Jmin%y1ZS6N0LGw(w2!|y(vgZ*y#F}>^b>-1db)Nj=f;xC|Ft8@YI zMIq1nn~#0+?)d1{!hey9e+8a5izk@{Oplez2GHqrSUlSN&@^wrvVyP!giSlmuO%9r zW`jOGD83?gYTjdlCEZT%G_f_YKb`yp!)N?Qcc8y6-5c~LFW-9YpKRX@b^v?Vs?#fW z*DlT`JnOH$|Jl3C_q|fP=kqnu&(d`7^YSrkS5(VraZMu&zIv_2t3qXyto_-1d=_pk z^vbJk!~$p|XLVszAW2V_Pv+Y=r{jaEb~--#@C&o@YkYyT{(x!uak=@SdyXFer}KN5 zFTlMk$hvZOMZ0@2f4q3@#*LTjFKs?eK|fUioJEMtmjUO-<02&yOE|p|V-%X=6Xv@X(oCxjr1jf2;npdQ$tQM<2QW z=azp~pZ|S`@O0`r&8O4l#eLPLy7n@?{`u15<>(>(HP?sj)ax^gp0C0^Q@=iWK*f2c zD)fL#sXs~F-K&MVM;neWi6M8@tERwteOT%%cv{JMqtu2a&-F?ld~arKwAH@y=LKKw z#h-2EA?L&VSjQ(K-_mq$Dl8u&b4}hKRXUGo8jtD{dqj15STlZy(C<7sI)2CQ_~fnE k9@EG3{4s5ok?kb>|H;3ubeVRY^#A|>07*qoM6N<$f~C=$asU7T literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/backup_config.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/backup_config.json new file mode 100644 index 00000000..78f40ae7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/backup_config.json @@ -0,0 +1,3 @@ +{ + "allowToBackupRestore": true +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/main_pages.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 00000000..1898d94f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,5 @@ +{ + "src": [ + "pages/Index" + ] +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/dark/element/color.json b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/dark/element/color.json new file mode 100644 index 00000000..79b11c27 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/resources/dark/element/color.json @@ -0,0 +1,8 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#000000" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 00000000..ce096cdf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { describe, it, expect } from '@ohos/hypium'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import { Driver, ON } from '@ohos.UiTest'; +import { logger } from '../utils/logger'; + +const BUNDLE: string = 'PageLoading'; +const TAG: string = '[PageLoading_Test]'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + + /** + * 打开应用 + */ + it(BUNDLE + '_StartAbility', 0, async (done: Function) => { + logger.info(TAG, BUNDLE + '_StartAbility start'); + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.pageloading', + abilityName: 'EntryAbility' + }); + } catch (exception) { + logger.error(TAG, BUNDLE + '_StartAbility error'); + expect().assertFail(); + } + logger.info(TAG, BUNDLE + '_StartAbility end'); + done(); + }) + + /** + * 页面加载效果实现案例只能断言页面加载后的列表是否正常滚动和展示(加载lottie动画需手工用例进行测试) + */ + it(BUNDLE, 0, async (done: Function) => { + let driver = Driver.create(); + + await driver.delayMs(5000); // 进度条加载耗时 + + const loadProgressHide = await driver.findComponent(ON.id('loadingHUD')); + expect(loadProgressHide).assertEqual(null); // 断言界面数据正在加载完成并消失 + + await driver.assertComponentExist(ON.id('commodity_list')); // 断言数据列表加载成功 + await driver.swipe(200, 1500, 200, 100, 2200); // 向上滑动 + await driver.delayMs(1000); + const isScroll = await (await driver.findComponent(ON.id('commodity_list'))).isScrollable(); + expect(isScroll).assertEqual(true); // 断言商品列表可滚动 + + done(); + }) + }) +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000..1eac52fc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device 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 abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets new file mode 100644 index 00000000..17d1f64c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2025 Huawei Device 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 hilog from '@ohos.hilog'; + +/** + * 日志打印类 + */ +class Logger { + private domain: number; + private prefix: string; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + this.format.toUpperCase(); + } + + debug(...args: string[]) { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]) { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]) { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]) { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export let logger = new Logger('[CommonAppDevelopment]') \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/module.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000..c3fd9dda --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "module": { + "name": "entry_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets new file mode 100644 index 00000000..f1186b1f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device 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 localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets new file mode 100644 index 00000000..7fc57c77 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // 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/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 b/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 new file mode 100644 index 00000000..1e473e42 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 @@ -0,0 +1,22 @@ +{ + "modelVersion": "5.0.1", + "dependencies": { + }, + "execution": { + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ + // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ + // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ + // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + }, + "logging": { + // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ + }, + "debugging": { + // "stacktrace": false /* Disable stacktrace compilation. Value: [ true | false ]. Default: false */ + }, + "nodeOptions": { + // "maxOldSpaceSize": 8192 /* Enable nodeOptions maxOldSpaceSize compilation. Unit M. Used for the daemon process. Default: 8192*/ + // "exposeGC": true /* Enable to trigger garbage collection explicitly. Default: true*/ + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts b/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts new file mode 100644 index 00000000..f3cb9f1a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/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/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 b/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 new file mode 100644 index 00000000..b794cc97 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 @@ -0,0 +1,10 @@ +{ + "modelVersion": "5.0.1", + "description": "Please describe the basic information.", + "dependencies": { + }, + "devDependencies": { + "@ohos/hypium": "1.0.19", + "@ohos/hamock": "1.0.0" + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/ohosTest.md b/sample/EnhanceSampleArk1.2/PageLoading/ohosTest.md new file mode 100644 index 00000000..b7a9cd82 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/ohosTest.md @@ -0,0 +1,8 @@ +# 页面加载效果实现案例测试用例 + +## 用例表 + +| 测试功能 | 预置条件 | 输入 | 预期输出 | 是否自动 | 测试结果 | +|--------------|---------------------------|---------------|-----------------------------------------------------|------|------| +| 访问【页面加载效果实现案例】 | 启动【页面加载效果实现案例】 | 访问【页面加载效果实现案例】 | 进入会出现【页面加载效果实现案例】页面,先出现lottie记载动画,加载完成后消失,页面数据成功加载。 | 是 | Pass | +| 列表加载正常 | 启动【页面加载效果实现案例】 | 向上滑动 | 页面正常加载,无卡顿 | 是 | Pass | diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/.gitignore b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/.gitignore new file mode 100644 index 00000000..e2713a27 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/.gitignore @@ -0,0 +1,6 @@ +/node_modules +/oh_modules +/.preview +/build +/.cxx +/.test \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets new file mode 100644 index 00000000..1ea85a05 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets @@ -0,0 +1,16 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +export { PageLoadingComponent } from './src/main/ets/view/PageLoading'; diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 new file mode 100644 index 00000000..aefa5f69 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "apiType": "stageMode", + "buildOption": { + }, + "buildOptionSet": [ + { + "name": "release", + "arkOptions": { + "obfuscation": { + "ruleOptions": { + "enable": false, + "files": [ + "./obfuscation-rules.txt" + ] + }, + "consumerFiles": [ + "./consumer-rules.txt" + ] + } + }, + }, + ], + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/consumer-rules.txt b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/consumer-rules.txt new file mode 100644 index 00000000..e69de29b diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/hvigorfile.ts b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/hvigorfile.ts new file mode 100644 index 00000000..0785a511 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/hvigorfile.ts @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { harTasks } from '@ohos/hvigor-ohos-plugin'; + +export default { + system: harTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins:[] /* Custom plugin to extend the functionality of Hvigor. */ +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/obfuscation-rules.txt b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/obfuscation-rules.txt new file mode 100644 index 00000000..272efb6c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/obfuscation-rules.txt @@ -0,0 +1,23 @@ +# 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://developer.huawei.com/consumer/cn/doc/harmonyos-guides-V5/source-obfuscation-V5 + +# 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 + +-enable-property-obfuscation +-enable-toplevel-obfuscation +-enable-filename-obfuscation +-enable-export-obfuscation \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package.json5 new file mode 100644 index 00000000..37a34245 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "name": "pageloading", + "version": "1.0.0", + "description": "Please describe the basic information.", + "main": "Index.ets", + "author": "", + "license": "Apache-2.0", + "dependencies": { + // Lottie模块 + "@ohos/lottie": "2.0.0" + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets new file mode 100644 index 00000000..ff97f295 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { CommodityDataModel } from '../model/CommodityDataModel'; + +/** + * 商品列表数据源 + */ +export const PRODUCTS_DATA: CommodityDataModel[] = [ + new CommodityDataModel(0, $r('app.media.page_loading_commodity00'), $r('app.string.page_loading_commodity_title00'), + $r('app.string.page_loading_commodity_price00'), $r('app.string.page_loading_commodity_view00'), + $r('app.string.page_loading_commodity_insurance00')), + new CommodityDataModel(1, $r('app.media.page_loading_commodity01'), $r('app.string.page_loading_commodity_title01'), + $r('app.string.page_loading_commodity_price01'), $r('app.string.page_loading_commodity_view01'), + $r('app.string.page_loading_commodity_insurance01')), + new CommodityDataModel(2, $r('app.media.page_loading_commodity02'), $r('app.string.page_loading_commodity_title02'), + $r('app.string.page_loading_commodity_price02'), $r('app.string.page_loading_commodity_view02'), + $r('app.string.page_loading_commodity_insurance02')), + new CommodityDataModel(3, $r('app.media.page_loading_commodity03'), $r('app.string.page_loading_commodity_title03'), + $r('app.string.page_loading_commodity_price03'), $r('app.string.page_loading_commodity_view03'), + $r('app.string.page_loading_commodity_insurance03')), + new CommodityDataModel(4, $r('app.media.page_loading_commodity04'), $r('app.string.page_loading_commodity_title04'), + $r('app.string.page_loading_commodity_price04'), $r('app.string.page_loading_commodity_view04'), + $r('app.string.page_loading_commodity_insurance04')), + new CommodityDataModel(5, $r('app.media.page_loading_commodity05'), $r('app.string.page_loading_commodity_title05'), + $r('app.string.page_loading_commodity_price05'), $r('app.string.page_loading_commodity_view05'), + $r('app.string.page_loading_commodity_insurance05')) +]; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets new file mode 100644 index 00000000..2ebdc50e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +/** + * 商品的数据类 + */ +export class CommodityDataModel { + public id: number; + public uri: ResourceStr; + public title: ResourceStr; + public price: ResourceStr; + public views: ResourceStr; + public insurance: ResourceStr; + + constructor(id: number, uri: ResourceStr, title: ResourceStr, price: ResourceStr, views: ResourceStr, + insurance: ResourceStr) { + this.id = id; + this.uri = uri; + this.title = title; + this.price = price; + this.views = views; + this.insurance = insurance; + } + + toString(): string { + return this.id.toString() + ' ' + this.title; + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets new file mode 100644 index 00000000..2689593f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets @@ -0,0 +1,124 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { logger } from '../utils/logger'; + +import { CommodityDataModel } from './CommodityDataModel'; + +/** + * Basic implementation of IDataSource to handle data listener + */ +class BasicDataSource implements IDataSource { + // 数据变化监听器 + private listeners: DataChangeListener[] = []; + + /** + * 获取数据的长度 + */ + public totalCount(): number { + return 0; + } + + /** + * 获取指定数据项 + */ + public getData(index: number): T | void { + logger.info('getData, index:' + index); + } + + /** + * 该方法为框架侧调用,为LazyForEach组件向其数据源处添加listener监听 + */ + registerDataChangeListener(listener: DataChangeListener): void { + if (this.listeners.indexOf(listener) < 0) { + logger.info('add listener'); + this.listeners.push(listener); + } + } + + /** + * 该方法为框架侧调用,为对应的LazyForEach组件在数据源处去除listener监听 + */ + unregisterDataChangeListener(listener: DataChangeListener): void { + const pos = this.listeners.indexOf(listener); + if (pos >= 0) { + logger.info('remove listener'); + this.listeners.splice(pos, 1); + } + } + + /** + * 通知LazyForEach组件需要重载所有子组件 + */ + notifyDataReload(): void { + this.listeners.forEach(listener => { + listener.onDataReloaded(); + }) + } + + /** + * 通知LazyForEach组件需要在index对应索引处添加子组件 + */ + notifyDataAdd(index: number): void { + this.listeners.forEach(listener => { + listener.onDataAdd(index); + }) + } + + /** + * 通知LazyForEach组件在index对应索引处数据有变化,需要重建该子组件 + */ + notifyDataChange(index: number): void { + this.listeners.forEach(listener => { + listener.onDataChange(index); + }) + } + + /** + * 通知LazyForEach组件需要在index对应索引处删除该子组件 + */ + notifyDataDelete(index: number): void { + this.listeners.forEach(listener => { + listener.onDataDelete(index); + }) + } +} + +export class CommodityDataSource extends BasicDataSource { + // 懒加载数据 + private commodityList: CommodityDataModel[] = [] + + /** + * 获取懒加载数据源的数据长度 + */ + totalCount(): number { + return this.commodityList.length; + } + + /** + * 获取指定数据项 + */ + getData(index: number): CommodityDataModel { + return this.commodityList[index]; + } + + /** + * 存储数据到懒加载数据源中 + */ + pushData(data: CommodityDataModel[]): void { + this.commodityList.push(...data); + this.notifyDataAdd(this.commodityList.length - 1); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets new file mode 100644 index 00000000..8059053b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets @@ -0,0 +1,49 @@ +/* + * Copyright (c) 2025 Huawei Device 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 hilog from '@ohos.hilog'; + +/** + * 日志打印类 + */ +class Logger { + private domain: number; + private prefix: string; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + this.format.toUpperCase(); + } + + debug(...args: string[]) { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]) { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]) { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]) { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export let logger = new Logger('[Samples_pageloading]'); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets new file mode 100644 index 00000000..6397830c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets @@ -0,0 +1,178 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { PRODUCTS_DATA } from '../mock/CommodityMock'; +import { CommodityDataModel } from '../model/CommodityDataModel'; +import { CommodityDataSource } from '../model/CommodityDataSource'; +import { promptAction } from '@kit.ArkUI'; + +const IMAGE_ASPECT_RATIO: number = 1; // 图片的宽高比 +const OFFSET: number = -4; // 价格控件偏移量 +const OFFSETX: number = 10; // banner阴影X轴偏移量 +const OFFSETY: number = 10; // banner阴影Y轴偏移量 +const LAYOUT_WEIGHT: number = 1; // 分配剩余空间 +const ANGLE: number = 180; // 自上而下渐变 + +@Component +export struct CommodityList { + private commodityData: CommodityDataSource = new CommodityDataSource(); + + aboutToAppear() { + this.commodityData.pushData(PRODUCTS_DATA) + } + + build() { + Column() { + Column() { + Image($r('app.media.page_loading_light_mode_banner')) + .objectFit(ImageFit.Contain) + .borderRadius($r('app.integer.page_loading_banner_border_radius')) + .margin({ top: $r('app.integer.page_loading_banner_margin_top') }) + .width('100%') + .shadow({ + radius: $r('app.integer.page_loading_banner_shadow_border_radius'), + color: $r('app.color.page_loading_banner_shadow_color'), + offsetX: OFFSETX, + offsetY: OFFSETY + }) + + Text($r('app.string.page_loading_goods_title_text')) + .fontColor(Color.Black) + .fontSize($r('app.integer.page_loading_commodity_font')) + .fontWeight(FontWeight.Bold) + .height($r('app.integer.page_loading_new_commodity_height')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding({ left: $r('app.integer.page_loading_column_padding_left'), right: $r('app.integer.page_loading_column_padding_right') }) + .backgroundColor(Color.White) + + List() { + LazyForEach(this.commodityData, (item: CommodityDataModel) => { + ListItem() { + ItemView({ item: item }) + } + .padding({ + left: $r('app.integer.page_loading_commodity_list_item_padding'), + right: $r('app.integer.page_loading_commodity_list_item_padding') + }) + .margin({ top: $r('app.integer.page_loading_commodity_list_item_margin_top') }) + }, (item: CommodityDataModel) => item.id.toString()) + } + .id('commodity_list') + .width('100%') + .layoutWeight(LAYOUT_WEIGHT) + } + // 设置背景颜色渐变 + .linearGradient({ + angle: ANGLE, + colors: [[0xFFFFFF, 0.0], [0xdddddd, 1.0]] + }) + } +} + +@Component +struct ItemView { + @Prop item: CommodityDataModel; + + build() { + // TODO: 知识点:相对布局组件,用于复杂场景中元素对齐的布局,容器内子组件区分水平方向,垂直方向子组件可以将容器或者其他子组件设为锚点。 + RelativeContainer() { + Image(this.item.uri) + .width($r('app.integer.page_loading_commodity_image_width')) + .aspectRatio(IMAGE_ASPECT_RATIO) + .objectFit(ImageFit.Contain) + .padding({ + top: $r('app.integer.page_loading_commodity_image_padding_top'), + bottom: $r('app.integer.page_loading_commodity_image_padding_bottom') + }) + .alignRules({ + top: { anchor: '__container__', align: VerticalAlign.Top }, + left: { anchor: '__container__', align: HorizontalAlign.Start } + }) + .id('image') + + Text(this.item.insurance) + .fontSize($r('app.integer.page_loading_commodity_insurance_font_size')) + .fontColor($r('app.color.page_loading_goods_insurance_text_color')) + .borderColor($r('app.color.page_loading_goods_insurance_border_color')) + .borderWidth($r('app.integer.page_loading_commodity_insurance_border_width')) + .borderRadius($r('app.integer.page_loading_commodity_insurance_border_radius')) + .padding({ + left: $r('app.integer.page_loading_commodity_insurance_padding_left'), + right: $r('app.integer.page_loading_commodity_insurance_padding_right'), + top: $r('app.integer.page_loading_commodity_insurance_padding_top'), + bottom: $r('app.integer.page_loading_commodity_insurance_padding_bottom') + }) + .margin({ right: $r('app.integer.page_loading_commodity_insurance_margin_right') }) + .alignRules({ + right: { anchor: '__container__', align: HorizontalAlign.End }, + center: { anchor: '__container__', align: VerticalAlign.Center } + }) + .id('insurance') + + Row() { + Image($r('app.media.page_loading_views')) + .width($r('app.integer.page_loading_views_image_width')) + .aspectRatio(IMAGE_ASPECT_RATIO) + .objectFit(ImageFit.Contain) + + Text(this.item.views) + .fontSize($r('app.integer.page_loading_views_font')) + .margin({ left: $r('app.integer.page_loading_views_margin_left') }) + .fontColor(Color.Black) + } + .height($r('app.integer.page_loading_views_height')) + .width($r('app.integer.page_loading_views_width')) + .margin({ top: $r('app.integer.page_loading_views_margin_top') }) + .justifyContent(FlexAlign.End) + .alignRules({ + middle: { anchor: 'insurance', align: HorizontalAlign.Center }, + top: { anchor: 'insurance', align: VerticalAlign.Bottom } + }) + .id('views') + + Column() { + Text(this.item.title) + .fontSize($r('app.integer.page_loading_commodity_title_text_font_size')) + .fontWeight(FontWeight.Bold) + .fontColor(Color.Black) + .width('100%') + + Text(this.item.price) + .fontSize($r('app.integer.page_loading_commodity_price_text_font_size')) + .fontWeight(FontWeight.Bold) + .offset({ x: OFFSET })// 因为¥是中文字符,上面的是中文字符,占的宽度不一样,所以需要对齐,添加offset + .fontColor($r('app.color.page_loading_goods_price_text_color')) + .margin({ top: $r('app.integer.page_loading_commodity_price_margin_top') }) + .width('100%') + } + .justifyContent(FlexAlign.Start) + .alignRules({ + left: { anchor: 'image', align: HorizontalAlign.End }, + right: { anchor: 'insurance', align: HorizontalAlign.Start }, + center: { anchor: 'image', align: VerticalAlign.Center } + }) + .id('column') + .onClick(() => { + promptAction.showToast({ message: $r('app.string.page_loading_commodity_other_function') }); + }) + } + .height($r('app.integer.page_loading_commodity_list_item_height')) + .borderRadius($r('app.integer.page_loading_commodity_border_radius')) + .width('100%') + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets new file mode 100644 index 00000000..6966c3bf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets @@ -0,0 +1,78 @@ +/* + * Copyright (c) 2025 Huawei Device 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 lottie from '@ohos/lottie'; + +/** + * HUD全称Heads-Up Display(抬头显示) + */ + +@Component +export struct LoadingHUD { + @Link nowProgress: number; + private politeChickyController: CanvasRenderingContext2D = + new CanvasRenderingContext2D(); // CanvasRenderingContext2D对象 + private politeChicky: string = 'pageLoading'; // 动画名称 + private politeChickyPath: string = 'common/lottie/pageLoading.json'; // hap包内动画资源文件路径,仅支持json格式 + private gradientColor: LinearGradient = new LinearGradient([{ color: Color.Yellow, offset: 0.5 }, + { color: Color.Orange, offset: 1.0 }]) + + /** + * 加载动画 + * @param autoplay 控制动画是否自动播放参数 + */ + initAnimation() { + // TODO:知识点:lottie.loadAnimation将json数据生成动画 + lottie.loadAnimation({ + container: this.politeChickyController, + renderer: 'canvas', + loop: true, + autoplay: true, + name: this.politeChicky, + path: this.politeChickyPath, + }) + } + + build() { + Column() { + Stack() { + Canvas(this.politeChickyController) + .width($r('app.integer.lottie_view_canvas_size')) + .height($r('app.integer.lottie_view_canvas_size')) + .borderRadius($r('app.string.page_loading_corner_radius_default_m')) + .onReady(() => { + // TODO:知识点:必须要Canvas组件初始化之后才能执行lottie.loadAnimation方法去加载动画。 + this.initAnimation(); + }) + Row() { + Progress({ value: this.nowProgress, total: 100, type: ProgressType.Linear }) + .style({ strokeWidth: 10, enableSmoothEffect: true }) + .color(this.gradientColor) + } + .width('60%') + .margin({ top: $r('app.integer.lottie_view_canvas_height') }) + }.height($r('app.integer.lottie_view_canvas_size')) + + Text(`当前已加载${this.nowProgress}%`) + .fontSize($r('app.integer.page_loading_progress_font_size')) + .fontColor(Color.White) + } + .id('loadingHUD') + .width('100%') + .height('100%') + .backgroundColor($r('app.color.page_loading_progress_background')) + .justifyContent(FlexAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets new file mode 100644 index 00000000..76cc3b95 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { CommodityList } from './CommodityList'; +import { LoadingHUD } from './LoadingHUD'; + +/** + * 功能描述:本示例介绍Stack堆叠组件和LoadingProgress加载组件模拟首次进入页面实现页面加载的效果。加载完成后,LoadingProgress组件会消失并展示加载结果页(即商品页)。 + * + * 推荐场景:应用加载缓慢的页面,如商城页面首页等场景,为了提升用户点击响应的体验。 + * + * 核心组件: + * 1.LoadingHUD + * + * 实现步骤: + * 1.创建一个Stack组件,LoadingHUD是加载页,内部的GoodsList为商品列表页。 + * 2.进入页面首先展示LoadingHUD加载页,5秒后,LoadingHUD加载页消失且出现GoodsList商品列表页。 + */ + +const MILLISECONDS: number = 5000; // 毫秒数 + +@Component +export struct PageLoadingComponent { + @State isLoading: Boolean = true; + @State nowProgress: number = 0; + + aboutToAppear(): void { + // 模拟网络请求操作,请求网络3秒后得到数据,通知组件,变更列表数据 + setTimeout(() => { + this.isLoading = false; + }, MILLISECONDS); + //模拟进度,开发者可在实际业务中与服务端协调当前进度,自行实现 + setInterval(()=>{ + this.nowProgress += 10 + },MILLISECONDS / 10) + } + + build() { + Stack() { + if (this.isLoading) { + // 加载页-HUD全称Heads-Up Display(抬头显示) + LoadingHUD({nowProgress:this.nowProgress}); + } else { + // 商品页 + CommodityList(); + } + } + .width('100%') + .height('100%') + .backgroundColor(Color.White) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/module.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/module.json5 new file mode 100644 index 00000000..7fdaa587 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/module.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ +{ + "module": { + "name": "pageloading", + "type": "har", + "deviceTypes": [ + "default", + "tablet" + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/color.json new file mode 100644 index 00000000..d76ad48c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/color.json @@ -0,0 +1,24 @@ +{ + "color": [ + { + "name": "page_loading_progress_background", + "value": "#40000000" + }, + { + "name": "page_loading_banner_shadow_color", + "value": "#AAAAAA" + }, + { + "name": "page_loading_goods_price_text_color", + "value": "#E84026" + }, + { + "name": "page_loading_goods_insurance_text_color", + "value": "#ED6F21" + }, + { + "name": "page_loading_goods_insurance_border_color", + "value": "#ED6F21" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/integer.json b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/integer.json new file mode 100644 index 00000000..ff31aec0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/integer.json @@ -0,0 +1,148 @@ +{ + "integer": [ + { + "name": "page_loading_progress_width", + "value": 80 + }, + { + "name": "page_loading_progress_height", + "value": 80 + }, + { + "name": "page_loading_progress_font_size", + "value": 16 + }, + { + "name": "page_loading_banner_border_radius", + "value": 25 + }, + { + "name": "page_loading_banner_margin_top", + "value": 12 + }, + { + "name": "page_loading_banner_shadow_border_radius", + "value": 25 + }, + { + "name": "page_loading_commodity_font", + "value": 18 + }, + { + "name": "page_loading_new_commodity_height", + "value": 50 + }, + { + "name": "page_loading_column_padding_left", + "value": 12 + }, + { + "name": "page_loading_column_padding_right", + "value": 12 + }, + { + "name": "page_loading_commodity_image_width", + "value": 130 + }, + { + "name": "page_loading_commodity_image_padding_top", + "value": 10 + }, + { + "name": "page_loading_commodity_image_padding_bottom", + "value": 10 + }, + { + "name": "page_loading_commodity_title_text_font_size", + "value": 16 + }, + { + "name": "page_loading_commodity_price_text_font_size", + "value": 20 + }, + { + "name": "page_loading_commodity_price_margin_top", + "value": 12 + }, + { + "name": "page_loading_commodity_border_radius", + "value": 10 + }, + { + "name": "page_loading_commodity_insurance_font_size", + "value": 12 + }, + { + "name": "page_loading_commodity_insurance_border_width", + "value": 1 + }, + { + "name": "page_loading_commodity_insurance_border_radius", + "value": 4 + }, + { + "name": "page_loading_commodity_insurance_padding_left", + "value": 8 + }, + { + "name": "page_loading_commodity_insurance_padding_right", + "value": 8 + }, + { + "name": "page_loading_commodity_insurance_padding_top", + "value": 3 + }, + { + "name": "page_loading_commodity_insurance_padding_bottom", + "value": 3 + }, + { + "name": "page_loading_commodity_insurance_margin_right", + "value": 12 + }, + { + "name": "page_loading_views_image_width", + "value": 20 + }, + { + "name": "page_loading_views_font", + "value": 16 + }, + { + "name": "page_loading_views_margin_left", + "value": 5 + }, + { + "name": "page_loading_views_height", + "value": 20 + }, + { + "name": "page_loading_views_width", + "value": 60 + }, + { + "name": "page_loading_views_margin_top", + "value": 12 + }, + { + "name": "page_loading_commodity_list_item_height", + "value": 130 + }, + { + "name": "page_loading_commodity_list_item_padding", + "value": 12 + }, + { + "name": "page_loading_commodity_list_item_margin_top", + "value": 12 + }, + { + "name": "lottie_view_canvas_height", + "value": 100 + }, + { + "name": "lottie_view_canvas_size", + "value": 150 + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/string.json new file mode 100644 index 00000000..ffdf8b20 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/element/string.json @@ -0,0 +1,116 @@ +{ + "string": [ + { + "name": "page_loading_progress_text", + "value": "努力加载中..." + }, + { + "name": "page_loading_goods_title_text", + "value": "商品精选" + }, + { + "name": "page_loading_commodity_title00", + "value": "大容量充电宝智能安全保护" + }, + { + "name": "page_loading_commodity_title01", + "value": "高性能轻薄便携笔记本电脑" + }, + { + "name": "page_loading_commodity_title02", + "value": "时尚轻巧智能手机高清大屏" + }, + { + "name": "page_loading_commodity_title03", + "value": "豪华智能电动按摩椅尽享舒适生活" + }, + { + "name": "page_loading_commodity_title04", + "value": "超窄边框设计沉浸式视觉体验" + }, + { + "name": "page_loading_commodity_title05", + "value": "时尚简约设计潮流双肩背包" + }, + { + "name": "page_loading_commodity_price00", + "value": "¥79.9" + }, + { + "name": "page_loading_commodity_price01", + "value": "¥6975.8" + }, + { + "name": "page_loading_commodity_price02", + "value": "¥4279.6" + }, + { + "name": "page_loading_commodity_price03", + "value": "¥5385.4" + }, + { + "name": "page_loading_commodity_price04", + "value": "¥12500" + }, + { + "name": "page_loading_commodity_price05", + "value": "¥105.3" + }, + { + "name": "page_loading_commodity_view00", + "value": "3.2W" + }, + { + "name": "page_loading_commodity_view01", + "value": "9.8k" + }, + { + "name": "page_loading_commodity_view02", + "value": "1.8k" + }, + { + "name": "page_loading_commodity_view03", + "value": "859" + }, + { + "name": "page_loading_commodity_view04", + "value": "4.7W" + }, + { + "name": "page_loading_commodity_view05", + "value": "1.2W" + }, + { + "name": "page_loading_commodity_insurance00", + "value": "7天保价" + }, + { + "name": "page_loading_commodity_insurance01", + "value": "15天保价" + }, + { + "name": "page_loading_commodity_insurance02", + "value": "30天保价" + }, + { + "name": "page_loading_commodity_insurance03", + "value": "7天保价" + }, + { + "name": "page_loading_commodity_insurance04", + "value": "30天保价" + }, + { + "name": "page_loading_commodity_insurance05", + "value": "30天保价" + }, + { + "name": "page_loading_commodity_other_function", + "value": "仅演示,可自行实现业务功能" + }, + { + "name": "page_loading_corner_radius_default_m", + "value": "12" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading.gif b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading.gif new file mode 100644 index 0000000000000000000000000000000000000000..32e94e15ed29a5227d4f73a53489750da1ee35a8 GIT binary patch literal 606897 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%0ARwG5vZS+NVnHElv0+BA*ucik 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

bSUw~nskb*Bg67H- z@UlK9Aus{mYP80U2u2LCdOwRJb%rIUE}Ie3#*?z{U~BHshBw}z;u z$_FKZ8mLSX8)6g(a-?O6H-dho&yYFH&c70%e-ftfy$doIiJ)>>B1={{J@p-|yeVf1 zsIUSCsa$+7AF12wcU}Hm29Y5KTsyzSL=s7}v9v5%e}>T|Fd-EZLN&XaJpcM7dn7?1 z2b26g3eU3W=RfzG{CmX-jG8V=v@4=ePK9Gm|x1bj;-QXa@TfvWIS z{Q(k`x)1nW;OUvsYzTo4Ky(akJWEFql@Z6#0VGXgi8dS*Qm%>DsRfuu*+vMyn=Wg@ z6z4%yO`rxV+2m9f*`I|GGVC(5^mqe`jbIIV2?X_3ZUBQM0B~Ed_5g(8Dw}i1@xu!^ zCxO-#CE-Ja_IJbe+ILJ~=!Ntw`0pIo6yJhSe=qTn1@yu`vE`Y5cH~Zl_k?{xJo-Li zpCTL*cn)OF0f|icETHytbdvSJ5^7Y=0Hrdlg*hILba4)|+y(|O7yBCzN}2{Mb3v*g zNxTh%$N^GDC(drq%D4!|11KSFdRr?Ca3A9|myU8l=H;x!IPjsd1tJFmj89y&!6`O( z4U8;KC#$D$G7FPHhxnvGPzGIlAiKv$|jD(2NOWip*FdC zT04=ctiV%D`7a=Qoh<2130Na@A5e{@XC{`5Dbpg%@E)lp^hjY&dODc}br9#hQAxRN*X<|4! z4q4JbGm8WH_#=Ec5LoKfOQ}#iEzC=pg8?z*r3pe zZ|n}n0Vn_wzX27H=^5;`0;*WS?7=f0pJw*+brarw5?_{7iM-bpT{JYF!3(5<#8UVy zAPT$tN*1X#>6||_$4cy69NDokB=kIFrW|3^_?6pE0+BBfkJt1PGZLp54qMyX&` zBCB||W}68F)uNFh53@{8$PhMI(--kFM2xzu%1UIi)v$`5GlK-%5ehY~MahzBchPMRYwenQnnGZB)L^ClX4yoZ$+m z@-jdFS109;6Hj~(J_7X!h1v}<%{bT)=i`~XBd@PMC4W_3X@v!GR!ih_$Vsb%+2wm9 z38vZ(!n+!WceRv1s5bu9!}(Kf|DrCNiu<0|fY~Ya5Fur{*7hJ3^#k6LFFaM|^RN&U zP_Ud*B*=m-v8l7mleRF_3t}k!PpC{FMk}v?4LZ5&(8-@WBlaJ+l+SYJvMfVS8p5I0 zaF!CS`*BcnMO-G9pGQhP`meaSoDaeB5V>aV29YHg9FkSBzZ}V38)H}=E8aQ z=I0)bxQ`^jtCc^UYo>M0``S~;kNXhz8PUI6(bhLrdoo1?v%|}+3ocnGi67Csj?R-) zL|d5Eq4%mSMastkuW3DIkQ&oGI#H_~py6X?$f&Ws^Hk0G^wzsya#1u0M1r8Sd4clo zob_?(?k4C5?{fV_zKshjHpo0fX~)6mb|zkByP z_KA4Z^_^m3x*HpEv<%7Q@*@~4_Uoumjf;84^_%O+Z25@t$n1wn%M1F$nail$mhjM; ztn^ufl7$zwUZy7{AHjvpqK5;tMN$DxrI7^$yp5wB$y zuTUa%2dAmy>vGJ!TTk- zBUb;QdGb5Ts~462P^{T!b2k@q(%r_@l)=+~gMtHWW0D3^w>!-#p9pFQ@U~W%n=O!x zUFK5=l-B2?ecZF>( zHz}IrU{9X-pR+sX({l!#MF%R1Jrr6k7L!<98(I#I2$Sp!>)nLrVX@1mV+i7M_XJYc zZ2|=MvLG|1Lu%|TpEo2vFLa*iy!PDYMMVR)VTPn3bWoEm9i0`mT^^kqrZ#WqHE#C2 zwS(URX+gqH2!>4B|1|*wKg4DM?Oj4}wyO1Bi z{j6XSv&YoGIN#+cVFKnt4_CvojghgJr~39a zEqfT_hL8mQsyl^c(3-=^e*Y~lhn>%UruoEUu{_&3&=i%i1(9wS!0!!IUsZ_jKk%u*zTI8lKCHV$K+mwvYkOc@^Y1S zM79eR4Me6WQI%gYio$V`X{EcHWm59@Y}L!&qh>SUJnaBBQ+D3uoJFV@BXO%D#p%E~ zbD*#}sKZ{9uN~V+uJ@RasU&s;a@?(MSLk@DP;AukXV`{v=e7oQU_Z`=yM0yVAorO@ znIgaL)u=p|*6#q%b;=_XG;1!o8&tO$y_q#b?i|wmn>y!X>1$CgZP{yb4$styQ9~W# zu@qHI^{rC6W0DFcmm4o4U)1?jg!U?UhWE)+#}N(x=yf4O@#9zWU}<~0;hKlb9fP+P zWqyqGch2wDsrv_&X#_3XZLcm07cR?)KRW<|dCLgPEo4Ct^zaUjB?9;cpg>c?tJ>(svd3jw`zVKH=KVK%dN?4~| zq;tL_Ki(i!IY006rFQ|vQByAJy^TKZ2k&gGNOX;#ex578YO24w;zg|qDyBnFcN}9A zRGYK(m#ol_WuTHhMDaUI)#&{+n1*aO5Oe!LGF?9Yqxa8nS}tt&jJtm&A^BB*%*RyG zLITP2<^p1Hb5YIk%V7T4Azi9tvzkTrt&raVFLor{yO;j$iOG+b#eu;Ti5)g(2~Y=` z5uSqHc=8z-4a_q$cuUCNj4@sQh1_9qq7Jk5A5>JF%@9nO6dfIP`;z&}Qh(VrTXH>D z<}P+$Yn1Fp>zxA*-yVI%EGlelM(~!ZKak~Co@W2}W?6K!aHuRwC1>SmPt3>5uPxX^ z=2RB~2TcQeK71C|`nF8&7CWx5Mt-+PmZpwcu3z}(6O+@H*RMVF&*QgGpHx71geo*< zKe8PUUZmDUL?R*|GYMtH6y1=Ehq02ET}gTqStVCird8XmzroD zMW@I6Ixm!C(;HXR@AxklxB36ttdW7_|Gvi8Hc@R@H%HFhKHJb$_>D>ZD8KSvKku#B7!t^a2eZ6F>#C@lt3sfeBEJs?8D!-SUDSB-=3sDjD zUgh_y0#EAUOlyNnI()EJCPeN`uiX?>!#`3d&2@E7Doqor4r0AF5L`)?gDnO3KCF&h zm<>7UUbsBqX)(EUl8f6|7)LYU=LJ#~-0>{3tXuc@_&2D3EDJ7cag1i#3Dt9hY%UO& zJ`2d3o^Le6Z@wyXj9YL3Y{BbHuQa3+u}3xBH6|UZ%wd{mLexhwrg)Zhs;hB0(;*zH zk;w!ylC@||qs~h5C{%;vV&;HURA(zX5tYPM{f5gFC)KRx7L1n%?wbZ?Tmj(@FG`4m ziFsTCpWaYSRM&fps*JXLHA&5C<74Gsn{PO;+9`mGWO&GM{F4V;;(>}b%b`)x+RlCN`-xZg6J55FHc|eNg zgu&qm6(D4&f{tCL?$2QLvw@yXItBzYaM!xaq;yC{w3Xi~dW*Z1yitKFK3 z5ehTe>60NOQcu=r?z4IkL`SLDB1yfYm1Sqb4Exbz4r0C@h3W$M zBG=WJyzodGs(zQHr!wh~3DIbDt?TPiAi4tQY90=?pF(Nl59owLbOq48U2`9AL1*Io zEeaYU{V-F%#A%nFc^C6AX;*!IRHL@kh$WY8@}h$Zd(_QpVmw$eHLiBCyG`4A9_@xq zc1J7FB1YMcOm=jt4vqs+9h7BW+xH?#|p6&UYrc=*Dmh$rE1p`S2!EYW7uJ z!2#e~v7UY>g$Bzk*Quw#EZjs5r?+d_k=0|nnEIVe()`tD-(SU@stgf8RR9w+)5Rq8 zYzSN3;I+DX*?yzOSTlLr%wec{TcNv~w_`X&gU_lTb(M+oHoXqEENjfITz0NwZeugH zje0;l^sdeW3JawCNPfzMe^oU9})R@v|J7-X^e1HKt^~ zPHwMUQJ$Q?cjb4mTTE8vFH$CW60w}vXR%CI=wu+1>0k@Gip~ux4JL*u-9-h<3L&If zkd6ZdWx=~&@ucv}7jFjd>rI}sJOzVq5tllws@@{;3;_9Ve7kSB=yzoPU)}evUJQe& zONZ!$0~^DY=!<80ngcWOteIOEI*D$Z_g_(l_!NU`^ss#4(OrMBqD)PBFb)Px?bBgG zGM+j{=1oaa4e!nK!j)VlMjNp-3g$5P$Z{eoAPE&JbRGpM9BReLA3m$jP}Bx%xWx8q z=_=bB%-=p(`k(5HHX*8mePlHv>g0tl$NN74saJcrE_Y`sn@P)$Dt~20pbwGMEEAAq z5Udj`U@+`LsjeG%TMOCe_caBnuWRi*XCCS0 zd7+ZIN?${?ol{Ncaaq)p>|D(OUVU8AqtGvYU#dxNFT3R}obOC0Tp=poqWEfmqxLw% zn7VOUQ=4nfRF`Keh6bA~mE?7AcZkj=)If<{$TnTOE4uv^n~5EzKkgzcJmo1oSnDoY zalT7awq7;z{Hpx;fXad0KMt!nOG`t0BCFU^QCU|gZC~@<`||fD5A~GK?ED~kOf2en zP|Eqxy-vwCH~!PO$ZW#8q2|qf{(Radcim9in6PDT{A>+=A&JtfZ8wzglIy33h8B#y zh_u!7d>9&-5(W`oCjVMYkAGO}OwGq2p}Nzia(O&YPGx8GVF=yHfGE9K<{^*yWEan?uc*e%Daxh zgF?PR?)m4;y1pEa>iFSroFaAHf+jaWjW}ScSY{jWBlIdL_RtSh8gSv!QJv%iZ`PgB z-8yN^4mH-1GAoLG&HT84Omfw&AoPTeMLo|A*0$0}c-EeJ;m{$ulb7>i9^k_c+>gce zA&J)iJ%~}vU^c2jlU;uT`-skh2S%Pt+n=l*KgQIIgZ`@YF+FXaI=Jod)h8@pOlZ)U z0er~0ljq&>(;5F0nMRNO$vge&8?vlhHuPd+uA6p6pOIUyQD2V{@7asyBqIT38}Z4s zrcL34;Dl@2xSd0ZcXrrX_7VZ&GEV)}DChnZ0ZCQR>V{TZc z`>ZOTBD)37AOseku+1|~S##K&+I002XZn;sB*I-(Rw*hDgBs{z6&;8gU_}-{^jh~Q zCA%mU^i-YzJV-0eA+&YV`=!z}W2gAms9 zy2NYuYfSYl_w;=j(6{{C8-YtK+$Q@x@*z=%z|^*JJi2dJG$QQb6Pqe>RQ76?XSxF^2M<~$7$+_)5i;4AFG^J zu6C`obS+8!buNRn;W8hTI(Fab`uxV}%ZIKnU%M7wI<{~6J^L{5R^<5hTh|wTr*+)p zHDl**K28IFW;+%gjW@@H8jlyB5LUDw|2X3O^Tgwy8P1zIk2lYXHbt5PLCr@tUVS_5 z`0OllnFV`>>zs%dEtWd}tj&K=RmGxZ2nkhcm%Nc7g{Py6S=+Lf~ecjnI_U8}pzH?xrVQ0trgqL?- zU9x?o^Ih$EQTxr5V;vWc?0cL6mXPf{_sS&V&hqp?>sNXY{;=D2{LoB`sK~q^)nX^3bE9Ya(d83I9vqF=e$BQ%v1?(l zSbJAj#mQqIo>qHaa01e-Z}L)%pa9{s!v8&MsE@jZX3Ti>BJ%!5R=M)cAjGCtS zA|CJ!9R6@{V@EA~hcxFxe8E<$_d8B_;1k2Mht>z&K_8I#1306f_bGNQVefG=Yb^@LW#M7o`cP&OcNru2GwzqAkSm!_Re zWE%Tf;_SmoTl=hM!L@pYhXY<@3=EIV8L7VD&ziO<2Mq_Rx}1{<$?P?J4BJ_jnJ=ru zm0?K-hcYBo6U*fgrpdbfcpq=C_vQQdbSCv;oJGeuI}=)bQx&eOAZ^^@zoOS7V=QX| zhfFPF&QUS8iEUKL;u|3`oO^z^!qjtDL%IY1IK<2wJ$)3X=i)0QlN&M)U|cWLYUvG8M@o?xZ8i= z=f<&rF6m|!kZubg2&wIj)dy6WLZHf+w&^KZ^KEER#z)=M{p0@qBT#7x6m`Ux zs#rq&@9JZ!78`0lFvo_SUcs-z^n!>F(-i!(o38a;(}$V&$Ex3QI7e`I7%0oPvm2nE zLr6;|IPaTg&%-gDXD=Ak@YHjqb?|Cg3TYxb1fi2gew+PB6w-$!8=TZ6`2V&|vo)~k^ysy8_3JxA}y`bl24$UMD!TSnGmH66t-4YXaG>L)?r$SEq2INue1PCN) zmw6p6ljydf8Uycne<>2?!c&*@;PDirW-#VS6toAOF5O4WCX?9!p_3_pkPk6!Tu=)j zc4NGN^x8PeZu#}SZR1+!7S?J~zeh@t0`Zx|a&CZpYWM51RBN3nfoc+0f~Yg$=o4d_ zHU`d;7K*n>bGXQcO-~gCU>$=h$kwB|n^Qp$cq1Jp(?&s&`32SnM7T2B1xYetY113T zbO9q$0S}WQMJoK`iI~4yX*p6S$^a99^b!Xu7(yjx2g`#& zfy7=lFvmNDLCy|ueJ@^u*O07t(a7OGdBVQHjZb30bmUOd7g{j?z*jl#;DusNKhMCzLc9o6H#?ZdgNJj-$U2jOqv*Hd`g{s%)t^P|jD(KKdq~Vn zi=iFVB)tR`%J%dpvQ!#0Hi-lo;<5gRF5(-zSyVDZVV(=d_%q@q?{X8DAqgVkM`Mwi zPGX^SXT~%7CxduOEeH0cx1ne+j5lLVe%}h)@ zZ~>H9P?6nZvcLbxHMrdsgr9oPkM~9OHAkSQGx#1=SRnZBNw2(t_sQnJKNTh#fPm*o@ zlX~%PF;zMjytGJ>DKag%pw)wR@@H*(O~0HmYkEERV7Gx10-XL^fXLq(G$k+4wK?5j zLt-yV?-S0lj)spBN+8xHn8EWja3Da!6>!BRI1Bsafhq2TK(Mm|1NF+E1=I5C(+a zLqo)n|OtCrp< zch^h1^`06hN2p&OY|Oq^W9`r)=3qjW1}1t4O~YvOIG*Ca>an9}D=~sa4@!ZUs7t4# zl~Py1qJS*?tte5ewT`<+0U2U>cvDOs|9&9I1e-XW5509m9_L{+oVPILatr~Xzpy35jq0z zrz+&4>uo&lIYuJtjFkzwp$qvQI}J=X=_pS>hV!a`<&oTve)<&|6)1%4zRHDcn{Xju z6P@tObjY#gJZUQdRGCIZ);HE^ZqONDwa>@`ficCm@VVNDd4wG%5Pf*{*Jip*+oCFo zQ5_fwyva!rdDsTZ88T%wB}?W%y~91w!DaRDuY2{oG-mHc$_jWAzPwqb{vYRuU*0C- zMBWrdfJL(cc>U`Y0{`sp7dR&K9M3vh{V#Ww~dl<$=z7rBl_wT zIqwlw>RGf7M?Z7{lg-dy2O)K%^#{78PwiLgYKR$uLK&YfFt0joRV$`;OSKAMHoOl- ze#5CoV&`e%Tsq1DEZe6h6Rw7nuKxH>jd0Lk(&I>5lJLL#>ed{-YOsdk)DrIDTU>sx zy-SSi$XnUJ6xX&M(vXX@daaE*bfsKlmilh`Kiqsch4b!<`_vyAUQn4Q#2&oaydwh$P)tM?QS} z(|{6sYRyw;ztSa!{*PAucJR|K7gv`C$Da5tU9%FwyF3Z7}Q5x9^y8nF38mgU2G*iLcdqEg4tTY5Cvi(#M%OZcnwY2 zqYvFDK$L*a)quvxYQw;IHJS^=_QFJ=3;wIzhDsiITKFJz!rsQj<6G_b)*y}lQ1)uk z%Ge;qv?mBTfDM7tkN(X5C1571F9~*pF_M6K;9i)6PgdK=0AYa*_qkvtO8ZwUD z4R5C5?{bk{|BtDA4`=%SB%7LxxkaTLWlZ7*qD{pp-VVtSF1MkQmIn5^6k9lfX_aIFJ#tl!y4%F>Mzl;B300?L;~>3BB?*q5r(YdQbqtUZ8m1)g~tYCazD8mEJr91xV|h zP3K>-@~DS9I@un350QAVGdzN52H`8hJiUSV$x2fKpg(!g@>eLD;ANe<>=}-)!N*Pi zI7v0&eV;;V0Jmrv_2%&H%Yf{egI*wv3W}f0lSndcBfI^gcv+aDk1@_w!d z&xf!nZ1^K47THOrh>m-)O83*Z(A5x<={|J2AUIiouj?dJL9($E7@NzwO-L^$n^$p~b)o1eU;3=~7P@5aI0n96DJWoWABkcR=8$b`zlhoH76eQxJXl_raes?#0m5 zY?Q%>UhU4znJNV)2&1YcxG+@Ct0@*#DfGq2h^sDUc_?T0IL^noD+Yb6;URARPz{Gf zBtvF-^q)L77-dC}w6e+`Tmz#s2$^zZXeVdJVAkTel0orQ_u;g<@LlRUg0 zK$5Ie?rQ^NqznnUq?Q2eFWYc71cK&{o0uoSS1Ytu{;$*@^`Y9gEfvN-YhjvfQKBV?`)85vnvZ zqdV>@ROLeS%A-_9l%>9NcXtzpkdZ$y#O8N0~=n?#+|_9-m8O+wRQ6JepquEJ44kKxsD{#e+!C z^O~m=2xB5y$Y0rw3fUkhdGor=8(`Coz{3S&1}|z2hPw=oz%AcQ$|T<^QLQ;4nF00O z7?r*l74Kc=uB|F1fRgU(YQ}V!_nokRYB-iFd?U}oUxcC_fOA!L|pQZP|cAH7kIfwS%me~%K zDadszG*EN}-WPVtI9wdNci~_l>EMZrL4MxblEy8x12?up;OiWvGBnbh4mT31Ho4%p zt7|{wAzJ5E4{2Xg^w4mXm-}!Mc0|VUfrs0z;~HV!h5)T;2{y2#4I zGm^^x)E<1HxtVUaqdAtDr`;;i+-y!fu!nehE2{ADdbC5qNr$xKcC7sE=c}{3P?5V2 zpG5tczpI`=*g2%r{lWOERZW0FU*NcichqMcen@aP&=L{Pg8K`Q5*`I7Vtr|)!^c?n zl-oJ~ko-#(WGchG3g+;8dxBfg{NHFNsGVYp--qFg zwzl0nD$GtNrfhJnd0A|J-hBLGCEs{p`5o>T>Ptsdy@7w1+ZUO~kw-}W9Wr}-AIFqh z>&(kKO?1R(TBkMG4jA=Ct+8KTziaSm_`!$!mlALa5r=P&clBE2ZTkMcpku8d=yT$U zhDS+&jck*{kB_ohzq++6tjT!}A2HN)Iy6f`-2{S=KhAwAd8!=cV4J0>jDTitD$0~8 zh(0{I+gUSH#s;@}kv&4Rsz`NxVLm79b~cW^_4c{uwWVsj`b6J>!0rENe{xM1y-%0h z&k3srj9(p}@hSA4j2iX)UA6nNmw%3|e6eUqb2OfM+nt;c|Ksy$(Vx$?D9mQA~q~cB-Fw<~RBJf@WN1{u7*5Bnv>0Jm|O4l2SFKoU{3c-Ew<)tS+g;FD|7i zNFG$>>vWfXKH?b@XY$Hkb@HN<-V5dj&}Cn2bJG7d;&8s;->0rV!xvQ0ZLAWu=2YK& z)ZJ(H&E(n_qmkR>0kdCV72DWFQ7Ybjil1`2cvp#$6B2hAr_h&yj_yD*zsk=D4aO|%rE^T@L_h2wO1mS$UM_Z|DGq9+zbzG=2{ zmRCNg?3q}ti_K}AOSMK>%pWr+nm&v?HDp*tvDDRCYky1LUb5UusP9W5z|XpAdj04S z>WIx;x^P=vJ8=(0_|TxtWSOb4aqp2{t(H3IkhieM-UJ|EL zz_RXXlcz(LF}Er3kC=nYy=o4;j9nf93JkF9ae;LQ1Kk(up@6~2hITCppLm||KkR8v z7X0vjqPJ;<>U|+|&kaGE>YRcst>8yq;7Z`8SYEeQg~Q`;A>dfmZfkMNMZ+l}fVJ$A z5yeMe5ByY(za~sKF+G^aJVVfr(wjWoLxLMP0B{B^StfKRS;u_x7(<+)lpw^nlG63! z+W~&7dRO?SlOX|$m78mAHC=*x+5?2Xf^vGOeww?m}) zQ6uyIT!{6NrhAod;Qb{Fy%@H@bP0B|z0ljHndXnCb%Ijia%X)w1T*Irq z`hjy%yKrOQBR-$5OWR9-(Q1)I+q-8=`m=+-8|7q`N1mK;aZAeCk!$DHiOLy)c^+HK zvn6fEYGuP)4D z^j@u1pLiQOulRJ^(^GE?KWNHk@OuW=fb)!+kNSM>XY>1uK|To{v`eo~T~ze=tP|+j z!+dkIL{{Z8yF4os`PD#jV5)W6Cv5wZUEM}jk_uV$AAK0R!x`)T7j!QVXN z8S4Fdw;oOTd(*WAXQvRQ*DehO7M-U&bcad@>!svw-RVL!qvJ;hqi=NsoJ zs$DGJ?U(S$=ibhK#!Q&IR{2Y>FUwY>&sqmgtbLNdvSa8(!kmxhUuVrLD?>?yC0-%* z6E&aMl$N_x^WR1}sb1?NCnbM~)qe(O_B40AKK<;BfyqBr=FZj1>xsYk*%oJbB$&MJ zQF8U)9|l{M@4x@gQlD{2oy5^bBz#KwlQjD=ij{HyzhR47Q*1}*?q~Nk{X4S*-+lgm z;lu;S0%P)@p5EE~5QN_Ei3@`}Z9D~Y4`!^0O@5qp-Q$W6zc`;*{ZXIztLenUc|YRc zw|6b?76v~oi$+`wGn!H;mmf>G`n;rR;mOYq?MDW&oV8C|l2!&!tpCg*{+r#KwEFVO zlOL6N{}zrW{r&LW@@EFHF3wI``?U4(auR2KNuvID)Y)=%$T@LID@o4wzWKji+m&0y z$Lp_;ASN>YOM0Ca18B1)A#7BpgpC0kMSW~3aBdOJ*e?Kg`s6Kr$@(4~Ig@0n37ZfaM@1*7dYsXXXwN3AwWlz& zQ*9hlcZa6hXQs+8r$DsX0jE+rOQM~Z*|bu&d3)-X(p1m-G`HBa?hN*x<&^c&r1Vi0 zACI&{q3L1u=|}t0_s*sw9elJs;$mXh`J=M`v`+rImT|T|k%s$rGj$LmEO22dr5qQy=LQRT+Qk1P=D1aK%ssn`&xw2Gf5*)a6{tb@1Nw1&*pqli?9E4;r(*X=g{1l%-or6gkc)) z&1cyrevD3W?xI89=h&maGV@mI^GUgf8RIp~{5tB4eM|M$Rf-Cw$okF@6_>?7fh^fDtcyjT&rgAKQf zbaVY59f+_K!Axnet*r8`LUVIDc;gqCF(0bSg&w5gPs)|%$Sb&%$uH)cvg}Q(`G_Mz zcnK4kO|Ll0`d^l7Uls%{gh&Z0-0099f-)BY0wlX!N$@Ab!25n+Bbfch)8E2}>eHbr z5a2lmT1&rldnM+#nqzAFmLVoSn~nc<4=p4~-RI-1SWtBeKoCJlGypaRQDaGmpIlB1Q9ZIuO#LD|%*9<1V)`Ib zeL~ENj#SSI;_@^X4{|H15a|2bXJ%yp7j75{{Tx?A z5mqV)f&OZ9ssL~v16)mOFZ6CzFPC>8EA$$u{pCsU)2$2Cg{v{48|W}F)dI^yY!bjc zNQf7KNN;A1y;7C5X@deCDvGO-tW*`y>T~4__a{qgebuh`oX6*2!6!@k2_PZotCi^2 zckuxR5BV__;aLdZ4}*fSZ6rYxm}~c<0{}OB?M=yzV-2IG0TZ2sVSerHxvLVAlz#{A z7zMtK1U2GUW9cw8I$S{ni>B;9$lC{EeL8Gl<{g-!2q92_7w3VOt3+ky4HZE{Mp(Vo z-Pky_tHA4`bG?M-6!7Cl%iUGtR70Z?36SsrtN^027fu#IgTWv-O7r7I=yX~0(7Or} z1po_i8+5BkG%~#L#%8svhXUH393)3?h~E*d8We49w7Bc!?}E?Ua<2r&r>{2b)GAcE zcEfNOBY{Y{D%VvCG5aWR6=exftOVR2fY`GBM}$h~tsWGFBLqs|wXQZa0|Tv+^MI@f zf+Io3R(I{WuV?7FN#mqvV~U|m%jGAs?Pf>YY?R}l$TpgtK@2zw%8WG;mh9&6ORc)fyyp!~Lm0?@Xui)jsiW6q|Amr453LoK z?Bq%wuqH=Dml`U{HrSY!jY{eC+`lkS?GW+D#KdeG`G9g=(H6KhtM2g8y5aW-YbFqZ zg*&nsu3V_@rPgEjo7b>yDjkshu2^RZhDS%fv_U4lLr0U)E+SaGuq636@-&TnC7kRk zw8n-<2QVerUN$0HKqzK0yo6d38p=f^KhCNgVjITOk&8!>!E|I04>b(IQFfv})$Q|! zM5R*^`Jk0&c52@x`GLdj-klGqCmZjxZx3GrBqFGq__j6op*0J*@(hgdtyAGOuXvGn zKY%EMBjDYb%V0r;|!kEFQT?ZW7eXFEi39kzO68%Upzq2=0g)MmIzz7cde*>V;s-eoP zo?A}O`pcThT<8uVbmJ;f3Ib6Os>E^O1PDAx2vsS9i~hi=pp6N^y7HkqT#hri3I)OH zvf#Bms4;6lL<}`Of&@4Ay=nN)Fsg*|t_OVhtN__}P;^|q_vb+P5P2IHmT z4alw!Ee(2bCDBWL0qlKOk6lGGn)OPf1<>cgw$h`ZwRWDohvUm`(FB!m5N9&C%CN{U8q ztdyS;Bb_6w;@E&a0@_5w6IbC#G57%cECC@)+!u2UGbKLI27%(h4x1PX;%*1e;n&#+ zT@g`B2=OL8I(rD4mtbfU3Huj>1PxfS01NiMrNhALDqt>#GU$D-k@z486c8Xzv!5SS zj82YL-4PQidzg%vXqhb+De1%gga~Rr)W!n#3ky{iG=*nR9?u4JBf+~2RD17T>Sg%= zI-o%NM4}^IMG!s&vx$q2i+oZ!5X3+Naa^bi#al{@yiS8F&?G2OcMah8$S<9wvM^cv z1LxBWc|wSx?Hx;qW*r~M=b~jm%9aL;`a*PMBZ8Uc&ZMSVx?DINstbk{2>6NDa3{Y_ zUjyw@ibz62WwS)Z4c&OY2)7?zu@|ZeK8!LA@}OjXlaj&5En9Bb?1L)sCN&~3A2z@r zry+Q3-e{#MPe2IgL-vhBEd~9Kd@#HnR?PPRnc{IKmJ<0Cv_VIQVEH2ASQ9KC0)?=i zzSqD2Oh8v`YDtp|X7_!>x6p0Z_&($X{bqVT$_WM^Pm(K@C*w8b9czR9=i@O*L4_~_!{nk3dVe7=vtzx)*I^Z!3F=kiw=6<3Gp=khkXGW|uu}6tt8O+a3 zf%>6MNQdXG!8FuH8roX~qtIX!E>zBz@yy%j@}VoSDV@VlDO?d{VU;v znN0u|@@sSc!(D>Oy$Syh5-P_8o{hEsH25ALU(;wthVX$fzf-4aIC7HP;VIZ@ZUBdZ zXk*FA1fw4FP+m4=mL$a4LtuRuct5-bistdJAHtQ=J}2g~mZh z!A~VCZEm}9TOGoo78|5>E|ybIxOyhPZYq0xGW;@rb@b(wJy&gaF4gnYhxP)Ee>av& zTK#(WtJMDc+v?Ewn4~JR7AX1=Oi-6tav>+X5JY7iI*UuGf~I5lRYr(}RnSzV3UJKf zUH)hH=;3r9@3;#K1HqCfUfXt60+~Y4{LfNjoOu@Z-dlI}2WK#gl~@ zf1mH`zd3a^Nf>Mp{%TutGI7({csw>aHCruWOQ-kZvSGsnNg2aVo|7d_OPk^A$nACy zqmt$|lOJE6JPt~-Jl7lXME0!ahuCqeK1mJZ@KPE817w(#%50>f2OZ!VNfVTA@NmRN z+}PDq-$j-`QMyfksr)c*>z$hF`HrMB_i<*A1%^$ky4P);AAZwJ{1s&p#PG zDeo5uiXtXx^jp${k@WNahr+867K5Rz9-F$!k8sRHsT~4+Ms$>?{kWXaFS%FVW?)f# zeyOn||83)`O5K#(t*WeSl@JyEtbbbOtb68RD!!9A>6TR`!vn2-rdhCSxyUtiCyy!= zU6C?kPNsoL*#anf6;EN)5f{N}N`4m&LclkEOhYD%1bB@J0Yt`(9x8ZFpuc5ela#KD zvgC95#YwDltp-oSEehWFeD-SfnlmN;{>&;#^E^^k;`7_1 z*Sw&43)8&(PR(3L8PX~&IC*pK{&=$J3Sff+9+MB}nYCkhVc2c<&#mbZu8 zwr#k5vUwVo<^I&HA!6fkj~`EphR*#!$h=@A)yllsyYt`a7y1m9Gp`&`X-l5B?m5p~ zahy|p)ZM|kKHC@lLp$}EI!`T?cWO3tzZ4iMn@l|90qTm>Q1(1zz38rQlio4*Lf4rx z0A{>{0)t!Zpw%k6I13qR${S+?N^Rxd@?J^F2}C)?$+M7Tt*Z{!2tBGA>BsfG4&MR< zkLbBaE|kgodrY@^UU)8l-64HW8-3nA!5~E;A#KhVF!ehlmQ`^=BKN*zNHsh^Jy!bW z`5x%`_e0h(NA~X3iv2^Z`4<@Le1JWitey(reS;yx7f3LNgfKFT4IN%Q@N2!ODqeBV zS;;KhADmo4*9d@v0=6QJdp_xtKTw?6B~1k$C3##$g3(dvTWpRlTXf>|TMrVS*J20f zsK_fiIVzOWSA{cqY^SUpzG`LxKT#VeA4hEJ0?0!DP6KDE)Lf! zxctj0{ho5UR7h*K&oP{q8i`9h4e7~sqQjI+=^LzgP_hRr>)Tx4mGyk3Ca30-gL+P6 zC2^`vrWyi5Nl_SSMUnASaGhlY@hW?hMJx~IQ^Z!F(V@&t2F_9p5Z8NCik`%~kMk}~H+*D#gV!@cGSll?t4)FKJQ^V_W-MCIrp z`D3%T_z!0kD@dKOn>dhrR2o34q5EtS?Aa=r)WYq87^lxU9Ljtrn*?fG>y#82goZM^ zC9c?s>;Qq}A=EZVC@|t>7E&*g1J!@E*9@~u)$?`lwk2_oh2PJ- zxOxr6KTdYrr#p!)(@@zXzpj~%lwa_c>CT@MY3UN)5s#CWlxk-`B}D909e?7#St9na z*PAms5w@hIQpQa;qPR*$^8OdEx>Y&S(?*fL0~s6U?j?rn9TQB)#*7}CG!cQKw&U2@`M%R|2GzZR~_hu%m zt~ou`o<4afu_;RCh{_Y=HymtK(=XYT`cKBb8(N)}+^Gw(7+p=JvH_YP%sPusSa^@f zi5`JUvmv4TA<*^op4QT@!&Y(v&+gIz{6SLR#sqGv1N1yZ26{v$Q1rc1S!+jaWs z280jEPX5%ejcgAEX_#3h6Rubu@AF|p(cqL!j;*ssbIZ8*TA<4K!w7?Q!J9aby9zcp zd#y&cVcmGis*n28cAV<&dl-FcW6!yh&)#NtXU+A-_>sDj*nc=^l5;hqOzF1~Q$~sj zp_csYI}&o5g;SI0+IG*T@8B+0gz?o6J^NvA*x{1@0j*El+t8ZrlI)$BdO>Au)}A|) zpBCtq3VZI_yEPt$y^*mtUqA@DGE zeEmdU+Qaz=F>&F^m1gF=`8p%Z!4D=|?GT~i!uaBnpspygdtz0zc0LZRZ#n*&YK#}*@|%30Kptby2QO(Wb?tW^ees{Hoyx|@s^85+#yYmU z9=0u}^0hG{$)Sfo&7U{s96eesbFXjr_7AIhi(_VrqnQy`N4?&(N5f_3e196>?3vKs zx#b~crSa1=Ib(Nw3I7$VTRvcjoo4u9@?P*hM+@EqpYAR`5XkqL8)b16w zVl@{A!#~d-%!@aF^{sUNYHBWgidMXkowS-P%lh>ss=4z;)S#JcmVHf}(!ZTSX%|A$ zTg-e4TC#VOyp3GEhO_a5Q$I8A9LZmKK=hTxIG+1hxI7@qi1`j{N*siWulcUpmlJLcXpO~$ymEe7 z|0sKN4+U;7CVzpSj?$(E&61sBnIejDW0<}*-h8J)u|kK$V<8V&PiQ|sR&zR#QQnBCrV zxcyK=?LydNpKQbBYOCfSO0an>)=j`YDNszn9PYeWj8?iMviL$P>s1tRwFRMH(8t9U zZmcxV(locy4A01}?m)yzuC-1D;v^|UYtUNjLziX+3jFeEM-Igyd^2lObukBMX-P~Q zAB8MvMS6z139%@P6a-6^wi1Drq?HWol?+U23F}me+@Ohqty#(Pd8CX9_RNI=7n~jS zf}*56Tk+FHF%$Qj)Ri}DHE~!jQ9x1niP%d^Be$kXyQ=I}s9aR4l-;s>gX!+Qyj1sF zaL+XgvlPK%G{0lm7zf$x)RT6`W@o7D5ziQZuQqMi+n&^p2S}WeHWF*#e4)BoYa5Bq z>14G%Zf<4xx!87T7p}6hi!<{o%5WZKYDJ-#MS(5gjqeSunQ5eIINf?sZvU>zK2eBF z=;}TDq4zC{pC57F>NGo7eXwU%|oGyw5MSJAhkn$VuPNMw0NIfg2xZbhE!O*dakz z|45q+obUAQc$$|W;BL%JTu$TY5;?D0Oi%a5eaM|LN#A;1cah(g+fM9d7AI*t>Q6ed zy9stncBxQ@rJpqs+}3VeZSGm8KE1BFz2LM=w^0zdvp9r+HTI2bWF8FFw+pxrdzxng*$ZgQS%lZp2|J9)o3i2%7fzrQH_R8KHcYQ8={)twQYNb-J&FWxaQg>K`M#WN<-M1k?wxYIk*|OB@@i>$TlXa!_kVgF zMz8wH_BHNr6ss7Ien0fgz;Vo=`^b4;PqNAJJ126p8IL!uM<^OQ7p)JO-uZU-bk+p^ za&`2#D|cgFN}g;&_e<9&jm29@R8{j==TCnZ;(8Jz|7`p5Y09k0l63Ajr{(?@)i>Uc zB&ie35MlHf#!c$f-(P?JONLinyBxiA zv#GFt@cdJa8!vB8>oG1Zd)x@+SiYaXQ~nvMW!XO~{le`(5%;GMJxP(q~?reWEAq zwk1Ztu=<7VS+v@>`CoCJcHRO;?b#lc620op>RcVK4E^74gX8x7X0fgejc)y}Q~&$$ zyx`C84}-Z=JH}&G=R+nE{z$(5`Hzh7 z+Nw$Wzd^n32Y-lLKg3-5Y@)F~JV<|V=JcRMBJQ1!E!4bDan@KT*(hxMK}2FxIc1?d zI(9?4b!I0{VUUM3RzT2>MW*cHrpP_uVmTM4;;}B5ttPfP%GT z0%$OreET3ccv_!KlqB<@X5x>SCT0qDkcCO2UPVx~s|=C_2>A(+BX;OiUSlB1rD_QC zw*uTDURp3XGGa#o&;^mn6t^nH`1)kctF%nYCpC;~Y^4G8<)ir(4NL&v$&f4RwC-aN z5=?5;2jg;*Y|zIyWJcyV91s z@g!j<=_mzYE~ntYa;*GDF;e!HfLs^)R62o_rsc+fZfR%e*G4AG!L9MKCY?wJNR}J8 z`{=lgLQ+_%id3i!=`CAHDH4W%z=P?FGpM@aJQ*VaN(#at`O3pV>lUt33Z7u;l5WBX zOMxQ@lm+R?XUkI2+06PhJ3~8Vdj$vU5DLdC6^R=e3#6+L#I^&1lTTPhz&MDV&uRT zL^uOihfXCxe;~Ie^N=zg5EuO_6pSrWm2yai`$CeHBVPjgf-a~Rgd;sdCu5qDH;}|c zjkRw4x=;t6`y&;}6~U=}DMxy`g`CiUDneAKn%pxKN3WGqxDaYD+4e5!!({a#@hogR z*p#`T5%=&wpYpBnQ3|{YK@sW7JJ51zfGh2t=n} z$V{O*^sf?OiIHL@ruuf$-qJ zO;*;IxVviDc->fQ(ivVlVUR|ovQS%DoiL4>0Hq;jAekmWU|1s6_~i_RWV*ZA+fKkW zGxcW!&CS5P3Zb>!D@V*vc3l=BB&8{u$NJA>jk@qEVl6nIhTH2fiTUp<-M~@cZ010h zva9F(()$7Zb&;?w=%+Pfd*}4wppO!{#z@0U?*{#BCK!Z3ZHFWFUtXG_sV@kd`b;d9 z>Daac%4w5M`m=e+_6KiOqah64C03T~1Bgs*X?jd8A26U(h}|Zg8xzDIwTwQJC<1Gp zM1Ks)K@CA}=Mcd@>UO#ktT+}5k)tD-;x1J_g|jL6BvfY>S{}@|AsHQ;uysgA1%bP@ z5FxOsULe!Pt}T6Dp+IxuJ}wjX=&zs5K6UB-hhr1pEB~3NZ*x);BHnTAo9U#uDClEp{sdDt9UDBE$Ecx8$%L}u6bMIoArBAEDJjyyz~f^S*>ye~*$0856zG#d z%x;|POSH-?1FtM8?XDbTahI^- zimTnD!L+qX5C06tpud9RsLiItDwJ7K0O5`vLh&cB3$wS25Kgn9=DzIs{SW&4v;%w= z>_bnjtp9nWin(j{@vD;zG}%XzVO(@2Cn-ondCK>RRoBqlC{$^yh60+SatwhotE!ey zF_p}H7>)moV5U8|e_;NsZ(`Dg>VNa@RUxm5Ny~ekKb zU>y@{klywnn!u)y5ZWuU;7xfZw!4~|m_9S4>%7IU%y??`B&jbaAx~!Bl2oVOYD*;o zY|OR0t0^tWfhfw*LkyyfX#iIT1y-JU&FwY#R+>4Dapzm?>U zb8~+z=Q?2W<`r_WjJ$KN$gL#eoG5RRrgzX2|4T%8&%@qg;l4o5-R1fzniR)~;P3ws z>)MH2NonGK^L_A3$`K*Q?aYO_Fh@7WBC=w@|x>qkA)lm zv9y0_lgCN$;TiPQ9YYE2Vn2ytlv0Mjx2*59tvGVu9>vQ?UwfF5EqC3l@v=QBqHVc_poQtNS2qdc7d z+$F?n&RRbx(}FN?;ewFZCdTr-$U*8Tl5NC`8SKB%i_pnSD=eajL>QV$5RN7MKH`Td zE3R82-t;i!_LKC*a1dukQzDbEBjbK0>xy7Kng}ulqs&5X<-t@02=hJAl>@Tn!~a8g zOAW7#ipnGcVm(vp5uJD?3tJtD?T?gN~18lUVUTg=+brrCjoHUNZb>fph(`f8wQdN|XNaaLtie$)1)q3Tcf;z-!d4G!UN9^qzQF6m_@QHNX3wgqs`^2Z>Ye@sGFqeo=>7=+f5ioy*k@AKc_Q))D zvaS&>j)DvjBa3OcT1Z@*DCRo%%wI#=Cl=RAKd@^%sBYCWW4j)wJB z#5#@sIB^GiYRlbs6r3;w&(uRjf2E}9o`k;n`=8py$c|A`MLmxX-GHk;d+i<< zUn$1iV_uX*O5qp5-&7QH{{AL^?UohdKbn+<0GiWtzg!$VQ!Gem6hIj_l+f)6HCGAc zq3tqh+TGMV*5c0a>BWr9ac$ZCUx=R%C*L0^8s-g*rv@uk}n3PUQ!M8kIFG))I zee0762~#Me=G48XuXyMO*8MO45ubmJ(qi}sank1OAni^G1gRmU8e%qtE*A<3v>`gdIBhT zUO6CiNE0EljiZpUh~=ohp$fmj_Ytq0q9^R5->eaRY0wOwD-hZbxzPW(qi{N7*X5M@ zZJcDDX~U<5TJc-(&D_wjR@-J+x5lpX>mUR-)VAnQTi?~Gt5Kx|a6JJWM2#)zhsloJDYYWpJnOmAHo$y**fIxVE;V9lF`_{qvG5s@W{=oe0C~J&^oCcX zo}vAxvkx+^T#XyPF2Xg5a3Jy9FL=%RiklN)=OP;eEG`CBVgrxgx$*_aV`07im3eiM z(U6g-bEC07qewR7?8DJ03qVQ)krIz0`H;AwQKV=zMg>B@@mRrSxO}+I#WZm(o3uaf z`J-W}ojI?6eRJhHW^q|X*4WXp@=NEWUd6tna7HDOZ{u^` z#tpflS#M*$zHhG_m8QGrar>(R&FMOqc3}qUVGZKA50?HZ3o)q+PIaqJ!$EVk?&0Id zRtnoBHlgEq@(yjJg%G9`IWc1a%vu0)Ja9Szs>FhBj)aQ!|5Kts^RACv(-J*_X9;UG1il_FE#zm-^5zD zkHxRXygC+Et9!=!k^Dz3{}d4R^mV+_Ox{fAkX0r$Y162Rs05;M7kLoLlgi<1* z7ba$N_Cr_3fsJfHf%hLc*LF{1ruc?bHy__a>sS;M^e#}Bn+P{p#FjXzWgh+(Sj^@Q zKci!B^YAZ(1Y+RaG!K7+kN5R08WR(y>9`pR(fK1;TY;UQxzH+|wWF-?_V7aZ@`p-| zl-WY;K^{=FK64KaWk34r5`0~S`K2HNP^O5W6KABE!1R8=$sSM;p22AWT9CrO)n6Wt zN{#UeH~7eFeEt~$#%p5Z8XXI+KevPtFR;;7Y;-14!|6KBo0Oq@OQZNo!JO281yUnX) z*B=5d>44W}Z!Hm^MW1Cq`ro|j-aG&t5!p8bAqXN5NZ{9L_0PLUdw2Ldxir1L9hfMsO7@x@|9>+lf>kdQ>k+=0`ez>Ep_PH2tOnuGlOP3xE^;WN2-+*wQ#uXi52 zJqZcF76>IG!o#dOt1r*HNZ1kL&&`s<(jU#AJKs;dQTR*D$n3WP-MD1#iHE~tt9Wos zQv}UQoZZ5O>hPdCkq)if6M2v2TzPY_Q*8w!TyRE z?>ITUE;}FfoO9=~4pQk$=Rb#VuOPD1*1D&!lvI9U*lP-mv0W*FOG8T?F*j9haV}2)Zbq1pUJx( zzimeL&H8mzzVmV!O3}8!bEZ5#8FS=Pl=aV$OM4$p+IJkiS(b6-dV*(|N)#>si_&RQ zoR+1|wID71)buZ*<#(PIe#)ZqO{TA$Tq}EeL7T6gredt;a&+TJ-G`fx0>$sSC2p&Q zwp{aRQQ?c7>u@6`Ab(8we=&9M;Y|MV|G;;)G0e>Qv@tm?=6srLj&sO4Bs7xNNh+i$ zJ2(u*NDdu@kVGLxQjMXBic+N098;+XC1KxvzTe*;zw6qye|PQPuKT{<_xtsHJ}6M> z?S3L@dr)&v(N5am3?=C$mTV=;*#)lUmM#UY&inc|s~{%T+2u;jY_>sJdD5vZn3Jof zMrEP5On()IP$r&OmCaK2ojWds6yItUH;YP|+~iDOYt1|fl%k{#ML)Dn6*x<3ZJvzI zYqpcTXY^-YN*)(U6W6+Vpoev2?caPq{~`^v5qK_bS|dKve11cM0+x6-)g2Jf&wbeW zYm)OWZ9L|%>ZzQ+5~U}T4rQPBq9bMtl}_hm$Q+<0`l`Ex4ZAh$x2e=ArM;<`xfn86 z_gU3#OPqpy;_TOZvFYpk-6S;x$yJ%y)MTB8JKi{oQrfa|osMbYf&@mPqd=SPML79N z6x%RAkk3y$^LMXeaDYK?q1*D{wfUCOy(jV<|GB6gcAQcmeso-+_Y{hseL;(N#tzr~ zTwiwbdU$2sKdU&rXo>2vkBEp>OI-b%RT8|--?;H;cvtnsMEW;3EuZKr*Byy-L#dj3 zqw8nX4$Isd|623by9c1Lyg#47_J-k?U|G{cXMd* zrQ2Wow9ecb&a_Ih$SXgTr@1VA60p`R6EU;}zuUI&=3sZRxJF*{tKW0bz5?DE`jm(< zy!fQPP^n>0H5SDdI4d9-VmFH^aaiTNN}P}_J;vO{Zf7d8u+X&22Jl$o7`)Nq>`sdp z7&kHXTeORL&_}u({ZTo6hzjK=rZEc5KI9gMBg5_NUM- z&kTmPe=F^?dt_FArgX+(-e$@#sg(>ZFJRnM!8Nsu#|tfZ06;wB`+Nlt9IFbX&U|1@8!H< z>U*7Cv--tx%rG10PMv zdQ@Z48m7G#g$wCNL!F>&xlY&snss9WIKHbMy>-Uc_tcwL<#*TfLaKGpZB5S|Zjwqb zgendB<++^u;W3bsY~Z)=6k72JwOfjzhX}Nr(b|g!TioRK;PE(k=z_b#a+5t_&WyVR z90))4WuWM(`Bg~bjjlfMtJqW1HSb#j;O^0bWh{=n`Q8Ce7KAcuhnZ?SN+I7Gt71K5Bq)lt_4`4cU0W#+!^qN zI#f}0p&{^qyuSU*;`__DZ&eb+MOir);$QdPOk{qGVDET!vl_|`i_#Z`In@PnQ3;kh z{)7v(va$BQ71F_H20qPZdEGB(n#x?i)9z1(9y$E7xhP`zplfN^c-7vtaNEO&6Cdn~ zGA(ZVV0Lhy+P_`@i}Pm8A3oS;nVx{Y{~{wUL1Ezi3U#z&v^TD)?%VtMq|pbTRs>01 z_L09lJ&Zrk96EWyP-*4f=)<2GM^a9Ejjg_E>zvzr#M$fLj`iQ8k44+XpzxqZyXKTq z=!9zGpXgzrlrm5DOj9s6HS$uTvm@N6$-U|60BrO`_urKtA+=G$#t7XmiI3yN*=gK} zH;QzKp zu^V`L`pBi^;WKZVx~22J2o^!_sY$g3QZnC9>`DHhHR0EuYtsY(=W!mMJ znXP#FpVsg>VVB?hXeBT&yST=CE~34BW%Jo^xlzViYTu*ZHJ8c;x9`@?n~8fG$oj^6 z*4K?)J-4I%{i~l#_yfY-_HUyuUMXH&PnlGBoZR;!@W-7)snegqHfbj^`Xlo@KfS6C ze16k%{&Qk}n*0mFV9Cej8$F9(%zygG>|9R@D}&9-IYr$@mEOKLcqH!w22Fk>Liap4 zM>z7?=&kTtQYhZ)RB+z#W9-YwCv(z9%l`(v*2C(H9=2UG29u5mHb1n_E1Q{k%0-Uu zo>AU&fZ(_9#m9$k?OP9hjz9jQ>ddE0S89JXLU)~d zyinn=vFmYrlj9FIc@LPJPtONlmTgsTKF2UC-_GG=S-}k4xjCHvzfHjuE7Gg>_9;}UI8)KdDogmA07Eu7S zgtK)?-9(y`Whr}Gsl!YF1>QiCynH)vE|V-on$o$a4N&(HT#5%*OaqIc@qAf7fQ{G& z_5%Pp4Et7R`?COtR=#ZzL%pf~`#YywD3=e%n!m?)-71BOhu_VDxTmu(S&zwsP1)Tj zur-H|C}qHgT()BvzK~whv@_`}Lu}H)hd7khGWDsgcc=1BOyPm zse>2d(h$_H^#4J?05RGpNd-EI8QWyGt)H_+JkVMlC_TiGTg{R~0n*`A5T`Er@ZF&$}zMmF;(mA8c%7^okni;AX25_B?S1BS4bQ;6fPqRS6UW;sroD2+yZb zIG{0Se@JhdKA>z}BDS^vVvJiEp>NU1C5u$L)}&u!FU>c1SsBXcXs05a;RGQS&Sgli zWAPj6Q->DvGPFU znUvZ>d9ard1dj*6=KzlnF#vD?Qm{P`rPkeg#drbk*D!e5;`x*d=jmC%AkvV3O#byR ziHZ@Y^MwRce_m#gBDhz@^uFXug}7)$ztM&eTO}LWq+1cq8+04T;4XrPFhfiwKk03jK#Xp=-tCVr&Ohi%AQ9Myc zyOR82Mp`@oLFPb-48R;CphJTl4JuLW~4jRu|w`&Nwa|%lx7Bud0Li2O+XnzShl<}#ET2@<2YQb ztWmz1pTFwY82Sph4wsK$oG1dI7T|z6fS(ZB352SwfN9I{Coz3$4kJinkeWk~+strU zMW0xQp1GN;M`uWjcajB{)IyoN7bFa@Ocz?H*AP?1CNqEv5&@_{11b>BV*tc9?hx<> zQaljM5GMkWer&ff#<7h`vHOX@g40UDNFhtV6pSbZqUu0tR0xU(;HCq-J4*H>kLkw) z&;Uk(Ayk77)W9+&xpf#K$Uygz?=PRvPJu_Rm^2an^T~kg>43U$@j)C-e66Ljk)?W} z|4EOp+e81xrcsyeLFod%LK@mKF*eaG-0K$nZTOvEQG=rp^ z?u=#P+wU}UL6T&E2ArkHNr#ckMR85(*dd_SoW2$ZTe&gj`#IjU@DdZ z0jpU`q0E$Qhyss6CbF<}7{X@9iE)NvQ?FjrN5WCF!E0eZJ9BQH{@5Y#HVXyZSeIZ$ z_{#j|GXkB;I3V#K`?(N= z^H0 zzKen9guYXWd-I1vu;1&4TsYWJrv4bf0}C`;U}EWbcrsg_hd0!mplbsS#jq=vWkTU# z$aeLG5Mw$ZkeZH}V_>OF6*x;?urqCpp+p5q3PBb7d*bL24+}6NlxgRu6gnq>txkzE zfs##E;)oy=Dl!)ilBr|WV((OZ_1I@eP}{6e8xj=$%d&QbqeFcg=%Z=e^t6f>qMM9& zTkZ|#3m6c=oZ8-zEe_`l6!f*YAg?;cPTGgG_Tn@y!*-5g&4HlBU@#Su#!1(!16cA{ zDnx(+IoyNCfF`q8Wo%d}G)*60U+oD`2L3^Duyp_fu}KX8TGBF9cnpk?0bPA7Q#U0J z1&ZPAc+D(H9>{bqQ=yKfPi3L|Sc){&O7+}!8G7&9G%d;_oeq$QXXMj|^Ql#CyzULm za}C|y-ETtDhvssh&$VBG!1y^!s~kfvAef$`B4noN+geh66)FJcbpU%hBq0{`%Gh^vM!h+YM6@6fA&CZM8jxWJkeMTPb-{c)$6s}9W>&Y3co*U?)FK&-MwF2K6 z>!tr2erX#}!6wrd4wB%2f_fRYSO~3+0o!fX9 zIX?7B6*hYFU}p>DTsrN-tk50lCWli^Uy7Mo87sKKiFT999ky2IC z6%;#EvIbJn#?vh|?pgAtLW)Q)K)cf;BS&;`4l%!-%!v*k8HgE4cs!^cf5MHHZW+op zTL49^XQANi_{oNJ!(;E>F7uN$k$2IS?qshz7k<3U!*BSt_PU)VLzRad_eO77YR0qW8s#hxJz*ZwVdL-bo(#GxCF~XuMEdOOH{JE1}~T{4*^#*PpShMJH$h%`U~E-SaZz1p=T zGX!+%5j>O}vVL1zlhg2;?lT)C{ibP6p)&V${kFM=2?5ZW5|c&6f{g)J9RP>+t#Euw z{5|Lp#|8Ge(NT?Fy2wqMd9n=bXp>o;$X$-NQiK%e$0WQ$g_MCD}1 zHqU&;J-u`wCrzyC66joPnPJlMoX1FAehsIByt9gaqu{FZfAFpzgZCJWl~<>7anp~H z5#7`M;t<#+BhwERH?rM=@319K;}J#a5-_A)D!vd>1%iU5$cGr@SuLgOTLWmoF6Vq7 z=4Ojz%;%L)qmAJbIa_bOt{7u&yotE<df9*gTCH)GbCw0^q9)QzgI&I4$RKIHP`pQnugj+nP(sM{p@gjGXqtMo&E-f zJV>}7{qOgMwEHjCosZX!>}8&cZIJ1n>OH4-YTW~*VBpH8-XL#hcTl_~(L4031?IM^ zlO}M+{2-#XS1>@9WRUk99XLOp2Q$vh^Y{rrz<8~ug)bw(3Z#aYJCFyGs@U|iQ5TN_mR4KX# z6v}wXP!Umya1&)3^Xrpy`6oU*zT#NRIR2=t%Cqamvptz2eBdByG<-?c@G5`D*}1y) z9AC4qs4uVWCXtOhPD*~QYNb48{IO7q<_uha6E|2eclG~xzk}QMvIi$*6$c(31uJb9{cmgK6MYy5)!BopfJ`^1h`F zkqUH@XDoBXnroeR;@8!1y|aoPzA-jR5m z1-D%ihLC8#)FE)?S~Aoz{HS|c(-a5uOp&riM@7uZkhald6`bm!rkqNyQNygIhypW( z<0T{Y`Kk*;IS$k+*)w#tBVk3izez)A|8ypv!=qoMe)T2Xp36$UXC|8{oC+&jydfAWNy7cc6Z$#jT;p^W7e1t8fghw5Bn{YqLV6qbWxXthzkmb+6ENX(+iSz z6v&9UP`e?f+}TwKR-c0KSO-TKzr0bqc@(B)SbRkj`CPC6mxlk>qanq*2c~+CN!ogB zF?&TmVC{5Mdh3ca`-$=s;%c+vR*%@$*r$^)(b1r2NtbJ#AgCfwA>#wAMKY|^$RoQ# zTYG(~EldDbBo2qTodxZ?EiV7>yPws2z%y`bSVOehgGW_KD6`UyTU!mHDsoS`o_@vf zr}M|JMOE(K>frgRw9lpYOm(+XiLPL0qSHH8QI({fO}9K~a96M*UHR`<#p3 zp2(-k2`>we&K(Qib7mwo!Qu_fA=NZDQFx~vw0Ny(&7O_NPaw9R0Z|c$!l4HzWJP3H z`U%`bxZkA0xny|eoqw`v1!aSA|KhWu+LLl>G0!eYA2obEctPP#J9d63(_{{O$6@OF zKs>|Lsv{)eZr<9vl!JgqC-#sD)vo@$zU}tK^mBrn(b2Zgi=g z()ER7T5B|)V`vCQ#K>syB}Lb+>``@krIY&hrg&(2e|cqw|Jj$Uc)LA{IeI>?V56-E z>HM~bYSqQ)QHyw!;^HyT7dQ7xZB%MX1JsS!O)g)D=*}0S;%cgz(#pO28!Q)fg%tY}vkGvhD1$zH(G=qKaX+7( zb@DnfjCd^TqH3vkS9lZ#=LbIhENVKTN~37(lG>3ykA-S~?UGHUfn-m_xZjx@&M_O) z@mXF4Ya7euB%Qs5=D;&HSDY*t`1WF)cKwt6LU~K^Z@xw@oG7SZfVo0zM67AOH z61<57hn+^o)c|By8Srk6U%E^(>1~ZGWyyBPc%HQ~{NAyGZBgNjyr^pE!b+BQ>6C-m zN68&VJH!G*Gf#*T*H{f{NHYfH zNobr~m+?c|N^EXW2ZLaQrX$9^GcQ%1Io3yf9j}A4Lia+bD zrkEuj#AdBmS31R4eFBk&8>XhRi`@@rS{9+w#&YEnxY%tk*laB4Q6<5CaRoARmx#6sHSzP%ZPG>l& z{)gf^C$3{-!$oX!F~S<&Z8gU)=16Rt-)&aGHnx!}gE;HYd6#1Ny6t?Um2UH)Ui0N{ zqeH!6b6~A_5UeAda!d#5`Dr?cW0+NZ-D&pL zbJ%d>WHMaYi>$JWAycGumpF|KNSY~7~<^i@Fo77EqzLU^z zDOPb?^X#!8%bpra=m^Bk%{1E0py}0>RcHJ{w%iwBJgv$HkTsQnM!W|kdtM`pDHiTN ztCv?0wV&m^{XThYdA4JV-4OOULiIG)t+RL6yMC(iP?s)guRbc>T%D#rt)s2azim_f zbbj1|8_mkgwi@B<#yd5y^GQR%j9+Z~1`5dVy1G??qrg`ozDupb)0~7b3SvTd1LXfK zT&8SLCZ@ryKn`-^4APz_OIZcTt~;O1p)Eow-ls0LIRGEH)_&SP>*yk4+q}UNhxHg- z*uG6?pY&KtI9r_9(QO5PbwO+!aW)-!={V92Sp00>$+x9`bmV}QBf(*{2uJ0ZkPWs8 zugfU>Kiipbh@Uno-o2+^$#%Ey1TMbjAv?(^zt@gu*+XA|N^=0OY^WHabqp1!4EgfB z0b;_-y>zwPSU6&kT)D=0k4Tp)GJJnUZ_lmI#&`9QG7#VH3X7&)4%KHJ=CU64UP{P= zR{VB0OYb&VaBlREEa?PmB&D zNn_yF|1ey`Z9;JHwoHdXaE_&aWKp&ikG+k$D}3-kNqn8(c4w(hS;AZw$bxLhWg^@P z|Ma2R7LRb87ET)E8H6rQ1#(*BD+twCPY0PCjG388t$lkb?&kWio(9et%;}2t3`|^NZuqO-FS;A~jbo9w^H>awXz>k66TI)RS9( z{MDQtD?fZQGpy%cBbj%-_kfRC>ZdlM+~RB_x_W~GiQ@e{D0JKmox-uPtSCGPi`0~Gth4&3#q(KKJxu-sRig$C-*ep|Q4P-$7uNA(XQpdoTOU*v{WjE56*t1=bk z_b;Fy9_(j0VeudWsW=#wjrZGOKHa7IjiS)mMf5iOPrRiL?w*X7T6dO)G+-Z)rQ)}q z)QpXWO&XKII$AC|ZPyEbRcp(n??& z`!MGMx+DDc%dW^5y!>|Ih!m!t44Ic~;7PTUyMN6^$v{3e*HbKx0rYOX`}O0Qe;qkN z27N{2@ZJIYlLZ#`5k<`%wBz(2N;(~^fSIbRX;K4f zBa~*gvJwWq)CWk^F(j)2Zl8}C`wrSa7DLUvzc6OBB&2x5*|rGmdAl{{>+!<12-6jblw%Kp=sgEkMan%P%~T5{d8VpMbqiAro_6lBq7o5CU5Iwo&?e*Kkqy0 zY&ZK#>;Bl43-|SOuCeiZYClgq8IWMkNAMa|Ex|=cHOqcEXC3tUq?DWe!?EE`;E82N zmlY{*Z{C&$Y3_Ad0*JP|Z2zrgn(RGMtgG=lQ}=Sn&P$el&J|B8SCR)=%9qKKtvtI2 zOXNAxvB<|{V~Kg>7*DbYh-m=Q9LJWQT_$^fvQFwYZXed~`E3hV)hq%UT@HETc`xqg zy(boYEU8N>9s9mZ108xT>f(3HEp3Qf6ftkB8{Vx={9n1!V2-&9?J1%imAn@a3bc=le1^+l}-Y zPLR8cy3#)#`TKxP?oU}0$dmn)H?tSr!(zOCRgI1vy^<%|I(66&1HbjZ3jr8=o=Zpsp*rz`H;uf~g13?-%+0ZFC*Z z`(|5i-La`}X!8E~p9mPC{jZ5S-_(L#d&KVgiH_?BJFM6pR_|u6m)PAXS*yKdR-a~9 z+tzWjZLR)EN5k%D>%or3PaW6Omg;`m-Tu>YThvjj<$U!8h!AAA_iQf#|DeSje&EJe{4z{PpL)Bx3ox;nTmy1?=Dt55$N52f7CwQqG_dvN<7tLZewg7eV? z{^{q#Pk$VQKOK5^pZs8+BGh{HQR&g7$+oFchfh*2lS&8Ig4i~4kgCVO!Baol9vfzea=+P=*V&fw zLPCV7l1MMD-Qf zp0DNae0*SbtBggeuNq9=+F2R)sG)t9SM7fLX`u7484D`c@hGH%cxt>o3Pmip$#r+%NLU;qVB0l9mxuPkn;Ca z+L7BU4~sWqTifpxK3RYB$LWr!N&OfV^(7?j13^v)DybL>0Ko}723VGC69sjOHSI-* z#=nev(7jskYu2U8GI=DW(s8)*afd;3PugnO!AAo18y!vF>uf+YJzWvX%E-C6hoEcgbAV4!92 zyGU!j%4t|ZUEJdR<58}_+A{51-tD;e1Rpp4*BH3F?TO_t%4S@FHbRoHnk9i(mS*+i zo8mJrIDbv9!Fa7L)m7zs2F_Kbc|WCZz3*8isJ4AlMK3-2YkJ`^ucHe7B4=SxrY_?m zPN7MZS0;T;>QCyydh*GyZiR$$tWK_ijZGy?zi>G!J1uo#0^u4^fX^q*=JXVuv6F02 zb0Ggcg3F2RzotUv2Iz-)u~hY%Dl(ZamDEs!?8jU@=95{*@T`23RG^>L#*d+GPOBrk!NP0q1i1{QAcQRvif82e>58#A&( zku+oR`lG$b$yF+TGIm=ewGuepS}hxgn5a;+X%)y4tx~IE)+CIEK?>`fa%=&RC`E@R zzX=FI0I=l95bILGh^7j{bW8bHSfP9nz0y{4bN>WPzj$3DTlXLXC=&swOgDbZ{83k+ z7w7jkLot8|zHW<6zNUhtVkywzi@*q$nqZ79p+ObV-J~J)b;4{VRq8}`6b)DjLIcFf z1Qd(si8N?J@$=;I!tS#{?EqdD4iAW8%VXiwCDPP75=XIRA1ssv1nfCT0f2_=GpcE@ z17cNlFdlUOd%c;IM~2IR1a6ImIKfWsLU@Ze?&F0L#9bepsxN@#xfG4!~m0cI5J2a?%dwd0k0l+}c?m|~pWL?*YPNVR6pq>gam{B2DOz#4fS7fSn z3SkCtm*9X3(5Uh)kOx+z7}$BNi&NT5P@R`K5j}aq;NBoanagwZ9s+4q$RyUMFcIE< zSpn-{nb2gun&FC^!@>`$Niy>;xqzc)gGKG2GcewA=}O)@viNwiKYSV#~`Jb5Ed-~V#Q+6@5^K{OO4nWae{Iu~^aAax*_1!h%b=`pHQG?Kd< z8%9~a^<7%waE5Xuje*B^0qsgN9RqmG1C$D&r5}4&LV*sa6l$c^UG3E#n4`o4K$I&O zaCNei79=XR&e=)Q1;8Y9;$({!pt`hi<6A^L!kWt3dSMxYhIDHchmsA}C%`iCVi&g* z1{aN=U}NbM2Tm=xW3UUdG7yS%0E+K;CMw5m6AZFT1`moSa4ibEq9}Dv+GA80BteMK z_U-}^7czHKc@l1Z0a9V84AMFX0^pL-oM0%jTByax0+k3%H>5>(U{togGa6Tr^E690 zTV>#)X8{PwA%kQ%^>8XzTzXakHCgSFbm1`-i*V>iRH#0=0O>`=Xjc_L-jV@SLMK3K zp6;ge{Gz-5bDYAfQZ|H2q-xQB?+a}TlPK~8X$}JP#DfeWB1)zbLs$`N!_+9`$)LDE zv?d@!MwJYU5X+`qE>C^TR0>JMNm95xSUEN`uC5X!GsIHPxh~3(kMGi|p))kAcudS8 z0Hk|r5Nl|zn4aLQmM-Km^@Tg-f@st$m@fAMm_&$jjN+rFp6va9sDnNGi?@|_!K?s4 zq_|rxcA**q0sxT0CD^92n?w*T9lt&WlTyx+KL=o?L71RuKWBsF#dMWcS|h0r2(R{& zyjNHWJQCWVK^$t95#L_8iC16&3q)`T^P=(`gR5J>F^sQJ@vUQS_hl67k+J9kL6|`m zgK10Xaj^u3y2Rc=!T)4xocBN44(~%94vl^xk@MBjWe6y)goEidF%VUL61$74FtrO% z{YYS-Cpr4U*^g&ced5`Q3jnZOk&~f!L6)0neF~v0;LDl7a%HAhI=0an2Aeo2s+1`( zNoE;PxwdKT*_Rr`jSe|Efaz0c$S-e-wKtGu>vsyMJ*ckI;1z&8M5~TnaL3ybrMEU* z%86C(lN69)h)%NPIeMlh{{DGqXZ$etjk*`WO8W5Nq?|9KtEN&uKpEANz754TY4|SX z(b2NKnV2Iy>Jp5RHaN#YaNjST!W5Il4U5bznL zY;fp23pnOT{4z){64gt+VtJwebDE37m%yV(XbAG=}y-neO@d>R$o6Mdn zGD~K8$mQ49XS-lB=lKb2k!FpsTNcw}Hn+|PR;HH8wulKAZ)f#lhKr`>qLb&k&a?-` zH_GBq?y;TG?|+>Nr4hPbq5BPGvl*_2q5hKQ>eZO#5k4Uqm%VLM8;7yY#4lG!P}P^U z`At2hq%&MHzDi}aL*PgIHf24C+pVb)mj{N7Ifi`~0)? zE;GPeg!Z3g@gP|JEo5dX)B#^4;VRzG*2?N}1VteZ(|dM99&j#AYW|6^9iLwR^xV|= zr}lJ)2;KzH+apqM9A3?L4LW4qHwnzWhFhyNV!`lrw{Z=(x71c*1T@69?+~8~oLxU8 zPAG9!d`B^?A_SE<%l*$yKb zl3>KzDAm^JX;70BHd9F(WsXGY=uf#OxeyJVfD-)S&6%}!5J+whZVOk#a7b6Y%0o{n z!*P;iPLti2S7L#-!xsv;E#uA93}8Y(0c4ba1_W>Y&z>D~B?>^usXaIl1u0-iS<#?a zs`S$g1*{O#4Tlh$^?ykzR`KA;{I4)2{UmaDbKuOSTvbY7yabxbHFQ{)ctAnMZ+1R+@D%YZlu zApdL6D#zj!FgS76UG^hc4&SAuEXH}GP`jCbu}#(s)6y)4L_!5Dk}MI&gQIZ@vq!lV z1_%`PSPua5i!51K0ZjhS(lsdu00(KQBf<+}f%avdRAB`aNtP`3b-xuadY%!pIa6?N z$VTRzl0P1&Jc)eRMCwQfy}gzc6o4;m*4>;6-~vDua*z&LRbOn48~i_qme!?Y1w?l@ z%bYzXA1RO*%AypVHf<({%Il$pJUC|y^zu_As)AZ5l#Xe{NO@T%GbBI^NU-=|;S|=4 zpbR=#odNNil3t(ZHta_wZPy0P3~PShtqD3GM~oCpy|kP#$k=j?dvg;g~`AFF@P8Eli(@qvc`MJaj5W?jsGSnS&bnas7 zgc*iAjE?@Is0}~hDfjvqSTuM8to~n^A9I!`IPmpzDr1mQydE91txHo8V7LoSa zWcNvBE1(P+pz6F2A&wkJ&QirEl@cMs%2-xdAu9r)2wmIuE^J(E(Hfj_-pXR7dLygI zlAE};p2MoKxN{f*GJs(y)i*jO$-0gCgOHYDGPtSBQ_$S51hVX?A! z2KW#Hbjy%fRIO6WR9bbCkjw((D={OC7f+Y;T3K3t6T$uIrfTO+uO?{DGBstER5vLa zn_W>lzg1T!6mBtz*-ih^vN;&CoPQusR{=YLs2GMAV)d*K*7@D|M|awt5r|50-~UKh`e^}!A~@G znu(lD*HciX_#G2K0gV8p429Cl?jUV1ll^>}oFZ|KiT0!HIX@vD%D{woDT%Cp$JvTC zS1~O*p_Lk?IWmEXWNK})w!W!caQdyo+7aqiDP1m82qDJ$V5kr;Z>Xx@{jy%rE+?^@+MBn4X5PC)cO%j^qtn#9@P<&p|eV$ z@GU0@e?Y(DoivK0G%3 zP6YpDMyHJBpDxW8QBwX=Qsv9Ew7*-kGEbX3DT&rx>^E`Q;&$dk#}LGj3=CA#dqCEq z^8AEQ0Z>^(E;dkO85oE!0pAPzCQUTK!9S+AA1JtzfAqM8QweiY0VdBi0PZL<_6fTcqk|pL;;TRY7a-jX2@58-CKZB<0f;jUiI^oV<7KUJ;YN38 zqLRs30~{(fO2a#E^B#)6zhF9UkD}Tn;GH&IR>s)xgtuy-X=RaV*No~K(6d=-kHmRR z$&RBNORiNXX@AgoQV_0%r%K6z*nO8UyBH?sW38faeo9h7hr{-`Gbi%VK5xrrAj)db z%m`nL-@dJyojUh=HSq&Wi$pn^O*9gzUsO7n7<^hGWba+A(gjksKj2H3djHT3jp$oS z?^;+48QEzqpNd!B*!on!%{x4F{ROnXwYWB2E>LN66Btt&=0Z4#G^r<%dYq&D-RDo@ zR^@9qCSan<+g-i4_gMz-OH>cPpfr)J9&SX)1B%yycY93sZs!5%u`Ty`3Qap;?|2e} zD!W8ciywb-6|0VT{xj$;BKiC)e7Sa4X;O9U_z3m;$k00_@2x5U%!jYdA9_WN{5F5I z)zxA9GbK!$`^75l7VLI^M7oVo%R;Qil3TU|pw__Yr(~!qtK;^i#U=$*Ec2ed)3zbL z_Rz(lX&n;p-(8QFcf$upT-G0owlg1YUw=fQI0TX&1(F_`=4oP_9+!0Evv5-0JTO@R zc9DnK0AObTkbnb-F!^dxCDOYhO$~&O{=5i`7S zDKV|2TEeRp0+?6Hka55RB`1TB602R3Xna(q(Pev1L7N6B#fMksS@;8CG1vI^D2Vh*9)L;el4nty` zfoAc5Ei^0twvPR;^hNh)recBK5$HyP1+80M#N06A1~d3?SJam%%{WWqjReirE~HMN zN3)W5Tbsw-54*N%q&$cM?doxi>@k{e|F{FMny&wJG)&8I0{xY#=)}~lzM{2>#eBti-kngR zPNIe9qgE+9 zUN0VRYb_s5{MOez^=GBf{`&fw9H!m;*83~-Ut4zBEPQG|x;eJ;{@+h5zx)*@>5^6B zyANsGlm;@O2XDn>+$hK1Zn4R{Bq5|W*qw15#H@gDLEixtL^q9=V!!q>U5>%NM@o^l9V@hqU&EK?pIDHD(0JOk)L&~GRR$lRLuaw6ggxO z6N>R;q^rbq7Q3LEH~2tF4`pDleCtCX)u1+<|J)yb|8ucpoMl1~WwUOn-+UUfN9O1^ zWWrOumG_1)SoY@#^f<2 z3}dFj=z#cPn95-;6`|h{zK5G*+%e|s#Jsy&b!J1rku`X+zT_?b1z!0cT^i)SAaxB* z;2lQ?**+#$!_6^`bKz#5jggD;gSwCCd)|-|#I&wo=}_VIx-)A#W6M$#%|$*}Hxuqu zIo+WZ;Pgd2bh@0!;G(aNbt|^lWHfK*ZpysHt3i{7>VO=KHX_P=+!f2`yZoDv?~kn;WYi>Rq~s4`7qs>I5<xI;gC*IgOnLDHTG;&{6A6NB*~^Mj_9BgaI~{OPxE4MpsL zL}e=DNnOt9FCQ{`anNX_0^Y>23N<9Bkh+icOwkCg?mQUs=cFgN#m=(Buw2kEM@g>tFP2d zS3W~hIO&ewI3St|k_vzaVo5?Uy2%TPO?E=lx};E@6UzP^r#kI!C~z`^yjQg{C3vI+ zJ>DC3{zkb|bcW)Yk?U$P_hAmVn3qCdqqe&5l=vUI-uo}92aNlM!(MW5uM+oG)XbUU z-iD^-%5Y?+4a||Y#Jv+ouFP7Ytn_G?pSI#0wcTs;zlE05YKMZ=;bJ(m9#C=T$d0}Lgef)4IJ`Xd& z7IALU5qGx=d(jj4ve62j^TzEH#;3MvtiDe48O5PWH^Duu!29dv6~36S;SD|guPsxq zwOO{tm6R*N=bXP}V(x~V!CVvA7y9lyQPZ^;uO9JPJ4iRv_TxFm^;TH3U1m%9ogN9L z=y25#1-S_>R`NPab%B00qsAm4uU#bO(0*&}%0nq#XJg*$cq@it^b!*~uk2Ts4}A2} zTjM>*xq9{R(N~~uIz{i$z}2J4x80pLFx?MyugTqDW;k;Cxlgl3}XZOCv#u3>llAbZ768xN$9~ocIYJ5fSA6|Ls_o5!>}+#`>l8HV7kqY)?inwN*w*y>*=Nt#mppTqm0CetP&W9Icg}HJJ&Ewy{^W^? z`b^`iM-S5-=1)xB3BDl&N<>@BO^ZKx^MhUfD9UH&$8iw@ikJOF>=#`S`) z4sL3%X1;aZZ21aC|6YGuY7>9i>*~Ir&Vf6!tqd zMqixBSvsa4`*iGVS36?*OS<-{Is6m-myh?pPF5$p+)P;O9Ju?qt1s~NxnGxWj_o~a zvUU1JsHhAV$`>Qe_hX>4Hhy~%CMPp0?H zco!{K8^lg8I2=7OQYbjHTH0@ExDxSOXEFVHMC6*jT+OSkc1t0gw~0$3>dOTKo(W*b z;UrB@gO@{ACgP9&JqX_UcVFme`NPE>t;cShyceg~-*vm%2XfAg)w@|4+{Qhxh%o>`JkF>Wj%&-Al2BS^J~T#2L*;Yrg4~ zcNjLvza!=+uk5iJkpJcT!#`84o4;L8tEU~*w@r43@k<3mI$UF!`-c)QE(B?Yebd|1 zbGzlDSEF|5sBQ3jvEPBK7xMJhlx3_3qmmV>qq@Dnd&fEM-1vCoQjo|fZq?OM?j0pV z-)|1r!4}Ed9^VAP4nzpBYPSDB8!ITpqjH%k6m$+dr2v8{V5f+pF+w5hb%*4E4^kg) zilLfte=eO6a4|wB>wXS0j)OGlM*1_;y#Ld(!glh~T)_Xdtcxq~T`CA~I^5F;rZ4oI z&Ze7lVOHb}?+OhWFGN2`RgFybF_O`kP8IO*$qaZjB#p9$$OB<&90-yQLCHie6N{mCdaG}X)K$8P_P6I;EpHRq3U_!_=tkCw$&Dgovo2n1j?p#%x zpy4kF^{EiTMGe9@gkVhuaI=s+G*pb8iv|G-JKVZ*4Ll9V&}l$`Qxgd-vetCtZgbG(e8m3$*UZZP zA7)k%{^o;+FB|M@29vw9eQK)6bX#OuP z>o%d5m3CGD0diM}J6T!(Q_Grz7M>v>pDJ8^19bVs-@{OBTOsm&(8I{!*dNY9z3bF; z4l0KwV6lX1Q~?$Czs#)EJad+X(h5;1h0`MEZ(-!!nl6>53N^NX;yO`;o?pxlocmP# z0U;>yXz(RK3HV+lwiiO;LO!fPh3-20{~>4f<`aF%$OEy3WF}M;0!{LV3V38WO16Uk zIVhj#_c`!ExlgAQ>sV1mzOOX01q{(7;ChiBG(Z4C71%<}T#-E!YDGse{1HK9gcpY_ z&B-QkAVLD(`f&Lf7eJ0eZd3Qo)I3G#sxWZK5pd8S_!XF21p*#ikzQHR0>N`3ie$JL z8}^@>6|C~*!v*YY0`lr|CmHY!vAbTi#-o8C z;9&&Z^SE*NJ~G@EyolwN;Q2&*DqKK=YO~-}KGB;?wPIBL6`~;5iO+K`5Nz{tJ0Usef0ugb6MY+IbUjC1xTRMia>Y^D_~bT zVpSC*Q32QGBhx^1kqt6}0^;Fn4u9Y&JhYQE!U2t)AS0GSF*cywQMS}khH-vvR=_7> z%76AvWDpq{&P6;6$NG^m5qtsMi>~1!?CXZ29QjBWy58e~QzfL@7tLT1hTy@f6|i6j z%$mZ?%WT~093RkP0MZ-?dzNTC3k&66&(3z_uu6z|z<65N($hx2%YT9#(*gT-1iR+*w~ z-QXYMRz5UaDZ^$KCi|sMSF01psv`3N;pU|8t*r$tI7mati^ExTD4Xi($A)=>Xe;6Q z8`Dt&3O<5`(xqO|EG#!~6f?PU=ci{v5ari7c zDvAo+K8|NI@~;S&L*I4SumNcZHirsK`$OeG$Z8avzkiR#awC2jVK7@uT!*fFuHDB5 z#})y7I!vDfXmOy;>vej$kXS9~y>6ht8*7~ui}nTPhHz)bjgTHLl22D*$TK!;PINo-9$AOGKqF{JUmcv%wZRZd6? z*brTPK&FSpCt9r63OG;=R?l`0u;oRMND3tJB}9%5m@~8SDYuV}6GHjIZ!#>2ciV-G z?3pDNbD%<&xiL+6A)nDfQ0or5wP>}IuWE67G43HH7m;46-W8-d!{H6ww^R6 zNLol|2U~ZAV_yr;Uxbc{;6ct|0dES9%!F7mfS~ijPNK)=?Cl}Gdn^Oiv_x!#KnvKX z9BHucHb^!Z(-ed-0UH}>2vHWistPU&BF5OLua}W0z~ZlPfB)%7(s;W_kxGb5Z~9WL zu%4?2UX;569{h7Q&=O|Od(`w9@=vETaST}bBQbdhOCIDX3v0uK#&Qu_WJI4dym*%AOM@mb&_X+~3Ki)v!fBf) zdZdAkG-w(fCC~JS(enai9v;9Z1q*^q9Fp6JLNhi0~(OK$8kIxzJod2$YI!WW$ch!~6Lz zw3(@7_JvyYr zxzHvKd6N$}2jzr1)e#+J3;{UU;GqwJ=u@iX=}4b-|Ck0hDp|MGK%OD8W}f$J`8Ei)Mv)>9F7sdpuCl&*d|?UFAO;m5@_ zQY>=2UrPtV4#I&buJHB*h`Ru9?2%*;e#ReRL>555XSOdHj2uHf3xz*)S z|I?^S&bMTB#zL+NJg7D)X4NWi8;tyWn2>mGz3Z@e8o+LTn|U zIGr;6wFES0xH<+ZBuMKD_y?6WH%%L2v^!!&21$7R^kobq+kTXH-hbs^iXaeG!< zy~9h|ZIfN)2SCdz+n1sO>76}`%~C=^;N*8NX}|qnDxFe?Z%RL3tLXV$i|wt&7d7Q= z)_m7|egh3`4?dUl0s=Xa$H74D-Do}Z#X1LYjJ<0;<-`F1cL>mHs99950Oy$}&ZOA# zj(}!FLSPM8(ohW@t;vlRsx(fXy^GHRN>9;3s zty>dV)CigYYEFmiQ=x^XC>$Lr#KgDDBkt3r`4;F<4kVO?68e^d_<#f(Im8A)3T%ik zY3QI9{^6vr@A)JmEwWuL7D2jHtaLnVEq0gW{vwm-Kf%6jZun((Sn7|X<6?KsW`1r3 z?2Zl(T!7hApoQO{<`yt)(UL&eQDIFTuBbB6gX)-*11K;YcQAt4Do4jA(5vpCi)*e~ zEQ}0-AcVk#_JnEZauGsv-~tg9XWqri zcs zY7DlN>mQD551YFB;=booj*Av6UID5rzPcG*-VF=`}-IrrecM3(9{Fp}E_O#xM? z^!(Yk08DODG(0{uO%@C{Um#77=BJ5hJ9jd`{Z%yxxy-xkQ;_~g1!S_1qL^y7v}Re; zfDlNt=2tn4N^l$4_Sx&|VrF~pA6Ko(FFqc==djr5sn*A*4=NuK1kL()zCQc*)TB3=jqcHd=ISt5=PDy?{0=>w+BLxUcN|**NbNj9h3>=_!t__v) zHrn1_6qAM8^l5EPbfke3QYks_5dy1M*s97GJJ(Mx1g}TiYbjtq>m{g^)MY*3`Ke&owGSREJIH z4(h~0QeTS7N7~GHbJ@Ax-KL5VqhYQ~A%XgWo#qqF>Qmc6B}3CqxuJ04+VUlZJ^LDm%9UD6 zNjtnSFEa{~L+Qd-+kB{*)GfK0WUC|!aaSr5 zXz+%AK$sLm8c7NdAOi}<#feI$3Dn-Y%9xF!RF(6Yr2c&SO~rb;k*iGRg_!9-8?kpj znSD@D739Q+7p}{w&L`)t!zBuzeGab)%_W_#36E2fYKHjhbuJe^#ypUE^f~j*<8qT9 z|Lo#`oPND~T;_h^uQXO#jFkF|Xyif%@)c8%R64XW5od@A-~u{fGA$1^)XhS&JerpC zWcnV2m{kr^jy>hdKcpxi^bDhC1{(^#8$)MglFzcyq9#XFQi8Wi5J!MRXm99V#@{oRE8z@j` zW{XXzvt$=XH9M#Cp=nj^*7K9JEQ6@-jtCzx<^I5|)Q}vz!&0_$*xDV_+9$R-Y(X5^N^?hA&S`>> zsyc98fi`L*7G7@B z`ek5N=~-%!M5`(}^%R`bdxw`}cr{iG(e3MT)PFETHUkd<>`UNHk|`IyprXq=z03M` zAHCu*8)W8ECU9(@m#taw@^nY|sa9fBETXO!Gap#J>q>CB{U^(m>eZU67E^L4$yclK zWzJq_<=W!?3#VvKPH1>!)$`zK zQ&%bGq)Bq5vSt%gm{1zzMXUJrVxA8e%bp?x^X8?dD)?z~r)HBzZRILNHUg)(k-pXMSJeRfwARdN+vuDjZEj(y*4RSjOc z=eGOlX=A6yEUm8l6&vD#n}6y#Yv_DSt!qVwzw3{j3V3F3c!R@hk?h!jxkaVKevDkd zdEql&c3L7kLG=|JnNFTYfhh=CiU&IJIq%cJ@(C}wx6UOK&Mxu>=k?2i-j#XjI2`l# zV|{tJ_m);pNM(Z3;gjC1!Su4TZ+ulkZ1=86_}@CDCwji6(>Zph-19wuoXSSUo~0?l z^iUVrLEUm*InM_TkBWkm-fLHfm~K4kw;7M&Ebe)H+Ub@?Z^9*#ifYDw*_RcL)~72qB?UF+0A>w$TdCra0RD+bzZ!BP1^e29Cq)|dO7#YPCGt&@uGS2 zTl$)Zq*_lE9`6p5sb@PCPA-cao$Pn|v6gAnJibe{vGcz6>Da6Fub&18fkQIZpY+>-qSeR3i4R`uZf^}%Dy7pdS% z__!cwT`oE4(Sdv9Cdxq4W)XJpFkb<6=+DzHI)8$l{^4vH5F6(4U^)j>BpLLeGX>1t)Y&0 zr_&(p1BuiF-SAkBbZp?Ai+(!X;%g>CX3{$wg;kr7TFkFl>$USmdki$f!S2Sup0w1= z)ad%wKe$XgwTv(32VR*MEDA?k)khMI&rq`5(3x&DB&QxLxRGZjcgiSrxR(^I`z_kuDPLt}>0n2t zbl)$W#9?RErr4h3=DZ6p5bE0`O#;%x&uf@hs%fj}`UL6A)n9!Uh5Lzq5W0{N+?}4l zI=8h?`b;+Bt(~5K(cNS+`#8OqP8Z5qD`^^8KI`z)mr(@wb5h$bm0LWJYrtqJUURzR z=oywrR>8S8V15)mz;2-S&&YVp7^{yOr?N6l*8m}~)FcEyMFL}DWUnig$E>4{#X#WU z1DY~DMaV-k-b0txG6Cjhwi=_fgmX6rf&kyLs*P?Zh98LILXaxA&Pa+*bE) z&Rl=Cn0D}Jcia3BOZh(mYWs&r6-Lo-MsIa|dcwBL+v?HN`FWywS8MQC&y6oroUlhV z9=E%M`j6NzZ^mxl{Qj1khEwpo)4e=DT%x`2@ts>gKJn_^E_&YW`T1qKBl_**ySIOT zpY6{RDD1TQqMtHx)>uwzx%~c-u`0z+b?*wW3gjcB%!-AJHR`^c*nG`FGiD0a%7+J_ z^*6+F?BpgHFe$;PVoD4Y-N__@=!SkfWCOpDIN}h~XDzbPAymm(t^#mNOVWUK$J&7) zvWnlzPMkzD^r7{VX*vY8Wn-eQKmd|sYYV%m|K8HHW z{6VywoB6ZT{DFo!sE}Z;#X}o{e+%)t9Fo-xlO|oV~L=Xz~5-%E!F#chw#iw^A1)^A7I-E==T7 zv!ZN2Z9ywWgFTvKv!8aijl3E&f4#bT)Mh|PezI=k)#cV^7Prz!;PnSENx25<-0tPl zcX`z7-G&`w*TB_Ws`*O|vWOqL4%(5^ik?f+^CJDtz4*SIcR z<;Tgp^icx7!tzXecs~kXMBr4;n(o9t7_r`YPnR|W8#_jL28`96RXuDcc>mqnd)L@i zYNvGP6Dxd6Gz)pgbW1VT1;}}({hG7uD)kG#bomZy*^Xun9Q;xE2{~p-vt}EGx7sA) z9yr@%=rx$Shlj?G+1BKFKGE?Z#uh9HX7mcpJHpSs*QcfxwCaM^wpQ@i2G^du|lJ$Ck zi#ukgXqbZZ2!Dr7lh1ybZpyMCsGa%NKVzqsXzqMC9gBdbNudoNo$d6}ZwU-u5pNec zBdwqG1^w|eCaU2!OhZ8m6WLsH0Zrus(xJ@c$seSf58MoX9~5BsG5e&VCJTBtzgo@I^cs=!GjL+auC--F!wlnn-S%*>l>_gvs>!YiUO@##Z}9VU+^||*K>WWAQ3LHh;R2P>k?NAbWWwR`02Wq za|(gNRh6zPR;!XC#*tzRR{SI?tJGqn(2KWsf0#Vwt&(&-*Lmm3C?J(VSC%scJ)SS? z2GCWczuwL^>{7%IRkJTS{6Qg4T%Jm%aREuc;S6W6#BDTRT!41aw_PUgSyh(FCTDAt z>i3AuoFl84dV8Ij>Ur*85as;SbuGx-B11rfXzUit)<0P(^K5IwrRFW!NB4UdCM^6? z7`**pL00-@6X<)2;Q!3@z0d-yX^%Ck^6~^p*bgtmioeiMTUa4rEc(4{z3#{%)s>mD zhM(jRGFoPojx>8m*_WQGkvW{(My$Z^>0(7QwPJ2T^16_8{VYkiA+C1LXQgX2+ zU!8Scy!{9qC-7ruhI(y2oeNz&}qb97CvPiC)*j!y_j~O7nZJMELWrgT!zSa)SJHeV8qyQqr{u=p>5F|<tm;BUS#{lz*0rK+)y! znq`;gRnJ9ko_CUj{3qL;bFT9@k1bM*s+~VQUh%$rVbbfg`L(!!q3b_BHl;P*e;A8W z`qO%W&eS>looz=!9>4HSBwX{Bap=b`uM1|sY{~H3f2|>-g*)ujV>g-yySgo-zieX+ z7hm}z*u?nr@h5-Z{N4P`CEnv_?c8`LCs-Tad2gls$;L+u!8)(- z-s+{D{}uxUf2QxR;)Fwn*w{~(qngzPiPTx92F=2<*wi|q@6+)%zq89GZ}K{xu59`x zS?SG_d6lO+6iP>JrS>!;Qi`zlcF^O#dqSW%n>5Lq2_Ml~LKz(`AOq4|p))Kc#0I&g zPV#1KGPVul2tY+z{(lt# zYhJPy1fkrHC}Jxovvwa?!4`p-(pgLvOPrYsm4iUS+O*g|u!=)5;!v|97-A@stWSeo zXQVOs#AH5^#b%W9l}jP$c%-N$pV-7ZLM9=?L;oA@T$7Rz-){cw7g5HDSVjxonh1)n z5h?T(bT+6Ypn=J3)f!HwfQm_hptpR)oHro>Xl(cjTxEr*-A(dkLQg<2gy-UtzlfJ8 zp4S-`Oy1$^yFqcOWYJ|bVIp1Jhd+ zLfx*UbhNct4Djz#h=7`ouu-t4V@hc#1}hV8aG+v3ge66qCr3+PBAGu$xBoVZh2Vx* z*aV&lEky*|OU%f!%Zdc8OtVl1+Shp@wrQDv_t<_wqdP)nrs&3@KH#lcx8+^gH#A7% z(||R*2tAi6pzm!V6~PQ*mgkK=H-nbUJZnf00*WE58zq5xI^%@Ht6LEt><8S zgS?b~#CoKz5vSlWK<`#OB2H`>rew$}olOU78E_j+EFm$L#{^Os0EGik*nR>gTwN3sy@0{CfJ}N0n-;1+7k?!Foc*}Z&mmXK2yaDocXY~r zvGMHE4Di})9(FmC=3gpUAh8aVylyJDtBw0UPRRIerhX&h+b`i&TmeskDsiC^7$C1Z z1@3h~KM9PMMwdnA(QJA?=3HBky?qldxY6JyYo&qR^98w6&4Ym5|h4u9-}DI&pwBR0t12;cUQBTsAfk0vns)CRqkw6 z+d8Y+XsEmqEN|iIch+`1BU2&OAZ+Nz~-Q(Bsu@&N;wb9uqkCSCiys?8Qng zy);kkojl_a5?|k*v3(hEW@lgW1>-r0+J!JCU-=ORokR`SH6X5X3o(l3D^y3{qO6K4E#$zA(`nPr~;lNgQ+G- z{~n4F7Dac&mqi?eDlt!NiNe&7G5aHh%k!c)?T=$^u-7N36?7SE&IwoyAXq0Ba%unO zF!tu)0Sz!&Ynz8N=~j6RV*D631_KB(n}3Dbr?s6pXa<&;A0TUhNt71#T4y;EkZTkW z+Ys0)js55l+}bVe>JLV0VPX?1Y_OuMhTwau$X!l?<4CYCbZ}$ zvELjF7|?Noz~uNq=zxwtq;lC#beKahQ?|Om)~#jw*Oyp*hzCEhrJZ@n0$#S84E%{~ zGt3K{^wG5XVa5%Oi&q>$3r7)zLA2Z@-P#+W6UtyU4IDI%P3u+9@dKq%+bhD#71}J< z_{1lS;~Bd^NJQfgK0yFp{@3IGlaYv26nP1XoOvNNs~K=UQgnlF@QFgSassm{h5{-9 zIgYE94LENM#(~%;0tSXuCNBiyBr~a3O7XXT5u3^QgONl;OyhmU3e0%R?QLnwkBGTb zaWh* zn{k0R<6FBD&)+-|c=|r?=9#}YnXPA@+C(*U-ON1MoqfJL_pe;Y^cIw@(oQa-rF+X( zR^H2xTO{eQIW^zt#cnG;-FpBr_luZSxuxjFKJWNjGa*nt3MlO5T>r8qK?^~?wMCi_ z-LDD)8e3iH5f(-09|vUZ$e;_uH|Ly~{w(D7d087US3X0GPzU?_K^Dh@{MaUjqoX)X zggy&cb0#GT8$AS~}|%U`fCK z=J%Zz_4`g!v@4d^pNfIUd0*R_NEC5~y3%(;HsiQ71Ks>uohSO)y_l7S6!ZEM0ME^UK*!4UF zb-S|4JDPAQ9X3uDP_ml+&!c}@!a~g9Mdu$6>-ODga}y)Imq4Lw`+y>tutp@y+ag^@bJHe9X_ zNTPv4pgdp$2iZ_L3iQMc;L6M+wG?4f3JUi|uzAqvp3|>)1@1J!2mNw$|InuFFpSUz=1>@3WDYCGY;SFz^V z*!(QJddB6~#rWDFeDGuooOI)N5cpRIlo3$DW(>4Ql_!8eaZJx_8zS+5k6bx!fNItG z8hm+-Ff($o%k+jw@927v@Qr->;WQ`>QG0(%`uKxbn-{v>9^mRfN8ebBnB#=N0FXxp zZ&T+EvB0XOn0z{K?w5;jY27|j&_Ft!O zqlRs>ocMJ53~TU~(V52=u!3<64;2jKRW%3#3bB+utX|c=ncb2ii^k3Jc4Ojd}h1uDaDUt z9Q43E+9Et=PH;yoydcP?_zRHItDoB}obKnH{eYTV5HJ^uZg?3e+S$DUztf1z{}LP@ zwH|K^ZLE2ZZ0o~Qpq`IKHy|$4J3yI}#c@pOJZdl_|LcoQBDE~_d-!L~BK%hd<`-lh zQf3x6D>74z8?*~X#2g>sx1NR)c#t8P`^$!&pvyPNWzW7h!J=_P{;$~0pKH-S+4#$) z?=T?=KZJ(RgDm_{ND~paLg7)OMXBRbwtPh|JjGt5+Ss%*2mOsgSeY}Ex)%luNf5BF3TPrg z(QJ&+#q@vDM@a}-c+}1R_w>=3BS}fQq4B@dN4wn*(4(P_MgJpxG<-jhth%qO+NGn( zJ=t}b9fG=iZ|r1~Nyg+G#J=aZ zP5Y)XcW=DD%c@d$Wy7x-y*c^nS>~wVf}F;kzYOP^%{IZ)?FE0njy*4wYe?{n|9c$h z*j4AV__poy$HRe6XE}Fo#(sx%zqWqEJwQ9%KU;qB&{-i9KLILh3dTIiae9;5-gta( z?5B<0Jf>jjmq_BfExWd6YGB`cq`&}Y+75w_GB37q^w_>!Q^Qq}eC5pFh1<=Vr0KRl zmo$`Bfi}_i#ezG^wdo$VsVXHt_cVAWl+9i9))Q;H_MdeSUG=cpduIJZDRAy!Qxbo_ z8Ewa}Q_79hp}3BSGltmrAE|TafJfHYH!oh*gsDxsvs1l)7wqtVX#{G_|Lgaxb339$ zGZG}aXy&fX+T|3!%gG7OWcwtCUq+v<`l`b|*99 z;Pv%J?3Kd|S^J#EWRcsl^&MK#Gc^MHcl903y~7LChdvcLH<~2=K4~$^9r}83N;Lgr z_v`K2yz2{PA2m9^)^sh{6qnXT->HAG>x=by=ana2YYDq|8oqs}ywhr9Q;rdt@$_;b zb+bM7b6;(X5$(Qs*6y7xH%5wMB5zGkT+wf*7QeTyJF_93|5x@$;r*X2@|8PoNr$(O zvI;PIkDG6e#zsiu#LwzmYnNT3{>8qJ8Ba4F-F6`F@rb)kn&kz*OUvl@9naEUl(?G; z-2Xj!8iZ17=k3@2s4)${C3@s#)a$garyE**dNaq*t$a}g90Xav-!f4mlVhpGGS|7Z z<>J|#?CZvax&o(bi`z8ajwD^F3cj}fvHJM8^-t_9y*~>LYUQ6xL`yu0-Gx3wrScd<@e+Gl}&s5t!=JQN+boNMYbUDnn}YtPCL<_AstrS zOzsNY0ZDM?J=a=PqmZ}e*nt0MEiGM|YMo}kTqy2vla;C|03Um!0EEFkTTNCCwLz$Q zB3~zqawY&zR%-GzG=Y%l+|7Fk42{>rN_~Lq<+RP-{-0 z(MCO@?Ia8X52a?{zbk|fr`gCZ11Y0(3Ua1%Uj$pF;g~hLVidDR6@3hl+_WRiJHyd$ z_(Zs$F4zIdc>6RoM`5#`1T!17PBcIpO{PSv|Jh3)OtE-%xBD7leo8loCNh9R8MdH9j0!c6gD(~*h7Gx!JP%y%g3&ECRz z_X8DcDKj2h)wZWb_K}Y}W03S|E88Wn?V0a~8afR|X-{FLbvnbAgP7)|ibYvZ49cjz zt?&?9MeZhTSlg~0g6U-9zl05FoD>s0OrAVMZl?I!4uH`kU6+h6;HpQeo zFY&Mnr@Lc45t?Swi4xmK*=-S9{A zYrVN4!D$MS1dM`;?enzJpXY3TW?Qdlfg^9!V(V5um}fo|p?{0p!d?34t^~=Q%$xK7ztZU6jv zCKo2)Q*#hcp(0mk0`k$VXiS8uT^f^F1oT2s+rg`)rCK{TI9X2VJ4km_A6SL zy4kS|I9Ylasl`2z;zK8QO)}gz!RBZmTXVs*m=ZQMC)jyK;TOB#+O{_8ar5|iP)pq3 z>giJ2gHAGPOJ{mOj8c5F+fLK3OG)2LKPTH)k-wHuowe?g;?|aB;0IC72+^q&a{oy( zbCpWv9&T?yxu)SKRR;$w(;2VmpG+MII zc$%3V4>Ud#i!VJ80t)kA4#O~;MGj|&df3`<&dgMi?>1{)ng1}5;%rH|H0yLPSp{sx ztBBtfm_eH+X;Njc!sRYg*Zb4e!MH&$@^^ZWCZc$u=z0_O_;?z1g}mCNvRl5^werII z5QB@?n}$tAeMhQ2S=xEITk_o+sA|4W?~EJd=B3S^dB7a;G5^X>Y-y;F5`O+3yM2uw zkH5+qYdFa8|C0FR_M6|2f8YE2?>m!tXBM?{txs-~U-~EGoz#=WLE^n-)=|rM>O0p* zu0Kd)Dr9~%d9psHF#jW+*s$PqKjzW-%~e>hVcEZX6IMMn1FaV=r>4%H=uuy(lN=~@ z5ET8LDZjLuJ|l#jgW1$2MKGOwZ@K6`%67?S;RxDp^)&-w>~kL%(rx>zpYty{$QmDo zwi8ILxS1Pq?z}~N0H7( zL9$be<6CVY<&`pvawS-(2^yPK93<wef@ z+XDKmRt3sH6*&k2BVZ2$xtCFeFsMvhCmvuRYJvedRkJcR zzL6QbE0C??q6yo=JaS}9>7J$holj+41q|#WAKMRCsd`HM!9Aj-h=kR`-I}5rW-H*( z$`l#4k{7#`v}@@nkv&^^zd@v^L8R6e?4TJfU`Wzh$dk9w(4W}T9L&jCR3xN&*i3vx zQ&z2xesqes!8JV-?jDvY8p>~gg`oCRQTZG@dYq60(tua28+jMDNfDuBHelv(Yza|m zSMWnqR4oTRP62OGF~wxesgg!STb1~Dx)myD(ttR{z2pgvgT({@2G}?b`e%YqGat)v z1p@>JFTqF+A~sHTReQp+WF@u0oR<<_G{gl8$m8JT;(Y}yGk)+)ff3Q|hOQ?y+CM^&Wg&m``9F>Y#Vq9r4X}D{kdCoO& z>rWz&0zRdI%`Ds=i7TfeEkD(_j``ba%&Y2sbkkIh*#DBA0lS=e89dKanf^iS4*-Mw zz-wCII=F{u#7vxYJD)+k#iTI%wk!OA({8q+z3>aOP4IEVX?jLuchwaZlEcF%w9~tW zGJjBU6?{TMsAoA7eU~M^LBYVraT;0r+ZY@K32`Uts&j@2+!ucf;&@uXL5X~6cC~F| z)0I-w!M5MT=S3ngFS7UjlnBgb`EIR;PAQSwf^#nXr8YG=` z(ond&G{NscjqiXSC$yQ1yyS>LZ;H5B5D)(*rXe*F&KuZKVLpL35HVK|{~_XDsRTIK zp5#=WW+AgI+Bg)vq#Ox~YFbqVe^IcjT#+H4_BEWopdTMBpGTo}-OrwvxWx^?2V7e1wD)S^oONr3zL);b;y z3nh2bJ@Y9?wuZJYh}r@%_V2#jLbrkea(()(b?~_kK`Z!+i8h{(MYfCFN&&?NwH3o* zmK5$kBak|K>lVZ3Q8akC=LR99Z;N8!LyB7P52D4MSX>xPFbgQA!+G<)fWy_N5WWd?%2`7_bh>}e?_)M?+X;7)D#D8 zoa+pg@99CpFXs7(k%sQYUiY|s)U>UdGS=!T&-0bYWK28<9C z!*(t+(2jZX7j6TAP+Kk`|A6ft?;REd|Uh$zywR!blpks-I&KJR5HXjjt1bFoq z=7Yj5*{K9DMXsYU7J&EKpxS^P;a2eFBb^qYQw9q+W46S$7I1q#@-35f2H-`AI|nbK z+R&>TM4`|$pWb|!it?Yu?C&<)-;8>!4ra%JxpYt=1AB;uuV-R|Gq3|}-+I1RJp>Ib zm-a9fI;2fCGy=O!j!g*K{9&a2d+&+*SIzIi2VeIOhe(ZzT@JgeqLpA+e`VrC$uqag zuxoMYlN}xV6FV<=nk4#qJiC{FBH-?`px4iW|2?B`c^DRYBlm>-ZB|sh{v*RH;ME%BKn1d;JILuuzdsXnt5@;P7z ze-;F88ya(EPv6;WZl_*!;G}*1Mc802v{b7?Z!d;QB zh~8I@Y8N73lkv#kj?uRw4y&bAd81i+(&`_DFyT$kID(ND%Dqqp`S7x8*Q3DfS5P`U z#}o5I5H6Aa{?4l7fn6brDdC9)WMoQha>dx#<@34hF9HPXgI%ia!ScDEKf7dpai2W0 z+sNNSvpN4$=x|K$BkzG#=IQRRdEJ>h&-A$mjs-Ul17W8`TeuqpD(+Q95B_Vynb5A8 zv-9(*O_Mp9^CukLu8v6fc1aYRT0nRyf2Yn?%-$?kZH#a{i|tv+^3vA$PN*Z}>tw_Z zSbcvmKL5Fc(4r~Ew*7{EuxJ<8bL|iw@M`|!xp<-CaOfKTPGdxj0>AN@qnqHpDeJ~_ zw9l-2q-0T>t>aI$Zt+!BMSP{%JXzyCrI$L>_8=>N{0VvzrH>yXBO&T1lvnWU$AKP} zQCz+MB4EOcemw4W*y1yG+vOK&`3C86fMhqvA6imWZhxz#TFu5>RlW=h`Sn!cuqjeO z|K4ThyE{h54O8?k8`d64KrY2rTjje)c75b%a#yuv*L1jMYr3)ut}Hl{c8B4DaXxz^ ze{juN>tTMif-A6IRjuv{yi3-%cIB)k5Ar>WgCB{F-n2Nl;T_q+#3Vn(_??Oz{;kZ) z!?j3i8eoW)_JIB`t5n?gd1a!4&q}s}K3Km+_m{FwO2wtS6wtf&AQwxcMaZ#_4T_ zC`7jV`t8^(?lM>(G#2Og9GMNtdlJFJE!SW0s#e>$zZ;h9FEOuSce!8;`}(#DOwH;` zv|r8b7k}X-m?3S4z5$12)8T}Fv9<3Y?>8d357{*r|3P~Y)7%dVEHJJQdjFTz1oygdUR2` zbF-7kqT1CjcV9j^{qGOtw|dTiS+_8^XZPvyudh#J6tt)eF;5+9RcVEsNbSyf?eJ*s z@1mh!C1K3bzq>^bGPi$UUaXsaDG|cy`}8Q=R_NZ2oUyU6pxWVkG0KlF{N^^rn|fRc zO4*rS$zqi3>=Fje5~sj{#n5ZRq&P;XwQ5htO3)$+>2=Vt7Kj1vw5kq&PyA~ z#jg&7@=jXO2PI>7CN$;5>LIF`N@vSe;!}x@paj9)rj)*PslSKId=l1cC0QB{)KcLq z=2Vhh+bo}Qua=r!DY{P%{4BjHEVB%NuIMNT3U^q^wOfTOmIw)}A#SHk?LV4)A98Qv1*rp$SHNO-0 zpxi*^&XLlB(C$}L@%yJeA!rHL?xz>=2vui0`NE`P{Ytwk@$*;5E9J+xwa*wYoQ;Ba zn0S16R#94WfFq02bv+mNo@OWHb^XBGwMWxCLGr^FWvCVL1mCQRn<`0H z6&>FYQxGxj-!dQgIF*8<5CC^zI%wcnncLN8g6E3mf~ioRd4UDCRP{8ptA72Fkslj* zv(ijge&UOS$Ab7*iBn5QTYjbr7bfSowRGK6-Y>==$sxI=-R2Kue+`M+DMXyP&p7^X zKHt5n@2Z@Za&%(Oi1DSON6heV3Ud1^+&n(zbQhx_m89wqWtX>8){oxWnvtG2S*-Lo zzWwN@-9ow%Md|lJ#(;mwU_hnq^xJYB)9*X(ix&b@roNrE5*Pig9B8AM8Yb_*+k+`Q z8t&Cq{-)Y{PNN|kOVjTuFX95^x; zFAOerYV_V4@ZOFD_epCUS;_L;DVHwXKBS*i%5+_ilYjwNUO=3oCC3YhTck?agnB<@%*I?UdJyvd ziPuw<%$k1PNqze0?mxMOrivFOsGi6a$T|_PYIRmOulIRoreW3oP|A(DGcpb8xnrkIRSl)9S2Ri}A7nw}qtv=T-V08@ML!4<<-T`d4@0xX zT>l+gd+|jh$$oWN$ES~sJ0NmetPfP{8DL}Yl-O-1jY<%XK*=d2M?efi*ymy6XW>!Y z^=b!rW8H?mQ^dbxsft~~>wM_53q%UY`Apaw${-U=7Z2a`WQKC5vpE^i4^1qJJl1l? zp1350LPIG;Hg-@720^lf=EM*7s`?HB-8dK@TGDmH-rgWQiitfS(gaN)NK7&8rFQov zNAGo$8!*cWQclSTj=srKx(ig4QLlRhuWRWOLs~rmbTwi#vknTPObPJAZ#vCU0J?5EYhe(Mo?~T_b-a zH;$kRGk1ExN7$}wT{f5e#ahBtVD>;igr<=b!=C$@XGonCFjh8TgO96Qy6rW8=9)8N z*50}LLcPlxyFxB--LW4KI~kO+*C3~mz!%>*iEk%nlv@bwfjJar^GVL78P$#Kd!e^~ ze&>bB_mNBDMeu(kfVx10e6Z_^@1(T3d^*#5MBnjqfZ1%@6yBJ->{H+R($Sc0v=e!R zx!*Y=LC5CJQtn>!+HGqp@sPy_QM0Dzr(?RB0lash9e?g6-1Hi%?}f%oL=1C(7kl!Z zjjQO~i#Mb*xw=*wzDgVCG9D@i>kOLS!Ya0-ggPkwVi%|kE)7eVlRa|p0onH0`uZ1C z<|Pd^0i=w<{qNQlo28J;kE2ij)zM9gZ;fz!K#mr4+BSQZ&}FSzE*W-2yBx@S-kR`p zcXPHVlX7y^K<>_C4n%k#Tdz!1*Iwf_zAx*?;Jvj2i}L+r%=q)UpA@H(%HNqaD|fJ) z?1NC^9{O{N^$bqK-t&tk+|EA!PnLYb@F+2gRwQtFE>2dUXzEd9XtvXqnjkDBK}jbY ztsC|{5pN^B3e!naZS)KmOgLh>ZdHG7*@8A$2m?<_!21bv8(=c*(~ z91HV4N>Grh8Vwt~W=C zZXPca4Odb4n&zl`>}Hq2*<9Ev<_yL%|M||Kjte??^qK3SQ^FIfX#43b4>g5b3UM$TjTa`TeJ3AS#tR0spwe1kdh-dUAd>?_ zlIUyK<%bDE0tOW!uLUoydy9vi96W6wf{WOBDq>S6 zse@e2ygdrNDq~oW$PKZ7vmXW#Vb+jE)R`Jb_LBq{b@rQ0$LVeI7pnC>D00*Qhmkee zFTju?|7Uz1xLox66-2Pl;)j%%!=&eO6OlG#=Z{GhA&(c~=7FRcyQ_a>$E-`prcIg6 zm(7D;nkVdFz2C;(h(86_OgV|_Et;27z`WWT?68f)x&+k{$IghEH5OnkiRHw3s@2&o zy3va}@!hJsDH0QgllRZfym#FxZ{coQs(>E5{gIA$5YsIuFaORz zQwKiHB@gKFW@zqf%DwJcfXlbpeanD(D+CYdT7>5)Fx=0VL$?M@(3RNZ8~0?NY{HZe z>+`2L$Dhz>>QAct-H4yiYx~VU(WI}#h?V*bKmsBTE+3PpPm}Ob{?@A4=J5dE3o(D* zJL`3^Y6+eJxEp;qiuY~a;SbL-{)FRS~iaXcdik#PA7Lv9vpUPoIJX8 zcX_cr^(f|-N$i25Esei#FPZ)kzKQs8UUuJs&7SJcL4r$b zccSXKZQR8h@#L4BZ=5tWi+wVvE7S4c3|0P)sfU}!9Tz%A$Ii%_PLFWS)>+Amd=-3} zPmi_ox3>}N&5iVaR7 zqPI4DVFWOu2J}-OK=5#lH2@2yBX1C-a%ceAnI{ATa~y?DgU8A@=zO1h6bvp zgL7Ci8QpRGO?2rtz^+Z26Cbs*p;SBrR^VBsJV78b!DkwfVO)_L7bLqR-F$e_J`ODF z35YuaUnAlnOb|C1grG3c+0bjtCwS4azg#6CVNU#_KakOgM36u{?t}7T@P%L>%?oA& z1S#);JW=75c{{CrN0qGwkhJ)OND%2YF3do{a2&)Bf_eUqQfNyh)8o^oMZe#d3X}sn z$Wed8Qz2dovh1YXq142o6iYpkw#q2iT>B~_;(-D%X-$BEGB6Yd!<9jr7gc2{6^SAo z9FB@+gFY-|AZIc&A_-rutv$h6E3O0_Xdjvo8nT+fz5x;^Gr(>D+B0hdB~Z(=`^5nt zTp5r629gOzZb^I{V$N*hA?Qp2!|YTDlVJFtK%vwd(IOfGI-Y?u1fT(cr6(Y{g&*Yz zv>4_S%n$+S;f_TqsG_jP=?a-O0# z&3G#{N(sngBe=ovmHDfF>tU}ZtW4?gNGcOG4i6>+=TrfgU|JUwQ_JCN0rpcj1SvM4 zB}TTN4WRTUpSDHE%WGFMv58TKry(L|QwkCpz=dG=u`PV;O~ixORt>@85pDt$RUo}K z$8Wh{9$AQL!lw^KdrgMR=sJ3m;?n~dencQv^`;9OelZ2%vRnvRNv^BrpZKj8eF>Mx zRQDu6pv*kP%5@(3;bET))52!VR+1P5^eDB?EW8VM*xhKM^S1MHNe(r+nl$8K{uc@VF_32_s7U01X5 z99sZv%Q_ahjL)J1La8MmqX@Ev78E@^#E8&#EL~g|f9NTmFeBNbWpvw7AhHTZ0^mFg zBhM05M81h86g}U%o$BKFsGuBHYAcr-0oBHnDx4I(&cIjD<-tlh?8Ga<2>)P&*jspT zY9+V(T3B1D&2h&y4qCA1sJ1p1VyS;Rq|kCs@7utL}8r^2eR2HKNixDT8{u@-d9^Gx11?~I36>g$VTt^3E2yy z=*g+)%8YwC$JdHGU?*4yYPzejAx+oTHPpu=UAdR;mi}?r*mrsQPP6ce4>Y6)D7#ts{RiVT)8W zm+Fy|tZpNr?{KA2j)YU##%r9!F0dORbPO{Z!Dj>HJ;QjvD=CJ!h>Aodm{;{aJ8gNt z-jvh|9dDkXJ&d}dBs`4Bd-D)79>ho2t3tGXFN{31Kv>GF7>)*l`2ptYJQT76)(n^K_8J)O_a z-A92RNmv0)H6Q?l$$Q2(*e$TcZo)cX&jFaNVEvO;!1>nGs1Wa5UH%-7?`bczqdGyg zxicyaU@v#NTmb~ucm(pvTNno1sSkS(l*j8$HsaKxf!D#hlg1RD3Qb!HxbdJ)LL0Wa zc+G~>Hl|JpU?S=~MGc2dB_5t_CITyLMv8AI!YeE=}1gS$s&T z--1B57BFGP4FAP{Iz;Zg1#H?qgcF3TSh%By*eYk)_E&r$qhSUUrzKWo=-u!@a;PV_ zRBAs5s_FUS?GnHSo}sg`wVoK`vtzgry?98Vb-nuZ7qX?a$dLmht5O2$p1_~FalH0G z7WUDeli2V3@JB*%Ki-_=?|FIBd`d_U$C)i5)5kS=hprhYrJJw-jIfVY`^rbzA7Fd) z!u8#vf9jr#)9*iqVj>=^`rl_KNsDZILHBYX`&k52TwnhD#F97k*bzWKV_Yg7D~)^B zU<|yv6qtAYwRgyyi|hF95T3>fqivfnGVW;M`P_Q>T3RPUn{^Bsf`$bG>5Zt8MC2JN zA}<)r7|nL4pbF&cp+d+SEzD>JriO|g^#EvEn6DDIo`H1lT|0Do?PwTx?E{VwvPgaZ z?sl-gc6Uc}oBc^PwEpRrQNrB6kE;hht$Td>bM4dS?N8f}Kka<@wEOQ9sCbWuK5i6v z1&-mMiaD4r4)!C5f0qNu%m|py2*pHh9GemQsDYG@klq%4cKGeR^Hb*e9O*)*pNCJ_ zT-KM(k3!s2VVoD#^im;j2)~nzDhPhM)XeUMVN#g&a7ufoKHsx6zc&Kc#8+TOY%v`< zpq2%RX32!?iPG)WG}1a_mq|G0AU%u(yMi&U!EqrTL?}TpqZ*>c2G1uF!OMuf>~zH* zOlSbcbw-@XW<#1TrjWnBr2zj*A=O?8{bl?jrRo7rzGtvI1Z{Tc@i9L?{@lA1s~W70sgQtsfFd)dU=g7tz{C-{KBP zHqu=RX2pRzXo+eN#IphAZAP@^Pr*vC--m9nH-M@)1(HGFa1OqM3U==9gg7jn={Y%j z0~SL1%6gd55F+hinTlEY4yS_+OQAZwQg8ivYGQ<|C)$P$+S?YT&yu!;%tur6$l6Q8 z5s+D8ivS7SL507~mTO^o0vxC-6*K9H6n++!5&Q+3oo2d%2oX?rrb55F5~SHdDJ6RIL<`8h{Mi@bTndWOj2zwPG^@o&Iuvm-^mBq@eNXNC((h}; z%=&?}XL>QA?^h1)7ggVB56hT!h#Axr@ImJV|E2|_?p)dGc0nCFR{NNthGhE#%Jh#q*OI}k;LXSB?4gM%EA zhBu*if=&vIiY$nOQN!yPS3HUfptXB8aD;^%d*F)p7ud`Xg!ZpX-9I5ce7fg<&c!EZ zn04HA6PR-*kYj&CS1=kqTi&HI>nJc$Ycrk-{~TlJ{sf3F$JHDc5b6etbyKF_a4lEV^YkB&7 z=2mQnMzQ5hN5$cD*ps$b#j`&)Uh23!nkt-XuVN*p*(CH$q0%BxNL!)kxc9;2 za0QQl{YPt0^(M-WO%D88w&>@7-L&TSs_`J+z-DK*d!__Es&mH42twg`11}kn9s#f>uqh39M z0nl5L$l?d*J3g*Ur+rfH_@RIAzBqJLfy*?Z7tepn65)T>8RD-+rNm+1R90j177FQK z_JSrY&g3QMd{gLTq(-Hb1ne5BKNg9Mt9fjFswsgdeQW%ITad!^>Dt;R%#np%TJKSk z!~QBO#ZG%w%Z3EC{Df~GT~&CJvaWt!`kAXj^H5>mU*v71PZ^UGLX_|uYAtY`N&X^c z{yA9^wW`pcVmtSP*qPqye~UYG_=RY4PLr=pQclQZ)3;OYN(Qg$jC+P#+HqwX-&&~?jhOjKcm8z)TxkdmZU+k>vxbZBgi=&dv&fi z**&AC#HRk5b?u=v-MQN2%)&7{+ZgTD!;UX1R^0sgjtyS-b!~DUbqqR?a?0eG8Z^1h z6aaFCdb4c4tbmwf!lT91y2j&)OZu1VkIj_clD-4BU>vSWaEnnp;D7oR(y$jzsT2p32-TURpov?yd$V3?dpuI$?mG9 zW|C&S3f@>s;=Jpln;l!F_Db1*WzWlOmlx+>ytGx}dpGcJg|TFb$};p?NjJ>RCObN+Z%zCRK#*% zuE{yHr>(KH^YZ0^)!Ut`@g$>Lb-Oc}40j)yFP=lkqnk2Ph|kO(X(wB}_cio)UfX^>vWE9E0eUtIb=LV?O^Cu zU0J*&0?3-v8NMVnZX^V4z}nkj<16-0{jhP2K}Jv8f^3B~>wu}(BX?aZ@pIdUw4>*R z!AUE!tt#ceG}=rRtY>89!>s3}%9{12=ETjv4V(CjVJ$hDN+p|zRLs3hlgP=kA?5>S zLBHF`cOZ=C0%bumy{WN5d}O^e>pkq;9D_HXB^uNROvD&QSNeLd@RugUOS0MRfxn$QBW-K*F0kNt&ZV|m^|@@6(kT~wf8JO&cfotl)G}7= z!K~PO?hr(IYNqO3=WM$9I$fd-RP-CLvTeW0P)KCtgZ8V@?r&OXbY*vGhgS-?jvy_T zwGO0=Sf4p^QrYWl?HH}#pyChrJUh9v!4)k>$yw_fi=FniIPWu7Iqiab)lak+vc4SF zvGa6Os>E3-DY)pCEm*<70~vRm49>18yR?GY3`?a-%~4yc5ZfxZ;)E*W`zc51MmHZ; zeyO%_PN8PMeb6a&xt8GY{TN}&srF8vtV4a^alUBhg1}dIg&*gN?DjM?6ugQ!pm*+s zeDcxz4_?(@Og!h+$VS-?yt?Px3!(h#crARH*$@j4@`M|^_KHk3CLav)7JlS9uz#v4 zD=~=ct7z;te0-|;dVkPay+>|i;ZrRo@bmr$jZaJzOtn@&9@cQA_d1yj3ssWqPm~11 z6xl?KZt#(y$v{xDE(pvEhM##~cCwBCdfWLAZbFToNwca2{b(-d!!(_8{$8phPxl zgyGsx86El%St5iWBS#nQe1W>4ux#Z)%tkMqi+P?mIEXggMY0(wIlA@0FGj2&?Zu+VLxq4hNuX2dFBb_>E3 z2%2OvJ}u+tHSvi=z=t);ZS0|?pw523W4TZAexH^`88S!6xe;S5Cbm@qHvSu2 zey+@Kq&vLa{~G6z+&j3(IS@<%XoyzY!Sn4vN7N`}(5?ff+Uln2Y1f3b1`Ut>)-Dj) zX;hF%J%NuUt{A;r|1c3c8%umcnin=lZ1aKrj4ivkY+CqH^8oJ1VUfu0x#3w`iNnGq zHVFo5u-KOT3|M!+k=Y#Nsf)7&gA&vllIm)M^)kyZzq7`zYFfZR*;0q4VB=#37M@*i zVs|e|@6fLA4T7ioQkP^`X{et6@zrg_rHtV4l2^O56>)>?a-ccoTzc~x&%(p?4qkj=p;7tL%b*V`mZ z-yux+7dNKPTq*h!Mn}=RzDhBzY|-D(x&@Nq!7duc(l?WpFPslN{edL0+$sq z)!ObWkU1GrHZ^{1HOHM*CN^d7vpx1ltop7Yf;aEYzx3lT|C2YQV&taZ?S{OlPH&Bu z0>k8-nW9_+wjAf?KQs2z^|vJo{DEgNG36NVa~kuD7^fRjtBgnQmNN`$Q<|nteOu5Q zg+||+(U4n=$Tg!}NZOxC#Cd~UUJWrf61}Fan9S?LTeEz(Dsv|I{zRj+9zFQ{G{xj^ z^6b;P3CZMpLy0-I6b3Cjxh=_CEYW^JE{2?QZYVKo0g+>#w($;w?n_0Xp72AP_QmVm zC5kR*~o15C(5>RO|EwZK>p%y9qjpm#Ko2m(q{ap+Q#} z#@MD*bno^D~_jybw8touE zuP`3}HO4JGjb+jft<_bycEq$HN^hthH9@<(iQh?m8v8jlYPuD6#~9RXQPWbEJERFm zfyKiZ^*&wZ3hf`LCLTE`k2XYP1u}FiIVublnQ+MFR$|o9;Q6rh3+asDR)(xk1De_o zy_x;U+se%$-7ykQiw!y(lS>HGJYQzUHR zKB;Avh_Y7HeoiCL!xG24^n&)8-%9U#FSBT9kryoJ*G5XJk-6xdHwEn|{BCw@JBzC# zcD-qIAiI~ruuIY!{-|NYT~iyZzl6f-re|&9O_-f|j8Q#u0yR<~X}VNz6N&6gh$X|G zs*e&^@5HT)CDx3-!}b)S^hef@(8CzHCQqv90+Y)}gIpQD67zl1-5Q&V) zWLH#TIHRVmW3Wfm0 z8fBmo{UTHBKv_HkqV~>R@a^=Do&MNO2olt3r;`SfL!u`RCIu%;=MlvuP=7BmPFYvP zGFa}*O0Ra3Ekko_->8e+PpR2wn^$9!MMtrPGSObi;d02=;*5JJw&%#$N)57S{6(zT zWO8Ha$(y5yhEPYw|8@t8fSA1YuEGBi4Vj_v1_<@m2FGU186OI@M+}y4^#4yZq`AU| zF5~qLUFJ9SEY^G1i$w7CDppS34e`>~c=i0h?!Z8;ezW8DyOm<=t4Rj|;;B|(GpUB> z4y2#h)~^}pRX$tjwdqGY87rxvBVAM}l&r-$g0%_<86{-l|c+yv-UaY}71D=6k=KjUHHT$Z6G;?-E{8Y2O!APIQ1ngQKGO)5vu66!Kh%mQR&0$1C zZGzueNIQ-M1;72?fLd95p_|*~{ndGU!Dqqj@ANP=4J-n)X^?{OEt$0Ml;fJBzkk)R z&baaI?)|yl_|*N7faoe=xVEsv{VxxU?5l3>uH88(@lV0mV##P+jsp90DX265X3U#N@4;6`5(=|nLR(rDgLgr-LUf7WiyO%K$YU+`lS-{Y8!)rsH?7FY1jFj zgZlfA)3hN9z7WjCLF!m&M#pSl#PXpp+JsW_)yPtBB`(WhLTp^Z5`7c?bEGBtyNq#w z*|nI~J~NHOpg(4Z8C!Uga2y>LuX>!$EoY$63!-Oc9drHKYJ zXgDM;w(VC!>%p6K6>BZ3TXK~wtXf99dj6AHR&DA7KqMEvvsG2m~q5JE07gdbiAbC5HI z#qnR-f#Tuc`pLH}lc_cFvW4CW#x!j%GaBbx@Y>{AIN4R0nJ`22<<*}(9Y?}yccj617HxH?x%B)ghVcNc~3zQKiHMeH*<|-DhWY~%@^$;Ln z;!%45oraJ|nD8GR27nCB%pDuV5_N6R)fBwdZoG`!-$NRjq{&$FWZ*3IIN>!x_9&a4 z&jl?~tWL<6XIcU-Hi0%o9bD#PUD>Z<0hZ{A)C0Km>?X(KMtt5wu@w__ij=#g$lv(Z zE(LrvIo*1AHcO!DuB>ld-Q$H7{36a$5^9`e0PEF$yzL{cxgza}pHm&nfSHU#r%lw& ziRVGTqEX=YJ#~gB?s932So0Ym=nOpPL#T@X{Z}UgFG;>v(y1%_r}gy$MW=C7s--Q$ z=mN#|EKh&XST~(`L8;{Kho8|Kk2tu7$U(c0tA!h#3r8BFUqAo&r(@&saz?||dAm>B zZ#TL&M;l@`o`2fi-gpAyZ=@j)b0CtN-Ke9DaiSv}gz;t%klC29_BTNdWmzw1H7VE@ zOx5!=cxs<&ZfDF$ATASih*p4j8Eb+b#K~1P1x~=cXJUhO1`Le+rFX|cn5FDNPET2pcXUta(Z{5cOQwx~&JYbD-VK2j54ZyQHhbM3liLH^#XGN_gp zES9vwfAv5j4X*H_rffv?s!wm?q#kGttQVjE{5jk%xChj`r5g&TYKG<> zCh@t1Q3hbWU{q5ee|2-}z3Q6TaHo>zm4Vjy;-)4_d9vx;HnCvgshPq!GGfo)eXMEQ z2VBAr3oXT>*Trcvp#mwULH+M1V#3=5%cm)GeQ&-NjCP2YBaBrv8fkeG$=4D)UXT5`fU)GO6+ieUdmJ6V-qU#X&=KLCU3}%g@&VtBM1|4cn8aJ8 z6;!r)24C}5tOkTsvkYTz5ShB3F{ByytHNc}SvT8qV!J`&NA7sC=FTj(%Iu$g^Fg4M zuj0?d)MH8>ttaGO*IG&JV{+a_=7EYCtRJdtnXfE??rL!B(I!$Cp|h2+FtZwf>f)AG z?`5`Lj@_Eu`wZ^(5eUu)$N7|iSE(5&}1G@Vsp^^mOwf48iIuTFPQ{V z*vJZfplT5FXG2w%gm1lk>hE=7v;v^JjJI#(g+C(UB;0r-z_*}zjU4+&A1e_;M-edP zjr=d54*tJQ`0ES1HL^GaY+;3OdX0YJMw6w_tG&WIi1BgG+0wF?kF`jhi zL7P}D6MwxDcQ%aIa~AJpLZY=|_D-FhEp zpLG+MSk`_9!t4+|PCX=#sR)cj#5`ptbCvRq3SCGNu?A-{zCKv|Q766k96+<&_V~<~vWkI@(5l!2r58@qz16 z;(9>DA>co~wPpOMmfVd)sEXG#Xb1+Xjp?Uh2E>ol1mA+sTzUUh^6QXz2$tP?LG?QD$=jC^{Ib z<_Yu>glajeA8UYc5Jnk553<3gfF!I(=;Zzr$BlrJRv2p&Z^{vdJ0M&lE}D&lqO^`W zvVx9hoAh!M04q;~W23M@K(1Nf@qL^FQsinvYb}y;bFa39G;q$c2hLB|;AV?sy8nY4{)y>~Y zJUVOyc(Z-WD^U;%7+}?gI{<4O)dtQjIXd{sIJnpxaV1IEp`xDOp;j}gvR^S<4g`6$ zg-_kae2=+0hWYhAFVxk-bA{=BubAZO@O2T< zsaj`yCUDF%I+ozf&Mg9B0z27#oG(fb3{%PNZIx6PC|bwMb=&M)hEP2b1!T7(&*pU3 zW(Wb*|3`qe%qOJ{d|2iaA+<`(IOO;9b+R4o`4sIWRenKakl%pG?)z{s^!*xMj0v#= z;87gGMi6?+2gf#YgH)A9hz6LyIyXipVXpemCp_H_zBglgm7l2P~C z?UX@KNGZgI7QRkxV9JRaEkjg6{zl+HG{sge@SrmQSc}9GNg5Y z%-c;<1`bAfIzD+&)z+f?ni;E^?e4Y$fzitb7SP%M@vHVuI0Bk~34CW@_C!TVwutog z4h`KbP8t}s>@99=I98z<)}C@?rH~7PD@(w5EZdF^*|%JOnT=3MC*_dQ*<>`6XNDy| zwonjKqk;WSAg{Q9Gfn`3&G8U2cd*UOKqgXG9*O1iGKz1PCE$WteLM&gMj1q!%_L7TDv~aWJ5ZhQ^0cU zXHp>O9uV|79a2CGKi^o&`FI6cK32E?bmMk3P2BT=SVHdi1Bb7W^fMSZEWo=dGT{0lq%85v)XzwF) zO90Qft44&VH^T4L_GJU8GoG+KVsx<9S$`y&1{#GXJx7xw=MND-H1bE4S@MknW{nVa z5L9FtYSRca;ZhNkWrOFbhyo@umIy>kq4GfY>~r!yP+zi)WpiN9pet%?ASYD4YUH?{ zv(77}9;g|U=lK=a2f_CNM#Zd$4J_BIQlr&Dd(+d28i$MPb)52+d!7-QsveKOwyU-f znd-LzE!tgGT8A8`a32#{44_VrQYTMN%hsdvmd7WJB^+*vMeKP0lj7+9o!$nj5BYnLHzo~WEgbT-fVObdVSGtULyLwRkooe+&pdsL z?#8TfsVmT#qwp2&)nHr$Q#rjGWvp1#6x?c{^R&!Rwg5&j+*LkKA>Qq^zF+Y&otk(s z@hgLE^_a$nQ20uT_7;9(L<*}V*wHzlt$4sI=RoIHqv{d=Eei_}j)pd)7De=T7 z2dqD!eT9IX@`+gd8MQu}_4efjx0!F395A)?F5Wo{>0q8`0N7T%+z8dU5~o=Z_L!ac z*I!QMS$?u%*V~-WhHsnqK`nmg&MG`;_&k2ly|ePv4mWp{`+`_IA(TgpBZbG_CPQYDD&X*7fNhAVY$-aAi}~YavU5dV|jx*W1fWjpJ)iL zy(`(QmI!}NO#5$p*KuwrYjW4CZ*?z0BWI6CSAuv;sYwre*I3BA%)nDkmc>JEn;~2Q)@g>*hGo!@^i;n*|@!)O9v_)f%oPS4Ub+-fJs<6&&NWQ6f8*XE%M`PE16N=2=HP5m(7 z{4=~=$8SR94MDT6ef@h{EuuG0x+s6Vu!`&Y$#gn_l^1K9w;mIBauVl)b}+A@P$_XP*dsgjE_}vR|sHuL6c&Y1Ft$CIN+`9%PzZ|^CxTU$zEOlBwDsN zM^MvO;DXpiC~)D%Oo`~rcWHFG9MQTx$$;b88M}Ye4-VV%UM|54Z4!~#3)2m$34Kpl zeXSFZ8cX-?qUlK}-A$H$iWHL^hf(XMB?wxxg72l~U zr7G1?z}tdMoP2Ee0#itWr$=~$5mA(g5sIfdDjmgZ+(Hi|eYn@>IXL;Z#>T$T!(xD3dwd>OJA4Nr>Hu&%nlDkG7j zt>2Q>Z`?>qH#_`V$4Ubg*t@A-+ZDRbE!GWzLV!2w1rKu$3D~?%me6RO6%eeY*X#x< zRXPd;hL$P~Ri+Vdzak~1976o!$|)4~M##!kW8q{0izC3A?SkTLS{Kxya&2+d`h4tk z<$grQw3<;@+gbHv8Gn%_D~O;lQia6B-nR+bD}zb?qIs|N5*pAdAhAykcco_MO| zjq<_rgqLCmrO;p$QJy%n?!rn~*+`9kCi*%7okhC`e@HC#Eg?PlcEL59RBVV6y&lUw zzgELStf@LFFXU2p>crtl{6u1y?S2!gSTCz~d(TpCp9)6=>ByKUht1}_p078X6FQlm zHQ~y%GD&kQsm6OExcejeA}urb*sqyL9wTW=x=xosFtPg22vhrI0*cs}{CkPKr&<~< z%7=~?;7Zo}RP{X{P^o!YRX|wsJzbKd!u=doRn0hWr3%{F<*VqkbT}+s%Fm~xRCxL- z>3yGu-FH{+R!NvSmi&?0wwbFYrI|SMaGV;&2hH^UQhUFOM18+pXg2lWjCIdPyTyiK z;d~z{SQAIu?&FI1sV-^a>N=nCMITEYK2H*m9OMLL2pH)Ud}=Rktapo_3{69TU9&p81uL?;`->g6!z)qv^U{ZfT3SEK^$Fu37ZO3G?HJ=Q+&aB98%WOm10AsJx_S7QCmM$ z{rG_;_cG`D8J3IzZ923m!Lh9b1}+y#mo(XRZ>r6LkEH1Q3jn-+_eH`=kh=CZ#ZMH& zOhl9eIyUoo&PI~N1$EY#Hr-&BmcC`N#n8UHJ%^_%$cdBrK)pYR$w|51iMXZYP}(*W zo-+xB(VyNU32BKvW;apo-|S+@w~rh>MSAxx-2Uu{Q=;-NGB%87f0wB*cVH-eyM!#Q z;nchAPxqy+5>e-Wo#C#3{&V*aJbAA}$wZ=6xP0>glF$C#Tr;0>(651lvtN&JPYN|^ z%Vm$-=e#Lyi(2W4{m$tTSH@rJ_k#sBpQvvYrTfy1yVj{ETqnG#4_3aONrFE*(W}4b z{m;Cc*q_l_x(=+{c7vfg*}UJi4cvj z{yPRk`N%^JvIUKyFOA$FB4MuY8dPm-iI=d`JK}B}LOrwL>0x>Hwj_oN>VW!C#@?vS zXVx@i1}HABEs9y}86TAu)PP+^d$vbmUjbWH(hRUY98%DIuxS&jcFX_M_8#VIe>t<>?Cm$?lb=%x`9&*b&=v|>{sd?*Z_*LX+4!y^LY^##v26%FTXS>M& zALL60fx~=1AHPE!j*Q5_p^t_xlkCE`Q~z6W9uTLaQ~zT+TGf{dXtgl%mKV~&8i!B%C0*1;rC+Y8f=ttU; zppiE^HqqJi;!@9$m6grTxffR%ZpTmZ5)GbRlk02RYvBE)%)z_P=YYq}uYvOFAV&rTMhzZnNmflbn5Sl#-2iiCfPxI!>cL4qvWVXJ{cT{h<>ks~{Xh!3i-K+kBC)*(JocHfvUhgZXevmc8>-Vxx(G%c@zU13Lp40=! z=k^AS`){4+w()y)qA}Nosvm4x?ObB8VZr%H}Utmgp~TQ zY3=@(?*_@~b28C%lYLTSQw8HcUS?7KJjsKO2hGe5~4VROgb&>ICAHh0&a3+)KchB9pMTMU6__+JR-e52o*R~w49 zlt`5T!dMRxooil?46tUsFcgZze}aH9_)p+J%C0>*_x2XkL*kN8hVk71^$x20?tGH& zF!h+*rX5}q4-JL`)Z1UaIadnAifYS%$D8E+uDvoJ^c1|Z`1LQ%4ue4EG0d(}fu znGHxoEr}dvsop=e0R?!;Bp4~T7MchrGWl#Yqy&^SouSdnMkz+HtPpaZtX`N>1cNpW zIkW-B*P$dwK18XRjh~dIeY$RUKG#9ko%7&{Qek3f_yapPVjhR)g)_62@?Mj6nje6k z5D-LEydyv*a*~z$*81YVsonW06Mm=n9G7jc6gEp0vlQ~YA(0FKNs1GCAybuFyVl@r z=6yR&)FK!Sk{Lqij$R5|4<(NAQVI@NZ~2)FOF(?(Q)dRjYqz{evMWgV1{s{_3W6w< zxt=(`fM<{rrODHrPS-?KqG!^!cY?i8osQm7>sly@fkIf&*??4=nlVR3TLhEJ`q&c2 zmNXoOon6UQR;*1yRq!;?rP!Y?)9!g9pMZ_x z_Gw+D_HTaME_uEzH&e~TQT6;Eyvbr7c8^t>oTPg4jNVmlvZmY0L~w3`?Z<4975trT zHRhmhU-FYlB~`tS)Px?IX4qsX4JD3sD4M>fs#Uf{uyL+8!aSkgNDUaIQf}GdJ3lI1L^-9spQ@$rnO0+0}Ag~ zpIl{yRCq$2^cbbw{V{&b+k{zn*dV_Av$MPoXh7OVaPMjl-J{q|YeLoM?w0#u%J0$+ zTYkOeByhbS?3QM)z7hF?Ty*uUG5fIJWg6)*%gBT+)rblE2O2K7*v<;dtk5Dt?#nsL7Qj$#5NYp}=Zq!U#(Qo_9tt&cl z=jOKu(7JNh?QfgjO~-4pKPvnCYj8r|8Nt7W=5f9c-311J#_tK^YDygPICG@noc)ZR zm!{R)EU-`6x0Jj)P;=Z>iiR^6|53K?{mA(35|x*AUy>t|%9%fuqT@#Jqv)OiBho>b z{Nxj#U`_D$tOIfnBr{=`z0_ziP6$)HdrXsNcv=h*(Q#0V!@!VEVOsi^%a?PK11E$f5* z*;%2A2Y)O1W!=A6OuBLSxqU$Uv%|*yQ(2#4 zB0Bwe#D@`g6?${Z(CQs;Pdnnyi-`oybgon3M^efP@;0#*@I710zNy?D(hv5KBxpMB z^>>{xhkeLn1e4gxGqhMTm*G1t`)PX;^(pmF!q7R=sZ$eYl{%D+A~(mHJeAPbHCYiU zpAiBI63t-PEZ>szRr<7(`kL4u+q360lI`Ru47uHPEa=Q?cWeFb?x>&s z4m>sctR^$=+_^zEvhjfZPI|m($D7YpR_T}a-wNeOhhUmLII%aB(y9`>4#}U`cc$)F z{f|!7UGEgyT3;X8`c(oYbK|D1qKJzS6=SB;{a1qV2WO$5-K3161oyxjc4=AP#nau& ze+G!^Z65jZ@F7v3N6%pFl;z=H;$bu8l!$lUAP-+hIl-+9t0V(gd6MG-{2EUk#m3+v zTc!)n`N{^iYQb+$p23ihiYE7oxJS-0PbDl7mId~&9DpV&GCK_TOg&RX0jdO8*!+%- z!flDt*yoJsG#Y1r3RqE|7Kr;fM>jJ-o_(Co!&=oir0DO>5T9hKGp->1D ziB(JBjSzpTK_XHVA#ML$DP?*)mbOLJU%@gDW=6L)W4O9g4#U9bVcs~%DC*oK@*FP_ z0>&HyVa2UeEZ_+s_qpM7`tS$37e+y&$)UBoq;lcX)`L| zMTNRkY{5D}kNkPmRD^g+uN!eHb`WD^MJQtuibpVqiZi9=kD(&bPK)?ML-L7zHXQ-d z4h-9Yn)KmooGE#6;Fnr2t}qFZOfq1A(tr2|7~;|)Bd&JAb z@zT90xeWsJ4%h4*M2QiSM0EsEGnEUSPbE#^z89xN*5(6bqfi&MaABJI6of_(7N?`O zW)xVTFYY!y8=pr4MJ0cjJ&PvbKu*9CHx*KaxkD7!GLcsKN;YjWo2bAOt6Z;1t=ob; zNpJkHK*Ix?2F&Xn@|KVV<6=Mr>ofqCjEdoEn!O6Jr2q@MfEet$6(X@O5Ev0~wp#(W zD8=aN(~NohjC!|&ME2!Rkd@!~P0Wkde-r*%0i&S8Da(9B9<~L7bs0Dn`e4`mLCuZY ztOM0SxqtE709amnL8co}90;uG0$)hLu7f8NoOGl05vmY2-EQeXv}ggZydp<%HReB(hga<1>vVxA=tQIUoS$y=SKw>>lwPYt@j!T!TZ9X zs;_yN`50|X7Ti1goHbC#%u3S=m0bnOK@yqFYIiGOo3%*-Jd%)7(0UpOY=hG&z_t~< z(VrbgE`ZT^-R>ZSND#T*8P(?k)KJwUS(u}fS`Ezl0YSZZWL`5FA+Fw408z6Vp%#Av za#Q4&N0V3CghM8!`%|`2)EhdbW8{L<4~W!boC6z>Ra%}mQYw*+7vdX>OB+kO8_Qld zR;)Ji6q~ATnrefZ>f@UlN}HOxn_6BswXQa`DK>Z5G><+j zL_?dp!I}bzcqR?r3m)WQMRm4fsJw{biyQ$5)mSvVhNzJ0;q&{=+d#xc7`sijs@rtu zFks>u3{aXjxDaPj8a5as1+zW6dH1eUtP%oT61XY>2FHRRz@$s(07m_CDyIs|Ww=j= z13fH-R0=MgarSx zw#{U*!B<;Mwty&4I$=aKwCwW^7SW+Upy9+Hd`cSQDs$V{kG1^;5KZ^JFPv?}*2suO zyyg)g#s*+9(q(cR403E4O|5L}#;JF{Tg%i(ok_Lo2Egn_~OAd=k9%hgIK z7VkEy-f6f2xIn2zr@-a{fyy(NVZrUGKu6spwj)u?OfFcPdIMMrXL<+w8UU|`Zr5e@ z9Byb7n~_cU)S{XDW; zGN8ja&&sVi)q6K^r1=_~dxN!b?^d#c_NeFTfHV?NkVZj@}1>zcVo7L6c` zN!K8>8`fc9JFzvfm;dKTyKgg!MfHBQg*X%ulv&Vf*H$jCS-zWrI87=#`4_))HN3_H zeOm1B&(|(w#8koni#e_>hU$J~u_AQbS5dJllD{}n(OhVbzgfC)l^Jb;a5JWovK=IjBo9VKle9Lag~ zLqx3VWwjw5eZ5!UpaB1w zCraWZ5jW0!{=yNl`3H0}526Et5UF5g@sTqEHhMCqh1f&nEza3=OCPCk0l=0gIhAep zmB|Vz9WBjO<{T<2mV!JjK;INsH2tC(T{acHE9?=3AjsttRWkPJiI&KLw7vlAsuQUzcX>JfTJ$SG3etPTsnZ55npL;)B{(kPx`|t1G z|6G4BRQd3K7w0#%ziXO%J^8M2ef>bowNtH4_g7S!?5RL>z+@>#!cHB6<(h^pGzs`; zhM4F~IszvI!waC=Am=tk$dd*Tl-A$w4mAV7$jDf?$(yyW^KSDIkrZH)5UeP~i=}(I z%}qyjU?!kxOq(%T{5#JZX_zarY@LGkf;5q3mtR+4cvA#Ei1rh}Zvx&oHSVVZ;{^NZa#S6c^_5hB=a z;9^O|OaMA@2(afP9H~*zdB}=74Is4|M1QI+au}pSd_ZqX2*{r~73%x`LkF@Z4HD+N z^{#p_;P zGf0sgfUJNz3R=950J5ZzAJE30n{^un^NII#Z0ki#6+&#acV}`x!O5S*Ucl`q93XjPihQB5261O2bbOyw zpiV>ly+3C^{L!74iUhR@b#WV@CoHzE{blh{UY~(h0luZJ{aM~+`nFK6Sae&f z{h+@wuyEHHYDT?(1Xz12Kd!KhbvP=e0Z2=$rlE`|X8?y|00H=vngH}<*)1sU9VVIH z0+}xp zb3jUYwU_8E`wuk_A3DF5Tq$%m-n>!+etdUdOgP~So^Z4cYeJbVuS^8>vQV4^xeXOt z)P2%_Pe=cYZQSQCda(ZOrG!T3-bhJP6rs9`t89q2C(TZ&p(Kz>NB@g$jJm86c6r{{ z(GPV!{piGrJ+8G13TvTMR`8=ujvF+wxVI8ff|4iAD*PuMm3#5zqb1?R^`zGuSI!Wn zzFZ_qZeDvtBix5T5f3-u$`ir#^2&S@!{w_V?QSApsqT6GqvnAzN&!XZ{;uRENgdu6 zLkd`&z4u&ov*D_jii7(hyy}Mk(f9Yf7eqeKl*aKtX&%UbChvwm^W2M2zxHLLz=nrD zKQXCRy!r3TT*6wo){&Ph`|Zy2@~?yzeSiJ^$oObt$gJ0TZ{RIbYFSTv`pzPPsynNT z|M&a`;njdn3;D;{=k=90_cTjZy_@{~r4n&9$)ICpsCtqFQ*3Cnldz15xLJ#fi71PN zoPFf*VHG@b^Wg^NiI@`(T1+$w1YS#I@9+r1O6d661;g z;p|G5X5Sg427V_IjZGV?4DlVmc(`-0YxmyApGnJ4YswnhYAy=?bR}UT4_mW0mgf3k zMtkVQEy^Dpc0lHKpv!IWyBTEbyUvktQ7L$Q>hcI|?{4JN`b~4S(l%NhxrrEpF!SEY zm@T?K1`4HsDF>%4qke31W`Rt%TY7R6L0i1G3#uW3aZD&wkF0ffOKh+*#{d3Sf2nNq zJns+=X3{OS^)ONx^z?n*qr1i_-D>hqQ z?Y^wEFY`_)2Kf}Hoc;TyEdGM^5497m17B;-Plo9PC*S^IF+~^*f|Vrjf`^_a)mF{x z6!+4NoVs|$0|;&i%^1=mlI!$gYDBK8t7?ZfCVS%2V%R34i^^|A|0zj*WL5ly z9Y7V`Fyz)JiJQ)-y&3JhZju$`N4%^rZH(ZLe$I(JCR3>#^-I|?K7FVx!;xbfHSAQl zyRAz5{p+9ID%Jl;w&azbTORg$bC*x11V@xs0*6#1BttVGJ+PtDL>1cYY>r6FoqU>3^9W z(SuxWOPihPwbLt%u1*l^oxL`;-U#5 z!>!)BLc`Mfb2_Jk)%SSo6kXw|-B;A2C;99s@*Oo;QgbE{_Lp5-nznHvUE`+J-&_Mx zj~JXgJh_>>RaCa%Wgz; z%-UUG3)!yE-7>o-jj=aZ@2~OGjG_8=4MMJm6~VQVeo}XDB&BVe@97pCcx7Ld*aX`t z^uqd}Qm>XCeVWSchVF#m9A2(kY;VGfY7#r7n@ir>c}tq*c8fl12+CnUq<>xCt)=Pe zcY(=sme|bT6;t~P%XIZ`Y$W}x{XJCk%no5^72FDAyVD7VM92&D2^JTIa*iQ!`|K~5 zyghqrm*O+Ke_;hTXlu^vf-2Lx(IHZN?Qbu=dd{&KIz>vP>G2Tp!$I&^6r&unYX>uK zXphs}RtBDUK-zc;lbzRfRb-}K;VF%t^|Ayfep@+Fjh&IFH5%Jl-`MEtGmtGH|}K-!RczT4Z0W&sd=L5K;NnunkZ|D1bq{}3wxj1guh zj!ceW5~&ay0a=1FNfl3^U;*4jNFWQ03h7ONF_Iu?F;yI3C9s&%Uklzt{b#xGFrgYY ztqN@r06>odNg`D4YQQX&$O0i0DKvXg;!3V`u~@P+$+vS9V{hU}Y$dS*uf73{V=$n; zYpF;xE<|1^&KTHGxec;O@==-htdC#!^z<^TL*U> zm0E59Hck=;`(`l+dbwteI=c7pf3m)p{|w}i+) zns{Kd+|JEz3Dfa-^)P6;qxi}HPc~umgsMiZ-Zderm;s@!K(yC~cNb_*s@;3B%d_8s zozlGw>ek{@Iq-t_%AA|L^<#)c5AN%z8TqYRY~o>NqEx*F6csq!=y_iv(4ZCNhsHP%?;cDKe>)IlyA;m6yvEvPMWxukJ zR=ajd1o=!o-Ulv&TR+Hz|F+ct?6dF2pyYkp5?OPMn_G7j*of_s`#q!MFz1h3){kUI zPLSc@4fc-xe6VQ)gQVXE&8sQXq@(&p^7;A$26y99rmjo!#qJi8C(Sgi_8}N@2!wu2 z*UaE#szGRrb}#4g=P8Q0eFg(&@o%%`T69f-uONj&T|lLncFGYW?*?0(b-Y-bI_0qY z+?ls5s;z?h!Sjh=%48Da=p?#Z7v~%Jg5mTfL?(J;@Z9BtH}Ps5tkPuiY2|zjnhu9% z6P@8*ydzxYM{2U{H?{P(&)%4BiO~U=ftKg`Bri5%d~mk0v`MI5+$!Lc zhe+*LBUxGvsolMMUI`W|D-yXF_LToln3;alG6!*)?FRC<{FE66t=Q?30YBKKFQUn1 zJ4S2HuHikTzH8SW1m_=9-J$<>lRt871Qwmt;Gkq?mwOA}5p!vO|F`%zQQ_L#Kfs|^ zMqcYKS@E~2mQ+s7io=w?S1nxbiL<43k1TFz+>LOleC@P5_qH=%HL4Veee*oYdd$Bo zCKVR(QF9!Z-*MNd`?jnins8{lY4pnC59ZAE1B*3ASL<&?K)r_|T-CxVQux@r8fh*= zW;?FjJ~?xIL|wtva^m>Qy=yhZQQnGn+$P_rEqx&&Z|JhsbKt}$;Vn1RTAetr`5!`@ zn-F){e?_T>fmk&|2L4eB3&=pXXNUla<}?g!3VVT?N{`#+%!iuuDY$%?gAgyC{U0dI z5UaNw(^3wuq(83SWOH$6YGiyC$xJklkO1HzJjhdX)p}jvfVk$x$R3+b*U$x?nu@C} z*cPtk2XR%Y%?uhD?=+}?K`28q3%*ByMfL;yh78DjIiCwFZ7`0!M}Txm3(iL6nisrTe<*=$F0{7mMp(;B|jT)M*z=qotgxC9Vwx zMc9`;a|?U;cMqgpvd3Zf{jWjEC;~XYyyb7X*rzxxvaXm3toVGoV)p;r+zPB*K3%y| zQn`Ao^6q@xDIKwf8N*@vthoVIWH7d)l1p)hgTXRFcf*cfHoJV#3k5HoClWV}p93lYeJsFMIXv$}9hqK*_0Gyv5h0XpJwE_D-)1>452 zp;LWN3#l!DY0xLAF%_Z?0&5E(;+Di#MVLaMEE4s4S??vLSzJ0O7k$Z{!Wj>5F)7_ zO0KheeUMn{z4ZV(*0)Fn3=V3`+CzaYX}}w1paxRjN(3h}i=8s0dP$b}2~cb&fY{Nu z!>e)!CNeJS10-QsWG6V*7cMagB~gp9(cwyD#I;Fmho!%B{iXV#=!bC0kLJc)(g_fz8-Qst!-@229Tq$}892e0w4H47e$o096LFPO zdukzEEaij*U$O9JzVMSly8*A_!`pa}kQo!f0%S9*e$OPDXZh$yV5oapl`oIBwbb{b6ljM~Tpqu}d&qYJF)dI>Sh(0LY4~)7> zMK52fl+WUGx%`i>TADjx4&hn$$je5rejOZUeThzB3)Duf=m1aq6b2bst0 zQtE-Q`Ar6wGMK$Bfjyeb(1YRNp*J_!g1aJmEdq=x=59OX3KH`w zE^n}qfjYo~1RVynuJ^K8-IFD7Rno(~nS5KFN5|d_d~ic}@I2L%uFcp0wr%iZAoPiz z=rf)`9*?t58o1=tj`BvH6pC;1#zg~Qa1T((dSrL0C14%jFA`Uzc!qC}psxbxWArDm5yWA-*Dh?uVh`l{ZpSC3kloD9#xIoa zjDRIUaQCy_?z$BeR&BH`;LSx{0??-o0oG(M;TRA?N9^RoPf}Aq+$z5Q?@=HFt+W*g za))3+aCuQO5Y-z!4k~WB-eL9V(NrNk3jA#KAN~NfMa1>jcMsaTinpW>Y}*bn8DlFA z6|y5Z@U^of_|LzG zzTLjG53t$FvD}5@efZhAZ6h!`^m@+Utu_-kUPmN@cecFzs|DzSU}c1@Aj#J%?bdq1 zsYeExa}VsTnUj6JFOcv}?Zbo%lX&m8ryvL+oQepi;9{Sn_A0(FXbv#udnSR15Rb4&oC0%Ue#Z$))YfY}XY5C)rSNbc>B{rYtgLwiS_&r1#oS|lAkHI} zLdI04pyr3rK2$J`8G??&f$z9y{*(&=fp4U_-%}+7fFLT|A|-E`Sh|l93x0wHcE?6s zBL$wS0Nw#GFyOM920z`0QK2BgvSZmx;Iz?K`jbY3{qOUxe|Ec%iJ!z@U?4%}09hBF z3c_?e4bWsl@J~sT)%Ltlmps`I&?%_m7S+l7%$7DOW3sf$2K6Dw@$B*7u(l2x*60Zq z+*>%ULp#-Ox&473VAZc+&`wFEA|$AYcme9U;Qil!gsmdE`IV^mkf}Lb6slrMAZlwl zEJN3N9iUS|I^!p3QAd?*1bp82eYw$Hn%WL+tppfg5)Wd)11mFU*3b|g9^`?PYygk8 ze+O`ej?||#_#Vj5w3H9p?*swcn}We%!X*R^ay@*fww@wt74I76Y8)n=nTL$n4|tQ{ zKX&ajvOIWZt2|o$2jT;Wc|zLkp8KpiXDa;GrQTLK@$uUk*}#-|r)`t<()SxnT_aek z(H)qJ57IR~xK0{ZtXhIhfy}W%JTC6|XKbby(2Mvd-|LC;{$2Sgq9jg&i;@O}j)cXr zx}{Z=33hn$r3o9{cr|FJCEl zZd?7nS!(EqoYS=R%ca$rldlzNFev#SXx?k`zcsgDgYBW?bg_34OBRF8m@2f`4gDQi z8kGAk`C8khVq$$hxnD3cNFj~#KRwQ$L!?L*=YQy6XXVd7a`m01S3^Q~P}4xPk%XcA z>l&*+87=!fuk72a=lJ;^0^Ej~`SMfkY3z9Tw#`Sl`+Fnzzq`ABGn4n0EzvD!20HbQ za$yLuuSrMn&bcdD0-tp)Z88xJwA~GLZ1sQ9S7fvq_y3ytrh#68sQ&}4>p%PGgpN=b zW=Q}47P# zYnPxP4pj}9!>HPRRO2W~s+Xt}W7|I73W2r8d7frsQ8qDc13ou8zO?2a*IZ4Vy7sjw zo}uLfZI&rX$lLMg^Wm5q$I8l2zI&hj+_fm7d#6zKZU;0y;dyX z!%pvB%@Liy5QB7tsB2B+I~98SZ|)IG&m+sz=^3|QK6~^`*LLV$GgL>ZIMj* zJIR8{MNG0$+6|M5IE&fIB*0mBiX*ctVk(&!-Y}Jdy(P@uZx~E3)l^xp+I|rFA{3yA zcnwuDkfK;0I2?}fv4a`?#&6Rm|9)mGMg#QPsWi-hU>5nEI6Es0=b`z}wa`Z<#OqOL z+KL&PgqB&`49+%Sr{>$B((ijYt`KA%o&$X*3;-6M^-^h~PQi%QCyI;~t+J(NMC;C) zv76yZ$-Lr-kM$DnteJ2guh>H(g)9=^TQO|EI=s67I9KRNAj9E-7 zYu*VLcXY_2kCeD|S=Tr_g zWoSkY8PySQQ`C<85D6@c zcaSR4)<1R$AJ@5{V>hqF+MmHbrB4G+6hUtsmKFQvxDK5@30GmDi!zjIZ`vzR#&9zy z)Fj1n@PNCqh;yX1s4pUApxXh7>a_k2Auw-JuPcphp&ii?T7C^4-_HHiZs7OtSMKGt z<)5r)6~J#a1!t z*EDecsJ?#sXrf%pB!Z?p>bu9POa)V$s`skm)8SKhBWcqzh{!%!@oN`u9|!4HJYbiy z^YSKzT7->|c3K}qt)k~y)&!*@T@t&muQN&haSkdQ;8a?Mqcc8G?36Q=DHmud)Vm@K z^7AmJdN7#}imv+oWbQzVV;srzJ+)iBC#RgJX&IoYFj&BqDFb0Y9@#%Qm+0nsS6$(% zaKK<+a5{&jE)O~FL=jD8hOJDiT?GwLa~kuZQZtwcVyOL%D3>G_!%h>};n1-ehFnQz z*dMAr_;RF;U8c8JV&VA!E@XJ?=O-opvk*NvWILy93TM@WLVb@GL2R@*Y{%c3(4Xqu z<1sa*-c>_3jmg}T$20w@9mVb;5qA zbg)MG)4VB;yFXA0_^m-@uLcZSaT>Y)WnXLX-g{9L7kA$r)0(|q_AbbLhcrzxAqYf+ zr*l>^tA<92SN6%fLY1zFxc>-ZayD4O%=f1n1(SB$6aKQW|bkcJ^&>V?%e+ zL5h~Mhr+Y06blK(60vk$j__w>Q5U^i*U@HPgCpV%T_#5=NgyCdm%@$)q@I!Dg^a#C zHkvK5M<4!^Q7^n@c#2%ogRl!}zfzIokssUJZ(?J?kf`JE!QOoeZj z?Z~-_DJa-s<2vB@DR*F-CM>O?ifS>Ex(#=#%S8+2{G4=AsCrSGQU1&}zgHuLGpD#f zlHR)F?TJhXYuBJgit|9(g?Oan8TRww7) zukyn_?c}oFzFS1U&fh50h}{4@Hm1?Hxz#mhF*m}>Lf)#5Bj$7?*^d{7MEu{*5$-bB z)6;6#tP1{NzU3MGNF)u!84~|d6vZ_X*6>k^);0SeyN_m;h^+M zhRbL8WI4e~M zpFgy9JNHJhQ$K5ZVsHa#Q#+pSxdB`q9L* z+kj$kji)}}e8bs+ReHUn@Tu4W5n19={foZx2j+);dov=EG!@$Ep-l&&GRb?B#|;7- zLnWjn*se7nA3^H3i@<4HfeWN1(Z-^o2~9GJQ!W4K?z1p-NV|)UCVhyP?`d3xIkO0} zBVI&HR15K;c$lJ^Xr=C=_*H)?|H%Skz!($Ht*2|MjjbT9H-dAL5<>fyAf}GL7xAZv zy9DAoh*sNDbgr!CtZo(UEF>p}9ivRh@@K7;INC2(TzEi!b3zMyFWMxP_In*I z7adV&M!Y`)-^6v3=6rpp?W#u|39f${_M)i6?EGDCyvOc2wU`y8Y4uFT%y%d`*m&si z@TMyA_m|7jI<98bwA1YGkV&NF(47yGg>{-xLht2UEpVw!2}?&gTvgHnS@SfT1ilTY z*_i#@#(a4B)t5urv7&lc!(|RPeqx(iTCGezp3PlV`zG(&tud20XW*!K;Y*x7BYEd% zAI;$H(|C_a3LzSZuLpt>)wYE@<-Jt>-x{^PPSfD_)PhVv%fCNu~(IO?pdK%&;5T@MrNb5jH zIA}Iba^(1l=PCvy9Y~}P0xV%;pMq@1`VlRb*|3+Eu=8DjXDs^aG6zCKB`2n3@PHh1 zjGw40_2S9E{6(1uOB{(ly!McG-Ev|`lE#)!6MyghJE}}9BGP;d35^iH`mT(YiHz2j zj5cCshgD{0K<16O%&y|h?yk(9iOjnznS5f_eXFegfUE~`SwqEHJpt+W0^}}Ga1XmO z2d4G=QB*GmQf)!;Qi#&4Uelhj6F2f;QapLdk8XFuQhFv%*O81XO_0x-P=?fIiHHmy z9a9LPCyUc_N3we%IlU{o5Rl7G2?LY`ROCKH$^_cfDE z-*><3=sG{WnTT2sXLP4!i$LgN^W4@5uBeT(k9~0S<;|27hD$WO3bR>sgK&kV zA&=Z={rm*-G-0?+`xg+4Jt^US0Xy~?*uv33U)yDs1P`DiTB-@ZC~=y>l1qYJheGtu zl1?G`h^2KEHgUK%DQ@nV1B;|S3X$^9*ZH>et3D}=bfzG3k{4RkK z;w0EOX-oX0Kl$6CGRF?c{B_14g0USXxW2Z4ECzP|6ma&dETzN6M-%9EQ|_-WbaLtbVdD!GVyV?R^cV|B+u%swZtk-y|U#QAsc%FYMg^jS*-g zyDJ);jqAn2s}!zPWe}!xLO+{GkI48g9<(JWFWHkm;#w_#x>~oiTEDy6@OAa3)oO}j zjj2tInRq`tzQ(Gw#-_W*_I1s+)f%c|t$nu{@GwIiU3w=V<6g1;+Slp_THFBNTD%)7 zm5JI(&3QACNu+2B&{?U~$VQ&?oi4CZn@{^lW;_$xz9@577t!~%qIaV1julj&nDvCj zf<)Fov8p{gN4mQ60(3SucgoJZCcwu=Hbe>p0b8hwst_BFQYu`{Jp?y{K>gVXSvDIi zM*-`Z1IPWOG+E$48!2Z#{N9M)))BmaJ3BYoZGnN=7NGyFNG8Ny{7FEQ*{lNw=?1Iq zi@XG%(m5DXX7#_AI?Jf2+Av%XJutuw3=Ps<(v1u$-3=loB`95@)Br=z(5XYGbcb{+ zEmD3`0s>0ofWRD1taHxacdh;7{j=BJ&vW0`RfMx8j`J|FV)4eMvF9K}^D+TAc;;~J zbI`a&*28&J+Z;FyNL;?M8g2)kAMO%`)ip`hiQCbf*bN+(VoDEy6MnHX(Pnnb4R}96opQblM|!Eh+ibx<4ep1*0XPeRnCaq1qh zmO32eVy9JpksQpSG+F&R_;Vp-MJ-Zn+_;SZ$v0Gfgr?m5t~Se%A#F&Go4!yY1Ojptq$)F&QIy8LT@9g_qP}a0Sw0BbT}1tMf~c=iUWZsxb*W17 zRNk1hR^XInh!(wYr-*&YtP>9rk0bsZo;OL?A$PgTYjn(J9&GFWYA{?K}_cvxcrchE}#YkWB@J5iTz=1Wb2$sSAX5{zP^Pb<-iC!-eDjfWJgM166bERZ!p!}4Uj4i;tWT-!e^ zI8!?BpOns(Xr|k7TBWfsq*5?4aB8+zKai^(wvsxH4;ph81{28sHG8gvyDZ!vbvAp= z_`HagVw^Ot`raKZE=GOb;y&o`yq$zuu;V}_nh$5pbS=Gbdko3eUZ{J`BH!_SXa2=R zXY<|+S~ZbbuS>!$p@`=l^O9%n;kO2-sX{A=&sKjDhx|MFKR!QyNCk~O(&^|p-5yUD zc>aX$&^GURi3veXTUWrLgOmB!C;kVG-(J2^#qJ6*cZ5vsboc5pGKO4jA19AJe*diP z?LYh6g_iK%KJ1D(4lmU6Me<&H=vJej-3!7qm#mkoaB2tmf}vXxoZ2yGGnUpvd^3(Z zYTp6Dnc`NA;LXa}ig%7_otF6C!@DgZzNERGELB&sogz2r_C0dvv~61E@Iti|rOq6} zYMA>m-O50foR}*_?z)*ZI#npw$_4ATkSv880(8lK9&1$||4ci_CFW(qN>beG*s3r2 zeuM6=g~9VxdxdXyCn^dT;Mb`s(W9FCMGD+``{>o$g`Xu(ZDsFYb*XDP7pu8UX2GQE zayQ`(r=|8v7JpiP>5l;=lB#R#Zc=OdfLN+SrRFYegW8MPyhEk-Gws8gesa~B>N*mM z+WJ9q=cDTGPk92(Bh{gT4OpggLB&-|fhm!dg!5FHn|C@8pt0r|Y%+7i003o&{wegFFM{efv71e(2k7;(~2)4f% zD)6Ie>*L5)|JkV$Qw2M6qIQ2sbnFxI=y&@Ush8;^|CUXgVba)iKbx-M+Qdewx%1}w zPgm9?_2nYlQ;L84@usB>DonmC4x9Q-idi~6`yyuJdN(b040L`hd5jwe`sG>bDi(QWAkaE15Y~5x>uK`mcJ&$fuRI^7?$>F=bny1( z&Dq&j@^R_RPG-$H_~$|8^S3c?#pAGD7_u6vu)D%Z#l}>0W*Qk!aUY!`B2MWC=x?e2$Y&OJbX?l-6H4>)Os5|>1&`Rbmo4(F`yLOCLzGbW<^h-gTGk@E31Crj<>ea`4{0@m8-H5>$y-ihAUkZ z=nFqx8n@DCPJzC}&U(D3XGr|G8^1yo))LKi6Se3Nz91S_;Q3 z2+j9TRFxCKgJM;!l_Ms1Rq0`?&h+v)`T8P>EBS*+>K>S#0`srg(d4!wd-Wem{CrAp zD^=sp#Ft;r@IzX#t8Hx_1SvK(%U}L`nP)aq@YaWi=f4RZ zobnA1*hw|MWSnfV07Qjo;)QvmTvup%w`J3^43G3N4(WEa4j^2ge%wIZ z*x>9ivX|IkUmO0p1dSTU;c88(HT?Or@OzUD+zLL^F&eW1j@xGrW zn}1#591cdF?_JHucRzh{Y@CcqkwSIq@fI4qOSIacJqqa`xmwh`?ddx=!&tsfT8nA! zdb@>;vq6nrbkV+2Cf2oIx#A*yAvnN|lk+*ljJyDBQa(2~b)$cQd6wsb43;Ct=bBEr zViH?#%Usi{vP$;u{&u&u*BSHQ_ZJ`=UXCic>u$Z`o^*3|DJuAk+$WuwU*|ivtoi8M zm6cBocTJDR^#9&wItM0p+iBUIncf`;+$tY^5)GNPIgVwV@wCDGV}XmjY4xAEqyJ&C z`X2layCQMV82)$g(u?>&32C%w2+6FR*&jI~a9qx7kDA{@35vWYF^j}&vAd-O*4q<* zAA9?B%mbL?F9{9P4+>n~kaso#y^JQ#L_@8z6efq>9cD*fEh#sDb4xCN$}XeW3R6sP z48N72U+fPb|YN6f{fe3bsmF%6SBZ0p~sfo1@3+WmL5yYD83O#Ze& zsYgw910F_5?i?M^p*9D8prO12P##BA6k(POwQ+s{?Td>pxRO)iw#Rj0W;AvG4Fe4T z;2N00NxH_G zgXpxA+?FrsqO5waLo>~*(&)s2Q3#F`j*J- zJU1!wD-C>u_};3hz&xLHms~-M{?7(!vsV6DZefi?j-LAmd^vigJ+$7fNRWi-&NmT6 zSjf0abB-u%se+#IeK_Rv+F2=n(#5JshaO8Wnj>a9*(o}^wgr-Y;Rb6>?TBkV}H8WYrtf z&Pt|?%iN-9ThO7eEe z|9F$v_($$G7!2@du!Ynm?~!T+RC#C=paG!t&X4z(tb3=PMV20?+b|9T zUS(+P6HRY$Gx3fF4QTldYi8_QSHx&##L!3AVS@|Kx(Ku)h`8;cA`!rPDm$I(|Lhp5UtW$ zVY+{V`a;6QW+P?pCpzlhwC}6?51^Io*B+E_Gv@64uEw6rJ!y}vnW+X^Y2|o%LRKr& zbjbR|--ceL9eQdgE-&7hjv^m3eO z|2_A~4DqZr7_Mlt7Ya0S3G1rKS?A>Zt8D{`e--kw7by zG4IzbP3{`a4|{M+dI!0G?~ilv62!|8+gT`?==3)`XPgU?!AdL@*_^uO9*f`GkZ87S z(~E_X{wq$JoJE(06i)!_K8Eme!=vUSdRv7ScYT^1tO1mB;c{@yU(4a?Lw`bS|IMP=vPz?Jy z_|y~1qRX#Bnr=&q_FKrnUqO?-tP=m6&y?_ZqiaY?ne5o!L{mzhz#JT&MS5jeJ2nfp zrW;-7kW#E)x0VV$d#-wA+UUp50(#hkpjg#RI%+gGj-ZDV=CQYit zt9z3O&Au@+GC;}aNhWCqD$APENjV?#a)mE5w~RxJLm8(;5&ytc42?4<5l6ft0zIt8 zB~d5)qzsMDh{Z=9R;7xM0HRS(>cp52uRB3f=Oty6^{FSuCER2~- zt^b<mE}|ByA0SOW_9kzK4!tn> zGN?r_;Ke+&?py*PZ&IMo)fF2(LO2X9_M^z%HOcmn3j`Q4f%OqDqXoQ|gDF7pAYOm} z$wY>cq$p`& zGQRr#)irJmH~sydj=You_~Y%el51ES&$nr&aUrg88}YB1KEqeuUsK3dgW7aIZ!Cqp zwK@#8#phm>A6Q8*T59;>9+WvZ#yL}0J~rXKup7CAWhKtLT~p#&&!l+VwkFK@V&yPk zbua^jd;TpGN2Ck;d)+mgtfi3ryN;Noe)+WfKadf_wv$+yUjN2?TJ z!veQtm?Zg*W_{u0!0;0=#c!BJ@tAur>~F8#tl~QA%j2c|j`%lY=lQ*tUcF9w9-XjJVQ20$+F zGi?#IF80oqm~-{)&Gy&)ZIZx6&unnr3E6@UY2>hC-go2jEAVF|P?dZgD-z07s(A99 z1}Hp^*#O~go2N(2JW2Ux#xcEYNVXu~s}egVU-Zf5o$Dx)Oe5uID9^lw$*7#e=6Lj+ zkT|{M_D@{wX+-#?g~+pBKDnl#ce+86p?0ryXL}zP5}@O4HUov6u@M_s*jgV2cpVKj z6PMn*-OWI4OU(gM(?6w9ds0R%HFm>t`omWu-5HI0KH{_ebNd!w4(n5#MqPJmB4(IO zdq4iRYrJM$VwDC1_d&+{Lv|6%&4y2(N!2t!{~42g*Z-DI;XG*fJ1u2D`mC)1^0 zBj5kE@ii~`m}`_Yhzm5z33~Gfc(wL;EG8jRc=0#;PQTFsw&C}*;Bj;<)bkEpt98mW zOxlD+2FaZQYgj>PJ-fsG#5lCxc~_>u$GcTC}C zp*gZAY1aj|1bZ(>^<41<4dQ6QyCVG1x6F^X~ojFH~6F84NB*?2K0c) zLyAT-EaFZT^Z2_m{OhN;syUB0AIR1JyPMsoSEt~kwtV_QAcgr^fSQ(ZDNib!^aHsX zT3(CdQSx2S@cvnYdN8IjOe}n@DN+xyYq>~uF;0?|{dqyW2%U|8?>0I7K(1D@W$E_4 zJV<}3V(?5WYdz2WweWyNgMIc|1#u7=d4E= zq^;7ZD8*E?QaKFXF=-k9EJbkz+|yQ_y0s?XONzafb8${YvUlq9%AJ+3V6iveN6mae znyd6UHRWyz7boy?ZF($^LP!<-vob{-^P}BU;~9ZG+?Z#wgGVdb*pie6Q~rZdJui!Y zhs!Mi^9$1|KV;{h5cT#D`A8=Zuj{9qua%1~i^4xcGT<+s% zl|hf0ga%1cuj5p~@;#a=J@Wr3*49< znc<6RvI(43XoknCiD_|VJNvTJ=flOc`6^1Av<2#i#dL()cbaq__u-4{ijHwM>x$2) ziR(#zb8gm?{s9-)m)$FE)|WpX7B^7*yVGo-gnhtIDHCzE7^;HRC9p>7v@cqWp0dRF z8_|r(iW%!*Lk1Bv#@$r&oc99}aD5?3)dXIRm_-~u!(>xjLCcs$GkC1>KA|Pl3zifP z>u9xj9!?--=@7@&X6clwE@ky1`$gu{q@`<=m2`IzjYfEJ*?yi?9V$zYevE$agG1VB z*#~%75hBgDOD{bwJVjwX!-!Wj`@8JQuee8HJb6S`uD>PzY9(R#Tr$)XO{p|;mJ~bY zqouV+?WDetS#GHu5?qbH;~(jmPRYL9bCOBNc~G8*X^re8EMD_uhNL-gbvoa)Vsz+o z#klAoMEnm&9+`U);NoQF|6Hx)gh~Q0{1LQxH}l7^k3`vdZ^eSCz~HdCqA1EzTIAij_|+^r2^&` z<2<2(n>{XE;iO;rzmV{Wv8z#vQWZzuTtl?WgFwk4y^vtcrd48xyBU7>x2|EqzB@rG6o` ztib>1ghhnCAZ_;qpR=c5Iq}~ZKGtC)6}clO_n0y z2qn}vIl$qBX1Hh5n%^g3vxSW_0pQeu z%N#W4s+xx+ImnM@WNd^sPdjcTH51fkqNi=rmb-A+k}_0C0`pNI6A4xo)>86Zreylh z!5Z4kJOU-o#l+3?pa5?#h6%{1WJe~%@I>{IKQ;%*4k@035_`rfpA4wqibnGJ#e=e5jogkvFN5*wFb8`ELi994p|CAO6CO2>Tc2L7Y>6iMMCj(Jn)6{RSjcRr~#sj?3lJ_MFrtQSnmFro*)NA}qU=z{gMK5}b{PpW5vVi;J~GdcY~yx{SqtU>)KwJ0{Z>^zi>&%T zR+oP;IDG_N>uZb1X;8ZWBE#|fEpOx~v2yg=Lwt(yv?0MNAnOQ0p+7{qCLXcQ4wozP zUZ@sH8)zBC*Lty>ul{3Rabb%q#yg`DX{_-@3kyyb2UA20X~)aIuj7pw>6+1ds^8HnlO%?3-c=H+%f8 z1%S$8w;d5Nx_h(tbr6qA#5Ma)&rR8}+wdC-TmXh;Pw{oc0z2UHDu^AI_at&45dwI+ z0nnoGQWqUw&30ZkIw0`Ip(NeJlb7LmeJ(O6IJ}vRNFGTz_!FjXOM%yp8Tn(h=AIqu zc*RvZ_9~O5+M^%>@0J6HY62D|gr!_%?5kl^Y(vHgZ4I^FR|7cz8%K$<|0MSE7s@+w zQz-?++i`QcSn_$W^7;$><1QU%lm*}_LRZyOcaFkG|MB+r8SKub&1n80!BBMA! z>%_86O|3}~lmMg7GU5CPholdO$t?@Jg=v?(hh`mmZm^IsKepo1lqv_iyg_~%XluGEdP8MgskA<`*1fj z&=it19?>Hn@yW@jGRf@`cOIcvPOP%^0M~=pLKhKK-5-8}w|p2)McSW|JHW+PngEM& z9FKoO2N&NTNFG-@T8-hXMg;LQ1kuB|vNVcjUu)tV3nC zJ0&ZxV>S<6tN!?q?yx$$LO)zHdCgnRvO}U|3gPRW_mh|)$SqC>5F6r#vh3#$*pG9^ z6j^FklBodwF%@vlSZ5fK8ano*JA;$%Nn%8-?K(nJvqoZH_3@kd6j^q^9DevoAz{d) zFmztlAW%_`NV_Lv6FLT8CUCRNi9d;H&I9JY%+H}4#Ho%8;4AXYiF2IgPKZG1pkuJ_ ze5&2q8T^ZYp3YgEbW!2xNHz>rPXDNQZJhHmthFERfiC%4EM|;L=y^jVm!s*`LHvk5 z&i#Qv1?2MI#E0+q#oK22+!CcpOt_7IxS5Cv(26BjXs&e|=!rxvvE^mw0<(Nj?v5W` zX%d){ash6L%o(Pd#Ijg{xW5cja41HT5NrchLSe(G6j9o%0b19A>;N}qp{=KyJ~(g~ zE(0(MHH>hBXv&uY1+8fh(QVA^OdYkrn%unks;T87=Dl3)>yZ3UEmWL9-CP(E#b?zd zdzR_Xj3Lg9i9lNKMwB-(y+Y#0w9i1*p3#JU_8ze>eoYm#T6!!XdRCortf$&XHlP;o zVuH9Wt@${46DK)G2yGHEy^ytfpdbyWcO;v4q(PNx?a6pNBIk1wd9YSK9HIYRdn%lD zSk@H8f|=q(szeGBVc>)cg9(nR^|Tvow6Lfo7@?cxcn)m*{m={?U6~~F`H&yE+26*z z!3J-@NwUO`l+cIg7$&2q*R*HnmS>O(+MFA+Nrpx0GR6CohV#qOc5+57&4^nEJieY` zBLIGMB-swX5%o37n4PPgRP0Cf99sy-e@Qyo{B_J`6x4ocd+f%SY7j22WX>1Hx!&_U zG4Z^a#<*4Ut>}4y5rp7ZJWx zMYR}z{VI29Cek}gu!+)|H-IPrI8Y1`oeT~gFAH=7@Jf6%7=xqJ5ifc}q#Zn@ zV3t+IPpG){q4rjP)0Dyx5yb+?hg#yoPjH|SE1b(SN|<3PLmZ?!LJE_cdPfA)1i~OI z_C@e#m{Q(hjVM`5J|;p(GZeHR0E9$_cSPoRC0p3@bQi&u(4291aWIIrI%L(s{n73s z5S~27>O(hb9LZuB`H;Y(2#yr$uolDswf7UnG)ZEj@wI{Y+5mXJP`kY{ty_GKZHHQd z{dAC78jB_logvN}^@1-qM4AmCZJAHx`1k_^wgX%(_G~(Jr!f{eaRK8oUbVntoHe#8 zJSZTtS~8MGGm=FHhoV1%3l_z4BG4OwkNxlws197+B(U{&UxK-((jgxi21<(aoR-0L5{Wsevy3-1 zK`sREfr5N1_}Um7IPY4&I--wyb4v2Zc3HaX7vOXI6hGqO#&udMZgTC)M1LcE@clXr zvK9{cFCa&OJ~o|Hm9e9WHnPZ`wFux>2(%H!)AlxN4501ax7;*K0OsguAim^>mf9MBTp0HCmpR0|~dQVHZ`jh52f2p7SV0gBr^N`ASY<7$r|zM5cP z2@hIfZw`wK+f4g0Ah6+?2HlSwen#S!w4Xj=7Qp3lX6kad1a` z3KfJ>hQPEuSXc!$;JZIW0_GR=ONPbOpD$AC3pWdn6a(<1*5DK;MSqEZ_fXJK$cy zM0t@Ef%f_>cWLesNFGtjN_u-D;;8mQpkMM&Q&oiT_9MGbz=!HCG5MopheiWri5)DK zTn*vMIvG#57mnn^CdfSEDMF><;MZKIwH0^qPT(>lUQjed5c;x;_D7j$0qK?jRGPTF zm59;~39;CClm0Bn{$c}}?-U0yt{p7%MZh$6uE}CV9wpR!lfa>tD#W^(iY@wCKJe%( zP?I;t3uh}H$p^n9s@nSS7sti0332bFU;HaJuyEfB^^30xmqR3qrW~ks5=lgm<}({h zVU)tZGZMcMry?Kwe7U39JkcIaiyA<;{w6RECU)MBfwSikB{BD9QL;3YNewPBLh#y0 zIRSx4nDBn+e+}XNc<_f>_D0+ts=w+6ZU;dtGZa%!68tMfIMNx3qVyc)$tWXGvX+r9 z8%Hv^71(seFA11vXddtlqzcX&V=l7W4Ffv3eVZu<>Z7wo>G7GYW#INP$>|$P+|a$x zc^riZ-;{W`wQ`VD`W`UKeZNv|7s@fAlkB3BJWC<&^4!Zizuh-o)h&`zcIJ}C$irAg^Ew_ysg*^6{Yn#bN*i}dmwifKamvts$~bn)^zHP~-YN6nQx>8#R@yT* zo-=moGmfWcoEB$Xu4mjqz88)@Dv{`Tdl{JQsf|%*Z82r51B&+p0vsn6^(TX%13@+} zi52=lxr?FFJ3C7N2sj*=npy#37m5hH1qB>xakEm~hQ4a0`QcY0EZ?6A8AW#_k~eH- z3a3!v1N;*zaXd>R2pi7%=kQ=oM3S>OVi>N!Zuo>Lewq{Qz(GL90;Lupl6Ds77QQ$K zhc6?I9=;}78Mm@04_*j4#?qNQC^4bRQAat8u&x7b+GYPjaQN>ck0576*H`g9G~) zl<0=hI8N_)i4^z&wR1Nl%UR9o$0+y+ux@*+#@ELKBG;8$z4sLB^1?C6Y#urz3e z7#kqEJwhtWfr{S{(r&@~BDkcyH{9`sA-uWayt#WPFqtfeBAChfFc}sDN36ey z-iZ)s&(fzU19Lg@+OR|wA>?28H2(x^ceAjz>7yR^1JNM4Q7jR*(mWCjz#)$ag1cQO zS_1HR-z3Y(Y(emt$9K6m&9!Iq{!Gu!y|C>eoFBhXrCN!3ynhWu-@rFy3pk>l9Ey|7 z0;n}{AdnArV~AqfH%XPa5JXfd;O|^8E_HC^+k8rch%7Gx#5?T$$L;o4tb^gVEg$8B zh1ir4cx2j4(hd2;Net2|M;DLvN#VGZBon8p5Byy`vrtSBZZS>@kd|(lRlJBq`2N+| z(XVqJ!{kaTjf{BytXW5=Jk{I82;_L*V_vMDTl`6xMTJrcLg?j{pqc?0 zkM)hTKXVyemy5gGokGYiS*?q-7CBo^NKSRnhN10m7{wCkb)#~JxE}9}OVc}Y$~7!2 zv=f^t>t=xpjVIEa48P=*l;VScLdcT{Wfi)5YcX-MUPuRxUl2BjHCzXTl(&$ytmQoZdwf)()V(7&(4tddgiFqab zTWO?Y^xd{|AQPWP4$4epDb@Q9NX4RJdC!6L#ww7T&MIA65$hR3Dq~@IU#+gW3vQ2E zxKtc)TgeN(T{yqMWJOr}5m=@TZWT!7g#n&uXC+UGepxYv_qWf!WQtw0;-rdwnxV?TG70t<1}AY@;3ENPXyOyKGuznE0Y=-H~_>TC(9;cF(9 z&`14O^dKe_YDB zj~<8ML)T4Ej7`l8xukxkc_Vz=BR(1~%r$}wgO8_<3j3JXJkLKvgrbrr644VB=5TK3 z*VF1e{^Ik}w8<`?$9Zp?HOy{ReN=$!FIzrq@q9U(`rwb-s%9VEiz>FEYy&%_(GO_(`q4#Fhj_{r}PHhvYTj=Kn>nHBP=ge%9=A=ON`~-5y6)A?i%m z_`lGT=102?9Al}>s!>dQO`KXOWJd2vLyTUGA^vCdn$NF9D@*9nll6)8XVM?!6|bD1 z`WG0zmnR@e8gJedjV6qvxRv($WrUy%`7$4nRIQ&u$!NT&*;c#K?6y$NC12-c( z(yK+e{j@YVKV`?g{YUxP0XFGjM(r5b74SHVZUwy={v}I_NulS{U3L9A z(UW_zlCx75uQ;l=_~tLr?;_`DpXn&xJ;-yu(`V)z$8%-Qt4nfa(HTLv2s12ES}!bh zMX2NK--#AttP}WmgEkT`$}DYNg+d7!t>4IUevgn8R^NzMA|N)kW4dwLK|LD0vIu8Q z(3~^CqT@EA5sLULBJ5exj$z_~zsg*trg_RE#ppF=bKQ!Gt@1pJ`OLDsmUc>V2q>37 z%YAV>PnBBOpQw;}M_$hJlz_Q}OgWCh!|i>N2QjHPqW?O>vCS3h>poS#v*>Ut;ddovwpmLlhkqRHYL>l$>EJ|O_~ESb!*#v zNzH4-`_7M@tEA#p#bX=%Uax;=9Uy}gZ#ZeP&ZY-R1gc6MNqEs2?5D#}8Y;`_W!U^#{&>-3M)r^Aw!XZn(m9y}MbmHvuOdfr4Ar z&ug#!&H^Rt_HDmN2ZTG#NQZ4>y;8qa*_I@lI;k&%t1A!MZ9ZJzvy+cgbvwojly$Io z{;V5Mlie){`g6UPYf;y^pYhtR^Klc#G3lVJ_Lc5oEn{;i-=|q&pWkhJubRhLm?PP@}3Wyn_fEu^9(LK-d!#`Jx{zS6`@Qr&c4MPQ6j&M#;4j& z?Hi%NdNz*!JI1OKv13_Pung%NqVeB?Ti7QrrqdaD^x4`?`oBbstJ;0h6$Mq19+@H% zH{z+9$zgNR%%_Hhk8@5*$U|qTH@#zsr0K{h^N{phYHY;VqCuK+5hgA;8|hm%RfbsA zm`%&?q~dg`lvjoU^cO{6uwf{0ekL;Z6XGf1B?|mj#E41H-x2z@5p1R4$TE7OCajMm zQQqt1ehfiKkM5IsB+VsFYnCv48`mgf9rDnQjD#(<$KKlFQUu*T#az)PgkPZEWmXO= zX%;1zqxI;p=-By;EQyl0r!2=0uXg>@0zVeONzK9WyS22^*VvXD)7T8_nLn$r-ccL+ZoJ#T;R@ zr4%|o=Y2w%%}Q3K`LudCHI1sYYmrOa=hv`Z`9-$yTW*bQHuATNi^VsXr}|zuV8Qz# zI_)_duEU}X5r(h%ix?OB%$qOep$qwY-m$XyQAyz!xP* zi>_sxPZy1;$yHFE?$j)OsfvF9F5VE2xoHy4ybko3!6^z9X-X-w4lgyHJ_Rp*+GaBF z;3BAn5rw;jbeBzEaz_z%lCbUsr-5FtEPBu2SqO8Hh+VNy)khB(E0qf}zrO!w+92A)NetGE6A55%qK zcihTEx~y9@XXhoau|{UAB+i}Hl_P#wHmClU!BAg4kGWdVgolDLU)t>$pB)?6oR>hG zr|XN%g~ao_o$X@r?{31b)lVUnS?;IAL*2L%pEm0oR`;Sk5t2$LL`ty79!i7ESFqv&S0eL&M2k+1Zy~ zbNc7ufG#00whRZjhk%iTQc-D=EjoBDd6 zen#)S8J4!XM}xW?=Ba!B`i?Hi5PxVSR*F;PzKHa$GK#7g$;>`c_~FpbBF%x*8c98$ zw6A+o{OoV9 zVbI^G5q#FkANT^c8MgY}vTaQ53i+9~DC=eHg~@*;OsPI{HIQHZCJYJi412&y3PvgY z1JBJ56>poNVlEfFBHfx30bnuv4NR)!^6U0gnsJ4N?|wSn%QTbAcD-Ij3EK9!(Da;P zCA9~|!)K;eJ?vI04%7%=FPix*`0Se*{*POU)6283L@OrP)P%i@Eq=LwN@;h2`lE_U zL8*b0Z(dt}!n2)mP#BZ4)Ww|imZzMl4&UyJEH$-tS4-Rzt1F3FuvvK)#}%jqt!#Izr%5%xV&Ioj0@U7D8k47 zWuS7An%9TSAjzg6+(zmD%p(;CpRk*AAnY9#DyTAHp#O+S+fGRT%l0oMqT|6Ry$^aO z*QObnB@tOpg^pl7*y9^Rnw;=JY${mj%w9e-f7wb%*CPEK0Q5cUf787e=+X*k@h+O#9t7P%VteB9}Z$XSln6A*dai?B*Wi_04z`x};QFx%hozCa&6UZcVh&pc``ZrT`hhSh*Y z(3YVWBQ1Fj1{^dRUyss%5kPE;rXoBEtD=jIrHy^1P6A&Hao~XPfIg0XcAZIpeQ6@eE5fjoL zBUx-jRz+1XPPz@G`>C2#?-RxA=6_bnqQm1skg18M{%Zab{2pt_5lWd9E15KaNgt|A zyZWZqwih_1nKWVUNiganRc4>==H)??xy|J&3ghE@fkwEr^vs!S_Ihg=(JVlz^O z;#sxIoW!pg;#iG(;9v#%a99;msVeP)E3iHi0jNaGN_f4Aw^D3!iJ;HS;5FjsF`5+d z=V?m#XZqHu)vt=zNRSWG>IOp42i$8KO2%tW!GOJgv&iVPeYCP~M4!`KC%taZ{_yj; z;?Hb;%FIZ5FV+xt^IWnOfN6ga`(>=#HJf`xqhCZMaW5b%0TcVWG8UK3@Sg4&URmm* zJrLIcIZTxIgcw!466p0b16z?P$sSfstoN=eZ^12M5nG9%b@pn#W>{ebwcF=oBgnq} z)O)uGdUeTAv|-co^A+Zr)MekCM~XOeHssn;vmO--q%_aB9#b%0l9O=czRV438Oi?&f2EJZMo>%K;Y zi}?&p$ydbSPQocd8Qls4}I=_#V{RM2GS@d=7p?d-GXA=z1DMB*1g$V?Il}IUTOQ3yL#BZ zyU^g>|L~H;&XQd? zubMg0c)|nuxNJNA!fDmIaEGq$Jq+1^bjF^5T0&i$4wCl|jE<_QbZ_eZ5>@i2DI3su zRlC>Y6TbgjMwO7q@_3DdM#Jq=%4`w~3yv@{lUehtkF+KGXZ~8+U#*&bu|HRc(unRw zUBf}vCZ>LC-1`Y%6YgmX#n8&?dLK4t+<<{Q`sz&v*azacOv0AyFhEVjHYc30!Kz2uySZHsr?YaOSOH}1XCuaUIRY8eypxgfok z$hS2tnxK^WRdz^QC^)+#0c7`r6~Yc9f?$fQb6wIHn>#%^>qX755YmFfp6P$21p>Xo z=C2D6+gfMIH;C*84PRGj$MImrNXshNwg1)MY$odyX7?td5*eNk>(t)J)e8s&@r%8` z>+;EcNk03p=fg|4AF4KM$oxrraujXIYPZjMTj~$_lzJVq1ay1ES9bVe^8On8epmOQ zPMC#!-toWINBn&joj&7l*t0=&t~H%MO4{n@I<+bKaSHN@jy@LbkoKcVzrSp6r)x}r zh3$HLl60)2FQ^&Tskc9DW#Abc4P`efp?auTOnoE&tm7xK*C$xOg2Ob@ip*aP%HhW) zon|HV)Er!drNpA!SC=@bZW*X-KgBT)AIl93=jWZ|4-1LCr{t3S%-C?FY%?uy+N3)%o7Cf9%OaS-YP8O7lKEwlvEdi~xO2_JHKrp({UyT2 zD-`0Q1tAXwCv5+?|MmD6!KRtd-m+hH%(G@<`0ZPy1{IrXBO1w8Y&nd@+W_5R+q$nK zbf*(AA=f^m23@0{6=p&^ThF>?OsWwbqz${X!+q=Q1Rp1|52yAEY7%Crk9Ftx?zT_imlTYL3qNubp7bXCL8S z(mxHg!98RwdV{is3+5jed)FFc<>#zFB7}Yp@K=pZy&1Fqo`|RX@NBgZZO!xFpO3qS z#UFf#o+H2fza~tPgl$b?6FyP)8a2q(nEqRWCwIP(pB18<^b=T6{vTAGXHZjL;9w~U zgr3klfgcDWASk_t9;zT9y;muU2ndKIF9{@I0TiTH=_?y_+gu9&Z1%yQrFr zHcvBo@mbD%rRbo}Y{p7rnB?vR)8{*0L)j=$m>8EzFd2S1&*RsB3da;%xA`(6?7>ne+do@XEn z=opcNP8tQvO@Hh*ez>AGdpKl3d_J9F>>lhl@%Ptk#b|#oUz&LJ zj#jncLc=n!Q`_v&z9~5?yHfAqFyEdju=sL5 z`huENNn;6m&Dl-UlN;D!_OGV8T3>kb2PQI0FYamrW zx4L-1_j~x+lK$nA+E47nzpB|lrUd_fkn++!_1WdY@{QE}OnsTK&(>JkT_yM(SN%J4es652e<{qGEZA8Q&G*js zSuH#5J{(^!|GlYUvI)Vg2}fqy%`CJ;Z8bl&>rmfH|NXh|a*LgIt0GS!)wK3Bb#)|r zyE%ovP#w6pY3#R|FZZm_s+0lROONl{zQF83g^cf9$X+Z-_Kzp)t`yUOID@PFO=zass-)W< zm;8ZT#ew+EU4=WNoUJW!Nz**|gI(zZgJlz$<3s(MJ2gFPUnc)shyS^A(`Uu{@6>}8 z!_hzD%pnGBde@o${n??@U}F^Rf6_pJ@0nThlenh}{`I{w-8UrjtyjyVi7;0}^I8al1hf zPgfPBtT{(uVyy|W`-zRlDQC-398xx<+#4gh`a5Q=DaX6%<{3LGQk?k=a+m2V!t$8$ z{Ew3(8(}@N(|~r~%U!u_Vsmrcfj_fC+INZgP1hk~(;e2pQwO(???r=HBTJQ*)0Pql*6`0r&FeC@Wz zYn-lzb)**G7(SKy5B@o%Mdc39ZGpx&`6-k6*Zk8efi3|SxxSw+4wFM!4MS8mF7gf> zpF(g)H-ELg{C%0lV^iJG?jiA4O+V-NM`xfXP)(@EWVvB$p6QhUQQ6u0@5P0F2$H>( z;!IyXf9(EN#@2{YYH_4mG-m`WI=-Pg3U0^SrcU6C7B@aEBn;KuftZce_1n6E+sWglx;Lmn6A zJ}k@gdxzCpI>_-5vwxsW9>BvQ{VTinE6W}E6Y36mLEK}LI}VdLQ)SYp@5yrDAd4Px z&(b$T3e;mPcOcF(wWNNFvdHdaJ%Nu0xk$Er*iez`b^7n}x05S}fWWlxLt2v2U*A|5 z|CQCn7)M_bC8hvK%TP6z?KKJ{*~cV*Aq}xq5O`#j>mr$~!)ye4?eWH)R8>H9e{)ex z^vFnFy65%&*;`AGcOU=dAl**?o^wpCtcmBVP`s)8i<53_FI9Lg(#XgpR*YOZy z`-Ie!A4`nKc?gRr85rIhd!5qdaZT=%fvkDrn;icEY7jF3IoBp55!$XB(HH`71RRW9 z)&%8}ktZD_DM8vb#6=9OO%d>0a57C(+XM>w?@3N;+N07+gKix-=SAqE5L;k^TXr=W z=n4nEUKgI=s&kjTyVg@P^~4aM|DJlrO{FsDgS2PQ&7|b=lD_hEkoVPGAEl>LM=1;e zjeoKZSt0UlT4?N~&MQ|XvAvo5gIAWKw;hAzO_zChus%b+ces8jN{B;0nEaOqx}U9) z{zOSG>3a@X2|;oBh%Bj$Rj?PmVyyFdv?}b@tI3*Tgv}{a3OlZdzA8(ji|nmJk{kC` z4(LCM{rJKj9p>1PPM%vSLm6ALsa(h+6Pr8=HpOl-QX3k<4I97OK&R(Hl7n2T$*)30 z6qzh-a+}u^vKfQn5-&?`Wp#j|GqTq>N3c?4|Kb_WJIP5UTF%b7U>hWw^0p6x1iehe zsg?lV6b3rBbk%6GK}66axjxg7bPFu8hD&3JhUUk{L<$lCE%d?t$R9zYj>+giTzah8 zXrgF|6$2Y5f!5cB4ASHRe+$=K`bWkxnx9mx(k*V&l|X%!jHG1tA?pm2wyoh#0Y#+t z(A?dNr%jy~5J#44$X|;QKmYF&DDlcjJ*B82aRdh`A|BJdCQrWRQmpn@%n}Z_(i-ey z-j>sapKf56xLx6kBNCto8Te_&0!Cjn!kQWrT``{f=xxH9=G~3i&y2$4=ekuv2L!bH=vAjUDOVoyUOe15ZSgG_^}8w$~MAH=#O=+U=%Glm8A6xt7G9s8Gc}* zya(df0Uk~=%Q#wm9s@kux+vx=qGiwD!ZXPzzx=cpmyStrDUxkfWB3!he#&%nlY#wi z!d5a(bw4GUZK1u_{VclISk%%1nc&{RH?b*w>|gS(0lp%mWg5pUZXCpExIOQ>qQ2I@ zJl1E(x6dd)dqzvR!EN_CUKo9i(~)}5^b&DU!i4d;b-u_#nWxPTT8QBdo2Nb3+7{qr zsL(rZhdP_y&sZN^MlH3`hgSa75RbgVm**Rw8-pq$XS|sI1W!_a?G(6_#``*7m8aJC zKOTzrd5Q>=gZ3U4(qLk49HvesywDL~-j7#X6BL}ueylkY_>iP8Pf;_~ay!&sZ1L_+vbDJM>pJO2q zZ_yOi{(FGut6w+z@0$`quB|I2g7k=+5Zo#o|u^23&UdjbaL$9fR0Hl{-%x&7h{+bwKn?o*6XAS%DhL&1?OLQ*zFJ*$M zA|zN5Vu;3RBNTy3P2F4VD1;_ph7s`4Bw_YCP%cf8EReGeEYt|=6_&2ajRA7WWeb2` z+|gJ9)qTz`b`Ncg4^9&*2Oy&@kEy4*G*vdVxse#r<4#mx#}!J>zjZ}&$GEwu0>^K6 zGTLZ@yPl7AqQo?fn_5kMI)J{mXf(WCrCalWoP*e@t_tx9>qaHS*vJy7k~F;pAu(0g z)n>FYkZ#Oc_n$Lrc?UhfN5Rad!SYZu6@ho$(*eX{-h@SalyuA87Un=u9Ed@jKzdg} zAwY~%__>a%atB7bJ>;C)2hoaY?8PEu6Q8`)^41r_)h z=bIzIdB#GxT-@nXuu+(d-c)9sFyYH0b@gpXq8l~EdG^b8dJL%aBUcWd7gCyNWK5A! z^8#Mq)z`c%9c&jK?2sMo)EVru9PIWO>c?5`ah=o%dS zF*vj|ID9zx4Ky^uIy5S5a$q3vs-L^mpl@L^vk?1o^NUeOllmkVU!sulbQ9miVV0#2 zPI>L^`=_WEz#K0*DzcTAFf;8_nM*Te4uXc45_5dRs1>w8`6p?Hit(%xp1= zSI@&c=YH|arRF?sK`DOgSL6wCy#>(V{z(vsFBnRdhClN{YINR&o#Q1HwOM2-sBf1e z!=e>@u&6M~jp{41^ev*KwMr3S*sCmDiy0d2BaNhg`63u%MjhSujZTJ~1y0TaxdA(- zW`vS6mQ=BtwF1Z3kE{^sb7}+xgs9{`>x$Jp#g*S*(#F!irJ+-283-eJYrZAGHrVp z)_Mf1!AVf)w&E%TNjT#9L^40j;Tgc)GHj_VPy$<@IY7iAb3yXtpRZm(5XPx4sD+>L z2EcP&jbj{gk&3)lb!OCMhfJKu)DZY63Jq|yjrrt(6vaj`xuYR$5QLam-(*Q64GNb|Nr*(&Jt_u}*_u_RS#b;O9iDaIZe0S2=a}3*1gsD;3J~Nm zHsajLS!rT<_@NA1VmNEiec(5V_g=gjp+cs%gL$PBS z9#CrMgg&?+kH{HbIaRGli@>z-w& z*smptcm8y}<42MgoU{9~LHhrL+zPWU`WTz@>m93&m39d;QW~USH3c^7M~RInR9a#B zrc)b@Le~=2^VyJSP(m~Y<#J1!9#rTVS9#t}v+<4;IQbKRU<{ibaFs%7l_ef#(I`0H z2omElXDy&?jZ-9N34bV@GB*(KW5Z2BmK z*2*Op+ZaP%_s*4*inHJO4!3~wOYWKr6-{n|a$sucYtG@9}SI?K9xkH2|n=MU5*)`fe3<yl7o-YnpA~0{ymTpGQfqbW6DT=u8S#b$>9`#_-o)AoC4tV zpjzv!?C84*C+IuTPT5HUK4`FF!L`a-6k#dd#dGR4x+CI-wNSw|_%dKq2!&#RN;H$A zdyLES)e;`%vaB0KZhQ@5{+8w*RXK``oW_O>L`J3^=Lx_u{`?TuRC2b2uh9rHkc+2= zo|m7Ku-7HE;M!6u=PLMEoVk(wDBmkM^vX>Z{YYA|pP2N!nZxXdeEJwss)jYyzy&+=_E_dxLzXxr9N@ZL0}CmESH32diT;k zRHYn?e~>D$5{GX@_drRFCY-|X?e)lHOOq}YWIWfR`Td)!l||n z>95CEyi_2Mog^{$w!8Iw+YMp_b!jZj=yuo%*E;al$M?)!nj!)ihl@5*L{DJEgV_dP zg_F}ErpVwAu|DV)_1%tGzB&&GMc19`;8#$%q+nnxs$>H-f(9uN6fdcRsK^+oc~67; zLO2C~X#I$Gu_wZ}Xdo6)XvMF4kSQSo)5GW0S8iP{@Q1^8D&ttc1dS+S=Av=z=DdA< zA6Z8|8D~x`*k$=q(SDsYSPnsU8|e@*IYRYf4i!cnqo{KtPjJr@5R9S|g3AJpdn5oF z&>2Vb$BPc77~|@d9y0Q1@IOM*o+Sq_q(?<<)rE{I?7cFiW(#i{ zxLZfSUR&x?N9{bOcyOzwfqXH|mQ9 z1%v|$?LC)x>or3iaEp;PM0S0(|gkHI?QKiS|$M5uplhSy5huA zV_f5M&Z$%J$3b;u_6;JIhZ?T_A9GPplk8qCg7B?l=!kvSjqFaF~{G0qv` zxadU1m3yaFe2CRu`F9+nTz-REDh*gT4wzVUS=yN5Us;%+H$yQ#948HKDlyx;m8S zXq`A}O&b0798LEB4 ztUllTOe93vzm2^SH8nSxxS*`a#_Ff>%Ke>l($`z8+t^T#J(5e|Ie`4zch(Ol@>s zr(l<;tn4rp2Nk=;wNqu}?{&~CG)apUp|1#2R_#pM8)V)es(LOj-TO64!z8LZ1v&f= zzJfFERU^tP{h1VJ8xMvw{&o4+3`%~v`*K(rWij-v>-_xB;BME#pvF$B`zxJbB;~NlRGn zA56;hB$G~UQW8q_?(~st+`itxe+dekuaGVeTYRq1sI)*z5=s!EuyqPsj!SWiT`dfA zI$4dzJH_3|!)GaPyd8Lb1(*6rJzZf=<3C%^n;rgqGovpECPR|w{Hl=|I20?HS$n1Q z&9od+-R~Fu7JK-SAao&0;mX{vkpijh(X~fZMeEMqZl)3nM&kN3f=7T}VN~10Iz;CL zD(=GL%|*OuMdksmSm}svP@r4ZIX7xRPp(I@zPeCoO;{|{s+(preSdBtg#tgdjXmsRh^Y579d-l5N zNsenB9Ngvvl5~uya5YV3)&gHU3qj#>p26G3oYTgVO1knmULwMrvwtrARuA!&_xU1M z^BVZ*QjlU7m>1Z5(Pl7O8+}9DRXHG7U^n^Mp z8W~Lm#b|bUKo=9c_@tzhQyp@pp26a|?Ur~xU9qIOK8a7lu-v3vD%mU<6M%QyhdHlE z2a^cnJV!s9HOg_#254?yzTO_WXH1h-NHQS^UTC>|BLLsettxXBl9X$ zB|c)g`GhFn5dAJUz^Fu%E@C7``A4qG3$bgW;-h@rhxwdxKI)h417ZG_aGvF5{l(GI zS3#C=;UT<%LI2p>&z3@m#NHcQiFC1u#5885UX4teA#Xhk_{a+{v-okw2kHCFv**1` z(ET0*xKI}JWVV@>YmZ$C1&g(3u}% z3od4!jL~y}LzRt%o)Ow~e6%(3X3`4+c{Vy?3H$V=V+#VQVIL8-Wwakj5t8YdZN;jq zO82VOM`LIAqOX_lf2&h07NCIj>h6)>jb|LM6lb{aIDc*8QyFW)>9JqvA7#g#h$j`_ zmP^#TjGUZkLz`AiD%6JueuqhfRxLIo<)f;Y0O3V}zqz(i%fX4eb>>2*A!R-{0K)hD ze*%3FUFmyg^plrY#(*=PfnnvY0-w$|DEmkn|?LYD+c@A`Dv58_iYm!5$pg&O*+Lh(4E<-X-mr)>GCVh2bg#5uv-yzeAc9t$H=8>DCSGm0Oq-dkg*w zGMYa9{Qa#uZ9@0FyP(R+k7D)eGVHm>bK+tP^QT*HAC@KNZUo=wYR4%~>aRTak7uWK z+D_*i{7Gk|!RzBJ_->_1o>~B~)*)R=>VQ0_yWlY#Q2D-5 zPf-0K^VsBygH6BGA3m|?MpfALUA$UvmFt*!3i0r&y425p^4S<5o(MHpE^F1o@BO8ryaqL+c5zBt}y8?BR(30uYLJ3{U~ zeYeL{Lp>9+wkB%`Q@=j&Dd*^Ynppm~X!{CgT=C^sIA7Bz(Pxh{26%tnzIm>@mglgn ztn~5n-g#moDlGS%m)C4%Pql_WN+r^uv#>tXz6*`6IqvghG*?^H)t2gkGC zUDY7prp}9Ujx@89rGTWE;Qu6g4(l5vp)>jsW79oP*5uI?^G_9upLU3{_ImsFaag>- zbN_2|K-^L{3xv5;f{hXCT=Oo>nxQuDRGma!2X15hQ(XV(c#A?T%|W!G^Vh_CZKePp z3IP4+=Yx$9oA7M0dfteC* z?NYADd3|;n8s6e~cFkB$nJCU{clvGKU=OYEq_$WZRz|A(38K*nkgq;kpB!bx?z5Jn z+1DRy5yFNh@bikVr>O1oyj{e&BDlz7iXKHgx%XzY%OA0vYy^5TNuD&$`E&*n2Mynyyl%s?zsiC8AIVoU2X2 zi%}0qW*@EAeC)CHThIG8Gei{PAYr=%|KQ|pX=vhdiLdH}?}wt`AJ?GCBYu`*FpgrF z7b~qt3?wKpl&_dp>WWS^b7hwgZJSFT0U^KHAlq3W6es_^O-s;Z#eSd^t}_cf?1btv~} zD%n?OkJ8Mv$u}Bf38Ue#WwG?4{Y2jDSzP39;*bpQS}*nqJ9_1a-Xi^tqzs-sxdypV zN0#`}uIOC|O~xM6>ysRg#J56r>BjXQBA?mo_UQW&blY(IYEM1CYfxxhHb8+TLSY8DZ>iBS1)AuoYH%&mSSRW^@&WwBdGif??b^9L)LDDh>{sujs?^07RwzxE?_1WP{DC;i zSeg!VNb$mpL#GjRlHBhl%jmBZzqM0xF?qT!wWa?0nG}!c-x+?Gizw~f|KnJ#F3 zc+RS?Pld84$_l7dZj&NlwUrFRxwgcv$}~@ICrUjISdps@(&O~X2^%E+rB=fyg>%K2 zJJLG*0VxeeThvCOk5mygwT1TzhjmU)rMrRfjvu4eTSzXLLqs3Xh%KN(3 z(f7MZlPPXXK)OD{C~+c%&wrEt!DjuVFAUeuiUMfqg9bjb=e@TNg=HgXB>JSDs(jK| zV`O$^v^*<_*{{FZ#&6DW z!{G;g|K*EDz6A&HshGU6aK5J4k9*m$DAhfn=}S}LBgVI9Uy3xpyi;k^GH(jfqH#T` z82r+#KmX;veONtdpq_^F<>!Isl`pW_uOB$`K1K0h#&3wmU(uJj&8zmUcV%lfZa@cU zg~!f5&8Ig1<7uNHzw(Bn%H)`jV zfC2-xjnnO{=k1qgEmJa|7wwf^m(~h3HLrhR7~W(I7Z+6-z{j7xhs<<*8K8L&hqnD; zT1{xN?sx8b->DbL{XUSkex#FR+c^)R6^!UoF{Xc({%+o<1Cg&JA<^w_UzW_V9U+@$+C2(S`=Lcz2zOw!mud zQ^o{1)ayg9G0C2(|3@GDd;|_u^?gI`UtAIRNhb@rVw^T23jYKnA1N$M00o=WR zeZ1U7u1W1eae=)_Fp5cf`xnEVcAm#>6a~jQ$z39=$_F}t7ovmk$ZX(KW(yd1C&b+G6Rjopv7di0cvBeS+M;P zgX`kq>Q`3OHxs(kMViSitY3{6n;yw|!h+N$*j*O8QDKSPOlA>h|}n0;1pkq^ZGe)s&xP z;j*QJco9+9GnK%P&tOWDZ>zTNxo6FUG|w=PW>q8a8pxVST9m6&6GE(Wu#gPF zf5|=IQvc&)9PxwO79Q4RJk$GicJAY(Dl6l!No^`A=p>YBDT_h#-duBm_JH(4k>Hey zr|pin?UihT!6|GoT1|g`#HjX{w9|ZAfe}w$%8c#Yuao)arKm}A#`TL@3lCeQsV>d& z++f`jfAjFax^`(P*jKg1l!D20Nto(`l%C4Pv$jQY#wF1Q+(tXg(MP_2;lS+Pcmzq3 z6~_OQU2r*7ZL!vI@k#08e%oUBgE@OCm}@p4WG8B`Vc{nfJM*Mr?JUc6 zDyMbPzgy8qw;9x*?eF+X#ZPlpQK3c(U?|qtcqVe|Ez13s(-&x`1+WbtyXKVu; zz=5RtaOL_?dtYrE8+>oHpo!0RCmJMLMFMN``>&geRCru9m15&Rr67Z!cV z#4JYl(&eAB@J?+O@!;pog;b;sDtKz1EA}XukUq5}(eINXHZf!%O_> z<1@$R7??g?j%lYiHKK2OOgpgGsh{FJ5qWT3W0a_-4L*roR1YU59B}}12Kd?Ta;2W( zNp;Je%W~MJ6f5u$)~4m*<;8nF`u}v}dK9BTTz8j{uSE=E+~r|~i1)%ZNyl@9+=go={b) z>SJz8{gDadeBGD);QM#RyOKy9Rfn8oo|f22)pBv4n?(p$ArA3Ko7dACA3)*!AL^66 z+6$4tTB2{fw*8K|!*uIizxi946w(Lw+Mcg-4Ve7uaeG4Q+yroX$;VS#<*!?(ym&>J zp8VHT&&M#9bv%(O(Ue7_JZ8i2TcHQ!m&jd`>OK^CNV)`8d_FF;Whc`y^AnyXcrA3B zEU+U_ot-{WIF5NNlv?%tb>Hd?X>+kJC8EPiM%~+$YZU=hIdtJBn0!xm4JGa~DNOGX~lmF16 zolxmJwjYqMm~x@d*GqeFOQ}VVGFjF^@#H()|1B59)=lZ9oP*5t>03#xhakJ7eXK6) zU?_MBXLH9vsc;6h@oZVZ+G(<3Hj;WF#reC(WC1J2j&BVnEg(pB2T)a7&IwOuZE)jJ z*ax}4yd9caVgWDen~(pGYLexS*okNYfo|&Ru=B#_L;wf2vt5W6;F@$Lr~ykk+L!B- zZh7+&3Ay=9ua|P(X}m5-L~-92UN6vyTOzfWGGK&Xe*mX{_A`)QcYjmSxw9xx>UnwU zTf>Cux{tZbrM#0sf7zRqr+K|F$(rF7IH_gZiEZzSh>Z^Hw73r5@1WB^hkseWhTO%5 zad~CkU+S63wY>yH?%Al5BH2gvHzIS#n3SKvoj}UZ{tTI64k5E9%3&9^b3}7*&5H`aguJM$JyAXlvx3 zZ~7X~{!VzeK0BJlYeb!_7Pm&7?e=P*E{;}PQ6v(z3mI4uLBT$Prq*$xU~5EB$&Ua` zI2VwJq9*OV5e!F{3zb}>CPTG0$!B1ZUxg^sl7F86`(N$90)uRZHdsgy-7n8UvM}5MeM`L3VfG9@7oQc>xtDQm9}e zKIM2$02-FSs!Wzg1u1yJ=F_h60zwNx&VxwO7)qb8B+!d?T2MF{+ckJXltYEEdKfv= zAX%@hmd^`H8X=}jO)7wphkq>F&qsO$Hn4jH-`e}n05gXb4ujqPY_r58zlXu9J|Zsw zkyC-jFk}QlCUr3n(k8b zy~<@opftvzMHr$=N@#;?*v4t|>oAZ~!Av|ZR8D*O;c!mSO(eQGDzGYxH0O5qAqDluC@0w;#g+8c_@&Tyh{#1_DH0!}Xz=WViIheyfP|t8;CUQ7cw1N#0Dm z^QHhQ_5LXhGBLa<^z>c9w$8fZDY5r}jXeIz;F^Z&hH*k>t-v+ibwjKE(Z#QGaGP^# zIa|Z;2}?gpwrAGOS`{$Bac#ClLaDI<@<%K@gx6Zm_inhIYRX-YxY)+)4$5dU2qKWT zT6@##XPMQm2>@qfLmEFbqzT3Sl#EzwVtus2KrhTDgo8) zA`k~MfCLjfu86$Y6xdw5p-RJ}&}j-P0q=KO#^+;%WnHou=;M@s2r~UF)8^IWLK+Tu z8+0>+nD@`|8eWE0VYCI|=Ly%Z(R474M#N{sX+9$22BtAYFLmLEdl^$*5W1Z}-FoT*9eMs6klM}T_{!E{L? zr-cY~MN2hpY1Gp?!oM@-TZI`Ml)X@EW-p-7a+=aV&1;g(VWQ}X{2D*doBKP!1 zCr{qIqI=GO|MVO~(iDmQp?) z{r&#ErgGvMAb}NFZazFx4O4o2PWcUd0xH(#Q1b-Al`6C{TFu{$W185j7h0X%?C+&8J^3vrw6;(!z}K2bxU(&^zUmqM0|D*n@mD`@ zc1fBAraT3R@=reRS`R;JnEthJui;VsuYib&jIjOT!8d=KA3j^0o+VL*wSm zcu~XxUvVG#t;_f{0gn~xxiBh;M-Nk3K#LS7;e*sc^lwyD7rCHc$tB3uX%!QP#PQAw zie^xiN~JZq9LV_7C};^5wC*q+F?f3;6hzS)h~tFZjPY*;NgJYr z_@b%h^!Vc)os94t$QV-srOh4v=~R)MmncOFF+^wnyK<3F1MqA-xl?9)I$? zU<&E$)R@_$=Hu>SQ+=pN{-gY$N}%h2MU!$V;`d4X1TRC1Lf`hE;n4I|QY9UwCU%D= zDEc-;n4ubfvf-(oAmyNWJUlVK9bIvZ@&SZ=8nymZIY(}=;LZfnqS}UXV;;r{gJ5P_ ztkrFi3Fnt^c7;7vCvu0H)|z^*#FYoY zi~>`F1NJC)ZXhs$8nPt_dM)sP78uCIIY6%`60$;4sgt+}rz*79#c0mY@M2?+qLVrS3P8{2d*Mk`}|>HxF%nA~dOJT)rr)+t&H7}3QjYP~{JSr39;C1Ul2 zX_z*2P7<>bMs37?;r7oT9&h1;Svj0^ViJzi)YmZTNNl`VFJ>>dK_%{40h81VAs90^ zp}z-ZMse#LFHWGKibP!Dq^4_EbZQK_=Kq!(YaqIx8e@CJA)7L^zc8)GnwprVg2bjo zxFX>S{FHc3aeobGDh9cKOdVX(heAZ#{&7}3JGkCA0#68I4G?XItc3W=)B-)~{$xArap#*76CbB!pf6S7{N`aKg14PY`fMSO^ zSBmdN>1Z1yt{GqhsR49vU|L-ssA@*Me~Jr(vKbI2P;k%X9iCCA zEkW*+={KD>f3WOMYsAIBcy7H{k%u%|^x42|j#H()aNl0zFM|py5-o82m_QJ_5YJZ9Hg$HCjX5@UQsEOCjt+NFc^?&vHSV!S%>HiPEyYRk%W);i>iPCmWS)%OmU;_}Fv2&z$*`EWr&C z9XG>cwr2>uG2LRNDW*5Jp42YYYJ?-l(p>K1(MrO{+Lyv{f*xQs%Wu8|qhEz%IX-^f zJjaLcW#Hdk-M0uHEdn)}i$S!{@j+-RB@xIiNegVBD#o6iXO0lAL*)bcv7}0fmHi%F z1F#)aYg|y@Nhb)%5jeUnqW=@oeO7?6!D4K14>C=Fxo?hW3#dtqpsHf>pt&${gzWg&)PCCB zrv#GO2t{Xjb~FZ630kEX#zH{XRR+=v1>S7s6k&nbT2`jVp=M>{Gjf0x4HU7E!`5zLjww5NAkxOu zzg_L$$;BZnvB(l^p3K*P{gOwO*&&K!M=}&*(ilGpLWdPrBlUM( zA`|l*ngyKB=#_XdT5y zw>0gK*X^K{_5kNQ*0AUm2DMi<)NKJm4XIeHIM^jUYfUbj1%cuHIookT%~_I;Id*2U z1Rd+f=}ChduG97>x^4lICsp=h2u!vJ#O0Refg}OZXZ4$+yjx9x4*gF5F3-gfWiuZ^ zu;*vqHuXox+mmPwTcF#Y^mA#k4a>Zg3DQ=^2E>e)B^|WadF2iGM#-J+i<{V|X_Ql5m zQXS=`=L(J1)EoNM<8^Z35oc=x&N^@*zC_u~=@u>b>Rg=nku5pfo{*7Gvh;u0Tb#=% zA8f12vh6E6)#?5;2v`qNCx8Sb;UJ?uoVLw8=2(>^^T;*9jGE%3oVGN9R=qE`)aAql z=Y+r`Gh%s)+&+zdJg&ka5lJp9t~HK7Q3(`g!i4@$^hWg2Mu9(5&{ls9*8gg{Vfrxt zSRtGVw}CwuvGVasH{W;NKCiFtT&xZH!M(VLB;%R$wojsW=DT)BZR1LQ=`3dJUxU2J z#=9uSMegele#*>|&q6^k!j&0S!UASUa37+S%E=j<8_(RzN;vArH)=$42l4b%1w<|tn0jyBMiyk5$aSh`x?>$4``%v@d4lE z1P7ggaQu)}T0N__Efkqls#gwT4}Esuo^;a49|6Uqa(zA7c6=T1txMDqf#usGjqf+8 zo~Yg!?2usK5zMaE$rjpl-;7av$v4A|{}$r+;9>_AmL2}@9%g1Kj)m}MM-ihlz%a0b ze*BQ}OKDwEOAU^AKE8XgvU~Y&mqfKk#<52(x<{d~N2$LDvfjgV+FgI|6s%_SM}4>C zDr8^cn`)HjtxBMqRp#&&6#LaleKfv*8CV`Fx8}C0z>*gFB6bEE!t`XXq#};g(ryrFtB=HL*z%hgX^MpA)bWQQwFjb@{??|uhdceBe{)>=4A6*ZIs%XOCHlXwp zRGE?EU6wEcER;$fJ4klV*WB~*a4}WngGp1PB)N$L6XEfXSLjss2<3mdvmeLvk-qgJ(7wMtGHF?4e=QHu zmd!arefKrr?ePF%@WT*$zUbob`+u%(&v_ivB>$D?Be@ELeLjVJSO#6d1+{SeS;&f1 z`_!aIejGaMXHE6xKde0`$<3f3#;w5DfE1xTtUEywi|L5nr^&hii1ct^-<{;T6%je1!`Hk1iF)nN4@i)(av0{A8YB#cO`Kf$_bldc_HG%875rp> z=z`^5#J8xNNScVq!3@{K_n!!7Ynu6b93)xj-|!2ttJj|F1{(y{n=jtX_iy<@@R5(@|uw1(e^S&Wl`77%l8Rm7ZC`eGAh~WVj%E3YARgg3-6L zPH&;WbWEaGFYA&p_yIDnB1ytyXSMq|{VTME0bp58cx5(K-Rk}60=*19gGlB|0hvcz zh|IIzMv8jTCQ@phf3VKXyK3hq*>z+)$w93awJlFs3hP>*a@tKpiU?_{)YyIbivx0MyrnG zvm9wC2xh5UR=-aEcHb+j14|>(%bI-*+C<>k zPf?4Zuk41VveeHXKQ9%cy?n`?Ua+Qku18h>Iu0i1=+aH-#pYDZ)^(nX&iXCBhqHg* z{c~-r&0=F~#X&2NMPtlwHeoR!I%YhDJ(TUH64{t8J^*V&Ul;mS^Y6a~o(R}} z05(ScXlh!5&R%Xr4L3ej6v2lSG}WqQgV@F}9_^w+)Qc=)v|hQ(-_TA+tPVS*uP&F^ z(b6d|Nb$0}u6WVv;X!mpOsgSe>e*^qA^B2L5bqOOOL;C$@L9uB2qS!5h>+*~*o;S; zL=1WOuR6s^GuKJvTjD0`Fj93Tu6Rm@)?ddh3xYjP)D*+2B;2KzU*@79Ec=jIX;*C* z_$TmwjwNKSy_L&nCLc@{Uwyyies`gI*QF%+OlPBpK7O~%=!Ub3Lj@J%a;Jv6XlbSn zQ@#Oc9-gj@YyO!?$5uv(%lJ3vL&`LcXU?%>= zLsf8CFg+`grl8YaKt$NN6=z3&L#6DZ#6At)8rOQ$TLD}-aUOm7dLm?GqJk+4VW;_l zM{W#9?OlzJgkU)zXem)YjK8-PxICs=z(d^B=CGmRgpfmzZb?IbJx!p{f_JXr_Vzw( z_Or1Nn?6G5A^#VZ(YGrtxUo0aQ_|IpwruP>?V!KqCH5XJc2RLRzKn8Kn)k=k4fh&)`>uT` zzp)!P5}fDw!avGG=w91y-G4298*fjpRsZ}N*(A>*#q-jo-6ZMNFCqVj_j@QNdIeH% zRQA`Y*Ws7bVpRWb(wb&b7oahi2Ex})%O`jKm3!p{3XyOL2h}#BvCVRv*yNOx1&-`MtH;(udqy}0J-uqSL88|3uFWWlg2O(|0 zYWAP{-KK;y1OsW{$tbhr7!}TS&H7D&3B~o98>ZT~gLUE+U1L&T;L9Xjgv8t!R)wVH z;&s+MNc}56tInO`G39uR@4MGtzCLrQddWU^JgG4U5Wi~f!z{*B`vUen%HWbILh>UW zH-4&Sob57bEZfPkKkY#FZoCFR<4)9QO0KGEJzDpxYFnwr` zRbfWAD)9$4{NuQJJY8-ZxT5M>8&zb~yQi_f3e}q2U6ojJK{0N-pG&7Bv5oJEM1@uY zNW!ch`(`D6Sj=zUO5|lZznNs^#Ak`dyE`X|jRRcmCUqNgv?J1EkBTd8k9tqcU-Q~; z?hTl!s*|VTQFi+uu2I8%%=XvgfD9>=>s8guGCS8q3W&@mB7>*9Cb&k#bc|LLtYr8z z^*l?eopF(R&#j3rO%~_qYOeRKWkt4HshfQ$1z5pH3nbu|iub=DX#Dr$*m&0SBc-#XBVH?wqt)H#sX=QH^VsUs z5bC+6co3s=Rhk{k5Ac%kkaJ!XrQZ>MA1o7<38{bmduWtEi;ehkhDC%aUBQfSkq$o> zA&LGtdp=gu%Bog3VXG!Q5`9~nBn$*^7C*ar0!8%5lb<}*4cccJlp{~ZUcqCrj}D;_ zDxGXEfhfiC-W@8rXT|6^?feju1p(=GwQcEb#5Al}BVWnN?8tA1$K8lh+jDvQMbwLU z$Ena@)&RJ0w#vO9vQm~ z=FVKqP0E9ZY=Va3mF|Gk>W)cmJLb+FNPkD&H<|GRN)>C6H9SPdEB z-cY`aLhD09L!6i@Oi24@=QfOC6E}K~b^PtSBZ%uOMI4QHF!a}Dt7l{K>70an_PW}W z!z?hzt*iKnze!ISdQ%P?bB_;Xlr!J%iA@9jT=Zh5vhy)UfhZfkcgYU)B{L{@m# zG%>-ztw#P_4wD;7;x;1$2tRY4ZKmTc+9)|+x>U$(RL>F!8ye*o4T!I$zVqM z$VkV}-Zodg8DFHla9vOH4h-3~mL&1g)tNWLsG;SN>jT~ImV*I+E;Vz^i_sLu59ZP% zhrG|Z_L*7lmN3w95nNlXWb<4tY__-UPF-)fgyqyy>E->R2DnEK+V3Rp^Ds7yZ~MDu zulS2aXCS<}d~rjh+#I=Z)d8j~;5?9Nc^C%arcO);!VU4E6a24BSa`v6Zg1YhU75iZ zkPSl_#WwbmoIq}A*8Rv&d)EctnCwq&AV4-J!NmNEh0%`NGDBEWxe ztPka2VHInO=M~cj2KJ7By^>tQ>}Gr9l|4xES%6ujpcgnACz)TjO7qYf)2i;R#qsoY z_M8&d-;X~rPwB<0`xTAUKxy(T6*uzd;)^3sB4s@b-GsS)s8O_9{Ibq=WaEkb2aTj! zy=<7q8~-^>9VIe$kvy?^O~u<7_PFmULD4QDw0;UBON-m~Nk`TQH6LW#)LU zQBH82K3@3!ocjkwQEvWY5&PV41=CdQ+`|>NnYDk=O9^>)t>pG3^VpkrSq<+!R#ls) zm8o6#bV5G8_t0%Ne-r<46YV5I%khNiGM%5;PUzr|MQf^&(hNQGaFtCsM~vFwY^v6+ z1kCoN&&NYej*HB94%=7z#whqmC-2m2bd&U2v#oHQ-B3IawxH*z_?}ktkmti$__p%+ zvr|;kjqde3@T~5t@9eWouH3(I2J;>xe)*X_KNHUmKcbd>5|mbMkd*@LJM(=@{UlsG z%!RF*C;iVe(pabKk#e1`e?#%h8x4jEUn`uO;%qN^^0EvEkt@H3HNFvYnvay@8A~CQ zwF$)FCM8r95XPAp6+i%A(Od!B+!}g*y zEN?sX#NZxY=CQ0HTi*Z!U3fTb@CimF6ii|xD?to$81|`L`Q2GH*|RG zUE-U83nGW8s>dN#BsNJ{z^Zk)rukE6g-EY;G#k_%L1J^5jpS}&`Y6o&NBEihAPdiq z#T%`tgEDoC#}Dr*JPxxVK_;Ku{|(2>cvGk}jMY%m=Q8yxz3QG#Zoj;J4ECQF3rFW? zS~V_u6&m{Zhm&%aq6*5xqC`m0ZJ*RGL+8wx&ja41S@oj+3+G&_uyCxtwWr$S=nHFJ zx#*ydme8od=NB>*Q_Y#~fg{^&;yx?ddZxvd21Hq*4fceA4Kt;Q*;pP$A)f)xz8(Mh z!T1Hk2N|>2KI??F!N>Mi5kxIfurOTcQ^LU@%Z><;kZETcn0S^6JlaF?1|anQCeqsi z2aeKob#Uk$`LYa|W|_?F0i08Det`&_Y!b5v>Npg2h=(I8lK4FUTE%3cECj7qqL66v z-<^opH^|~1iHCRq%bCL8nxH_Q03i?ya8gTgiD$Vr{pA+}Wgpwwhovf+)o z8NSLHk8Cpnf-(ZLGJ;z(p3Y@FKgtN<%nVb`B-&<124#}6GGkgZ>}mt65H$-LD}V5*_Ex?)pOZ3N7=QUIrYjpjkY<> zK{+j1Ic=>u9dkKvk8(OWbGwyudu?<3gL19A;4bJSKTFB^9hOlUq;Ht|My*)%k(K!* zs>Vq{8)ObG_W=7aeWYe(9^r@(a|B)Jlapk=Pc#^FAKmBm zJNuNt{BX!tZb{S zp0BJquB_#%s#mFMyjj&8T-B0Y)z((kF<Recor(c0 zffC;=5aS4vo{>k;8?1r>xnckeB^^oz!D$*y?mgn5fb|z?EWK&{wu(KoXpB!##vA9J z--i3!^mOuok$0W^Er4|k1x$bh$>}KZI@1%B`bN{8x(hZTAYM8Mc=Cl&3`mj;VKr;^ z7;2)1G}+xM%#op`-v(=W(`w)W-4Qybtzt#*x>BIh@u>EGY*YBH7T;SOdM7A1GQ=jN zA=s?46hj|h)!;rvL&ZaY6I48oh5v;6E$G65ak`xupzQ4(H{WVwOYejMuv;i6vx_T^ ztuFn=_8aX6bMQPIU`wIv;-+uE2fq{3aZ!j(V}oauJ2j?O=ni!YbsGm*bw69+P7T_E zozpW9Fo5;MTiQA}#DR%&`ukKT-wkw@`Pz z>H8gv%auF9p`FYoz`et4`w)7@r=8a1E?V(S5SwAQ&AsH#YF{psY;hw^*gvs zJ9V9_JS17avcO3UDBog`Oe&z_P^Xl_(d*6U$ZiY<{+vwzJcJ(nlwRr-C1uwo;L&1m z9XKU3nw%CneIBSj@Q*)Neb+&Kyi(bQkyA%}D^v{orQQ4?A>oY))W1&DEjzb(9PoUC z4sQZvs{waAtC>XE7ABZ>@$dylE^!&;ff2yz!L?BvyMbe>Lh!YF17WpLZ^QsEsOy)= zu;3EIZtV*g`bGCsAkE8R630NL6s(E>&+&kVH~pmAnD`LS2Jk{&8(vNsOQjSXw~if0 z17Fm}X+s%W@$gq63=|xy!Gv=n1X!J=dt$~uf2D80T4|F8lZ+TD_{o)H4EXwXte8F8 zpfJsMqB?TfZh8ZG7$z!)snrZo9+D4Ef@OV%MwqY_dA)yWt(5$^;*6&o%{j%so$phJ zjE?Iq-|k?SnH;Z%dQ3p?*4ENdu@~{^$^b;(=rT%bXEOPePxIw_s84$?_FMr%XK`~R zmWHWG4M6@waT&v(;b4psW6v->H@0)<$;>>aEXoU-Xn2l0KDj=7+SI}5{%>Nc^P}C<@fD!~Yts)}UE-~nPkv0y zB(fL93B?)B^>pmh!N3&V(!@1WfJ}xxqd>vv4>szLpsy+PA4wZRHEtH z{y~ft+a6 zQ}~%G5HrS7&O5aJ4?VAXzO6)NU3F7pFsiO+yPWE!hDw|5*Acl51B0lVG@W?h>{mmG8?UxQ;RJA8KN80TPOA$4{!- zmHgw4zG%)gPqP9}uqZf2$^D4lG;7czLnCD%IyC2Yqeb*H;OoM|UnbloWcPPo=4wgS z=H<^4k7qr46SZxukg{L)~SlnJ%z+MGDn|}VMzF^aZq|^B>b^RU8 zhCvi_5ktj*h)dvyUs@1v7x6yGJ~HDg#}6;?7b=}rm1YrQW*4+!<$$1!|Jg2ffMb+Gn5(zcyWf}yUKzzon12LO8Eg6cci6;{49ODL8Z)f ze94mD0!!g&U;hRh0ucZ4|1_62GFrh@{N}g@;CqH5-)6BL&zipqB#g66kiRM3&Jqi$ zqi%uZw!nP}IefKX@rlhH4dC@f);Cg2n)$yV=D#gv7+z`spf4GQ80LFh^Rb;kyGkOA0JB-6U02=2;*6#DKp=XRc3l;#$Y>5qSx1dQ| z3`zKeP#T!ogVa}}C7(`FsU}1DCY8eH&i$k?hBxz(e=HC%${n5IH z;D|76)9)b35rL5laHmJ$y+5;IKzqyPhAhclu2OC2h4WAXL?g6KgN)(T{?Xop^8` zv`1F!qS*Zt6q*0So4i+%dDg+*W6ZBAxckz?HShn+7bw|!_$Z!`LuO{(y_TqBeEzHE zOSOOg@Xr_c$6V8i-P2@#E4=Me6hUyiM46b*(A&9w=(1JOa{P0k;JKZ%XsPSg6?a~X zr^*`zbOpD@IusCd~h!#TyBuUeF#2T4@B+Odl+uD04Ohl)p>o~!` zQsbmQX=jByC2Tb@if31Ld1Pz5I-9ue5ruuEmcmXQ%S$wUoI84!WWG+?Q^I~x^s+Qp zi2A7|gw-8A%DnqpeO$cXe|T>mYxp^QsQ?q_wjM2f_}^x7m}~t}&AnOn`TN!Aso;$^ z9sW>S*1ZSitk*e{Cv^VEW-t!lPM$O2jPgC2U2AFhe!NX8F?8R&z4H4|IV;%w*~*6$ zOY5fjihHC7Ej!7zYiowowPY*j7tbh>F`=#YAAZFqQFa6V_>aS0t(~gIz&(RFpNGLk zfB6>fmd@tcZaUQ$1MIJs^W8P&+E}<0w_=~G|IrqGtXRCdPRA_5{7wOmq3n&MJ zEOpb41Am%QfeibPlX*k44+tM%+^Ua~z&BP+sG%9kvzZ$1%%WS`Owvm9oM+py=&M8F z5YDJS2TSSKfCJ9LyQ?`l(%ZaJQo!-;kf|viEI$s ziMk7z7l9jW^rULsee5AF9DPdqvgwm?cXeI3W?J+WnkVBQ5?y${DH;5KihZvJOr;b+ z?uh6q8(&YKN-a}c3F{TU{MA1^I(IMaa`qNo7=VRb7O@bl-9mk=bLL9I5MMaX0q$y$ z3?;2j&1BIGHvA$V642%6!VRxi`zkU~ojNs1A61c&yCBt#n+G_5Uo%r zIqJ-%v8R;Lt7eD{AlR|Wfh4-CTj#<b`~!UHO`3A#eU|!IX&ePYrIFTk zK0(0)7a`Kmr0ruS;Y5irrgrnP$G2jEPxLmph1!=-3%BQ9Cpwpuah@1 zYH|q-s?*d9P@abwnD#q03VyX?1RI(+hUr(bV5caL*#O0YQdw>7i50?S{2*+O#tQCC zL+dyvq*c5TjGl6Vt^eUO2xzcluVeI3IvPU2v|QlYq4e)r2AQ|K^B-z2O0Hy%5dJ|y z940hq;@x~CndWX(wR;Ni=tAFSFVSZ-k_gMjNNO16uq`lIeHfFv_4cLCDz{tfZO%bv zIE{|QuVQ1B-+YBaum`-|k;64glc;lY?kwq^0@dZy{bo6f@l|6id_<>Oh?J~bK3EeO zjBeTY(=m}ua(y+2h0)*}3;1=c16;Tu`%&j)htNCZbvejUz&xc67N(SqWnho4&szYf zv=W$w>ptQ-UzTJXa#wi%Q0TQ+y9P6VKIw(P|C)k<5I5=nK0~7z)N@1Okt8r0Vy>ri z^=+cZVmKN;so%}mO0wK}BG?=`*srRw6ZYx>ELw>jy8_d&d!aFJS@y+S ztzYx)n?GoA%a8E6N8^eQe#gt5@L>os{9n-Wj~fL!%N$82kh1c7d*C0@Q^WSx2L{Te z`M*vWR*v!R{2=xQeq#C&Tm!v$C|`9XG|w?8B2^cc<1f$J>OI6Y7#i38&m|2Jx_hx5 zy?@mv_bVl`zfA7-x8%z-;jc` zL-iP=Xz6y|9J*NRkqFpB_S4zg;`d}cLG09My2w0^9#`8#%HT-l%u1su zHO34}Wwu(E@CB|bn=KcXmeXCOxmibB8}7DHzE$oG+3v06@yXwNYRJ6#V<4zK{?@VY z=dW!M4mtZq>D2};WdddQ^*dVbeB}36&3`7pB=d^;;OnXQf`|KJNEPEAuS)sjbiQZ< zs$%|)rje?R{!$0wC-W*{9~wQZ^Kq{{)*pKpxOe9C`Gkh;bqB;{C6H7^DUWucGFek+W zbLA_Vss~DBQT&-p3|SXxYb~lKbc9N-z$lZ&sVzJ4sjp^thf{6ZuE(d|^gJ?^{|d7( z)jBX+iBsJ}@1kVNYO@l=5Ag6y=d)(W-PFUwqN`%y?Wr_NE>8inbZP2N%%vKyofz?S z-Jx=EGkwlG#bo}U!$l;a>GhPX`MDn@N&2=7sl{h2u_a~NK|d?%Gk^Z9tU*#$fWk85 z&EbmvQ-Ki;D*pO}Z1ev%N;P|5_Y%(~IaiC&^4_b)Hzfd)#!;i%Re(%xuJ3R* zGHE(d^WUk?gDd^LKNyq(B3mDnjCOQCP@;ZbG49wp?THgV=w}>%hNpExM`1CB9Rp0C1lO3(aU%YYNWonJw^wIfxrZXnH7Py-@0#;s$ z!%;^i$g-DN1QFw%UMaiy)xDjYml({8cks%uBt}KMt#&0fDkj3sT&?>2&W}${Pp&B; zzPfCy-#Y2`@Biz~t01@MHi{c?&KXvC!*Z8LVUX5#w6>3P$AUUEZle|_YMu119BzXnj^3;8ciaF* zAwl8)@bip~>RLF2>6P_&3^$H7*RH)ARV^)hw=Y431zXK85mOTXMXr5lI|KiCuSo^E z?9U+1E#UJn+c9Zihq(n$C-y!R?6im%HDV`|#fOBHtf|9ZlMcwV2~U1ArPO(#x;E6`*Ek2<98? zy|iP@cP*}Hr$mJOY->1%+OoXE->vn8wIm$A-LER9_$I@r2BT>1 zC#)#mqb2eZ;RD}i8eu&38!ifAL0M`hbqPpGCl2)31BveJB3HMQ65>ket1|nHnPsuB zasBuC2eiU0P;rcf{Twe}$KQ=J!_0X0t+C6#IQZvcvZ?b`^ZNH#+buoW!C2Vu9rIrM zgB|R#nE{rwBIg-NAa;OtP$uID%MiwY-V1$j)j5ZRixn|3 zjInZ!P4kwpmmfJqU4yNrqY4d>;h)~ENY>>a>N?YWE2Jjq4GRR7Ns#1nj3!)>g4xhZ zgGj2(SlDP1_B)JTmMaV%YSAdxc{m_uZA4B(_r}*fUCHj>W6-GUm(t(-x-*UKeg1u= zfZ9=lKNP(YIei(sJSeKZTK6HJD-|NbiB zvyjIYQuIW~Xhb?GjMZW0<8a&ovObJ8vW^ud?&ZuEG58AGdBqSNt)%PpmX*KTE?@27 zCpm{puxxo<^jgsIjj#!way`9Gr&zApVj;mAAV@@O9y=38^uuJB8sci`l18pNr#YzK zom_@px2+$?_HY~S5QEy&klTF!ETEd-&?eug`zg&WGe%ByF%#k6FV}&i-L6t6|7)0D z;U0+p?DOt2Ip9$m=GNf=7l*8Un7cg3dsw8{nfW+>=Vyw=;Gy-=kK$x6csSR0xtqEYT`@Q6)0+&d?`zu)zlVb@ zF6}7AnxUW0x=FQ^$FWtK`@19zKftz8VFfTD99c5N2{U6ksATE$#mDMOADy!FW6k02 zVtI%`iyBkh$-vb7@_0@2Kd8y>&-4QELqpmx2$UZglp1`g z`%+CJ>dB~Tf$w{WOea2bg4r$9vbbb%z3_FFd)U(lxy=)tF_t_Yo*eO9&7C{2plDsU zuQph}ONOBalK0JT^kp&x2!&-t|3cadU_;np%q6!hRbbiJluV*Nck(*%>FcLrH|A}^ z)qeyd|IE>QRN#j{yOBl%<|T|?XuZBa8s>6^6QcmLM2ALu`?9kXws`eM9H7JkuP#8$ zzZnyKmRSVGW-qTC%7SHntXgJ^DN~;t-j1+cNxgB0(tgQ3>Yy5N->RsH?M|<@R1D0U zfmn>RefXFPLIi)1m=&SNPCd2seY*VLSI-1TO{l~#LgJhl*xK!lWs6_zna&z@7N^zw z{C89%e}w32P2dkx3D%s%6=Am%QBd&1^N!mq>UdrG%V+GFk754OJ)TxQZ|9<~PGjCL zR`cLOeH_AT*zan#Yk4JUZ*vh>_`U{v?t7$B&;EXZ_$bTNz1{o8j`esWz9jrmkufhR?RAE5hpIg?_ZIDHd3DNtYFC0FzYt#S*DEQ#pF% zHKbsB-TSkqFdy3@xNExwl0enzP(2!9ak%6A#}1_m`9M^1IQBp4S9$d+&aqKvpRTJ0 zPu6-eFRnY;6hdH{w1*fz>JtXAkDX(@MH)IWZFSFI)ww;SCk)q_9hC*w3Ik_%pLIDt zYc*gz@4i;z@7%Kh;AH?N{dtib5V;7a&@diua|K-vAMSGaV-T7EQlNSxA?AKmZ^HO~ zFz+CNu8V+D0QgD9g06taYhcDVOhyN&JwSzei(q#`qKSrW=Hjvn2t`u3zf8n;3L>=> z@!kl0`{6PmgoOvOjO#50OogefK|L)U#Q21AgC9J{*Vpe6`f=)Mdz(sIf1VW#PL z8tLFJ;r&G91FAcqF&hpse2xSm(rx6RHgaOcu+%No7K@wzWYlX~+r%YbbA1x;6cVY= z7?Vkw5eDXT8UMpXy|k9(wPO5k#yCug)q$clUF2wG&1*+e5Iea?pnWkk&(Lq2Oo@$qt=@3jf;?u3)Sjvo-F7@MMuGt39aF9jH zQ(+u&;^ryV(Y~}vPLl>e-~_!>1-HRE^1sgXnZfkz7N#4s@#AKGvK7&iAh^^a#^Zc8 zTmd{eNbYK38aB)D<&=8_k5Dv^P>4<;WC8Dcm`?!1L?gDl7V&ynX}f`3!O;R7wpoAa zvQ?JS>66lYgR*bKIUJ8r1)|yUM6FwowEnJUi(xY&;3?M+xl$Le;tX^Aw}T1{v`W`t zykV)~9@&`{+<8ivgdaJm?I5(EE?^P-z}vXp9Ux}q1|D(bPed~X#*NPbdQ^zvFl}CK ztAB!7UfDE})+x8FE2o+>Uoq67Fat!y1Pnt0rifn!=ski);DGOxG>J*1Xk+}ju?WJWaIA24b{U94@_U6! zlK%Zgo8J)oz}1D3m*)!K)%MC?*kN?gzva(Ri|7b$-!u3}|40 zD-;-~F$@l(n-m1w+yJgU((O|L%KWN(@rV(MP>GI;|5A91jpV23RR6g$fAhkzte23b zlt4^nvM>8u8*pCy>&2*>6l-4%*YLc~WLC;@42y_SPCO1~uf|Z$=2b^)Lwc64>a&R^ zT#~75V~{pBN?!%OZZW;|1X4bjO@?06dr&!k^AZr^bBTN2x8l4fN)C z?RzyZX}x7)RUDmFt~6PQb2zV*5f!Q`_CoCl#~9K2In)m||$!XBT?&6Kz}7l%{M-Nd-Pm)U&Aq!b&gq_2EerbWqi6 zagd_-ihV{?p!G zdL$QN`|il|U4%#7elz?(CvuCbN75Bwhf&#xO(?VK4XqY}CMd{pzVqlw(RgRL`wqvs z-Kkv^n8zU>KjJ!{f$?_KmA8}OOL|L;4Wo?OfgEz7(G3zj5%gW*=#IPp2^bG=0Ec7* zm5ew5;3GzSf4928pk8Vfpy(Cq_^2Bk%GBj9^j}aNM5aqh0?5b)b|15dRq|-&_U+dL z+PN=piz7dq0UhBz;88QcM`Jvs47G%m*_8bPbjf?MsrJ4bPC{;xky^QZnreU}E$Z*$ zfKGMI0i`GT3b1qn%+?~-s4mJM27up`jt6Re3^K}=pMee?`00Pn-*!0ul9A6g2adFX zqp1M`&me8#;C`*nyVzzXbEaq$#DmQ{KBuzxKg))GQb(B&A?w;7|A)=r9J-|jgzyZ% zFwro(gQ|+_goiTyYSWfd9{J2NCcTSX!;iUG0MjmmQEJVKxw7TB&d6H>rJsigh~{3C z(H98C=}wDH0Yn$G(A0<5$kN_TR&5FFkgEIG%&Gc}fbFvp*qtpn?dHhp=?Ebg`IQFQ zdCIiqJ@7=Wcf60hI5SiS;e zo}v!=hW4E&=*I@$eV+J=o1p_CnV67cvlHuf3X$gqtdLpKztsLtae|JtD@0j0sux}; zR!+}Bp9N*PF{#J7@>H^P`9D-ZE>gn2rYwHE;@SM<73n*EGtW6E z)27AxKbqs$02hAalj@NG^gMM7+FaZ2{nBjg)~AHRiOsNqlKb;u^a34r3amBSWG~&w zl-=@7?E>{ptK%m?&Xmn`W|9eH{7!vB=1J$~3CizTRoT*fx7ybl)A8niO%amWt=;0S z&WOF_4;cn?i^=MDE`4TlTBHpf{l!?vJ*}lO+VjXhc>39V<-ZA}%rh31jHNUhb`Rew3qY1QKr|5oOSMu2;g0L`Tb&bx(TTqcfa8-H_2-4%0P^QcS;4EO z$=|e-ibqo8N2}EU*qb-M@)Fb&<_TUiVv~LLUoy7IOoh3~tE$T7cxS#lD!$W=!O}whwgRc*KUBKh3tDceTI|P#;ro$ImSqWXZ3ku^QlPRBP*L zYaZ)&@EyRylub1iCKw<7eH<9g|BZ5L1&i(Rb0h^|5XD@-k&z0|x-&9=@H52FEcZWqzvyk`|dh_4Rn%k_XKS(XO7@bIunj=r)$|U0|HjvK*QsU8J;gW%^r#77NIh^sS>Jg$Y;@^>iob{K zdO__RbqU*BRt83KtA2kfkjOv%G#_mj>fxux4-0yatbjtQuV&?<=okdZ*A*+{$8N)gjrpGKR5?<`Q%GQMK_y8m&!-CPFXl zOy}_Zmv`QW%v^roM3;19*d%ZFW}2_)C-AEOkCIE@pKaw|O4{UXuO%JTNymMnNGA$* z$4EQVef4U-`m-|#7whWV=s7F)e~(#yAFx36N^XTiBJo2>m4n(O$_*#o>jsMB}2~A__qn!vI z+nrTH($DLujTP7CV{*Ltd$TxKz7b!D6zJ#OEGf01n6%bp{wxr^QA+jvbk)-MK+ml5 z8I>OC`>{HyR%AR(Pwmk6`+3*)1NHgYzkgIH4iAC~*5YYVx;QPm3$C?VP(C6~8!lW@tIa6g zi_>9}*%>H^R{4z6MH>j7*O{)RqI6lUOUiZFZ0#ob0^D2&bU3c1`tT5M=f3Zcc{*K{ zMR+k;p0iElavLN*&D9_HPRfnUd(g3=KX?$b>TWFYOiU1w*m)?-@Fw3qv|9OrVRuJ1#3 zBF0pAioq`8tK1XVf%#vrU7l`XBM62zOA&uhf9PL}tKO8W(nBZfT-T>|by=M+X076S zdU)5^vYkaIh5*Kkz+^tV%nYBea~sKH$Rf?hc;yw5VgkJRK{~=!czHI7>vDZ!iedYz z9$HhxV%vxR3?ifZIaU(H`|;}_@zwjiVn9gyhC{r9&AweicC_z+zq;p8G5@2n!5Cg( z=Sn#;_~ci{S$5Ol3^CzH|4@W_TVM7qB`y~RVTqeZ1>!>UpeXc3#uy?&%$outS{X_X zVRu$qiiOm9js)%nP8}4Kh)z)w3CE)I#rOxG2dR8_g?BjG-1^~r1?6&{9EDyY!>&aS zsX?sEu|j79C<3KfY}Mzj)TC#kdkMFIT?_ijCZYcYeWB&B#vW4nclqEHfz_b=8vzrf z`X|nds5j_d@nHLB>|RNouyuK9L!3td2j|U1Lrv`m5&>j@+osV&yNWVX@@+_CPC6t+?aQ@*}na6RSn|Vdv z(?ew?%jg(}LMvU5mdysL5vK!j^3qW%lt@*9`LHDhCU+8eYWcxSgH!8@N&5Jgd^SfJ zP#3|T7+4Jd%RXYQti9 zMvalGP>G8|+iVx3qjau5mc0~Ef(om5GU&b|0h|7D1920o+1Q1O&-8vkrMS2@&ML<& zEa6@Oc`C|V{z<;oE3r$oA$4;CV|+Jg=m{hvEZ0iG4_?fi^N`^s!Ev+-RT$_avc68 zOWm}Se0{X2(>5Q)%z!HP-6_VEhpd!h86}F$Wbp3@BffQ{yMw^n5IHbd80NmV$t^UL z62K3Fb-LfUbu$Lz$YQ{N?w3eL)Q2pym2OGcGAA=$0sh9OFG@Z{PjM&j+=(K}cX|?- z7v>TU_!{y$FAi2xcDMFlDSoRm=x#UimAXgAr4&l9wg_qt=!J0LLg|zoK`0wM?UFHx z4p$3ev~lDYJ~R+*{%<_t`Q46-=p|oLIuNk;USD^2;&ICX_7%3*i1`cJp=1wbbY74( zJRHdRvX`O=>N?kxvFOz<(lee2#&19-LzVf9e+{k&BVOPF&kBnJ9#~5&7!JOxzZF45gu9-GyIzQ%^6waQ({FRbI|QS?&C~NCwpau(d8JkJ`1GXjcc~ zAj|8qFVa-+>F}^9U)vGM0`A-O^1?*>K_fcjgs01VWoJ;Koo)NyZ+y;4GMns~xFjUS z@rI@-N;}sct?Sr3_s8b0h}3qXU!x5+1GcZ3E$a5mYgXBLQCn{(4=rlZ#eb7Rih4E` zOZCkSj?zb_Tm-! zfzTYIBxm6gKB%5yJBufu%cQFK!`VQ+=@39}^OVnR3&%NH`-d39BffEqt zE=nocLx@sQvdv)ZGxjaUE+lIqWZwy?ucgJ7EUB?13iEh=d47EUfOB2vI@h`HvwYs~ z*Q=Nj{xAOr%^EKRow`)OMK8Lm`R?2GofK=tipYJMQR)qSj_bPHBIAew{&}+Q^?g;* zBB(*@^QVPU+1(-!>Vuui4avI4CA-iZdcz-z2hYB@yXqWSewD$9GkS)IJwJG3P+kvr zoV>X|CEUEh)UlV{rzVit)|l{4*omMkKdD@-AmoRFGrb89lBgs#>%6p)5HLaJH{sE+;4rb z&O|9_mt5H+|13eZccG~BT{GCayuV%WnmPvAu9w=~Kf6%ea|$ip&-<&p z|Fm>7t#k`>^@xi1obAvTa6RI7JreFcl0iLEgdXYi9+}dfi%mVUeLZr=2>I0>h5epO zkX}WuUM2BfWpkiI1^X`|`PL*K?J$5WDA21;NZFD>GZA`Z(7pDp&tKbQpC7{r95H+z z!R|vTJoQ+a^xl8OvnEU*!5H_C#Bol%$0#vH55#b|g85vG``#i;x8C<=gorioC2Q)W zIP#FKBf>%banMMB6pfz2e2z~XD5ZJ-U zJ)R-9)eRC_`Uxnb@Z;F<)&8)2 zVtTewR8zcmNDeLf#!w2V-!0o1e4fekAGhG9^1C~jydE_j&WYy!46As`|I*YTcRIEEblrQ+vI%-jUs;mlGZqz;-@ zN-R|c)Vd?iTSsy$MoE+V{&i)49VNmvL5-y&Nkfr`TTs?mLj; zJUk&jLdcG}Hw_h8R6U(M^9@F-RO+hgTTpOCPnC+4ZC3G3r)~Q-H5ZeDA_tv zY8_4!X^A|4n85~4l?fbY9n*1|>?_plPg$oo@w!NGFa}dhzsx}2nGhp zO7PptsEePORVsy)p;1HaQ1p(5#1WI+;`;;RK8qV{@m?TtEKmH9NwoOLrLvJM!S~^a zC;$M9p@@Kk8Rf9;5!kS1N~sX_{$LM!Ej~r2$hL?G5&1yJ>s%>5)EaJ#w>?Y@N*_^d zhKim|X!*>eS(tyOC#Ki|SB_#)3@oqSi@eV!{*aAUD4WPAHC+g`OBezhv7C$j2VHUC zu^#FjyK@FVR$N=e>VIN!mba%YMlHU9&XFu8XHBe+N4rWt0E^Jz{tMN!5&F;H{qjz} z%Z6bT{}2bvkZ19Rijv6yDARYQDc^=L1kyZYvI0Q}P<$4eSnjGsv-u2FSQay}#gFyA zywcCYY0oBd0d*n9$2&TN;ViLK5ZRLlDeYO6LEzQ}Oyg!%d>{1a2+o5Ode z45nW`jo)}ily$EE-!jg1+muPcQ#&C0U+mAG3oqM#W0iq3k*riF(?0khL z>P_Ou^YBUdt6M?;6^7nO3_d?=fe#0jlNB@0cAz`5z`5(OHFs*mhoT1@vZ>lBFN&`d zq`$b}-kgn)_3G$#)}xXZTKz+>B%<&NEm7rBH{(gyNs~AEn}}iLh9?Fo4{X(Ua*4Rn z1?SI>PLm8pi^%*u{9lRA@4sim`9L8rpbZvKS_g5`);Xo+CaooAEtlckJsspVRdjtR z^x#wbdelV8Tq2b2iWyW@lb)l%fwN#%MRDOrwUtaW$zh%F*_4r1LilX~T^iS5DS(|; zLoYecB5H}Cu+OJ2l1F7YzBWVcq~jz`nR>BMnx7(^kR5wfv-05E!V9XR3YAk0O0V;3 zIo=tfVND31EDT><4hK0u+m6~y`ouQOkaVULSN}?KW-u&YVy<`(VLOQmfGgKr)owr3dR@lPIOeJ~)9ACUj|H0L-WJNo<@R%UI%geSf&{bT%O)MfK8fp=EpX7MUecLLS3 zii0bkGyT~;(TUH{mLiX#7EkqPyO2DhrGr*H6^~)}{HnRcz`^BJ`>nbXEI)f$p7cI0 z;0@_9L-%&n*(HniT;CLWTZ6iNgkqpU%b|94rKASp)uHI~wYd||h+#bO7b$B6v-rCO zFd!sPCznirgBzIZZkI^S{HOZ1=I}*Q935h>C6A3 zB!`^nK7ObMp+)Gf?MKw{t?IXTn#!1TbM^h_;?=7zR83~(b#1j$krbr-xr_>MI|1k=TSEuek4ZtUNNR8kA4@r zR!*oSgrf+^Ee2ylsJZ4V+H7b1c;}rYYJJY0BXTl&>Q%fHC35;K@3ao_vfhp(#SnsB z1~soH$ zdL1%(6JuajL>xTtZbD&{6ToGl2bmGFRAZz>?wN^m!33_=keR;T=}S#%1cRxeHw zDuwJS+Xy5^FVMXtghGz?l@4P@iyn!v^}@^l=p8JHZui;i7ZQ+n^W+9u3fRD0W?%s% z*!^GZO<*_NI!NRzagQD~Oxa9|V0`U}cdbKxpwczY3%4KM|1-eiW)2kzh!jOBAwW@1 zw|^%E{7&L?u0cVBUqSOunGmkTPC;_GXXqEb-J@>Tkd$>9m_-)B68*$zT5QaB=0;9iw;(!x zkuyd5{X`Vg)xw|gkEXv7d7@r-r%=5MU$KZjqeIYV3N-|J{DF$R3wUj|S|Rwj$YG;R zl4SC8qdl9Bdf}n?`mSC0A5!I^r^onPwJe^S$}Ld0 zO#Bb^=^F1n$%%XpwR=YuteF$UC%{E*&G^)A8(-_BzZ&t+(RMKMY1(R>t@0JxZ2cC` zzU*wBtGAEf6YC<}!!7>ZfBzjI-aZIq>pc1I-QvwA&p*4{tgpT!DPckfTN?hKu(aNj z*`qgk)-T^S+7^4qA#9oZi5W`3oct$dvK~9Qe zIA0tBS7Vb_tUR^0gYz&dCz#^IG8gJQ&h!uexdaI-tBV`bHV7Y|WD1>k^D&!<=tI)< z33ICsaLjOmFb&r;YM2VmbhAvg3xeXy9Khc&b+EK=&Wfic24Xc@pk6i_DiXpabOefq z8=SbsT1u$~MH$|OJ^F6o84=wrkR+%=R-oqc&(9Zz$ha^m+gdoW09L?0)b z$lPB`8^QyKyS`14*@o-X6vGgd^JFyVH#DYFP;UQuSusD66jYPl!y;Fq4FW@%IwnaE z7}0M?{ETPW5uS>8PkG8*j3)%cd0cY0MW}zIlu2^NW&|1FJjHmPCU6w6(g)q4TIH&Z zTSuaOyzK8Xp@Zr^Aca+(0dW-HzDi!1vg$bFxFJ^rR(tH&sx{vtyZ%*f4hYP&hjGSq z(8fljF`L4;I0^U_)jn1sQAiI0YU54fcyE|KlFDfmO5$VukVxW#uIl|lPoL~T2I1X4 z8kkfE*PVVQ7kPe0v0z^kH1(9y16R>}N|JhhSUe@mm+@N#OFq7D{FV2?zJE5;O@C7P zd!ct0L|wHt}3D}yavJS3(jq1KT{Ood>Va+H8*_dCWwJa(v5^8G!hSVLml zr;`$nMks-)PLW=y3I%>5o6-LxMmc84o9`{CA8~zB_G2hD;#y-O6sD}o6tKv|9vB_z zWW#e|x|E&&=nQfET8x|D9m7Z_ERDRd}%M74bXaVyu9vcaty2R0@%RG(VAD+o?d$~1FdS#=gdPITQ^DLC1 zFxp`xe9>C$7D608w>Me<`wymn9-{hw(po$sd#LevnK$2VLP6j@;B>5+of-5_mzedAyAdsIFlNMSfW7I5oUJj@AefnFh&qJ0sRWJUoKNx(xTkbGrk?2lW81ttI88X?@Wm3)P{mA?@!|IF+m=xt|2X{QQ3l}?2JcP zp-GjEJ!M9Qr0r)WVgs%?>B7z#g^PrTu+KJn+!8-Ibc;x*mp zih{CYJ|wR7Ed(2Dk~+_Byn7ApL4`(+(RCX7LkDz5^bS{d`x$oRYNe%Ee2bK~m|@gP z5tY|X)i`>SU-0pb6_KQyv2F@`7BNj#KD#qc6PwRFo`EqORd*^4@{JfxBwUP4|1oU> z&LoagHz1@^=tvq-fynR_bRwI(_;Ow|tHD-P$S`vyIzyxh8%!F({S1F%K6R=SUa7XC z5fQ-v=U8Mb>ot_sK;WpqxxBiNX|*43L-HNf1Ib549zNpzbR0ETZ~aIrdB9+dd%Z0F z*oTwH;4}m_Hjv~=UcBJbDSNffoX4I)Ka!b!nT|ah#US!z$eyQ|h+2mz61#ul)G1Mi z7z$YP4V%u|MGn$w34)e7Ea5|`)4`VcijpWep?QiqUXepI9onbHqMNO%hUX^NK}dJc zUBw#@@E)UH;#|-E=&-k{>1v|a*!uxF6#7B<>;e|lE@Ig;{F?0uax*oO<$>nM`UipI za1MPOYT)JWl%09790)=kV36YK~YnQ zowkoSgIMsAkbb6NgNt79{@oxtd1Nbn8vbkHlL36o#e_6F_3wb~wDx zUirTFP$9g5{efzTs;$EgTF{)1>t~)QZ(%{MSSNDz1y^F^koQ26W zFrbN?`+wdc^hoK`{;)W81n$G_#>UJu92CLf-+X3Bv@BmL%(L?^qARS9*&l@G4{YE?8df~4Vx2?hLW@Jf6B<0+gC2Ok|kF9%Ec zF*MS7Mk|LN?({?K&#+U#WLj%EqZ=!63YvaEC@DCNu|=x073GSLfpdF5K`iT{By^WW zNV5=6jvi{K(y>VM-qUK{C}wlxXnEF+X!IsWd}hmf-ur^5YxV(A4D2T&t-U2^cE8KN zvc}6fRG(T*aF>PegG-<3L*q7V6T+=mP8ekdB);qfzg#R4{f`NN1+W&0;>?e~ytT#% z&zf?M@j+~Qrr3ty3=> zRc(`s6wf}XKcWSrWPBYh5cH2Tu3kcbf9uVlXTM^o_*4U&j&q@fT_l?z;WGyey^AMo-!P&nt(g@sTMM%zEZ>K0uy6whYJK|=3e3{MX7>D@~^G^;qr&^&t zjpJSkyC{V#y-2Plq+(R9MW0&0(y`VcYh6(=SB!RLK|(;@Nl}k{80M_Ve~|>fFdL;e z!*Gco_wsz7?lBrYlu=;u#RF29s|wLpz;TZxg{|7&s4=+yxfnf3!#cvQh4hzTOYM=X zM9rLmahFJX6dSe<&jW*xSE6Nbk?_go;7`$AqQTMiB z2Z&=;>6vFEG5M&A;zNkw&!O2RaA91g<`#9%|>Q5QIdPV#ZSX}CSk zmb2Wq$*Nzl-1YIGqO_|;`?A|E=|Thc0bj#gIUVg%eYcY%Il-!y_p5`i0@waq@Fsvhs3PKQ*IL~ zr5=Q>CAZv`@2&{(WO}M?_u=SkVDN3vPg2(}el%FE2%5irV?^8n@bW(V{y4YaY^D$B zO7^#ojha{uLEV0O#W6IhU&E=7Dbd;lM|bB0OHWGiIn#k^dR{i{J6k|V1DLEAT73Vq zpW=GVbw+v|hz$YZfJQQeqOgcAuxeKv%X3mej8Gk|h_HqmTc2c+lkuCCj@bODZA_01 zib6x_QaI`85d=mGic^>X?^;6gZGibUyw|&w_|T>&y*;4@J;#IZN--CfW76aMZw4%RBSbi>*C^m9LL^_L&d&1}1pZQ*Hxxtq(Co z;WCbWBi~1yj|o5EoQRHgL(!k*sL(;rSzD?o>^`g}RwS{$_RwUnV+ov>)h#yk2f5JWYiQys!Q)@7B$c-5Z3PofJtmSq#| zLw@TP-tT3V8*M!pLRVH>)I_VIWHEiHthS3d>O1Dph-|Me7A>Egm>QNE&`W=u%vjeM zqXk}Pa-n+_Nt&_kwCJ+L59P5OUG_b_Y^T$gUp}8-Z4fa5m38{QU_;g?2v-DqSt~y z1h-aeFt&xB*@CRI54C~df>n$GAaisCecj|UIx);~?CW{l)y*}}S^vIi!q2r#w1YR! zt0ptdpM6HQ;~4uwGEqrw)5Do=wjeVoFlN6v{_z(D!y7MCj+s>Zwy{A!|ExtsDQ!nZwq(prRA~wVr`lAFg;oJUbo40K{UvufAG3PX*`G-V#TQ3vW1*PedmYJ169B(i2hiC=0JcT z?$Wo@s7Ok{EnR=ho`DG=h)O-TqkPUK-+Z*461KEw;HYQfrbn!~jHO)Eff$4y8iAHZ zK?$Hkeq54WU)+RQoEV7nvf&IrZfZOxC=RP!X)!^bop|w*+p1nz0xP3(*rmAK3rzwBgg$`#*%*{IL`wn zhWWA1{-^R(nJ~D{ja%QE>S7+s55cgm~+gJv^fYkIoM2`ED@B(5Ocf1;cAPC%a??>At@ zhg9Wuv9o^c`;}Pdt}ljtBujY^q>J@j(346riwHZ%RqSo+@35F;7MX z0uv9;>=I5a+(4tUSVe_kFVM#r`VK%s$d>XEi7V#DMi*yAq^Z3m6PlstJM1;*1L3V3 zFY7VKHUqq|xEL8zB`+!XeG6R)CT|j|Q7N#<4kK4hY)C_guZr6;sZx}PCkKrY# zSeLH^_qyr~g?rV?AUZh+WYvOx%#1_!5(W`*B(|enJlJQD3A->OZpm{^rB6;Adv~Wl zyp+310o?TJ57HR#bL)X&VIUOMbtb?Pc>4-Fwu4kvIv9q!P4!-y#Qq-ZQM0p(eAg={ zeW)8@sO{j4cE>+ zM7CoNbl>Y5Gg)3HusI!K`W|6#G#s7c-D$n!5BD$xcbp(?Af!a73~lK0R^CsrwP89J zI~0ARJz70TT6VDiMfZ(cHG^iTUOWb8^xx;n{T6>UL*y5OC{(7w?(|JunZw&wOLZJF zm|;cB$vwn2dUpZYGmK1axqL zV{V9BKy<}kuZ&%M#o)(aj5=kN~HKI#prVKCJtD9X_Y`Uso^$OX<15hg4nrE}D+v8IS9 zjq9S`i+Not16{nwUH^#9e$nPJS=YQcRT22cus1kkl+X&K?2p!@IK9~7lXKCZ(Y|;$ z3QmtIBYW$*BLt83TGkcsRXL{Tbpk6IDz@qkJp9<+p*8(b^4LL~vvBwMYpK6a-rt8U zx6%G;hT~gm1qL)#@wj4FMJhcqSX)Z`$)$WOl8VH7cEqd&CbJ!7o@Uyq*G@}EY%m_ht!F_y8Rom+-6 zE0}meE&r9i$j{|ZXM(L)-=?m#4To0lx(|ETIm;*J?1+z^G1gi9)-M-#9)p)(H(sP(9UP!>`gzbBu^PDRao_lz6 zv`)&D@HtoLUvr?S&O^I*yPTT76x&V`^L2Bbxuuopdwbend^OxLRb;HXkj3N0mNZ$i zx`1Jegichf+v%NyyL^{!wognakG=WxZqy5zd9#%x$ZPtub0^nfuHSe(p7u=W-^-)X z>~nd{r~O-3S3bXaT0twb2s`lIUdI>TdRO2&MfEcKn|JH;9(sA1;i5=vu&3>EHC?&L zefkc=52{fod!tcp-5G_}tMwJnLcWzT&6%82hTOWfW!`9sq<;uqM9$~i7psp`jF)48 z2Q7kL{;lhasA>-NF{Sr6JqjPh*1w;@4Z`R%(VF^%6|%8poSU2Z$2IpfYke7sG&G~u zw~R!C^JPJU(9BY2r)6k9hI=B0;-1`U{3S>rQ+hJ!ZUdCdZ{FOEtWN(x=2_Y&kLRQZ zOuu8DNxeh^KpHGswT_~wZmyS*P8%yFz&1V`$SlwJjq)6IpSTJN=Hg~$a;EF%^9om= zDv5Ic-4vN}2b$O@=Iin0aoLK{m0^vF+4-%PU+vz@DnUM|kW?0q-&^WH3`9xN;l$l{ zBDAJy7PE@k)a^5#eA<>wh22Vg%h#6OaoL0RvlrhW`kMFCAtegM~8l>`&+GSg^ed(x0jwm%(4AC)*>mPSoZdUK-dKNt;T!xsz~9|I6zxMs=zP+rEK5Lb^Nn5F-L44kDM8 z(2-sNBFLQqRJ&-;v^?R#c5uvg%tJtNa!KT#191ncj3wA%5JNh|-F&Hz&EG!f7q2tc z(oU6FIYS6f;5)Da_EdQ2%*(LN%U@9x2V~@;Ta>+T@!yZHJ420k;w=cy`UA#>N|tqr zuE(+Zk}U(FHGxUH0VUe|MevXr8{y!w5}_SqBkd~kO@uB{f0@HLk}FlTBZysnXoYT~8Eo}@5$KzWVkEP@Adb5dHzXt0N_uqMn{kC}uz<8q zN(H3uFRdfaF{P#iFJkfF4G*T+^X4k4fr)@>x$^L=p}Q+J5lAf24OOxTA!3D=Cri|S zXIoqwxhJyRwWz-=%6^a2_QEg4k7z!Vw)@0nGL85JX?mD=dy!q#3DqaQpFTexLYzd_@gN9x0c*Uepc zRC1&(HcUQOnt5UFC$)#JsaVCMb=R*33HHn~K<9LLIWO!L>|UwAB*UV*X; zw)(7uOJiXkP>B*H30yHlGC6xIAjJN{5Gmw< ze3!8j`jbxFm6`|W zxZ?E-2gF^CPPz?GqsNFf=Z`;6>lrTA(7_x7MEPpBbz++Ei2>A-G zB=%N}9NzZDLu1lyHnjfNp#Rz|eaV3@wnEPgu-bYD*!80K&TztF|A7Syydhf6+J%+v z`#!P@_+U*@?{5Yfw$O@p)X#~>z7&G)8!CJczB1#yLwg7f{4EdYtKjMt22C|ynB0#F zzAOkv61zF{?ToOV0@Id55c9J-vhP2U{|=NTUthOB%DvaGb$JIxGWuODR=O&gB88E2 zVR=@nJ2-AY6<~M)pnLN#aa$_aMUQ*s|I0`8pTx!Tx`LQsgaxj*|A-3<3AWW@u|xl! zBs4#kx6N)7ow2UkwY#cj7JRaGF+~UCZ~Cwq?jbVc7qrGE0|Z8>%*Ou=T~9hWXi^MA zu<}7+*%S`-#-kbN^R`wu_}4h)l#p#6V{uebn*SmFt~dE7;lHSmao*j$f?H7NlQ3U= zn!fToX?{#46&`0q;99gKF456a1P8JZKL-BN9Cpl@7mW=6bNy}>X!h%93f^}D9uB#V zu_T#a4gaMoJ|v+SNqbJie*XMOsSbv=MvtEpm3tiau#^oPKIVm^>=UGUCzC^2I6 z9JGK6PhpD0a<~tA7;#B+WnT^LuZUbc%X%%b4Rf+|OooF+t!WWDJddK%RIy3~;N}Nc zh}VN=DWHdyucWeBphhzVJQcX;<+%b4t6XC)=z5YQnnEx6 zFv!kJE-*IBE7r(3mdiU9a7b~G0IH&|+j=C8L;=tD;ms5lRp|%fG9;<T^1rEIMpUu-%}?NC!%BTqNIY2H|XW?d{5MqXVPU zso~ObCHmxr$X%}}QWy#0@ebt)&OpBg#2>pJX#vuYv&vRd7qcRGMoM~^?_PRbAo$lv zYp&>MiG5*_eJ!A5ne4eTWZJS`Qe&4zAdxI>O9w(qQwQ@k*Ge61vS@W|mG|ZN2erS% z`S2^jg8Iw8KSysdWwzI|T~~hu4`jFg3lBC0ydRdg50^NQvnX9GW{`?YEamW2IXxOP z$8b+6=_0TYA(tMnJ&Y;$DS{sE>Jf7*x1aM^%~x>GmrC|kbZKO)X-Pi29!XZR4BLMW z-ho0~U>~j1Se8nYHi5LZ>Y-iWNfl3lby#Bn?6AJ-&XUofwqXf%%+t?}N<$m_vK2&Tm!mg#S+9r+fKpgfm(3C5xy$k;Gi_-DSAggDbC^CDOIo zyHGZyB%9^@6|Fk&qKCh7)0kN~w%cmH?*lUpbzm|xt0;`xSHbhITJ@0Go0eJ6^Y3Nq zyg;`pZi%4*Q_m290F)aQDgbzV7jr!IT+nK5P!&*3WvX6;PA@YiQ{j7$o7qIGphf8; z&Us*)63Y;|Kk+=@|4O2&c?{ARXmw22N)E~I%b606k_9~sc-&$Rt7TVIaJBwwW8a6@N zdtcEam}Ufc9!sJ7@@yHcXv&e6=eh+?ddXBEMnLwS!Xb zL8VL7`%3eujr<%ctuwiIXV1C5F z+(rdWpz@@u@snW#z;61AT-t{gl>^g_+=oT}A!+$lq8S}~e?4-4euT!?oEUlN> z9sf_oTYdxh=-u;WV<42y`@2uUR+nS(81P=sc`^}TeqwBySNws*p5g`{RtMf4jK5k2 zbeqb><2u}`Ile5yQdGGHY{S4)6ED=?1^U>sPMNXMVPwpJPY5gWnz~PkuN|WYZPAyM z2~4aM@@`dd)U&b5W9&wPP=T-D+Y`TNpMb8Q_iuvYRDG-I)~1?l;kJ^~r-CzI5kuO! z+Uq}t*#pa%J0_XBli+mP>7-=Z5WT<#M76d?B%k_pNVxGWGs83R%pB+DU zpuDEMY>elgogLu&Rj;KSpRoG0JR*07gX8QL@&NDn9#9-Cam=-!VH`gd-wVCr{k^Y3@MVGr}ZGj)H5L~a~6>zYb@#B>10`WWM8 z?Yqwa%Z~Nj2Ob-QMV1|=<{K*{w%pVS-bvlBndfeFd%*5qbsCdgjkE-eoHk1*IP)aF zRkN?croPf`;u~vu9w`9n{)uh+K+l$Gll_&E0>Cj;Z-&Y~LpAo90Ic)@Xn`fvMNX|? zn z^%UiLoN#}Qwrte8tcDq*9KU@B^ zRqKzMu*L(dQkXBNrmS!-Z5mw7Nrgqh2_pI({q?#2=baY=uhAp|g{c(Pz%$N3nn!G<| z{p)_=ubsvH+`C#fBEKL01oA<9+Ty_O>h{gAzd1zzGSO{q=>Z!P04nLHGCOl^PmGTh z@Mm$V?bnV863B8picwvVE-MD2+XMf!f1Cv; z9DcA2+B^M+rzefi*anyw4l8~)Eh=z4Remvu7SFLb_dQ&}G)4tp;D8#LK?d)N0u&$F{0y;JAYNM(VcAI{iV zn?D@FEltbF63#bO>Dj*&hZ@B!EI(=2f6-{>-TvT~ps`%}~!;r8KmTH4G_+Ue|9DaK^!Iy_AKSM%ulyj*K3 zCeK(nfl7C~Ehy%ksZgBya0-%5!_G%H{?u(m6!iPDwb-QH^$D@>Vr`ei&WYXYFApcW zSV@Oc?=fK6AFWPF(71F`a$@!6>Ml)~udX*zs7L+{agtgR!U4G4dVXKqwtGE!a;d|@ zti3x1nc?ai_2w$f4V6O)JlL1jcfa5iCMcnFDg`1E+BIUn#QI$kU!2&QR5J^H)f^kL zYC$v3pY`<;y%2YSr9Avgu}nd5e!H}Ajo9BtQ`cAR(`B3DyHxATf8L~xSMhbM7wyHU zT36)fyQLNsQs(W7^<;vcS91&Ksm%(xJW!QUb4jynipxff)=j`02 zxJ6qS&Ji=SWv%t~%GAYJUl^QCHb4SClzw8;MTNQco0rFm`f?Ah9jsft{yMvO(=O9( zrTd%6jVniKd2PN&crKe$QHEEJ0Rk7Fk&ZueR9Cl<8S-!3H)#6s)_p3|-3_uPJ=rGQ z=uv#-x(SQqQ^hii=cvfsiC(ng$Ap#et{n$+Qi#*oO;7h>M(>0x^^Zo*e_O8fc>Ah( zh_)PF)p|4+{;Hi-MCU?7*7pwGQzM?5P#%HVk~IClUX_X0zNNpokh`0gAiq0cm^E9r z?p{3b;%}KwZ?gDytL9paK)@I~|9ZoTUXEWXIp*SqeV8Fn;eGjOb+NZOEO{5I%QDu> zuS!O<76NR)SXWCWY(L#9mAdU%?3>vAja;Mn$f7BVcE)Mk@xOh}qwey+>rX$bQlrg3 zMqf`H|1WL8N9ii(;DC2Uwa171c&m-3fsUEhcjv5g z(WHEf9B}O9w}py6;m2+>^1?i1wSbqt+&Q17VCt`{r^;?DUyf&-y8W_BcljxA>u^PI zhLB=w6yfO(Vb6G-MM-HYj;83!d7*(>!gQ7UaE~Bs>C#u!-ox!AmnSQ?l)9$pFSe$` zz^^B&5l5)Crp?ZAL`Jb5bN>)2=wire@ER=i5<8b$2c>)e$`Dh&BXUniL?9d!7YFTsOT^Ia|L;9i_2&FqUzZ8;_`1(6M+KuI7}{j2YC; zILLO{%eixX!|L*2mcZ+)yo1>T+PPW@;p@dY3porrE~4ZRFayu;P&WOHhGcKm#`C}W z98{7;t)m9k3TY58OvW7BL&cdQHor>TKz(u`uCy4nQDGoiWu5$RrbL86CVZB|HZ^mm zRLa2H)V|F&^VLk*rD$(+5ADmjA7{!n`n@e5v|TPZn5jTA_*h44+nqsRD~$|%Y%|*I z%GEzSw~F?$E7P_=sdFpktiNa-FtuCi8nOs?nbuYznF`cCFtiL2v&M&pZV zE?1iN5BM$Oax!SIr=1iyYk$dqh#88>VcJaVGv@n49eL}g<&5O1W%P1Kb)2{bJF#4bx~7f>QK^_hlA|-5eq`c zSUOq+!Rh-lULadp3~?CCCytmCh`P!VD#*~SP@lEN!}I*T%ux+>Y{MM zBgqXuwjHlF^4uV2~|EZ-3`3FRWH+6~a-IVe9UL1!pUQM9^rDj929Q2N*ufKKR zLms_x>VTk`)U11v*+(ht$9P^2<|rA!N0MFcQMs5UON0dNUV^=1&akwTfvBw@`J-ib zmjNH0HIE>N;buRRb_D3Wc$c|KL>Ct!+gN;d{=&_OMP^lldrrBbtqCwivCtO0nY$tv zTPa%X6sWcSLXBc<+7o$vXp}6`0OICjf&9>IxcX-q3f{F5YdIT_;mC2ES(@z}&mx9_EKDdsw!D z1;<(j^%9jOd_y7qysh++7gE1b?6@XtT?SLC6=AfSu%l0!Hh-+7w~0|9Q39VEhD?9# zB;SXA8+r0&56PFm5MI{>?^8dx!{fXfUURf4cumcwd@M1v5^FmgF>E@q1hdDPi_w~g z_@adTrD_gE$}I`4R>?}@AP-?h8zZGn8`z`t63(K!KjT`{uDmpQrgQ7PEl11r@&O2j z4-DvQv9-KuD!O8w0ddn)^=xI3H_)X5s1ETY_Z*)K9U|f`!?N~4QP789&&&7ag?HM* z#odGjkNS{&-GWg;aH;c!P;t!9+>7gx^c?5GW`k2~2fJw^IGfukr?tMO0_HpwI&HYp z?vxO&3u1|t2Kwrp7_8dk@?!_1pDzQG;udN8V(qc}$cLByPCZe3%hPS3UUUC2Jk&{y z2V+`)O5P~aba@vu>7y*|B9uUJ6&ougYBzTmE(_2^CLSIj?{%MqN6yhkSUMJpd6 z<0fnO@}Npe0!qV-3)F%Qw=~c{X4zTIANVSkM55Jfe$Sn5ELu6-p>b{=m0WiLNiVQ@ zAC*7b5?6^V-(>o-63f~|yaVl+s)Md!8NOe5o4yz89Y8l9FHencj%G!fji?H(LM>+1 zvJTPZZ5O}bQTdBZ2U}U*b&<&lM4Hn7Fm;|mO}uft4iF&p&^v@CReA{sCM1;5Boq-8 zktTuyf`FokBq4;*Lq|oVw?9oO(k0Z;tAL71lde<&5y;`3IWzA&v)^`RXJ>Zy*?V_? z_jLj2-o}Ao2s$_-GD4NS-qQ7Uttk$JZ&xo5%xa0vkA8vbi~zMC{)-MF@u;^Fd|c`8 z%rmYkc8jgk#DKMW_h_%eD-?I6x+j49v0Zwt8qm}75LA8KE2B76PfVj+URQ_K6oAh) z<1HXkt`VeyzTCT5FQ0YcJnV_G@2m` za4()1stNFF1x2J0nP%y#&2`^yd?W&*A|NH60tGivC=0o$8#VYF0TkyNJk=8_8dC#| zvt&S1C~7xNHQt%VWtql+FcDdOX`a35r>2<#{Sk1C)mU@RhT`2;VhE(0DAzsOWgr_5 zdfVOc-=hnkW%SSlhK&f~fSR++0$Aq(+-vV509gK~15EQ6CiFl=4S3dMiy?IRrN|utrHf3Qp5jE z3?XUM#5OVPI{=PjMvgTM+dP1M4FIkgF3lzmE~&*pX$pgxsEitlO;baqga7?^f`3vf z_afBLk0KZ39UT!$h(8523@S#H%K0@CV*f=yZv0rGmsZC$+^|8|v$T3Z?k$YB;+Vy- zk%q;Vtd=*dzDYAPVE}EE!Nvf@3kd3Za7?5TuzHN}%sVgQVq0pRWEzVAh)pb);&?I+ zgUwlU0qox9HSxs32cvQG19<@e#NVR^ra zcS0C@jYnmJJW-vFB+w7;_Kd)`2skhV)g+oOMFkn8J*gw|K(RczRYSB`JsFz6@gOeD z@ND1 zHkaE-EK$TzLbsxgR=R=?I#LI%IdZ}{vZ$mkclrJskTOcS2-*$rVN^{3c~a(l5|Ae)hSTVdMvnSBg9b4*iPRV^{trs}Zh(QOV+2n*^!Eo6=%{kttVrV6OiCLl zJcJ38Fg@!UeSH%zC@TLHkmD-n5Hm*T7LIx#*AQvh9g)RwEjN<$EZX(BJ!XwwFBBd} zi6maM$&aITL%+nqo#N1+Zw|0D1{;U$DTJsqcK?ffI?vc-**UgJ_$N2DV#jEt8duat zL<-~)AwUBt{tXk}pz&+VPmod2%{UMcN?T<_0-?api8TsMmf8t>P ze_wXZ16Z2cL9lp1s9{04cfs{@OXH$j zxI~%!jH3%!SSGlz++jcwg~kN@vKem?kzVR z2D#>J(8ooEWYGmYPs61VaYTlk*%ePAf1t^W90?6*g+edC!?Kyz8&!A(c?+j1Fcblb z)LEl*B+3b|c%C)h#1=W+XNv?8i5zG^{z2uf#0z9fG-&Lu)AY~VImCkl_jb(mi*zDc z-|=!IEkC*%6Az+?05at;xA_1r86c;t1h+#L@#E;l&T0Lz8K2?l7>r4T66VedG3cBz zs}0TCF1xeZR7geP^Xtd@;gSJsrjaWQVa?eWp9o*n7t7L#`ySe#K3*h+KJd{ z$|mc5QgeA+^ZgVACba@{ilSVF;vx1v#pls)itp#Ht!LdQWQs<|Pc&CDl+qK4HTI|& zfxPk_pAtR{5DK7$Vj@t0I11*CwzH;oS;c)qU99KJfr`{QfW=spk5GYUGx2>Qu|xaE zONFS(`bf3+z(@!A4O$GF9Q|$Yz6kK8SM8wT-WYNNkq&zMWiwW29?LU}dGZ{)lqyfn zXT?mMM?Za5;ddWsqrZw3+oGcYeu~AiqGBQ5H0q(YQMl@eP>my8RP&>)2+Y=F^QeVh zj&`dD9SmDUfbY!X7!h==4&6x7UQGm%mX%VymuAt;F5i64ILYUa2GF}bTYI$v`f0K~ zok6tdje)=c7oW&QB3G>y6ww#z3IW>1`*lva{AZ7@h}mawC-e2rMXP@4I|?R72QeQD+WA);U`y^T=;t+n+!O!AEXAUWWyYHT zYkQzEj~Pkk`omO$j*C%dtvOfKV+JyEnzIKl=Tx>e4R& zDi!GOs2bI`L1zK#M5t`fJpPSjJmkK?eDsQ_L!rCRhU0ZLG54>TaPMW_!OCGUlf!hk z;+1|}R%DzlW+MSak7c)nV!P7WZfv`@`Ubegv2C46N(4*mK3msdbbmOwYP~mBnFBRL2H(d_e8)Wt?=u4AX;V;;AkSsEtJlqnuawrQWqULf1_;gm&dWF zYrIvjXK+vdt!J~L-k-cqCT{<_eRS&bfhe+euZxx#;eXBR_J$k7t(Wl2}w@Ly;VN1Xm zsT)_T@&Xqdn7FQc^Q^D_5INH{KN$T7Gq}dAQ7x+Kk&WN%?gx@TGg~LbknSu}$Z(~s7wr3ARFPOT^WWN;a9|sN z3>hARcZ!V4;{k?j_BD`riI7?wWd=zGlrrJ0ATcp*N+8=b4I2Cnma|K{B+UAYGe?Z= zeBVTXYD5A=u|x&Zhl$h^iV$kQdU{|~fhn)?V30jc970+f=@su+tTlk3=dy>uN+AuL z3j3#%NwL&cNm0^v$l+kJnz}J5)lBaIaDf~nb(y+jqf7{4>xU+6uIH&hLyhx&7C!aM zQ*0&vuTI9_1o$6BBMWj7xvpIm`x1r-E*`mLlbkQ4{OEITS{jKlQWXE)`8=?r&||e} z-u~YwN_Bwm^0u<&)1~NyO;+e&J$riom}-=XFhR)1;rId2#%LT}#9aUSZXN3%S_e z?0-~H%s{=u<*7=X`2*Sg^>Zz4(g`i?LBRtuVE5HLv(e z#3k-RuD~XM7jqzSci&vOAJm$iO?POv17lEej51wOz=NcSr?r&-s*e}GiFwz|^auuA zxuyBd&ueb?PFIR9tKX&)2=8!;Ll_YDb{s? z4Dq0uGu?Q&w&XRRy7okoF# z1%KCF>wi!((k`rJJ*NLip|1Ks7fX%we1jba>e@W4u21&FZ&~;JIBDb12s}Hy7R)N~O|z~(QGoe(l){z?qd~eT zPBqcLg=C@@OD0VO=dpx?gpi?2m&V5*2z|@yg}L$@bG^XJm8SBCI5_BC-R*z4DZu#M z-cy9Ni;uj~Zc`|kB##p2%S{kKX-jMw?o0fMEEg}9h1W{BIN#YRkln~}B-Fm5Z zCHYlqKF84K(a~0ZGP)NfEOqE9UK4DYWTjrvIOt8IAV$jZuTz}9M8L(PA znwAky;PJc}Tng5j@Z)KjrPt(O>}Pj4^g5Gx+bl__A-5p|eG~%Y43vkg8?Gs$|<7~OqMO!2q{6pES|>A%mfrr%%`i^|v?sCjT*{~6x$@cAK@xp;H^^^8m1Fa8jx*_4JhO5W;X==BVM)(t zS@f&cewpLf@EY=)V_&*3YqJgpptHwxJsy+&Eq}b8vitz$%(R&39-l8@N*;`*yIV~< zy(c36ED<3{dw1+I06+tnNfLa0=f1zrFmH&*bN&?O@qy3oqY_>@#$P7v3|0jiuM3Ks z`g*Tcd8$erK)w-U?9kTDR-;XRFVw6w&tsRzvPAlA+K&yJ+YX9~FV~j|4%Tzb#1#q4 zt6%QZ<-n2Crt8I|s|rFk?#LzbmtPXH=yGCDbj*r5KelN29->iI{+@*6YOn z&RPxSps@fE6U9a>duT2lt`WebISb+fy(b7%U?G{uo%n?FmLwiguyXJ5P(e6X}R|09V~Ur+DX@CW!>gM}kFFk8ef-H##M5V_r$UnSST{>+uhkPjMzY zH7~{=zBsxiudy;<|Q*HYn|NHt%?$sVMlUGfi&g^bIsQxF=b1tr6_j2or%5wo3 zTmD+rtDnl0{~dSt9k;{IcAiA^dPp1f40|*DseOC4d50>VfA%7zp!(l&sAk0?40bX} zZ8Gv-p5KW0h??V|{!RT-v|CI){gy~QOTD>wN~J1OH@D92x8Dxa22{6p56;e1@R`AcE^#B9;%1 z+s3k!EF+&}1Aq`foHxE8nM5y{4bn4W>WwP_^wPos^saE`I%)?C+~|GJ)C!sJ7w4R6 zHzVu7Jb2n-*ptQ(jbR#_xd}IHBhI(18{7Gq1^^}E<;KbAh1$CdwU&{KDDp)k5>|oX zAW9gn_2GaB%h_?YP}4s7o?02ln*b9*Jz!|Ok^G#HiazIf3~52j1?VXFWkp^VkEtzIgSD0$yie@j6Vv4n2)ke zn`3pyJVXINngEm%AgdJ+hrtX%fuOX39u(DmpktxRl?IfJVe$n4p%~roaIt1auK0Yv z(6?=M_Q@4jxrt%Pgt1rO$5ni6F z+wz*EVJH*7CY*&tW(lTtK-X}~r;(ziLlUQv(gEbRf;2#k6mnkJ^uSa5z07sM(yG4c zolB!k_5k{WLd5fIL|q3*DFzhK!GSM$8^EUY%!pS%SsF!-9O^K2#Xzf~u9suj3jv1q za4yscb19jb#KfOVS^gF+R#?d44OBe#%Jc>BH5MYE06}}K25uCAq5%!T!zY$imM^Vk zNpai<0*P??tbz-)ENDpT{tE`hW1PE5=ZEY})8k7FX$V*VmacIHW)Faxc>a^`W;o7z ze&L8d?qCYe2Nq(Op#|EGaIP$@&Uu$aE7o{zHX4r6dqH`29?5wOU~pb}d`@@k+KS;2 z*_>|}dO(#mJiaUUrURDM!F?JD9ip{W?$#|r-@MQ)Q{t5`7`a3@!w=1$i9 zSHf*pU-@;Is{D8WhVEdQb_a5cb(IT_SFAxOWOZJ0#97DtJoLV&vy5e4qalqAAa(J2 z%6MaaERci&f@#|*@fyl-FosqTh*MrRyjcaH#SgI9cL>ihW}(P&KtrzMNckZ~zO)6E zA)L&bAv3%KA!(ddBRdXcEHqab_w3d<@d@ApilpJR=YcbSV;;9+WrDlXVm_6oQE!mj z$SS3jvgAYp=(t$4y@N%Gtdd{cqz;q@bavc#x|!9f*8L#euUlz~Q1U#^ zP2T9fXqW2PmP@Gbzy8lX#>q~Vza0Bt{`l*Q0$*N(`k?H+kn;t$-oRIQV)3l$Bo}ZN z7%Lwz5V_+mJK;*^6}Bo%iI=$bkd@YQ$`{pffqw0#7GBVmISfy+VxCk6qFzh#BZ4R0f+R!?0~Xh7R~*C;}oEy8`b1+++rBC9|TWOoQ{4 zvv70}0K@5L7)I)v^9Z86pnKzu=%21RnP@D;lr6?6DD)QHaT#3)V7D2^+D;Z1iItQi zZ7bmIhL|Hro3IO{!`LMxku0K#EUiIkOkFI+5=mS@fSi$JgPVfQushT$;P0rZchv_r zImT>&?@gRE7+*aV8_qoTQ>W3*95ki*1H4bUIGkxRxNEifk;2_peqE> zsrB1*-C@zB6i$byB&!1@3X>2NOEF9zWYS9EU6;~)5`ex}35dGnG?kbwD(IJJ7y~EP zEOKlGAb}U1@82)FD{eaDMI!-<+CcdIQiK3J3$(YI^_I~rrNcQ=O2bGw9-%#oOZ0VV z^Mr8KDH|37WGIj+bt4EGr|hg|N*UGcrUscV|0j>y>4-H-VU3iBGJQQO3-nBibDQ|1 zn(0h7!*-Y{ubDN3ihEH6wAL2_y4Q)zqCdYH4Wo& zIbc%^kWtb8`oeP;j;dnf3i0bp6W7yPKSpf;cGbj@1E$!+rDMLf&_xj(mz=V zhO7}UXh@=lzykyTu@51*vLm`g0vt;Yvk7H9}*5* z(>Gz%NNr1`d|BEbb$kwJND@g+*aG+HAO}~*Eo>6E5RP}5A>=<5HJ{Ir;hyi^|1tbL z+v4G!=ZU(G-rpL)*!nJM^DeMSMQa7Gjo-N5r^O=>ux;wSy#R9ra7j3r?8vCTw@wJ_wI3pVylf+ZeJD3cZ{{oj>=nR= zZpb@_hIR`-)EZQvy;k$*bN*$gznWjgpmBl8zE5-_ zxraXnze3DsA&wDOA=G>6V#Xc^Kr-uOPQY<3k%rX~zyN5g1HBvAjB;5Xhnd4n_tE0u{OC<2}0)XjlT-sr)LqP7I(^eh6 zvatfKzvK$QZ!Ua3-3rq|$4w(MQBU$s)c{lH5e1LHGH!}&a+*2zR}dsx+Zk!I^y)g6 z%XH4Fw-h9BoiX>Vxq15rOvx~_O@RxQsK|O4J|zQLrdhM?^x>;4+mb{b)5=awjr0mc zetsD*oW_f#+VJUKDcd%c3B$x>?!!7dfPfX3nn2Zm3_*tD@^U~a)>c<%#ENRS%vdM? zN8~tXx2&UG0H6yt)diCI{?;xUS8&qfy;|Od3Hq<%0&``B#D3H;k}||S@qARU7o`Wu zxV?*1JBUN%;BF1d@Vs(y*X+mX-`4$TfhvHm-iOER zvzJhvms$~&MSt+DrXlJGW+X3&Mm%plGaVw~5u5`c%Ly$YH14|_`AVPo5F5VrE*DS` zMP)zZ!gG$vKyDmsJ*O-kF{rbic5njap+H0A^V!!Ivg_yOyINZ__APd)&Pkl(!dGP# zjlif9q_->=;2d#`%RH{QQgB18-%QSx_A?`op;D*mgIeF!R>bqpPn}gm*ZbI9$tu3B zzo`tQ1GE_0z;M1tl@tatxDo-0T)A(}c7+N%CF|pHo7~+^{9Q9=bQZ&121Gh|>A#~S zn`-Q@L^cr}k{dFbL&78tn(S_jVtv4xE%Ect$H23b>pZ$C%Se)pje`;6?nFM}j{xE1 zXkKfEeN^q6<`5QSF^}G(1vKH~^jS;RRAM5@I>97e@A_gN_FUxgzrNqpw+#;} z&(F$qwtm##pc6b>%1m=Da_ARQFW0o0FN;{JaVauS--L-5pJN{ZI&ISw!bNfaS8z^< zFodsn?rhJv3}%+$w!S|6rWFmR_6Je6zqDd~>)8&J-U%CI-@jfx{2zaidDT+$w;H-E zi%2XM&J#j;cPj^L9c*b=AZ6^gI;!}dPS;=5;qkfGgUctHKDH#^>K~W&Zsoxie5vnl zQ_}T=Q=C85L6#r@ByW&(ihw{0Iu_seJixkx=E^I7kygqkLGkhQ_(s*_#3X}31ej%` zuCVkUqhiCWr=BQMBs8U-a6+KJsw=w0gIFZly zZ*~HqzIZE5P^609t4VJL&jn_;*KqG3rOPTN1_(KOl!D4vL%SWaAD?rn?U&QqHdYED zEV~px`=$;k!ERPtJjPViUK1@jRm!J-8az1)tDN#5QGPebZ3XAFvL6?f7_b>Pl}NCk zFq5yGny^qCwx6`p{WUcy_4?F)$|iw1eag<}jrW+n)0?TWn9k+*pPa;hdGR?Yxe<9| z5}SU(Z(?sB@H?K%)5j^$zVy!E5oeutg5Sf+q&vSG^T@Xk9XB7o*HpPTZEr%G$$Pu` z@{zeC+{|YtB3NQ(?#VrA?IL?uw;q=Oa@36<;eUV4{D`1ocbvyEQI%)sBRQ{Kc%lUT zXBVO+5*-&~Em6#n_-DHy zo~h$4?N!cv{pDSd5C9X2dYn^!@0F;HRxZ%478;*o88{;p+n@cF-0AXrH5?koQ1WA2k_id1A8kl(h(@KM{}k+VlS z>+JdM5jPv-S=qgGi;dI zFJen)utpXaeu<>l`;>6`#0(?^Av3O-nn1KY!@90eQ(%(!@C18_JIHt4M+7&#@a(R{ znMLOSEty@(-j(j;9naUfpT!~|H(F_MfdFGZOd_K-6Q*@U^kX2*+(8U&rF%tR{=Ny{&?7 z^Q2K%nw`dVP1NZrx8Yada7yn4onUsFAeC^`SsKcO;tU5FuS(mfh%%d@$th2&+}}%u z7=n!C${0j6Nc^*a42%#EDUAUTrt9)uZ6|Y^gXOLY(iOt@?2J1_PfqSYtUv6 zth4e`7e6jilHmnCHCO-+@x+$Fm*XN(4HEsiTd;XaQvXeD!F605QZLR4-SM-Q^>2E* zq$&wi$XCcdjzPZSo;D@((6Nzlf&|*nG}ukvjI%x`FYIUgA*njng$lh1`mE8;q7PJx zvAV6zm-obyYDlc15uq7PxDYWZj1_7Bi7sVB8D127X+a`a%J4vW4zIDWe<|vRe`)5f44O2 z@-Ce<#DD~IS0BsHf603DQykvef6pqFccNzFc1HZ}1k3 zqTKtG=M;TmN$Qd7H5an|8F3IQdLsHh9jr^bUbQFAEq4Kl@e*Qu@U!1!cSpZGo>>dF zJfe9Y7a^Dud9lth>R!Ap$C_e|U$81V5m0LLws&8&7E4?aqexmBknCrkYOdRWQWjOg z40uRA-R=fl$Q8RtWy24N?gt=Uk~apJUrRVCn`B(E*?KVbQo}3{pU(rqM2NVyykt1| zeluQe)H~|yN5>iXNN3UknL)V%#ZVT(#{41+Cyq8_P8Gggc!{;XJK2j;B@f3w2vg!O z`K4}zGT<6@l~EbDvTkLniz6K90ROb>6w^c-Cw(rJTYJ}-zB#nf?4{q%_A;@Xg)fCzwlVbojw>0R>pwLg>af>PY*tua_^(^tD|DVyveI=%n ze__(!z?`f=YO&?RXUIC{KclmmR%?PNI5~{ereAJ8?-jMz<)ZQ#AO+SvPOni@r8rxBCBJv|J;u&m}$%99vh| z@|3(^Uu(E_`NBW1YpQLuKRO;7D><;GcP3RZjJ89&XXmgfqW(jb?^idI16dbL^cr>1 zhk+i&IkEQ?8-653J^oSbsDn3Rn}7WSV*7k3v{!lEr`o_fMJ(H%&Vn_NQR_TU@I8n4 z99eY3O>2eb5@77p7bB}j3J%lDWv{x|`Bp7=%1=tA`*Eciv4!HZh9dVRF3-6^_7*q< z5WIYBoK%KR0f9xXy*TjzR?caFqit^;UP`5y*`~aM<_ibjx8%1MklndPB4a^(PJ%xN zyURc;7`rf&GA0`92Kr=p>2U@B09K-zhOQD=)mYQ4-z}a$g34VGj~!VIXh-B) zp*y-?$QqL7!aNfELvA36{JwJ<&M$_|&SRP+n%c)hB6>wEOvyGo?5x$E{NI0z=eqHy zB>V)!BffKhiaHHDYn1f!1u;riBKWCC67s%_;+~7*Q@*0!d7o0oti=L&o!;?s0IS+} zxIRm>^BK}Az-dw4cL@(wzy-~GxYTSn$Shd{u)qZjgj_t3kcOh>4@4W>E?HJ;*mBx2 zJHHe9xXdCe2>}2k{sQTl0aSnz7yt$=0vc%mAS!^$B!a5R{r`9UlK&vybk)vlaeZDSMJ=;<=LId%`x#$_S)RlXIc+e3ZK*#jb7lPs_;yy zIr;^tq~F|>)OA~|b(HxV^Lhote3jJuqH>9fGgS^aTFYA3)AqFS zW+ha7YYDYT!G~Ueq_YkD%G(4R*MGbWaNzn-sa?>NqP6(FxWJ>3gk~P!TlEc$hxWrQPY~f3m0b?@R;U#||8DhlflnWT zRyz||G})aSLS747!G7dC%MVzbJmRH(tjccryAP7u;Qr{++xtpIgW1%wzw>+=Jj)bNG`~c(vs6f~p($Ms=F3N+lj%3V8pS0P%7lz$M4> zZWHCcr{5yTH$XF@lzZit;x(temlB{WrAvwW7l%)RGsrKKjQD((FYr)h%PE%H>&vNV z6ZxNM_6|Nj(;dCaer7m7UjLctx)N$_xG>LsEz7&OY~_`2!}`kWfZo632KNSH=CeGQ zfgJirvmUFDpYx^3>VrP*$==5^>!I`MnS$0HKfScPTF`3z3M`){=50}&{di-&B$ps$ zdprLs<4Ddt1Zb^&Z^G&R!-aUN;O2kjpZ+FQ*17k3SC#!@wtmyGXFi=1$7NpeuG5RK z3QPX|YRfT$Yk8}7%HhGU`dP2np5^P1f1^3`FJ6~7z(cP5F8e{aa=A&qC{+QvU7V`i zxbXff7xddXol0xW@4v&%hsAi6<_RuM{|>pP|908|n{fdxbZucZhTO2z)>g$4^MX~vel=1Lps~1`(vgmX9rU^9-jS~y;ps9IQL}x>}Wn(<@|U#^Wpj5wUX-d zldTWi=l^#4RH&y1GY_d}$E(%U^V6ek>c#yExH^=p@l8JuefdU1x;Q#N;Rp z?212hB`$(uWDv}I;_;dsU?hnKdWz&M0iy&M9?@%py170+aN&J@9IYRKgSZ?=3!g8T z)knRzsQ8*Bd*vm`fqgmA!JHtILKEu=M`hdy;D$|;Iif1)4DY$#6~e3*xt}iy?XPzt zeEVa6EbN)r(An_&zASbId5Wx0J zVxr(FyHutS=)G)OL0JPD<}uYgNr^4|Jwqn0p$KUWD@J3G%;MyLvTsnH^D|@QaWb>_ zc|l^FPq!G)9$Ll61A<%bgAxKs9*9Sx$_5-JAEtUEjw40geaqn2%3qm)a1fc{9Ptw{ z8k;S_W@@zocVBO{6zeQ~L%R+u9v3#3MnJ+q3W(B^R?9;}4t5!Zqf=F4#DQC}bgS2H zAvV$dl#X}%)RcdgM9@4SR}Fd^3%N>w>o0Y`6$`q+rY>0hr#DqWJTp}|e|H1jx+jTA zD7{k|mFS&Y07-*(-=Kd#bhp^Ox@{7ra=tM1@~3-#!cG@*``OGin^aorWs1xgjZhfX z7%4P<%y^4~mWTs~REw+|%hAeTf3(m5=?SHm;V}ibFyncZzM*vW84{u#aa`fv-S87q z>>X8WAz)L5p{9bvDo(njK?dc|nLi#ml_rr@+G{4&U-d`wNW7=C5AO2L5nG5WayAyz z+)^aX#eRTP{bRIC=TF$+^5mzLH@W3u!)h-#5)#K2u*XmVCZ8OMGd1}5j`q4mIv;jG z9JWm9ao^c4EQ(YV0ry0&gU>XnvInqj=&Nr)9%%fi{l+CEDeg{y`@^>JS$e(TEd!aa zaX_FM8D_te#L?dS8oZ#cA^e4-!`!X2hbchWlfi+AXQ-Z92Ghy4~W z+R=DhJ@Xx_={`IAU#(1RWgE;@8{BsLojHM=2uN~t3;}h+p9zDm)D_ZbFksmY4sC45@pm)o!WswqK zU(f38T<=+TEQZvbx4ND7Q02>)oYF;ia|1slEtoRx(#6F7EAh_5pX?mnHD_m(4Xx*p zr&&)Sbk|}kW(*(fVJGIQs0JHvy>4`S30c_HScs zOK=qA6Kj#hXok+L<9x)rammF>qibrMP#!~T?-uP8c@c)W!e*t|oG#7Iv z01yyBr3d~`o?`$200)4l7dtNU+?kLGX-3JhH8JGh(L=XdFDgVm8}%-~Cr*HBHAs0U z)srA5sO&o%=<&fv)|yZ_YgI%^SM?b1Gz$`G@u=|{KIsXX?TY3tVG=FgzfqfkkfnXo zU$<_ahPE?F*qD++rLdT)Ynr_;zmYZB>o=@$IIDEK^|?07m218h1dbA|E02A1y9;^i zCx&9{tG`!cXx_GN1TIW{^k|7;8-lJaHn+U<0aztYf1p_y4CQy9%qbbjy?#_-CcmT^9 z|2ueDeaALEu4Uh=$M16tmH+djov!9Q9q#rQCnen_{Y%{b=jqz!ueV;e^C{Zvesc@1 zy#5`wxJ!6>3l-RB_v}n-E%y<4pk(}+pn>;7RR3+1o9XkAS&|D|6=BLj;?L?A=-G1L z6m+vf!_BDiY|k2lsP{|_ZF?7)i%#9mk5m45e7uxY1NMiDvCst)VYF-F@6hA z1da7Bf=a~9n&dTw_O!iNnKDP~i`W0U)pKz3t5`{L3 z;%=tM7bZ6-_!Punqi)2O)i&F1R#F>n&E;d7_hPGmJhvNGFR{0?diVc0pnc5~zQ#QR z>*)psC+eJvwV20V34Ujj9A23A=>+ZN2@O^Q>ha=W%F!{`$n4#FR)?^|#tH3dhmRAFKLv;V ziZf_e-5;F|y+ggNRnNEm#=jZsVXtL8?eNP&pW5xgx)d*5d))mRy;bpk(0+epW&0G# zru990sY!!MI=AjGVkwAMEr08B0voWLiW}vxbly{!2|{eWUmzC5X9Gy1-iI(qy!>&+-^S;MGZW}M%RZKpK-jD~OS5>25aeWbO|0fgv5Q~e3k_WfTq z(eaZD$5es$$Q90AaawzEI1A+IwvA)-Wx51)XMvUB^0jg5ljwWJ)?iF_P31T1N-}SPz^M;`#mC$nk!c_#q5A->;(uoq7MzB0jg=%>-*aT4_8eI|9sgh4B`FK#VRQo?@voy!8t4>r1|txkE4q#MZr zv+pI1TUX3~Gn%6vj3RPd@0|6=PfmY){J{TE!Kc)N^);aayq<1wSb zm=={YY^v+6`odkcmnnU?OZy(f**zM!_mdFno+4jRMXZs;;kd0ajD-?}vrT>^=K0WC~zS9YET3XbGU4G z>LE}S<7K=??v8;!O8((1Vq!2c756+XWljGrN=4B2k_%^?a>zYn#{uKZ>N3JyP3y)R zyNOzhDU#dsJ`7*SC*!4SgXr&4ey3!Dp-%6KJTw(xVcC%YA#IHFFy(AdwxjaA>)l%( zh=8^EXO(N+71DP>mOuXvj5P1PA6$|(nHos`@Mu}^am9baVNcPq_K^bJHTe4YJ$`;_ zAn?(Sova(ZV@K!7bgEPM)}_mmNvCFNZ@A@s0?nKzmUA>~vqF>&meszk-%J+!*HQKO zwqX61vPz4H#4n@oUz#Fnt_OWOh8W}WZhAV@;GV@lbTK5V*vZvtbMJ0SN0!nklqtGoFo+V`u(KB@kKeIb88 zyoMJVgsW+N-*w@;vCLa^k%_*vG{n|ID&<@Gm-|JE@NvW?*j%t~>TCLu{=PPen_S!r+@W$Kk>F>RT z*+ku*|L!iaP&0;z#zYjl_kIP|n{r*b+FPs<`!YViF6`7s684TV9Hpw@R&EPd(S6!< zSe0@`{jQ5f&rA|~9%Cfio%?7>uEY9kCFyJeRmu%%H~sugc=X*QZU8X=4%ZHv($6D% zsV$$a8k>rY*SSqk#w9g)6*W88@9xih6gaB8QMd8cic7HR>{1cx^SWyiS8EO})%2;- zyJOFQ*XeI(6CO43|K_Is#GVhd6gS!3q>1M)5Dt;t)YW>{9uK#dS%W{E8+)VP-S^_tr%;EG$g@*h z29xlO*K^B?j8N;*SDZ5uGtXSj3I1(dIYQAoKp9V4t-5>9hl}LvlT6vCSCpX?ezLow zTK?WMm+o47e*OCnkAn!gBOwx#iW1tp9F85*(eRIroWgdnUcSSn*PbU6-~5+h9B7Ok zyN9LmXwK`e`I}`=L^naBBqUGRq69hG)gx)QT)<$e!|Kl*N5%Gv`q;im-a2(C2KFqQ zhEBlX17+Rs1FJEH`O<``__rz3@RHEUf=7uP7~Q6kcxldx#nlKNwHM1zOh+(!Q?8&2 z#&8kNh>1)NsOG~@A08LsBYp-)=xV!m_1ISRI=dc(1069dCVI(-9Hbhq&$UP>5DS*W z3YlKN_S0*W&zYX!+Va6u=BHPPcF>zAPb39Ii!wPoUG=7NK|4pN>)agU1zt%rJg-Xp zsJRAxA=kd*ZB-m?g{LEL3IxC$g(xL2_}-~g=b0|pg?%J1zGMS=ZzQe&AEAZS)#g@+ zx^EWD7Ua!&f^d5x`{K<}7~M>i!Xpf$qaLG`FSM{m|5F^;?);48(^oWvVA)> zcLH;Tc7WM2j64j_JG@Q8p#k$cvDY}S6diNimL+x(LW@1{Y73ZIDQGN;(*hLzW7$h| zmyvs%A#{wvJt~+rPv>Q()0^Y4wa~mr zQbgayOZ(_?ljB{;gef91PL5l3K0ysjqIM)u;jH$5pI-f(3_+z~uzHaK>QnQq9x*|e zP)xZP+|g{BSYC={a$G+t{XegC)_1DYT->+%li^G+kn8E9fzJx*GGy#l0t$D z#C!W`u9FzfbzVppXGtBf36#PkkuFG1ekEvfyU9pmEmMFTkBZ^^J@d@p9cnFT5c@YR zCWfQJCn3L=NrUEst4QA>m#LnYX=$)JcIq_LDQ=kzJ{gL|K+*|CtfmCS#LY^ zpmGvG@nBE=)pWtRpJbV#6*QU?K?wjl3S zr*it3@Ykc#nVbpQXld%3PKuIw+MtSPrxme;3p%I+|Cpu(L`0wIl|+c6ELN!|=rOE7 zO^IozblRzQils#9>~tW#PFhp1m#Q#G{8tJ@l@*Mk~3X>Jlaqi7nbetE9G1V_Hg z5asm`r2q?vnGxAqHS)TxYgw)^v8G-*NB6das(89TBRru?0u)1BS{$ zz*i9v8=SucOmJmh3_+}!Y8oCJ9e?nr9Q1up|HQ9O8nENlIn|(}X6UXAaS!mos|(8! zSwjl800m0BkBzYg{9|S5`v|5eWs`8H+m+-g^(K zTeL;nyn!{o7O_UuJBnFGE&o)#|DX-{(Glsu4gavcL@TrlTffaqxHEB6`wNK4@=t1| zJ;cip6}J-U01p4Kyt~T4w@aa;_PB3_5B@k2Z`uzTtiii#yFqKerBP*72AauW4;S1N z9L&8R48kxx6Z&hu=a6@yvl35e9OaPd=Wt0g=H|47BQTzcf?4{ z!CG^?o;$}YAz~SU#;WxR)B?L6|Fg$lfyCT^yxS|ZE-c8U^~7}B5d-TvhDEL2JFW2n!IiN506aAVVKD)p|&h0t&%oD3x~z6cf?Apy~q2-E!@KPpv0srv|{`Y zVh9tL+&OYIL7OZs0EM|a8W`FO4t>15a4gMA+`;k-5B4C(s$3DokY15SLC9P|vTQ-p zlD-rX32R&x23!$t%)IbRy1WX_e!R_m1XQfNw!NfN-hfxZv{U!2%oef8roqASd=VTx z&rA%yFf7H&k}M3pt6>&bhMdeCw1Cn=v<$Jp^z0FC+c_0vsWg|x(sIz*yS*Fj5$?QV z9sy#iWzn(Wy$Gzt(7eGz|GT$wtk82@MgNQuA9lHSBnhmiA_Ohd?)=7Cqs=GXId^5T z6~R^ld#eRK5%b)*S%cFjJ-59CVp@$$>4jzGO3)S|%|&a~O*~Y}V$acgx7ka`jEc}f zd%RwZ)M6}D_srIFoWs*x)4O`qS8Xg;Z4ohjz%otB8U5E3fn`{hEX(}Yq|3q7E7xMI zM!icB0JYeZ3=T7Wz?l8lUj4sU*1KzD*_7PQkR91=^uzy@+LfKwb!@n#%MAyO*>1hf z`m5TueN!UlkJNHF$qJgY%@AO1*x_Yft^K*%``ZW&+rr({{nW5?3=fa|+skbcRlL#Q zFv`tG0<~^vz%@7ph5#>D*u=QH+ z&8V;&-x%SxAA}99wYIMnEcs2t_8`P2+@~`E;Qn2>Qp>?)Ti{fzz7*jxvWW}i$Pu_e z46DH5(O3~rE8$d}ptum3A&wCn)8YP2y4~F37jc&pu?dP0)FQ5R2X0d*j7`QM3(P<< z*^m((Ufyoo;Fbh|rN9t|@DGVl3sVtq?lF%5pr_z5bzbKbapKLF=72b*o)8E|oa7AQ z2bY$rLrz~XAq&?@5wU4X&U7{;{nY`DU@lP$!ScTa#TbV#Ze1N1&0&`&73mx zH09(uscFhQAexe5ikgTbDm5y2$`hv&PoN-p-1PZe-)ryvC+zFmKRnmN^S}?!;l9^v zt@TP50|%X+hO-<+p}ALCSQ3eO26A4bJ^|tZB>21kNSfj z!jKojJv_F3tN*-b+xFC}+jf5XiGDNFZ`-yRJl?*|K)>Jq>D=QT|L5Bsc8?AI@6Vrp zm}B+)k8Rt&+jilHbHB!IpM9jrem3kgUIFQUAEWGPh~PTx4E>G^3Q5@(@coeSAOHP& z&sTCI%RT@6_p5{Vcl=jpQoZ%Z4{54zbbl2^|3$g04gcdn*Mk#Bk7gX(^_4rw|McmM zIo3qP%cKQZOL?j9!piTlkNQh$60U!A#?vF575;0LabnTXYP^xq)G>box zIL!moDAK@%c#)O4uFEaxD8{kK>y;>K?L7-zE!w%dJDi~;DHYIUf*nS?T#BIT*lY8z z*Rsye$8|cjCSidi2z$-ahX&9Q-Rn+Lr&EI`GK! zV_!Abv3x0haY&(EPa+{*n#3;ZK|k)2d^dTlBI~R?Mjm8V7U8x&NHAGSO5ONeWa0%^ zZh_)IJSlCFC$QzWZIW8`AT7{82us>Q4gS8q`8_nJgu;snnO2D>HU^lo z8_b?$JjL1i#GWmwQYi_S-Bub;IkdZ+c1nWJc5)qeBx!ma1Qdl~(xM@)B~UIDteuV8 zK`l>`Q+p!$$F>GB8-wq~ZYL+sR?&{6&OY2ac7>JSRvhGbjKoFYL-rmQuXzCpV-pfUo(%Lpsp+= ziH}ZbyR$cjvYnR#VJ{LdPxzR8IGVpu4v@!A1+4%g5p1>K-k)8Mpk{R z`LR?;i

J^q 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

P3&o&boU1&Z(d~_XJeDf``Ttdy=IO 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 z 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 MIR8xkukT;~2e6VDjsO4v literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity01.png b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity01.png new file mode 100644 index 0000000000000000000000000000000000000000..fc998c51ae7fbf2e9d92850d7828082aa68b872f GIT binary patch literal 122040 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 Id5e($0Y=O9AOHXW literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity02.png b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity02.png new file mode 100644 index 0000000000000000000000000000000000000000..f5896010b24d0f8571e3a7795506a087e7401fba GIT binary patch literal 189293 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%0DNScS$f@Eo`~ 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

r&lk$T#LsC>tX4` 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%0A~_j7ly>7>dq4;13>vKUTnB&OPATL|D9k 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�oEERR=D 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®L4lLBtRo#jv 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 z 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity05.png b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_commodity05.png new file mode 100644 index 0000000000000000000000000000000000000000..a0a50da0ef61692f020e4c29bfe972edfc5c4216 GIT binary patch literal 191819 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

l-Qw)#`pevc1dNsWQ?L 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�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 z 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 z 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_views.svg b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_views.svg new file mode 100644 index 00000000..a8fc8a61 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/base/media/page_loading_views.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/rawfile/routerMap/pageloading.json b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/rawfile/routerMap/pageloading.json new file mode 100644 index 00000000..fa1931b2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/resources/rawfile/routerMap/pageloading.json @@ -0,0 +1,10 @@ +{ + "routerMap": [ + { + "name": "pageloading/PageLoading", + "pageModule": "pageloading", + "pageSourceFile": "src/main/ets/generated/RouterBuilder.ets", + "registerFunction": "pageLoadingRegister" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 00000000..0f8ce9a2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { hilog } from '@kit.PerformanceAnalysisKit'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function abilityTest() { + describe('ActsAbilityTest', () => { + // 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/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000..1eac52fc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device 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 abilityTest from './Ability.test'; + +export default function testsuite() { + abilityTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/module.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/module.json5 new file mode 100644 index 00000000..41b2a99d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/module.json5 @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2025 Huawei Device 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. + */ + +{ + "module": { + "name": "pageloading_test", + "type": "feature", + "deviceTypes": [ + "default", + "tablet" + ], + "deliveryWithInstall": true, + "installationFree": false + } +} diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets new file mode 100644 index 00000000..f1186b1f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets @@ -0,0 +1,20 @@ +/* + * Copyright (c) 2025 Huawei Device 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 localUnitTest from './LocalUnit.test'; + +export default function testsuite() { + localUnitTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets new file mode 100644 index 00000000..7fc57c77 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2025 Huawei Device 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 { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; + +export default function localUnitTest() { + describe('localUnitTest', () => { + // 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/sample/EnhanceSampleArk1.2/StateManagement/.gitignore b/sample/EnhanceSampleArk1.2/StateManagement/.gitignore new file mode 100644 index 00000000..42904af5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/.gitignore @@ -0,0 +1,10 @@ +/node_modules +/local.properties +/.idea +**/build +/.hvigor +.cxx +/.clangd +/.clang-format +/.clang-tidy +/oh_modules \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/AppScope/app.json5 b/sample/EnhanceSampleArk1.2/StateManagement/AppScope/app.json5 new file mode 100644 index 00000000..10a0cdb2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/AppScope/app.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "app": { + "bundleName": "com.samples.statemanagement", + "vendor": "samples", + "versionCode": 1000000, + "versionName": "1.0.0", + "icon": "$media:app_icon", + "label": "$string:app_name", + "distributedNotificationEnabled": true + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/element/string.json new file mode 100644 index 00000000..1080233f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "app_name", + "value": "MyApplication" + } + ] +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/media/app_icon.png b/sample/EnhanceSampleArk1.2/StateManagement/AppScope/resources/base/media/app_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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'currentModelStatus', this.currentModelStatus)来更改夜间模式的状态,,在Ability1页面和Ability页面通过onClick事件中的this.currentModelStatus = !this.currentModelStatus,主页和Ability2页面通过@StorageLink声明一个控制字体大小的状态变量contentFontSize,Ability1页面通过@StorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize = value和AppStorage.SetOrCreate('contentFontSize', this.contentFontSize)来更改内容字体的大小,Ability1通过onChange事件中的this.contentFontSize = value来修改内容字体大小。 +* Ability内全局数据与UI之间的状态同步:在Entry当中声明一个storage,并通过this.storage.setOrCreate('currentModelStatus', true)和this.storage.setOrCreate('contentFontSize', 18)来设置夜间模式状态变量currentModelStatus和字体大小状态变量contentFontSize,然后主页、Page1页面、Page2页面和跨Ability页面通过@LocalStorageLink声明一个控制夜间模式的状态变量currentModelStatus,在主页面通过onChange事件中的this.currentModelStatus = isOn来更改夜间模式的状态,Page1页面、Page2页面和跨Ability页面通过onClick事件中的this.currentModelStatus = !this.currentModelStatus来更改夜间模式的状态,主页、Page1页面和跨Ability页面通过@LocalStorageLink声明一个控制字体大小的状态变量contentFontSize,Page1页面通过@LocalStorageProp声明一个控制字体大小的状态变量contentFontSize,主页使用onChange事件中的this.contentFontSize = value和AppStorage.SetOrCreate('contentFontSize', this.contentFontSize)来更改内容字体的大小,Page2通过onChange事件中的this.contentFontSize = value来修改内容字体大小。 + +### 相关权限 + +不涉及。 + +### 依赖 + +不涉及。 + +### 约束与限制 + +1.本示例仅支持标准系统上运行。 + +2.本示例已适配API version 9版本SDK,版本号:4.0.5.2。 + +3.本示例需要使用DevEco Studio 3.1 Beta2 (Build Version: 3.1.0.400, built on April 7, 2023)才可编译运行。 + +### 下载 + +如需单独下载本工程,执行如下命令: + +``` +git init +git config core.sparsecheckout true +echo code/UI/StateManagement/ > .git/info/sparse-checkout +git remote add origin https://gitee.com/openharmony/applications_app_samples.git +git pull origin master + +``` \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/build-profile.json5 b/sample/EnhanceSampleArk1.2/StateManagement/build-profile.json5 new file mode 100644 index 00000000..23373b24 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/build-profile.json5 @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "app": { + "signingConfigs": [], + "compileSdkVersion": 9, + "compatibleSdkVersion": 9, + "products": [ + { + "name": "default", + "signingConfig": "default", + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/.gitignore b/sample/EnhanceSampleArk1.2/StateManagement/entry/.gitignore new file mode 100644 index 00000000..5a6ba80f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/.gitignore @@ -0,0 +1,4 @@ +/node_modules +/.preview +/build +/.cxx \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/build-profile.json5 b/sample/EnhanceSampleArk1.2/StateManagement/entry/build-profile.json5 new file mode 100644 index 00000000..ddd6e5f1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/build-profile.json5 @@ -0,0 +1,28 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "apiType": 'stageMode', + "buildOption": { + }, + "targets": [ + { + "name": "default" + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/hvigorfile.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/hvigorfile.ts new file mode 100644 index 00000000..80e4ec5b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { hapTasks } from '@ohos/hvigor-ohos-plugin'; diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/oh-package.json5 b/sample/EnhanceSampleArk1.2/StateManagement/entry/oh-package.json5 new file mode 100644 index 00000000..907d65a0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/oh-package.json5 @@ -0,0 +1,24 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "ISC", + "devDependencies": {}, + "name": "entry", + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/CodeView.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/CodeView.ets new file mode 100644 index 00000000..6b953295 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/CodeView.ets @@ -0,0 +1,84 @@ +/* + * Copyright (c) 2023 Huawei Device 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 webView from '@ohos.web.webview'; +import { TitleBar } from './TitleBar'; + +@Component +export struct CodeView { + @BuilderParam contentView: () => void; + @Link title: Resource; + @StorageLink('sideBarShow') sideBarShow: boolean = false; + @StorageLink('webSrc') @Watch('webSrcChange') webSrc: Resource = $rawfile('BaseTypeCode.ets.html'); + @StorageLink('currentBreakpoint') curBp: string = 'sm'; + private isShowTitle: boolean = true; + private controller: webView.WebviewController = new webView.WebviewController(); + + webSrcChange():void { + this.controller.loadUrl(this.webSrc); + } + + @Builder codeView() { + Column({ space: 10 }) { + Text($r('app.string.close')) + .fontSize($r('app.float.source_code_font_size')) + .fontColor(Color.White) + .alignSelf(ItemAlign.End) + .id('close') + .onClick(() => { + this.sideBarShow = !this.sideBarShow; + }) + Column() { + Web({ src: this.webSrc, controller: this.controller }) + .width('100%') + .height('100%') + } + .height('100%') + .width('100%') + .padding({ bottom: $r('app.float.code_view_bottom') }) + } + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.code_view_background')) + } + + build() { + Column() { + if (this.isShowTitle) { + TitleBar({ title: $title }) + } + SideBarContainer(this.curBp === 'sm' ? SideBarContainerType.Overlay : SideBarContainerType.Embed) { + this.codeView() + Scroll() { + this.contentView() + } + .width('100%') + .height('100%') + .align(Alignment.Top) + .scrollBar(BarState.Off) + } + .autoHide(false) + .showSideBar(this.sideBarShow) + .layoutWeight(1) + .sideBarWidth('100%') + .showControlButton(false) + // 大型设备查看源码和界面4:6的比例,所以占60% + .maxSideBarWidth(this.curBp === 'sm' ? '100%' : '60%') + .sideBarPosition(SideBarPosition.End) + } + .width('100%') + .height('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBar.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBar.ets new file mode 100644 index 00000000..3f13f238 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBar.ets @@ -0,0 +1,56 @@ +/* + * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router'; +import common from '@ohos.app.ability.common'; +import { startSpecifiedAbility } from '../utils/StartAbilityUtils'; + +//声明一个上下文信息 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct TitleBar { + @Link title: Resource; + private isAbility: boolean = false; + + build() { + Column() { + Row() { + Button() { + Image($r('app.media.ic_back')) + .size({ width: $r('app.float.icon_back_size'), height: $r('app.float.icon_back_size') }) + } + .backgroundColor($r('app.color.background_shallow_grey')) + .id('backBtn') + .onClick(() => { + this.isAbility ? startSpecifiedAbility(CONTEXT, 'EntryAbility') : router.back(); + }) + + Text(this.title) + .fontSize($r('app.float.title_font_size')) + .margin({ left: $r('app.float.title_margin') }) + } + .width('100%') + .padding($r('app.float.page_padding')) + + Divider() + .width('100%') + .height($r('app.float.divider_height')) + .color($r('app.color.divider_color')) + .margin({ bottom: 12 }) + } + .width('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBarDark.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBarDark.ets new file mode 100644 index 00000000..59960259 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/TitleBarDark.ets @@ -0,0 +1,57 @@ +/* + * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router'; +import common from '@ohos.app.ability.common'; +import { startSpecifiedAbility } from '../utils/StartAbilityUtils'; + +//声明一个上下文信息 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct TitleBarDark { + @Link title: Resource; + private isAbility: boolean = false; + + build() { + Column() { + Row() { + Button() { + Image($r('app.media.ic_back_white')) + .size({ width: $r('app.float.icon_back_size'), height: $r('app.float.icon_back_size') }) + } + .id('backBtn') + .onClick(() => { + this.isAbility ? startSpecifiedAbility(CONTEXT, 'EntryAbility') : router.back(); + }) + .backgroundColor($r('app.color.nightnode_color')) + + Text(this.title) + .fontSize($r('app.float.title_font_size')) + .margin({ left: $r('app.float.title_margin') }) + .fontColor(Color.White) + } + .width('100%') + .padding($r('app.float.page_padding')) + + Divider() + .width('100%') + .height($r('app.float.divider_height')) + .color($r('app.color.divider_color')) + .margin({ bottom: 12 }) + } + .width('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/ViewCodeText.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/ViewCodeText.ets new file mode 100644 index 00000000..345c0bf8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/commoncomponents/ViewCodeText.ets @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +@Component +export struct ViewCodeText { + @StorageLink('sideBarShow') sideBarShow: boolean = false; + private webSrc: Resource = $rawfile('BaseTypeCode.ets.html'); + + build() { + Column(){ + Text($r('app.string.source_code')) + .fontColor($r('app.color.source_code_font_color')) + .fontSize($r('app.float.source_code_font_size')) + .alignSelf(ItemAlign.End) + .id('viewSourceCode') + .onClick(() => { + // 点击查看源码 + AppStorage.SetOrCreate('sideBarShow', !this.sideBarShow); + AppStorage.SetOrCreate('webSrc', this.webSrc); + }) + } + .width('100%') + .justifyContent(FlexAlign.End) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/entryability/EntryAbility.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/entryability/EntryAbility.ts new file mode 100644 index 00000000..65e352cd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/entryability/EntryAbility.ts @@ -0,0 +1,92 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import type window from '@ohos.window'; +import Logger from '../utils/Logger'; +import display from '@ohos.display'; + +const TAG: string = 'EntryAbility'; +const FONT_SIZE: number = 18; +const DPI: number = 160; +const SMALL_SCREEN_WIDTH: number = 520; +const MIDDLE_SCREEN_WIDTH: number = 520; + +export default class EntryAbility extends UIAbility { + private storage: LocalStorage; + + onCreate(want, launchParam): void { + this.storage = new LocalStorage(); + this.storage.setOrCreate('currentModelStatus', true); + // 设置当前内容字体为18 + this.storage.setOrCreate('contentFontSize', FONT_SIZE); + Logger.info(TAG, 'Ability onCreate'); + } + + onDestroy(): void { + Logger.info(TAG, 'Ability onDestroy'); + } + + updateBreakpoint(windowWidth: number): void { + let windowWidthVp: number = windowWidth / (display.getDefaultDisplaySync().densityDPI / DPI); + let curBp: string; + // 520以及840分别为小屏和中屏的最大宽度 + if (windowWidthVp < SMALL_SCREEN_WIDTH) { + curBp = 'sm'; + } else if (windowWidthVp < MIDDLE_SCREEN_WIDTH) { + curBp = 'md'; + } else { + curBp = 'lg'; + } + Logger.info(TAG, `breakpoint: ${curBp}`); + AppStorage.SetOrCreate('currentBreakpoint', curBp); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + Logger.info(TAG, 'Ability onWindowStageCreate'); + windowStage.getMainWindow().then((windowObj) => { + let windowWidth: number = windowObj.getWindowProperties().windowRect.width; + this.updateBreakpoint(windowWidth); + windowObj.on('windowSizeChange', (currentWindowSize) => { + let currentWindowWidth: number = currentWindowSize.width; + this.updateBreakpoint(currentWindowWidth); + + if (windowObj.getWindowProperties().isFullScreen) { + Logger.info(TAG, 'isFullScreen'); + } + if (windowObj.getWindowProperties().isLayoutFullScreen) { + Logger.info(TAG, 'isLayoutFullScreen'); + } + }); + }); + windowStage.loadContent('pages/home/Home', this.storage); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + Logger.info(TAG, 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + Logger.info(TAG, 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + Logger.info(TAG, 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/outofsyncability/OutOfSyncAbility.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/outofsyncability/OutOfSyncAbility.ts new file mode 100644 index 00000000..34907c61 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/outofsyncability/OutOfSyncAbility.ts @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import type window from '@ohos.window'; +import Logger from '../utils/Logger'; + +const TAG = 'OutOfSyncAbility'; + +export default class OutOfSyncAbility extends UIAbility { + onCreate(want, launchParam): void { + Logger.info(TAG, 'Ability onCreate'); + } + + onDestroy(): void { + Logger.info(TAG, 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + Logger.info(TAG, 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage', (err, data) => { + if (err.code) { + Logger.error(TAG, `Failed to load the content. Cause: %{public}s${JSON.stringify(err)}`); + return; + } + Logger.info(TAG, `Succeeded in loading the content. Data: %{public}s${JSON.stringify(data)}}`); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + Logger.info(TAG, 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + Logger.info(TAG, 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + Logger.info(TAG, 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync.ets new file mode 100644 index 00000000..51c5da1f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync.ets @@ -0,0 +1,50 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { AbilityGlobalDataSyncCode } from './AbilityGlobalDataSyncCode'; +import { CodeView } from '../../../commoncomponents/CodeView'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +let storage: LocalStorage = LocalStorage.GetShared(); + +@Entry(storage) +@Component +struct AbilityGlobalDataSync { + @State title: Resource = $r('app.string.ability_storage_ui'); + // 初始化夜间模式的状态 + @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true; + + build() { + Column() { + // 展示不同模式下的标题 + if (this.currentModelStatus) { + TitleBarDark({ title: $title }) + } else { + TitleBar({ title: $title }) + } + CodeView({ title: $title, isShowTitle: false }) { + AbilityGlobalDataSyncCode() + } + } + .width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSyncCode.ets new file mode 100644 index 00000000..d3a74ebb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSyncCode.ets @@ -0,0 +1,142 @@ +/* + * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router'; +import common from '@ohos.app.ability.common'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { startSpecifiedAbility } from '../../../utils/StartAbilityUtils'; + +// 声明一个上下文信息 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct AbilityGlobalDataSyncCode { + // 初始化字体大小最小值 + private minFontSize: number = 10; + // 和主页、Page1、Page2双向同步内容字体大小 + @LocalStorageLink('contentFontSize') contentFontSize: number = 18; + // 和主页、Page1、Page2双向同步夜间模式状态 + @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true; + + build() { + Column({ space: 10 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('AbilityGlobalDataSyncCode.ets.html') }) + Row() { + Text($r('app.string.nightmode')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + // 控制夜间模式 + Toggle({ type: ToggleType.Switch, isOn: this.currentModelStatus }) + .id('nightModeSwitch') + .selectedColor(Color.Blue) + .switchPointColor(Color.White) + .onChange((isOn: boolean) => { + // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageLink关联的数据变量刷新 + this.currentModelStatus = isOn; + }) + }.justifyContent(FlexAlign.SpaceAround) + .width('70%') + .border({ radius: 50, color: Color.Grey, width: $r('app.float.border_width') }) + + Text($r('app.string.ability_storage_nightmodelsync')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .textAlign(TextAlign.Center) + // slider滑动模块控制字体大小 + Column() { + Text($r('app.string.fontSize_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Text(`${this.minFontSize}`) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + Slider({ + value: this.contentFontSize, + min: 10, // 字体大小最小值 + max: 30, // 字体大小最大值 + style: SliderStyle.OutSet + }) + .showTips(true) + .onChange((value: number, mode: SliderChangeMode) => { + // 更新控制字体大小状态的变量数据,@LocalStorageLink和@LocalStorageProp关联的数据变量刷新 + this.contentFontSize = value; + }) + // toFixed(0)将滑动条返回值处理为整数精度 + Text(this.contentFontSize.toFixed(0)) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + } + .width('80%') + }.margin({ top: 50 }) + + Text($r('app.string.ability_storage_fontsizesync')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text($r('app.string.enter_pageone')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('enterPageOne') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + router.pushUrl({ url: 'pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage' }); + }) + + Button() { + Text($r('app.string.enter_pagetwo')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('enterPageTwo') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + router.pushUrl({ url: 'pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage' }); + }) + + Divider().width('100%').strokeWidth(1) + Button() { + Text($r('app.string.enter_ability_outofsync')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('enterOutOfAbility') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + startSpecifiedAbility(CONTEXT,'OutOfSyncAbility'); + }) + } + .width('100%') + .padding(10) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage.ets new file mode 100644 index 00000000..3317326a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +let storage: LocalStorage = LocalStorage.GetShared(); + +@Entry(storage) +@Component +struct AbilityOutOfSyncPage { + // 判断是否关联ability的变量 + @State isAbility: boolean = true; + @State title: Resource = $r('app.string.localStorage_abilitytitle'); + // 和主页、Page1、Page2不同步夜间模式状态 + @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 和主页、Page1、Page2不同步内容字体大小 + @LocalStorageLink('contentFontSize') contentFontSize: number = 18; + + build() { + Column() { + if (this.currentModelStatus) { + TitleBarDark({ title: $title, isAbility: true }) + } else { + TitleBar({ title: $title, isAbility: true }) + } + CodeView({ title: $title, isShowTitle: false }) { + Column({ space: 30 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('AbilityOutOfSyncPage.ets.html') }) + Text($r('app.string.localStorage_both_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.localStorage_single_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.enter_ability_outofsync_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('nightModeSwitchFour') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + // 更新控制夜间模式状态的变量数据,@LocalStorageLink和@LocalStorageProp关联的数据变量刷新 + this.currentModelStatus = !this.currentModelStatus; + }) + } + .height('100%') + .padding($r('app.float.page_padding')) + } + } + .width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage.ets new file mode 100644 index 00000000..585f6575 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage.ets @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +let storage: LocalStorage = LocalStorage.GetShared(); + +@Entry(storage) +@Component +struct StorageLinkAbilityPage { + @State title: Resource = $r('app.string.localStorage_pagetitletwo'); + // 和主页、Page2双向同步夜间模式状态 + @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 和主页、Page2双向同步内容字体大小 + @LocalStorageLink('contentFontSize') contentFontSize: number = 18; + + build() { + Column() { + if (this.currentModelStatus) { + TitleBarDark({ title: $title }) + } else { + TitleBar({ title: $title }) + } + CodeView({ title: $title, isShowTitle: false }) { + Column({ space: 30 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('LocalStorageLinkPage.ets.html') }) + Text($r('app.string.localStorage_both_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.localStorage_single_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('nightModeSwitchThree') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + // 更新控制夜间模式状态的变量数据,@LocalStorageLink和@StorageProp关联的数据变量刷新 + this.currentModelStatus = !this.currentModelStatus; + }) + + Text($r('app.string.localStorage_nigntmode_both_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + } + .height('100%') + .padding($r('app.float.page_padding')) + } + } + .width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage.ets new file mode 100644 index 00000000..919d3fc2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage.ets @@ -0,0 +1,123 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +let storage: LocalStorage = LocalStorage.GetShared(); + +@Entry(storage) +@Component +struct StoragePropAbilityPage { + @State title: Resource = $r('app.string.localStorage_pagetitleone'); + // 初始化字体大小最小值 + private minFontSize: number = 10; + // 和主页、Page1双向同步夜间模式状态 + @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 和主页、Page1单向同步内容字体大小 + @LocalStorageProp('contentFontSize') contentFontSize: number = 18; + + build() { + Column() { + if (this.currentModelStatus) { + TitleBarDark({ title: $title }) + } else { + TitleBar({ title: $title }) + } + CodeView({ title: $title, isShowTitle: false }) { + Column({ space: 20 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('LocalStoragePropPage.ets.html') }) + Text($r('app.string.localStorage_both_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.localStorage_single_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('nightModeSwitchTwo') + .padding($r('app.float.page_padding')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新 + this.currentModelStatus = !this.currentModelStatus; + }) + + Text($r('app.string.localStorage_nigntmode_both_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + // slider模块控制字体大小 + Column() { + Text($r('app.string.fontSize_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Text(`${this.minFontSize}`) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + Slider({ + value: this.contentFontSize, + min: 10, // 字体大小最小值 + max: 30, // 字体大小最大值 + style: SliderStyle.OutSet + }) + .showTips(true) + .onChange((value: number, mode: SliderChangeMode) => { + // 更新控制字体大小的变量数据,@LocalStorageLink关联的数据变量不刷新同步 + this.contentFontSize = value; + }) + // toFixed(0)将滑动条返回值处理为整数精度 + Text(this.contentFontSize.toFixed(0)) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + } + .width('80%') + }.margin({ top: 50 }) + + Text($r('app.string.localStorage_single_fontsize_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding($r('app.float.page_padding')) + } + } + .width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync.ets new file mode 100644 index 00000000..01bacde1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync.ets @@ -0,0 +1,47 @@ +/* + * Copyright (c) 2023 Huawei Device 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 ApplyGlobalDataSyncCode from './ApplyGlobalDataSyncCode'; +import { CodeView } from '../../../commoncomponents/CodeView'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +@Entry +@Component +struct ApplyGlobalDataSync { + @State title: Resource = $r('app.string.application_storage_ui'); + // 当前夜间模式的状态 + @StorageLink('currentModelStatus') currentModelStatus: boolean = true; + + build() { + Column() { + // 展示不同模式状态下的标题 + if (this.currentModelStatus) { + TitleBarDark({ title: $title }) + } else { + TitleBar({ title: $title }) + } + CodeView({ title: $title, isShowTitle: false }) { + ApplyGlobalDataSyncCode() + } + }.width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSyncCode.ets new file mode 100644 index 00000000..f0d6ac51 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSyncCode.ets @@ -0,0 +1,125 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { startSpecifiedAbility } from '../../../utils/StartAbilityUtils'; + +// 声明一个上下文信息 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export default struct ApplyGlobalDataSyncCode { + // 和Ability1、Ability2页面双向同步内容字体大小 + @StorageLink('contentFontSize') contentFontSize: number = 18; + // 和Ability1、Ability2页面双向同步夜间模式状态 + @StorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 初始化字体大小最小值 + private minFontSize: number = 10; + + build() { + Column({ space: 10 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('ApplyGlobalDataSyncCode.ets.html') }) + Row() { + Text($r('app.string.nightmode')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + // 开发控制夜间模式 + Toggle({ type: ToggleType.Switch, isOn: this.currentModelStatus }) + .id('nightModeSwitch') + .selectedColor(Color.Blue) + .switchPointColor(Color.White) + .onChange((isOn: boolean) => { + // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageLink关联的数据变量刷新 + this.currentModelStatus = isOn; + AppStorage.SetOrCreate('currentModelStatus', this.currentModelStatus); + }) + }.justifyContent(FlexAlign.SpaceAround) + .width('70%') + .border({ radius: 50, color: Color.Grey, width: $r('app.float.border_width') }) + + Text($r('app.string.nightmode_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .textAlign(TextAlign.Center) + // slider滑动模块控制字体大小 + Column() { + Text($r('app.string.fontSize_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Text(`${this.minFontSize}`) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + Slider({ + value: this.contentFontSize, + min: this.minFontSize, // 字体大小最小值 + max: 30, // 字体大小最大值 + style: SliderStyle.OutSet + }) + .showTips(true) + .onChange((value: number, mode: SliderChangeMode) => { + // 更新控制字体大小状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新 + this.contentFontSize = value; + AppStorage.SetOrCreate('contentFontSize', this.contentFontSize); + }) + // toFixed(0)将滑动条返回值处理为整数精度 + Text(this.contentFontSize.toFixed(0)) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + } + .width('80%') + }.margin({ top: 50 }) + + Text($r('app.string.fontSize_singlesync_textone')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text($r('app.string.enter_abilityone')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('enterAbilityOne') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + startSpecifiedAbility(CONTEXT, 'StoragePropAbility'); + }) + + Button() { + Text($r('app.string.enter_abilitytwo')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('enterAbilityTwo') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + startSpecifiedAbility(CONTEXT, 'StorageLinkAbility'); + }) + }.padding($r('app.float.page_padding')) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage.ets new file mode 100644 index 00000000..f7ba7a69 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage.ets @@ -0,0 +1,86 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView'; +import { ViewCodeText } from '../../../commoncomponents//ViewCodeText'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +@Entry +@Component +struct StorageLinkAbilityPage { + @State title: Resource = $r('app.string.abilitytwo_page'); + // 判断是否关联ability的变量 + @State isAbility: boolean = true; + // 和主页、Ability1页面双向同步夜间模式状态 + @StorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 和主页、Ability1页面双向同步内容字体大小 + @StorageLink('contentFontSize') contentFontSize: number = 18; + + build() { + Column() { + if (this.currentModelStatus) { + TitleBarDark({ title: $title, isAbility: true }) + } else { + TitleBar({ title: $title, isAbility: true }) + } + CodeView({ title: $title, isShowTitle: false }) { + Column({ space: 30 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('StorageLinkAbilityPage.ets.html') }) + Text($r('app.string.both_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.single_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('nightModeSwitchThree') + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .padding($r('app.float.page_padding')) + .onClick(() => { + // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新 + this.currentModelStatus = !this.currentModelStatus; + }) + + Text($r('app.string.nigntmode_both_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding($r('app.float.page_padding')) + } + }.width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage.ets new file mode 100644 index 00000000..d585ec4b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage.ets @@ -0,0 +1,121 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView'; +import { ViewCodeText } from '../../../commoncomponents/ViewCodeText'; +import { TitleBarDark } from '../../../commoncomponents/TitleBarDark'; +import { TitleBar } from '../../../commoncomponents/TitleBar'; + +@Entry +@Component +struct StoragePropAbilityPage { + @State title: Resource = $r('app.string.abilityone_page'); + // 初始化字体大小最小值 + private minFontSize: number = 10; + // 和主页、Ability2页面双向同步夜间模式状态 + @StorageLink('currentModelStatus') currentModelStatus: boolean = true; + // 和主页、Ability2页面单向同步内容字体大小 + @StorageProp('contentFontSize') contentFontSize: number = 18; + + build() { + Column() { + if (this.currentModelStatus) { + TitleBarDark({ title: $title, isAbility: true }) + } else { + TitleBar({ title: $title, isAbility: true }) + } + CodeView({ title: $title, isShowTitle: false }) { + Column({ space: 20 }) { + // 查看源码 + ViewCodeText({ webSrc: $rawfile('StoragePropAbilityPage.ets.html') }) + Text($r('app.string.both_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Text($r('app.string.single_data_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Button() { + Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode')) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color')) + .fontSize(this.contentFontSize) + .width('60%') + .textAlign(TextAlign.Center) + } + .id('nightModeSwitchTwo') + .padding($r('app.float.page_padding')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新 + this.currentModelStatus = !this.currentModelStatus; + }) + + Text($r('app.string.nigntmode_both_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + // slider模块控制字体大小 + Column() { + Text($r('app.string.fontSize_text')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Text(`${this.minFontSize}`) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + Slider({ + value: this.contentFontSize, + min: this.minFontSize, + max: 30, // 字体大小最大值 + style: SliderStyle.OutSet + }) + .showTips(true) + .onChange((value: number, mode: SliderChangeMode) => { + // 更新控制字体大小的变量数据,@StorageLink关联的数据变量不刷新同步 + this.contentFontSize = value; + }) + // toFixed(0)将滑动条返回值处理为整数精度 + Text(this.contentFontSize.toFixed(0)) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + } + .width('80%') + }.margin({ top: 50 }) + + Text($r('app.string.single_fontsize_binding')) + .fontSize(this.contentFontSize) + .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding($r('app.float.page_padding')) + } + } + .width('100%') + .height('100%') + .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/model/AbilityConfigType.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/model/AbilityConfigType.ts new file mode 100644 index 00000000..d9e9c567 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/applylevelstagemanagement/model/AbilityConfigType.ts @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export type AbilityConfigType = { + bundleName: string, + abilityName: string +}; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/Home.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/Home.ets new file mode 100644 index 00000000..ba637567 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/Home.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { FirstLevelCategory } from './model/CategoricalDataType'; +import { HOME_TABS } from './data/HomeData'; +import { TabContentNavigation } from './TabContentNavigation'; + +@Entry +@Component +struct Home { + // 初始化tabsBar的index值为0 + @State tabsIndex: number = 0; + @StorageLink('currentBreakpoint') curBp: string = 'sm'; + + build() { + Tabs({ barPosition: this.curBp === 'sm' ? BarPosition.End : BarPosition.Start }) { + ForEach(HOME_TABS, (item: FirstLevelCategory, index: number) => { + TabContent() { + TabContentNavigation({ categories: item.childNodes }) + } + .tabBar(this.CustomTabBar(item, index)) + }, item => JSON.stringify(item)) + } + .vertical(this.curBp === 'sm' ? false : true) + // 大型设备tabbar的高度为40%,小型设备的高度为56vp + .barHeight(this.curBp === 'sm' ? '56vp' : '40%') + // 大型设备tabbar的宽度为56vp,小型设备的宽度为100% + .barWidth(this.curBp === 'sm' ? '100%' : '56vp') + .barMode(BarMode.Fixed) + .backgroundColor($r('app.color.background_shallow_grey')) + .onChange((index: number) => { + this.tabsIndex = index; + }) + } + + @Builder CustomTabBar(item: FirstLevelCategory, index: number) { + Column() { + Image(this.tabsIndex === index ? item.iconSelected : item.icon) + .width(24) + .height(24) + .margin({ bottom: 4 }) + + Text(item.tabBarName) + .fontSize(10) + .fontFamily('HarmonyHeiTi-Medium') + .fontColor(this.tabsIndex === index ? $r('app.color.tab_bar_select') : $r('app.color.tab_bar_unselect')) + } + .width('100%') + .id(`tabBar${index}`) + .padding({ top: 6, bottom: 6 }) + .alignItems(HorizontalAlign.Center) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/TabContentNavigation.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/TabContentNavigation.ets new file mode 100644 index 00000000..96c4d269 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/TabContentNavigation.ets @@ -0,0 +1,176 @@ +/* + * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router'; +import { SecondLevelCategory, ThirdLevelCategory, FourthLevelCategory } from './model/CategoricalDataType'; + +@Extend(Column) function ColumnStyle() { + .width('100%') + .borderRadius(24) + .backgroundColor(Color.White) + .padding({ left: 12, right: 12, bottom: 4, top: 4 }) +} + +@Preview +@Component +export struct TabContentNavigation { + private categories: ThirdLevelCategory[] | SecondLevelCategory[] = []; + + hasSecondLevelCategory(category): boolean { + return category && category.tag ? false : true; + } + + build() { + Column() { + List() { + if (this.categories.length > 0 && this.hasSecondLevelCategory(this.categories[0])) { + ForEach(this.categories, (secondLevelCategory: SecondLevelCategory, secondLevelCategoryIndex: number) => { + ListItem() { + Column() { + Text(secondLevelCategory.title) + .height(48) + .fontSize(14) + .width('100%') + .textAlign(TextAlign.Start) + .fontFamily('HarmonyHeiTi-Medium') + .fontColor($r('app.color.font_color_shallow')) + .padding({ bottom: 4, top: 4, left: 24 }) + + Column() { + ForEach(secondLevelCategory.childNodes, (thirdLevelCategory: ThirdLevelCategory, + thirdLevelCategoryIndex: number) => { + ThirdLevelNavigation({ + thirdLevelCategory: thirdLevelCategory, + secondLevelCategoryIndex: secondLevelCategoryIndex, + ThirdLevelNavigationIndex: thirdLevelCategoryIndex + }) + }) + } + .ColumnStyle() + } + } + }) + } else { + ForEach(this.categories, (thirdLevelCategory: ThirdLevelCategory) => { + ListItem() { + Column() { + ThirdLevelNavigation({ thirdLevelCategory: thirdLevelCategory }) + } + .ColumnStyle() + } + .margin({ top: 4, bottom: 4 }) + }) + } + } + .width('100%') + .layoutWeight(1) + .padding({ left: 16, right: 16, top: 4 }) + + Blank() + + Divider() + .height(0.75) + .width('100%') + .alignSelf(ItemAlign.Baseline) + .color($r('app.color.tab_bar_divider')) + } + .height('100%') + .padding({ top: 12 }) + } +} + +@Component +struct ThirdLevelNavigation { + @State isUnfold: boolean = false; + private thirdLevelCategory: ThirdLevelCategory; + private ThirdLevelNavigationIndex: number; + private secondLevelCategoryIndex: number; + + build() { + Column() { + Row() { + Text(this.thirdLevelCategory.title) + .fontSize(16) + .margin({ left: 16 }) + .fontFamily('HarmonyHeiTi-Medium') + .fontColor($r('app.color.font_color_dark')) + + Blank() + + if (this.thirdLevelCategory.childNodes) { + Image(this.isUnfold ? $r('app.media.ic_down_arrow') : $r('app.media.ic_right_arrow')) + .width(this.isUnfold ? 24 : 12) + .height(this.isUnfold ? 12 : 24) + .margin({ right: this.isUnfold ? 0 : 6 }) + } + } + .height(56) + .width('100%') + .onClick(() => { + if (this.thirdLevelCategory.childNodes === undefined) { + // Click to jump to the corresponding page + router.push({ + url: this.thirdLevelCategory.url + }); + } else { + this.isUnfold = !this.isUnfold; + } + }) + + // Click to expand the fourth-level category + if (this.isUnfold) { + ForEach(this.thirdLevelCategory.childNodes, (fourthLevelCategory: FourthLevelCategory) => { + Column() { + Divider() + .height(1) + .opacity(0.2) + .margin({ left: 42, right: 8 }) + .color($r('app.color.font_color_dark')) + + FourthLevelNavigation({ fourthLevelCategory: fourthLevelCategory }) + } + }, item => JSON.stringify(item)) + } + } + // 整体字符串折行会被识别出来,导致功能异常,只能放在单独一行,1和0分别为首页标题层级index + .id(`secondLevelMenu${this.secondLevelCategoryIndex}${this.secondLevelCategoryIndex === 1 ? 0 : this.ThirdLevelNavigationIndex}`) + } +} + +@Component +struct FourthLevelNavigation { + private fourthLevelCategory: FourthLevelCategory; + + build() { + Row() { + Text(this.fourthLevelCategory.title) + .fontSize(16) + .layoutWeight(1) + .margin({ left: 42 }) + .align(Alignment.Start) + .fontFamily('HarmonyHeiTi-Medium') + .fontColor($r('app.color.font_color_dark')) + Blank() + } + .height(48) + .width('100%') + .onClick(() => { + // Click to jump to the corresponding page + router.push({ + url: this.fourthLevelCategory.url + }); + }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/data/HomeData.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/data/HomeData.ets new file mode 100644 index 00000000..69462d47 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/data/HomeData.ets @@ -0,0 +1,127 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { + FirstLevelCategory, + FourthLevelCategory, + SecondLevelCategory, + ThirdLevelCategory +} from '../model/CategoricalDataType'; + + +const DECORATED_OBJECT_TYPE: FourthLevelCategory[] = [ + { + title: $r('app.string.base_type'), + url: 'pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType' + }, + { + title: $r('app.string.array_type'), + url: 'pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType' + }, + { + title: $r('app.string.class_type'), + url: 'pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType' + } +]; + +const UPDATE_PRINCIPLE: FourthLevelCategory[] = [ + { + title: $r('app.string.only_update_bound_components'), + url: 'pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent' + } +]; + +const SINGLE_COMPONENT_CATEGORY: ThirdLevelCategory[] = [ + { + tag: 1, + title: $r('app.string.decorated_object_type'), + childNodes: DECORATED_OBJECT_TYPE + }, + { + tag: 1, + title: $r('app.string.update_principle'), + childNodes: UPDATE_PRINCIPLE + } +]; + +const PARENT_CHILD_SYNC: FourthLevelCategory[] = [ + { + title: $r('app.string.single_and_two_way_sync'), + url: 'pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync' + }, + { + title: $r('app.string.partial_sync'), + url: 'pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync' + } +]; + +const MULTI_COMPONENTS_CATEGORY: ThirdLevelCategory[] = [ + { + tag: 1, + title: $r('app.string.parent_child_sync'), + childNodes: PARENT_CHILD_SYNC + }, + { + tag: 1, + title: $r('app.string.parent_descendent_sync'), + url: 'pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync' + }, + { + tag: 1, + title: $r('app.string.brother_sync'), + url: 'pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync' + } +]; + +const PAGE_LEVEL_CATEGORY: SecondLevelCategory[] = [ + { + title: $r('app.string.single_component_state'), + childNodes: SINGLE_COMPONENT_CATEGORY + }, + { + title: $r('app.string.multi_component_sync'), + childNodes: MULTI_COMPONENTS_CATEGORY + } +]; + + +const APP_LEVEL_CATEGORY: ThirdLevelCategory[] = [ + { + tag: 1, + title: $r('app.string.application_storage_ui'), + url: 'pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync', + }, + { + tag: 1, + title: $r('app.string.ability_storage_ui'), + url: 'pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync', + } +]; + + +export const HOME_TABS: FirstLevelCategory[] = [ + { + tabBarName: $r('app.string.page_level'), + icon: $r('app.media.page_level'), + iconSelected: $r('app.media.page_level_selected'), + childNodes: PAGE_LEVEL_CATEGORY + }, + { + tabBarName: $r('app.string.app_level'), + icon: $r('app.media.app_level'), + iconSelected: $r('app.media.app_level_selected'), + childNodes: APP_LEVEL_CATEGORY + } +]; diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/model/CategoricalDataType.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/model/CategoricalDataType.ets new file mode 100644 index 00000000..0927299c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/home/model/CategoricalDataType.ets @@ -0,0 +1,38 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export interface FirstLevelCategory { + childNodes: SecondLevelCategory[] | ThirdLevelCategory[], + iconSelected: Resource, // The icon for the first-level category is selected + icon: Resource, // The icon for the first-level category is not selected + tabBarName: Resource // First-level category title +} + +export interface SecondLevelCategory { + title: Resource, // Second-level category titles + childNodes: ThirdLevelCategory[] +} + +export interface ThirdLevelCategory { + tag: number, // Third-level category tag + title: Resource, // Third-level category headings + url?: string, // Third-level category detail page URL + childNodes?: FourthLevelCategory[] +} + +export interface FourthLevelCategory { + title: Resource, // Fourth-level category titles + url: string // Fourth-level category detail page URL +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync.ets new file mode 100644 index 00000000..3feb01eb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../../commoncomponents/CodeView'; +import { BrotherComponentSyncCode } from './BrotherComponentSyncCode'; + +@Entry +@Component +struct BrotherComponentSync { + @State title: Resource = $r('app.string.brother_sync'); + + build() { + Column() { + CodeView({ title: $title }) { + BrotherComponentSyncCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSyncCode.ets new file mode 100644 index 00000000..c4e3749a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSyncCode.ets @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ProvideFatherComponent } from './ProvideFatherComponent'; +import { StateFatherComponent } from './StateFatherComponent'; + +@Component +export struct BrotherComponentSyncCode { + + build() { + Column() { + Column() { + Text($r('app.string.realize_by_state_link')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + // 共同父组件@State + StateFatherComponent() + } + + Column() { + Text($r('app.string.realize_by_provide_consume')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + // 共同父组件@Provide + ProvideFatherComponent() + } + .margin({ top: 10 }) + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherOneComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherOneComponent.ets new file mode 100644 index 00000000..2b98e896 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherOneComponent.ets @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct ConsumeBrotherOneComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和父组件、子组件B双向同步圆形颜色 + @Consume consumeCircleColor: Resource; + // 和父组件、子组件B双向同步Select组件的Index值 + @Consume currentSelectIndex: number; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ConsumeBrotherOneComponent.ets.html') }) + Text($r('app.string.consume_brothers_title')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Select(this.selectColors) + .id('consumeSelectCompA') + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.select_font_size') }) + .selectedOptionFont({ size: $r('app.float.select_font_size') }) + .optionFont({ size: $r('app.float.select_font_size') }) + .onSelect((index: number) => { + // 此组件@Consume声明的数据页面更新,兄弟组件@Consume的数据页面同步更新 + this.currentSelectIndex = index; + this.consumeCircleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.consumeCircleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherTwoComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherTwoComponent.ets new file mode 100644 index 00000000..a24969af --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ConsumeBrotherTwoComponent.ets @@ -0,0 +1,65 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +@Component +export struct ConsumeBrotherTwoComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和父组件、子组件B双向同步圆形颜色 + @Consume consumeCircleColor: Resource; + // 和父组件、子组件A双向同步Select组件的Index值 + @Consume currentSelectIndex: number; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ConsumeBrotherTwoComponent.ets.html') }) + Text($r('app.string.consume_brothers_title')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + .height($r('app.float.button_height')) + Row() { + Select(this.selectColors) + .id('consumeSelectCompB') + .selected(this.currentSelectIndex) + .value(getResourceString(getContext(this) as common.UIAbilityContext, + this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.select_font_size') }) + .selectedOptionFont({ size: $r('app.float.select_font_size') }) + .optionFont({ size: $r('app.float.select_font_size') }) + .onSelect((index: number) => { + // 此组件@Consume声明的数据页面更新,兄弟组件@Consume的数据页面同步更新 + this.currentSelectIndex = index; + this.consumeCircleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.consumeCircleColor) + + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherOneComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherOneComponent.ets new file mode 100644 index 00000000..037aac2d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherOneComponent.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct LinkBrotherOneComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和父组件、子组件B双向同步圆形颜色 + @Link circleColor: Resource; + // 和父组件、子组件B双向同步Select组件的Index值 + @Link currentSelectIndex: number; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('LinkBrotherOneComponent.ets.html') }) + Text($r('app.string.link_brothers_title')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + .fontColor($r('app.color.tips_font_color')) + Row() { + Select(this.selectColors) + .id('linkSelectCompA') + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.select_font_size') }) + .selectedOptionFont({ size: $r('app.float.select_font_size') }) + .optionFont({ size: $r('app.float.select_font_size') }) + .onSelect((index: number) => { + // 此组件@Link声明的数据页面更新,兄弟组件@Link的数据页面同步更新 + this.currentSelectIndex = index; + this.circleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherTwoComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherTwoComponent.ets new file mode 100644 index 00000000..9a36fcb7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/LinkBrotherTwoComponent.ets @@ -0,0 +1,63 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +@Component +export struct LinkBrotherTwoComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和父组件、子组件A双向同步圆形颜色 + @Link circleColor: Resource; + // 和父组件、子组件A双向同步Select的Index值 + @Link currentSelectIndex: number; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('LinkBrotherTwoComponent.ets.html') }) + Text($r('app.string.link_brothers_title')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + .height($r('app.float.button_height')) + Row() { + Select(this.selectColors) + .id('linkSelectCompB') + .selected(this.currentSelectIndex) + .value(getResourceString(getContext(this) as common.UIAbilityContext, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.select_font_size') }) + .selectedOptionFont({ size: $r('app.float.select_font_size') }) + .optionFont({ size: $r('app.float.select_font_size') }) + .onSelect((index: number) => { + // 此组件@Link声明的数据页面更新,兄弟组件@Link的数据页面同步更新 + this.currentSelectIndex = index; + this.circleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ProvideFatherComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ProvideFatherComponent.ets new file mode 100644 index 00000000..4a67f4d0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/ProvideFatherComponent.ets @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { ConsumeBrotherOneComponent } from './ConsumeBrotherOneComponent'; +import { ConsumeBrotherTwoComponent } from './ConsumeBrotherTwoComponent'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +@Component +export struct ProvideFatherComponent { + // 初始化一个颜色数组 + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 共同父组件使用@Provide初始化圆形颜色 + @Provide consumeCircleColor: Resource = $r('app.color.circle_blue'); + // 初始化Select组件的Index为0 + @Provide currentSelectIndex: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ProvideFatherComponent.ets.html') }) + Text($r('app.string.parent_titletwo')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + // 和父组件双向同步子组件A + ConsumeBrotherOneComponent() + // 和父组件双向同步子组件B + ConsumeBrotherTwoComponent() + }.padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/StateFatherComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/StateFatherComponent.ets new file mode 100644 index 00000000..677e5897 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/StateFatherComponent.ets @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { LinkBrotherOneComponent } from './LinkBrotherOneComponent'; +import { LinkBrotherTwoComponent } from './LinkBrotherTwoComponent'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +@Component +export struct StateFatherComponent { + // 共同父组件使用@State初始化圆形颜色 + @State circleColor: Resource = $r('app.color.circle_blue'); + // 初始化一个颜色数组 + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 初始化当前Select的Index为0 + @State currentSelectIndex: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('StateFatherComponent.ets.html') }) + Text($r('app.string.parent_titleone')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + // 和父组件双向同步子组件A + LinkBrotherOneComponent({ + circleColor: $circleColor, + currentSelectIndex: $currentSelectIndex + }) + // 和父组件双向同步子组件B + LinkBrotherTwoComponent({ + circleColor: $circleColor, + currentSelectIndex: $currentSelectIndex + }) + }.padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/data/ColorData.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/data/ColorData.ets new file mode 100644 index 00000000..f5c80e9a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/data/ColorData.ets @@ -0,0 +1,27 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ColorType } from '../model/ColorType' + +export const COLOR_SELECT_DATA: ColorType[] = [ + { + value: $r('app.string.select_colorblue'), + color: $r('app.color.circle_blue') + }, + { + value: $r('app.string.select_colorpink'), + color: $r('app.color.circle_pink') + } +] \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ConsumeDescendentComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ConsumeDescendentComponent.ets new file mode 100644 index 00000000..279e8a53 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ConsumeDescendentComponent.ets @@ -0,0 +1,69 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +// 声明一个上下文变量 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct ConsumeDescendentComponent { + // 初始化一个颜色数组数据 + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和爷组件双向同步圆形颜色 + @Consume consumeCircleColor: Resource; + // 和爷组件双向同步Select的Index值 + @Consume currentSelectIndex: number; + + build() { + Column() { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ConsumeDescendentComponent.ets.html') }) + Row() { + Select(this.selectColors) + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.tips_font_size') }) + .selectedOptionFont({ size: $r('app.float.tips_font_size') }) + .optionFont({ size: $r('app.float.tips_font_size') }) + .id('grandsonCompB') + .onSelect((index: number) => { + // 孙组件@Consume声明的数据页面更新,爷组件@Provide的数据页面同步更新 + this.currentSelectIndex = index; + this.consumeCircleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.consumeCircleColor) + + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + .margin({ bottom: 6 }) + + Text($r('app.string.deepnest_descendent_titletwo')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Red, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync.ets new file mode 100644 index 00000000..87223be4 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../../commoncomponents/CodeView'; +import { DeepNestComponentsSyncCode } from './DeepNestComponentsSyncCode'; + +@Entry +@Component +struct DeepNestComponentsSync { + @State title: Resource = $r('app.string.parent_descendent_sync'); + + build() { + Column() { + CodeView({ title: $title }) { + DeepNestComponentsSyncCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSyncCode.ets new file mode 100644 index 00000000..33b8d37d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSyncCode.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { StateGrandfatherComponent } from './StateGrandfatherComponent'; +import { ProvideGrandfatherComponent } from './ProvideGrandfatherComponent'; + +@Component +export struct DeepNestComponentsSyncCode { + build() { + Column() { + Column() { + Text($r('app.string.realize_by_state_link')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + // 爷组件@State + StateGrandfatherComponent() + }.margin({ bottom: 16 }) + + Column() { + Text($r('app.string.realize_by_provide_consume')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + // 爷组件@Provide + ProvideGrandfatherComponent() + } + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/LinkDescendentComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/LinkDescendentComponent.ets new file mode 100644 index 00000000..e7f88b7c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/LinkDescendentComponent.ets @@ -0,0 +1,66 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct LinkDescendentComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 和父组件和爷组件双向同步圆形颜色 + @Link circleColor: Resource; + // 和父组件和爷组件双向同步Select的Index值 + @Link currentSelectIndex: number; + + build() { + Column() { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('LinkDescendentComponent.ets.html') }) + Row() { + Select(this.selectColors) + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.tips_font_size') }) + .selectedOptionFont({ size: $r('app.float.tips_font_size') }) + .optionFont({ size: $r('app.float.tips_font_size') }) + .id('grandsonCompA') + .onSelect((index: number) => { + // 孙组件@Link组件数据页面更新,爷组件同步更新 + this.currentSelectIndex = index; + this.circleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + .margin({ bottom: 6 }) + + Text($r('app.string.deepnest_descendent_titleone')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Red, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ProvideGrandfatherComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ProvideGrandfatherComponent.ets new file mode 100644 index 00000000..35aaee32 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/ProvideGrandfatherComponent.ets @@ -0,0 +1,88 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { ConsumeDescendentComponent } from './ConsumeDescendentComponent'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; +import { getResourceString } from '../../../../utils/ResourceUtils'; + +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct ProvideGrandfatherComponent { + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 初始化爷组件@Provide的原型颜色 + @Provide consumeCircleColor: Resource = $r('app.color.circle_blue'); + // 初始化Select组件的Index + @Provide currentSelectIndex: number = 0; + + build() { + Column() { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ProvideGrandfatherComponent.ets.html') }) + Text($r('app.string.deepnest_parent_titletwo')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + .margin({ top: 10 }) + Row() { + Select(this.selectColors) + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.tips_font_size') }) + .selectedOptionFont({ size: $r('app.float.tips_font_size') }) + .optionFont({ size: $r('app.float.tips_font_size') }) + .id('grandfatherCompB') + .onSelect((index: number) => { + // 爷组件@Provide声明的数据页面更新,孙组件@Consume关联的变量同步更新 + this.currentSelectIndex = index; + this.consumeCircleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.consumeCircleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + .margin({ bottom: 6 }) + // 子组件 + ConsumeChildComp() + }.padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + +@Component +struct ConsumeChildComp { + + build() { + Column() { + Text($r('app.string.deepnest_child_titletwo')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + .height($r('app.float.button_height')) + // 双向同步孙组件 + ConsumeDescendentComponent() + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/StateGrandfatherComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/StateGrandfatherComponent.ets new file mode 100644 index 00000000..29c913a5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/StateGrandfatherComponent.ets @@ -0,0 +1,94 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { LinkDescendentComponent } from './LinkDescendentComponent'; +import { ColorType } from '../model/ColorType'; +import { COLOR_SELECT_DATA } from '../data/ColorData'; +import { getResourceString } from '../../../../utils/ResourceUtils'; +import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'; + +// 声明一个上下文变量 +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct StateGrandfatherComponent { + // 初始化爷组件@State的圆形颜色 + @State circleColor: Resource = $r('app.color.circle_blue'); + // 初始化一个颜色数组 + @State selectColors: ColorType[] = COLOR_SELECT_DATA; + // 初始化当前select组件的index + @State currentSelectIndex: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('StateGrandfatherComponent.ets.html') }) + Text($r('app.string.deepnest_parent_titleone')) + .fontSize($r('app.float.tips_font_size')) + .fontColor($r('app.color.tips_font_color')) + .width('100%') + .textAlign(TextAlign.Center) + Row() { + Select(this.selectColors) + .selected(this.currentSelectIndex) + .value(getResourceString(CONTEXT, this.selectColors[this.currentSelectIndex].value)) + .fontColor($r('app.color.button_text_color')) + .font({ size: $r('app.float.tips_font_size') }) + .selectedOptionFont({ size: $r('app.float.tips_font_size') }) + .optionFont({ size: $r('app.float.tips_font_size') }) + .id('grandfatherCompA') + .onSelect((index: number) => { + // 爷组件@State声明的数据页面更新,孙组件@Link关联的变量同步更新 + this.currentSelectIndex = index; + this.circleColor = this.selectColors[index].color; + }) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + }.justifyContent(FlexAlign.SpaceAround) + .width('100%') + // 双向同步子组件 + LinkChildComp({ circleColor: $circleColor, currentSelectIndex: $currentSelectIndex }) + }.padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + +@Component +struct LinkChildComp { + // 和父组件和子组件双向同步圆形颜色 + @Link circleColor: Resource; + // 和父组件和子组件双向同步Select的Index值 + @Link currentSelectIndex: number; + + build() { + Column() { + Text($r('app.string.deepnest_child_titleone')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + .height($r('app.float.button_height')) + // 双向同步孙组件 + LinkDescendentComponent({ + circleColor: $circleColor, + currentSelectIndex: $currentSelectIndex + }) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/model/ColorType.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/model/ColorType.ets new file mode 100644 index 00000000..4a8789ef --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/model/ColorType.ets @@ -0,0 +1,19 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +export type ColorType = { + value:Resource, + color:Resource, +}; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ObjectLinkComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ObjectLinkComponent.ets new file mode 100644 index 00000000..a9662912 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ObjectLinkComponent.ets @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ClassObject } from './ParentChildPartialContentSyncCode'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +@Component +export struct ObjectLinkComponent { + // 使用@ObjectLink修饰,与父组件中元素同步 + @ObjectLink childObjectData: ClassObject; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ObjectLinkComponent.ets.html') }) + + Text($r('app.string.partial_sync_text')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + Row() { + Text(this.childObjectData.elementType) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .textAlign(TextAlign.Center) + .layoutWeight(1) + TextInput({ text: this.childObjectData.attributeType }) + .fontSize(20) + .layoutWeight(1) + .id('childAttribute') + .onChange((value: string) => { + // 子组件对象属性更新,父元素同步 + this.childObjectData.attributeType = value; + }) + } + .justifyContent(FlexAlign.SpaceAround) + } + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + .padding(10) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync.ets new file mode 100644 index 00000000..f01066b2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ParentChildPartialContentSyncCode } from './ParentChildPartialContentSyncCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView'; + +@Entry +@Component +struct ParentChildPartialContentSync { + @State title: Resource = $r('app.string.partial_sync'); + + build() { + Column() { + CodeView({ title: $title }) { + ParentChildPartialContentSyncCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSyncCode.ets new file mode 100644 index 00000000..412e272f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSyncCode.ets @@ -0,0 +1,108 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ObjectLinkComponent } from './ObjectLinkComponent'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +// 数组中元素的类,使用@Observed修饰 +@Observed +export class ClassObject { + public elementType: Resource; + public attributeType: Resource | string; + + constructor(elementType: Resource, attributeType: Resource | string) { + this.elementType = elementType; + this.attributeType = attributeType; + } +} + +// 初始化父组件中的数据 +const PARENT_DATA: ClassObject[] = [new ClassObject($r('app.string.partial_sync_element_one'), $r('app.string.partial_sync_attribute_one')), + new ClassObject($r('app.string.partial_sync_element_two'), $r('app.string.partial_sync_attribute_two')), + new ClassObject($r('app.string.partial_sync_element_three'), $r('app.string.partial_sync_attribute_three'))]; + +@Component +export struct ParentChildPartialContentSyncCode { + // 初始化父组件中状态变量 + @State parentData: ClassObject[] = PARENT_DATA; + // 与子组件同步的的数据是数组的第几个元素,默认选中第一个 + @State syncIndex: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') }) + + Text($r('app.string.partial_sync_parent_tips')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + // 父组件中List展示状态变量中的内容 + Column() { + ForEach(this.parentData, (item: ClassObject, index: number) => { + Column() { + ParentCompDataItem({ index: index, syncIndex: this.syncIndex, childObject: item }) + } + .backgroundColor(index === this.syncIndex ? $r('app.color.component_background_pink') : undefined) + .onClick(() => { + this.syncIndex = index; + }) + }, item => JSON.stringify(item)) + } + .width('100%') + .backgroundColor($r('app.color.component_background_pink')) + + //与父组件状态同步的子组件 + ObjectLinkComponent({ childObjectData: this.parentData[this.syncIndex] }) + } + .width('100%') + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + +// 展示数组中单个元素的子组件 +@Component +struct ParentCompDataItem { + private index: number; + @Prop syncIndex: number; + // 使用@ObjectLink修饰,与父组件中元素同步 + @ObjectLink childObject: ClassObject; + + build() { + Column() { + Text(this.childObject.elementType) + .width('100%') + .fontSize(20) + if (this.index === this.syncIndex) { + TextInput({ text: this.childObject.attributeType }) + .fontSize(20) + .id(`attribute${this.index + 1}`) + .onChange((value: string) => { + // 更新父组件中元素的属性,子组件同步 + this.childObject.attributeType = value; + }) + } else { + Text(this.childObject.attributeType) + .width('100%') + .fontSize(20) + } + } + .padding(10) + .id(`arrayElement${this.index}`) + } +} + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentLink.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentLink.ets new file mode 100644 index 00000000..95893758 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentLink.ets @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { COLOR_DATA } from './UniAndBidirectionSyncCode'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +@Component +export struct ChildCompLink { + // 圆形颜色,和父组件中的状态变量双向同步 + @Link circleColor: string; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({webSrc: $rawfile('ComponentLink.ets.html')}) + + Text($r('app.string.child_component')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + .margin(10) + Text($r('app.string.both_direction_sync_tips')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Center) + // 绑定@Link变量的Circle组件 + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + Button() { + Text($r('app.string.both_direction_sync_btn')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .id('redColorBtn') + .height($r('app.float.button_height')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + // 点击更新子组件@Link声明的变量,此子组件更新,父组件以及@Prop声明的子组件变量同步 + this.circleColor = COLOR_DATA.RED; + }) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentProp.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentProp.ets new file mode 100644 index 00000000..8befbad7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/ComponentProp.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { COLOR_DATA } from './UniAndBidirectionSyncCode'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +@Component +export struct ChildCompProp { + // 圆形颜色,和父组件中的状态变量单向同步,只支持基础类型 + @Prop circleColor: string; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ComponentProp.ets.html') }) + Text($r('app.string.child_component')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + .margin(10) + Text($r('app.string.single_direction_sync_tips')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Center) + // 绑定@Link变量的Circle组件 + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + Button() { + Text($r('app.string.single_direction_sync_btn')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .id('blueColorBtn') + .height($r('app.float.button_height')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + // 点击更新子组件@Prop声明的变量,此子组件更新,父组件以及@Link声明的子组件变量不同步 + this.circleColor = COLOR_DATA.BLUE; + }) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync.ets new file mode 100644 index 00000000..6f28074c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { UniAndBidirectionSyncCode } from './UniAndBidirectionSyncCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView'; + +@Entry +@Component +struct UniAndBidirectionSync { + @State title: Resource = $r('app.string.single_and_two_way_sync'); + + build() { + Column() { + CodeView({ title: $title }) { + UniAndBidirectionSyncCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSyncCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSyncCode.ets new file mode 100644 index 00000000..e2de237b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSyncCode.ets @@ -0,0 +1,74 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ChildCompLink } from './ComponentLink'; +import { ChildCompProp } from './ComponentProp'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +// 初始化圆形的可设置颜色 +export const COLOR_DATA = { + GREY: '#eebebeba', + BLUE: '#4A90E2', + PINK: '#8DF8BEBE', + RED: '#FFF30823', +} + +@Component +export struct UniAndBidirectionSyncCode { + // 初始化圆形颜色的状态变量 + @State circleColor: string = COLOR_DATA.GREY; + + build() { + Column({ space: 10 }) { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('UniAndBidirectionSyncCode.ets.html') }) + Text($r('app.string.parent_component')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Start) + .margin(10) + Text($r('app.string.uni_and_bidirection_sync_tips')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Center) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + // 点击更新父组件的圆形颜色变量,父组件更新,子组件@Link以及@Prop继承的变量同步 + Button() { + Text($r('app.string.uni_and_bidirection_sync_btn')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .id('pinkColorBtn') + .height($r('app.float.button_height')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + this.circleColor = COLOR_DATA.PINK; + }) + } + // 单向同步子组件 + ChildCompProp({ circleColor: this.circleColor }) + // 双向同步子组件 + ChildCompLink({ circleColor: $circleColor }) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType.ets new file mode 100644 index 00000000..e9499bfc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ArrayTypeCode } from './ArrayTypeCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView' + +@Entry +@Component +struct ArrayType { + @State title: Resource = $r('app.string.array_type'); + + build() { + Column() { + CodeView({ title: $title }) { + ArrayTypeCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayTypeCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayTypeCode.ets new file mode 100644 index 00000000..ae538b2d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayTypeCode.ets @@ -0,0 +1,136 @@ +/* + * Copyright (c) 2023 Huawei Device 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 promptAction from '@ohos.promptAction'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText' + +// 数组中元素的类 +export class ArrayDataType { + public id: number; + public name: string; + public age: number; + + constructor(id: number, name: string, age: number) { + this.id = id; + this.name = name; + this.age = age; + } +} + +// 初始化数组数据 +const ARRAY_TYPE_AGE_DATA: ArrayDataType[] = [new ArrayDataType(0, 'name', 17), new ArrayDataType(1, 'name', 18), + new ArrayDataType(2, 'name', 19)] +// 初始化功能按钮字符串数据 +const ARRAY_TYPE_BTN: Resource[] = [$r('app.string.array_type_add'), $r('app.string.array_type_delete'), + $r('app.string.array_type_update')]; + +@Component +export struct ArrayTypeCode { + // 数组类型状态变量初始化 + @State arrayTypeData: ArrayDataType[] = ARRAY_TYPE_AGE_DATA; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ArrayTypeCode.ets.html') }) + // 数组内容展示 + List() { + ForEach(this.arrayTypeData, (item: ArrayDataType, index: number) => { + ListItem() { + ArrayDataItem({ arrayDataItem: item, itemIndex: index }) + } + }, item => JSON.stringify(item)) + } + .width('100%') + .height('40%') + .backgroundColor($r('app.color.component_background_pink')) + .padding({ left: 10, right: 10 }) + // 功能按钮区 + ForEach(ARRAY_TYPE_BTN, (item:Resource, index:number) => { + Button(item) + .id(`arrayTypeBtn${index}`) + .width('100%') + .height($r('app.float.button_height')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + this.handleButtonClick(index) + }) + }, item => JSON.stringify(item)) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } + + handleButtonClick(index: number){ + switch (index) { + case 0: + // 数组添加元素 + this.arrayTypeData.push(new ArrayDataType(this.arrayTypeData.length, `name`, 18)); // 新增元素数据,age为18 + break; + case 1: + if (this.arrayTypeData.length === 0) { + // 当数据没有数据的时候,点击删除按钮,出现提示弹窗 + promptAction.showToast({ + message: $r('app.string.array_type_deletetoast') + }); + } else { + // 数组删除元素 + this.arrayTypeData.splice(this.arrayTypeData.length - 1, 1); // 删除最后一个元素 + } + break; + case 2: + if (this.arrayTypeData.length === 0) { + // 当数据没有数据的时候,点击更新按钮,出现提示弹窗 + promptAction.showToast({ + message: $r('app.string.array_type_updatetoast') + }); + break; + } + // 初始化一个对象后给数组中的元素赋值,更新数组元素 + let temp = new ArrayDataType(this.arrayTypeData[0].id, this.arrayTypeData[0].name, this.arrayTypeData[0].age + 1); + this.arrayTypeData[0] = temp; + break; + default: + break; + } + } +} + +// 数组Item内容组件 +@Component +struct ArrayDataItem { + private arrayDataItem: ArrayDataType; + private itemIndex: number; + + build() { + Column() { + Text(`${this.arrayDataItem.name}${this.itemIndex}`) + .width('100%') + .fontColor($r('app.color.button_text_color')) + .fontSize(20) + Text(`age:${this.arrayDataItem.age}`) + .width('100%') + .fontColor($r('app.color.button_text_color')) + .fontSize(20) + Divider().width('100%') + .strokeWidth(1) + .margin({ top: 20 }) + } + .margin({ top: 20 }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType.ets new file mode 100644 index 00000000..f3202428 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType.ets @@ -0,0 +1,40 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { BaseTypeCode } from './BaseTypeCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView' + +@Entry +@Component +struct BaseType { + @State title: Resource = $r('app.string.base_type'); + + build() { + Column() { + CodeView({ title: $title}){ + BaseTypeCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseTypeCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseTypeCode.ets new file mode 100644 index 00000000..6ddabf1c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseTypeCode.ets @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText' + +@Component +export struct BaseTypeCode { + @State circleColor: Resource = $r('app.color.circle_pink'); + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({webSrc: $rawfile('BaseTypeCode.ets.html')}) + + Text($r('app.string.base_type_tip_text')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .textAlign(TextAlign.Center) + Circle() + .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') }) + .fill(this.circleColor) + Button() { + Text(this.circleColor.id === $r('app.color.circle_pink') + .id ? $r('app.string.set_to_blue') : $r('app.string.set_to_pink')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .width('100%') + .textAlign(TextAlign.Center) + } + .id('circleColorBtn') + .height($r('app.float.button_height')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + .onClick(() => { + if (this.circleColor.id === $r('app.color.circle_pink').id) { + this.circleColor = $r('app.color.circle_blue'); + } else { + this.circleColor = $r('app.color.circle_pink'); + } + }) + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType.ets new file mode 100644 index 00000000..600e637a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ClassObjectTypeCode } from './ClassObjectTypeCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView'; + +@Entry +@Component +struct ClassObjectType { + @State title: Resource = $r('app.string.class_type'); + + build() { + Column() { + CodeView({ title: $title }) { + ClassObjectTypeCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectTypeCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectTypeCode.ets new file mode 100644 index 00000000..b30930aa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectTypeCode.ets @@ -0,0 +1,173 @@ +/* + * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common'; +import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; +import { getResourceString } from '../../../../../utils/ResourceUtils'; + +const CONTEXT: common.UIAbilityContext = getContext(this) as common.UIAbilityContext; + +@Component +export struct ClassObjectTypeCode { + // 对象类型状态变量初始化 + @State classObjectData: ParentClass = new ParentClass(getResourceString(CONTEXT, $r('app.string.class_object')), + getResourceString(CONTEXT, $r('app.string.class_attribute')), 1, + new ChildClass(getResourceString(CONTEXT, $r('app.string.class_child_attribute')), 2)); + // 更新对象的次数 + private clickedCount: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({ webSrc: $rawfile('ClassObjectTypeCode.ets.html') }) + Column({ space: 15 }) { + Row() { + Text(this.classObjectData.title) + .fontSize(20) + .textAlign(TextAlign.End) + Divider() + .layoutWeight(1) + .strokeWidth(1) + .margin({ top: 20, left: 5 }) + } + .width('100%') + + Column() { + Row() { + Text(this.classObjectData.attributeTitle) + .fontSize(20) + Text(`${this.classObjectData.attribute}`) + .fontSize(20) + .textAlign(TextAlign.End) + } + .width('100%') + .justifyContent(FlexAlign.SpaceBetween) + + Divider() + .width('100%') + .strokeWidth(1) + } + .width('100%') + .padding({ left: 50 }) + + ChildObjectComp({ childObject: this.classObjectData.child }) // 对象的属性,使用子组件显示 + } + .width('100%') + .backgroundColor($r('app.color.component_background_pink')) + .padding(10) + // 点击更新对象 + Button($r('app.string.class_type_update_object')) + .onClick(() => { + // 更新对象,把新的对象直接赋值给状态变量 + this.clickedCount++; + let objectTitle: string = getResourceString(CONTEXT, $r('app.string.class_object')) + this.clickedCount; + let attributeTitle: string = getResourceString(CONTEXT, $r('app.string.class_attribute')) + this.clickedCount; + let childAttributeTitle: string = getResourceString(CONTEXT, $r('app.string.class_child_attribute')) + + this.clickedCount; + let newObject = new ParentClass(objectTitle, attributeTitle, this.classObjectData.attribute + 1, + new ChildClass(childAttributeTitle, this.classObjectData.child.attribute + 1)); + this.classObjectData = newObject; + }) + .id('updateObject') + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .type(ButtonType.Capsule) + .buttonStyle() + Button($r('app.string.class_type_update_attribute')) + .onClick(() => { + // 点击更新对象的属性 + this.classObjectData.attribute++; + }) + .id('updateObjectAttribute') + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .type(ButtonType.Capsule) + .buttonStyle() + Button($r('app.string.class_type_update_child_attribute')) + .onClick(() => { + // 点击更新对象属性的属性 + this.classObjectData.child.attribute++; + }) + .id('updateAttributeOfAttribute') + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .type(ButtonType.Capsule) + .buttonStyle() + } + .width('100%') + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} + +// 对象中属性的组件 +@Component +struct ChildObjectComp { + // 使用@ObjectLink修饰,与父组件同步对象的属性 + @ObjectLink childObject: ChildClass; + + build() { + Column() { + Row() { + Text(this.childObject.title) + .fontSize(20) + Text(`${this.childObject.attribute}`) + .fontSize(20) + .textAlign(TextAlign.End) + } + .width('100%') + .justifyContent(FlexAlign.SpaceBetween) + + Divider() + .width('100%') + .strokeWidth(1) + } + .width('100%') + .padding({ left: 100 }) + } +} + +@Styles function buttonStyle() { + .width('100%') + .height($r('app.float.button_height')) + .backgroundColor($r('app.color.button_background_color')) +} + +// 要更新对象属性的属性,对象属性的类需要使用@Observed修饰 +@Observed +class ChildClass { + public title: string; + public attribute: number; + + constructor(title: string, attribute: number) { + this.title = title; + this.attribute = attribute; + } +} + +class ParentClass { + public title: string; + public attributeTitle: string; + public attribute: number; + public child: ChildClass; + + constructor(title: string, attributeTitle: string, attribute: number, child: ChildClass) { + this.title = title; + this.attributeTitle = attributeTitle; + this.attribute = attribute; + this.child = child; + + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent.ets new file mode 100644 index 00000000..eafb2171 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent.ets @@ -0,0 +1,39 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { UpdateBoundComponentCode } from './UpdateBoundComponentCode'; +import { CodeView } from '../../../../../commoncomponents/CodeView'; + +@Entry +@Component +struct UpdateBoundComponent { + @State title: Resource = $r('app.string.only_update_bound_components'); + + build() { + Column() { + CodeView({ title: $title }) { + UpdateBoundComponentCode() + } + } + .width('100%') + .height('100%') + .padding($r('app.float.page_padding')) + .backgroundColor($r('app.color.background_shallow_grey')) + } + + aboutToDisappear(): void { + AppStorage.SetOrCreate('sideBarShow', false); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponentCode.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponentCode.ets new file mode 100644 index 00000000..41b3b1d0 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponentCode.ets @@ -0,0 +1,93 @@ +/* + * Copyright (c) 2023 Huawei Device 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 { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'; + +@Component +export struct UpdateBoundComponentCode { + // 组件内状态变量 + @State titleName: string = 'title'; + // 组件内private变量 + private content: string = 'content'; + // 组件内变量更新的次数 + private updateCount: number = 0; + + build() { + Column({ space: 10 }) { + // 点击查看源码 + ViewCodeText({webSrc: $rawfile('UpdateBoundComponentCode.ets.html')}) + + Column() { + Text($r('app.string.only_update_state')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + Row() { + Text($r('app.string.only_update_title')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + Text(`${this.titleName}`) // titleName为状态变量,绑定Text组件 + .fontColor($r('app.color.button_text_color')) + .fontSize(20) + } + .width('100%') + .margin(10) + + Text($r('app.string.only_update_private')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.tips_font_size')) + .width('100%') + .margin({ top: 20 }) + Row() { + Text($r('app.string.only_update_content')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + Text(`${this.content}`) // content为private,绑定Text组件 + .fontColor($r('app.color.button_text_color')) + .fontSize(20) + } + .width('100%') + .margin(10) + } + .width('100%') + .padding(10) + .justifyContent(FlexAlign.SpaceAround) + .backgroundColor($r('app.color.component_background_pink')) + + Column() { + Button($r('app.string.update_title_content')) + .onClick(() => { + // 点击更新@State和Private声明的变量,更新策略为:@State和Private的数据发生变化,@State变量绑定的组件更新,Private变量绑定的组件不更新。 + this.updateCount++; + this.content = `content ${this.updateCount}`; + this.titleName = `title ${this.updateCount}`; + }) + .id('titleAndContentBtn') + .width('100%') + .height($r('app.float.button_height')) + .fontColor($r('app.color.button_text_color')) + .fontSize($r('app.float.button_text_size')) + .type(ButtonType.Capsule) + .backgroundColor($r('app.color.button_background_color')) + Text($r('app.string.only_update_state_components')) + .fontColor($r('app.color.tips_font_color')) + .fontSize($r('app.float.button_text_size')) + .margin({ top: 30 }) + }.width('100%') + } + .padding(10) + .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') }) + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagelinkability/StorageLinkAbility.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagelinkability/StorageLinkAbility.ts new file mode 100644 index 00000000..2a7b8047 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagelinkability/StorageLinkAbility.ts @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import type window from '@ohos.window'; +import Logger from '../utils/Logger'; + +const TAG = 'StorageLinkAbility'; + +export default class StorageLinkAbility extends UIAbility { + onCreate(want, launchParam): void { + Logger.info(TAG, 'Ability onCreate'); + } + + onDestroy(): void { + Logger.info(TAG, 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + Logger.info(TAG, 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage', (err, data) => { + if (err.code) { + Logger.error(TAG, 'Failed to load the content. Cause: %{public}s'); + return; + } + Logger.info(TAG, 'Succeeded in loading the content. Data: %{public}s'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + Logger.info(TAG, 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + Logger.info(TAG, 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + Logger.info(TAG, 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagepropability/StoragePropAbility.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagepropability/StoragePropAbility.ts new file mode 100644 index 00000000..4075bdd8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/storagepropability/StoragePropAbility.ts @@ -0,0 +1,58 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import type window from '@ohos.window'; +import Logger from '../utils/Logger'; + +const TAG = 'StoragePropAbility'; + +export default class StoragePropAbility extends UIAbility { + onCreate(want, launchParam): void { + Logger.info(TAG, 'Ability onCreate'); + } + + onDestroy(): void { + Logger.info(TAG, 'Ability onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage): void { + // Main window is created, set main page for this ability + Logger.info(TAG, 'Ability onWindowStageCreate'); + + windowStage.loadContent('pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage', (err, data) => { + if (err.code) { + Logger.error(TAG, 'Failed to load the content. Cause: %{public}s'); + return; + } + Logger.info(TAG, 'Succeeded in loading the content. Data: %{public}s'); + }); + } + + onWindowStageDestroy(): void { + // Main window is destroyed, release UI related resources + Logger.info(TAG, 'Ability onWindowStageDestroy'); + } + + onForeground(): void { + // Ability has brought to foreground + Logger.info(TAG, 'Ability onForeground'); + } + + onBackground(): void { + // Ability has back to background + Logger.info(TAG, 'Ability onBackground'); + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/Logger.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/Logger.ts new file mode 100644 index 00000000..ef1d3205 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/Logger.ts @@ -0,0 +1,45 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; + +class Logger { + private domain: number; + private prefix: string; + private format: string = '%{public}s, %{public}s'; + + constructor(prefix: string) { + this.prefix = prefix; + this.domain = 0xFF00; + } + + debug(...args: string[]): void { + hilog.debug(this.domain, this.prefix, this.format, args); + } + + info(...args: string[]): void { + hilog.info(this.domain, this.prefix, this.format, args); + } + + warn(...args: string[]): void { + hilog.warn(this.domain, this.prefix, this.format, args); + } + + error(...args: string[]): void { + hilog.error(this.domain, this.prefix, this.format, args); + } +} + +export default new Logger('Sample_StateManagement'); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/ResourceUtils.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/ResourceUtils.ts new file mode 100644 index 00000000..2a793848 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/ResourceUtils.ts @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 Huawei Device 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 type common from '@ohos.app.ability.common'; + +/** + * getResourceString将Resource类型的数据转换成string类型的数据 + * @param context + * @param ResourceData + */ +export function getResourceString(context: common.UIAbilityContext, resourceData: Resource): string { + let stringData: string = context.resourceManager.getStringSync(resourceData.id); + return stringData; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/StartAbilityUtils.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/StartAbilityUtils.ts new file mode 100644 index 00000000..388a260f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/ets/utils/StartAbilityUtils.ts @@ -0,0 +1,34 @@ +/* + * Copyright (c) 2023 Huawei Device 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 type common from '@ohos.app.ability.common'; +import type { AbilityConfigType } from '../pages/applylevelstagemanagement/model/AbilityConfigType'; +import Logger from './Logger'; + +export function startSpecifiedAbility(context: common.UIAbilityContext, abilityName: string): void { + let abilityConfig: AbilityConfigType = { + bundleName: 'com.samples.statemanagement', + abilityName: abilityName + }; + context.startAbility(abilityConfig, (err) => { + if (err.code) { + // 处理业务逻辑错误 + Logger.error(`startAbility failed, code is ${err.code}, message is ${err.message}`); + return; + } + // 执行正常业务 + Logger.info('startAbility succeed'); + }); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/module.json5 b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/module.json5 new file mode 100644 index 00000000..862cca18 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/module.json5 @@ -0,0 +1,87 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "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", + "srcEntrance": "./ets/entryability/EntryAbility.ts", + "description": "$string:EntryAbility_desc", + "icon": "$media:icon", + "label": "$string:EntryAbility_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true, + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ] + }, + { + "name": "StoragePropAbility", + "srcEntrance": "./ets/storagepropability/StoragePropAbility.ts", + "description": "$string:storagepropability_desc", + "icon": "$media:icon", + "label": "$string:storagepropability_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true + }, + { + "name": "StorageLinkAbility", + "srcEntrance": "./ets/storagelinkability/StorageLinkAbility.ts", + "description": "$string:storagelinkability_desc", + "icon": "$media:icon", + "label": "$string:storagelinkability_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true + }, + { + "name": "OutOfSyncAbility", + "srcEntrance": "./ets/outofsyncability/OutOfSyncAbility.ts", + "description": "$string:outofsyncability_desc", + "icon": "$media:icon", + "label": "$string:outofsyncability_label", + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "visible": true + } + ], + "requestPermissions": [ + { + "name": "ohos.permission.START_ABILITIES_FROM_BACKGROUND" + } + ] + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/color.json new file mode 100644 index 00000000..ce207827 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/color.json @@ -0,0 +1,81 @@ +{ + "color": [ + { + "name": "start_window_background", + "value": "#FFFFFF" + }, + { + "name": "font_color_shallow", + "value": "#99000000" + }, + { + "name": "font_color_dark", + "value": "#000000" + }, + { + "name": "tab_bar_select", + "value": "#007DFF" + }, + { + "name": "tab_bar_unselect", + "value": "#66182431" + }, + { + "name": "tab_bar_divider", + "value": "#33182431" + }, + { + "name": "background_shallow_grey", + "value": "#F1F3F5" + }, + { + "name": "circle_pink", + "value": "#F7A4A4" + }, + { + "name": "circle_blue", + "value": "#4A90E2" + }, + { + "name": "tips_font_color", + "value": "#660d0d0d" + }, + { + "name": "source_code_font_color", + "value": "#0A8DF2" + }, + { + "name": "button_text_color", + "value": "#0d0d0d" + }, + { + "name": "button_background_color", + "value": "#E5E5E5" + }, + { + "name": "button_border_color", + "value": "#880d0d0d" + }, + { + "name": "divider_color", + "value": "#33182431" + }, + { + "name": "code_view_background", + "value": "#66182431" + }, + { + "name": "component_background_pink", + "value": "#22F7A4A4" + }, + { + "name": "color_white", + "value": "#FFFFFF" + }, + { + "name": "nightnode_color", + "value": "#EE343333" + } + + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/float.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/float.json new file mode 100644 index 00000000..59052f2e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/float.json @@ -0,0 +1,64 @@ +{ + "float": [ + { + "name": "tips_font_size", + "value": "16" + }, + { + "name": "source_code_font_size", + "value": "12" + }, + { + "name": "circle_size", + "value": "40" + }, + { + "name": "component_radius", + "value": "5" + }, + { + "name": "button_text_size", + "value": "16" + }, + { + "name": "button_height", + "value": "40" + }, + { + "name": "border_width", + "value": "1" + }, + { + "name": "title_bar_height", + "value": "60" + }, + { + "name": "icon_back_size", + "value": "20" + }, + { + "name": "page_padding", + "value": "12" + }, + { + "name": "title_font_size", + "value": "18" + }, + { + "name": "title_margin", + "value": "16" + }, + { + "name": "divider_height", + "value": "1" + }, + { + "name": "code_view_bottom", + "value": "20" + }, + { + "name": "select_font_size", + "value": "16" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/string.json new file mode 100644 index 00000000..a94a8616 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/element/string.json @@ -0,0 +1,432 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "StateManagement entry model" + }, + { + "name": "EntryAbility_desc", + "value": "StateManagement entry ability" + }, + { + "name": "EntryAbility_label", + "value": "StateManagement" + }, + { + "name": "close", + "value": "Close" + }, + { + "name": "page_level", + "value": "PageLevelStageManagement" + }, + { + "name": "app_level", + "value": "AppLevelStageManagement" + }, + { + "name": "single_component_state", + "value": "State variables in single component" + }, + { + "name": "decorated_object_type", + "value": "The decorated object type" + }, + { + "name": "base_type", + "value": "Based type" + }, + { + "name": "array_type", + "value": "Array type" + }, + { + "name": "array_type_add", + "value": "add elements" + }, + { + "name": "array_type_delete", + "value": "delete elements" + }, + { + "name": "array_type_update", + "value": "Update a single element in an array" + }, + { + "name": "array_type_deletetoast", + "value": "The list is empty and cannot be deleted!" + }, + { + "name": "array_type_updatetoast", + "value": "The list is empty and cannot be update!" + }, + { + "name": "class_type", + "value": "Class Object type" + }, + { + "name": "class_type_objectName", + "value": "Chasing the starry sun" + }, + { + "name": "class_object", + "value": "Object" + }, + { + "name": "class_attribute", + "value": "Object Attribute" + }, + { + "name": "class_child_attribute", + "value": "Attribute of attribute" + }, + { + "name": "class_type_update_object", + "value": "Update object:" + }, + { + "name": "class_type_update_attribute", + "value": "Update object attribute" + }, + { + "name": "class_type_update_child_attribute", + "value": "Update attribute of attribute" + }, + { + "name": "update_principle", + "value": "Update principle" + }, + { + "name": "only_update_bound_components", + "value": "Only the components to which you are bound are updated" + }, + { + "name": "only_update_state", + "value": "@State declare variables" + }, + { + "name": "only_update_title", + "value": "title:" + }, + { + "name": "only_update_private", + "value": "Private declare variables" + }, + { + "name": "only_update_content", + "value": "content:" + }, + { + "name": "update_title_content", + "value": "Click to modify the title and content" + }, + { + "name": "only_update_state_components", + "value": "Only update components declared by @State" + }, + { + "name": "update_the_custom_component", + "value": "Where the custom component is updated" + }, + { + "name": "multi_component_sync", + "value": "Status synchronization between components" + }, + { + "name": "parent_child_sync", + "value": "State synchronization between parent and child components" + }, + { + "name": "single_and_two_way_sync", + "value": "Single and two-way synchronization" + }, + { + "name": "parent_component", + "value": "Parent component" + }, + { + "name": "child_component", + "value": "Child component" + }, + { + "name": "uni_and_bidirection_sync_tips", + "value": "The prototype color in the parent component is @ state state state variable" + }, + { + "name": "single_direction_sync_tips", + "value": "The prototype color in the one-way synchronization sub-component is @Prop state variable" + }, + { + "name": "both_direction_sync_tips", + "value": "The prototype color in the bidirectional synchronization sub-component is @Link state variable" + }, + { + "name": "uni_and_bidirection_sync_btn", + "value": "Set to pink, components are updated synchronously" + }, + { + "name": "single_direction_sync_btn", + "value": "Set to blue, parent component is out of sync" + }, + { + "name": "both_direction_sync_btn", + "value": "Set to red, attachment synchronization" + }, + { + "name": "partial_sync", + "value": "The child component synchronizes parts of the parent component" + }, + { + "name": "partial_sync_element_one", + "value": "Elment one" + }, + { + "name": "partial_sync_element_two", + "value": "Elment two" + }, + { + "name": "partial_sync_element_three", + "value": "Elment three" + }, + { + "name": "partial_sync_attribute_one", + "value": "Attribute one" + }, + { + "name": "partial_sync_attribute_two", + "value": "Attribute two" + }, + { + "name": "partial_sync_attribute_three", + "value": "Attribute three" + }, + { + "name": "partial_sync_parent_tips", + "value": "The array in the parent component is a @State state variable, and the classes of the elements of the array are decorated with @observed" + }, + { + "name": "partial_sync_text", + "value": "Use @ObjectLink to modify variables in child components to synchronize data with elements of objects in parent components" + }, + { + "name": "parent_descendent_sync", + "value": "State synchronization between parent and descendent" + }, + { + "name": "select_colorblue", + "value": "Blue" + }, + { + "name": "select_colorpink", + "value": "Pink" + }, + { + "name": "realize_by_state_link", + "value": "Use @State, @Link to realize:" + }, + { + "name": "realize_by_provide_consume", + "value": "Use @Provide, @Consume to realize:" + }, + { + "name": "deepnest_parent_titleone", + "value": "The circular color in the parent component as @State state variable" + }, + { + "name": "deepnest_child_titleone", + "value": "The circular color of the sub-component is @Link, and the state variable is passed to the sub-component" + }, + { + "name": "deepnest_descendent_titleone", + "value": "The circle color in the sub-component is @Link status variable" + }, + { + "name": "deepnest_parent_titletwo", + "value": "The state variable with the circular color of @Provide in the parent component as the data provider" + }, + { + "name": "deepnest_child_titletwo", + "value": "Variables do not need to be set in subcomponents" + }, + { + "name": "deepnest_descendent_titletwo", + "value": "The round color in the sub-component is @Consume variable to sense data changes, update the UI, or reverse synchronization" + }, + { + "name": "brother_sync", + "value": "State synchronization between brother components" + }, + { + "name": "parent_titleone", + "value": "The common parent component circle color is @State variable" + }, + { + "name": "link_brothers_title", + "value": "The brother component circle color is @Link state variable" + }, + { + "name": "parent_titletwo", + "value": "The common parent component circle color is @Provide variable" + }, + { + "name": "consume_brothers_title", + "value": "The brother component circle color is @Consume state variable" + }, + { + "name": "application_storage_ui", + "value": "State synchronization between the app storage and the UI" + }, + { + "name": "nightmode", + "value": "Night mode" + }, + { + "name": "close_nightmode", + "value": "Close night mode" + }, + { + "name": "start_nightmode", + "value": "Start night mode" + }, + { + "name": "nightmode_text", + "value": "Night mode control Ability1, Ability2 interface style" + }, + { + "name": "fontSize_text", + "value": "FontSize" + }, + { + "name": "fontSize_singlesync_textone", + "value": "FontSize one-way synchronization" + }, + { + "name": "enter_abilityone", + "value": "Enter ability1" + }, + { + "name": "enter_abilitytwo", + "value": "Enter ability2" + }, + { + "name": "abilityone_page", + "value": "Ability1" + }, + { + "name": "abilitytwo_page", + "value": "Ability2" + }, + { + "name": "both_data_binding", + "value": "The component establishes two-way binding with AppStorage through the state variable decorated by @StorageLink(key)" + }, + { + "name": "single_data_binding", + "value": "The component establishes a one-way data binding with AppStorage by using the state variable decorated with @StorageProp(key)" + }, + { + "name": "nigntmode_both_binding", + "value": "The night mode in this interface is bidirectional synchronization of @StorageLink(key) variable, and the night mode switch will be synchronized in other capabilities" + }, + { + "name": "single_fontsize_binding", + "value": "The font size in this interface is the @StorageProp(key) variable one-way synchronization, which only changes the font size of the current interface" + }, + { + "name": "ability_storage_ui", + "value": "State synchronization between the ability storage and the UI" + }, + { + "name": "enter_pageone", + "value": "Enter page1" + }, + { + "name": "enter_pagetwo", + "value": "Enter page2" + }, + { + "name": "enter_ability_outofsync", + "value": "Cross Ability out of sync" + }, + { + "name": "ability_storage_nightmodelsync", + "value": "The night mode switch controls the interface style of Page1 and Page2" + }, + { + "name": "ability_storage_fontsizesync", + "value": "Font size control page1, page2 interface font size one-way synchronization" + }, + { + "name": "localStorage_both_data_binding", + "value": "The component establishes two-way binding with LocalStorage through the state variable decorated by @LocalStorageLink(key)" + }, + { + "name": "localStorage_single_data_binding", + "value": "The component establishes a one-way data binding with LocalStorage by using the state variable decorated with @LocalStorageProp(key)" + }, + { + "name": "localStorage_nigntmode_both_binding", + "value": "The night mode in this interface is bidirectional synchronization of @LocalStorageLink (key) variable, and the night mode switch will be synchronized in other capabilities" + }, + { + "name": "localStorage_single_fontsize_binding", + "value": "The font size in this interface is the @StorageProp(key) variable one-way synchronization, which only changes the font size of the current interface" + }, + { + "name": "localStorage_pagetitleone", + "value": "Page1" + }, + { + "name": "localStorage_pagetitletwo", + "value": "Page2" + }, + { + "name": "localStorage_abilitytitle", + "value": "Ability" + }, + { + "name": "enter_ability_outofsync_text", + "value": "The data is not synchronized across capabilities, so the switch of night mode and home page in this interface is not synchronized" + }, + { + "name": "base_type_tip_text", + "value": "The circle color is a @State state variable" + }, + { + "name": "source_code", + "value": "View the source code" + }, + { + "name": "set_to_blue", + "value": "Set to blue" + }, + { + "name": "set_to_pink", + "value": "Set to pink" + }, + { + "name": "storagepropability_desc", + "value": "description" + }, + { + "name": "storagepropability_label", + "value": "label" + }, + { + "name": "storagelinkability_desc", + "value": "description" + }, + { + "name": "storagelinkability_label", + "value": "label" + }, + { + "name": "outofsyncability_desc", + "value": "description" + }, + { + "name": "outofsyncability_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level.svg b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level.svg new file mode 100644 index 00000000..13bf19e4 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level_selected.svg b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level_selected.svg new file mode 100644 index 00000000..ffc1ffbd --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/app_level_selected.svg @@ -0,0 +1,34 @@ + + + + + + + + + + + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back.svg b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back.svg new file mode 100644 index 00000000..1c9142bf --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back.svg @@ -0,0 +1,13 @@ + + + Public/ic_public_back + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back_white.svg b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back_white.svg new file mode 100644 index 00000000..5c9cb3f7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_back_white.svg @@ -0,0 +1,13 @@ + + + Public/ic_public_back + + + + + + + + + + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_down_arrow.png b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_down_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..351af3d6742d880a5fe8a06d57bff53a6624c85b GIT binary patch literal 663 zcmeAS@N?(olHy`uVBq!ia0vp^2|#SX!3HGXiPfJ6QjEnx?oJHr&dIz4a$Hg)JkxxA z8MJ_G4hF{dOa>N^5+IfWVg?501&j>LK$;OGwtxvPo3MZx&NcukoTxCNm4ShY(bL5- zq=ND7tlM6P9YkDT^XC6hQ0mhE_ut*~KFdePfGr7o-|`ANo%BgEw%pwO`@llqOC^5S zXQ>?a5$A5_oY8;{9jI5_ApF6({NgduPkS<7bFSwhs$`)&8%Jtt|FH&O8I z_S>?b=6#qsyRb>NeYW-SJa-0amptfyI>*NTkyuH?wVTzunrywEmR(`5Z;g`Q zU3X+gtsqmJ^of=J4_u;2OZ`xB1@6&qYv zd#&J_pRkBU!)pbfeN@9F7S120EE*mY8sohkd^v+YWOJ=hbmXhcWt=Fa@=%+jV}b&A zyz7A}LQ5WMbIx#TvZ*m;R8>90v~N*^kWdMx?OvU~^1+&C zDZ<$+-HLw)cdPC!R_ZT2*rA;sv*+YdcD|ywX5vL3B6FUk#PIpOx-lU#WZv!Vo76ey zx31<+=yg{8usK$dd;ZaLjtsBwgf*G`vE;nr)@1W%CufHDgQ>HlUOazpVHBmL>1cJu z-O;i_q@eLhz!YT#KG$%Mf0bT8{o^&xCo-ueprU}@1N{Aur~l;-TAl_<6rQerF6*2U FngE540UH1S literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_right_arrow.png b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/ic_right_arrow.png new file mode 100644 index 0000000000000000000000000000000000000000..d5dc67eec85664a24889404b40174e62278f3c74 GIT binary patch literal 709 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 + + + + + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/page_level_selected.svg b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/page_level_selected.svg new file mode 100644 index 00000000..90b2f8ca --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/media/page_level_selected.svg @@ -0,0 +1,22 @@ + + + + + + diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/profile/main_pages.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/profile/main_pages.json new file mode 100644 index 00000000..402c197f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/base/profile/main_pages.json @@ -0,0 +1,20 @@ +{ + "src": [ + "pages/home/Home", + "pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/basetype/BaseType", + "pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/arraytype/ArrayType", + "pages/pagelevelstagemanagement/singlecomponentstatevariables/decoratedobjecttype/classobjecttype/ClassObjectType", + "pages/pagelevelstagemanagement/singlecomponentstatevariables/updatetactics/updateboundcomponent/UpdateBoundComponent", + "pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/uniandbidirectionsync/UniAndBidirectionSync", + "pages/pagelevelstagemanagement/multicompomentssync/parentchildcomponentsync/parentchildpartialcontentsync/ParentChildPartialContentSync", + "pages/pagelevelstagemanagement/multicompomentssync/brothercomponentssync/BrotherComponentSync", + "pages/pagelevelstagemanagement/multicompomentssync/deepnestcomponentssync/DeepNestComponentsSync", + "pages/applylevelstagemanagement/applyglobaldatasync/ApplyGlobalDataSync", + "pages/applylevelstagemanagement/applyglobaldatasync/StorageLinkAbilityPage", + "pages/applylevelstagemanagement/applyglobaldatasync/StoragePropAbilityPage", + "pages/applylevelstagemanagement/abilityglobaldatasync/AbilityGlobalDataSync", + "pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage", + "pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage", + "pages/applylevelstagemanagement/abilityglobaldatasync/AbilityOutOfSyncPage" + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/en_US/element/string.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/en_US/element/string.json new file mode 100644 index 00000000..676e6fcc --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/en_US/element/string.json @@ -0,0 +1,432 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "StateManagement entry model" + }, + { + "name": "EntryAbility_desc", + "value": "StateManagement entry ability" + }, + { + "name": "EntryAbility_label", + "value": "StateManagement" + }, + { + "name": "close", + "value": "Close" + }, + { + "name": "page_level", + "value": "PageLevelStageManagement" + }, + { + "name": "app_level", + "value": "AppLevelStageManagement" + }, + { + "name": "single_component_state", + "value": "State variables in single component" + }, + { + "name": "decorated_object_type", + "value": "The decorated object type" + }, + { + "name": "base_type", + "value": "Based type" + }, + { + "name": "array_type", + "value": "Array type" + }, + { + "name": "array_type_add", + "value": "add elements" + }, + { + "name": "array_type_delete", + "value": "delete elements" + }, + { + "name": "array_type_update", + "value": "Update a single element in an array" + }, + { + "name": "array_type_deletetoast", + "value": "The list is empty and cannot be deleted!" + }, + { + "name": "array_type_updatetoast", + "value": "The list is empty and cannot be update!" + }, + { + "name": "class_type", + "value": "Class Object type" + }, + { + "name": "class_type_objectName", + "value": "Chasing the starry sun" + }, + { + "name": "class_object", + "value": "Object" + }, + { + "name": "class_attribute", + "value": "Object Attribute" + }, + { + "name": "class_child_attribute", + "value": "Attribute of attribute" + }, + { + "name": "class_type_update_object", + "value": "Update object:" + }, + { + "name": "class_type_update_attribute", + "value": "Update object attribute" + }, + { + "name": "class_type_update_child_attribute", + "value": "Update attribute of attribute" + }, + { + "name": "update_principle", + "value": "Update principle" + }, + { + "name": "only_update_bound_components", + "value": "Only the components to which you are bound are updated" + }, + { + "name": "only_update_state", + "value": "@State declare variables" + }, + { + "name": "only_update_title", + "value": "title:" + }, + { + "name": "only_update_private", + "value": "Private declare variables" + }, + { + "name": "only_update_content", + "value": "content:" + }, + { + "name": "update_title_content", + "value": "Click to modify the title and content" + }, + { + "name": "only_update_state_components", + "value": "Only update components declared by @State" + }, + { + "name": "update_the_custom_component", + "value": "Where the custom component is updated" + }, + { + "name": "multi_component_sync", + "value": "Status synchronization between components" + }, + { + "name": "parent_child_sync", + "value": "State synchronization between parent and child components" + }, + { + "name": "single_and_two_way_sync", + "value": "Single and two-way synchronization" + }, + { + "name": "parent_component", + "value": "Parent component" + }, + { + "name": "child_component", + "value": "Child component" + }, + { + "name": "uni_and_bidirection_sync_tips", + "value": "The prototype color in the parent component is @ state state state variable" + }, + { + "name": "single_direction_sync_tips", + "value": "The prototype color in the one-way synchronization sub-component is @Prop state variable" + }, + { + "name": "both_direction_sync_tips", + "value": "The prototype color in the bidirectional synchronization sub-component is @Link state variable" + }, + { + "name": "uni_and_bidirection_sync_btn", + "value": "Set to pink, components are updated synchronously" + }, + { + "name": "single_direction_sync_btn", + "value": "Set to blue, parent component is out of sync" + }, + { + "name": "both_direction_sync_btn", + "value": "Set to red, attachment synchronization" + }, + { + "name": "partial_sync", + "value": "The child component synchronizes parts of the parent component" + }, + { + "name": "partial_sync_element_one", + "value": "Elment one" + }, + { + "name": "partial_sync_element_two", + "value": "Elment two" + }, + { + "name": "partial_sync_element_three", + "value": "Elment three" + }, + { + "name": "partial_sync_attribute_one", + "value": "Attribute one" + }, + { + "name": "partial_sync_attribute_two", + "value": "Attribute two" + }, + { + "name": "partial_sync_attribute_three", + "value": "Attribute three" + }, + { + "name": "partial_sync_parent_tips", + "value": "The array in the parent component is a @State state variable, and the classes of the elements of the array are decorated with @observed" + }, + { + "name": "partial_sync_text", + "value": "Use @ObjectLink to modify variables in child components to synchronize data with elements of objects in parent components" + }, + { + "name": "parent_descendent_sync", + "value": "State synchronization between parent and descendent" + }, + { + "name": "select_colorblue", + "value": "Blue" + }, + { + "name": "select_colorpink", + "value": "Pink" + }, + { + "name": "realize_by_state_link", + "value": "Use @State, @Link to realize:" + }, + { + "name": "realize_by_provide_consume", + "value": "Use @Provide, @Consume to realize:" + }, + { + "name": "deepnest_parent_titleone", + "value": "The circular color in the parent component as @State state variable" + }, + { + "name": "deepnest_child_titleone", + "value": "The circular color of the sub-component is @Link, and the state variable is passed to the sub-component" + }, + { + "name": "deepnest_descendent_titleone", + "value": "The circle color in the sub-component is @Link status variable" + }, + { + "name": "deepnest_parent_titletwo", + "value": "The state variable with the circular color of @Provide in the parent component as the data provider" + }, + { + "name": "deepnest_child_titletwo", + "value": "Variables do not need to be set in subcomponents" + }, + { + "name": "deepnest_descendent_titletwo", + "value": "The round color in the sub-component is @Consume variable to sense data changes, update the UI, or reverse synchronization" + }, + { + "name": "brother_sync", + "value": "State synchronization between brother components" + }, + { + "name": "parent_titleone", + "value": "The common parent component circle color is @State variable" + }, + { + "name": "link_brothers_title", + "value": "The brother component circle color is @Link state variable" + }, + { + "name": "parent_titletwo", + "value": "The common parent component circle color is @Provide variable" + }, + { + "name": "consume_brothers_title", + "value": "The brother component circle color is @Consume state variable" + }, + { + "name": "application_storage_ui", + "value": "State synchronization between the app storage and the UI" + }, + { + "name": "nightmode", + "value": "Night mode" + }, + { + "name": "close_nightmode", + "value": "Close night mode" + }, + { + "name": "start_nightmode", + "value": "Start night mode" + }, + { + "name": "nightmode_text", + "value": "Night mode control Ability1, Ability2 interface style" + }, + { + "name": "fontSize_text", + "value": "FontSize" + }, + { + "name": "fontSize_singlesync_textone", + "value": "FontSize one-way synchronization" + }, + { + "name": "enter_abilityone", + "value": "Enter ability1" + }, + { + "name": "enter_abilitytwo", + "value": "Enter ability2" + }, + { + "name": "abilityone_page", + "value": "Ability1" + }, + { + "name": "abilitytwo_page", + "value": "Ability2" + }, + { + "name": "both_data_binding", + "value": "The component establishes two-way binding with AppStorage through the state variable decorated by @StorageLink(key)" + }, + { + "name": "single_data_binding", + "value": "The component establishes a one-way data binding with AppStorage by using the state variable decorated with @StorageProp(key)" + }, + { + "name": "nigntmode_both_binding", + "value": "The night mode in this interface is bidirectional synchronization of @StorageLink(key) variable, and the night mode switch will be synchronized in other capabilities" + }, + { + "name": "single_fontsize_binding", + "value": "The font size in this interface is the @StorageProp(key) variable one-way synchronization, which only changes the font size of the current interface" + }, + { + "name": "ability_storage_ui", + "value": "State synchronization between the ability storage and the UI" + }, + { + "name": "enter_pageone", + "value": "Enter Page1" + }, + { + "name": "enter_ability_outofsync", + "value": "Cross Ability out of sync" + }, + { + "name": "enter_pagetwo", + "value": "Enter Page2" + }, + { + "name": "ability_storage_nightmodelsync", + "value": "The night mode switch controls the interface style of Page1 and Page2" + }, + { + "name": "ability_storage_fontsizesync", + "value": "Font size control page1, page2 interface font size one-way synchronization" + }, + { + "name": "localStorage_both_data_binding", + "value": "The component establishes two-way binding with LocalStorage through the state variable decorated by @LocalStorageLink(key)" + }, + { + "name": "localStorage_single_data_binding", + "value": "The component establishes a one-way data binding with LocalStorage by using the state variable decorated with @LocalStorageProp(key)" + }, + { + "name": "localStorage_nigntmode_both_binding", + "value": "The night mode in this interface is bidirectional synchronization of @LocalStorageLink (key) variable, and the night mode switch will be synchronized in other capabilities" + }, + { + "name": "localStorage_single_fontsize_binding", + "value": "The font size in this interface is the @StorageProp(key) variable one-way synchronization, which only changes the font size of the current interface" + }, + { + "name": "enter_ability_outofsync_text", + "value": "The data is not synchronized across capabilities, so the switch of night mode and home page in this interface is not synchronized" + }, + { + "name": "localStorage_pagetitleone", + "value": "Page1" + }, + { + "name": "localStorage_pagetitletwo", + "value": "Page2" + }, + { + "name": "localStorage_abilitytitle", + "value": "Ability" + }, + { + "name": "base_type_tip_text", + "value": "The circle color is a @State state variable" + }, + { + "name": "source_code", + "value": "View the source code" + }, + { + "name": "set_to_blue", + "value": "Set to blue" + }, + { + "name": "set_to_pink", + "value": "Set to pink" + }, + { + "name": "storagepropability_desc", + "value": "description" + }, + { + "name": "storagepropability_label", + "value": "label" + }, + { + "name": "storagelinkability_desc", + "value": "description" + }, + { + "name": "storagelinkability_label", + "value": "label" + }, + { + "name": "outofsyncability_desc", + "value": "description" + }, + { + "name": "outofsyncability_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityGlobalDataSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityGlobalDataSyncCode.ets.html new file mode 100644 index 00000000..1ae652a9 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityGlobalDataSyncCode.ets.html @@ -0,0 +1,157 @@ + + +AbilityGlobalDataSyncCode.ets + + + + + +
+ +AbilityGlobalDataSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 router from '@ohos.router';
+import { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { startSpecifiedAbility } from '../model/CommonMethods';
+
+@Component
+export struct AbilityGlobalDataSyncCode {
+  // 初始化Slider最小值
+  private minFontSize: number = 10;
+  // 和主页、Page1、Page2双向同步内容字体大小
+  @LocalStorageLink('contentFontSize') contentFontSize: number = 18;
+  // 和主页、Page1、Page2双向同步夜间模式状态
+  @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true;
+
+  build() {
+    Column({ space: 10 }) {
+      // 查看源码
+      ViewCodeText({ webSrc: $rawfile('AbilityGlobalDataSyncCode.ets.html') })
+      Row() {
+        Text($r('app.string.nightmode'))
+          .fontSize(this.contentFontSize)
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        // 控制夜间模式
+        Toggle({ type: ToggleType.Switch, isOn: this.currentModelStatus })
+          .selectedColor(Color.Blue)
+          .switchPointColor(Color.White)
+          .onChange((isOn: boolean) => {
+            // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageLink关联的数据变量刷新
+            this.currentModelStatus = isOn;
+          })
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('70%')
+      .border({ radius: 50, color: Color.Grey, width: $r('app.float.border_width') })
+
+      Text($r('app.string.ability_storage_nightmodelsync'))
+        .fontSize(this.contentFontSize)
+        .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        .textAlign(TextAlign.Center)
+      // slider滑动模块控制字体大小
+      Column() {
+        Text($r('app.string.fontSize_text'))
+          .fontSize(this.contentFontSize)
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+        Row() {
+          Text(`${this.minFontSize}`)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .fontSize($r('app.float.tips_font_size'))
+          Slider({
+            value: this.contentFontSize,
+            min: 10, // slider最小值
+            max: 30, // slider最大值
+            style: SliderStyle.OutSet
+          })
+            .showTips(true)
+            .onChange((value: number, mode: SliderChangeMode) => {
+              // 更新控制字体大小状态的变量数据,@LocalStorageLink和@LocalStorageProp关联的数据变量刷新
+              this.contentFontSize = value;
+            })
+          // toFixed(0)将滑动条返回值处理为整数精度
+          Text(this.contentFontSize.toFixed(0))
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .fontSize($r('app.float.tips_font_size'))
+        }
+        .width('80%')
+      }.margin({ top: 50 })
+
+      Text($r('app.string.ability_storage_fontsizesync'))
+        .fontSize(this.contentFontSize)
+        .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      Button() {
+        Text($r('app.string.enter_pageone'))
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+          .fontSize(this.contentFontSize)
+          .width('60%')
+          .textAlign(TextAlign.Center)
+      }
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .padding($r('app.float.page_padding'))
+      .onClick(() => {
+        router.pushUrl({ url: 'pages/applylevelstagemanagement/abilityglobaldatasync/LocalStoragePropPage' });
+      })
+
+      Button() {
+        Text($r('app.string.enter_pagetwo'))
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+          .fontSize(this.contentFontSize)
+          .width('60%')
+          .textAlign(TextAlign.Center)
+      }
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .padding($r('app.float.page_padding'))
+      .onClick(() => {
+        router.pushUrl({ url: 'pages/applylevelstagemanagement/abilityglobaldatasync/LocalStorageLinkPage' });
+      })
+
+      Divider().width('100%').strokeWidth(1)
+      Button() {
+        Text($r('app.string.enter_ability_outofsync'))
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+          .fontSize(this.contentFontSize)
+          .width('60%')
+          .textAlign(TextAlign.Center)
+      }
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .padding($r('app.float.page_padding'))
+      .onClick(() => {
+        startSpecifiedAbility('OutOfSyncAbility');
+      })
+    }
+    .width('100%')
+    .padding(10)
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityOutOfSyncPage.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityOutOfSyncPage.ets.html new file mode 100644 index 00000000..518834f7 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/AbilityOutOfSyncPage.ets.html @@ -0,0 +1,110 @@ + + +AbilityOutOfSyncPage.ets + + + + + +
+ +AbilityOutOfSyncPage.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView';
+import { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { TitleBarDark } from '../../../commoncomponents/TitleBarDark';
+import { TitleBar } from '../../../commoncomponents/TitleBar';
+
+let storage: LocalStorage = LocalStorage.GetShared();
+
+@Entry(storage)
+@Component
+struct AbilityOutOfSyncPage {
+  // 判断是否关联ability的变量
+  @State isAbility: boolean = true;
+  @State title: Resource = $r('app.string.localStorage_abilitytitle');
+  // 和主页、Page1、Page2不同步夜间模式状态
+  @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 和主页、Page1、Page2不同步内容字体大小
+  @LocalStorageLink('contentFontSize') contentFontSize: number = 18;
+
+  build() {
+    Column() {
+      if (this.currentModelStatus) {
+        TitleBarDark({ title: $title, isAbility: true })
+      } else {
+        TitleBar({ title: $title, isAbility: true })
+      }
+      CodeView({ title: $title, isShowTitle: false }) {
+        Column({ space: 30 }) {
+          // 查看源码
+          ViewCodeText({ webSrc: $rawfile('AbilityOutOfSyncPage.ets.html') })
+          Text($r('app.string.localStorage_both_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.localStorage_single_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.enter_ability_outofsync_text'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Button() {
+            Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode'))
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+              .fontSize(this.contentFontSize)
+              .width('60%')
+              .textAlign(TextAlign.Center)
+          }
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .padding($r('app.float.page_padding'))
+          .onClick(() => {
+            // 更新控制夜间模式状态的变量数据,@LocalStorageLink和@LocalStorageProp关联的数据变量刷新
+            this.currentModelStatus = !this.currentModelStatus;
+          })
+        }
+        .height('100%')
+        .padding($r('app.float.page_padding'))
+      }
+    }
+    .width('100%')
+    .height('100%')
+    .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey'))
+  }
+
+  aboutToDisappear() {
+    AppStorage.SetOrCreate('sideBarShow', false);
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ApplyGlobalDataSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ApplyGlobalDataSyncCode.ets.html new file mode 100644 index 00000000..18f1221b --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ApplyGlobalDataSyncCode.ets.html @@ -0,0 +1,142 @@ + + +ApplyGlobalDataSyncCode.ets + + + + + +
+ +ApplyGlobalDataSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { startSpecifiedAbility } from '../model/CommonMethods';
+
+@Component
+export default struct ApplyGlobalDataSyncCode {
+  // 和Ability1、Ability2页面双向同步内容字体大小
+  @StorageLink('contentFontSize') contentFontSize: number = 18;
+  // 和Ability1、Ability2页面双向同步夜间模式状态
+  @StorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 初始化Slider组件最小值
+  private minFontSize: number = 10;
+
+  build() {
+    Column({ space: 10 }) {
+      // 查看源码
+      ViewCodeText({ webSrc: $rawfile('ApplyGlobalDataSyncCode.ets.html') })
+      Row() {
+        Text($r('app.string.nightmode'))
+          .fontSize(this.contentFontSize)
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        // 开发控制夜间模式
+        Toggle({ type: ToggleType.Switch, isOn: this.currentModelStatus })
+          .selectedColor(Color.Blue)
+          .switchPointColor(Color.White)
+          .onChange((isOn: boolean) => {
+            // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageLink关联的数据变量刷新
+            this.currentModelStatus = isOn;
+            AppStorage.SetOrCreate<boolean>('currentModelStatus', this.currentModelStatus);
+          })
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('70%')
+      .border({ radius: 50, color: Color.Grey, width: $r('app.float.border_width') })
+
+      Text($r('app.string.nightmode_text'))
+        .fontSize(this.contentFontSize)
+        .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        .textAlign(TextAlign.Center)
+      // slider滑动模块控制字体大小
+      Column() {
+        Text($r('app.string.fontSize_text'))
+          .fontSize(this.contentFontSize)
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+        Row() {
+          Text(`${this.minFontSize}`)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .fontSize($r('app.float.tips_font_size'))
+          Slider({
+            value: this.contentFontSize,
+            min: this.minFontSize, // slider最小值
+            max: 30, // slider最大值
+            style: SliderStyle.OutSet
+          })
+            .showTips(true)
+            .onChange((value: number, mode: SliderChangeMode) => {
+              // 更新控制字体大小状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新
+              this.contentFontSize = value;
+              AppStorage.SetOrCreate<number>('contentFontSize', this.contentFontSize);
+            })
+          // toFixed(0)将滑动条返回值处理为整数精度
+          Text(this.contentFontSize.toFixed(0))
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .fontSize($r('app.float.tips_font_size'))
+        }
+        .width('80%')
+      }.margin({ top: 50 })
+
+      Text($r('app.string.fontSize_singlesync_textone'))
+        .fontSize(this.contentFontSize)
+        .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      Button() {
+        Text($r('app.string.enter_abilityone'))
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+          .fontSize(this.contentFontSize)
+          .width('60%')
+          .textAlign(TextAlign.Center)
+      }
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .padding($r('app.float.page_padding'))
+      .onClick(() => {
+        startSpecifiedAbility('StoragePropAbility');
+      })
+
+      Button() {
+        Text($r('app.string.enter_abilitytwo'))
+          .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+          .fontSize(this.contentFontSize)
+          .width('60%')
+          .textAlign(TextAlign.Center)
+      }
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .padding($r('app.float.page_padding'))
+      .onClick(() => {
+        startSpecifiedAbility('StorageLinkAbility');
+      })
+    }.padding($r('app.float.page_padding'))
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ArrayTypeCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ArrayTypeCode.ets.html new file mode 100644 index 00000000..46b4f566 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ArrayTypeCode.ets.html @@ -0,0 +1,157 @@ + + +ArrayTypeCode.ets + + + + + +
+ +ArrayTypeCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 promptAction from '@ohos.promptAction';
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+// 数组中元素的类
+export class ArrayDataType {
+  public id: number;
+  public name: string;
+  public age: number;
+
+  constructor(id: number, name: string, age: number) {
+    this.id = id;
+    this.name = name;
+    this.age = age;
+  }
+}
+
+// 初始化数组数据
+const ARRAY_TYPE_AGE_DATA: ArrayDataType[] = [new ArrayDataType(0, 'name', 17), new ArrayDataType(1, 'name', 18), new ArrayDataType(2, 'name', 19)]
+// 初始化功能按钮字符串数据
+const ARRAY_TYPE_BTN: Resource[] = [$r("app.string.array_type_add"), $r("app.string.array_type_delete"), $r("app.string.array_type_update")];
+
+@Component
+export struct ArrayTypeCode {
+  // 数组类型状态变量初始化
+  @State arrayTypeData: ArrayDataType[] = ARRAY_TYPE_AGE_DATA;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ArrayType.ets.html') })
+      // 数组内容展示
+      List() {
+        ForEach(this.arrayTypeData, (item: ArrayDataType, index: number) => {
+          ListItem() {
+            ArrayDataItem({ arrayDataItem: item, itemIndex: index })
+          }
+        }, item => JSON.stringify(item))
+      }
+      .width('100%')
+      .height('40%')
+      .backgroundColor($r('app.color.component_background_pink'))
+      .padding({ left: 10, right: 10 })
+      // 功能按钮区
+      ForEach(ARRAY_TYPE_BTN, (item:Resource, index:number) => {
+        Button(item)
+          .id(`arrayTypeBtn${index}`)
+          .width('100%')
+          .height($r('app.float.button_height'))
+          .fontColor($r('app.color.button_text_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .onClick(() => {
+            this.handleButtonClick(index)
+          })
+      }, item => JSON.stringify(item))
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+
+  handleButtonClick(index: number){
+    switch (index) {
+      case 0:
+      // 数组添加元素
+        this.arrayTypeData.push(new ArrayDataType(this.arrayTypeData.length, `name`, 18)); // 新增元素数据,age为18
+        break;
+      case 1:
+        if (this.arrayTypeData.length === 0) {
+          // 当数据没有数据的时候,点击删除按钮,出现提示弹窗
+          promptAction.showToast({
+            message: $r('app.string.array_type_deletetoast')
+          });
+        } else {
+          // 数组删除元素
+          this.arrayTypeData.splice(this.arrayTypeData.length - 1, 1); // 删除最后一个元素
+        }
+        break;
+      case 2:
+        if (this.arrayTypeData.length === 0) {
+          // 当数据没有数据的时候,点击更新按钮,出现提示弹窗
+          promptAction.showToast({
+            message: $r('app.string.array_type_updatetoast')
+          });
+          break;
+        }
+      // 初始化一个对象后给数组中的元素赋值,更新数组元素
+        let temp = new ArrayDataType(this.arrayTypeData[0].id, this.arrayTypeData[0].name, this.arrayTypeData[0].age + 1);
+        this.arrayTypeData[0] = temp;
+        break;
+      default:
+        break;
+    }
+  }
+}
+
+// 数组Item内容组件
+@Component
+struct ArrayDataItem {
+  private arrayDataItem: ArrayDataType;
+  private itemIndex: number;
+
+  build() {
+    Column() {
+      Text(`${this.arrayDataItem.name}${this.itemIndex}`)
+        .width('100%')
+        .fontColor($r('app.color.button_text_color'))
+        .fontSize(20)
+      Text(`age:${this.arrayDataItem.age}`)
+        .width('100%')
+        .fontColor($r('app.color.button_text_color'))
+        .fontSize(20)
+      Divider().width('100%')
+        .strokeWidth(1)
+        .margin({ top: 20 })
+    }
+    .margin({ top: 20 })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BaseTypeCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BaseTypeCode.ets.html new file mode 100644 index 00000000..923a3590 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BaseTypeCode.ets.html @@ -0,0 +1,81 @@ + + +BaseTypeCode.ets + + + + + +
+ +BaseTypeCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct BaseTypeCode {
+  @State circleColor: Resource = $r('app.color.circle_pink');
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({webSrc: $rawfile('BaseType.ets.html')})
+
+      Text($r('app.string.base_type_tip_text'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      Circle()
+        .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+        .fill(this.circleColor)
+      Button() {
+        Text(this.circleColor.id === $r('app.color.circle_pink')
+          .id ? $r('app.string.set_to_blue') : $r('app.string.set_to_pink'))
+          .fontColor($r('app.color.button_text_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+      }
+      .id('circleColorBtn')
+      .height($r('app.float.button_height'))
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .onClick(() => {
+        if (this.circleColor.id === $r('app.color.circle_pink').id) {
+          this.circleColor = $r('app.color.circle_blue');
+        } else {
+          this.circleColor = $r('app.color.circle_pink');
+        }
+      })
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BrotherComponentSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BrotherComponentSyncCode.ets.html new file mode 100644 index 00000000..560c304c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/BrotherComponentSyncCode.ets.html @@ -0,0 +1,67 @@ + + +BrotherComponentSyncCode.ets + + + + + +
+ +BrotherComponentSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ProvideFatherComponent } from './ProvideFatherComponent'
+import { StateFatherComponent } from './StateFatherComponent'
+
+@Component
+export struct BrotherComponentSyncCode {
+
+  build() {
+    Column() {
+      Column() {
+        Text($r('app.string.realize_by_state_link'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Start)
+        // 共同父组件@State
+        StateFatherComponent()
+      }
+
+      Column() {
+        Text($r('app.string.realize_by_provide_consume'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Start)
+        // 共同父组件@Provide
+        ProvideFatherComponent()
+      }
+      .margin({ top: 10 })
+    }
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ClassObjectTypeCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ClassObjectTypeCode.ets.html new file mode 100644 index 00000000..71509d00 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ClassObjectTypeCode.ets.html @@ -0,0 +1,192 @@ + + +ClassObjectTypeCode.ets + + + + + +
+ +ClassObjectTypeCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText';
+import { getResourceString } from '../../../../../utils/ResourceUtils';
+
+let context: common.UIAbilityContext = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct ClassObjectTypeCode {
+  // 对象类型状态变量初始化
+  @State classObjectData: ParentClass = new ParentClass(getResourceString(context, $r('app.string.class_attribute')), 1,
+    new ChildClass(getResourceString(context, $r('app.string.class_child_attribute')), 2));
+  // 更新对象的次数
+  private clickedCount: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ClassObjectTypeCode.ets.html') })
+      Column({ space: 15 }) {
+        Row() {
+          Text($r('app.string.class_object'))
+            .fontSize(20)
+            .textAlign(TextAlign.End)
+          Divider()
+            .layoutWeight(1)
+            .strokeWidth(1)
+            .margin({ top: 20, left: 5 })
+        }
+        .width('100%')
+
+        Column() {
+          Row() {
+            Text(this.classObjectData.title)
+              .fontSize(20)
+            Text(`${this.classObjectData.attribute}`)
+              .fontSize(20)
+              .textAlign(TextAlign.End)
+          }
+          .width('100%')
+          .justifyContent(FlexAlign.SpaceBetween)
+
+          Divider()
+            .width('100%')
+            .strokeWidth(1)
+        }
+        .width('100%')
+        .padding({ left: 50 })
+
+        ChildObjectComp({ childObject: this.classObjectData.child }) // 对象的属性,使用子组件显示
+      }
+      .width('100%')
+      .backgroundColor($r('app.color.component_background_pink'))
+      .padding(10)
+      // 点击更新对象
+      Button($r("app.string.class_type_update_object"))
+        .onClick(() => {
+          // 更新对象,把新的对象直接赋值给状态变量
+          this.clickedCount++;
+          let objectTitle: string = getResourceString(context, $r('app.string.class_attribute')) + this.clickedCount;
+          let attributeTitle: string = getResourceString(context, $r('app.string.class_child_attribute'))
+                                       + this.clickedCount;
+          let newObject = new ParentClass(objectTitle, this.classObjectData.attribute + 1,
+            new ChildClass(attributeTitle, this.classObjectData.child.attribute + 1));
+          this.classObjectData = newObject;
+        })
+        .id('updateObject')
+        .fontColor($r('app.color.button_text_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .type(ButtonType.Capsule)
+        .buttonStyle()
+      Button($r("app.string.class_type_update_attribute"))
+        .onClick(() => {
+          // 点击更新对象的属性
+          this.classObjectData.attribute++;
+        })
+        .id('updateObjectAttribute')
+        .fontColor($r('app.color.button_text_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .type(ButtonType.Capsule)
+        .buttonStyle()
+      Button($r("app.string.class_type_update_child_attribute"))
+        .onClick(() => {
+          // 点击更新对象属性的属性
+          this.classObjectData.child.attribute++;
+        })
+        .id('updateAttributeOfAttribute')
+        .fontColor($r('app.color.button_text_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .type(ButtonType.Capsule)
+        .buttonStyle()
+    }
+    .width('100%')
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+// 对象中属性的组件
+@Component
+struct ChildObjectComp {
+  // 使用@ObjectLink修饰,与父组件同步对象的属性
+  @ObjectLink childObject: ChildClass;
+
+  build() {
+    Column() {
+      Row() {
+        Text(this.childObject.title)
+          .fontSize(20)
+        Text(`${this.childObject.attribute}`)
+          .fontSize(20)
+          .textAlign(TextAlign.End)
+      }
+      .width('100%')
+      .justifyContent(FlexAlign.SpaceBetween)
+
+      Divider()
+        .width('100%')
+        .strokeWidth(1)
+    }
+    .width('100%')
+    .padding({ left: 100 })
+  }
+}
+
+@Styles function buttonStyle() {
+  .width('100%')
+  .height($r('app.float.button_height'))
+  .backgroundColor($r('app.color.button_background_color'))
+}
+
+// 要更新对象属性的属性,对象属性的类需要使用@Observed修饰
+@Observed
+class ChildClass {
+  public title: string;
+  public attribute: number;
+
+  constructor(title: string, attribute: number) {
+    this.title = title;
+    this.attribute = attribute;
+  }
+}
+
+class ParentClass {
+  public title: string;
+  public attribute: number;
+  public child: ChildClass;
+
+  constructor(title: string, attribute: number, child: ChildClass) {
+    this.title = title;
+    this.attribute = attribute;
+    this.child = child;
+  }
+}
+
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentLink.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentLink.ets.html new file mode 100644 index 00000000..81e169fa --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentLink.ets.html @@ -0,0 +1,85 @@ + + +ComponentLink.ets + + + + + +
+ +ComponentLink.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { COLOR_DATA } from './UniAndBidirectionSyncCode'
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct ChildCompLink {
+  // 圆形颜色,和父组件中的状态变量双向同步
+  @Link circleColor: string;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({webSrc: $rawfile('ComponentLink.ets.html')})
+
+      Text($r('app.string.child_component'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Start)
+        .margin(10)
+      Text($r("app.string.both_direction_sync_tips"))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      // 绑定@Link变量的Circle组件
+      Circle()
+        .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+        .fill(this.circleColor)
+      Button() {
+        Text($r("app.string.both_direction_sync_btn"))
+          .fontColor($r('app.color.button_text_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+      }
+      .id('redColorBtn')
+      .height($r('app.float.button_height'))
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .onClick(() => {
+        // 点击更新子组件@Link声明的变量,此子组件更新,父组件以及@Prop声明的子组件变量同步
+        this.circleColor = COLOR_DATA.RED;
+      })
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentProp.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentProp.ets.html new file mode 100644 index 00000000..3bf408c2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ComponentProp.ets.html @@ -0,0 +1,84 @@ + + +ComponentProp.ets + + + + + +
+ +ComponentProp.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { COLOR_DATA } from './UniAndBidirectionSyncCode'
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct ChildCompProp {
+  // 圆形颜色,和父组件中的状态变量单向同步,只支持基础类型
+  @Prop circleColor: string;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ComponentProp.ets.html') })
+      Text($r('app.string.child_component'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Start)
+        .margin(10)
+      Text($r("app.string.single_direction_sync_tips"))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      // 绑定@Link变量的Circle组件
+      Circle()
+        .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+        .fill(this.circleColor)
+      Button() {
+        Text($r("app.string.single_direction_sync_btn"))
+          .fontColor($r('app.color.button_text_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+      }
+      .id('blueColorBtn')
+      .height($r('app.float.button_height'))
+      .type(ButtonType.Capsule)
+      .backgroundColor($r('app.color.button_background_color'))
+      .onClick(() => {
+        // 点击更新子组件@Prop声明的变量,此子组件更新,父组件以及@Link声明的子组件变量不同步
+        this.circleColor = COLOR_DATA.BLUE;
+      })
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherOneComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherOneComponent.ets.html new file mode 100644 index 00000000..4981ab7c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherOneComponent.ets.html @@ -0,0 +1,87 @@ + + +ConsumeBrotherOneComponent.ets + + + + + +
+ +ConsumeBrotherOneComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText';
+
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct ConsumeBrotherOneComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和父组件、子组件B双向同步圆形颜色
+  @Consume consumeCircleColor: Resource;
+  // 和父组件、子组件B双向同步Select组件的Index值
+  @Consume currentSelectIndex: number;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+      Text($r('app.string.consume_brothers_title'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      Row() {
+        Select(this.selectColors)
+          .id('consumeSelectCompA')
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.select_font_size') })
+          .selectedOptionFont({ size: $r('app.float.select_font_size') })
+          .optionFont({ size: $r('app.float.select_font_size') })
+          .onSelect((index: number) => {
+            // 此组件@Consume声明的数据页面更新,兄弟组件@Consume的数据页面同步更新
+            this.currentSelectIndex = index;
+            this.consumeCircleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.consumeCircleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherTwoComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherTwoComponent.ets.html new file mode 100644 index 00000000..e46f4d09 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeBrotherTwoComponent.ets.html @@ -0,0 +1,87 @@ + + +ConsumeBrotherTwoComponent.ets + + + + + +
+ +ConsumeBrotherTwoComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct ConsumeBrotherTwoComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和父组件、子组件B双向同步圆形颜色
+  @Consume consumeCircleColor: Resource;
+  // 和父组件、子组件A双向同步Select组件的Index值
+  @Consume currentSelectIndex: number;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+      Text($r('app.string.consume_brothers_title'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .height($r('app.float.button_height'))
+      Row() {
+        Select(this.selectColors)
+          .id('consumeSelectCompB')
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(getContext(this) as common.UIAbilityContext, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.select_font_size') })
+          .selectedOptionFont({ size: $r('app.float.select_font_size') })
+          .optionFont({ size: $r('app.float.select_font_size') })
+          .onSelect((index: number) => {
+            // 此组件@Consume声明的数据页面更新,兄弟组件@Consume的数据页面同步更新
+            this.currentSelectIndex = index;
+            this.consumeCircleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.consumeCircleColor)
+
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeDescendentComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeDescendentComponent.ets.html new file mode 100644 index 00000000..c71aefb1 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ConsumeDescendentComponent.ets.html @@ -0,0 +1,92 @@ + + +ConsumeDescendentComponent.ets + + + + + +
+ +ConsumeDescendentComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText';
+
+// 声明一个上下文变量
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct ConsumeDescendentComponent {
+  // 初始化一个颜色数组数据
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和爷组件双向同步圆形颜色
+  @Consume consumeCircleColor: Resource;
+  // 和爷组件双向同步Select的Index值
+  @Consume currentSelectIndex: number;
+
+  build() {
+    Column() {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ConsumeDescendentComponent.ets.html') })
+      Row() {
+        Select(this.selectColors)
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.tips_font_size') })
+          .selectedOptionFont({ size: $r('app.float.tips_font_size') })
+          .optionFont({ size: $r('app.float.tips_font_size') })
+          .id('grandsonCompB')
+          .onSelect((index: number) => {
+            // 孙组件@Consume声明的数据页面更新,爷组件@Provide的数据页面同步更新
+            this.currentSelectIndex = index;
+            this.consumeCircleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.consumeCircleColor)
+
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+      .margin({ bottom: 6 })
+
+      Text($r('app.string.deepnest_descendent_titletwo'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Red, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/DeepNestComponentsSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/DeepNestComponentsSyncCode.ets.html new file mode 100644 index 00000000..5df40d97 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/DeepNestComponentsSyncCode.ets.html @@ -0,0 +1,65 @@ + + +DeepNestComponentsSyncCode.ets + + + + + +
+ +DeepNestComponentsSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { StateGrandfatherComponent } from './StateGrandfatherComponent';
+import { ProvideGrandfatherComponent } from './ProvideGrandfatherComponent';
+
+@Component
+export struct DeepNestComponentsSyncCode {
+  build() {
+    Column() {
+      Column() {
+        Text($r('app.string.realize_by_state_link'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Start)
+        // 爷组件@State
+        StateGrandfatherComponent()
+      }.margin({ bottom: 16 })
+
+      Column() {
+        Text($r('app.string.realize_by_provide_consume'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Start)
+        // 爷组件@Provide
+        ProvideGrandfatherComponent()
+      }
+    }
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherOneComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherOneComponent.ets.html new file mode 100644 index 00000000..b9438fb2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherOneComponent.ets.html @@ -0,0 +1,89 @@ + + +LinkBrotherOneComponent.ets + + + + + +
+ +LinkBrotherOneComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'
+
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct LinkBrotherOneComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和父组件、子组件B双向同步圆形颜色
+  @Link circleColor: Resource;
+  // 和父组件、子组件B双向同步Select组件的Index值
+  @Link currentSelectIndex: number;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('LinkBrotherOneComponent.ets.html') })
+      Text($r('app.string.link_brothers_title'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .fontColor($r('app.color.tips_font_color'))
+      Row() {
+        Select(this.selectColors)
+          .id('linkSelectCompA')
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.select_font_size') })
+          .selectedOptionFont({ size: $r('app.float.select_font_size') })
+          .optionFont({ size: $r('app.float.select_font_size') })
+          .onSelect((index: number) => {
+            // 此组件@Link声明的数据页面更新,兄弟组件@Link的数据页面同步更新
+            this.currentSelectIndex = index;
+            this.circleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.circleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherTwoComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherTwoComponent.ets.html new file mode 100644 index 00000000..0f8c892a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkBrotherTwoComponent.ets.html @@ -0,0 +1,86 @@ + + +LinkBrotherTwoComponent.ets + + + + + +
+ +LinkBrotherTwoComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils'
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct LinkBrotherTwoComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和父组件、子组件A双向同步圆形颜色
+  @Link circleColor: Resource;
+  // 和父组件、子组件A双向同步Select的Index值
+  @Link currentSelectIndex: number;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+      Text($r('app.string.link_brothers_title'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .height($r('app.float.button_height'))
+      Row() {
+        Select(this.selectColors)
+          .id('linkSelectCompB')
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(getContext(this) as common.UIAbilityContext, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.select_font_size') })
+          .selectedOptionFont({ size: $r('app.float.select_font_size') })
+          .optionFont({ size: $r('app.float.select_font_size') })
+          .onSelect((index: number) => {
+            // 此组件@Link声明的数据页面更新,兄弟组件@Link的数据页面同步更新
+            this.currentSelectIndex = index;
+            this.circleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.circleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkDescendentComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkDescendentComponent.ets.html new file mode 100644 index 00000000..0c8d8dc5 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LinkDescendentComponent.ets.html @@ -0,0 +1,89 @@ + + +LinkDescendentComponent.ets + + + + + +
+ +LinkDescendentComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText';
+
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct LinkDescendentComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 和父组件和爷组件双向同步圆形颜色
+  @Link circleColor: Resource;
+  // 和父组件和爷组件双向同步Select的Index值
+  @Link currentSelectIndex: number;
+
+  build() {
+    Column() {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('LinkDescendentComponent.ets.html') })
+      Row() {
+        Select(this.selectColors)
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.tips_font_size') })
+          .selectedOptionFont({ size: $r('app.float.tips_font_size') })
+          .optionFont({ size: $r('app.float.tips_font_size') })
+          .id('grandsonCompA')
+          .onSelect((index: number) => {
+            // 孙组件@Link组件数据页面更新,爷组件同步更新
+            this.currentSelectIndex = index;
+            this.circleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.circleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+      .margin({ bottom: 6 })
+
+      Text($r('app.string.deepnest_descendent_titleone'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Red, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStorageLinkPage.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStorageLinkPage.ets.html new file mode 100644 index 00000000..3b4d22a8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStorageLinkPage.ets.html @@ -0,0 +1,109 @@ + + +LocalStorageLinkPage.ets + + + + + +
+ +LocalStorageLinkPage.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView';
+import { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { TitleBarDark } from '../../../commoncomponents/TitleBarDark';
+import { TitleBar } from '../../../commoncomponents/TitleBar';
+
+let storage: LocalStorage = LocalStorage.GetShared();
+
+@Entry(storage)
+@Component
+struct StorageLinkAbilityPage {
+  @State title: Resource = $r('app.string.localStorage_pagetitletwo');
+  // 和主页、Page2双向同步夜间模式状态
+  @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 和主页、Page2双向同步内容字体大小
+  @LocalStorageLink('contentFontSize') contentFontSize: number = 18;
+
+  build() {
+    Column() {
+      if (this.currentModelStatus) {
+        TitleBarDark({ title: $title })
+      } else {
+        TitleBar({ title: $title })
+      }
+      CodeView({ title: $title, isShowTitle: false }) {
+        Column({ space: 30 }) {
+          // 查看源码
+          ViewCodeText({ webSrc: $rawfile('LocalStorageLinkPage.ets.html') })
+          Text($r('app.string.localStorage_both_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.localStorage_single_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Button() {
+            Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode'))
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+              .fontSize(this.contentFontSize)
+              .width('60%')
+              .textAlign(TextAlign.Center)
+          }
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .padding($r('app.float.page_padding'))
+          .onClick(() => {
+            // 更新控制夜间模式状态的变量数据,@LocalStorageLink和@StorageProp关联的数据变量刷新
+            this.currentModelStatus = !this.currentModelStatus;
+          })
+
+          Text($r('app.string.localStorage_nigntmode_both_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+        }
+        .height('100%')
+        .padding($r('app.float.page_padding'))
+      }
+    }
+    .width('100%')
+    .height('100%')
+    .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey'))
+  }
+
+  aboutToDisappear() {
+    AppStorage.SetOrCreate('sideBarShow', false);
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStoragePropPage.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStoragePropPage.ets.html new file mode 100644 index 00000000..b3d149d9 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/LocalStoragePropPage.ets.html @@ -0,0 +1,145 @@ + + +LocalStoragePropPage.ets + + + + + +
+ +LocalStoragePropPage.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView';
+import { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { TitleBarDark } from '../../../commoncomponents/TitleBarDark';
+import { TitleBar } from '../../../commoncomponents/TitleBar';
+
+let storage: LocalStorage = LocalStorage.GetShared();
+
+@Entry(storage)
+@Component
+struct StoragePropAbilityPage {
+  @State title: Resource = $r('app.string.localStorage_pagetitleone');
+  // 初始化Slider组件最小值
+  private minFontSize: number = 10;
+  // 和主页、Page1双向同步夜间模式状态
+  @LocalStorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 和主页、Page1单向同步内容字体大小
+  @LocalStorageProp('contentFontSize') contentFontSize: number = 18;
+
+  build() {
+    Column() {
+      if (this.currentModelStatus) {
+        TitleBarDark({ title: $title, isAbility: true })
+      } else {
+        TitleBar({ title: $title, isAbility: true })
+      }
+      CodeView({ title: $title, isShowTitle: false }) {
+        Column({ space: 20 }) {
+          // 查看源码
+          ViewCodeText({ webSrc: $rawfile('LocalStoragePropPage.ets.html') })
+          Text($r('app.string.localStorage_both_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.localStorage_single_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Button() {
+            Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode'))
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+              .fontSize(this.contentFontSize)
+              .width('60%')
+              .textAlign(TextAlign.Center)
+          }
+          .padding($r('app.float.page_padding'))
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .onClick(() => {
+            // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新
+            this.currentModelStatus = !this.currentModelStatus;
+          })
+
+          Text($r('app.string.localStorage_nigntmode_both_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          // slider模块控制字体大小
+          Column() {
+            Text($r('app.string.fontSize_text'))
+              .fontSize(this.contentFontSize)
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+              .width('100%')
+              .textAlign(TextAlign.Center)
+            Row() {
+              Text(`${this.minFontSize}`)
+                .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+                .fontSize($r('app.float.tips_font_size'))
+              Slider({
+                value: this.contentFontSize,
+                min: 10, // slider最小值
+                max: 30, // slider最大值
+                style: SliderStyle.OutSet
+              })
+                .showTips(true)
+                .onChange((value: number, mode: SliderChangeMode) => {
+                  // 更新控制字体大小的变量数据,@LocalStorageLink关联的数据变量不刷新同步
+                  this.contentFontSize = value;
+                })
+              // toFixed(0)将滑动条返回值处理为整数精度
+              Text(this.contentFontSize.toFixed(0))
+                .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+                .fontSize($r('app.float.tips_font_size'))
+            }
+            .width('80%')
+          }.margin({ top: 50 })
+
+          Text($r('app.string.localStorage_single_fontsize_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+        }
+        .padding($r('app.float.page_padding'))
+      }
+    }
+    .width('100%')
+    .height('100%')
+    .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey'))
+  }
+
+  aboutToDisappear() {
+    AppStorage.SetOrCreate('sideBarShow', false);
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ObjectLinkComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ObjectLinkComponent.ets.html new file mode 100644 index 00000000..a077ce3f --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ObjectLinkComponent.ets.html @@ -0,0 +1,77 @@ + + +ObjectLinkComponent.ets + + + + + +
+ +ObjectLinkComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ClassObject } from './ParentChildPartialContentSyncCode';
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct ObjectLinkComponent {
+  // 使用@ObjectLink修饰,与父组件中元素同步
+  @ObjectLink childObjectData: ClassObject;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ObjectLinkComponent.ets.html') })
+
+      Text($r('app.string.partial_sync_text'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Start)
+      Row() {
+        Text(this.childObjectData.elementType)
+          .fontColor($r('app.color.tips_font_color'))
+          .fontSize($r('app.float.tips_font_size'))
+          .textAlign(TextAlign.Center)
+          .layoutWeight(1)
+        TextInput({ text: this.childObjectData.attributeType })
+          .fontSize(20)
+          .layoutWeight(1)
+          .id('childAttribute')
+          .onChange((value: string) => {
+            // 子组件对象属性更新,父元素同步
+            this.childObjectData.attributeType = value
+          })
+      }
+      .justifyContent(FlexAlign.SpaceAround)
+    }
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+    .padding(10)
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ParentChildPartialContentSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ParentChildPartialContentSyncCode.ets.html new file mode 100644 index 00000000..3861aa91 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ParentChildPartialContentSyncCode.ets.html @@ -0,0 +1,132 @@ + + +ParentChildPartialContentSyncCode.ets + + + + + +
+ +ParentChildPartialContentSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ObjectLinkComponent } from './ObjectLinkComponent';
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText';
+
+// 数组中元素的类,使用@Observed修饰
+@Observed
+export class ClassObject {
+  public elementType: Resource;
+  public attributeType: Resource | string;
+
+  constructor(elementType: Resource, attributeType: Resource | string) {
+    this.elementType = elementType;
+    this.attributeType = attributeType;
+  }
+}
+
+// 初始化父组件中的数据
+const PARENT_DATA: ClassObject[] = [new ClassObject($r("app.string.partial_sync_element_one"), $r("app.string.partial_sync_attribute_one")),
+  new ClassObject($r("app.string.partial_sync_element_two"), $r("app.string.partial_sync_attribute_two")),
+  new ClassObject($r("app.string.partial_sync_element_three"), $r("app.string.partial_sync_attribute_three"))];
+
+@Component
+export struct ParentChildPartialContentSyncCode {
+  // 初始化父组件中状态变量
+  @State parentData: ClassObject[] = PARENT_DATA;
+  // 与子组件同步的的数据是数组的第几个元素,默认选中第一个
+  @State syncIndex: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+
+      Text($r("app.string.partial_sync_parent_tips"))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.tips_font_size'))
+        .width('100%')
+        .textAlign(TextAlign.Start)
+      // 父组件中List展示状态变量中的内容
+      Column() {
+        ForEach(this.parentData, (item: ClassObject, index: number) => {
+          Column() {
+            ParentCompDataItem({ index: index, syncIndex: this.syncIndex, childObject: item })
+          }
+          .backgroundColor(index === this.syncIndex ? $r('app.color.component_background_pink') : undefined)
+          .onClick(() => {
+            this.syncIndex = index;
+          })
+        }, item => JSON.stringify(item))
+      }
+      .width('100%')
+      .backgroundColor($r('app.color.component_background_pink'))
+
+      //与父组件状态同步的子组件
+      ObjectLinkComponent({ childObjectData: this.parentData[this.syncIndex] })
+    }
+    .width('100%')
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+// 展示数组中单个元素的子组件
+@Component
+struct ParentCompDataItem {
+  private index: number;
+  @Prop syncIndex: number;
+  // 使用@ObjectLink修饰,与父组件中元素同步
+  @ObjectLink childObject: ClassObject;
+
+  build() {
+    Column() {
+      Text(this.childObject.elementType)
+        .width('100%')
+        .fontSize(20)
+      if (this.index === this.syncIndex) {
+        TextInput({ text: this.childObject.attributeType })
+          .fontSize(20)
+          .id(`attribute${this.index + 1}`)
+          .onChange((value: string) => {
+            // 更新父组件中元素的属性,子组件同步
+            this.childObject.attributeType = value;
+          })
+      } else {
+        Text(this.childObject.attributeType)
+          .width('100%')
+          .fontSize(20)
+      }
+    }
+    .padding(10)
+    .id(`arrayElement${this.index}`)
+  }
+}
+
+
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideFatherComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideFatherComponent.ets.html new file mode 100644 index 00000000..b9e0ad83 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideFatherComponent.ets.html @@ -0,0 +1,72 @@ + + +ProvideFatherComponent.ets + + + + + +
+ +ProvideFatherComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { ConsumeBrotherOneComponent } from './ConsumeBrotherOneComponent';
+import { ConsumeBrotherTwoComponent } from './ConsumeBrotherTwoComponent';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct ProvideFatherComponent {
+  // 初始化一个颜色数组
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 共同父组件使用@Provide初始化圆形颜色
+  @Provide consumeCircleColor: Resource = $r('app.color.circle_blue');
+  // 初始化Select组件的Index为0
+  @Provide currentSelectIndex: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+      Text($r('app.string.parent_titletwo'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      // 和父组件双向同步子组件A
+      ConsumeBrotherOneComponent()
+      // 和父组件双向同步子组件B
+      ConsumeBrotherTwoComponent()
+    }.padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideGrandfatherComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideGrandfatherComponent.ets.html new file mode 100644 index 00000000..75747b94 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/ProvideGrandfatherComponent.ets.html @@ -0,0 +1,111 @@ + + +ProvideGrandfatherComponent.ets + + + + + +
+ +ProvideGrandfatherComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { ConsumeDescendentComponent } from './ConsumeDescendentComponent';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText';
+import { getResourceString } from '../../../../utils/ResourceUtils'
+
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct ProvideGrandfatherComponent {
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 初始化爷组件@Provide的原型颜色
+  @Provide consumeCircleColor: Resource = $r('app.color.circle_blue');
+  // 初始化Select组件的Index
+  @Provide currentSelectIndex: number = 0;
+
+  build() {
+    Column() {
+      // 点击查看源码
+      ViewCodeText({ webSrc:  $rawfile('ProvideAndConsumeSync.ets.html') })
+      Text($r('app.string.deepnest_parent_titletwo'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .margin({ top: 10 })
+      Row() {
+        Select(this.selectColors)
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.tips_font_size') })
+          .selectedOptionFont({ size: $r('app.float.tips_font_size') })
+          .optionFont({ size: $r('app.float.tips_font_size') })
+          .id('grandfatherCompB')
+          .onSelect((index: number) => {
+            // 爷组件@Provide声明的数据页面更新,孙组件@Consume关联的变量同步更新
+            this.currentSelectIndex = index;
+            this.consumeCircleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.consumeCircleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+      .margin({ bottom: 6 })
+      // 子组件
+      ConsumeChildComp()
+    }.padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+@Component
+struct ConsumeChildComp {
+
+  build() {
+    Column() {
+      Text($r('app.string.deepnest_child_titletwo'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .height($r('app.float.button_height'))
+      // 双向同步孙组件
+      ConsumeDescendentComponent()
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateFatherComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateFatherComponent.ets.html new file mode 100644 index 00000000..b1a056d6 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateFatherComponent.ets.html @@ -0,0 +1,78 @@ + + +StateFatherComponent.ets + + + + + +
+ +StateFatherComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { LinkBrotherOneComponent } from './LinkBrotherOneComponent';
+import { LinkBrotherTwoComponent } from './LinkBrotherTwoComponent';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct StateFatherComponent {
+  // 共同父组件使用@State初始化圆形颜色
+  @State circleColor: Resource = $r('app.color.circle_blue');
+  // 初始化一个颜色数组
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 初始化当前Select的Index为0
+  @State currentSelectIndex: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('ParentChildPartialContentSyncCode.ets.html') })
+      Text($r('app.string.parent_titleone'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      // 和父组件双向同步子组件A
+      LinkBrotherOneComponent({
+        circleColor: $circleColor,
+        currentSelectIndex: $currentSelectIndex
+      })
+      // 和父组件双向同步子组件B
+      LinkBrotherTwoComponent({
+        circleColor: $circleColor,
+        currentSelectIndex: $currentSelectIndex
+      })
+    }.padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateGrandfatherComponent.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateGrandfatherComponent.ets.html new file mode 100644 index 00000000..c5bf92c2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StateGrandfatherComponent.ets.html @@ -0,0 +1,117 @@ + + +StateGrandfatherComponent.ets + + + + + +
+ +StateGrandfatherComponent.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 common from '@ohos.app.ability.common';
+import { LinkDescendentComponent } from './LinkDescendentComponent';
+import { ColorType } from '../model/ColorType';
+import { COLOR_SELECT_DATA } from '../data/ColorData';
+import { getResourceString } from '../../../../utils/ResourceUtils';
+import { ViewCodeText } from '../../../../commoncomponents/ViewCodeText';
+
+// 声明一个上下文变量
+let context = getContext(this) as common.UIAbilityContext;
+
+@Component
+export struct StateGrandfatherComponent {
+  // 初始化爷组件@State的圆形颜色
+  @State circleColor: Resource = $r('app.color.circle_blue');
+  // 初始化一个颜色数组
+  @State selectColors: ColorType[] = COLOR_SELECT_DATA;
+  // 初始化当前select组件的index
+  @State currentSelectIndex: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({ webSrc: $rawfile('StateAndLinkSync.ets.html') })
+      Text($r('app.string.deepnest_parent_titleone'))
+        .fontSize($r('app.float.tips_font_size'))
+        .fontColor($r('app.color.tips_font_color'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+      Row() {
+        Select(this.selectColors)
+          .selected(this.currentSelectIndex)
+          .value(getResourceString(context, this.selectColors[this.currentSelectIndex].value))
+          .fontColor($r('app.color.button_text_color'))
+          .font({ size: $r('app.float.tips_font_size') })
+          .selectedOptionFont({ size: $r('app.float.tips_font_size') })
+          .optionFont({ size: $r('app.float.tips_font_size') })
+          .id('grandfatherCompA')
+          .onSelect((index: number) => {
+            // 爷组件@State声明的数据页面更新,孙组件@Link关联的变量同步更新
+            this.currentSelectIndex = index;
+            this.circleColor = this.selectColors[index].color;
+          })
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.circleColor)
+      }.justifyContent(FlexAlign.SpaceAround)
+      .width('100%')
+      // 双向同步子组件
+      LinkChildComp({ circleColor: $circleColor, currentSelectIndex: $currentSelectIndex })
+    }.padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+
+@Component
+struct LinkChildComp {
+  // 和父组件和子组件双向同步圆形颜色
+  @Link circleColor: Resource;
+  // 和父组件和子组件双向同步Select的Index值
+  @Link currentSelectIndex: number;
+
+  build() {
+    Column() {
+      Text($r('app.string.deepnest_child_titleone'))
+        .fontColor($r('app.color.tips_font_color'))
+        .fontSize($r('app.float.button_text_size'))
+        .width('100%')
+        .textAlign(TextAlign.Center)
+        .height($r('app.float.button_height'))
+      // 双向同步孙组件
+      LinkDescendentComponent({
+        circleColor: $circleColor,
+        currentSelectIndex: $currentSelectIndex
+      })
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Blue, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StorageLinkAbilityPage.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StorageLinkAbilityPage.ets.html new file mode 100644 index 00000000..8062ce66 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StorageLinkAbilityPage.ets.html @@ -0,0 +1,108 @@ + + +StorageLinkAbilityPage.ets + + + + + +
+ +StorageLinkAbilityPage.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView';
+import { ViewCodeText } from '../../../commoncomponents//ViewCodeText';
+import { TitleBarDark } from '../../../commoncomponents/TitleBarDark';
+import { TitleBar } from '../../../commoncomponents/TitleBar';
+
+@Entry
+@Component
+struct StorageLinkAbilityPage {
+  @State title: Resource = $r('app.string.abilitytwo_page');
+  // 判断是否关联ability的变量
+  @State isAbility: boolean = true;
+  // 和主页、Ability1页面双向同步夜间模式状态
+  @StorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 和主页、Ability1页面双向同步内容字体大小
+  @StorageLink('contentFontSize') contentFontSize: number = 18;
+
+  build() {
+    Column() {
+      if (this.currentModelStatus) {
+        TitleBarDark({ title: $title, isAbility: true })
+      } else {
+        TitleBar({ title: $title, isAbility: true })
+      }
+      CodeView({ title: $title, isShowTitle: false }) {
+        Column({ space: 30 }) {
+          // 查看源码
+          ViewCodeText({ webSrc: $rawfile('StorageLinkAbilityPage.ets.html') })
+          Text($r('app.string.both_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.single_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Button() {
+            Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode'))
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+              .fontSize(this.contentFontSize)
+              .width('60%')
+              .textAlign(TextAlign.Center)
+          }
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .padding($r('app.float.page_padding'))
+          .onClick(() => {
+            // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新
+            this.currentModelStatus = !this.currentModelStatus;
+          })
+
+          Text($r('app.string.nigntmode_both_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+        }
+        .padding($r('app.float.page_padding'))
+      }
+    }.width('100%')
+    .height('100%')
+    .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey'))
+  }
+
+  aboutToDisappear() {
+    AppStorage.SetOrCreate('sideBarShow', false);
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StoragePropAbilityPage.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StoragePropAbilityPage.ets.html new file mode 100644 index 00000000..131cb781 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/StoragePropAbilityPage.ets.html @@ -0,0 +1,143 @@ + + +StoragePropAbilityPage.ets + + + + + +
+ +StoragePropAbilityPage.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { CodeView } from '../../../commoncomponents/CodeView';
+import { ViewCodeText } from '../../../commoncomponents/ViewCodeText';
+import { TitleBarDark } from '../../../commoncomponents/TitleBarDark';
+import { TitleBar } from '../../../commoncomponents/TitleBar';
+
+@Entry
+@Component
+struct StoragePropAbilityPage {
+  @State title: Resource = $r('app.string.abilityone_page');
+  // 初始化Slider最小值
+  private minFontSize: number = 10;
+  // 和主页、Ability2页面双向同步夜间模式状态
+  @StorageLink('currentModelStatus') currentModelStatus: boolean = true;
+  // 和主页、Ability2页面单向同步内容字体大小
+  @StorageProp('contentFontSize') contentFontSize: number = 18;
+
+  build() {
+    Column() {
+      if (this.currentModelStatus) {
+        TitleBarDark({ title: $title, isAbility: true })
+      } else {
+        TitleBar({ title: $title, isAbility: true })
+      }
+      CodeView({ title: $title, isShowTitle: false }) {
+        Column({ space: 20 }) {
+          // 查看源码
+          ViewCodeText({ webSrc: $rawfile('StoragePropAbilityPage.ets.html') })
+          Text($r('app.string.both_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Text($r('app.string.single_data_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          Button() {
+            Text(this.currentModelStatus ? $r('app.string.close_nightmode') : $r('app.string.start_nightmode'))
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.button_text_color'))
+              .fontSize(this.contentFontSize)
+              .width('60%')
+              .textAlign(TextAlign.Center)
+          }
+          .padding($r('app.float.page_padding'))
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+          .onClick(() => {
+            // 更新控制夜间模式状态的变量数据,@StorageLink和@StorageProp关联的数据变量刷新
+            this.currentModelStatus = !this.currentModelStatus;
+          })
+
+          Text($r('app.string.nigntmode_both_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+          // slider模块控制字体大小
+          Column() {
+            Text($r('app.string.fontSize_text'))
+              .fontSize(this.contentFontSize)
+              .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+              .width('100%')
+              .textAlign(TextAlign.Center)
+            Row() {
+              Text(`${this.minFontSize}`)
+                .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+                .fontSize($r('app.float.tips_font_size'))
+              Slider({
+                value: this.contentFontSize,
+                min: this.minFontSize, // slider最小值
+                max: 30, // slider最大值
+                style: SliderStyle.OutSet
+              })
+                .showTips(true)
+                .onChange((value: number, mode: SliderChangeMode) => {
+                  // 更新控制字体大小的变量数据,@StorageLink关联的数据变量不刷新同步
+                  this.contentFontSize = value;
+                })
+              // toFixed(0)将滑动条返回值处理为整数精度
+              Text(this.contentFontSize.toFixed(0))
+                .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+                .fontSize($r('app.float.tips_font_size'))
+            }
+            .width('80%')
+          }.margin({ top: 50 })
+
+          Text($r('app.string.single_fontsize_binding'))
+            .fontSize(this.contentFontSize)
+            .fontColor(this.currentModelStatus ? $r('app.color.color_white') : $r('app.color.tips_font_color'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+        }
+        .padding($r('app.float.page_padding'))
+      }
+    }
+    .width('100%')
+    .height('100%')
+    .backgroundColor(this.currentModelStatus ? $r('app.color.nightnode_color') : $r('app.color.background_shallow_grey'))
+  }
+
+  aboutToDisappear() {
+    AppStorage.SetOrCreate('sideBarShow', false);
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UniAndBidirectionSyncCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UniAndBidirectionSyncCode.ets.html new file mode 100644 index 00000000..bf281b40 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UniAndBidirectionSyncCode.ets.html @@ -0,0 +1,97 @@ + + +UniAndBidirectionSyncCode.ets + + + + + +
+ +UniAndBidirectionSyncCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ChildCompLink } from './ComponentLink'
+import { ChildCompProp } from './ComponentProp'
+import { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+// 初始化圆形的可设置颜色
+export const COLOR_DATA = {
+  GREY: '#eebebeba',
+  BLUE: '#4A90E2',
+  PINK: '#8DF8BEBE',
+  RED: '#FFF30823',
+}
+
+@Component
+export struct UniAndBidirectionSyncCode {
+  // 初始化圆形颜色的状态变量
+  @State circleColor: string = COLOR_DATA.GREY;
+
+  build() {
+    Column({ space: 10 }) {
+      Column({ space: 10 }) {
+        // 点击查看源码
+        ViewCodeText({ webSrc: $rawfile('UniAndBidirectionSyncCode.ets.html') })
+        Text($r('app.string.parent_component'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Start)
+          .margin(10)
+        Text($r("app.string.uni_and_bidirection_sync_tips"))
+          .fontColor($r('app.color.tips_font_color'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .textAlign(TextAlign.Center)
+        Circle()
+          .size({ width: $r('app.float.circle_size'), height: $r('app.float.circle_size') })
+          .fill(this.circleColor)
+        // 点击更新父组件的圆形颜色变量,父组件更新,子组件@Link以及@Prop继承的变量同步
+        Button() {
+          Text($r("app.string.uni_and_bidirection_sync_btn"))
+            .fontColor($r('app.color.button_text_color'))
+            .fontSize($r('app.float.button_text_size'))
+            .width('100%')
+            .textAlign(TextAlign.Center)
+        }
+        .id('pinkColorBtn')
+        .height($r('app.float.button_height'))
+        .type(ButtonType.Capsule)
+        .backgroundColor($r('app.color.button_background_color'))
+        .onClick(() => {
+          this.circleColor = COLOR_DATA.PINK;
+        })
+      }
+      // 单向同步子组件
+      ChildCompProp({ circleColor: this.circleColor })
+      // 双向同步子组件
+      ChildCompLink({ circleColor: $circleColor })
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UpdateBoundComponentCode.ets.html b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UpdateBoundComponentCode.ets.html new file mode 100644 index 00000000..2bf470cb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/rawfile/UpdateBoundComponentCode.ets.html @@ -0,0 +1,116 @@ + + +UpdateBoundComponentCode.ets + + + + + +
+ +UpdateBoundComponentCode.ets +
+
/* 
+ * Copyright (c) 2023 Huawei Device 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 { ViewCodeText } from '../../../../../commoncomponents/ViewCodeText'
+
+@Component
+export struct UpdateBoundComponentCode {
+  // 组件内状态变量
+  @State titleName: string = 'title';
+  // 组件内private变量
+  private content: string = 'content';
+  // 组件内变量更新的次数
+  private updateCount: number = 0;
+
+  build() {
+    Column({ space: 10 }) {
+      // 点击查看源码
+      ViewCodeText({webSrc: $rawfile('UpdateBoundComponentCode.ets.html')})
+
+      Column() {
+        Text($r('app.string.only_update_state'))
+          .fontColor($r('app.color.tips_font_color'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+        Row() {
+          Text($r('app.string.only_update_title'))
+            .fontColor($r('app.color.button_text_color'))
+            .fontSize($r('app.float.button_text_size'))
+          Text(`${this.titleName}`) // titleName为状态变量,绑定Text组件
+            .fontColor($r('app.color.button_text_color'))
+            .fontSize(20)
+        }
+        .width('100%')
+        .margin(10)
+
+        Text($r('app.string.only_update_private'))
+          .fontColor($r('app.color.tips_font_color'))
+          .fontSize($r('app.float.tips_font_size'))
+          .width('100%')
+          .margin({ top: 20 })
+        Row() {
+          Text($r('app.string.only_update_content'))
+            .fontColor($r('app.color.button_text_color'))
+            .fontSize($r('app.float.button_text_size'))
+          Text(`${this.content}`) // content为private,绑定Text组件
+            .fontColor($r('app.color.button_text_color'))
+            .fontSize(20)
+        }
+        .width('100%')
+        .margin(10)
+      }
+      .width('100%')
+      .padding(10)
+      .justifyContent(FlexAlign.SpaceAround)
+      .backgroundColor($r('app.color.component_background_pink'))
+
+      Column() {
+        Button($r('app.string.update_title_content'))
+          .onClick(() => {
+            // 点击更新@State和Private声明的变量,更新策略为:@State和Private的数据发生变化,@State变量绑定的组件更新,Private变量绑定的组件不更新。
+            this.updateCount++;
+            this.content = `content ${this.updateCount}`;
+            this.titleName = `title ${this.updateCount}`;
+          })
+          .id('titleAndContentBtn')
+          .width('100%')
+          .height($r('app.float.button_height'))
+          .fontColor($r('app.color.button_text_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .type(ButtonType.Capsule)
+          .backgroundColor($r('app.color.button_background_color'))
+        Text($r('app.string.only_update_state_components'))
+          .fontColor($r('app.color.tips_font_color'))
+          .fontSize($r('app.float.button_text_size'))
+          .margin({ top: 30 })
+      }.width('100%')
+    }
+    .padding(10)
+    .border({ radius: $r('app.float.component_radius'), color: Color.Grey, width: $r('app.float.border_width') })
+  }
+}
+ + \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/zh_CN/element/string.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/zh_CN/element/string.json new file mode 100644 index 00000000..ce4556ba --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/main/resources/zh_CN/element/string.json @@ -0,0 +1,432 @@ +{ + "string": [ + { + "name": "module_desc", + "value": "StateManagement entry model" + }, + { + "name": "EntryAbility_desc", + "value": "StateManagement entry ability" + }, + { + "name": "EntryAbility_label", + "value": "状态管理" + }, + { + "name": "close", + "value": "关闭" + }, + { + "name": "page_level", + "value": "页面级状态管理" + }, + { + "name": "app_level", + "value": "应用级状态管理" + }, + { + "name": "single_component_state", + "value": "单组件内的状态变量" + }, + { + "name": "decorated_object_type", + "value": "修饰的对象类型" + }, + { + "name": "base_type", + "value": "基础类型" + }, + { + "name": "array_type", + "value": "数组类型" + }, + { + "name": "array_type_add", + "value": "新增元素" + }, + { + "name": "array_type_delete", + "value": "删除元素" + }, + { + "name": "array_type_update", + "value": "更新数组中的单个元素" + }, + { + "name": "array_type_deletetoast", + "value": "列表为空,不能删除!" + }, + { + "name": "array_type_updatetoast", + "value": "列表为空,不能更新!" + }, + { + "name": "class_type", + "value": "类对象类型" + }, + { + "name": "class_type_objectName", + "value": "title" + }, + { + "name": "class_object", + "value": "对象" + }, + { + "name": "class_attribute", + "value": "对象属性" + }, + { + "name": "class_child_attribute", + "value": "属性的属性" + }, + { + "name": "class_type_update_object", + "value": "更新对象" + }, + { + "name": "class_type_update_attribute", + "value": "更新对象属性" + }, + { + "name": "class_type_update_child_attribute", + "value": "更新属性中的属性" + }, + { + "name": "update_principle", + "value": "更新原理" + }, + { + "name": "only_update_bound_components", + "value": "只更新所绑定的组件" + }, + { + "name": "only_update_state", + "value": "@State变量" + }, + { + "name": "only_update_title", + "value": "标题:" + }, + { + "name": "only_update_private", + "value": "private声明变量" + }, + { + "name": "only_update_content", + "value": "内容:" + }, + { + "name": "update_title_content", + "value": "点击修改标题和内容" + }, + { + "name": "only_update_state_components", + "value": "只更新@State变量绑定的组件" + }, + { + "name": "update_the_custom_component", + "value": "所在的自定义组件都更新" + }, + { + "name": "multi_component_sync", + "value": "自定义组件之间的状态同步" + }, + { + "name": "parent_child_sync", + "value": "父子组件之间状态同步" + }, + { + "name": "single_and_two_way_sync", + "value": "单、双向同步" + }, + { + "name": "parent_component", + "value": "父组件" + }, + { + "name": "child_component", + "value": "子组件" + }, + { + "name": "uni_and_bidirection_sync_tips", + "value": "父组件中原型颜色为@State状态变量" + }, + { + "name": "single_direction_sync_tips", + "value": "单向同步 子组件中原型颜色为@Prop状态变量" + }, + { + "name": "both_direction_sync_tips", + "value": "双向同步 子组件中原型颜色为@Link状态变量" + }, + { + "name": "uni_and_bidirection_sync_btn", + "value": "设置为粉色,子组件同步更新" + }, + { + "name": "single_direction_sync_btn", + "value": "设置为蓝色,父组件不同步" + }, + { + "name": "both_direction_sync_btn", + "value": "设置为红色,父组件同步" + }, + { + "name": "partial_sync", + "value": "子组件同步父组件部分内容" + }, + { + "name": "partial_sync_element_one", + "value": "元素1" + }, + { + "name": "partial_sync_element_two", + "value": "元素2" + }, + { + "name": "partial_sync_element_three", + "value": "元素3" + }, + { + "name": "partial_sync_attribute_one", + "value": "属性1" + }, + { + "name": "partial_sync_attribute_two", + "value": "属性2" + }, + { + "name": "partial_sync_attribute_three", + "value": "属性3" + }, + { + "name": "partial_sync_parent_tips", + "value": "父组件中数组为@State状态变量,数组的元素的类用@observed修饰" + }, + { + "name": "partial_sync_text", + "value": "子组件中使用@ObjectLink修饰变量,与父组件中对象的元素同步数据" + }, + { + "name": "parent_descendent_sync", + "value": "爷孙组件之间状态同步" + }, + { + "name": "select_colorblue", + "value": "蓝色" + }, + { + "name": "select_colorpink", + "value": "粉色" + }, + { + "name": "realize_by_state_link", + "value": "使用@State,@Link实现:" + }, + { + "name": "realize_by_provide_consume", + "value": "使用@Provide, @Consume实现:" + }, + { + "name": "deepnest_parent_titleone", + "value": "使用@State,@Link实现父组件中圆形颜色为@State状态变量" + }, + { + "name": "deepnest_child_titleone", + "value": "子组件圆形颜色为@Link状态变量传递给孙组件" + }, + { + "name": "deepnest_descendent_titleone", + "value": "孙组件中圆形颜色为@Link状态变量" + }, + { + "name": "deepnest_parent_titletwo", + "value": "使用@Provide,@Consume实现父组件中圆形颜色为@Provide状态变量作为数据提供方" + }, + { + "name": "deepnest_child_titletwo", + "value": "子组件中不需要设置变量" + }, + { + "name": "deepnest_descendent_titletwo", + "value": "子组件中圆形颜色为@Consume变量感知数据变化,更新UI,也可反向同步" + }, + { + "name": "brother_sync", + "value": "兄弟组件之间状态同步" + }, + { + "name": "parent_titleone", + "value": "共同的父组件圆形颜色为@State变量" + }, + { + "name": "link_brothers_title", + "value": "兄弟组件圆形颜色为@Link状态变量" + }, + { + "name": "parent_titletwo", + "value": "共同的父组件圆形颜色为@Provide变量" + }, + { + "name": "consume_brothers_title", + "value": "兄弟组件圆形颜色为@Consume状态变量" + }, + { + "name": "application_storage_ui", + "value": "应用内全局数据与UI之间的状态同步" + }, + { + "name": "nightmode", + "value": "夜间模式" + }, + { + "name": "close_nightmode", + "value": "关闭夜间模式" + }, + { + "name": "start_nightmode", + "value": "打开夜间模式" + }, + { + "name": "nightmode_text", + "value": "夜间模式控制Ability1,Ability2界面样式" + }, + { + "name": "fontSize_text", + "value": "字体大小" + }, + { + "name": "fontSize_singlesync_textone", + "value": "字体大小控制Ability1,Ability2,界面字体大小单向同步" + }, + { + "name": "enter_abilityone", + "value": "进入ability1" + }, + { + "name": "enter_abilitytwo", + "value": "进入ability2" + }, + { + "name": "abilityone_page", + "value": "Ability1" + }, + { + "name": "abilitytwo_page", + "value": "Ability2" + }, + { + "name": "both_data_binding", + "value": "组件通过@StorageLink(key)装饰的状态变量与AppStorage建立双向绑定" + }, + { + "name": "single_data_binding", + "value": "组件通过使用@StorageProp(key)装饰的状态变量,与AppStorage建立单向数据绑定" + }, + { + "name": "nigntmode_both_binding", + "value": "此界面中夜间模式为@StorageLink(key)变量双向同步,其他Ability中会同步夜间模式开关" + }, + { + "name": "single_fontsize_binding", + "value": "此界面中字体大小为@StorageProp(key)变量单向同步,只改变当前界面的字体大小" + }, + { + "name": "ability_storage_ui", + "value": "Ability内全局数据与UI之间的状态同步" + }, + { + "name": "enter_pageone", + "value": "进入Page1" + }, + { + "name": "enter_pagetwo", + "value": "进入Page2" + }, + { + "name": "enter_ability_outofsync", + "value": "跨Ability不同步" + }, + { + "name": "ability_storage_nightmodelsync", + "value": "夜间模式控制Page1,Page2界面样式" + }, + { + "name": "ability_storage_fontsizesync", + "value": "字体大小控制Page1,Page2界面字体大小单向同步" + }, + { + "name": "localStorage_both_data_binding", + "value": "组件通过@LocalStorageLink(key)装饰的状态变量与LocalStorage建立双向绑定" + }, + { + "name": "localStorage_single_data_binding", + "value": "组件通过使用@LocalStorageProp(key)装饰的状态变量,与LocalStorage建立单向数据绑定" + }, + { + "name": "localStorage_nigntmode_both_binding", + "value": "此界面中夜间模式为@LocaltorageLink(key)变量双向同步,其它页面中会同步夜间模式开关" + }, + { + "name": "localStorage_single_fontsize_binding", + "value": "此界面中字体大小为@LocalStorageProp(key)变量单向同步,只改变当前界面的字体大小" + }, + { + "name": "enter_ability_outofsync_text", + "value": "跨Ability,数据不同步,因此此界面中夜间模式和主页的开关不同步" + }, + { + "name": "localStorage_pagetitleone", + "value": "Page1" + }, + { + "name": "localStorage_pagetitletwo", + "value": "Page2" + }, + { + "name": "localStorage_abilitytitle", + "value": "Ability" + }, + { + "name": "base_type_tip_text", + "value": "圆形颜色为@State状态变量" + }, + { + "name": "source_code", + "value": "查看源码" + }, + { + "name": "set_to_blue", + "value": "设置为蓝色" + }, + { + "name": "set_to_pink", + "value": "设置为粉色" + }, + { + "name": "storagepropability_desc", + "value": "description" + }, + { + "name": "storagepropability_label", + "value": "label" + }, + { + "name": "storagelinkability_desc", + "value": "description" + }, + { + "name": "storagelinkability_label", + "value": "label" + }, + { + "name": "outofsyncability_desc", + "value": "description" + }, + { + "name": "outofsyncability_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts new file mode 100644 index 00000000..3490d6ed --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2023 Huawei Device 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 type TestRunner from '@ohos.application.testRunner'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import Logger from '../utils/Logger'; + +const TAG = 'OpenHarmonyTestRunner'; +let abilityDelegator = undefined; +let abilityDelegatorArguments = undefined; + +async function onAbilityCreateCallback(): Promise { + Logger.info(TAG, 'onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: object): Promise { + Logger.info(TAG, `addAbilityMonitorCallback : ${JSON.stringify(err)}`); +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare(): void { + Logger.info(TAG, 'OpenHarmonyTestRunner OnPrepare '); + } + + async onRun(): Promise { + Logger.info(TAG, 'OpenHarmonyTestRunner onRun run'); + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments(); + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let testAbilityName = abilityDelegatorArguments.bundleName + '.TestAbility'; + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback); + let cmd = 'aa start -d 0 -a TestAbility' + ' -b ' + abilityDelegatorArguments.bundleName; + let debug = abilityDelegatorArguments.parameters['-D']; + if (debug === 'true') { + cmd += ' -D'; + } + Logger.info(TAG, `cmd : ${cmd}`); + abilityDelegator.executeShellCommand(cmd, + (err: object) => { + Logger.info(TAG, `executeShellCommand : err : ${JSON.stringify(err)}`); + }); + Logger.info(TAG, 'OpenHarmonyTestRunner onRun end'); + }; +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 00000000..1fdeb369 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,839 @@ +/* + * Copyright (c) 2023 Huawei Device 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 AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import inputMethod from '@ohos.inputMethod'; +import { Driver, ON, MatchPattern } from '@ohos.UiTest'; +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from '@ohos/hypium'; +import Logger from '../utils/Logger'; + +const TAG = '[Sample_StateManagement]' +const BUNDLE = 'StateManagement_' + +const DELAY_TIME = 1000 +let driver: Driver = Driver.create() + +//通过text验证有没有这个组件 有的话点击一下 +async function checkButtonAndClickWithText(text: string) { + let atom = text + await driver.assertComponentExist(ON.text(atom)) + let button = await driver.findComponent(ON.text(atom)) + await button.click() + await driver.delayMs(DELAY_TIME) + Logger.info(TAG, BUNDLE + atom) +} + +//通过id验证有没有这个组件 有的话点击一下 +async function checkButtonAndClickWithID(text: string) { + let atom = text + await driver.assertComponentExist(ON.id(atom)) + let button = await driver.findComponent(ON.id(atom)) + await button.click() + await driver.delayMs(DELAY_TIME) + Logger.info(TAG, BUNDLE + atom) +} + +//通过id验证有没有这个组件 有的话点击一下 +async function checkButtonAndLongClickWithID(text: string) { + let atom = text + await driver.assertComponentExist(ON.id(atom)) + let button = await driver.findComponent(ON.id(atom)) + await button.longClick() + await driver.delayMs(DELAY_TIME) + Logger.info(TAG, BUNDLE + atom) +} + +async function clickSelectIDAndSelectText(toggleId: string, selectText: string) { + { //展开 + let atom = toggleId + await checkButtonAndClickWithID(atom) + } + { //选择 + let atom = selectText + await checkButtonAndClickWithText(atom) + } +} + +export default function abilityTest() { + describe('ActsAbilityTest', function () { + // Defines a test suite. Two parameters are supported: test suite name and test suite function. + beforeAll(function () { + // 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(function () { + // 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(function () { + // 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(function () { + // 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, function () { + + Logger.info("Sample_StateManagement test start") + /** + * 打开应用 + */ + it(BUNDLE + 'StartAbility_001', 0, async function (done) { + Logger.info(TAG, BUNDLE + 'StartAbility_001 begin') + let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + try { + await abilityDelegator.startAbility({ + bundleName: 'com.samples.statemanagement', + abilityName: 'EntryAbility' + }) + done() + } catch (exception) { + Logger.info(TAG, `StartAbility_001 end ${JSON.stringify(exception)}`) + expect(0).assertEqual(exception.code) + done() + } + Logger.info(TAG, BUNDLE + 'StartAbility_001' + ' end') + }) + + /** + * 打开折叠层 + */ + it(BUNDLE + 'FolderLayerFunction_001', 0, async function () { + let testName = 'FolderLayerFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let driver = Driver.create(); + await driver.delayMs(500); + // 打开修饰对象模块的折叠 + await driver.assertComponentExist(ON.id('secondLevelMenu00')); + let decoratedOject = await driver.findComponent(ON.id('secondLevelMenu00')); + await decoratedOject.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('secondLevelMenu01')); + let updatedBound = await driver.findComponent(ON.id('secondLevelMenu01')); + await updatedBound.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('secondLevelMenu10')); + let multiComponentsSync = await driver.findComponent(ON.id('secondLevelMenu10')); + await multiComponentsSync.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 测试基础类型状态管理 + */ + it(BUNDLE + 'BaseTypeFunction_001', 0, async function () { + let testName = 'BaseTypeFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入基础类型页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.base_type')))); + let enterPage = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.base_type')))); + await enterPage.click(); + await driver.delayMs(500); + // 设置圆形颜色 + await driver.assertComponentExist(ON.id('circleColorBtn')); + let setCircleColor = await driver.findComponent(ON.id('circleColorBtn')); + await setCircleColor.click(); + await driver.delayMs(500); + // 再次设置圆形颜色 + await setCircleColor.click(); + await driver.delayMs(500); + // 查看源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 测试数组类型状态管理 + */ + it(BUNDLE + 'ArrayTypeFunction_001', 0, async function () { + let testName = 'ArrayTypeFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入数组类型页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.array_type')))); + let enterPage = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.array_type')))); + await enterPage.click(); + await driver.delayMs(500); + // 点击删除元素 + await driver.assertComponentExist(ON.id('arrayTypeBtn1')); + let arrayTypeDeleteBtn = await driver.findComponent(ON.id('arrayTypeBtn1')); + await arrayTypeDeleteBtn.click(); + await driver.delayMs(500); + await arrayTypeDeleteBtn.click(); + await driver.delayMs(500); + await arrayTypeDeleteBtn.click(); + await driver.delayMs(500); + await arrayTypeDeleteBtn.click(); + await driver.delayMs(500); + // 点击添加元素 + await driver.assertComponentExist(ON.id('arrayTypeBtn0')); + let arrayTypeAddBtn = await driver.findComponent(ON.id('arrayTypeBtn0')); + await arrayTypeAddBtn.click(); + await driver.delayMs(500); + // 点击更新元素 + await driver.assertComponentExist(ON.id('arrayTypeBtn2')); + let arrayTypeUpdateBtn = await driver.findComponent(ON.id('arrayTypeBtn2')); + await arrayTypeUpdateBtn.click(); + await driver.delayMs(500); + await arrayTypeDeleteBtn.click(); + await driver.delayMs(500); + await arrayTypeUpdateBtn.click(); + await driver.delayMs(500); + await arrayTypeAddBtn.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }) + + /** + * 测试类对象类型状态管理 + */ + it(BUNDLE + 'ObjectTypeFunction_001', 0, async function () { + let testName = 'ObjectTypeFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入类对象类型页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.class_type')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.class_type')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击更新对象 + await driver.assertComponentExist(ON.id('updateObject')); + let updateObjectBtn = await driver.findComponent(ON.id('updateObject')); + await updateObjectBtn.click(); + await driver.delayMs(500); + await updateObjectBtn.click(); + await driver.delayMs(500); + // 点击更新对象属性 + await driver.assertComponentExist(ON.id('updateObjectAttribute')); + let updateObjectAttributeBtn = await driver.findComponent(ON.id('updateObjectAttribute')); + await updateObjectAttributeBtn.click(); + await driver.delayMs(500); + await updateObjectAttributeBtn.click(); + await driver.delayMs(500); + // 点击更新属性的属性 + await driver.assertComponentExist(ON.id('updateAttributeOfAttribute')); + let updateAttributeOfAttributeBtn = await driver.findComponent(ON.id('updateAttributeOfAttribute')); + await updateAttributeOfAttributeBtn.click(); + await driver.delayMs(500); + await updateAttributeOfAttributeBtn.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 测试只更新所绑定的组件 + */ + it(BUNDLE + 'UpdateBindComponentFunction_001', 0, async function () { + let testName = 'UpdateBindComponentFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入只更新所绑定的组件页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.only_update_bound_components')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.only_update_bound_components')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击更新对象 + await driver.assertComponentExist(ON.id('titleAndContentBtn')); + let updateTitleAndContent = await driver.findComponent(ON.id('titleAndContentBtn')); + await updateTitleAndContent.click(); + await driver.delayMs(500); + await updateTitleAndContent.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 测试单、双向同步 + */ + it(BUNDLE + 'SingleBindFunction_001', 0, async function () { + let testName = 'SingleBindFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入单双向同步页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.single_and_two_way_sync')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.single_and_two_way_sync')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击设置粉色 + await driver.assertComponentExist(ON.id('pinkColorBtn')); + let pinkColorBtn = await driver.findComponent(ON.id('pinkColorBtn')); + await pinkColorBtn.click(); + await driver.delayMs(500); + // 设置蓝色 + await driver.assertComponentExist(ON.id('blueColorBtn')); + let blueColorBtn = await driver.findComponent(ON.id('blueColorBtn')); + await blueColorBtn.click(); + await driver.delayMs(500); + // 设置红色 + await driver.assertComponentExist(ON.id('redColorBtn')); + let redColorBtn = await driver.findComponent(ON.id('redColorBtn')); + await redColorBtn.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }) + + /** + * 测试子组件同步父组件的内容 + */ + it(BUNDLE + 'ChildParentFunction_001', 0, async function () { + let testName = 'ChildParentFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入单双向同步页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.partial_sync')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.partial_sync')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击修改父组件第一个属性文本 + let inputMethodController = inputMethod.getController(); + await driver.assertComponentExist(ON.id('attribute1')); + let attributeOne = await driver.findComponent(ON.id('attribute1')); + await attributeOne.inputText('123'); + inputMethodController.stopInputSession(); + await driver.delayMs(500); + // 点击修改子组件属性文本 + await driver.assertComponentExist(ON.id('childAttribute')); + let childAttribute = await driver.findComponent(ON.id('childAttribute')); + await childAttribute.click(); + await driver.delayMs(500); + await childAttribute.inputText('321'); + inputMethodController.stopInputSession(); + await driver.delayMs(500); + // 点击修改父组件第二个属性文本 + await driver.assertComponentExist(ON.id('arrayElement1')); + let arrayElementOne = await driver.findComponent(ON.id('arrayElement1')); + await arrayElementOne.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('attribute2')); + let attributeTwo = await driver.findComponent(ON.id('attribute2')); + await attributeTwo.inputText('456'); + inputMethodController.stopInputSession(); + await driver.delayMs(500); + // 点击修改父组件第三个属性文本 + await driver.assertComponentExist(ON.id('arrayElement2')); + let arrayElementTwo = await driver.findComponent(ON.id('arrayElement2')); + await arrayElementTwo.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('attribute3')); + let attributeThree = await driver.findComponent(ON.id('attribute3')); + await attributeThree.click(); + await driver.delayMs(500); + await attributeThree.inputText('789'); + inputMethodController.stopInputSession(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }) + + /** + * 测试爷孙组件之间状态同步 + */ + it(BUNDLE + 'DeepBindFunction_001', 0, async function () { + let testName = 'DeepBindFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入单双向同步页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.parent_descendent_sync')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.parent_descendent_sync')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击孙组件select组件并选择颜色 + await driver.assertComponentExist(ON.id('grandsonCompA')); + let grandsonA = await driver.findComponent(ON.id('grandsonCompA')); + await grandsonA.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + let selectedPink = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + await selectedPink.click(); + await driver.delayMs(500); + // 点击爷组件select组件并选择颜色 + await driver.assertComponentExist(ON.id('grandfatherCompA')); + let grandfatherCompA = await driver.findComponent(ON.id('grandfatherCompA')); + await grandfatherCompA.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + let selectedBlueCompA = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + await selectedBlueCompA.click(); + await driver.delayMs(500); + // 点击孙组件select组件并选择颜色 + await driver.assertComponentExist(ON.id('grandsonCompB')); + let grandsonCompB = await driver.findComponent(ON.id('grandsonCompB')); + await grandsonCompB.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + let selectedPinkCompB = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + await selectedPinkCompB.click(); + await driver.delayMs(500); + // 点击爷组件select组件并选择颜色 + await driver.assertComponentExist(ON.id('grandfatherCompB')); + let grandfatherCompB = await driver.findComponent(ON.id('grandfatherCompB')); + await grandfatherCompB.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + let selectedBlueCompB = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + await selectedBlueCompB.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500) + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 测试兄弟组件之间状态同步 + */ + it(BUNDLE + 'BrotherBindFunction_001', 0, async function () { + let testName = 'BrotherBindFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 进入单双向同步页面 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.brother_sync')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.brother_sync')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击子组件B中的select组件并选择颜色 + await driver.assertComponentExist(ON.id('linkSelectCompB')); + let linkSelectCompB = await driver.findComponent(ON.id('linkSelectCompB')); + await linkSelectCompB.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + let linkselectedPinkB = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + await linkselectedPinkB.click(); + await driver.delayMs(500); + // 点击子组件B中的select组件并选择颜色 + await driver.assertComponentExist(ON.id('linkSelectCompA')); + let linkSelectCompA = await driver.findComponent(ON.id('linkSelectCompA')); + await linkSelectCompA.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + let linkselectedBlueA = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + await linkselectedBlueA.click(); + await driver.delayMs(500); + // 点击子组件B中的select组件并选择颜色 + await driver.assertComponentExist(ON.id('consumeSelectCompB')); + let consumeSelectCompB = await driver.findComponent(ON.id('consumeSelectCompB')); + await consumeSelectCompB.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + let consumeSelectedPinkB = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorpink')))); + await consumeSelectedPinkB.click(); + await driver.delayMs(500); + // 点击子组件B中的select组件并选择颜色 + await driver.assertComponentExist(ON.id('consumeSelectCompA')); + let consumeSelectCompA = await driver.findComponent(ON.id('consumeSelectCompA')); + await consumeSelectCompA.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + let consumeSelectedBlueA = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.select_colorblue')))); + await consumeSelectedBlueA.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 应用内全局数据与UI之间的状态同步 + */ + it(BUNDLE + 'GlobalSynFunction_001', 0, async function () { + let testName = 'GlobalSynFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + // 切换到应用级状态变量 + await driver.assertComponentExist(ON.id('tabBar1')); + let applyLeval = await driver.findComponent(ON.id('tabBar1')); + await applyLeval.click(); + await driver.delayMs(500); + // 进入应用内全局数据与UI之间的状态同步 + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.application_storage_ui')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.application_storage_ui')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击Toggle组件,控制夜间模式 + await driver.assertComponentExist(ON.id('nightModeSwitch')); + let nightModeSwitch = await driver.findComponent(ON.id('nightModeSwitch')); + await nightModeSwitch.click(); + await driver.delayMs(500); + // 滑动slider调整 固定坐标只支持RK3568,其他设备需要调整 + await driver.drag(320, 473, 420, 473, 800) + await driver.delayMs(500); + // 进入Ability1 + await driver.assertComponentExist(ON.id('enterAbilityOne')); + let enterAbilityOne = await driver.findComponent(ON.id('enterAbilityOne')); + await enterAbilityOne.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + // 进入Ability2 + await driver.assertComponentExist(ON.id('enterAbilityTwo')); + let enterAbilityTwo = await driver.findComponent(ON.id('enterAbilityTwo')); + await enterAbilityTwo.click(); + await driver.delayMs(500); + // 返回 + await driver.pressBack(); + await driver.delayMs(500); + // 再次进入Ability1 + await enterAbilityOne.click(); + await driver.delayMs(500); + // 点击控制夜间模式按钮 + await driver.assertComponentExist(ON.id('nightModeSwitchTwo')); + let nightModeSwitchTwo = await driver.findComponent(ON.id('nightModeSwitchTwo')); + await nightModeSwitchTwo.click(); + await driver.delayMs(500); + // 滑动slider调整 固定坐标只支持RK3568,其他设备需要调整 + await driver.drag(320, 745, 420, 745, 800) + await driver.delayMs(500); + // 返回首页 + await driver.pressBack(); + await driver.delayMs(500); + // 进入Ability2 + await enterAbilityTwo.click(); + await driver.delayMs(500); + // 点击控制夜间模式按钮 + await driver.assertComponentExist(ON.id('nightModeSwitchThree')); + let nightModeSwitchThree = await driver.findComponent(ON.id('nightModeSwitchThree')); + await nightModeSwitchThree.click(); + await driver.delayMs(500); + // 返回首页 + await driver.pressBack(); + await driver.delayMs(500); + // 再次进入Ability1 + await enterAbilityOne.click(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + // 返回 + await driver.pressBack(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500) + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + /** + * 应用内全局数据与UI之间的状态同步 + */ + it(BUNDLE + 'AbilitySynFunction_001', 0, async function () { + let testName = 'AbilitySynFunction' + Logger.info(TAG, BUNDLE + testName + ' begin') + + let abilityDelegatorRegistry = AbilityDelegatorRegistry.getAbilityDelegator(); + let context = await abilityDelegatorRegistry.getAppContext(); + let manager = context.resourceManager; + + let driver: Driver = Driver.create(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.text(await manager.getStringValue($r('app.string.ability_storage_ui')))); + let enterPageText = await driver.findComponent(ON.text(await manager.getStringValue($r('app.string.ability_storage_ui')))); + await enterPageText.click(); + await driver.delayMs(500); + // 点击Toggle组件,控制夜间模式 + await driver.assertComponentExist(ON.id('nightModeSwitch')); + let nightModeSwitch = await driver.findComponent(ON.id('nightModeSwitch')); + await nightModeSwitch.click(); + await driver.delayMs(500); + // 滑动slider调整 固定坐标只支持RK3568,其他设备需要调整 + await driver.drag(320, 470, 420, 470, 800) + await driver.delayMs(500); + // 进入Page1 + await driver.assertComponentExist(ON.id('enterPageOne')); + let enterPageOne = await driver.findComponent(ON.id('enterPageOne')); + await enterPageOne.click(); + await driver.delayMs(500); + // 返回 + await driver.assertComponentExist(ON.id('backBtn')); + let backBtn = await driver.findComponent(ON.id('backBtn')); + await backBtn.click(); + await driver.delayMs(500); + // 进入Page2 + await driver.assertComponentExist(ON.id('enterPageTwo')); + let enterPageTwo = await driver.findComponent(ON.id('enterPageTwo')); + await enterPageTwo.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 进入跨Ability页面 + await driver.assertComponentExist(ON.id('enterOutOfAbility')); + let enterAbility = await driver.findComponent(ON.id('enterOutOfAbility')); + await enterAbility.click(); + await driver.delayMs(500); + // 返回 + await driver.pressBack(); + await driver.delayMs(500); + // 进入Page1 + await enterPageOne.click(); + await driver.delayMs(500); + // 点击控制夜间模式按钮 + await driver.assertComponentExist(ON.id('nightModeSwitchTwo')); + let nightModeSwitchTwo = await driver.findComponent(ON.id('nightModeSwitchTwo')); + await nightModeSwitchTwo.click(); + await driver.delayMs(500); + // 滑动slider调整 固定坐标只支持RK3568,其他设备需要调整 + await driver.drag(320, 745, 380, 745, 800) + await driver.delayMs(500); + // 返回首页 + await driver.pressBack(); + await driver.delayMs(500); + // 进入Ability + await enterAbility.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 进入Page2 + await enterPageTwo.click(); + await driver.delayMs(500); + // 点击控制夜间模式按钮 + await driver.assertComponentExist(ON.id('nightModeSwitchThree')); + let nightModeSwitchThree = await driver.findComponent(ON.id('nightModeSwitchThree')); + await nightModeSwitchThree.click(); + await driver.delayMs(500); + // 返回首页 + await driver.pressBack(); + await driver.delayMs(500); + // 再次进入Page1 + await enterPageOne.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 再次进入Ability + await enterAbility.click(); + await driver.delayMs(500); + await driver.assertComponentExist(ON.id('nightModeSwitchFour')); + let nightModeSwitchFour = await driver.findComponent(ON.id('nightModeSwitchFour')); + await nightModeSwitchFour.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 再次进入Page1 + await enterPageOne.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 进入Page2 + await enterPageTwo.click(); + await driver.delayMs(500); + await driver.pressBack(); + await driver.delayMs(500); + // 展示源码 + await driver.assertComponentExist(ON.id('viewSourceCode')); + let viewSourceCode = await driver.findComponent(ON.id('viewSourceCode')); + await viewSourceCode.click(); + await driver.delayMs(500); + // 关闭web源码 + await driver.assertComponentExist(ON.id('close')); + let closeWebBtn = await driver.findComponent(ON.id('close')); + await closeWebBtn.click(); + await driver.delayMs(500); + + Logger.info(TAG, BUNDLE + testName + ' end') + }); + + Logger.info("Sample_StateManagement test end") + }) + }) +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 00000000..76e5c3bb --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,22 @@ +/* + * Copyright (c) 2023 Huawei Device 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 abilityTest from './Ability.test'; +//import appTest from './App.test'; + +export default function testsuite() { + abilityTest(); +// appTest(); +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/TestAbility.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/TestAbility.ets new file mode 100644 index 00000000..1a2da16d --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/TestAbility.ets @@ -0,0 +1,61 @@ +/* + * Copyright (c) 2023 Huawei Device 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 UIAbility from '@ohos.app.ability.UIAbility'; +import AbilityDelegatorRegistry from '@ohos.app.ability.abilityDelegatorRegistry'; +import type window from '@ohos.window'; +import { Hypium } from '@ohos/hypium'; +import testsuite from '../test/List.test'; +import Logger from '../utils/Logger'; + +const TAG = 'TestAbility'; + + +export default class TestAbility extends UIAbility { + onCreate() { + Logger.info(TAG, 'TestAbility onCreate'); + let abilityDelegator: AbilityDelegatorRegistry.AbilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); + let abilityDelegatorArguments: AbilityDelegatorRegistry.AbilityDelegatorArgs = AbilityDelegatorRegistry.getArguments(); + Logger.info(TAG, 'start run testcase!!!'); + Hypium.hypiumTest(abilityDelegator, abilityDelegatorArguments, testsuite); + } + + onDestroy() { + Logger.info(TAG, 'TestAbility onDestroy'); + } + + onWindowStageCreate(windowStage: window.WindowStage) { + Logger.info(TAG, 'TestAbility onWindowStageCreate'); + windowStage.loadContent('testability/pages/Index', (err) => { + if (err.code) { + Logger.error(TAG, `Failed to load the content. Cause:${JSON.stringify(err)}`); + return; + } + Logger.info(TAG, 'Succeeded in loading the content.'); + }); + } + + onWindowStageDestroy() { + Logger.info(TAG, 'TestAbility onWindowStageDestroy'); + } + + onForeground() { + Logger.info(TAG, 'TestAbility onForeground'); + } + + onBackground() { + Logger.info(TAG, 'TestAbility onBackground'); + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/pages/Index.ets b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/pages/Index.ets new file mode 100644 index 00000000..7c98007c --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/testability/pages/Index.ets @@ -0,0 +1,54 @@ +/* + * Copyright (c) 2023 Huawei Device 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 Logger from '../../utils/Logger'; + +const TAG = 'UitestIndexPage'; + +@Entry +@Component +struct Index { + aboutToAppear() { + Logger.info(TAG, 'TestAbility index aboutToAppear'); + } + + @State message: string = 'Hello World'; + + build() { + Row() { + Column() { + Text(this.message) + .fontSize(50) + .fontWeight(FontWeight.Bold) + Button() { + Text('next page') + .fontSize(20) + .fontWeight(FontWeight.Bold) + } + .type(ButtonType.Capsule) + .margin({ + top: 20 + }) + .backgroundColor('#0D9FFB') + .width('35%') + .height('5%') + .onClick(() => { + }) + } + .width('100%') + } + .height('100%') + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/utils/Logger.ts b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/utils/Logger.ts new file mode 100644 index 00000000..4a86375a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/ets/utils/Logger.ts @@ -0,0 +1,44 @@ +/* + * Copyright (c) 2023 Huawei Device 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 hilog from '@ohos.hilog'; + +const DOMAIN: number = 0xF811; +const PREFIX = 'Sample_StateManagement'; +const FORMAT = '%{public}s, %{public}s'; + +class Logger { + constructor() { + + } + + debug(...args: string[]): void { + hilog.debug(DOMAIN, PREFIX, FORMAT, args); + } + + info(...args: string[]): void { + hilog.info(DOMAIN, PREFIX, FORMAT, args); + } + + warn(...args: string[]): void { + hilog.warn(DOMAIN, PREFIX, FORMAT, args); + } + + error(...args: string[]): void { + hilog.error(DOMAIN, PREFIX, FORMAT, args); + } +} + +export default new Logger(); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/module.json5 b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/module.json5 new file mode 100644 index 00000000..22e2c611 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/module.json5 @@ -0,0 +1,52 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "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", + "srcEntrance": "./ets/testability/TestAbility.ets", + "description": "$string:TestAbility_desc", + "icon": "$media:icon", + "label": "$string:TestAbility_label", + "visible": true, + "startWindowIcon": "$media:icon", + "startWindowBackground": "$color:start_window_background", + "skills": [ + { + "actions": [ + "action.system.home" + ], + "entities": [ + "entity.system.home" + ] + } + ] + } + ] + } +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/color.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/color.json new file mode 100644 index 00000000..3c712962 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/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/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/string.json b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 00000000..a3b065b6 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,64 @@ +{ + "string": [ + { + "name": "module_test_desc", + "value": "test ability description" + }, + { + "name": "TestAbility_desc", + "value": "the test ability" + }, + { + "name": "TestAbility_label", + "value": "test label" + }, + { + "name": "base_type", + "value": "Based type" + }, + { + "name": "array_type", + "value": "Array type" + }, + { + "name": "class_type", + "value": "Class Object type" + }, + { + "name": "only_update_bound_components", + "value": "Only the components to which you are bound are updated" + }, + { + "name": "single_and_two_way_sync", + "value": "Single and two-way synchronization" + }, + { + "name": "partial_sync", + "value": "The child component synchronizes parts of the parent component" + }, + { + "name": "parent_descendent_sync", + "value": "State synchronization between parent and descendent" + }, + { + "name": "select_colorblue", + "value": "Blue" + }, + { + "name": "select_colorpink", + "value": "Pink" + }, + { + "name": "brother_sync", + "value": "State synchronization between brother components" + }, + { + "name": "application_storage_ui", + "value": "State synchronization between the app storage and the UI" + }, + { + "name": "ability_storage_ui", + "value": "State synchronization between the ability storage and the UI" + } + ] +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/media/icon.png b/sample/EnhanceSampleArk1.2/StateManagement/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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"a"&&e<="z"||e>="A"&&e<="Z"||"$"===e||"_"===e||te.Unicode.ID_Start.test(e))}static isIdContinueChar(e){return"string"==typeof e&&(e>="a"&&e<="z"||e>="A"&&e<="Z"||e>="0"&&e<="9"||"$"===e||"_"===e||"‌"===e||"‍"===e||te.Unicode.ID_Continue.test(e))}static isDigitWithoutZero(e){return/[1-9]/.test(e)}static isDigit(e){return"string"==typeof e&&/[0-9]/.test(e)}static isHexDigit(e){return"string"==typeof e&&/[0-9A-Fa-f]/.test(e)}};var ne={},re={fromCallback:function(e){return Object.defineProperty((function(...t){if("function"!=typeof t[t.length-1])return new Promise(((n,r)=>{e.call(this,...t,((e,t)=>null!=e?r(e):n(t)))}));e.apply(this,t)}),"name",{value:e.name})},fromPromise:function(e){return Object.defineProperty((function(...t){const n=t[t.length-1];if("function"!=typeof n)return e.apply(this,t);e.apply(this,t.slice(0,-1)).then((e=>n(null,e)),n)}),"name",{value:e.name})}},ue=y.default,oe=process.cwd,ie=null,se=process.env.GRACEFUL_FS_PLATFORM||process.platform;process.cwd=function(){return ie||(ie=oe.call(process)),ie};try{process.cwd()}catch(e){}if("function"==typeof process.chdir){var ce=process.chdir;process.chdir=function(e){ie=null,ce.call(process,e)},Object.setPrototypeOf&&Object.setPrototypeOf(process.chdir,ce)}var ae=function(e){ue.hasOwnProperty("O_SYMLINK")&&process.version.match(/^v0\.6\.[0-2]|^v0\.5\./)&&function(e){e.lchmod=function(t,n,r){e.open(t,ue.O_WRONLY|ue.O_SYMLINK,n,(function(t,u){t?r&&r(t):e.fchmod(u,n,(function(t){e.close(u,(function(e){r&&r(t||e)}))}))}))},e.lchmodSync=function(t,n){var r,u=e.openSync(t,ue.O_WRONLY|ue.O_SYMLINK,n),o=!0;try{r=e.fchmodSync(u,n),o=!1}finally{if(o)try{e.closeSync(u)}catch(e){}else e.closeSync(u)}return r}}(e);e.lutimes||function(e){ue.hasOwnProperty("O_SYMLINK")&&e.futimes?(e.lutimes=function(t,n,r,u){e.open(t,ue.O_SYMLINK,(function(t,o){t?u&&u(t):e.futimes(o,n,r,(function(t){e.close(o,(function(e){u&&u(t||e)}))}))}))},e.lutimesSync=function(t,n,r){var u,o=e.openSync(t,ue.O_SYMLINK),i=!0;try{u=e.futimesSync(o,n,r),i=!1}finally{if(i)try{e.closeSync(o)}catch(e){}else e.closeSync(o)}return u}):e.futimes&&(e.lutimes=function(e,t,n,r){r&&process.nextTick(r)},e.lutimesSync=function(){})}(e);e.chown=r(e.chown),e.fchown=r(e.fchown),e.lchown=r(e.lchown),e.chmod=t(e.chmod),e.fchmod=t(e.fchmod),e.lchmod=t(e.lchmod),e.chownSync=u(e.chownSync),e.fchownSync=u(e.fchownSync),e.lchownSync=u(e.lchownSync),e.chmodSync=n(e.chmodSync),e.fchmodSync=n(e.fchmodSync),e.lchmodSync=n(e.lchmodSync),e.stat=o(e.stat),e.fstat=o(e.fstat),e.lstat=o(e.lstat),e.statSync=i(e.statSync),e.fstatSync=i(e.fstatSync),e.lstatSync=i(e.lstatSync),e.chmod&&!e.lchmod&&(e.lchmod=function(e,t,n){n&&process.nextTick(n)},e.lchmodSync=function(){});e.chown&&!e.lchown&&(e.lchown=function(e,t,n,r){r&&process.nextTick(r)},e.lchownSync=function(){});"win32"===se&&(e.rename="function"!=typeof e.rename?e.rename:function(t){function n(n,r,u){var o=Date.now(),i=0;t(n,r,(function s(c){if(c&&("EACCES"===c.code||"EPERM"===c.code||"EBUSY"===c.code)&&Date.now()-o<6e4)return setTimeout((function(){e.stat(r,(function(e,o){e&&"ENOENT"===e.code?t(n,r,s):u(c)}))}),i),void(i<100&&(i+=10));u&&u(c)}))}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n}(e.rename));function t(t){return t?function(n,r,u){return t.call(e,n,r,(function(e){s(e)&&(e=null),u&&u.apply(this,arguments)}))}:t}function n(t){return t?function(n,r){try{return t.call(e,n,r)}catch(e){if(!s(e))throw e}}:t}function r(t){return t?function(n,r,u,o){return t.call(e,n,r,u,(function(e){s(e)&&(e=null),o&&o.apply(this,arguments)}))}:t}function u(t){return t?function(n,r,u){try{return t.call(e,n,r,u)}catch(e){if(!s(e))throw e}}:t}function o(t){return t?function(n,r,u){function o(e,t){t&&(t.uid<0&&(t.uid+=4294967296),t.gid<0&&(t.gid+=4294967296)),u&&u.apply(this,arguments)}return"function"==typeof r&&(u=r,r=null),r?t.call(e,n,r,o):t.call(e,n,o)}:t}function i(t){return t?function(n,r){var u=r?t.call(e,n,r):t.call(e,n);return u&&(u.uid<0&&(u.uid+=4294967296),u.gid<0&&(u.gid+=4294967296)),u}:t}function s(e){return!e||("ENOSYS"===e.code||!(process.getuid&&0===process.getuid()||"EINVAL"!==e.code&&"EPERM"!==e.code))}e.read="function"!=typeof e.read?e.read:function(t){function n(n,r,u,o,i,s){var c;if(s&&"function"==typeof s){var a=0;c=function(l,f,d){if(l&&"EAGAIN"===l.code&&a<10)return a++,t.call(e,n,r,u,o,i,c);s.apply(this,arguments)}}return t.call(e,n,r,u,o,i,c)}return Object.setPrototypeOf&&Object.setPrototypeOf(n,t),n}(e.read),e.readSync="function"!=typeof e.readSync?e.readSync:(c=e.readSync,function(t,n,r,u,o){for(var i=0;;)try{return c.call(e,t,n,r,u,o)}catch(e){if("EAGAIN"===e.code&&i<10){i++;continue}throw e}});var c};var le=C.default.Stream,fe=function(e){return{ReadStream:function t(n,r){if(!(this instanceof t))return new t(n,r);le.call(this);var u=this;this.path=n,this.fd=null,this.readable=!0,this.paused=!1,this.flags="r",this.mode=438,this.bufferSize=65536,r=r||{};for(var o=Object.keys(r),i=0,s=o.length;ithis.end)throw new Error("start must be <= end");this.pos=this.start}if(null!==this.fd)return void process.nextTick((function(){u._read()}));e.open(this.path,this.flags,this.mode,(function(e,t){if(e)return u.emit("error",e),void(u.readable=!1);u.fd=t,u.emit("open",t),u._read()}))},WriteStream:function t(n,r){if(!(this instanceof t))return new t(n,r);le.call(this),this.path=n,this.fd=null,this.writable=!0,this.flags="w",this.encoding="binary",this.mode=438,this.bytesWritten=0,r=r||{};for(var u=Object.keys(r),o=0,i=u.length;o= zero");this.pos=this.start}this.busy=!1,this._queue=[],null===this.fd&&(this._open=e.open,this._queue.push([this._open,this.path,this.flags,this.mode,void 0]),this.flush())}}};var de=function(e){if(null===e||"object"!=typeof e)return e;if(e instanceof Object)var t={__proto__:De(e)};else t=Object.create(null);return Object.getOwnPropertyNames(e).forEach((function(n){Object.defineProperty(t,n,Object.getOwnPropertyDescriptor(e,n))})),t},De=Object.getPrototypeOf||function(e){return e.__proto__};var pe,Ee,me=D.default,he=ae,ye=fe,Ce=de,Fe=F.default;function ge(e,t){Object.defineProperty(e,pe,{get:function(){return t}})}"function"==typeof Symbol&&"function"==typeof Symbol.for?(pe=Symbol.for("graceful-fs.queue"),Ee=Symbol.for("graceful-fs.previous")):(pe="___graceful-fs.queue",Ee="___graceful-fs.previous");var Ae=function(){};if(Fe.debuglog?Ae=Fe.debuglog("gfs4"):/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&(Ae=function(){var e=Fe.format.apply(Fe,arguments);e="GFS4: "+e.split(/\n/).join("\nGFS4: "),console.error(e)}),!me[pe]){var ve=w[pe]||[];ge(me,ve),me.close=function(e){function t(t,n){return e.call(me,t,(function(e){e||_e(),"function"==typeof n&&n.apply(this,arguments)}))}return Object.defineProperty(t,Ee,{value:e}),t}(me.close),me.closeSync=function(e){function t(t){e.apply(me,arguments),_e()}return Object.defineProperty(t,Ee,{value:e}),t}(me.closeSync),/\bgfs4\b/i.test(process.env.NODE_DEBUG||"")&&process.on("exit",(function(){Ae(me[pe]),g.default.equal(me[pe].length,0)}))}w[pe]||ge(w,me[pe]);var Se,we=Oe(Ce(me));function Oe(e){he(e),e.gracefulify=Oe,e.createReadStream=function(t,n){return new e.ReadStream(t,n)},e.createWriteStream=function(t,n){return new e.WriteStream(t,n)};var t=e.readFile;e.readFile=function(e,n,r){"function"==typeof n&&(r=n,n=null);return function e(n,r,u,o){return t(n,r,(function(t){!t||"EMFILE"!==t.code&&"ENFILE"!==t.code?"function"==typeof u&&u.apply(this,arguments):be([e,[n,r,u],t,o||Date.now(),Date.now()])}))}(e,n,r)};var n=e.writeFile;e.writeFile=function(e,t,r,u){"function"==typeof r&&(u=r,r=null);return function e(t,r,u,o,i){return n(t,r,u,(function(n){!n||"EMFILE"!==n.code&&"ENFILE"!==n.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,r,u,o],n,i||Date.now(),Date.now()])}))}(e,t,r,u)};var r=e.appendFile;r&&(e.appendFile=function(e,t,n,u){"function"==typeof n&&(u=n,n=null);return function e(t,n,u,o,i){return r(t,n,u,(function(r){!r||"EMFILE"!==r.code&&"ENFILE"!==r.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,n,u,o],r,i||Date.now(),Date.now()])}))}(e,t,n,u)});var u=e.copyFile;u&&(e.copyFile=function(e,t,n,r){"function"==typeof n&&(r=n,n=0);return function e(t,n,r,o,i){return u(t,n,r,(function(u){!u||"EMFILE"!==u.code&&"ENFILE"!==u.code?"function"==typeof o&&o.apply(this,arguments):be([e,[t,n,r,o],u,i||Date.now(),Date.now()])}))}(e,t,n,r)});var o=e.readdir;e.readdir=function(e,t,n){"function"==typeof t&&(n=t,t=null);var r=i.test(process.version)?function(e,t,n,r){return o(e,u(e,t,n,r))}:function(e,t,n,r){return o(e,t,u(e,t,n,r))};return r(e,t,n);function u(e,t,n,u){return function(o,i){!o||"EMFILE"!==o.code&&"ENFILE"!==o.code?(i&&i.sort&&i.sort(),"function"==typeof n&&n.call(this,o,i)):be([r,[e,t,n],o,u||Date.now(),Date.now()])}}};var i=/^v[0-5]\./;if("v0.8"===process.version.substr(0,4)){var s=ye(e);d=s.ReadStream,D=s.WriteStream}var c=e.ReadStream;c&&(d.prototype=Object.create(c.prototype),d.prototype.open=function(){var e=this;E(e.path,e.flags,e.mode,(function(t,n){t?(e.autoClose&&e.destroy(),e.emit("error",t)):(e.fd=n,e.emit("open",n),e.read())}))});var a=e.WriteStream;a&&(D.prototype=Object.create(a.prototype),D.prototype.open=function(){var e=this;E(e.path,e.flags,e.mode,(function(t,n){t?(e.destroy(),e.emit("error",t)):(e.fd=n,e.emit("open",n))}))}),Object.defineProperty(e,"ReadStream",{get:function(){return d},set:function(e){d=e},enumerable:!0,configurable:!0}),Object.defineProperty(e,"WriteStream",{get:function(){return D},set:function(e){D=e},enumerable:!0,configurable:!0});var l=d;Object.defineProperty(e,"FileReadStream",{get:function(){return l},set:function(e){l=e},enumerable:!0,configurable:!0});var f=D;function d(e,t){return this instanceof d?(c.apply(this,arguments),this):d.apply(Object.create(d.prototype),arguments)}function D(e,t){return this instanceof D?(a.apply(this,arguments),this):D.apply(Object.create(D.prototype),arguments)}Object.defineProperty(e,"FileWriteStream",{get:function(){return f},set:function(e){f=e},enumerable:!0,configurable:!0});var p=e.open;function E(e,t,n,r){return"function"==typeof n&&(r=n,n=null),function e(t,n,r,u,o){return p(t,n,r,(function(i,s){!i||"EMFILE"!==i.code&&"ENFILE"!==i.code?"function"==typeof u&&u.apply(this,arguments):be([e,[t,n,r,u],i,o||Date.now(),Date.now()])}))}(e,t,n,r)}return e.open=E,e}function be(e){Ae("ENQUEUE",e[0].name,e[1]),me[pe].push(e),Be()}function _e(){for(var e=Date.now(),t=0;t2&&(me[pe][t][3]=e,me[pe][t][4]=e);Be()}function Be(){if(clearTimeout(Se),Se=void 0,0!==me[pe].length){var e=me[pe].shift(),t=e[0],n=e[1],r=e[2],u=e[3],o=e[4];if(void 0===u)Ae("RETRY",t.name,n),t.apply(null,n);else if(Date.now()-u>=6e4){Ae("TIMEOUT",t.name,n);var i=n.pop();"function"==typeof i&&i.call(null,r)}else{var s=Date.now()-o,c=Math.max(o-u,1);s>=Math.min(1.2*c,100)?(Ae("RETRY",t.name,n),t.apply(null,n.concat([u]))):me[pe].push(e)}void 0===Se&&(Se=setTimeout(Be,0))}}process.env.TEST_GRACEFUL_FS_GLOBAL_PATCH&&!me.__patched&&(we=Oe(me),me.__patched=!0),function(e){const t=re.fromCallback,n=we,r=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchmod","lchown","link","lstat","mkdir","mkdtemp","open","opendir","readdir","readFile","readlink","realpath","rename","rm","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>"function"==typeof n[e]));Object.assign(e,n),r.forEach((r=>{e[r]=t(n[r])})),e.realpath.native=t(n.realpath.native),e.exists=function(e,t){return"function"==typeof t?n.exists(e,t):new Promise((t=>n.exists(e,t)))},e.read=function(e,t,r,u,o,i){return"function"==typeof i?n.read(e,t,r,u,o,i):new Promise(((i,s)=>{n.read(e,t,r,u,o,((e,t,n)=>{if(e)return s(e);i({bytesRead:t,buffer:n})}))}))},e.write=function(e,t,...r){return"function"==typeof r[r.length-1]?n.write(e,t,...r):new Promise(((u,o)=>{n.write(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffer:n})}))}))},"function"==typeof n.writev&&(e.writev=function(e,t,...r){return"function"==typeof r[r.length-1]?n.writev(e,t,...r):new Promise(((u,o)=>{n.writev(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffers:n})}))}))})}(ne);var Pe={},ke={};const xe=p.default;ke.checkPath=function(e){if("win32"===process.platform){if(/[<>:"|?*]/.test(e.replace(xe.parse(e).root,""))){const t=new Error(`Path contains invalid characters: ${e}`);throw t.code="EINVAL",t}}};const Ne=ne,{checkPath:Ie}=ke,Te=e=>"number"==typeof e?e:{mode:511,...e}.mode;Pe.makeDir=async(e,t)=>(Ie(e),Ne.mkdir(e,{mode:Te(t),recursive:!0})),Pe.makeDirSync=(e,t)=>(Ie(e),Ne.mkdirSync(e,{mode:Te(t),recursive:!0}));const Re=re.fromPromise,{makeDir:Me,makeDirSync:Le}=Pe,je=Re(Me);var $e={mkdirs:je,mkdirsSync:Le,mkdirp:je,mkdirpSync:Le,ensureDir:je,ensureDirSync:Le};const He=re.fromPromise,Je=ne;var Ge={pathExists:He((function(e){return Je.access(e).then((()=>!0)).catch((()=>!1))})),pathExistsSync:Je.existsSync};const Ve=we;var Ue=function(e,t,n,r){Ve.open(e,"r+",((e,u)=>{if(e)return r(e);Ve.futimes(u,t,n,(e=>{Ve.close(u,(t=>{r&&r(e||t)}))}))}))},We=function(e,t,n){const r=Ve.openSync(e,"r+");return Ve.futimesSync(r,t,n),Ve.closeSync(r)};const ze=ne,Ke=p.default,qe=F.default;function Ye(e,t,n){const r=n.dereference?e=>ze.stat(e,{bigint:!0}):e=>ze.lstat(e,{bigint:!0});return Promise.all([r(e),r(t).catch((e=>{if("ENOENT"===e.code)return null;throw e}))]).then((([e,t])=>({srcStat:e,destStat:t})))}function Xe(e,t){return t.ino&&t.dev&&t.ino===e.ino&&t.dev===e.dev}function Ze(e,t){const n=Ke.resolve(e).split(Ke.sep).filter((e=>e)),r=Ke.resolve(t).split(Ke.sep).filter((e=>e));return n.reduce(((e,t,n)=>e&&r[n]===t),!0)}function Qe(e,t,n){return`Cannot ${n} '${e}' to a subdirectory of itself, '${t}'.`}var et={checkPaths:function(e,t,n,r,u){qe.callbackify(Ye)(e,t,r,((r,o)=>{if(r)return u(r);const{srcStat:i,destStat:s}=o;if(s){if(Xe(i,s)){const r=Ke.basename(e),o=Ke.basename(t);return"move"===n&&r!==o&&r.toLowerCase()===o.toLowerCase()?u(null,{srcStat:i,destStat:s,isChangingCase:!0}):u(new Error("Source and destination must not be the same."))}if(i.isDirectory()&&!s.isDirectory())return u(new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`));if(!i.isDirectory()&&s.isDirectory())return u(new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`))}return i.isDirectory()&&Ze(e,t)?u(new Error(Qe(e,t,n))):u(null,{srcStat:i,destStat:s})}))},checkPathsSync:function(e,t,n,r){const{srcStat:u,destStat:o}=function(e,t,n){let r;const u=n.dereference?e=>ze.statSync(e,{bigint:!0}):e=>ze.lstatSync(e,{bigint:!0}),o=u(e);try{r=u(t)}catch(e){if("ENOENT"===e.code)return{srcStat:o,destStat:null};throw e}return{srcStat:o,destStat:r}}(e,t,r);if(o){if(Xe(u,o)){const r=Ke.basename(e),i=Ke.basename(t);if("move"===n&&r!==i&&r.toLowerCase()===i.toLowerCase())return{srcStat:u,destStat:o,isChangingCase:!0};throw new Error("Source and destination must not be the same.")}if(u.isDirectory()&&!o.isDirectory())throw new Error(`Cannot overwrite non-directory '${t}' with directory '${e}'.`);if(!u.isDirectory()&&o.isDirectory())throw new Error(`Cannot overwrite directory '${t}' with non-directory '${e}'.`)}if(u.isDirectory()&&Ze(e,t))throw new Error(Qe(e,t,n));return{srcStat:u,destStat:o}},checkParentPaths:function e(t,n,r,u,o){const i=Ke.resolve(Ke.dirname(t)),s=Ke.resolve(Ke.dirname(r));if(s===i||s===Ke.parse(s).root)return o();ze.stat(s,{bigint:!0},((i,c)=>i?"ENOENT"===i.code?o():o(i):Xe(n,c)?o(new Error(Qe(t,r,u))):e(t,n,s,u,o)))},checkParentPathsSync:function e(t,n,r,u){const o=Ke.resolve(Ke.dirname(t)),i=Ke.resolve(Ke.dirname(r));if(i===o||i===Ke.parse(i).root)return;let s;try{s=ze.statSync(i,{bigint:!0})}catch(e){if("ENOENT"===e.code)return;throw e}if(Xe(n,s))throw new Error(Qe(t,r,u));return e(t,n,i,u)},isSrcSubdir:Ze,areIdentical:Xe};const tt=we,nt=p.default,rt=$e.mkdirs,ut=Ge.pathExists,ot=Ue,it=et;function st(e,t,n,r,u){const o=nt.dirname(n);ut(o,((i,s)=>i?u(i):s?at(e,t,n,r,u):void rt(o,(o=>o?u(o):at(e,t,n,r,u)))))}function ct(e,t,n,r,u,o){Promise.resolve(u.filter(n,r)).then((i=>i?e(t,n,r,u,o):o()),(e=>o(e)))}function at(e,t,n,r,u){(r.dereference?tt.stat:tt.lstat)(t,((o,i)=>o?u(o):i.isDirectory()?function(e,t,n,r,u,o){return t?Dt(n,r,u,o):function(e,t,n,r,u){tt.mkdir(n,(o=>{if(o)return u(o);Dt(t,n,r,(t=>t?u(t):dt(n,e,u)))}))}(e.mode,n,r,u,o)}(i,e,t,n,r,u):i.isFile()||i.isCharacterDevice()||i.isBlockDevice()?function(e,t,n,r,u,o){return t?function(e,t,n,r,u){if(!r.overwrite)return r.errorOnExist?u(new Error(`'${n}' already exists`)):u();tt.unlink(n,(o=>o?u(o):lt(e,t,n,r,u)))}(e,n,r,u,o):lt(e,n,r,u,o)}(i,e,t,n,r,u):i.isSymbolicLink()?function(e,t,n,r,u){tt.readlink(t,((t,o)=>t?u(t):(r.dereference&&(o=nt.resolve(process.cwd(),o)),e?void tt.readlink(n,((t,i)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?tt.symlink(o,n,u):u(t):(r.dereference&&(i=nt.resolve(process.cwd(),i)),it.isSrcSubdir(o,i)?u(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${i}'.`)):e.isDirectory()&&it.isSrcSubdir(i,o)?u(new Error(`Cannot overwrite '${i}' with '${o}'.`)):function(e,t,n){tt.unlink(t,(r=>r?n(r):tt.symlink(e,t,n)))}(o,n,u)))):tt.symlink(o,n,u))))}(e,t,n,r,u):i.isSocket()?u(new Error(`Cannot copy a socket file: ${t}`)):i.isFIFO()?u(new Error(`Cannot copy a FIFO pipe: ${t}`)):u(new Error(`Unknown file: ${t}`))))}function lt(e,t,n,r,u){tt.copyFile(t,n,(o=>o?u(o):r.preserveTimestamps?function(e,t,n,r){if(function(e){return 0==(128&e)}(e))return function(e,t,n){return dt(e,128|t,n)}(n,e,(u=>u?r(u):ft(e,t,n,r)));return ft(e,t,n,r)}(e.mode,t,n,u):dt(n,e.mode,u)))}function ft(e,t,n,r){!function(e,t,n){tt.stat(e,((e,r)=>e?n(e):ot(t,r.atime,r.mtime,n)))}(t,n,(t=>t?r(t):dt(n,e,r)))}function dt(e,t,n){return tt.chmod(e,t,n)}function Dt(e,t,n,r){tt.readdir(e,((u,o)=>u?r(u):pt(o,e,t,n,r)))}function pt(e,t,n,r,u){const o=e.pop();return o?function(e,t,n,r,u,o){const i=nt.join(n,t),s=nt.join(r,t);it.checkPaths(i,s,"copy",u,((t,c)=>{if(t)return o(t);const{destStat:a}=c;!function(e,t,n,r,u){r.filter?ct(at,e,t,n,r,u):at(e,t,n,r,u)}(a,i,s,u,(t=>t?o(t):pt(e,n,r,u,o)))}))}(e,o,t,n,r,u):u()}var Et=function(e,t,n,r){"function"!=typeof n||r?"function"==typeof n&&(n={filter:n}):(r=n,n={}),r=r||function(){},(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),it.checkPaths(e,t,"copy",n,((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;it.checkParentPaths(e,i,t,"copy",(u=>u?r(u):n.filter?ct(st,s,e,t,n,r):st(s,e,t,n,r)))}))};const mt=we,ht=p.default,yt=$e.mkdirsSync,Ct=We,Ft=et;function gt(e,t,n,r){const u=(r.dereference?mt.statSync:mt.lstatSync)(t);if(u.isDirectory())return function(e,t,n,r,u){return t?St(n,r,u):function(e,t,n,r){return mt.mkdirSync(n),St(t,n,r),vt(n,e)}(e.mode,n,r,u)}(u,e,t,n,r);if(u.isFile()||u.isCharacterDevice()||u.isBlockDevice())return function(e,t,n,r,u){return t?function(e,t,n,r){if(r.overwrite)return mt.unlinkSync(n),At(e,t,n,r);if(r.errorOnExist)throw new Error(`'${n}' already exists`)}(e,n,r,u):At(e,n,r,u)}(u,e,t,n,r);if(u.isSymbolicLink())return function(e,t,n,r){let u=mt.readlinkSync(t);r.dereference&&(u=ht.resolve(process.cwd(),u));if(e){let e;try{e=mt.readlinkSync(n)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return mt.symlinkSync(u,n);throw e}if(r.dereference&&(e=ht.resolve(process.cwd(),e)),Ft.isSrcSubdir(u,e))throw new Error(`Cannot copy '${u}' to a subdirectory of itself, '${e}'.`);if(mt.statSync(n).isDirectory()&&Ft.isSrcSubdir(e,u))throw new Error(`Cannot overwrite '${e}' with '${u}'.`);return function(e,t){return mt.unlinkSync(t),mt.symlinkSync(e,t)}(u,n)}return mt.symlinkSync(u,n)}(e,t,n,r);if(u.isSocket())throw new Error(`Cannot copy a socket file: ${t}`);if(u.isFIFO())throw new Error(`Cannot copy a FIFO pipe: ${t}`);throw new Error(`Unknown file: ${t}`)}function At(e,t,n,r){return mt.copyFileSync(t,n),r.preserveTimestamps&&function(e,t,n){(function(e){return 0==(128&e)})(e)&&function(e,t){vt(e,128|t)}(n,e);(function(e,t){const n=mt.statSync(e);Ct(t,n.atime,n.mtime)})(t,n)}(e.mode,t,n),vt(n,e.mode)}function vt(e,t){return mt.chmodSync(e,t)}function St(e,t,n){mt.readdirSync(e).forEach((r=>function(e,t,n,r){const u=ht.join(t,e),o=ht.join(n,e),{destStat:i}=Ft.checkPathsSync(u,o,"copy",r);return function(e,t,n,r){if(!r.filter||r.filter(t,n))return gt(e,t,n,r)}(i,u,o,r)}(r,e,t,n)))}var wt=function(e,t,n){"function"==typeof n&&(n={filter:n}),(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const{srcStat:r,destStat:u}=Ft.checkPathsSync(e,t,"copy",n);return Ft.checkParentPathsSync(e,r,t,"copy"),function(e,t,n,r){if(r.filter&&!r.filter(t,n))return;const u=ht.dirname(n);mt.existsSync(u)||yt(u);return gt(e,t,n,r)}(u,e,t,n)};var Ot={copy:(0,re.fromCallback)(Et),copySync:wt};const bt=we,_t=p.default,Bt=g.default,Pt="win32"===process.platform;function kt(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach((t=>{e[t]=e[t]||bt[t],e[t+="Sync"]=e[t]||bt[t]})),e.maxBusyTries=e.maxBusyTries||3}function xt(e,t,n){let r=0;"function"==typeof t&&(n=t,t={}),Bt(e,"rimraf: missing path"),Bt.strictEqual(typeof e,"string","rimraf: path should be a string"),Bt.strictEqual(typeof n,"function","rimraf: callback function required"),Bt(t,"rimraf: invalid options argument provided"),Bt.strictEqual(typeof t,"object","rimraf: options should be object"),kt(t),Nt(e,t,(function u(o){if(o){if(("EBUSY"===o.code||"ENOTEMPTY"===o.code||"EPERM"===o.code)&&rNt(e,t,u)),100*r)}"ENOENT"===o.code&&(o=null)}n(o)}))}function Nt(e,t,n){Bt(e),Bt(t),Bt("function"==typeof n),t.lstat(e,((r,u)=>r&&"ENOENT"===r.code?n(null):r&&"EPERM"===r.code&&Pt?It(e,t,r,n):u&&u.isDirectory()?Rt(e,t,r,n):void t.unlink(e,(r=>{if(r){if("ENOENT"===r.code)return n(null);if("EPERM"===r.code)return Pt?It(e,t,r,n):Rt(e,t,r,n);if("EISDIR"===r.code)return Rt(e,t,r,n)}return n(r)}))))}function It(e,t,n,r){Bt(e),Bt(t),Bt("function"==typeof r),t.chmod(e,438,(u=>{u?r("ENOENT"===u.code?null:n):t.stat(e,((u,o)=>{u?r("ENOENT"===u.code?null:n):o.isDirectory()?Rt(e,t,n,r):t.unlink(e,r)}))}))}function Tt(e,t,n){let r;Bt(e),Bt(t);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw n}try{r=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw n}r.isDirectory()?Lt(e,t,n):t.unlinkSync(e)}function Rt(e,t,n,r){Bt(e),Bt(t),Bt("function"==typeof r),t.rmdir(e,(u=>{!u||"ENOTEMPTY"!==u.code&&"EEXIST"!==u.code&&"EPERM"!==u.code?u&&"ENOTDIR"===u.code?r(n):r(u):function(e,t,n){Bt(e),Bt(t),Bt("function"==typeof n),t.readdir(e,((r,u)=>{if(r)return n(r);let o,i=u.length;if(0===i)return t.rmdir(e,n);u.forEach((r=>{xt(_t.join(e,r),t,(r=>{if(!o)return r?n(o=r):void(0==--i&&t.rmdir(e,n))}))}))}))}(e,t,r)}))}function Mt(e,t){let n;kt(t=t||{}),Bt(e,"rimraf: missing path"),Bt.strictEqual(typeof e,"string","rimraf: path should be a string"),Bt(t,"rimraf: missing options"),Bt.strictEqual(typeof t,"object","rimraf: options should be object");try{n=t.lstatSync(e)}catch(n){if("ENOENT"===n.code)return;"EPERM"===n.code&&Pt&&Tt(e,t,n)}try{n&&n.isDirectory()?Lt(e,t,null):t.unlinkSync(e)}catch(n){if("ENOENT"===n.code)return;if("EPERM"===n.code)return Pt?Tt(e,t,n):Lt(e,t,n);if("EISDIR"!==n.code)throw n;Lt(e,t,n)}}function Lt(e,t,n){Bt(e),Bt(t);try{t.rmdirSync(e)}catch(r){if("ENOTDIR"===r.code)throw n;if("ENOTEMPTY"===r.code||"EEXIST"===r.code||"EPERM"===r.code)!function(e,t){if(Bt(e),Bt(t),t.readdirSync(e).forEach((n=>Mt(_t.join(e,n),t))),!Pt){return t.rmdirSync(e,t)}{const n=Date.now();do{try{return t.rmdirSync(e,t)}catch{}}while(Date.now()-n<500)}}(e,t);else if("ENOENT"!==r.code)throw r}}var jt=xt;xt.sync=Mt;const $t=we,Ht=re.fromCallback,Jt=jt;var Gt={remove:Ht((function(e,t){if($t.rm)return $t.rm(e,{recursive:!0,force:!0},t);Jt(e,t)})),removeSync:function(e){if($t.rmSync)return $t.rmSync(e,{recursive:!0,force:!0});Jt.sync(e)}};const Vt=re.fromPromise,Ut=ne,Wt=p.default,zt=$e,Kt=Gt,qt=Vt((async function(e){let t;try{t=await Ut.readdir(e)}catch{return zt.mkdirs(e)}return Promise.all(t.map((t=>Kt.remove(Wt.join(e,t)))))}));function Yt(e){let t;try{t=Ut.readdirSync(e)}catch{return zt.mkdirsSync(e)}t.forEach((t=>{t=Wt.join(e,t),Kt.removeSync(t)}))}var Xt={emptyDirSync:Yt,emptydirSync:Yt,emptyDir:qt,emptydir:qt};const Zt=re.fromCallback,Qt=p.default,en=we,tn=$e;var nn={createFile:Zt((function(e,t){function n(){en.writeFile(e,"",(e=>{if(e)return t(e);t()}))}en.stat(e,((r,u)=>{if(!r&&u.isFile())return t();const o=Qt.dirname(e);en.stat(o,((e,r)=>{if(e)return"ENOENT"===e.code?tn.mkdirs(o,(e=>{if(e)return t(e);n()})):t(e);r.isDirectory()?n():en.readdir(o,(e=>{if(e)return t(e)}))}))}))})),createFileSync:function(e){let t;try{t=en.statSync(e)}catch{}if(t&&t.isFile())return;const n=Qt.dirname(e);try{en.statSync(n).isDirectory()||en.readdirSync(n)}catch(e){if(!e||"ENOENT"!==e.code)throw e;tn.mkdirsSync(n)}en.writeFileSync(e,"")}};const rn=re.fromCallback,un=p.default,on=we,sn=$e,cn=Ge.pathExists,{areIdentical:an}=et;var ln={createLink:rn((function(e,t,n){function r(e,t){on.link(e,t,(e=>{if(e)return n(e);n(null)}))}on.lstat(t,((u,o)=>{on.lstat(e,((u,i)=>{if(u)return u.message=u.message.replace("lstat","ensureLink"),n(u);if(o&&an(i,o))return n(null);const s=un.dirname(t);cn(s,((u,o)=>u?n(u):o?r(e,t):void sn.mkdirs(s,(u=>{if(u)return n(u);r(e,t)}))))}))}))})),createLinkSync:function(e,t){let n;try{n=on.lstatSync(t)}catch{}try{const t=on.lstatSync(e);if(n&&an(t,n))return}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const r=un.dirname(t);return on.existsSync(r)||sn.mkdirsSync(r),on.linkSync(e,t)}};const fn=p.default,dn=we,Dn=Ge.pathExists;var pn={symlinkPaths:function(e,t,n){if(fn.isAbsolute(e))return dn.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:e})));{const r=fn.dirname(t),u=fn.join(r,e);return Dn(u,((t,o)=>t?n(t):o?n(null,{toCwd:u,toDst:e}):dn.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:fn.relative(r,e)})))))}},symlinkPathsSync:function(e,t){let n;if(fn.isAbsolute(e)){if(n=dn.existsSync(e),!n)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const r=fn.dirname(t),u=fn.join(r,e);if(n=dn.existsSync(u),n)return{toCwd:u,toDst:e};if(n=dn.existsSync(e),!n)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:fn.relative(r,e)}}}};const En=we;var mn={symlinkType:function(e,t,n){if(n="function"==typeof t?t:n,t="function"!=typeof t&&t)return n(null,t);En.lstat(e,((e,r)=>{if(e)return n(null,"file");t=r&&r.isDirectory()?"dir":"file",n(null,t)}))},symlinkTypeSync:function(e,t){let n;if(t)return t;try{n=En.lstatSync(e)}catch{return"file"}return n&&n.isDirectory()?"dir":"file"}};const hn=re.fromCallback,yn=p.default,Cn=ne,Fn=$e.mkdirs,gn=$e.mkdirsSync,An=pn.symlinkPaths,vn=pn.symlinkPathsSync,Sn=mn.symlinkType,wn=mn.symlinkTypeSync,On=Ge.pathExists,{areIdentical:bn}=et;function _n(e,t,n,r){An(e,t,((u,o)=>{if(u)return r(u);e=o.toDst,Sn(o.toCwd,n,((n,u)=>{if(n)return r(n);const o=yn.dirname(t);On(o,((n,i)=>n?r(n):i?Cn.symlink(e,t,u,r):void Fn(o,(n=>{if(n)return r(n);Cn.symlink(e,t,u,r)}))))}))}))}var Bn={createSymlink:hn((function(e,t,n,r){r="function"==typeof n?n:r,n="function"!=typeof n&&n,Cn.lstat(t,((u,o)=>{!u&&o.isSymbolicLink()?Promise.all([Cn.stat(e),Cn.stat(t)]).then((([u,o])=>{if(bn(u,o))return r(null);_n(e,t,n,r)})):_n(e,t,n,r)}))})),createSymlinkSync:function(e,t,n){let r;try{r=Cn.lstatSync(t)}catch{}if(r&&r.isSymbolicLink()){const n=Cn.statSync(e),r=Cn.statSync(t);if(bn(n,r))return}const u=vn(e,t);e=u.toDst,n=wn(u.toCwd,n);const o=yn.dirname(t);return Cn.existsSync(o)||gn(o),Cn.symlinkSync(e,t,n)}};const{createFile:Pn,createFileSync:kn}=nn,{createLink:xn,createLinkSync:Nn}=ln,{createSymlink:In,createSymlinkSync:Tn}=Bn;var Rn={createFile:Pn,createFileSync:kn,ensureFile:Pn,ensureFileSync:kn,createLink:xn,createLinkSync:Nn,ensureLink:xn,ensureLinkSync:Nn,createSymlink:In,createSymlinkSync:Tn,ensureSymlink:In,ensureSymlinkSync:Tn};var Mn={stringify:function(e,{EOL:t="\n",finalEOL:n=!0,replacer:r=null,spaces:u}={}){const o=n?t:"";return JSON.stringify(e,r,u).replace(/\n/g,t)+o},stripBom:function(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e.replace(/^\uFEFF/,"")}};let Ln;try{Ln=we}catch(e){Ln=D.default}const jn=re,{stringify:$n,stripBom:Hn}=Mn;const Jn=jn.fromPromise((async function(e,t={}){"string"==typeof t&&(t={encoding:t});const n=t.fs||Ln,r=!("throws"in t)||t.throws;let u,o=await jn.fromCallback(n.readFile)(e,t);o=Hn(o);try{u=JSON.parse(o,t?t.reviver:null)}catch(t){if(r)throw t.message=`${e}: ${t.message}`,t;return null}return u}));const Gn=jn.fromPromise((async function(e,t,n={}){const r=n.fs||Ln,u=$n(t,n);await jn.fromCallback(r.writeFile)(e,u,n)}));const Vn={readFile:Jn,readFileSync:function(e,t={}){"string"==typeof t&&(t={encoding:t});const n=t.fs||Ln,r=!("throws"in t)||t.throws;try{let r=n.readFileSync(e,t);return r=Hn(r),JSON.parse(r,t.reviver)}catch(t){if(r)throw t.message=`${e}: ${t.message}`,t;return null}},writeFile:Gn,writeFileSync:function(e,t,n={}){const r=n.fs||Ln,u=$n(t,n);return r.writeFileSync(e,u,n)}};var Un={readJson:Vn.readFile,readJsonSync:Vn.readFileSync,writeJson:Vn.writeFile,writeJsonSync:Vn.writeFileSync};const Wn=re.fromCallback,zn=we,Kn=p.default,qn=$e,Yn=Ge.pathExists;var Xn={outputFile:Wn((function(e,t,n,r){"function"==typeof n&&(r=n,n="utf8");const u=Kn.dirname(e);Yn(u,((o,i)=>o?r(o):i?zn.writeFile(e,t,n,r):void qn.mkdirs(u,(u=>{if(u)return r(u);zn.writeFile(e,t,n,r)}))))})),outputFileSync:function(e,...t){const n=Kn.dirname(e);if(zn.existsSync(n))return zn.writeFileSync(e,...t);qn.mkdirsSync(n),zn.writeFileSync(e,...t)}};const{stringify:Zn}=Mn,{outputFile:Qn}=Xn;var er=async function(e,t,n={}){const r=Zn(t,n);await Qn(e,r,n)};const{stringify:tr}=Mn,{outputFileSync:nr}=Xn;var rr=function(e,t,n){const r=tr(t,n);nr(e,r,n)};const ur=re.fromPromise,or=Un;or.outputJson=ur(er),or.outputJsonSync=rr,or.outputJSON=or.outputJson,or.outputJSONSync=or.outputJsonSync,or.writeJSON=or.writeJson,or.writeJSONSync=or.writeJsonSync,or.readJSON=or.readJson,or.readJSONSync=or.readJsonSync;var ir=or;const sr=we,cr=p.default,ar=Ot.copy,lr=Gt.remove,fr=$e.mkdirp,dr=Ge.pathExists,Dr=et;function pr(e,t,n,r,u){return r?Er(e,t,n,u):n?lr(t,(r=>r?u(r):Er(e,t,n,u))):void dr(t,((r,o)=>r?u(r):o?u(new Error("dest already exists.")):Er(e,t,n,u)))}function Er(e,t,n,r){sr.rename(e,t,(u=>u?"EXDEV"!==u.code?r(u):function(e,t,n,r){const u={overwrite:n,errorOnExist:!0};ar(e,t,u,(t=>t?r(t):lr(e,r)))}(e,t,n,r):r()))}var mr=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=n.overwrite||n.clobber||!1;Dr.checkPaths(e,t,"move",n,((n,o)=>{if(n)return r(n);const{srcStat:i,isChangingCase:s=!1}=o;Dr.checkParentPaths(e,i,t,"move",(n=>n?r(n):function(e){const t=cr.dirname(e);return cr.parse(t).root===t}(t)?pr(e,t,u,s,r):void fr(cr.dirname(t),(n=>n?r(n):pr(e,t,u,s,r)))))}))};const hr=we,yr=p.default,Cr=Ot.copySync,Fr=Gt.removeSync,gr=$e.mkdirpSync,Ar=et;function vr(e,t,n){try{hr.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;return function(e,t,n){const r={overwrite:n,errorOnExist:!0};return Cr(e,t,r),Fr(e)}(e,t,n)}}var Sr=function(e,t,n){const r=(n=n||{}).overwrite||n.clobber||!1,{srcStat:u,isChangingCase:o=!1}=Ar.checkPathsSync(e,t,"move",n);return Ar.checkParentPathsSync(e,u,t,"move"),function(e){const t=yr.dirname(e);return yr.parse(t).root===t}(t)||gr(yr.dirname(t)),function(e,t,n,r){if(r)return vr(e,t,n);if(n)return Fr(t),vr(e,t,n);if(hr.existsSync(t))throw new Error("dest already exists.");return vr(e,t,n)}(e,t,r,o)};var wr,Or,br,_r,Br,Pr={move:(0,re.fromCallback)(mr),moveSync:Sr},kr={...ne,...Ot,...Xt,...Rn,...ir,...$e,...Pr,...Xn,...Ge,...Gt},xr={},Nr={exports:{}},Ir={exports:{}};function Tr(){if(Or)return wr;Or=1;var e=1e3,t=60*e,n=60*t,r=24*n,u=7*r,o=365.25*r;function i(e,t,n,r){var u=t>=1.5*n;return Math.round(e/n)+" "+r+(u?"s":"")}return wr=function(s,c){c=c||{};var a=typeof s;if("string"===a&&s.length>0)return function(i){if((i=String(i)).length>100)return;var s=/^(-?(?:\d+)?\.?\d+) *(milliseconds?|msecs?|ms|seconds?|secs?|s|minutes?|mins?|m|hours?|hrs?|h|days?|d|weeks?|w|years?|yrs?|y)?$/i.exec(i);if(!s)return;var c=parseFloat(s[1]);switch((s[2]||"ms").toLowerCase()){case"years":case"year":case"yrs":case"yr":case"y":return c*o;case"weeks":case"week":case"w":return c*u;case"days":case"day":case"d":return c*r;case"hours":case"hour":case"hrs":case"hr":case"h":return c*n;case"minutes":case"minute":case"mins":case"min":case"m":return c*t;case"seconds":case"second":case"secs":case"sec":case"s":return c*e;case"milliseconds":case"millisecond":case"msecs":case"msec":case"ms":return c;default:return}}(s);if("number"===a&&isFinite(s))return c.long?function(u){var o=Math.abs(u);if(o>=r)return i(u,o,r,"day");if(o>=n)return i(u,o,n,"hour");if(o>=t)return i(u,o,t,"minute");if(o>=e)return i(u,o,e,"second");return u+" ms"}(s):function(u){var o=Math.abs(u);if(o>=r)return Math.round(u/r)+"d";if(o>=n)return Math.round(u/n)+"h";if(o>=t)return Math.round(u/t)+"m";if(o>=e)return Math.round(u/e)+"s";return u+"ms"}(s);throw new Error("val is not a non-empty string or a valid number. val="+JSON.stringify(s))}}function Rr(){if(_r)return br;return _r=1,br=function(e){function t(e){let r,u,o,i=null;function s(...e){if(!s.enabled)return;const n=s,u=Number(new Date),o=u-(r||u);n.diff=o,n.prev=r,n.curr=u,r=u,e[0]=t.coerce(e[0]),"string"!=typeof e[0]&&e.unshift("%O");let i=0;e[0]=e[0].replace(/%([a-zA-Z%])/g,((r,u)=>{if("%%"===r)return"%";i++;const o=t.formatters[u];if("function"==typeof o){const t=e[i];r=o.call(n,t),e.splice(i,1),i--}return r})),t.formatArgs.call(n,e);(n.log||t.log).apply(n,e)}return s.namespace=e,s.useColors=t.useColors(),s.color=t.selectColor(e),s.extend=n,s.destroy=t.destroy,Object.defineProperty(s,"enabled",{enumerable:!0,configurable:!1,get:()=>null!==i?i:(u!==t.namespaces&&(u=t.namespaces,o=t.enabled(e)),o),set:e=>{i=e}}),"function"==typeof t.init&&t.init(s),s}function n(e,n){const r=t(this.namespace+(void 0===n?":":n)+e);return r.log=this.log,r}function r(e){return e.toString().substring(2,e.toString().length-2).replace(/\.\*\?$/,"*")}return t.debug=t,t.default=t,t.coerce=function(e){if(e instanceof Error)return e.stack||e.message;return e},t.disable=function(){const e=[...t.names.map(r),...t.skips.map(r).map((e=>"-"+e))].join(",");return t.enable(""),e},t.enable=function(e){let n;t.save(e),t.namespaces=e,t.names=[],t.skips=[];const r=("string"==typeof e?e:"").split(/[\s,]+/),u=r.length;for(n=0;n{t[n]=e[n]})),t.names=[],t.skips=[],t.formatters={},t.selectColor=function(e){let n=0;for(let t=0;t{const n=e.startsWith("-")?"":1===e.length?"-":"--",r=t.indexOf(n+e),u=t.indexOf("--");return-1!==r&&(-1===u||r{}),"Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."),t.colors=[6,2,3,4,5,1];try{const e=function(){if($r)return jr;$r=1;const e=E.default,t=A.default,n=Vr(),{env:r}=process;let u;function o(e){return 0!==e&&{level:e,hasBasic:!0,has256:e>=2,has16m:e>=3}}function i(t,o){if(0===u)return 0;if(n("color=16m")||n("color=full")||n("color=truecolor"))return 3;if(n("color=256"))return 2;if(t&&!o&&void 0===u)return 0;const i=u||0;if("dumb"===r.TERM)return i;if("win32"===process.platform){const t=e.release().split(".");return Number(t[0])>=10&&Number(t[2])>=10586?Number(t[2])>=14931?3:2:1}if("CI"in r)return["TRAVIS","CIRCLECI","APPVEYOR","GITLAB_CI","GITHUB_ACTIONS","BUILDKITE"].some((e=>e in r))||"codeship"===r.CI_NAME?1:i;if("TEAMCITY_VERSION"in r)return/^(9\.(0*[1-9]\d*)\.|\d{2,}\.)/.test(r.TEAMCITY_VERSION)?1:0;if("truecolor"===r.COLORTERM)return 3;if("TERM_PROGRAM"in r){const e=parseInt((r.TERM_PROGRAM_VERSION||"").split(".")[0],10);switch(r.TERM_PROGRAM){case"iTerm.app":return e>=3?3:2;case"Apple_Terminal":return 2}}return/-256(color)?$/i.test(r.TERM)?2:/^screen|^xterm|^vt100|^vt220|^rxvt|color|ansi|cygwin|linux/i.test(r.TERM)||"COLORTERM"in r?1:i}return n("no-color")||n("no-colors")||n("color=false")||n("color=never")?u=0:(n("color")||n("colors")||n("color=true")||n("color=always"))&&(u=1),"FORCE_COLOR"in r&&(u="true"===r.FORCE_COLOR?1:"false"===r.FORCE_COLOR?0:0===r.FORCE_COLOR.length?1:Math.min(parseInt(r.FORCE_COLOR,10),3)),jr={supportsColor:function(e){return o(i(e,e&&e.isTTY))},stdout:o(i(!0,t.isatty(1))),stderr:o(i(!0,t.isatty(2)))}}();e&&(e.stderr||e).level>=2&&(t.colors=[20,21,26,27,32,33,38,39,40,41,42,43,44,45,56,57,62,63,68,69,74,75,76,77,78,79,80,81,92,93,98,99,112,113,128,129,134,135,148,149,160,161,162,163,164,165,166,167,168,169,170,171,172,173,178,179,184,185,196,197,198,199,200,201,202,203,204,205,206,207,208,209,214,215,220,221])}catch(e){}t.inspectOpts=Object.keys(process.env).filter((e=>/^debug_/i.test(e))).reduce(((e,t)=>{const n=t.substring(6).toLowerCase().replace(/_([a-z])/g,((e,t)=>t.toUpperCase()));let r=process.env[t];return r=!!/^(yes|on|true|enabled)$/i.test(r)||!/^(no|off|false|disabled)$/i.test(r)&&("null"===r?null:Number(r)),e[n]=r,e}),{}),e.exports=Rr()(t);const{formatters:u}=e.exports;u.o=function(e){return this.inspectOpts.colors=this.useColors,r.inspect(e,this.inspectOpts).split("\n").map((e=>e.trim())).join(" ")},u.O=function(e){return this.inspectOpts.colors=this.useColors,r.inspect(e,this.inspectOpts)}}(Gr,Gr.exports)),Gr.exports}Jr=Nr,"undefined"==typeof process||"renderer"===process.type||!0===process.browser||process.__nwjs?Jr.exports=(Br||(Br=1,function(e,t){t.formatArgs=function(t){if(t[0]=(this.useColors?"%c":"")+this.namespace+(this.useColors?" %c":" ")+t[0]+(this.useColors?"%c ":" ")+"+"+e.exports.humanize(this.diff),!this.useColors)return;const n="color: "+this.color;t.splice(1,0,n,"color: inherit");let r=0,u=0;t[0].replace(/%[a-zA-Z%]/g,(e=>{"%%"!==e&&(r++,"%c"===e&&(u=r))})),t.splice(u,0,n)},t.save=function(e){try{e?t.storage.setItem("debug",e):t.storage.removeItem("debug")}catch(e){}},t.load=function(){let e;try{e=t.storage.getItem("debug")}catch(e){}return!e&&"undefined"!=typeof process&&"env"in process&&(e=process.env.DEBUG),e},t.useColors=function(){return!("undefined"==typeof window||!window.process||"renderer"!==window.process.type&&!window.process.__nwjs)||("undefined"==typeof navigator||!navigator.userAgent||!navigator.userAgent.toLowerCase().match(/(edge|trident)\/(\d+)/))&&("undefined"!=typeof document&&document.documentElement&&document.documentElement.style&&document.documentElement.style.WebkitAppearance||"undefined"!=typeof window&&window.console&&(window.console.firebug||window.console.exception&&window.console.table)||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/firefox\/(\d+)/)&&parseInt(RegExp.$1,10)>=31||"undefined"!=typeof navigator&&navigator.userAgent&&navigator.userAgent.toLowerCase().match(/applewebkit\/(\d+)/))},t.storage=function(){try{return localStorage}catch(e){}}(),t.destroy=(()=>{let e=!1;return()=>{e||(e=!0,console.warn("Instance method `debug.destroy()` is deprecated and no longer does anything. It will be removed in the next major version of `debug`."))}})(),t.colors=["#0000CC","#0000FF","#0033CC","#0033FF","#0066CC","#0066FF","#0099CC","#0099FF","#00CC00","#00CC33","#00CC66","#00CC99","#00CCCC","#00CCFF","#3300CC","#3300FF","#3333CC","#3333FF","#3366CC","#3366FF","#3399CC","#3399FF","#33CC00","#33CC33","#33CC66","#33CC99","#33CCCC","#33CCFF","#6600CC","#6600FF","#6633CC","#6633FF","#66CC00","#66CC33","#9900CC","#9900FF","#9933CC","#9933FF","#99CC00","#99CC33","#CC0000","#CC0033","#CC0066","#CC0099","#CC00CC","#CC00FF","#CC3300","#CC3333","#CC3366","#CC3399","#CC33CC","#CC33FF","#CC6600","#CC6633","#CC9900","#CC9933","#CCCC00","#CCCC33","#FF0000","#FF0033","#FF0066","#FF0099","#FF00CC","#FF00FF","#FF3300","#FF3333","#FF3366","#FF3399","#FF33CC","#FF33FF","#FF6600","#FF6633","#FF9900","#FF9933","#FFCC00","#FFCC33"],t.log=console.debug||console.log||(()=>{}),e.exports=Rr()(t);const{formatters:n}=e.exports;n.j=function(e){try{return JSON.stringify(e)}catch(e){return"[UnexpectedJSONParseError]: "+e.message}}}(Ir,Ir.exports)),Ir.exports):Jr.exports=Ur();var Wr=function(e){return(e=e||{}).circles?function(e){var t=[],n=[];return e.proto?function e(u){if("object"!=typeof u||null===u)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,e);if(u instanceof Map)return new Map(r(Array.from(u),e));if(u instanceof Set)return new Set(r(Array.from(u),e));var o={};for(var i in t.push(u),n.push(o),u){var s=u[i];if("object"!=typeof s||null===s)o[i]=s;else if(s instanceof Date)o[i]=new Date(s);else if(s instanceof Map)o[i]=new Map(r(Array.from(s),e));else if(s instanceof Set)o[i]=new Set(r(Array.from(s),e));else if(ArrayBuffer.isView(s))o[i]=zr(s);else{var c=t.indexOf(s);o[i]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o}:function e(u){if("object"!=typeof u||null===u)return u;if(u instanceof Date)return new Date(u);if(Array.isArray(u))return r(u,e);if(u instanceof Map)return new Map(r(Array.from(u),e));if(u instanceof Set)return new Set(r(Array.from(u),e));var o={};for(var i in t.push(u),n.push(o),u)if(!1!==Object.hasOwnProperty.call(u,i)){var s=u[i];if("object"!=typeof s||null===s)o[i]=s;else if(s instanceof Date)o[i]=new Date(s);else if(s instanceof Map)o[i]=new Map(r(Array.from(s),e));else if(s instanceof Set)o[i]=new Set(r(Array.from(s),e));else if(ArrayBuffer.isView(s))o[i]=zr(s);else{var c=t.indexOf(s);o[i]=-1!==c?n[c]:e(s)}}return t.pop(),n.pop(),o};function r(e,r){for(var u=Object.keys(e),o=new Array(u.length),i=0;i!e,Qr=e=>e&&"object"==typeof e&&!Array.isArray(e),eu=(e,t,n)=>{(Array.isArray(t)?t:[t]).forEach((t=>{if(t)throw new Error(`Problem with log4js configuration: (${Kr.inspect(e,{depth:5})}) - ${n}`)}))};var tu={configure:e=>{qr("New configuration to be validated: ",e),eu(e,Zr(Qr(e)),"must be an object."),qr(`Calling pre-processing listeners (${Yr.length})`),Yr.forEach((t=>t(e))),qr("Configuration pre-processing finished."),qr(`Calling configuration listeners (${Xr.length})`),Xr.forEach((t=>t(e))),qr("Configuration finished.")},addListener:e=>{Xr.push(e),qr(`Added listener, now ${Xr.length} listeners`)},addPreProcessingListener:e=>{Yr.push(e),qr(`Added pre-processing listener, now ${Yr.length} listeners`)},throwExceptionIf:eu,anObject:Qr,anInteger:e=>e&&"number"==typeof e&&Number.isInteger(e),validIdentifier:e=>/^[A-Za-z][A-Za-z0-9_]*$/g.test(e),not:Zr},nu={exports:{}};!function(e){function t(e,t){for(var n=e.toString();n.length-1?s:c,l=n(u.getHours()),f=n(u.getMinutes()),d=n(u.getSeconds()),D=t(u.getMilliseconds(),3),p=function(e){var t=Math.abs(e),n=String(Math.floor(t/60)),r=String(t%60);return n=("0"+n).slice(-2),r=("0"+r).slice(-2),0===e?"Z":(e<0?"+":"-")+n+":"+r}(u.getTimezoneOffset());return r.replace(/dd/g,o).replace(/MM/g,i).replace(/y{1,4}/g,a).replace(/hh/g,l).replace(/mm/g,f).replace(/ss/g,d).replace(/SSS/g,D).replace(/O/g,p)}function u(e,t,n,r){e["set"+(r?"":"UTC")+t](n)}e.exports=r,e.exports.asString=r,e.exports.parse=function(t,n,r){if(!t)throw new Error("pattern must be supplied");return function(t,n,r){var o=t.indexOf("O")<0,i=!1,s=[{pattern:/y{1,4}/,regexp:"\\d{1,4}",fn:function(e,t){u(e,"FullYear",t,o)}},{pattern:/MM/,regexp:"\\d{1,2}",fn:function(e,t){u(e,"Month",t-1,o),e.getMonth()!==t-1&&(i=!0)}},{pattern:/dd/,regexp:"\\d{1,2}",fn:function(e,t){i&&u(e,"Month",e.getMonth()-1,o),u(e,"Date",t,o)}},{pattern:/hh/,regexp:"\\d{1,2}",fn:function(e,t){u(e,"Hours",t,o)}},{pattern:/mm/,regexp:"\\d\\d",fn:function(e,t){u(e,"Minutes",t,o)}},{pattern:/ss/,regexp:"\\d\\d",fn:function(e,t){u(e,"Seconds",t,o)}},{pattern:/SSS/,regexp:"\\d\\d\\d",fn:function(e,t){u(e,"Milliseconds",t,o)}},{pattern:/O/,regexp:"[+-]\\d{1,2}:?\\d{2}?|Z",fn:function(e,t){t="Z"===t?0:t.replace(":","");var n=Math.abs(t),r=(t>0?-1:1)*(n%100+60*Math.floor(n/100));e.setUTCMinutes(e.getUTCMinutes()+r)}}],c=s.reduce((function(e,t){return t.pattern.test(e.regexp)?(t.index=e.regexp.match(t.pattern).index,e.regexp=e.regexp.replace(t.pattern,"("+t.regexp+")")):t.index=-1,e}),{regexp:t,index:[]}),a=s.filter((function(e){return e.index>-1}));a.sort((function(e,t){return e.index-t.index}));var l=new RegExp(c.regexp).exec(n);if(l){var f=r||e.exports.now();return a.forEach((function(e,t){e.fn(f,l[t+1])})),f}throw new Error("String '"+n+"' could not be parsed as '"+t+"'")}(t,n,r)},e.exports.now=function(){return new Date},e.exports.ISO8601_FORMAT="yyyy-MM-ddThh:mm:ss.SSS",e.exports.ISO8601_WITH_TZ_OFFSET_FORMAT="yyyy-MM-ddThh:mm:ss.SSSO",e.exports.DATETIME_FORMAT="dd MM yyyy hh:mm:ss.SSS",e.exports.ABSOLUTETIME_FORMAT="hh:mm:ss.SSS"}(nu);const ru=nu.exports,uu=E.default,ou=F.default,iu=p.default,su={bold:[1,22],italic:[3,23],underline:[4,24],inverse:[7,27],white:[37,39],grey:[90,39],black:[90,39],blue:[34,39],cyan:[36,39],green:[32,39],magenta:[35,39],red:[91,39],yellow:[33,39]};function cu(e){return e?`[${su[e][0]}m`:""}function au(e){return e?`[${su[e][1]}m`:""}function lu(e,t){return n=ou.format("[%s] [%s] %s - ",ru.asString(e.startTime),e.level.toString(),e.categoryName),cu(r=t)+n+au(r);var n,r}function fu(e){return lu(e)+ou.format(...e.data)}function du(e){return lu(e,e.level.colour)+ou.format(...e.data)}function Du(e){return ou.format(...e.data)}function pu(e){return e.data[0]}function Eu(e,t){const n=/%(-?[0-9]+)?(\.?-?[0-9]+)?([[\]cdhmnprzxXyflos%])(\{([^}]+)\})?|([^%]+)/;function r(e){return e&&e.pid?e.pid.toString():process.pid.toString()}e=e||"%r %p %c - %m%n";const u={c:function(e,t){let n=e.categoryName;if(t){const e=parseInt(t,10),r=n.split(".");ee&&(n=r.slice(-e).join(iu.sep))}return n},l:function(e){return e.lineNumber?`${e.lineNumber}`:""},o:function(e){return e.columnNumber?`${e.columnNumber}`:""},s:function(e){return e.callStack||""}};function o(e,t,n){return u[e](t,n)}function i(e,t,n){let r=e;return r=function(e,t){let n;return e?(n=parseInt(e.substr(1),10),n>0?t.slice(0,n):t.slice(n)):t}(t,r),r=function(e,t){let n;if(e)if("-"===e.charAt(0))for(n=parseInt(e.substr(1),10);t.lengthDu,basic:()=>fu,colored:()=>du,coloured:()=>du,pattern:e=>Eu(e&&e.pattern,e&&e.tokens),dummy:()=>pu};var hu={basicLayout:fu,messagePassThroughLayout:Du,patternLayout:Eu,colouredLayout:du,coloredLayout:du,dummyLayout:pu,addLayout(e,t){mu[e]=t},layout:(e,t)=>mu[e]&&mu[e](t)};const yu=tu,Cu=["white","grey","black","blue","cyan","green","magenta","red","yellow"];class Fu{constructor(e,t,n){this.level=e,this.levelStr=t,this.colour=n}toString(){return this.levelStr}static getLevel(e,t){return e?e instanceof Fu?e:(e instanceof Object&&e.levelStr&&(e=e.levelStr),Fu[e.toString().toUpperCase()]||t):t}static addLevels(e){if(e){Object.keys(e).forEach((t=>{const n=t.toUpperCase();Fu[n]=new Fu(e[t].value,n,e[t].colour);const r=Fu.levels.findIndex((e=>e.levelStr===n));r>-1?Fu.levels[r]=Fu[n]:Fu.levels.push(Fu[n])})),Fu.levels.sort(((e,t)=>e.level-t.level))}}isLessThanOrEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level<=e.level}isGreaterThanOrEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level>=e.level}isEqualTo(e){return"string"==typeof e&&(e=Fu.getLevel(e)),this.level===e.level}}Fu.levels=[],Fu.addLevels({ALL:{value:Number.MIN_VALUE,colour:"grey"},TRACE:{value:5e3,colour:"blue"},DEBUG:{value:1e4,colour:"cyan"},INFO:{value:2e4,colour:"green"},WARN:{value:3e4,colour:"yellow"},ERROR:{value:4e4,colour:"red"},FATAL:{value:5e4,colour:"magenta"},MARK:{value:9007199254740992,colour:"grey"},OFF:{value:Number.MAX_VALUE,colour:"grey"}}),yu.addListener((e=>{const t=e.levels;if(t){yu.throwExceptionIf(e,yu.not(yu.anObject(t)),"levels must be an object");Object.keys(t).forEach((n=>{yu.throwExceptionIf(e,yu.not(yu.validIdentifier(n)),`level name "${n}" is not a valid identifier (must start with a letter, only contain A-Z,a-z,0-9,_)`),yu.throwExceptionIf(e,yu.not(yu.anObject(t[n])),`level "${n}" must be an object`),yu.throwExceptionIf(e,yu.not(t[n].value),`level "${n}" must have a 'value' property`),yu.throwExceptionIf(e,yu.not(yu.anInteger(t[n].value)),`level "${n}".value must have an integer value`),yu.throwExceptionIf(e,yu.not(t[n].colour),`level "${n}" must have a 'colour' property`),yu.throwExceptionIf(e,yu.not(Cu.indexOf(t[n].colour)>-1),`level "${n}".colour must be one of ${Cu.join(", ")}`)}))}})),yu.addListener((e=>{Fu.addLevels(e.levels)}));var gu=Fu,Au={exports:{}},vu={};/*! (c) 2020 Andrea Giammarchi */ +const{parse:Su,stringify:wu}=JSON,{keys:Ou}=Object,bu=String,_u="string",Bu={},Pu="object",ku=(e,t)=>t,xu=e=>e instanceof bu?bu(e):e,Nu=(e,t)=>typeof t===_u?new bu(t):t,Iu=(e,t,n,r)=>{const u=[];for(let o=Ou(n),{length:i}=o,s=0;s{const r=bu(t.push(n)-1);return e.set(n,r),r},Ru=(e,t)=>{const n=Su(e,Nu).map(xu),r=n[0],u=t||ku,o=typeof r===Pu&&r?Iu(n,new Set,r,u):r;return u.call({"":o},"",o)};vu.parse=Ru;const Mu=(e,t,n)=>{const r=t&&typeof t===Pu?(e,n)=>""===e||-1Su(Mu(e));vu.fromJSON=e=>Ru(wu(e));const Lu=vu,ju=gu;class $u{constructor(e,t,n,r,u){this.startTime=new Date,this.categoryName=e,this.data=n,this.level=t,this.context=Object.assign({},r),this.pid=process.pid,u&&(this.functionName=u.functionName,this.fileName=u.fileName,this.lineNumber=u.lineNumber,this.columnNumber=u.columnNumber,this.callStack=u.callStack)}serialise(){const e=this.data.map((e=>(e&&e.message&&e.stack&&(e=Object.assign({message:e.message,stack:e.stack},e)),e)));return this.data=e,Lu.stringify(this)}static deserialise(e){let t;try{const n=Lu.parse(e);n.data=n.data.map((e=>{if(e&&e.message&&e.stack){const t=new Error(e);Object.keys(e).forEach((n=>{t[n]=e[n]})),e=t}return e})),t=new $u(n.categoryName,ju.getLevel(n.level.levelStr),n.data,n.context),t.startTime=new Date(n.startTime),t.pid=n.pid,t.cluster=n.cluster}catch(n){t=new $u("log4js",ju.ERROR,["Unable to parse log:",e,"because: ",n])}return t}}var Hu=$u;const Ju=Nr.exports("log4js:clustering"),Gu=Hu,Vu=tu;let Uu=!1,Wu=null;try{Wu=require("cluster")}catch(e){Ju("cluster module not present"),Uu=!0}const zu=[];let Ku=!1,qu="NODE_APP_INSTANCE";const Yu=()=>Ku&&"0"===process.env[qu],Xu=()=>Uu||Wu.isMaster||Yu(),Zu=e=>{zu.forEach((t=>t(e)))},Qu=(e,t)=>{if(Ju("cluster message received from worker ",e,": ",t),e.topic&&e.data&&(t=e,e=void 0),t&&t.topic&&"log4js:message"===t.topic){Ju("received message: ",t.data);const e=Gu.deserialise(t.data);Zu(e)}};Uu||Vu.addListener((e=>{zu.length=0,({pm2:Ku,disableClustering:Uu,pm2InstanceVar:qu="NODE_APP_INSTANCE"}=e),Ju(`clustering disabled ? ${Uu}`),Ju(`cluster.isMaster ? ${Wu&&Wu.isMaster}`),Ju(`pm2 enabled ? ${Ku}`),Ju(`pm2InstanceVar = ${qu}`),Ju(`process.env[${qu}] = ${process.env[qu]}`),Ku&&process.removeListener("message",Qu),Wu&&Wu.removeListener&&Wu.removeListener("message",Qu),Uu||e.disableClustering?Ju("Not listening for cluster messages, because clustering disabled."):Yu()?(Ju("listening for PM2 broadcast messages"),process.on("message",Qu)):Wu.isMaster?(Ju("listening for cluster messages"),Wu.on("message",Qu)):Ju("not listening for messages, because we are not a master process")}));var eo={onlyOnMaster:(e,t)=>Xu()?e():t,isMaster:Xu,send:e=>{Xu()?Zu(e):(Ku||(e.cluster={workerId:Wu.worker.id,worker:process.pid}),process.send({topic:"log4js:message",data:e.serialise()}))},onMessage:e=>{zu.push(e)}},to={};function no(e){if("number"==typeof e&&Number.isInteger(e))return e;const t={K:1024,M:1048576,G:1073741824},n=Object.keys(t),r=e.substr(e.length-1).toLocaleUpperCase(),u=e.substring(0,e.length-1).trim();if(n.indexOf(r)<0||!Number.isInteger(Number(u)))throw Error(`maxLogSize: "${e}" is invalid`);return u*t[r]}function ro(e){return function(e,t){const n=Object.assign({},t);return Object.keys(e).forEach((r=>{n[r]&&(n[r]=e[r](t[r]))})),n}({maxLogSize:no},e)}const uo={file:ro,fileSync:ro};to.modifyConfig=e=>uo[e.type]?uo[e.type](e):e;var oo={};const io=console.log.bind(console);oo.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{io(e(n,t))}}(n,e.timezoneOffset)};var so={};so.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{process.stdout.write(`${e(n,t)}\n`)}}(n,e.timezoneOffset)};var co={};co.configure=function(e,t){let n=t.colouredLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){return n=>{process.stderr.write(`${e(n,t)}\n`)}}(n,e.timezoneOffset)};var ao={};ao.configure=function(e,t,n,r){const u=n(e.appender);return function(e,t,n,r){const u=r.getLevel(e),o=r.getLevel(t,r.FATAL);return e=>{const t=e.level;t.isGreaterThanOrEqualTo(u)&&t.isLessThanOrEqualTo(o)&&n(e)}}(e.level,e.maxLevel,u,r)};var lo={};const fo=Nr.exports("log4js:categoryFilter");lo.configure=function(e,t,n){const r=n(e.appender);return function(e,t){return"string"==typeof e&&(e=[e]),n=>{fo(`Checking ${n.categoryName} against ${e}`),-1===e.indexOf(n.categoryName)&&(fo("Not excluded, sending to appender"),t(n))}}(e.exclude,r)};var Do={};const po=Nr.exports("log4js:noLogFilter");Do.configure=function(e,t,n){const r=n(e.appender);return function(e,t){return n=>{po(`Checking data: ${n.data} against filters: ${e}`),"string"==typeof e&&(e=[e]),e=e.filter((e=>null!=e&&""!==e));const r=new RegExp(e.join("|"),"i");(0===e.length||n.data.findIndex((e=>r.test(e)))<0)&&(po("Not excluded, sending to appender"),t(n))}}(e.exclude,r)};var Eo={},mo={exports:{}},ho={},yo={fromCallback:function(e){return Object.defineProperty((function(){if("function"!=typeof arguments[arguments.length-1])return new Promise(((t,n)=>{arguments[arguments.length]=(e,r)=>{if(e)return n(e);t(r)},arguments.length++,e.apply(this,arguments)}));e.apply(this,arguments)}),"name",{value:e.name})},fromPromise:function(e){return Object.defineProperty((function(){const t=arguments[arguments.length-1];if("function"!=typeof t)return e.apply(this,arguments);e.apply(this,arguments).then((e=>t(null,e)),t)}),"name",{value:e.name})}};!function(e){const t=yo.fromCallback,n=we,r=["access","appendFile","chmod","chown","close","copyFile","fchmod","fchown","fdatasync","fstat","fsync","ftruncate","futimes","lchown","lchmod","link","lstat","mkdir","mkdtemp","open","readFile","readdir","readlink","realpath","rename","rmdir","stat","symlink","truncate","unlink","utimes","writeFile"].filter((e=>"function"==typeof n[e]));Object.keys(n).forEach((t=>{"promises"!==t&&(e[t]=n[t])})),r.forEach((r=>{e[r]=t(n[r])})),e.exists=function(e,t){return"function"==typeof t?n.exists(e,t):new Promise((t=>n.exists(e,t)))},e.read=function(e,t,r,u,o,i){return"function"==typeof i?n.read(e,t,r,u,o,i):new Promise(((i,s)=>{n.read(e,t,r,u,o,((e,t,n)=>{if(e)return s(e);i({bytesRead:t,buffer:n})}))}))},e.write=function(e,t,...r){return"function"==typeof r[r.length-1]?n.write(e,t,...r):new Promise(((u,o)=>{n.write(e,t,...r,((e,t,n)=>{if(e)return o(e);u({bytesWritten:t,buffer:n})}))}))},"function"==typeof n.realpath.native&&(e.realpath.native=t(n.realpath.native))}(ho);const Co=p.default;function Fo(e){return(e=Co.normalize(Co.resolve(e)).split(Co.sep)).length>0?e[0]:null}const go=/[<>:"|?*]/;var Ao=function(e){const t=Fo(e);return e=e.replace(t,""),go.test(e)};const vo=we,So=p.default,wo=Ao,Oo=parseInt("0777",8);var bo=function e(t,n,r,u){if("function"==typeof n?(r=n,n={}):n&&"object"==typeof n||(n={mode:n}),"win32"===process.platform&&wo(t)){const e=new Error(t+" contains invalid WIN32 path characters.");return e.code="EINVAL",r(e)}let o=n.mode;const i=n.fs||vo;void 0===o&&(o=Oo&~process.umask()),u||(u=null),r=r||function(){},t=So.resolve(t),i.mkdir(t,o,(o=>{if(!o)return r(null,u=u||t);if("ENOENT"===o.code){if(So.dirname(t)===t)return r(o);e(So.dirname(t),n,((u,o)=>{u?r(u,o):e(t,n,r,o)}))}else i.stat(t,((e,t)=>{e||!t.isDirectory()?r(o,u):r(null,u)}))}))};const _o=we,Bo=p.default,Po=Ao,ko=parseInt("0777",8);var xo=function e(t,n,r){n&&"object"==typeof n||(n={mode:n});let u=n.mode;const o=n.fs||_o;if("win32"===process.platform&&Po(t)){const e=new Error(t+" contains invalid WIN32 path characters.");throw e.code="EINVAL",e}void 0===u&&(u=ko&~process.umask()),r||(r=null),t=Bo.resolve(t);try{o.mkdirSync(t,u),r=r||t}catch(u){if("ENOENT"===u.code){if(Bo.dirname(t)===t)throw u;r=e(Bo.dirname(t),n,r),e(t,n,r)}else{let e;try{e=o.statSync(t)}catch(e){throw u}if(!e.isDirectory())throw u}}return r};const No=(0,yo.fromCallback)(bo);var Io={mkdirs:No,mkdirsSync:xo,mkdirp:No,mkdirpSync:xo,ensureDir:No,ensureDirSync:xo};const To=we;E.default,p.default;var Ro=function(e,t,n,r){To.open(e,"r+",((e,u)=>{if(e)return r(e);To.futimes(u,t,n,(e=>{To.close(u,(t=>{r&&r(e||t)}))}))}))},Mo=function(e,t,n){const r=To.openSync(e,"r+");return To.futimesSync(r,t,n),To.closeSync(r)};const Lo=we,jo=p.default,$o=10,Ho=5,Jo=0,Go=process.versions.node.split("."),Vo=Number.parseInt(Go[0],10),Uo=Number.parseInt(Go[1],10),Wo=Number.parseInt(Go[2],10);function zo(){if(Vo>$o)return!0;if(Vo===$o){if(Uo>Ho)return!0;if(Uo===Ho&&Wo>=Jo)return!0}return!1}function Ko(e,t){const n=jo.resolve(e).split(jo.sep).filter((e=>e)),r=jo.resolve(t).split(jo.sep).filter((e=>e));return n.reduce(((e,t,n)=>e&&r[n]===t),!0)}function qo(e,t,n){return`Cannot ${n} '${e}' to a subdirectory of itself, '${t}'.`}var Yo,Xo,Zo={checkPaths:function(e,t,n,r){!function(e,t,n){zo()?Lo.stat(e,{bigint:!0},((e,r)=>{if(e)return n(e);Lo.stat(t,{bigint:!0},((e,t)=>e?"ENOENT"===e.code?n(null,{srcStat:r,destStat:null}):n(e):n(null,{srcStat:r,destStat:t})))})):Lo.stat(e,((e,r)=>{if(e)return n(e);Lo.stat(t,((e,t)=>e?"ENOENT"===e.code?n(null,{srcStat:r,destStat:null}):n(e):n(null,{srcStat:r,destStat:t})))}))}(e,t,((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;return s&&s.ino&&s.dev&&s.ino===i.ino&&s.dev===i.dev?r(new Error("Source and destination must not be the same.")):i.isDirectory()&&Ko(e,t)?r(new Error(qo(e,t,n))):r(null,{srcStat:i,destStat:s})}))},checkPathsSync:function(e,t,n){const{srcStat:r,destStat:u}=function(e,t){let n,r;n=zo()?Lo.statSync(e,{bigint:!0}):Lo.statSync(e);try{r=zo()?Lo.statSync(t,{bigint:!0}):Lo.statSync(t)}catch(e){if("ENOENT"===e.code)return{srcStat:n,destStat:null};throw e}return{srcStat:n,destStat:r}}(e,t);if(u&&u.ino&&u.dev&&u.ino===r.ino&&u.dev===r.dev)throw new Error("Source and destination must not be the same.");if(r.isDirectory()&&Ko(e,t))throw new Error(qo(e,t,n));return{srcStat:r,destStat:u}},checkParentPaths:function e(t,n,r,u,o){const i=jo.resolve(jo.dirname(t)),s=jo.resolve(jo.dirname(r));if(s===i||s===jo.parse(s).root)return o();zo()?Lo.stat(s,{bigint:!0},((i,c)=>i?"ENOENT"===i.code?o():o(i):c.ino&&c.dev&&c.ino===n.ino&&c.dev===n.dev?o(new Error(qo(t,r,u))):e(t,n,s,u,o))):Lo.stat(s,((i,c)=>i?"ENOENT"===i.code?o():o(i):c.ino&&c.dev&&c.ino===n.ino&&c.dev===n.dev?o(new Error(qo(t,r,u))):e(t,n,s,u,o)))},checkParentPathsSync:function e(t,n,r,u){const o=jo.resolve(jo.dirname(t)),i=jo.resolve(jo.dirname(r));if(i===o||i===jo.parse(i).root)return;let s;try{s=zo()?Lo.statSync(i,{bigint:!0}):Lo.statSync(i)}catch(e){if("ENOENT"===e.code)return;throw e}if(s.ino&&s.dev&&s.ino===n.ino&&s.dev===n.dev)throw new Error(qo(t,r,u));return e(t,n,i,u)},isSrcSubdir:Ko};const Qo=we,ei=p.default,ti=Io.mkdirsSync,ni=Mo,ri=Zo;function ui(e,t,n,r){if(!r.filter||r.filter(t,n))return function(e,t,n,r){const u=r.dereference?Qo.statSync:Qo.lstatSync,o=u(t);if(o.isDirectory())return function(e,t,n,r,u){if(!t)return function(e,t,n,r){return Qo.mkdirSync(n),ii(t,n,r),Qo.chmodSync(n,e.mode)}(e,n,r,u);if(t&&!t.isDirectory())throw new Error(`Cannot overwrite non-directory '${r}' with directory '${n}'.`);return ii(n,r,u)}(o,e,t,n,r);if(o.isFile()||o.isCharacterDevice()||o.isBlockDevice())return function(e,t,n,r,u){return t?function(e,t,n,r){if(r.overwrite)return Qo.unlinkSync(n),oi(e,t,n,r);if(r.errorOnExist)throw new Error(`'${n}' already exists`)}(e,n,r,u):oi(e,n,r,u)}(o,e,t,n,r);if(o.isSymbolicLink())return function(e,t,n,r){let u=Qo.readlinkSync(t);r.dereference&&(u=ei.resolve(process.cwd(),u));if(e){let e;try{e=Qo.readlinkSync(n)}catch(e){if("EINVAL"===e.code||"UNKNOWN"===e.code)return Qo.symlinkSync(u,n);throw e}if(r.dereference&&(e=ei.resolve(process.cwd(),e)),ri.isSrcSubdir(u,e))throw new Error(`Cannot copy '${u}' to a subdirectory of itself, '${e}'.`);if(Qo.statSync(n).isDirectory()&&ri.isSrcSubdir(e,u))throw new Error(`Cannot overwrite '${e}' with '${u}'.`);return function(e,t){return Qo.unlinkSync(t),Qo.symlinkSync(e,t)}(u,n)}return Qo.symlinkSync(u,n)}(e,t,n,r)}(e,t,n,r)}function oi(e,t,n,r){return"function"==typeof Qo.copyFileSync?(Qo.copyFileSync(t,n),Qo.chmodSync(n,e.mode),r.preserveTimestamps?ni(n,e.atime,e.mtime):void 0):function(e,t,n,r){const u=65536,o=(Xo?Yo:(Xo=1,Yo=function(e){if("function"==typeof Buffer.allocUnsafe)try{return Buffer.allocUnsafe(e)}catch(t){return new Buffer(e)}return new Buffer(e)}))(u),i=Qo.openSync(t,"r"),s=Qo.openSync(n,"w",e.mode);let c=0;for(;cfunction(e,t,n,r){const u=ei.join(t,e),o=ei.join(n,e),{destStat:i}=ri.checkPathsSync(u,o,"copy");return ui(i,u,o,r)}(r,e,t,n)))}var si=function(e,t,n){"function"==typeof n&&(n={filter:n}),(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269");const{srcStat:r,destStat:u}=ri.checkPathsSync(e,t,"copy");return ri.checkParentPathsSync(e,r,t,"copy"),function(e,t,n,r){if(r.filter&&!r.filter(t,n))return;const u=ei.dirname(n);Qo.existsSync(u)||ti(u);return ui(e,t,n,r)}(u,e,t,n)},ci={copySync:si};const ai=yo.fromPromise,li=ho;var fi={pathExists:ai((function(e){return li.access(e).then((()=>!0)).catch((()=>!1))})),pathExistsSync:li.existsSync};const di=we,Di=p.default,pi=Io.mkdirs,Ei=fi.pathExists,mi=Ro,hi=Zo;function yi(e,t,n,r,u){const o=Di.dirname(n);Ei(o,((i,s)=>i?u(i):s?Fi(e,t,n,r,u):void pi(o,(o=>o?u(o):Fi(e,t,n,r,u)))))}function Ci(e,t,n,r,u,o){Promise.resolve(u.filter(n,r)).then((i=>i?e(t,n,r,u,o):o()),(e=>o(e)))}function Fi(e,t,n,r,u){return r.filter?Ci(gi,e,t,n,r,u):gi(e,t,n,r,u)}function gi(e,t,n,r,u){(r.dereference?di.stat:di.lstat)(t,((o,i)=>o?u(o):i.isDirectory()?function(e,t,n,r,u,o){if(!t)return function(e,t,n,r,u){di.mkdir(n,(o=>{if(o)return u(o);Si(t,n,r,(t=>t?u(t):di.chmod(n,e.mode,u)))}))}(e,n,r,u,o);if(t&&!t.isDirectory())return o(new Error(`Cannot overwrite non-directory '${r}' with directory '${n}'.`));return Si(n,r,u,o)}(i,e,t,n,r,u):i.isFile()||i.isCharacterDevice()||i.isBlockDevice()?function(e,t,n,r,u,o){return t?function(e,t,n,r,u){if(!r.overwrite)return r.errorOnExist?u(new Error(`'${n}' already exists`)):u();di.unlink(n,(o=>o?u(o):Ai(e,t,n,r,u)))}(e,n,r,u,o):Ai(e,n,r,u,o)}(i,e,t,n,r,u):i.isSymbolicLink()?function(e,t,n,r,u){di.readlink(t,((t,o)=>t?u(t):(r.dereference&&(o=Di.resolve(process.cwd(),o)),e?void di.readlink(n,((t,i)=>t?"EINVAL"===t.code||"UNKNOWN"===t.code?di.symlink(o,n,u):u(t):(r.dereference&&(i=Di.resolve(process.cwd(),i)),hi.isSrcSubdir(o,i)?u(new Error(`Cannot copy '${o}' to a subdirectory of itself, '${i}'.`)):e.isDirectory()&&hi.isSrcSubdir(i,o)?u(new Error(`Cannot overwrite '${i}' with '${o}'.`)):function(e,t,n){di.unlink(t,(r=>r?n(r):di.symlink(e,t,n)))}(o,n,u)))):di.symlink(o,n,u))))}(e,t,n,r,u):void 0))}function Ai(e,t,n,r,u){return"function"==typeof di.copyFile?di.copyFile(t,n,(t=>t?u(t):vi(e,n,r,u))):function(e,t,n,r,u){const o=di.createReadStream(t);o.on("error",(e=>u(e))).once("open",(()=>{const t=di.createWriteStream(n,{mode:e.mode});t.on("error",(e=>u(e))).on("open",(()=>o.pipe(t))).once("close",(()=>vi(e,n,r,u)))}))}(e,t,n,r,u)}function vi(e,t,n,r){di.chmod(t,e.mode,(u=>u?r(u):n.preserveTimestamps?mi(t,e.atime,e.mtime,r):r()))}function Si(e,t,n,r){di.readdir(e,((u,o)=>u?r(u):wi(o,e,t,n,r)))}function wi(e,t,n,r,u){const o=e.pop();return o?function(e,t,n,r,u,o){const i=Di.join(n,t),s=Di.join(r,t);hi.checkPaths(i,s,"copy",((t,c)=>{if(t)return o(t);const{destStat:a}=c;Fi(a,i,s,u,(t=>t?o(t):wi(e,n,r,u,o)))}))}(e,o,t,n,r,u):u()}var Oi=function(e,t,n,r){"function"!=typeof n||r?"function"==typeof n&&(n={filter:n}):(r=n,n={}),r=r||function(){},(n=n||{}).clobber=!("clobber"in n)||!!n.clobber,n.overwrite="overwrite"in n?!!n.overwrite:n.clobber,n.preserveTimestamps&&"ia32"===process.arch&&console.warn("fs-extra: Using the preserveTimestamps option in 32-bit node is not recommended;\n\n see https://github.com/jprichardson/node-fs-extra/issues/269"),hi.checkPaths(e,t,"copy",((u,o)=>{if(u)return r(u);const{srcStat:i,destStat:s}=o;hi.checkParentPaths(e,i,t,"copy",(u=>u?r(u):n.filter?Ci(yi,s,e,t,n,r):yi(s,e,t,n,r)))}))};var bi={copy:(0,yo.fromCallback)(Oi)};const _i=we,Bi=p.default,Pi=g.default,ki="win32"===process.platform;function xi(e){["unlink","chmod","stat","lstat","rmdir","readdir"].forEach((t=>{e[t]=e[t]||_i[t],e[t+="Sync"]=e[t]||_i[t]})),e.maxBusyTries=e.maxBusyTries||3}function Ni(e,t,n){let r=0;"function"==typeof t&&(n=t,t={}),Pi(e,"rimraf: missing path"),Pi.strictEqual(typeof e,"string","rimraf: path should be a string"),Pi.strictEqual(typeof n,"function","rimraf: callback function required"),Pi(t,"rimraf: invalid options argument provided"),Pi.strictEqual(typeof t,"object","rimraf: options should be object"),xi(t),Ii(e,t,(function u(o){if(o){if(("EBUSY"===o.code||"ENOTEMPTY"===o.code||"EPERM"===o.code)&&rIi(e,t,u)),100*r)}"ENOENT"===o.code&&(o=null)}n(o)}))}function Ii(e,t,n){Pi(e),Pi(t),Pi("function"==typeof n),t.lstat(e,((r,u)=>r&&"ENOENT"===r.code?n(null):r&&"EPERM"===r.code&&ki?Ti(e,t,r,n):u&&u.isDirectory()?Mi(e,t,r,n):void t.unlink(e,(r=>{if(r){if("ENOENT"===r.code)return n(null);if("EPERM"===r.code)return ki?Ti(e,t,r,n):Mi(e,t,r,n);if("EISDIR"===r.code)return Mi(e,t,r,n)}return n(r)}))))}function Ti(e,t,n,r){Pi(e),Pi(t),Pi("function"==typeof r),n&&Pi(n instanceof Error),t.chmod(e,438,(u=>{u?r("ENOENT"===u.code?null:n):t.stat(e,((u,o)=>{u?r("ENOENT"===u.code?null:n):o.isDirectory()?Mi(e,t,n,r):t.unlink(e,r)}))}))}function Ri(e,t,n){let r;Pi(e),Pi(t),n&&Pi(n instanceof Error);try{t.chmodSync(e,438)}catch(e){if("ENOENT"===e.code)return;throw n}try{r=t.statSync(e)}catch(e){if("ENOENT"===e.code)return;throw n}r.isDirectory()?ji(e,t,n):t.unlinkSync(e)}function Mi(e,t,n,r){Pi(e),Pi(t),n&&Pi(n instanceof Error),Pi("function"==typeof r),t.rmdir(e,(u=>{!u||"ENOTEMPTY"!==u.code&&"EEXIST"!==u.code&&"EPERM"!==u.code?u&&"ENOTDIR"===u.code?r(n):r(u):function(e,t,n){Pi(e),Pi(t),Pi("function"==typeof n),t.readdir(e,((r,u)=>{if(r)return n(r);let o,i=u.length;if(0===i)return t.rmdir(e,n);u.forEach((r=>{Ni(Bi.join(e,r),t,(r=>{if(!o)return r?n(o=r):void(0==--i&&t.rmdir(e,n))}))}))}))}(e,t,r)}))}function Li(e,t){let n;xi(t=t||{}),Pi(e,"rimraf: missing path"),Pi.strictEqual(typeof e,"string","rimraf: path should be a string"),Pi(t,"rimraf: missing options"),Pi.strictEqual(typeof t,"object","rimraf: options should be object");try{n=t.lstatSync(e)}catch(n){if("ENOENT"===n.code)return;"EPERM"===n.code&&ki&&Ri(e,t,n)}try{n&&n.isDirectory()?ji(e,t,null):t.unlinkSync(e)}catch(n){if("ENOENT"===n.code)return;if("EPERM"===n.code)return ki?Ri(e,t,n):ji(e,t,n);if("EISDIR"!==n.code)throw n;ji(e,t,n)}}function ji(e,t,n){Pi(e),Pi(t),n&&Pi(n instanceof Error);try{t.rmdirSync(e)}catch(r){if("ENOTDIR"===r.code)throw n;if("ENOTEMPTY"===r.code||"EEXIST"===r.code||"EPERM"===r.code)!function(e,t){if(Pi(e),Pi(t),t.readdirSync(e).forEach((n=>Li(Bi.join(e,n),t))),!ki){return t.rmdirSync(e,t)}{const n=Date.now();do{try{return t.rmdirSync(e,t)}catch(e){}}while(Date.now()-n<500)}}(e,t);else if("ENOENT"!==r.code)throw r}}var $i=Ni;Ni.sync=Li;const Hi=$i;var Ji={remove:(0,yo.fromCallback)(Hi),removeSync:Hi.sync};const Gi=yo.fromCallback,Vi=we,Ui=p.default,Wi=Io,zi=Ji,Ki=Gi((function(e,t){t=t||function(){},Vi.readdir(e,((n,r)=>{if(n)return Wi.mkdirs(e,t);r=r.map((t=>Ui.join(e,t))),function e(){const n=r.pop();if(!n)return t();zi.remove(n,(n=>{if(n)return t(n);e()}))}()}))}));function qi(e){let t;try{t=Vi.readdirSync(e)}catch(t){return Wi.mkdirsSync(e)}t.forEach((t=>{t=Ui.join(e,t),zi.removeSync(t)}))}var Yi={emptyDirSync:qi,emptydirSync:qi,emptyDir:Ki,emptydir:Ki};const Xi=yo.fromCallback,Zi=p.default,Qi=we,es=Io,ts=fi.pathExists;var ns={createFile:Xi((function(e,t){function n(){Qi.writeFile(e,"",(e=>{if(e)return t(e);t()}))}Qi.stat(e,((r,u)=>{if(!r&&u.isFile())return t();const o=Zi.dirname(e);ts(o,((e,r)=>e?t(e):r?n():void es.mkdirs(o,(e=>{if(e)return t(e);n()}))))}))})),createFileSync:function(e){let t;try{t=Qi.statSync(e)}catch(e){}if(t&&t.isFile())return;const n=Zi.dirname(e);Qi.existsSync(n)||es.mkdirsSync(n),Qi.writeFileSync(e,"")}};const rs=yo.fromCallback,us=p.default,os=we,is=Io,ss=fi.pathExists;var cs={createLink:rs((function(e,t,n){function r(e,t){os.link(e,t,(e=>{if(e)return n(e);n(null)}))}ss(t,((u,o)=>u?n(u):o?n(null):void os.lstat(e,(u=>{if(u)return u.message=u.message.replace("lstat","ensureLink"),n(u);const o=us.dirname(t);ss(o,((u,i)=>u?n(u):i?r(e,t):void is.mkdirs(o,(u=>{if(u)return n(u);r(e,t)}))))}))))})),createLinkSync:function(e,t){if(os.existsSync(t))return;try{os.lstatSync(e)}catch(e){throw e.message=e.message.replace("lstat","ensureLink"),e}const n=us.dirname(t);return os.existsSync(n)||is.mkdirsSync(n),os.linkSync(e,t)}};const as=p.default,ls=we,fs=fi.pathExists;var ds={symlinkPaths:function(e,t,n){if(as.isAbsolute(e))return ls.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:e})));{const r=as.dirname(t),u=as.join(r,e);return fs(u,((t,o)=>t?n(t):o?n(null,{toCwd:u,toDst:e}):ls.lstat(e,(t=>t?(t.message=t.message.replace("lstat","ensureSymlink"),n(t)):n(null,{toCwd:e,toDst:as.relative(r,e)})))))}},symlinkPathsSync:function(e,t){let n;if(as.isAbsolute(e)){if(n=ls.existsSync(e),!n)throw new Error("absolute srcpath does not exist");return{toCwd:e,toDst:e}}{const r=as.dirname(t),u=as.join(r,e);if(n=ls.existsSync(u),n)return{toCwd:u,toDst:e};if(n=ls.existsSync(e),!n)throw new Error("relative srcpath does not exist");return{toCwd:e,toDst:as.relative(r,e)}}}};const Ds=we;var ps={symlinkType:function(e,t,n){if(n="function"==typeof t?t:n,t="function"!=typeof t&&t)return n(null,t);Ds.lstat(e,((e,r)=>{if(e)return n(null,"file");t=r&&r.isDirectory()?"dir":"file",n(null,t)}))},symlinkTypeSync:function(e,t){let n;if(t)return t;try{n=Ds.lstatSync(e)}catch(e){return"file"}return n&&n.isDirectory()?"dir":"file"}};const Es=yo.fromCallback,ms=p.default,hs=we,ys=Io.mkdirs,Cs=Io.mkdirsSync,Fs=ds.symlinkPaths,gs=ds.symlinkPathsSync,As=ps.symlinkType,vs=ps.symlinkTypeSync,Ss=fi.pathExists;var ws={createSymlink:Es((function(e,t,n,r){r="function"==typeof n?n:r,n="function"!=typeof n&&n,Ss(t,((u,o)=>u?r(u):o?r(null):void Fs(e,t,((u,o)=>{if(u)return r(u);e=o.toDst,As(o.toCwd,n,((n,u)=>{if(n)return r(n);const o=ms.dirname(t);Ss(o,((n,i)=>n?r(n):i?hs.symlink(e,t,u,r):void ys(o,(n=>{if(n)return r(n);hs.symlink(e,t,u,r)}))))}))}))))})),createSymlinkSync:function(e,t,n){if(hs.existsSync(t))return;const r=gs(e,t);e=r.toDst,n=vs(r.toCwd,n);const u=ms.dirname(t);return hs.existsSync(u)||Cs(u),hs.symlinkSync(e,t,n)}};var Os,bs={createFile:ns.createFile,createFileSync:ns.createFileSync,ensureFile:ns.createFile,ensureFileSync:ns.createFileSync,createLink:cs.createLink,createLinkSync:cs.createLinkSync,ensureLink:cs.createLink,ensureLinkSync:cs.createLinkSync,createSymlink:ws.createSymlink,createSymlinkSync:ws.createSymlinkSync,ensureSymlink:ws.createSymlink,ensureSymlinkSync:ws.createSymlinkSync};try{Os=we}catch(e){Os=D.default}function _s(e,t){var n,r="\n";return"object"==typeof t&&null!==t&&(t.spaces&&(n=t.spaces),t.EOL&&(r=t.EOL)),JSON.stringify(e,t?t.replacer:null,n).replace(/\n/g,r)+r}function Bs(e){return Buffer.isBuffer(e)&&(e=e.toString("utf8")),e=e.replace(/^\uFEFF/,"")}var Ps={readFile:function(e,t,n){null==n&&(n=t,t={}),"string"==typeof t&&(t={encoding:t});var r=(t=t||{}).fs||Os,u=!0;"throws"in t&&(u=t.throws),r.readFile(e,t,(function(r,o){if(r)return n(r);var i;o=Bs(o);try{i=JSON.parse(o,t?t.reviver:null)}catch(t){return u?(t.message=e+": "+t.message,n(t)):n(null,null)}n(null,i)}))},readFileSync:function(e,t){"string"==typeof(t=t||{})&&(t={encoding:t});var n=t.fs||Os,r=!0;"throws"in t&&(r=t.throws);try{var u=n.readFileSync(e,t);return u=Bs(u),JSON.parse(u,t.reviver)}catch(t){if(r)throw t.message=e+": "+t.message,t;return null}},writeFile:function(e,t,n,r){null==r&&(r=n,n={});var u=(n=n||{}).fs||Os,o="";try{o=_s(t,n)}catch(e){return void(r&&r(e,null))}u.writeFile(e,o,n,r)},writeFileSync:function(e,t,n){var r=(n=n||{}).fs||Os,u=_s(t,n);return r.writeFileSync(e,u,n)}},ks=Ps;const xs=yo.fromCallback,Ns=ks;var Is={readJson:xs(Ns.readFile),readJsonSync:Ns.readFileSync,writeJson:xs(Ns.writeFile),writeJsonSync:Ns.writeFileSync};const Ts=p.default,Rs=Io,Ms=fi.pathExists,Ls=Is;var js=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=Ts.dirname(e);Ms(u,((o,i)=>o?r(o):i?Ls.writeJson(e,t,n,r):void Rs.mkdirs(u,(u=>{if(u)return r(u);Ls.writeJson(e,t,n,r)}))))};const $s=we,Hs=p.default,Js=Io,Gs=Is;var Vs=function(e,t,n){const r=Hs.dirname(e);$s.existsSync(r)||Js.mkdirsSync(r),Gs.writeJsonSync(e,t,n)};const Us=yo.fromCallback,Ws=Is;Ws.outputJson=Us(js),Ws.outputJsonSync=Vs,Ws.outputJSON=Ws.outputJson,Ws.outputJSONSync=Ws.outputJsonSync,Ws.writeJSON=Ws.writeJson,Ws.writeJSONSync=Ws.writeJsonSync,Ws.readJSON=Ws.readJson,Ws.readJSONSync=Ws.readJsonSync;var zs=Ws;const Ks=we,qs=p.default,Ys=ci.copySync,Xs=Ji.removeSync,Zs=Io.mkdirpSync,Qs=Zo;function ec(e,t,n){try{Ks.renameSync(e,t)}catch(r){if("EXDEV"!==r.code)throw r;return function(e,t,n){const r={overwrite:n,errorOnExist:!0};return Ys(e,t,r),Xs(e)}(e,t,n)}}var tc=function(e,t,n){const r=(n=n||{}).overwrite||n.clobber||!1,{srcStat:u}=Qs.checkPathsSync(e,t,"move");return Qs.checkParentPathsSync(e,u,t,"move"),Zs(qs.dirname(t)),function(e,t,n){if(n)return Xs(t),ec(e,t,n);if(Ks.existsSync(t))throw new Error("dest already exists.");return ec(e,t,n)}(e,t,r)},nc={moveSync:tc};const rc=we,uc=p.default,oc=bi.copy,ic=Ji.remove,sc=Io.mkdirp,cc=fi.pathExists,ac=Zo;function lc(e,t,n,r){rc.rename(e,t,(u=>u?"EXDEV"!==u.code?r(u):function(e,t,n,r){const u={overwrite:n,errorOnExist:!0};oc(e,t,u,(t=>t?r(t):ic(e,r)))}(e,t,n,r):r()))}var fc=function(e,t,n,r){"function"==typeof n&&(r=n,n={});const u=n.overwrite||n.clobber||!1;ac.checkPaths(e,t,"move",((n,o)=>{if(n)return r(n);const{srcStat:i}=o;ac.checkParentPaths(e,i,t,"move",(n=>{if(n)return r(n);sc(uc.dirname(t),(n=>n?r(n):function(e,t,n,r){if(n)return ic(t,(u=>u?r(u):lc(e,t,n,r)));cc(t,((u,o)=>u?r(u):o?r(new Error("dest already exists.")):lc(e,t,n,r)))}(e,t,u,r)))}))}))};var dc={move:(0,yo.fromCallback)(fc)};const Dc=yo.fromCallback,pc=we,Ec=p.default,mc=Io,hc=fi.pathExists;var yc={outputFile:Dc((function(e,t,n,r){"function"==typeof n&&(r=n,n="utf8");const u=Ec.dirname(e);hc(u,((o,i)=>o?r(o):i?pc.writeFile(e,t,n,r):void mc.mkdirs(u,(u=>{if(u)return r(u);pc.writeFile(e,t,n,r)}))))})),outputFileSync:function(e,...t){const n=Ec.dirname(e);if(pc.existsSync(n))return pc.writeFileSync(e,...t);mc.mkdirsSync(n),pc.writeFileSync(e,...t)}};!function(e){e.exports=Object.assign({},ho,ci,bi,Yi,bs,zs,Io,nc,dc,yc,fi,Ji);const t=D.default;Object.getOwnPropertyDescriptor(t,"promises")&&Object.defineProperty(e.exports,"promises",{get:()=>t.promises})}(mo);const Cc=Nr.exports("streamroller:fileNameFormatter"),Fc=p.default;const gc=Nr.exports("streamroller:fileNameParser"),Ac=nu.exports;const vc=Nr.exports("streamroller:moveAndMaybeCompressFile"),Sc=mo.exports,wc=v.default;var Oc=async(e,t,n)=>{if(n=function(e){const t={mode:parseInt("0600",8),compress:!1},n=Object.assign({},t,e);return vc(`_parseOption: moveAndMaybeCompressFile called with option=${JSON.stringify(n)}`),n}(n),e!==t){if(await Sc.pathExists(e))if(vc(`moveAndMaybeCompressFile: moving file from ${e} to ${t} ${n.compress?"with":"without"} compress`),n.compress)await new Promise(((r,u)=>{let o=!1;const i=Sc.createWriteStream(t,{mode:n.mode,flags:"wx"}).on("open",(()=>{o=!0;const t=Sc.createReadStream(e).on("open",(()=>{t.pipe(wc.createGzip()).pipe(i)})).on("error",(t=>{vc(`moveAndMaybeCompressFile: error reading ${e}`,t),i.destroy(t)}))})).on("finish",(()=>{vc(`moveAndMaybeCompressFile: finished compressing ${t}, deleting ${e}`),Sc.unlink(e).then(r).catch((t=>{vc(`moveAndMaybeCompressFile: error deleting ${e}, truncating instead`,t),Sc.truncate(e).then(r).catch((t=>{vc(`moveAndMaybeCompressFile: error truncating ${e}`,t),u(t)}))}))})).on("error",(e=>{o?(vc(`moveAndMaybeCompressFile: error writing ${t}, deleting`,e),Sc.unlink(t).then((()=>{u(e)})).catch((e=>{vc(`moveAndMaybeCompressFile: error deleting ${t}`,e),u(e)}))):(vc(`moveAndMaybeCompressFile: error creating ${t}`,e),u(e))}))})).catch((()=>{}));else{vc(`moveAndMaybeCompressFile: renaming ${e} to ${t}`);try{await Sc.move(e,t,{overwrite:!0})}catch(n){if(vc(`moveAndMaybeCompressFile: error renaming ${e} to ${t}`,n),"ENOENT"!==n.code){vc("moveAndMaybeCompressFile: trying copy+truncate instead");try{await Sc.copy(e,t,{overwrite:!0}),await Sc.truncate(e)}catch(e){vc("moveAndMaybeCompressFile: error copy+truncate",e)}}}}}else vc("moveAndMaybeCompressFile: source and target are the same, not doing anything")};const bc=Nr.exports("streamroller:RollingFileWriteStream"),_c=mo.exports,Bc=p.default,Pc=E.default,kc=()=>new Date,xc=nu.exports,{Writable:Nc}=C.default,Ic=({file:e,keepFileExt:t,needsIndex:n,alwaysIncludeDate:r,compress:u,fileNameSep:o})=>{let i=o||".";const s=Fc.join(e.dir,e.name),c=t=>t+e.ext,a=(e,t,r)=>!n&&r||!t?e:e+i+t,l=(e,t,n)=>(t>0||r)&&n?e+i+n:e,f=(e,t)=>t&&u?e+".gz":e,d=t?[l,a,c,f]:[c,l,a,f];return({date:e,index:t})=>(Cc(`_formatFileName: date=${e}, index=${t}`),d.reduce(((n,r)=>r(n,t,e)),s))},Tc=({file:e,keepFileExt:t,pattern:n,fileNameSep:r})=>{let u=r||".";const o="__NOT_MATCHING__";let i=[(e,t)=>e.endsWith(".gz")?(gc("it is gzipped"),t.isCompressed=!0,e.slice(0,-1*".gz".length)):e,t?t=>t.startsWith(e.name)&&t.endsWith(e.ext)?(gc("it starts and ends with the right things"),t.slice(e.name.length+1,-1*e.ext.length)):o:t=>t.startsWith(e.base)?(gc("it starts with the right things"),t.slice(e.base.length+1)):o,n?(e,t)=>{const r=e.split(u);let o=r[r.length-1];gc("items: ",r,", indexStr: ",o);let i=e;void 0!==o&&o.match(/^\d+$/)?(i=e.slice(0,-1*(o.length+1)),gc(`dateStr is ${i}`),n&&!i&&(i=o,o="0")):o="0";try{const r=Ac.parse(n,i,new Date(0,0));return Ac.asString(n,r)!==i?e:(t.index=parseInt(o,10),t.date=i,t.timestamp=r.getTime(),"")}catch(t){return gc(`Problem parsing ${i} as ${n}, error was: `,t),e}}:(e,t)=>e.match(/^\d+$/)?(gc("it has an index"),t.index=parseInt(e,10),""):e];return e=>{let t={filename:e,index:0,isCompressed:!1};return i.reduce(((e,n)=>n(e,t)),e)?null:t}},Rc=Oc;var Mc=class extends Nc{constructor(e,t){if(bc(`constructor: creating RollingFileWriteStream. path=${e}`),"string"!=typeof e||0===e.length)throw new Error(`Invalid filename: ${e}`);if(e.endsWith(Bc.sep))throw new Error(`Filename is a directory: ${e}`);0===e.indexOf(`~${Bc.sep}`)&&(e=e.replace("~",Pc.homedir())),super(t),this.options=this._parseOption(t),this.fileObject=Bc.parse(e),""===this.fileObject.dir&&(this.fileObject=Bc.parse(Bc.join(process.cwd(),e))),this.fileFormatter=Ic({file:this.fileObject,alwaysIncludeDate:this.options.alwaysIncludePattern,needsIndex:this.options.maxSize 0`)}else delete n.maxSize;if(n.numBackups||0===n.numBackups){if(n.numBackups<0)throw new Error(`options.numBackups (${n.numBackups}) should be >= 0`);if(n.numBackups>=Number.MAX_SAFE_INTEGER)throw new Error(`options.numBackups (${n.numBackups}) should be < Number.MAX_SAFE_INTEGER`);n.numToKeep=n.numBackups+1}else if(n.numToKeep<=0)throw new Error(`options.numToKeep (${n.numToKeep}) should be > 0`);return bc(`_parseOption: creating stream with option=${JSON.stringify(n)}`),n}_final(e){this.currentFileStream.end("",this.options.encoding,e)}_write(e,t,n){this._shouldRoll().then((()=>{bc(`_write: writing chunk. file=${this.currentFileStream.path} state=${JSON.stringify(this.state)} chunk=${e}`),this.currentFileStream.write(e,t,(t=>{this.state.currentSize+=e.length,n(t)}))}))}async _shouldRoll(){(this._dateChanged()||this._tooBig())&&(bc(`_shouldRoll: rolling because dateChanged? ${this._dateChanged()} or tooBig? ${this._tooBig()}`),await this._roll())}_dateChanged(){return this.state.currentDate&&this.state.currentDate!==xc(this.options.pattern,kc())}_tooBig(){return this.state.currentSize>=this.options.maxSize}_roll(){return bc("_roll: closing the current stream"),new Promise(((e,t)=>{this.currentFileStream.end("",this.options.encoding,(()=>{this._moveOldFiles().then(e).catch(t)}))}))}async _moveOldFiles(){const e=await this._getExistingFiles();for(let t=(this.state.currentDate?e.filter((e=>e.date===this.state.currentDate)):e).length;t>=0;t--){bc(`_moveOldFiles: i = ${t}`);const e=this.fileFormatter({date:this.state.currentDate,index:t}),n=this.fileFormatter({date:this.state.currentDate,index:t+1}),r={compress:this.options.compress&&0===t,mode:this.options.mode};await Rc(e,n,r)}this.state.currentSize=0,this.state.currentDate=this.state.currentDate?xc(this.options.pattern,kc()):null,bc(`_moveOldFiles: finished rolling files. state=${JSON.stringify(this.state)}`),this._renewWriteStream(),await new Promise(((e,t)=>{this.currentFileStream.write("","utf8",(()=>{this._clean().then(e).catch(t)}))}))}async _getExistingFiles(){const e=await _c.readdir(this.fileObject.dir).catch((()=>[]));bc(`_getExistingFiles: files=${e}`);const t=e.map((e=>this.fileNameParser(e))).filter((e=>e)),n=e=>(e.timestamp?e.timestamp:kc().getTime())-e.index;return t.sort(((e,t)=>n(e)-n(t))),t}_renewWriteStream(){const e=this.fileFormatter({date:this.state.currentDate,index:0}),t=e=>{try{return _c.mkdirSync(e,{recursive:!0})}catch(n){if("ENOENT"===n.code)return t(Bc.dirname(e)),t(e);if("EEXIST"!==n.code&&"EROFS"!==n.code)throw n;try{if(_c.statSync(e).isDirectory())return e;throw n}catch(e){throw n}}};t(this.fileObject.dir);const n={flags:this.options.flags,encoding:this.options.encoding,mode:this.options.mode};var r,u;_c.appendFileSync(e,"",(r={...n},u="flags",r["flag"]=r[u],delete r[u],r)),this.currentFileStream=_c.createWriteStream(e,n),this.currentFileStream.on("error",(e=>{this.emit("error",e)}))}async _clean(){const e=await this._getExistingFiles();if(bc(`_clean: numToKeep = ${this.options.numToKeep}, existingFiles = ${e.length}`),bc("_clean: existing files are: ",e),this._tooManyFiles(e.length)){const n=e.slice(0,e.length-this.options.numToKeep).map((e=>Bc.format({dir:this.fileObject.dir,base:e.filename})));await(t=n,bc(`deleteFiles: files to delete: ${t}`),Promise.all(t.map((e=>_c.unlink(e).catch((t=>{bc(`deleteFiles: error when unlinking ${e}, ignoring. Error was ${t}`)}))))))}var t}_tooManyFiles(e){return this.options.numToKeep>0&&e>this.options.numToKeep}};const Lc=Mc;var jc=class extends Lc{constructor(e,t,n,r){r||(r={}),t&&(r.maxSize=t),r.numBackups||0===r.numBackups||(n||0===n||(n=1),r.numBackups=n),super(e,r),this.backups=r.numBackups,this.size=this.options.maxSize}get theStream(){return this.currentFileStream}};const $c=Mc;var Hc={RollingFileWriteStream:Mc,RollingFileStream:jc,DateRollingFileStream:class extends $c{constructor(e,t,n){t&&"object"==typeof t&&(n=t,t=null),n||(n={}),t||(t="yyyy-MM-dd"),n.pattern=t,n.numBackups||0===n.numBackups?n.daysToKeep=n.numBackups:(n.daysToKeep||0===n.daysToKeep?process.emitWarning("options.daysToKeep is deprecated due to the confusion it causes when used together with file size rolling. Please use options.numBackups instead.","DeprecationWarning","streamroller-DEP0001"):n.daysToKeep=1,n.numBackups=n.daysToKeep),super(e,n),this.mode=this.options.mode}get theStream(){return this.currentFileStream}}};const Jc=Nr.exports("log4js:file"),Gc=p.default,Vc=Hc,Uc=E.default.EOL;let Wc=!1;const zc=new Set;function Kc(){zc.forEach((e=>{e.sighupHandler()}))}function qc(e,t,n,r){const u=new Vc.RollingFileStream(e,t,n,r);return u.on("error",(t=>{console.error("log4js.fileAppender - Writing to file %s, error happened ",e,t)})),u.on("drain",(()=>{process.emit("log4js:pause",!1)})),u}Eo.configure=function(e,t){let n=t.basicLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),e.mode=e.mode||384,function(e,t,n,r,u,o){e=Gc.normalize(e),Jc("Creating file appender (",e,", ",n,", ",r=r||0===r?r:5,", ",u,", ",o,")");let i=qc(e,n,r,u);const s=function(e){if(i.writable){if(!0===u.removeColor){const t=/\x1b[[0-9;]*m/g;e.data=e.data.map((e=>"string"==typeof e?e.replace(t,""):e))}i.write(t(e,o)+Uc,"utf8")||process.emit("log4js:pause",!0)}};return s.reopen=function(){i.end((()=>{i=qc(e,n,r,u)}))},s.sighupHandler=function(){Jc("SIGHUP handler called."),s.reopen()},s.shutdown=function(e){zc.delete(s),0===zc.size&&Wc&&(process.removeListener("SIGHUP",Kc),Wc=!1),i.end("","utf-8",e)},zc.add(s),Wc||(process.on("SIGHUP",Kc),Wc=!0),s}(e.filename,n,e.maxLogSize,e.backups,e,e.timezoneOffset)};var Yc={};const Xc=Hc,Zc=E.default.EOL;function Qc(e,t,n,r,u){r.maxSize=r.maxLogSize;const o=function(e,t,n){const r=new Xc.DateRollingFileStream(e,t,n);return r.on("error",(t=>{console.error("log4js.dateFileAppender - Writing to file %s, error happened ",e,t)})),r.on("drain",(()=>{process.emit("log4js:pause",!1)})),r}(e,t,r),i=function(e){o.writable&&(o.write(n(e,u)+Zc,"utf8")||process.emit("log4js:pause",!0))};return i.shutdown=function(e){o.end("","utf-8",e)},i}Yc.configure=function(e,t){let n=t.basicLayout;return e.layout&&(n=t.layout(e.layout.type,e.layout)),e.alwaysIncludePattern||(e.alwaysIncludePattern=!1),e.mode=e.mode||384,Qc(e.filename,e.pattern,n,e,e.timezoneOffset)};var ea={};const ta=Nr.exports("log4js:fileSync"),na=p.default,ra=D.default,ua=E.default.EOL||"\n";function oa(e,t){if(ra.existsSync(e))return;const n=ra.openSync(e,t.flags,t.mode);ra.closeSync(n)}class ia{constructor(e,t,n,r){ta("In RollingFileStream"),function(){if(!e||!t||t<=0)throw new Error("You must specify a filename and file size")}(),this.filename=e,this.size=t,this.backups=n,this.options=r,this.currentSize=0,this.currentSize=function(e){let t=0;try{t=ra.statSync(e).size}catch(t){oa(e,r)}return t}(this.filename)}shouldRoll(){return ta("should roll with current size %d, and max size %d",this.currentSize,this.size),this.currentSize>=this.size}roll(e){const t=this,n=new RegExp(`^${na.basename(e)}`);function r(e){return n.test(e)}function u(t){return parseInt(t.substring(`${na.basename(e)}.`.length),10)||0}function o(e,t){return u(e)>u(t)?1:u(e) ${e}.${r+1}`),ra.renameSync(na.join(na.dirname(e),n),`${e}.${r+1}`)}}ta("Rolling, rolling, rolling"),ta("Renaming the old files"),ra.readdirSync(na.dirname(e)).filter(r).sort(o).reverse().forEach(i)}write(e,t){const n=this;ta("in write"),this.shouldRoll()&&(this.currentSize=0,this.roll(this.filename)),ta("writing the chunk to the file"),n.currentSize+=e.length,ra.appendFileSync(n.filename,e)}}ea.configure=function(e,t){let n=t.basicLayout;e.layout&&(n=t.layout(e.layout.type,e.layout));const r={flags:e.flags||"a",encoding:e.encoding||"utf8",mode:e.mode||384};return function(e,t,n,r,u,o){ta("fileSync appender created");const i=function(e,t,n){let r;var u;return t?r=new ia(e,t,n,o):(oa(u=e,o),r={write(e){ra.appendFileSync(u,e)}}),r}(e=na.normalize(e),n,r=r||0===r?r:5);return e=>{i.write(t(e,u)+ua)}}(e.filename,n,e.maxLogSize,e.backups,e.timezoneOffset,r)};var sa={};const ca=Nr.exports("log4js:tcp"),aa=S.default;sa.configure=function(e,t){ca(`configure with config = ${e}`);let n=function(e){return e.serialise()};return e.layout&&(n=t.layout(e.layout.type,e.layout)),function(e,t){let n=!1;const r=[];let u,o=3,i="__LOG4JS__";function s(e){ca("Writing log event to socket"),n=u.write(`${t(e)}${i}`,"utf8")}function c(){let e;for(ca("emptying buffer");e=r.shift();)s(e)}function a(e){n?s(e):(ca("buffering log event because it cannot write at the moment"),r.push(e))}return function t(){ca(`appender creating socket to ${e.host||"localhost"}:${e.port||5e3}`),i=`${e.endMsg||"__LOG4JS__"}`,u=aa.createConnection(e.port||5e3,e.host||"localhost"),u.on("connect",(()=>{ca("socket connected"),c(),n=!0})),u.on("drain",(()=>{ca("drain event received, emptying buffer"),n=!0,c()})),u.on("timeout",u.end.bind(u)),u.on("error",(e=>{ca("connection error",e),n=!1,c()})),u.on("close",t)}(),a.shutdown=function(e){ca("shutdown called"),r.length&&o?(ca("buffer has items, waiting 100ms to empty"),o-=1,setTimeout((()=>{a.shutdown(e)}),100)):(u.removeAllListeners("close"),u.end(e))},a}(e,n)};const la=p.default,fa=Nr.exports("log4js:appenders"),da=tu,Da=eo,pa=gu,Ea=hu,ma=to,ha=new Map;ha.set("console",oo),ha.set("stdout",so),ha.set("stderr",co),ha.set("logLevelFilter",ao),ha.set("categoryFilter",lo),ha.set("noLogFilter",Do),ha.set("file",Eo),ha.set("dateFile",Yc),ha.set("fileSync",ea),ha.set("tcp",sa);const ya=new Map,Ca=(e,t)=>{fa("Loading module from ",e);try{return require(e)}catch(n){return void da.throwExceptionIf(t,"MODULE_NOT_FOUND"!==n.code,`appender "${e}" could not be loaded (error was: ${n})`)}},Fa=new Set,ga=(e,t)=>{if(ya.has(e))return ya.get(e);if(!t.appenders[e])return!1;if(Fa.has(e))throw new Error(`Dependency loop detected for appender ${e}.`);Fa.add(e),fa(`Creating appender ${e}`);const n=Aa(e,t);return Fa.delete(e),ya.set(e,n),n},Aa=(e,t)=>{const n=t.appenders[e],r=n.type.configure?n.type:((e,t)=>ha.get(e)||Ca(`./${e}`,t)||Ca(e,t)||require.main&&Ca(la.join(la.dirname(require.main.filename),e),t)||Ca(la.join(process.cwd(),e),t))(n.type,t);return da.throwExceptionIf(t,da.not(r),`appender "${e}" is not valid (type "${n.type}" could not be found)`),r.appender&&fa(`DEPRECATION: Appender ${n.type} exports an appender function.`),r.shutdown&&fa(`DEPRECATION: Appender ${n.type} exports a shutdown function.`),fa(`${e}: clustering.isMaster ? ${Da.isMaster()}`),fa(`${e}: appenderModule is ${F.default.inspect(r)}`),Da.onlyOnMaster((()=>(fa(`calling appenderModule.configure for ${e} / ${n.type}`),r.configure(ma.modifyConfig(n),Ea,(e=>ga(e,t)),pa))),(()=>{}))},va=e=>{ya.clear(),Fa.clear();const t=[];Object.values(e.categories).forEach((e=>{t.push(...e.appenders)})),Object.keys(e.appenders).forEach((n=>{(t.includes(n)||"tcp-server"===e.appenders[n].type)&&ga(n,e)}))},Sa=()=>{va({appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"trace"}}})};Sa(),da.addListener((e=>{da.throwExceptionIf(e,da.not(da.anObject(e.appenders)),'must have a property "appenders" of type object.');const t=Object.keys(e.appenders);da.throwExceptionIf(e,da.not(t.length),"must define at least one appender."),t.forEach((t=>{da.throwExceptionIf(e,da.not(e.appenders[t].type),`appender "${t}" is not valid (must be an object with property "type")`)}))})),da.addListener(va),Au.exports=ya,Au.exports.init=Sa;var wa={exports:{}};!function(e){const t=Nr.exports("log4js:categories"),n=tu,r=gu,u=Au.exports,o=new Map;function i(e,t,n){if(!1===t.inherit)return;const r=n.lastIndexOf(".");if(r<0)return;const u=n.substring(0,r);let o=e.categories[u];o||(o={inherit:!0,appenders:[]}),i(e,o,u),!e.categories[u]&&o.appenders&&o.appenders.length&&o.level&&(e.categories[u]=o),t.appenders=t.appenders||[],t.level=t.level||o.level,o.appenders.forEach((e=>{t.appenders.includes(e)||t.appenders.push(e)})),t.parent=o}function s(e){if(!e.categories)return;Object.keys(e.categories).forEach((t=>{const n=e.categories[t];i(e,n,t)}))}n.addPreProcessingListener((e=>s(e))),n.addListener((e=>{n.throwExceptionIf(e,n.not(n.anObject(e.categories)),'must have a property "categories" of type object.');const t=Object.keys(e.categories);n.throwExceptionIf(e,n.not(t.length),"must define at least one category."),t.forEach((t=>{const o=e.categories[t];n.throwExceptionIf(e,[n.not(o.appenders),n.not(o.level)],`category "${t}" is not valid (must be an object with properties "appenders" and "level")`),n.throwExceptionIf(e,n.not(Array.isArray(o.appenders)),`category "${t}" is not valid (appenders must be an array of appender names)`),n.throwExceptionIf(e,n.not(o.appenders.length),`category "${t}" is not valid (appenders must contain at least one appender name)`),Object.prototype.hasOwnProperty.call(o,"enableCallStack")&&n.throwExceptionIf(e,"boolean"!=typeof o.enableCallStack,`category "${t}" is not valid (enableCallStack must be boolean type)`),o.appenders.forEach((r=>{n.throwExceptionIf(e,n.not(u.get(r)),`category "${t}" is not valid (appender "${r}" is not defined)`)})),n.throwExceptionIf(e,n.not(r.getLevel(o.level)),`category "${t}" is not valid (level "${o.level}" not recognised; valid levels are ${r.levels.join(", ")})`)})),n.throwExceptionIf(e,n.not(e.categories.default),'must define a "default" category.')}));const c=e=>{o.clear();Object.keys(e.categories).forEach((n=>{const i=e.categories[n],s=[];i.appenders.forEach((e=>{s.push(u.get(e)),t(`Creating category ${n}`),o.set(n,{appenders:s,level:r.getLevel(i.level),enableCallStack:i.enableCallStack||!1})}))}))},a=()=>{c({categories:{default:{appenders:["out"],level:"OFF"}}})};a(),n.addListener(c);const l=e=>(t(`configForCategory: searching for config for ${e}`),o.has(e)?(t(`configForCategory: ${e} exists in config, returning it`),o.get(e)):e.indexOf(".")>0?(t(`configForCategory: ${e} has hierarchy, searching for parents`),l(e.substring(0,e.lastIndexOf(".")))):(t("configForCategory: returning config for default category"),l("default")));e.exports=o,e.exports=Object.assign(e.exports,{appendersForCategory:e=>l(e).appenders,getLevelForCategory:e=>l(e).level,setLevelForCategory:(e,n)=>{let r=o.get(e);if(t(`setLevelForCategory: found ${r} for ${e}`),!r){const n=l(e);t(`setLevelForCategory: no config found for category, found ${n} for parents of ${e}`),r={appenders:n.appenders}}r.level=n,o.set(e,r)},getEnableCallStackForCategory:e=>!0===l(e).enableCallStack,setEnableCallStackForCategory:(e,t)=>{l(e).enableCallStack=t},init:a})}(wa);const Oa=Nr.exports("log4js:logger"),ba=Hu,_a=gu,Ba=eo,Pa=wa.exports,ka=tu,xa=/at (?:(.+)\s+\()?(?:(.+?):(\d+)(?::(\d+))?|([^)]+))\)?/;function Na(e,t=4){const n=e.stack.split("\n").slice(t),r=xa.exec(n[0]);return r&&6===r.length?{functionName:r[1],fileName:r[2],lineNumber:parseInt(r[3],10),columnNumber:parseInt(r[4],10),callStack:n.join("\n")}:null}class Ia{constructor(e){if(!e)throw new Error("No category provided.");this.category=e,this.context={},this.parseCallStack=Na,Oa(`Logger created (${this.category}, ${this.level})`)}get level(){return _a.getLevel(Pa.getLevelForCategory(this.category),_a.TRACE)}set level(e){Pa.setLevelForCategory(this.category,_a.getLevel(e,this.level))}get useCallStack(){return Pa.getEnableCallStackForCategory(this.category)}set useCallStack(e){Pa.setEnableCallStackForCategory(this.category,!0===e)}log(e,...t){let n=_a.getLevel(e);n||(this._log(_a.WARN,"log4js:logger.log: invalid value for log-level as first parameter given: ",e),n=_a.INFO),this.isLevelEnabled(n)&&this._log(n,t)}isLevelEnabled(e){return this.level.isLessThanOrEqualTo(e)}_log(e,t){Oa(`sending log data (${e}) to appenders`);const n=new ba(this.category,e,t,this.context,this.useCallStack&&this.parseCallStack(new Error));Ba.send(n)}addContext(e,t){this.context[e]=t}removeContext(e){delete this.context[e]}clearContext(){this.context={}}setParseCallStackFunction(e){this.parseCallStack=e}}function Ta(e){const t=_a.getLevel(e),n=t.toString().toLowerCase().replace(/_([a-z])/g,(e=>e[1].toUpperCase())),r=n[0].toUpperCase()+n.slice(1);Ia.prototype[`is${r}Enabled`]=function(){return this.isLevelEnabled(t)},Ia.prototype[n]=function(...e){this.log(t,...e)}}_a.levels.forEach(Ta),ka.addListener((()=>{_a.levels.forEach(Ta)}));var Ra=Ia;const Ma=gu;function La(e){return e.originalUrl||e.url}function ja(e,t){for(let n=0;ne.source?e.source:e));t=new RegExp(n.join("|"))}return t}(t.nolog);return(e,i,s)=>{if(e._logging)return s();if(o&&o.test(e.originalUrl))return s();if(n.isLevelEnabled(r)||"auto"===t.level){const o=new Date,{writeHead:s}=i;e._logging=!0,i.writeHead=(e,t)=>{i.writeHead=s,i.writeHead(e,t),i.__statusCode=e,i.__headers=t||{}},i.on("finish",(()=>{i.responseTime=new Date-o,i.statusCode&&"auto"===t.level&&(r=Ma.INFO,i.statusCode>=300&&(r=Ma.WARN),i.statusCode>=400&&(r=Ma.ERROR)),r=function(e,t,n){let r=t;if(n){const t=n.find((t=>{let n=!1;return n=t.from&&t.to?e>=t.from&&e<=t.to:-1!==t.codes.indexOf(e),n}));t&&(r=Ma.getLevel(t.level,r))}return r}(i.statusCode,r,t.statusRules);const s=function(e,t,n){const r=[];return r.push({token:":url",replacement:La(e)}),r.push({token:":protocol",replacement:e.protocol}),r.push({token:":hostname",replacement:e.hostname}),r.push({token:":method",replacement:e.method}),r.push({token:":status",replacement:t.__statusCode||t.statusCode}),r.push({token:":response-time",replacement:t.responseTime}),r.push({token:":date",replacement:(new Date).toUTCString()}),r.push({token:":referrer",replacement:e.headers.referer||e.headers.referrer||""}),r.push({token:":http-version",replacement:`${e.httpVersionMajor}.${e.httpVersionMinor}`}),r.push({token:":remote-addr",replacement:e.headers["x-forwarded-for"]||e.ip||e._remoteAddress||e.socket&&(e.socket.remoteAddress||e.socket.socket&&e.socket.socket.remoteAddress)}),r.push({token:":user-agent",replacement:e.headers["user-agent"]}),r.push({token:":content-length",replacement:t.getHeader("content-length")||t.__headers&&t.__headers["Content-Length"]||"-"}),r.push({token:/:req\[([^\]]+)]/g,replacement:(t,n)=>e.headers[n.toLowerCase()]}),r.push({token:/:res\[([^\]]+)]/g,replacement:(e,n)=>t.getHeader(n.toLowerCase())||t.__headers&&t.__headers[n]}),(e=>{const t=e.concat();for(let e=0;eja(e,s)));t&&n.log(r,t)}else n.log(r,ja(u,s));t.context&&n.removeContext("res")}))}return s()}},nl=Va;let rl=!1;function ul(e){if(!rl)return;Ua("Received log event ",e);Za.appendersForCategory(e.categoryName).forEach((t=>{t(e)}))}function ol(e){rl&&il();let t=e;return"string"==typeof t&&(t=function(e){Ua(`Loading configuration from ${e}`);try{return JSON.parse(Wa.readFileSync(e,"utf8"))}catch(t){throw new Error(`Problem reading config from file "${e}". Error was ${t.message}`,t)}}(e)),Ua(`Configuration is ${t}`),Ka.configure(za(t)),el.onMessage(ul),rl=!0,sl}function il(e){Ua("Shutdown called. Disabling all log writing."),rl=!1;const t=Array.from(Xa.values());Xa.init(),Za.init();const n=t.reduceRight(((e,t)=>t.shutdown?e+1:e),0);if(0===n)return Ua("No appenders with shutdown functions found."),void 0!==e&&e();let r,u=0;function o(t){r=r||t,u+=1,Ua(`Appender shutdowns complete: ${u} / ${n}`),u>=n&&(Ua("All shutdown functions completed."),e&&e(r))}return Ua(`Found ${n} appenders with shutdown functions.`),t.filter((e=>e.shutdown)).forEach((e=>e.shutdown(o))),null}const sl={getLogger:function(e){return rl||ol(process.env.LOG4JS_CONFIG||{appenders:{out:{type:"stdout"}},categories:{default:{appenders:["out"],level:"OFF"}}}),new Qa(e||"default")},configure:ol,shutdown:il,connectLogger:tl,levels:Ya,addLayout:qa.addLayout,recording:function(){return nl}};var cl=sl,al={};Object.defineProperty(al,"__esModule",{value:!0}),al.levelMap=al.getLevel=al.setCategoriesLevel=al.getConfiguration=al.setConfiguration=void 0;const ll=cl;let fl={appenders:{debug:{type:"stdout",layout:{type:"pattern",pattern:"[%d] > hvigor %p %c %[%m%]"}},info:{type:"stdout",layout:{type:"pattern",pattern:"[%d] > hvigor %[%m%]"}},"no-pattern-info":{type:"stdout",layout:{type:"pattern",pattern:"%m"}},wrong:{type:"stderr",layout:{type:"pattern",pattern:"[%d] > hvigor %[%p: %m%]"}},"just-debug":{type:"logLevelFilter",appender:"debug",level:"debug",maxLevel:"debug"},"just-info":{type:"logLevelFilter",appender:"info",level:"info",maxLevel:"info"},"just-wrong":{type:"logLevelFilter",appender:"wrong",level:"warn",maxLevel:"error"}},categories:{default:{appenders:["just-debug","just-info","just-wrong"],level:"debug"},"no-pattern-info":{appenders:["no-pattern-info"],level:"info"}}};al.setConfiguration=e=>{fl=e};al.getConfiguration=()=>fl;let dl=ll.levels.DEBUG;al.setCategoriesLevel=(e,t)=>{dl=e;const n=fl.categories;for(const r in n)(null==t?void 0:t.includes(r))||Object.prototype.hasOwnProperty.call(n,r)&&(n[r].level=e.levelStr)};al.getLevel=()=>dl,al.levelMap=new Map([["ALL",ll.levels.ALL],["MARK",ll.levels.MARK],["TRACE",ll.levels.TRACE],["DEBUG",ll.levels.DEBUG],["INFO",ll.levels.INFO],["WARN",ll.levels.WARN],["ERROR",ll.levels.ERROR],["FATAL",ll.levels.FATAL],["OFF",ll.levels.OFF]]);var Dl=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),pl=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),El=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Dl(t,e,n);return pl(t,e),t};Object.defineProperty(xr,"__esModule",{value:!0}),xr.evaluateLogLevel=xr.HvigorLogger=void 0;const ml=El(cl),hl=cl,yl=El(F.default),Cl=al;class Fl{constructor(e){ml.configure((0,Cl.getConfiguration)()),this._logger=ml.getLogger(e),this._logger.level=(0,Cl.getLevel)()}static getLogger(e){return new Fl(e)}log(e,...t){this._logger.log(e,...t)}debug(e,...t){this._logger.debug(e,...t)}info(e,...t){this._logger.info(e,...t)}warn(e,...t){void 0!==e&&""!==e&&this._logger.warn(e,...t)}error(e,...t){this._logger.error(e,...t)}_printTaskExecuteInfo(e,t){this.info(`Finished :${e}... after ${t}`)}_printFailedTaskInfo(e){this.error(`Failed :${e}... `)}_printDisabledTaskInfo(e){this.info(`Disabled :${e}... `)}_printUpToDateTaskInfo(e){this.info(`UP-TO-DATE :${e}... `)}errorMessageExit(e,...t){throw new Error(yl.format(e,...t))}errorExit(e,t,...n){t&&this._logger.error(t,n),this._logger.error(e.stack)}setLevel(e,t){(0,Cl.setCategoriesLevel)(e,t),ml.shutdown(),ml.configure((0,Cl.getConfiguration)())}getLevel(){return this._logger.level}configure(e){const t=(0,Cl.getConfiguration)(),n={appenders:{...t.appenders,...e.appenders},categories:{...t.categories,...e.categories}};(0,Cl.setConfiguration)(n),ml.shutdown(),ml.configure(n)}}xr.HvigorLogger=Fl,xr.evaluateLogLevel=function(e,t){t.debug?e.setLevel(hl.levels.DEBUG):t.warn?e.setLevel(hl.levels.WARN):t.error?e.setLevel(hl.levels.ERROR):e.setLevel(hl.levels.INFO)};var gl=w&&w.__importDefault||function(e){return e&&e.__esModule?e:{default:e}};Object.defineProperty(X,"__esModule",{value:!0}),X.parseJsonText=X.parseJsonFile=void 0;const Al=Z,vl=gl(kr),Sl=gl(p.default),wl=gl(E.default),Ol=xr.HvigorLogger.getLogger("parse-json-util");var bl;!function(e){e[e.Char=0]="Char",e[e.EOF=1]="EOF",e[e.Identifier=2]="Identifier"}(bl||(bl={}));let _l,Bl,Pl,kl,xl,Nl,Il="start",Tl=[],Rl=0,Ml=1,Ll=0,jl=!1,$l="default",Hl="'",Jl=1;function Gl(e,t=!1){Bl=String(e),Il="start",Tl=[],Rl=0,Ml=1,Ll=0,kl=void 0,jl=t;do{_l=Vl(),Xl[Il]()}while("eof"!==_l.type);return kl}function Vl(){for($l="default",xl="",Hl="'",Jl=1;;){Nl=Ul();const e=zl[$l]();if(e)return e}}function Ul(){if(Bl[Rl])return String.fromCodePoint(Bl.codePointAt(Rl))}function Wl(){const e=Ul();return"\n"===e?(Ml++,Ll=0):e?Ll+=e.length:Ll++,e&&(Rl+=e.length),e}X.parseJsonFile=function(e,t=!1,n="utf-8"){const r=vl.default.readFileSync(Sl.default.resolve(e),{encoding:n});try{return Gl(r,t)}catch(t){if(t instanceof SyntaxError){const n=t.message.split("at");2===n.length&&Ol.errorMessageExit(`${n[0].trim()}${wl.default.EOL}\t at ${e}:${n[1].trim()}`)}Ol.errorMessageExit(`${e} is not in valid JSON/JSON5 format.`)}},X.parseJsonText=Gl;const zl={default(){switch(Nl){case"/":return Wl(),void($l="comment");case void 0:return Wl(),Kl("eof")}if(!Al.JudgeUtil.isIgnoreChar(Nl)&&!Al.JudgeUtil.isSpaceSeparator(Nl))return zl[Il]();Wl()},start(){$l="value"},beforePropertyName(){switch(Nl){case"$":case"_":return xl=Wl(),void($l="identifierName");case"\\":return Wl(),void($l="identifierNameStartEscape");case"}":return Kl("punctuator",Wl());case'"':case"'":return Hl=Nl,Wl(),void($l="string")}if(Al.JudgeUtil.isIdStartChar(Nl))return xl+=Wl(),void($l="identifierName");throw tf(bl.Char,Wl())},afterPropertyName(){if(":"===Nl)return Kl("punctuator",Wl());throw tf(bl.Char,Wl())},beforePropertyValue(){$l="value"},afterPropertyValue(){switch(Nl){case",":case"}":return Kl("punctuator",Wl())}throw tf(bl.Char,Wl())},beforeArrayValue(){if("]"===Nl)return Kl("punctuator",Wl());$l="value"},afterArrayValue(){switch(Nl){case",":case"]":return Kl("punctuator",Wl())}throw tf(bl.Char,Wl())},end(){throw tf(bl.Char,Wl())},comment(){switch(Nl){case"*":return Wl(),void($l="multiLineComment");case"/":return Wl(),void($l="singleLineComment")}throw tf(bl.Char,Wl())},multiLineComment(){switch(Nl){case"*":return Wl(),void($l="multiLineCommentAsterisk");case void 0:throw tf(bl.Char,Wl())}Wl()},multiLineCommentAsterisk(){switch(Nl){case"*":return void Wl();case"/":return Wl(),void($l="default");case void 0:throw tf(bl.Char,Wl())}Wl(),$l="multiLineComment"},singleLineComment(){switch(Nl){case"\n":case"\r":case"\u2028":case"\u2029":return Wl(),void($l="default");case void 0:return Wl(),Kl("eof")}Wl()},value(){switch(Nl){case"{":case"[":return Kl("punctuator",Wl());case"n":return Wl(),ql("ull"),Kl("null",null);case"t":return Wl(),ql("rue"),Kl("boolean",!0);case"f":return Wl(),ql("alse"),Kl("boolean",!1);case"-":case"+":return"-"===Wl()&&(Jl=-1),void($l="numerical");case".":case"0":case"I":case"N":return void($l="numerical");case'"':case"'":return Hl=Nl,Wl(),xl="",void($l="string")}if(void 0===Nl||!Al.JudgeUtil.isDigitWithoutZero(Nl))throw tf(bl.Char,Wl());$l="numerical"},numerical(){switch(Nl){case".":return xl=Wl(),void($l="decimalPointLeading");case"0":return xl=Wl(),void($l="zero");case"I":return Wl(),ql("nfinity"),Kl("numeric",Jl*(1/0));case"N":return Wl(),ql("aN"),Kl("numeric",NaN)}if(void 0!==Nl&&Al.JudgeUtil.isDigitWithoutZero(Nl))return xl=Wl(),void($l="decimalInteger");throw tf(bl.Char,Wl())},zero(){switch(Nl){case".":case"e":case"E":return void($l="decimal");case"x":case"X":return xl+=Wl(),void($l="hexadecimal")}return Kl("numeric",0)},decimalInteger(){switch(Nl){case".":case"e":case"E":return void($l="decimal")}if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},decimal(){switch(Nl){case".":xl+=Wl(),$l="decimalFraction";break;case"e":case"E":xl+=Wl(),$l="decimalExponent"}},decimalPointLeading(){if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalFraction");throw tf(bl.Char,Wl())},decimalFraction(){switch(Nl){case"e":case"E":return xl+=Wl(),void($l="decimalExponent")}if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},decimalExponent(){switch(Nl){case"+":case"-":return xl+=Wl(),void($l="decimalExponentSign")}if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalExponentInteger");throw tf(bl.Char,Wl())},decimalExponentSign(){if(Al.JudgeUtil.isDigit(Nl))return xl+=Wl(),void($l="decimalExponentInteger");throw tf(bl.Char,Wl())},decimalExponentInteger(){if(!Al.JudgeUtil.isDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},hexadecimal(){if(Al.JudgeUtil.isHexDigit(Nl))return xl+=Wl(),void($l="hexadecimalInteger");throw tf(bl.Char,Wl())},hexadecimalInteger(){if(!Al.JudgeUtil.isHexDigit(Nl))return Kl("numeric",Jl*Number(xl));xl+=Wl()},identifierNameStartEscape(){if("u"!==Nl)throw tf(bl.Char,Wl());Wl();const e=Yl();switch(e){case"$":case"_":break;default:if(!Al.JudgeUtil.isIdStartChar(e))throw tf(bl.Identifier)}xl+=e,$l="identifierName"},identifierName(){switch(Nl){case"$":case"_":case"‌":case"‍":return void(xl+=Wl());case"\\":return Wl(),void($l="identifierNameEscape")}if(!Al.JudgeUtil.isIdContinueChar(Nl))return Kl("identifier",xl);xl+=Wl()},identifierNameEscape(){if("u"!==Nl)throw tf(bl.Char,Wl());Wl();const e=Yl();switch(e){case"$":case"_":case"‌":case"‍":break;default:if(!Al.JudgeUtil.isIdContinueChar(e))throw tf(bl.Identifier)}xl+=e,$l="identifierName"},string(){switch(Nl){case"\\":return Wl(),void(xl+=function(){const e=Ul(),t=function(){switch(Ul()){case"b":return Wl(),"\b";case"f":return Wl(),"\f";case"n":return Wl(),"\n";case"r":return Wl(),"\r";case"t":return Wl(),"\t";case"v":return Wl(),"\v"}return}();if(t)return t;switch(e){case"0":if(Wl(),Al.JudgeUtil.isDigit(Ul()))throw tf(bl.Char,Wl());return"\0";case"x":return Wl(),function(){let e="",t=Ul();if(!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());if(e+=Wl(),t=Ul(),!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());return e+=Wl(),String.fromCodePoint(parseInt(e,16))}();case"u":return Wl(),Yl();case"\n":case"\u2028":case"\u2029":return Wl(),"";case"\r":return Wl(),"\n"===Ul()&&Wl(),""}if(void 0===e||Al.JudgeUtil.isDigitWithoutZero(e))throw tf(bl.Char,Wl());return Wl()}());case'"':case"'":if(Nl===Hl){const e=Kl("string",xl);return Wl(),e}return void(xl+=Wl());case"\n":case"\r":case void 0:throw tf(bl.Char,Wl());case"\u2028":case"\u2029":!function(e){Ol.warn(`JSON5: '${ef(e)}' in strings is not valid ECMAScript; consider escaping.`)}(Nl)}xl+=Wl()}};function Kl(e,t){return{type:e,value:t,line:Ml,column:Ll}}function ql(e){for(const t of e){if(Ul()!==t)throw tf(bl.Char,Wl());Wl()}}function Yl(){let e="",t=4;for(;t-- >0;){const t=Ul();if(!Al.JudgeUtil.isHexDigit(t))throw tf(bl.Char,Wl());e+=Wl()}return String.fromCodePoint(parseInt(e,16))}const Xl={start(){if("eof"===_l.type)throw tf(bl.EOF);Zl()},beforePropertyName(){switch(_l.type){case"identifier":case"string":return Pl=_l.value,void(Il="afterPropertyName");case"punctuator":return void Ql();case"eof":throw tf(bl.EOF)}},afterPropertyName(){if("eof"===_l.type)throw tf(bl.EOF);Il="beforePropertyValue"},beforePropertyValue(){if("eof"===_l.type)throw tf(bl.EOF);Zl()},afterPropertyValue(){if("eof"===_l.type)throw tf(bl.EOF);switch(_l.value){case",":return void(Il="beforePropertyName");case"}":Ql()}},beforeArrayValue(){if("eof"===_l.type)throw tf(bl.EOF);"punctuator"!==_l.type||"]"!==_l.value?Zl():Ql()},afterArrayValue(){if("eof"===_l.type)throw tf(bl.EOF);switch(_l.value){case",":return void(Il="beforeArrayValue");case"]":Ql()}},end(){}};function Zl(){const e=function(){let e;switch(_l.type){case"punctuator":switch(_l.value){case"{":e={};break;case"[":e=[]}break;case"null":case"boolean":case"numeric":case"string":e=_l.value}return e}();if(jl&&"object"==typeof e&&(e._line=Ml,e._column=Ll),void 0===kl)kl=e;else{const t=Tl[Tl.length-1];Array.isArray(t)?jl&&"object"!=typeof e?t.push({value:e,_line:Ml,_column:Ll}):t.push(e):t[Pl]=jl&&"object"!=typeof e?{value:e,_line:Ml,_column:Ll}:e}!function(e){if(e&&"object"==typeof e)Tl.push(e),Il=Array.isArray(e)?"beforeArrayValue":"beforePropertyName";else{const e=Tl[Tl.length-1];Il=e?Array.isArray(e)?"afterArrayValue":"afterPropertyValue":"end"}}(e)}function Ql(){Tl.pop();const e=Tl[Tl.length-1];Il=e?Array.isArray(e)?"afterArrayValue":"afterPropertyValue":"end"}function ef(e){const t={"'":"\\'",'"':'\\"',"\\":"\\\\","\b":"\\b","\f":"\\f","\n":"\\n","\r":"\\r","\t":"\\t","\v":"\\v","\0":"\\0","\u2028":"\\u2028","\u2029":"\\u2029"};if(t[e])return t[e];if(e<" "){const t=e.charCodeAt(0).toString(16);return`\\x${`00${t}`.substring(t.length)}`}return e}function tf(e,t){let n="";switch(e){case bl.Char:n=void 0===t?`JSON5: invalid end of input at ${Ml}:${Ll}`:`JSON5: invalid character '${ef(t)}' at ${Ml}:${Ll}`;break;case bl.EOF:n=`JSON5: invalid end of input at ${Ml}:${Ll}`;break;case bl.Identifier:Ll-=5,n=`JSON5: invalid identifier character at ${Ml}:${Ll}`}const r=new nf(n);return r.lineNumber=Ml,r.columnNumber=Ll,r}class nf extends SyntaxError{}var rf=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),uf=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),of=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&rf(t,e,n);return uf(t,e),t};Object.defineProperty(Y,"__esModule",{value:!0});var sf=Y.cleanWorkSpace=Ff=Y.executeInstallHvigor=yf=Y.isHvigorInstalled=mf=Y.isAllDependenciesInstalled=void 0;const cf=of(D.default),af=of(p.default),lf=b,ff=j,df=$,Df=X;let pf,Ef;var mf=Y.isAllDependenciesInstalled=function(){function e(e){const t=null==e?void 0:e.dependencies;return void 0===t?0:Object.getOwnPropertyNames(t).length}if(pf=gf(),Ef=Af(),e(pf)+1!==e(Ef))return!1;for(const e in null==pf?void 0:pf.dependencies)if(!(0,ff.hasNpmPackInPaths)(e,[lf.HVIGOR_PROJECT_DEPENDENCIES_HOME])||!hf(e,pf,Ef))return!1;return!0};function hf(e,t,n){return void 0!==n.dependencies&&(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,t.dependencies[e])===n.dependencies[e]}var yf=Y.isHvigorInstalled=function(){return pf=gf(),Ef=Af(),(0,ff.hasNpmPackInPaths)(lf.HVIGOR_ENGINE_PACKAGE_NAME,[lf.HVIGOR_PROJECT_DEPENDENCIES_HOME])&&(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,pf.hvigorVersion)===Ef.dependencies[lf.HVIGOR_ENGINE_PACKAGE_NAME]};const Cf={cwd:lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,stdio:["inherit","inherit","inherit"]};var Ff=Y.executeInstallHvigor=function(){(0,df.logInfoPrintConsole)("Hvigor installing...");const e={dependencies:{}};e.dependencies[lf.HVIGOR_ENGINE_PACKAGE_NAME]=(0,ff.offlinePluginConversion)(lf.HVIGOR_PROJECT_ROOT_DIR,pf.hvigorVersion);try{cf.mkdirSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,{recursive:!0});const t=af.resolve(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,lf.DEFAULT_PACKAGE_JSON);cf.writeFileSync(t,JSON.stringify(e))}catch(e){(0,df.logErrorAndExit)(e)}!function(){const e=["config","set","store-dir",lf.HVIGOR_PNPM_STORE_PATH];(0,ff.executeCommand)(lf.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,e,Cf)}(),(0,ff.executeCommand)(lf.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,["install"],Cf)};function gf(){const e=af.resolve(lf.HVIGOR_PROJECT_WRAPPER_HOME,lf.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);return cf.existsSync(e)||(0,df.logErrorAndExit)(`Error: Hvigor config file ${e} does not exist.`),(0,Df.parseJsonFile)(e)}function Af(){return cf.existsSync(lf.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH)?(0,Df.parseJsonFile)(lf.HVIGOR_PROJECT_DEPENDENCY_PACKAGE_JSON_PATH):{dependencies:{}}}sf=Y.cleanWorkSpace=function(){if((0,df.logInfoPrintConsole)("Hvigor cleaning..."),!cf.existsSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME))return;const e=cf.readdirSync(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME);if(e&&0!==e.length){cf.existsSync(lf.HVIGOR_BOOT_JS_FILE_PATH)&&(0,ff.executeCommand)(process.argv[0],[lf.HVIGOR_BOOT_JS_FILE_PATH,"--stop-daemon"],{});try{e.forEach((e=>{cf.rmSync(af.resolve(lf.HVIGOR_PROJECT_DEPENDENCIES_HOME,e),{recursive:!0})}))}catch(e){(0,df.logErrorAndExit)(`The hvigor build tool cannot be installed. Please manually clear the workspace directory and synchronize the project again.\n\n Workspace Path: ${lf.HVIGOR_PROJECT_DEPENDENCIES_HOME}.`)}}};var vf={},Sf=w&&w.__createBinding||(Object.create?function(e,t,n,r){void 0===r&&(r=n);var u=Object.getOwnPropertyDescriptor(t,n);u&&!("get"in u?!t.__esModule:u.writable||u.configurable)||(u={enumerable:!0,get:function(){return t[n]}}),Object.defineProperty(e,r,u)}:function(e,t,n,r){void 0===r&&(r=n),e[r]=t[n]}),wf=w&&w.__setModuleDefault||(Object.create?function(e,t){Object.defineProperty(e,"default",{enumerable:!0,value:t})}:function(e,t){e.default=t}),Of=w&&w.__importStar||function(e){if(e&&e.__esModule)return e;var t={};if(null!=e)for(var n in e)"default"!==n&&Object.prototype.hasOwnProperty.call(e,n)&&Sf(t,e,n);return wf(t,e),t};Object.defineProperty(vf,"__esModule",{value:!0});var bf=vf.executeBuild=void 0;const _f=b,Bf=Of(D.default),Pf=Of(p.default),kf=$;bf=vf.executeBuild=function(){const e=Pf.resolve(_f.HVIGOR_PROJECT_DEPENDENCIES_HOME,"node_modules","@ohos","hvigor","bin","hvigor.js");try{const t=Bf.realpathSync(e);require(t)}catch(t){(0,kf.logErrorAndExit)(`Error: ENOENT: no such file ${e},delete ${_f.HVIGOR_PROJECT_DEPENDENCIES_HOME} and retry.`)}},function(){if(O.checkNpmConifg(),O.environmentHandler(),O.isPnpmAvailable()||O.executeInstallPnpm(),yf()&&mf())bf();else{sf();try{Ff()}catch(e){return void sf()}bf()}}(); \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/hvigorfile.ts b/sample/EnhanceSampleArk1.2/StateManagement/hvigorfile.ts new file mode 100644 index 00000000..64781869 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/hvigorfile.ts @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +export { appTasks } from '@ohos/hvigor-ohos-plugin'; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/StateManagement/hvigorw b/sample/EnhanceSampleArk1.2/StateManagement/hvigorw new file mode 100644 index 00000000..d0a563c2 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/hvigorw @@ -0,0 +1,63 @@ +#!/bin/bash + +# ---------------------------------------------------------------------------- +# Copyright (c) 2023 Huawei Device 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. +# ---------------------------------------------------------------------------- + +# ---------------------------------------------------------------------------- +# 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=$(dirname $(readlink -f $0)) +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/sample/EnhanceSampleArk1.2/StateManagement/hvigorw.bat b/sample/EnhanceSampleArk1.2/StateManagement/hvigorw.bat new file mode 100644 index 00000000..af893e9a --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/hvigorw.bat @@ -0,0 +1,72 @@ +:: Copyright (c) 2023 Huawei Device 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. + +@echo off + +@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% %* + +:fail +exit /b 1 diff --git a/sample/EnhanceSampleArk1.2/StateManagement/oh-package.json5 b/sample/EnhanceSampleArk1.2/StateManagement/oh-package.json5 new file mode 100644 index 00000000..ebf20792 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/oh-package.json5 @@ -0,0 +1,26 @@ +/* + * Copyright (c) 2023 Huawei Device 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. + */ + +{ + "license": "ISC", + "devDependencies": { + "@ohos/hypium": "1.0.6" + }, + "name": "myapplication", + "description": "example description", + "repository": {}, + "version": "1.0.0", + "dependencies": {} +} diff --git a/sample/EnhanceSampleArk1.2/StateManagement/ohosTest.md b/sample/EnhanceSampleArk1.2/StateManagement/ohosTest.md new file mode 100644 index 00000000..d12c6e78 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/StateManagement/ohosTest.md @@ -0,0 +1,18 @@ +# StateManagement 测试用例归档 + +## 用例表 + +|测试功能|预置条件|输入|预期输出|测试结果| +|--------------------------------|--------------------------------|--------------------------------|--------------------------------|--------------------------------| +|拉起应用| 设备正常运行| |成功拉起应用|Pass| +|打开折叠层 |在首页 |打开修饰对象类型、更新原理、父子组件之间状态同步折叠层 |正常展开折叠层,显示折叠层下的内容 |Pass| +|验证基础类型 |在首页,修饰对象类型已展开 |点击进入基础类型,设置圆形颜色并查看源码 |圆形颜色改变,显示该页面源码 |Pass| +|验证数组类型 |在首页,修饰对象类型已展开 |点击进入数组类型,点击删除元素,添加元素,更新元素,查看源码 |依次删除元素,添加元素,更新元素,显示该页面源码 |Pass| +|验证类对象类型 |在首页,修饰对象类型已展开 |点击进入类对象类型,依次点击更新对象,更新对象属性,更新属性中的属性,查看源码 |依次改变,对象属性整体和内部属性+1,对象属性+1,对象属性的属性+1,显示该页面源码 |Pass| +|验证只更新所绑定的组件 |在首页,更新原理已展开 |点击修改标题和内容,点击查看源码 |标题的title+1,显示该页面源码 |Pass| +|验证单、双向同步 |在首页,父子组件之间状态同步已展开 |点击进入单、双向同步,点击设置粉色,设置蓝色,设置红色,查看源码 |全部三个按钮变成粉色,中间的按钮变成蓝色,全部按钮变成红色,显示该页面源码 |Pass| +|验证子组件同步父组件部分内容 |在首页,父子组件之间状态同步已展开 |点击进入子组件同步父组件部分内容,点击修改父组件第一个属性文本,点击修改子组件属性文本,第二、三个属性文本,显示该页面源码 |父组件中对应的属性依次改变,显示该页面源码 |Pass| +|验证爷孙组件之间状态同步 |在首页 |点击进入,依次点击孙组件、爷组件、provide子组件、provide父组件、select组件并选择颜色,查看源码 |父组件、子组件颜色同时变粉、变蓝,provide父组件、子组件颜色同时变粉、变蓝,显示该页面源码 |Pass| +|验证兄弟组件之间状态同步 |在首页 |点击进入,依次点击兄,弟组件、provide兄组件、provide弟组件、select组件并选择颜色,查看源码 |兄组件、弟组件颜色同时变粉、变蓝,provide兄组件、弟组件颜色同时变粉、变蓝,显示该页面源码 |Pass| +|验证应用内全局数据与UI之间的状态同步 |下方tab切换到应用级状态管理 |点击进入,打开夜间模式,进入Ability1,关闭夜间模式,返回,进入Ability2,打开夜间模式,返回,查看源码 |夜间模式依次打开和关闭,显示该页面源码 |Pass| +|验证Ability内全局数据与UI之间的状态同步 |下方tab切换到应用级状态管理 |点击进入,打开夜间模式,进入Page1,关闭夜间模式,返回,进入跨Ability,打开夜间模式,返回,查看源码 |夜间模式依次打开和关闭,跨Ability打开夜间模式返回后夜间模式不同步 |Pass| diff --git a/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ApplyGlobalDataSync.jpeg b/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ApplyGlobalDataSync.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..3d98024501c1d3682ec5ef0f7f0a987d72acff5b GIT binary patch literal 42808 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 G%>MxcA+B2h literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/DeepNestComponent.jpeg b/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/DeepNestComponent.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..852d6be8fd8ddf3062b0121dd4b615a46fc4806f GIT binary patch literal 43715 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åU2R?tW5 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/Home.jpeg b/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/Home.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..ea9ecef93a418052173017959fabc70436d3c351 GIT binary patch literal 25882 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 literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ParentChildPartialContentSync.jpeg b/sample/EnhanceSampleArk1.2/StateManagement/screenshots/device/ParentChildPartialContentSync.jpeg new file mode 100644 index 0000000000000000000000000000000000000000..82a8d49f09fa2b51a22d409a94836644552e43f9 GIT binary patch literal 26455 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 literal 0 HcmV?d00001 -- Gitee From 2e1ab7ed604b335d59130b883cc04bd984aa9dbc Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Thu, 7 Aug 2025 11:06:06 +0800 Subject: [PATCH 3/4] =?UTF-8?q?sample=EF=BC=9APageLoading1.0=E6=94=B9?= =?UTF-8?q?=E9=80=A0=E6=88=901.2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: wangweiyuan --- .../resources/base/media/background.png | Bin 0 -> 91942 bytes .../resources/base/media/foreground.png | Bin 0 -> 15325 bytes .../resources/base/media/layered_image.json | 7 ++ .../PageLoading/build-profile.json5 | 5 +- .../PageLoading/code-linter.json5 | 13 ++++ .../PageLoading/entry/build-profile.json5 | 1 + .../PageLoading/entry/hvigorfile.ts | 21 +----- .../PageLoading/entry/oh-package-lock.json5 | 30 ++++++++ .../main/ets/entryability/EntryAbility.ets | 15 ++-- .../entrybackupability/EntryBackupAbility.ets | 10 +-- .../entry/src/main/ets/pages/Index.ets | 7 ++ .../src/ohosTest/ets/test/Ability.test.ets | 15 ++-- .../entry/src/ohosTest/ets/test/List.test.ets | 1 + .../entry/src/ohosTest/ets/utils/logger.ets | 1 + .../PageLoading/entry/src/test/List.test.ets | 1 + .../entry/src/test/LocalUnit.test.ets | 3 +- .../PageLoading/hvigor/hvigor-config.json5 | 5 +- .../PageLoading/hvigorfile.ts | 6 +- .../PageLoading/oh-package-lock.json5 | 28 ++++++++ .../PageLoading/oh-package.json5 | 2 +- .../PageLoading/pageloading/Index.ets | 1 + .../pageloading/build-profile.json5 | 1 + .../pageloading/oh-package-lock.json5 | 20 ++++++ .../src/main/ets/mock/CommodityMock.ets | 14 ++-- .../src/main/ets/model/CommodityDataModel.ets | 7 ++ .../main/ets/model/CommodityDataSource.ets | 35 ++++++--- .../pageloading/src/main/ets/utils/logger.ets | 3 +- .../src/main/ets/view/CommodityList.ets | 67 ++++++++++++------ .../src/main/ets/view/LoadingHUD.ets | 44 ++++++++---- .../src/main/ets/view/PageLoading.ets | 12 +++- .../src/ohosTest/ets/test/Ability.test.ets | 3 +- .../src/ohosTest/ets/test/List.test.ets | 1 + .../pageloading/src/test/List.test.ets | 1 + .../pageloading/src/test/LocalUnit.test.ets | 3 +- 34 files changed, 286 insertions(+), 97 deletions(-) create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/background.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/foreground.png create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/layered_image.json create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package-lock.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/oh-package-lock.json5 create mode 100644 sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package-lock.json5 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/background.png b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/background.png new file mode 100644 index 0000000000000000000000000000000000000000..923f2b3f27e915d6871871deea0420eb45ce102f GIT binary patch literal 91942 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 M;JyCV_snDe2la%mzyJUM literal 0 HcmV?d00001 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/layered_image.json b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/layered_image.json new file mode 100644 index 00000000..fb499204 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/AppScope/resources/base/media/layered_image.json @@ -0,0 +1,7 @@ +{ + "layered-image": + { + "background" : "$media:background", + "foreground" : "$media:foreground" + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 index 4e296f0d..04124e5d 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/build-profile.json5 @@ -20,8 +20,9 @@ { "name": "default", "signingConfig": "default", - "compatibleSdkVersion": 12, - "compileSdkVersion": 12, + "targetSdkVersion": "20", + "compileSdkVersion": "20", + "compatibleSdkVersion": "20", "runtimeOS": "OpenHarmony", "buildOption": { "strictMode": { diff --git a/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 b/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 index 44d50304..ed05653c 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/code-linter.json5 @@ -12,6 +12,7 @@ * See the License for the specific language governing permissions and * limitations under the License. */ + { "files": [ "**/*.ets" @@ -30,5 +31,17 @@ "plugin:@typescript-eslint/recommended" ], "rules": { + "@security/no-unsafe-aes": "error", + "@security/no-unsafe-hash": "error", + "@security/no-unsafe-mac": "warn", + "@security/no-unsafe-dh": "error", + "@security/no-unsafe-dsa": "error", + "@security/no-unsafe-ecdsa": "error", + "@security/no-unsafe-rsa-encrypt": "error", + "@security/no-unsafe-rsa-sign": "error", + "@security/no-unsafe-rsa-key": "error", + "@security/no-unsafe-dsa-key": "error", + "@security/no-unsafe-dh-key": "error", + "@security/no-unsafe-3des": "error" } } \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 index e7569e30..a550e7db 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/build-profile.json5 @@ -15,6 +15,7 @@ { "apiType": "stageMode", + "arkTSVersion": "1.2", "buildOption": { }, "buildOptionSet": [ diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts b/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts index e4f43d54..b0e3a1ab 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/hvigorfile.ts @@ -1,21 +1,6 @@ -/* - * Copyright (c) 2025 Huawei Device 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 { 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. */ -} + system: hapTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package-lock.json5 b/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package-lock.json5 new file mode 100644 index 00000000..2bec7083 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/oh-package-lock.json5 @@ -0,0 +1,30 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/lottie@2.0.0": "@ohos/lottie@2.0.0", + "pageloading@../pageloading": "pageloading@../pageloading" + }, + "packages": { + "@ohos/lottie@2.0.0": { + "name": "@ohos/lottie", + "version": "2.0.0", + "integrity": "sha512-jFEFYfuqGO323aMiwtzHmDGRJI0qTxjZD2Lzbn+LxRdoHSfu5OVu22I8gVm5ej019tCw3WOk547NHZ2GuWiNSg==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/lottie/-/lottie-2.0.0.har", + "registryType": "ohpm" + }, + "pageloading@../pageloading": { + "name": "pageloading", + "version": "1.0.0", + "resolved": "", + "registryType": "local", + "dependencies": { + "@ohos/lottie": "2.0.0" + } + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets index edc2839f..24adc51c 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entryability/EntryAbility.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,9 +14,13 @@ * limitations under the License. */ -import { AbilityConstant, ConfigurationConstant, UIAbility, Want } from '@kit.AbilityKit'; -import { hilog } from '@kit.PerformanceAnalysisKit'; -import { window } from '@kit.ArkUI'; +import UIAbility from '@ohos.app.ability.UIAbility'; +import AbilityConstant from '@ohos.app.ability.AbilityConstant'; +import Want from '@ohos.app.ability.Want'; +import window from '@ohos.window'; +import { BusinessError } from '@ohos.base' +import hilog from '@ohos.hilog'; +import ConfigurationConstant from '@ohos.app.ability.ConfigurationConstant'; export default class EntryAbility extends UIAbility { onCreate(want: Want, launchParam: AbilityConstant.LaunchParam): void { @@ -31,8 +36,8 @@ export default class EntryAbility extends UIAbility { // Main window is created, set main page for this ability hilog.info(0x0000, 'testTag', '%{public}s', 'Ability onWindowStageCreate'); - windowStage.loadContent('pages/Index', (err) => { - if (err.code) { + windowStage.loadContent('pages/Index', (err: BusinessError | null): void => { + if (err && err.code) { hilog.error(0x0000, 'testTag', 'Failed to load the content. Cause: %{public}s', JSON.stringify(err) ?? ''); return; } diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets index b1e21294..4f5067f2 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/entrybackupability/EntryBackupAbility.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,15 +14,16 @@ * limitations under the License. */ -import { hilog } from '@kit.PerformanceAnalysisKit'; -import { BackupExtensionAbility, BundleVersion } from '@kit.CoreFileKit'; +import hilog from '@ohos.hilog'; +import BackupExtensionAbility from '@ohos.application.BackupExtensionAbility'; +import { BundleVersion } from '@ohos.application.BackupExtensionAbility'; export default class EntryBackupAbility extends BackupExtensionAbility { - async onBackup() { + onBackup() { hilog.info(0x0000, 'testTag', 'onBackup ok'); } - async onRestore(bundleVersion: BundleVersion) { + onRestore(bundleVersion: BundleVersion) { hilog.info(0x0000, 'testTag', 'onRestore ok %{public}s', JSON.stringify(bundleVersion)); } } \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets index 22e70962..6191f83d 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/main/ets/pages/Index.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +14,12 @@ * limitations under the License. */ +import { + Entry, + Component, + Column, +} from '@kit.ArkUI'; + import { PageLoadingComponent } from 'pageloading'; @Entry diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets index ce096cdf..dd5460b7 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/Ability.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -27,7 +28,7 @@ export default function abilityTest() { /** * 打开应用 */ - it(BUNDLE + '_StartAbility', 0, async (done: Function) => { + it(BUNDLE + '_StartAbility', 0.0, async (done: Function) => { logger.info(TAG, BUNDLE + '_StartAbility start'); let abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); try { @@ -40,27 +41,27 @@ export default function abilityTest() { expect().assertFail(); } logger.info(TAG, BUNDLE + '_StartAbility end'); - done(); + done.unsafeCall(); }) /** * 页面加载效果实现案例只能断言页面加载后的列表是否正常滚动和展示(加载lottie动画需手工用例进行测试) */ - it(BUNDLE, 0, async (done: Function) => { + it(BUNDLE, 0.0, async (done: Function) => { let driver = Driver.create(); - await driver.delayMs(5000); // 进度条加载耗时 + await driver.delayMs((5000.0).toInt()); // 进度条加载耗时 const loadProgressHide = await driver.findComponent(ON.id('loadingHUD')); expect(loadProgressHide).assertEqual(null); // 断言界面数据正在加载完成并消失 await driver.assertComponentExist(ON.id('commodity_list')); // 断言数据列表加载成功 - await driver.swipe(200, 1500, 200, 100, 2200); // 向上滑动 - await driver.delayMs(1000); + await driver.swipe((200.0).toInt().toInt(), (1500.0).toInt().toInt(), (200.0).toInt(), (100.0).toInt().toInt(), (2200.0).toInt().toInt()); // 向上滑动 + await driver.delayMs((1000.0).toInt()); const isScroll = await (await driver.findComponent(ON.id('commodity_list'))).isScrollable(); expect(isScroll).assertEqual(true); // 断言商品列表可滚动 - done(); + done.unsafeCall(); }) }) } \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets index 1eac52fc..f89c2523 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/test/List.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets index 17d1f64c..eb76ca7e 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/ohosTest/ets/utils/logger.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets index f1186b1f..0f183d30 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/List.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets index 7fc57c77..6a9f26d3 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/entry/src/test/LocalUnit.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -36,7 +37,7 @@ export default function localUnitTest() { // 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, () => { + it('assertContain', 0.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'; diff --git a/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 b/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 index 1e473e42..7a7ab891 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/hvigor/hvigor-config.json5 @@ -1,13 +1,14 @@ { - "modelVersion": "5.0.1", + "modelVersion": "6.0.0", "dependencies": { }, "execution": { - // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | false ]. Default: "normal" */ + // "analyze": "normal", /* Define the build analyze mode. Value: [ "normal" | "advanced" | "ultrafine" | false ]. Default: "normal" */ // "daemon": true, /* Enable daemon compilation. Value: [ true | false ]. Default: true */ // "incremental": true, /* Enable incremental compilation. Value: [ true | false ]. Default: true */ // "parallel": true, /* Enable parallel compilation. Value: [ true | false ]. Default: true */ // "typeCheck": false, /* Enable typeCheck. Value: [ true | false ]. Default: false */ + // "optimizationStrategy": "memory" /* Define the optimization strategy. Value: [ "memory" | "performance" ]. Default: "memory" */ }, "logging": { // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ diff --git a/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts b/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts index f3cb9f1a..47113e2e 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts +++ b/sample/EnhanceSampleArk1.2/PageLoading/hvigorfile.ts @@ -1,6 +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. */ -} + system: appTasks, /* Built-in plugin of Hvigor. It cannot be modified. */ + plugins: [] /* Custom plugin to extend the functionality of Hvigor. */ +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/oh-package-lock.json5 b/sample/EnhanceSampleArk1.2/PageLoading/oh-package-lock.json5 new file mode 100644 index 00000000..5228468e --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/oh-package-lock.json5 @@ -0,0 +1,28 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/hamock@1.0.0": "@ohos/hamock@1.0.0", + "@ohos/hypium@1.0.19": "@ohos/hypium@1.0.19" + }, + "packages": { + "@ohos/hamock@1.0.0": { + "name": "@ohos/hamock", + "version": "1.0.0", + "integrity": "sha512-K6lDPYc6VkKe6ZBNQa9aoG+ZZMiwqfcR/7yAVFSUGIuOAhPvCJAo9+t1fZnpe0dBRBPxj2bxPPbKh69VuyAtDg==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hamock/-/hamock-1.0.0.har", + "registryType": "ohpm" + }, + "@ohos/hypium@1.0.19": { + "name": "@ohos/hypium", + "version": "1.0.19", + "integrity": "sha512-cEjDgLFCm3cWZDeRXk7agBUkPqjWxUo6AQeiu0gEkb3J8ESqlduQLSIXeo3cCsm8U/asL7iKjF85ZyOuufAGSQ==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/hypium/-/hypium-1.0.19.har", + "registryType": "ohpm" + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 b/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 index b794cc97..55dde11e 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/oh-package.json5 @@ -1,5 +1,5 @@ { - "modelVersion": "5.0.1", + "modelVersion": "6.0.0", "description": "Please describe the basic information.", "dependencies": { }, diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets index 1ea85a05..ff959a0b 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/Index.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 index aefa5f69..315f414a 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/build-profile.json5 @@ -15,6 +15,7 @@ { "apiType": "stageMode", + "arkTSVersion": "1.2", "buildOption": { }, "buildOptionSet": [ diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package-lock.json5 b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package-lock.json5 new file mode 100644 index 00000000..9a1a02f8 --- /dev/null +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/oh-package-lock.json5 @@ -0,0 +1,20 @@ +{ + "meta": { + "stableOrder": true, + "enableUnifiedLockfile": false + }, + "lockfileVersion": 3, + "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", + "specifiers": { + "@ohos/lottie@2.0.0": "@ohos/lottie@2.0.0" + }, + "packages": { + "@ohos/lottie@2.0.0": { + "name": "@ohos/lottie", + "version": "2.0.0", + "integrity": "sha512-jFEFYfuqGO323aMiwtzHmDGRJI0qTxjZD2Lzbn+LxRdoHSfu5OVu22I8gVm5ej019tCw3WOk547NHZ2GuWiNSg==", + "resolved": "https://ohpm.openharmony.cn/ohpm/@ohos/lottie/-/lottie-2.0.0.har", + "registryType": "ohpm" + } + } +} \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets index ff97f295..010abe38 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/mock/CommodityMock.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -14,27 +15,28 @@ */ import { CommodityDataModel } from '../model/CommodityDataModel'; +import { $r } from '@ohos.arkui.component'; /** * 商品列表数据源 */ export const PRODUCTS_DATA: CommodityDataModel[] = [ - new CommodityDataModel(0, $r('app.media.page_loading_commodity00'), $r('app.string.page_loading_commodity_title00'), + new CommodityDataModel(0.0, $r('app.media.page_loading_commodity00'), $r('app.string.page_loading_commodity_title00'), $r('app.string.page_loading_commodity_price00'), $r('app.string.page_loading_commodity_view00'), $r('app.string.page_loading_commodity_insurance00')), - new CommodityDataModel(1, $r('app.media.page_loading_commodity01'), $r('app.string.page_loading_commodity_title01'), + new CommodityDataModel(1.0, $r('app.media.page_loading_commodity01'), $r('app.string.page_loading_commodity_title01'), $r('app.string.page_loading_commodity_price01'), $r('app.string.page_loading_commodity_view01'), $r('app.string.page_loading_commodity_insurance01')), - new CommodityDataModel(2, $r('app.media.page_loading_commodity02'), $r('app.string.page_loading_commodity_title02'), + new CommodityDataModel(2.0, $r('app.media.page_loading_commodity02'), $r('app.string.page_loading_commodity_title02'), $r('app.string.page_loading_commodity_price02'), $r('app.string.page_loading_commodity_view02'), $r('app.string.page_loading_commodity_insurance02')), - new CommodityDataModel(3, $r('app.media.page_loading_commodity03'), $r('app.string.page_loading_commodity_title03'), + new CommodityDataModel(3.0, $r('app.media.page_loading_commodity03'), $r('app.string.page_loading_commodity_title03'), $r('app.string.page_loading_commodity_price03'), $r('app.string.page_loading_commodity_view03'), $r('app.string.page_loading_commodity_insurance03')), - new CommodityDataModel(4, $r('app.media.page_loading_commodity04'), $r('app.string.page_loading_commodity_title04'), + new CommodityDataModel(4.0, $r('app.media.page_loading_commodity04'), $r('app.string.page_loading_commodity_title04'), $r('app.string.page_loading_commodity_price04'), $r('app.string.page_loading_commodity_view04'), $r('app.string.page_loading_commodity_insurance04')), - new CommodityDataModel(5, $r('app.media.page_loading_commodity05'), $r('app.string.page_loading_commodity_title05'), + new CommodityDataModel(5.0, $r('app.media.page_loading_commodity05'), $r('app.string.page_loading_commodity_title05'), $r('app.string.page_loading_commodity_price05'), $r('app.string.page_loading_commodity_view05'), $r('app.string.page_loading_commodity_insurance05')) ]; \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets index 2ebdc50e..0ec8e3c2 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataModel.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -16,6 +17,12 @@ /** * 商品的数据类 */ + +import { Observed } from '@kit.ArkUI'; + +import { ResourceStr } from '@kit.ArkUI'; + +@Observed export class CommodityDataModel { public id: number; public uri: ResourceStr; diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets index 2689593f..69dfae38 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/model/CommodityDataSource.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +14,11 @@ * limitations under the License. */ +import { + IDataSource, + DataChangeListener, +} from '@kit.ArkUI'; + import { logger } from '../utils/logger'; import { CommodityDataModel } from './CommodityDataModel'; @@ -20,29 +26,38 @@ import { CommodityDataModel } from './CommodityDataModel'; /** * Basic implementation of IDataSource to handle data listener */ -class BasicDataSource implements IDataSource { +export class BasicDataSource implements IDataSource { // 数据变化监听器 private listeners: DataChangeListener[] = []; + private tList: T[] = []; /** * 获取数据的长度 */ public totalCount(): number { - return 0; + return 0.0; } /** * 获取指定数据项 */ - public getData(index: number): T | void { - logger.info('getData, index:' + index); + public getData(index: number): T { + return this.tList[index as int]; + } + + /** + * 存储数据到懒加载数据源中 + */ + pushData(data: T[]): void { + this.tList.push(...data); + this.notifyDataAdd(this.tList.length - 1.0); } /** * 该方法为框架侧调用,为LazyForEach组件向其数据源处添加listener监听 */ registerDataChangeListener(listener: DataChangeListener): void { - if (this.listeners.indexOf(listener) < 0) { + if (this.listeners.indexOf(listener) < 0.0) { logger.info('add listener'); this.listeners.push(listener); } @@ -52,10 +67,10 @@ class BasicDataSource implements IDataSource { * 该方法为框架侧调用,为对应的LazyForEach组件在数据源处去除listener监听 */ unregisterDataChangeListener(listener: DataChangeListener): void { - const pos = this.listeners.indexOf(listener); - if (pos >= 0) { + const pos: number = this.listeners.indexOf(listener); + if (pos >= 0.0) { logger.info('remove listener'); - this.listeners.splice(pos, 1); + this.listeners.splice(pos, 1.0); } } @@ -111,7 +126,7 @@ export class CommodityDataSource extends BasicDataSource { * 获取指定数据项 */ getData(index: number): CommodityDataModel { - return this.commodityList[index]; + return this.commodityList[index as int]; } /** @@ -119,6 +134,6 @@ export class CommodityDataSource extends BasicDataSource { */ pushData(data: CommodityDataModel[]): void { this.commodityList.push(...data); - this.notifyDataAdd(this.commodityList.length - 1); + this.notifyDataAdd(this.commodityList.length - 1.0); } } \ No newline at end of file diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets index 8059053b..524d8c05 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/utils/logger.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -19,7 +20,7 @@ import hilog from '@ohos.hilog'; * 日志打印类 */ class Logger { - private domain: number; + private domain: int; private prefix: string; private format: string = '%{public}s, %{public}s'; diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets index 6397830c..192531ec 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,17 +14,41 @@ * limitations under the License. */ +import { + Component, + Column, + Image, + ImageFit, + Text, + Color, + FontWeight, + TextAlign, + List, + LazyForEach, + ListItem, + RelativeContainer, + VerticalAlign, + HorizontalAlign, + Row, + FlexAlign, + Padding, + Margin, + ShadowOptions, + $r, +} from '@kit.ArkUI'; + import { PRODUCTS_DATA } from '../mock/CommodityMock'; import { CommodityDataModel } from '../model/CommodityDataModel'; import { CommodityDataSource } from '../model/CommodityDataSource'; import { promptAction } from '@kit.ArkUI'; +import { Position } from '@ohos.arkui.component'; -const IMAGE_ASPECT_RATIO: number = 1; // 图片的宽高比 -const OFFSET: number = -4; // 价格控件偏移量 -const OFFSETX: number = 10; // banner阴影X轴偏移量 -const OFFSETY: number = 10; // banner阴影Y轴偏移量 -const LAYOUT_WEIGHT: number = 1; // 分配剩余空间 -const ANGLE: number = 180; // 自上而下渐变 +const IMAGE_ASPECT_RATIO: number = 1.0; // 图片的宽高比 +const OFFSET: number = -4.0; // 价格控件偏移量 +const OFFSETX: number = 10.0; // banner阴影X轴偏移量 +const OFFSETY: number = 10.0; // banner阴影Y轴偏移量 +const LAYOUT_WEIGHT: number = 1.0; // 分配剩余空间 +const ANGLE: number = 180.0; // 自上而下渐变 @Component export struct CommodityList { @@ -39,14 +64,14 @@ export struct CommodityList { Image($r('app.media.page_loading_light_mode_banner')) .objectFit(ImageFit.Contain) .borderRadius($r('app.integer.page_loading_banner_border_radius')) - .margin({ top: $r('app.integer.page_loading_banner_margin_top') }) + .margin({ top: $r('app.integer.page_loading_banner_margin_top') } as Margin) .width('100%') .shadow({ radius: $r('app.integer.page_loading_banner_shadow_border_radius'), color: $r('app.color.page_loading_banner_shadow_color'), offsetX: OFFSETX, offsetY: OFFSETY - }) + } as ShadowOptions) Text($r('app.string.page_loading_goods_title_text')) .fontColor(Color.Black) @@ -56,7 +81,7 @@ export struct CommodityList { .width('100%') .textAlign(TextAlign.Center) } - .padding({ left: $r('app.integer.page_loading_column_padding_left'), right: $r('app.integer.page_loading_column_padding_right') }) + .padding({ left: $r('app.integer.page_loading_column_padding_left'), right: $r('app.integer.page_loading_column_padding_right') } as Padding) .backgroundColor(Color.White) List() { @@ -67,8 +92,8 @@ export struct CommodityList { .padding({ left: $r('app.integer.page_loading_commodity_list_item_padding'), right: $r('app.integer.page_loading_commodity_list_item_padding') - }) - .margin({ top: $r('app.integer.page_loading_commodity_list_item_margin_top') }) + } as Padding) + .margin({ top: $r('app.integer.page_loading_commodity_list_item_margin_top') } as Margin) }, (item: CommodityDataModel) => item.id.toString()) } .id('commodity_list') @@ -85,7 +110,7 @@ export struct CommodityList { @Component struct ItemView { - @Prop item: CommodityDataModel; + item: CommodityDataModel = new CommodityDataModel(0.0, '', '', '', '', ''); build() { // TODO: 知识点:相对布局组件,用于复杂场景中元素对齐的布局,容器内子组件区分水平方向,垂直方向子组件可以将容器或者其他子组件设为锚点。 @@ -97,7 +122,7 @@ struct ItemView { .padding({ top: $r('app.integer.page_loading_commodity_image_padding_top'), bottom: $r('app.integer.page_loading_commodity_image_padding_bottom') - }) + } as Padding) .alignRules({ top: { anchor: '__container__', align: VerticalAlign.Top }, left: { anchor: '__container__', align: HorizontalAlign.Start } @@ -115,8 +140,8 @@ struct ItemView { right: $r('app.integer.page_loading_commodity_insurance_padding_right'), top: $r('app.integer.page_loading_commodity_insurance_padding_top'), bottom: $r('app.integer.page_loading_commodity_insurance_padding_bottom') - }) - .margin({ right: $r('app.integer.page_loading_commodity_insurance_margin_right') }) + } as Padding) + .margin({ right: $r('app.integer.page_loading_commodity_insurance_margin_right') } as Margin) .alignRules({ right: { anchor: '__container__', align: HorizontalAlign.End }, center: { anchor: '__container__', align: VerticalAlign.Center } @@ -131,12 +156,12 @@ struct ItemView { Text(this.item.views) .fontSize($r('app.integer.page_loading_views_font')) - .margin({ left: $r('app.integer.page_loading_views_margin_left') }) + .margin({ left: $r('app.integer.page_loading_views_margin_left') } as Margin) .fontColor(Color.Black) } .height($r('app.integer.page_loading_views_height')) .width($r('app.integer.page_loading_views_width')) - .margin({ top: $r('app.integer.page_loading_views_margin_top') }) + .margin({ top: $r('app.integer.page_loading_views_margin_top') } as Margin) .justifyContent(FlexAlign.End) .alignRules({ middle: { anchor: 'insurance', align: HorizontalAlign.Center }, @@ -154,9 +179,9 @@ struct ItemView { Text(this.item.price) .fontSize($r('app.integer.page_loading_commodity_price_text_font_size')) .fontWeight(FontWeight.Bold) - .offset({ x: OFFSET })// 因为¥是中文字符,上面的是中文字符,占的宽度不一样,所以需要对齐,添加offset + .offset({ x: OFFSET } as Position)// 因为¥是中文字符,上面的是中文字符,占的宽度不一样,所以需要对齐,添加offset .fontColor($r('app.color.page_loading_goods_price_text_color')) - .margin({ top: $r('app.integer.page_loading_commodity_price_margin_top') }) + .margin({ top: $r('app.integer.page_loading_commodity_price_margin_top') } as Margin) .width('100%') } .justifyContent(FlexAlign.Start) @@ -166,8 +191,8 @@ struct ItemView { center: { anchor: 'image', align: VerticalAlign.Center } }) .id('column') - .onClick(() => { - promptAction.showToast({ message: $r('app.string.page_loading_commodity_other_function') }); + .onClick((): void => { + promptAction.openToast({ message: $r('app.string.page_loading_commodity_other_function') }); }) } .height($r('app.integer.page_loading_commodity_list_item_height')) diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets index 6966c3bf..1ea47d4f 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/LoadingHUD.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,7 +14,26 @@ * limitations under the License. */ -import lottie from '@ohos/lottie'; +import { + Component, + Link, + CanvasRenderingContext2D, + LinearGradient, + Color, + Column, + Stack, + Canvas, + Row, + Progress, + ProgressType, + Text, + FlexAlign, + Margin, + ProgressStyleOptions, + $r, +} from '@kit.ArkUI'; + +// import lottie from '@ohos/lottie'; /** * HUD全称Heads-Up Display(抬头显示) @@ -35,14 +55,14 @@ export struct LoadingHUD { */ initAnimation() { // TODO:知识点:lottie.loadAnimation将json数据生成动画 - lottie.loadAnimation({ - container: this.politeChickyController, - renderer: 'canvas', - loop: true, - autoplay: true, - name: this.politeChicky, - path: this.politeChickyPath, - }) + // lottie.loadAnimation({ + // container: this.politeChickyController, + // renderer: 'canvas', + // loop: true, + // autoplay: true, + // name: this.politeChicky, + // path: this.politeChickyPath, + // }) } build() { @@ -57,12 +77,12 @@ export struct LoadingHUD { this.initAnimation(); }) Row() { - Progress({ value: this.nowProgress, total: 100, type: ProgressType.Linear }) - .style({ strokeWidth: 10, enableSmoothEffect: true }) + Progress({ value: this.nowProgress, total: 100.0, type: ProgressType.Linear }) + .style({ strokeWidth: 10.0, enableSmoothEffect: true } as ProgressStyleOptions) .color(this.gradientColor) } .width('60%') - .margin({ top: $r('app.integer.lottie_view_canvas_height') }) + .margin({ top: $r('app.integer.lottie_view_canvas_height') } as Margin) }.height($r('app.integer.lottie_view_canvas_size')) Text(`当前已加载${this.nowProgress}%`) diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets index 76cc3b95..3883a561 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/PageLoading.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -13,6 +14,13 @@ * limitations under the License. */ +import { + Component, + State, + Stack, + Color, +} from '@kit.ArkUI'; + import { CommodityList } from './CommodityList'; import { LoadingHUD } from './LoadingHUD'; @@ -29,12 +37,12 @@ import { LoadingHUD } from './LoadingHUD'; * 2.进入页面首先展示LoadingHUD加载页,5秒后,LoadingHUD加载页消失且出现GoodsList商品列表页。 */ -const MILLISECONDS: number = 5000; // 毫秒数 +const MILLISECONDS: int = 5000; // 毫秒数 @Component export struct PageLoadingComponent { @State isLoading: Boolean = true; - @State nowProgress: number = 0; + @State nowProgress: number = 0.0; aboutToAppear(): void { // 模拟网络请求操作,请求网络3秒后得到数据,通知组件,变更列表数据 diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets index 0f8ce9a2..2e13ff4e 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/Ability.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -37,7 +38,7 @@ export default function abilityTest() { // 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, () => { + it('assertContain', 0.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'; diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets index 1eac52fc..f89c2523 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/ohosTest/ets/test/List.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets index f1186b1f..0f183d30 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/List.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets index 7fc57c77..6a9f26d3 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/test/LocalUnit.test.ets @@ -1,3 +1,4 @@ +'use static' /* * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); @@ -36,7 +37,7 @@ export default function localUnitTest() { // 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, () => { + it('assertContain', 0.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'; -- Gitee From c1312118956d8a757a0b4522df61bb200f2b88b2 Mon Sep 17 00:00:00 2001 From: wangweiyuan Date: Fri, 8 Aug 2025 15:10:40 +0800 Subject: [PATCH 4/4] sample1.0->1.2 Signed-off-by: wangweiyuan --- .../pageloading/src/main/ets/view/CommodityList.ets | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets index 192531ec..459cd9b8 100644 --- a/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets +++ b/sample/EnhanceSampleArk1.2/PageLoading/pageloading/src/main/ets/view/CommodityList.ets @@ -40,8 +40,8 @@ import { import { PRODUCTS_DATA } from '../mock/CommodityMock'; import { CommodityDataModel } from '../model/CommodityDataModel'; import { CommodityDataSource } from '../model/CommodityDataSource'; -import { promptAction } from '@kit.ArkUI'; import { Position } from '@ohos.arkui.component'; +import { UIContext } from '@ohos.arkui.UIContext'; const IMAGE_ASPECT_RATIO: number = 1.0; // 图片的宽高比 const OFFSET: number = -4.0; // 价格控件偏移量 @@ -192,7 +192,7 @@ struct ItemView { }) .id('column') .onClick((): void => { - promptAction.openToast({ message: $r('app.string.page_loading_commodity_other_function') }); + this.getUIContext().getPromptAction().showToast({ message: $r('app.string.page_loading_commodity_other_function') }); }) } .height($r('app.integer.page_loading_commodity_list_item_height')) -- Gitee

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