From cbc10dbcc75984e562e4a6cd4e630d4ad7a99ce2 Mon Sep 17 00:00:00 2001 From: biezhihua Date: Fri, 7 Jun 2024 10:23:57 +0800 Subject: [PATCH] remove GaiaXHarmony --- GaiaXHarmony/.gitignore | 11 - GaiaXHarmony/AppScope/app.json5 | 10 - .../resources/base/element/string.json | 8 - .../resources/base/media/app_icon.png | Bin 6790 -> 0 bytes GaiaXHarmony/GaiaX/.gitignore | 6 - GaiaXHarmony/GaiaX/Index.ets | 14 - GaiaXHarmony/GaiaX/build-profile.json5 | 10 - GaiaXHarmony/GaiaX/hvigorfile.ts | 6 - GaiaXHarmony/GaiaX/oh-package.json5 | 10 - .../src/main/ets/component/GXComponent.ets | 38 - .../src/main/ets/gaiax/GXCssConvertStyle.ts | 729 ------------------ .../GaiaX/src/main/ets/gaiax/GXCssParser.ts | 74 -- .../GaiaX/src/main/ets/gaiax/GXData.ts | 39 - .../GaiaX/src/main/ets/gaiax/GXDataBinding.ts | 23 - .../GaiaX/src/main/ets/gaiax/GXExpression.ts | 322 -------- .../GaiaX/src/main/ets/gaiax/GXGenerate.ts | 33 - .../GaiaX/src/main/ets/gaiax/GXGesture.ts | 54 -- .../src/main/ets/gaiax/GXIEventListener.ts | 10 - .../ets/gaiax/GXIExtensionCustomComponent.ts | 3 - .../gaiax/GXIExtensionTemplateInfoSource.ts | 7 - .../ets/gaiax/GXIExtensionTemplateSource.ts | 9 - .../src/main/ets/gaiax/GXITrackListener.ts | 12 - .../GaiaX/src/main/ets/gaiax/GXJson.ts | 15 - .../GaiaX/src/main/ets/gaiax/GXMeasureSize.ts | 6 - .../GaiaX/src/main/ets/gaiax/GXNode.ts | 48 -- .../src/main/ets/gaiax/GXRegisterCenter.ts | 53 -- .../GaiaX/src/main/ets/gaiax/GXTemplate.ts | 17 - .../src/main/ets/gaiax/GXTemplateContext.ts | 38 - .../src/main/ets/gaiax/GXTemplateData.ts | 24 - .../src/main/ets/gaiax/GXTemplateEngine.ts | 9 - .../src/main/ets/gaiax/GXTemplateInfo.ts | 69 -- .../src/main/ets/gaiax/GXTemplateItem.ts | 14 - .../GaiaX/src/main/ets/gaiax/GXTemplateKey.ts | 379 --------- .../src/main/ets/gaiax/GXTemplateNode.ts | 396 ---------- .../GaiaX/src/main/ets/gaiax/GXTrack.ts | 47 -- .../GaiaX/src/main/ets/gaiax/GXValuePath.ts | 43 -- .../src/main/ets/gaiax/GXViewBuilder.ets | 477 ------------ .../src/main/ets/gaiax/GXViewTreeCreator.ts | 194 ----- .../GaiaX/src/main/ets/gaiax/view/GXView.ets | 8 - .../GaiaX/src/main/ets/pages/Index.ets | 17 - .../GaiaX/src/main/ets/utils/RawFileUtils.ets | 63 -- GaiaXHarmony/GaiaX/src/main/module.json5 | 13 - .../main/resources/base/element/color.json | 8 - .../main/resources/base/element/string.json | 8 - .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../main/resources/base/media/setting.jpeg | Bin 11320 -> 0 bytes .../resources/base/profile/main_pages.json | 5 - GaiaXHarmony/app/.gitignore | 6 - GaiaXHarmony/app/build-profile.json5 | 13 - GaiaXHarmony/app/hvigorfile.ts | 6 - GaiaXHarmony/app/oh-package-lock.json5 | 14 - GaiaXHarmony/app/oh-package.json5 | 12 - .../app/src/main/ets/appability/AppAbility.ts | 45 -- GaiaXHarmony/app/src/main/ets/pages/Index.ets | 27 - GaiaXHarmony/app/src/main/ets/pages/Modal.ets | 69 -- GaiaXHarmony/app/src/main/module.json5 | 37 - .../main/resources/base/element/color.json | 8 - .../main/resources/base/element/string.json | 16 - .../src/main/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../resources/base/profile/main_pages.json | 5 - .../main/resources/en_US/element/string.json | 16 - .../rawfile/harmony/harmony-demo/index.css | 49 -- .../harmony/harmony-demo/index.databinding | 6 - .../rawfile/harmony/harmony-demo/index.json | 21 - .../main/resources/zh_CN/element/string.json | 16 - .../src/ohosTest/ets/test/Ability.test.ets | 35 - .../app/src/ohosTest/ets/test/List.test.ets | 5 - .../ohosTest/ets/testability/TestAbility.ets | 50 -- .../ohosTest/ets/testability/pages/Index.ets | 34 - .../ets/testrunner/OpenHarmonyTestRunner.ts | 46 -- GaiaXHarmony/app/src/ohosTest/module.json5 | 37 - .../resources/base/element/color.json | 8 - .../resources/base/element/string.json | 16 - .../ohosTest/resources/base/media/icon.png | Bin 6790 -> 0 bytes .../resources/base/profile/test_pages.json | 5 - GaiaXHarmony/build-profile.json5 | 62 -- .../build_and_install_app_and_gaiax.sh | 48 -- GaiaXHarmony/build_and_install_gaiax.sh | 41 - .../config/auto_debug_40086000132854920.cer | 50 -- .../config/auto_debug_40086000132854920.csr | 9 - .../config/auto_debug_40086000132854920.p12 | Bin 968 -> 0 bytes ...m.alibaba.gaiax.demo_40086000132854920.cer | 50 -- ...m.alibaba.gaiax.demo_40086000132854920.csr | 9 - ...m.alibaba.gaiax.demo_40086000132854920.p12 | Bin 1128 -> 0 bytes ...m.alibaba.gaiax.demo_40086000132854920.p7b | Bin 4156 -> 0 bytes GaiaXHarmony/config/debug.p12 | Bin 3211 -> 0 bytes .../ac/3b91b963b318467bbc43edae8a8362f0 | 2 - .../ce/d2219569ba9f4e179b8ec193875ba8f6 | Bin 48 -> 0 bytes .../fd/0/2379066c9d9f4d09be1d6f5da64c8ba9 | 1 - .../fd/1/fe49d02062ec407eb9f8709cb3698f8e | 1 - .../fd/2/c747d9df96c04a61a9010bfa4fa2b9ff | 1 - GaiaXHarmony/hvigor/hvigor-config.json5 | 18 - GaiaXHarmony/hvigor/hvigor-wrapper.js | 1 - GaiaXHarmony/hvigorfile.ts | 6 - GaiaXHarmony/hvigorw | 48 -- GaiaXHarmony/hvigorw.bat | 64 -- GaiaXHarmony/oh-package-lock.json5 | 16 - GaiaXHarmony/oh-package.json5 | 12 - 98 files changed, 4420 deletions(-) delete mode 100644 GaiaXHarmony/.gitignore delete mode 100644 GaiaXHarmony/AppScope/app.json5 delete mode 100644 GaiaXHarmony/AppScope/resources/base/element/string.json delete mode 100644 GaiaXHarmony/AppScope/resources/base/media/app_icon.png delete mode 100644 GaiaXHarmony/GaiaX/.gitignore delete mode 100644 GaiaXHarmony/GaiaX/Index.ets delete mode 100644 GaiaXHarmony/GaiaX/build-profile.json5 delete mode 100644 GaiaXHarmony/GaiaX/hvigorfile.ts delete mode 100644 GaiaXHarmony/GaiaX/oh-package.json5 delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/component/GXComponent.ets delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssConvertStyle.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssParser.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXData.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXDataBinding.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXExpression.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGenerate.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGesture.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIEventListener.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionCustomComponent.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateInfoSource.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateSource.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXITrackListener.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXJson.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXMeasureSize.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXNode.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXRegisterCenter.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplate.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateContext.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateData.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateEngine.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateInfo.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateItem.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateKey.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateNode.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTrack.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXValuePath.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewBuilder.ets delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewTreeCreator.ts delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/gaiax/view/GXView.ets delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/pages/Index.ets delete mode 100644 GaiaXHarmony/GaiaX/src/main/ets/utils/RawFileUtils.ets delete mode 100644 GaiaXHarmony/GaiaX/src/main/module.json5 delete mode 100644 GaiaXHarmony/GaiaX/src/main/resources/base/element/color.json delete mode 100644 GaiaXHarmony/GaiaX/src/main/resources/base/element/string.json delete mode 100644 GaiaXHarmony/GaiaX/src/main/resources/base/media/icon.png delete mode 100644 GaiaXHarmony/GaiaX/src/main/resources/base/media/setting.jpeg delete mode 100644 GaiaXHarmony/GaiaX/src/main/resources/base/profile/main_pages.json delete mode 100644 GaiaXHarmony/app/.gitignore delete mode 100644 GaiaXHarmony/app/build-profile.json5 delete mode 100644 GaiaXHarmony/app/hvigorfile.ts delete mode 100644 GaiaXHarmony/app/oh-package-lock.json5 delete mode 100644 GaiaXHarmony/app/oh-package.json5 delete mode 100644 GaiaXHarmony/app/src/main/ets/appability/AppAbility.ts delete mode 100644 GaiaXHarmony/app/src/main/ets/pages/Index.ets delete mode 100644 GaiaXHarmony/app/src/main/ets/pages/Modal.ets delete mode 100644 GaiaXHarmony/app/src/main/module.json5 delete mode 100644 GaiaXHarmony/app/src/main/resources/base/element/color.json delete mode 100644 GaiaXHarmony/app/src/main/resources/base/element/string.json delete mode 100644 GaiaXHarmony/app/src/main/resources/base/media/icon.png delete mode 100644 GaiaXHarmony/app/src/main/resources/base/profile/main_pages.json delete mode 100644 GaiaXHarmony/app/src/main/resources/en_US/element/string.json delete mode 100644 GaiaXHarmony/app/src/main/resources/rawfile/harmony/harmony-demo/index.css delete mode 100644 GaiaXHarmony/app/src/main/resources/rawfile/harmony/harmony-demo/index.databinding delete mode 100644 GaiaXHarmony/app/src/main/resources/rawfile/harmony/harmony-demo/index.json delete mode 100644 GaiaXHarmony/app/src/main/resources/zh_CN/element/string.json delete mode 100644 GaiaXHarmony/app/src/ohosTest/ets/test/Ability.test.ets delete mode 100644 GaiaXHarmony/app/src/ohosTest/ets/test/List.test.ets delete mode 100644 GaiaXHarmony/app/src/ohosTest/ets/testability/TestAbility.ets delete mode 100644 GaiaXHarmony/app/src/ohosTest/ets/testability/pages/Index.ets delete mode 100644 GaiaXHarmony/app/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts delete mode 100644 GaiaXHarmony/app/src/ohosTest/module.json5 delete mode 100644 GaiaXHarmony/app/src/ohosTest/resources/base/element/color.json delete mode 100644 GaiaXHarmony/app/src/ohosTest/resources/base/element/string.json delete mode 100644 GaiaXHarmony/app/src/ohosTest/resources/base/media/icon.png delete mode 100644 GaiaXHarmony/app/src/ohosTest/resources/base/profile/test_pages.json delete mode 100644 GaiaXHarmony/build-profile.json5 delete mode 100755 GaiaXHarmony/build_and_install_app_and_gaiax.sh delete mode 100755 GaiaXHarmony/build_and_install_gaiax.sh delete mode 100644 GaiaXHarmony/config/auto_debug_40086000132854920.cer delete mode 100644 GaiaXHarmony/config/auto_debug_40086000132854920.csr delete mode 100644 GaiaXHarmony/config/auto_debug_40086000132854920.p12 delete mode 100644 GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.cer delete mode 100644 GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.csr delete mode 100644 GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p12 delete mode 100644 GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p7b delete mode 100644 GaiaXHarmony/config/debug.p12 delete mode 100644 GaiaXHarmony/config/material/ac/3b91b963b318467bbc43edae8a8362f0 delete mode 100644 GaiaXHarmony/config/material/ce/d2219569ba9f4e179b8ec193875ba8f6 delete mode 100644 GaiaXHarmony/config/material/fd/0/2379066c9d9f4d09be1d6f5da64c8ba9 delete mode 100644 GaiaXHarmony/config/material/fd/1/fe49d02062ec407eb9f8709cb3698f8e delete mode 100644 GaiaXHarmony/config/material/fd/2/c747d9df96c04a61a9010bfa4fa2b9ff delete mode 100644 GaiaXHarmony/hvigor/hvigor-config.json5 delete mode 100644 GaiaXHarmony/hvigor/hvigor-wrapper.js delete mode 100644 GaiaXHarmony/hvigorfile.ts delete mode 100755 GaiaXHarmony/hvigorw delete mode 100644 GaiaXHarmony/hvigorw.bat delete mode 100644 GaiaXHarmony/oh-package-lock.json5 delete mode 100644 GaiaXHarmony/oh-package.json5 diff --git a/GaiaXHarmony/.gitignore b/GaiaXHarmony/.gitignore deleted file mode 100644 index fbabf7710..000000000 --- a/GaiaXHarmony/.gitignore +++ /dev/null @@ -1,11 +0,0 @@ -/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/GaiaXHarmony/AppScope/app.json5 b/GaiaXHarmony/AppScope/app.json5 deleted file mode 100644 index e7fb9be90..000000000 --- a/GaiaXHarmony/AppScope/app.json5 +++ /dev/null @@ -1,10 +0,0 @@ -{ - "app": { - "bundleName": "com.alibaba.gaiax.demo", - "vendor": "example", - "versionCode": 1000000, - "versionName": "1.0.0", - "icon": "$media:app_icon", - "label": "$string:app_name" - } -} diff --git a/GaiaXHarmony/AppScope/resources/base/element/string.json b/GaiaXHarmony/AppScope/resources/base/element/string.json deleted file mode 100644 index 4325e909e..000000000 --- a/GaiaXHarmony/AppScope/resources/base/element/string.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "string": [ - { - "name": "app_name", - "value": "GaiaXDemo" - } - ] -} diff --git a/GaiaXHarmony/AppScope/resources/base/media/app_icon.png b/GaiaXHarmony/AppScope/resources/base/media/app_icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - if (template != null) { - gxRawFileTemplateSource.addData(this.gxTemplateItem.templateId, template); - this.reload = true; - } else { - console.log(`load template error ${error}`); - } - }); - } catch (error) { - console.error(`callback getRawFileContent failed, error code: ${error.code}, message: ${error.message}.`) - } - } - - build() { - if (this.reload) { - createView(this.gxTemplateItem, this.gxTemplateData, this.gxMeasureSize) - } else { - Text("GXTemplate loading") - } - } -} - diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssConvertStyle.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssConvertStyle.ts deleted file mode 100644 index 79ccd825e..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssConvertStyle.ts +++ /dev/null @@ -1,729 +0,0 @@ -import { GXJSONObject } from './GXJson'; -import { GXNode } from './GXNode'; -import GXTemplateContext from './GXTemplateContext'; -import GXMeasureSize from './GXMeasureSize'; -import GXTemplateNode, { GXGridConfig, GXScrollConfig } from './GXTemplateNode'; -import hilog from '@ohos.hilog'; - -export default class GXCssConvertStyle { - static createRootStyle( - gxMeasureSize: GXMeasureSize, - gxRootNode: GXNode, - gxTemplateData: GXJSONObject, - ): any { - const rootStyle = { - display: 'flex', - position: 'relative', - direction: 'inherit', - flexDirection: 'row', - flexWrap: 'nowrap', - overflow: 'hidden', - alignItems: 'stretch', - alignSelf: 'auto', - alignContent: 'flex-start', - justifyContent: 'flex-start', - flexShrink: '0', - flexGrow: '0', - width: '100%', - height: 'auto', - minWidth: 'auto', - minHeight: 'auto', - maxWidth: 'auto', - maxHeight: 'auto' - }; - - // 处理外部期望的宽度 - const width = gxMeasureSize.templateWidth + ''; - if (width != undefined && width != null) { - if (width.endsWith('px')) { - rootStyle.width = width; - } else { - rootStyle.width = width + 'px'; - } - } - - // 处理外部期望的高度 - const height = gxMeasureSize.templateHeight + ''; - if (height != undefined && height != null) { - if (height.endsWith('px')) { - rootStyle.height = height; - } else { - rootStyle.height = height + 'px'; - } - } - - // 如果动态更新的根节点高度,那么需要更新根节点的封装节点的样式为自适应 - const rootExtend = gxRootNode.gxTemplateNode.getExtend(gxTemplateData) - if (rootExtend != null) { - const extendHeight = rootExtend['height'] - if (extendHeight != null) { - rootStyle.height = 'auto'; - } - - const extendWidth = rootExtend['width'] - if (extendWidth != null) { - rootStyle.width = 'auto'; - } - } - - hilog.debug(0x0000, 'gaiaxTag', 'createRootStyle %{public}s', JSON.stringify(rootStyle) ?? 'null'); - - return rootStyle; - } - - static createViewStyleByCss( - gxTemplateContext: GXTemplateContext, - layer: GXJSONObject, - css: GXJSONObject, - gxTemplateNode: GXTemplateNode, - gxParentNode?: GXNode - ): any { - let style = { - display: 'flex', - position: "relative", - direction: 'inherit', - flexDirection: 'row', - flexWrap: 'nowrap', - overflow: 'hidden', - alignItems: 'stretch', - alignSelf: 'auto', - alignContent: 'flex-start', - justifyContent: 'flex-start', - flexShrink: '1', - flexGrow: '0', - // flexBasis: 'auto', - // paddingLeft: '0px', - // paddingTop: '0px', - // paddingRight: '0px', - // paddingBottom: '0px', - // marginLeft: '0px', - // marginTop: '0px', - // marginRight: '0px', - // marginBottom: '0px', - // left: '0px', - // top: '0px', - // right: '0px', - // bottom: '0px', - width: 'auto', - height: 'auto', - minWidth: 'auto', - minHeight: 'auto', - maxWidth: 'auto', - maxHeight: 'auto', - // // 无法使用 - // aspectRatio: '', - // // - // backgroundColor: '', - // fontSize: '', - // fontFamily: 'unset', - // color: '', - // fontWeight: 'unset', - // backgroundImage: 'unset', - // maxLines: 'unset', - // textOverflow: 'unset', - // textAlign: 'unset', - // borderColor: 'unset', - // borderWidth: '0px', - // borderTopLeftRadius: '0px', - // borderTopRightRadius: '0px', - // borderBottomLeftRadius: '0px', - // borderBottomRightRadius: '0px', - // lineHeight: '', - // textDecoration: '', - mode: 'scaleToFill', - }; - this.updateViewStyleByCss(gxTemplateContext, style, layer, css, gxTemplateNode, gxParentNode); - - hilog.debug(0x0000, 'gaiaxTag', 'createViewStyleByCss %{public}s', JSON.stringify(style) ?? 'null'); - - return style; - } - - static updateViewStyleByCss( - gxTemplateContext: GXTemplateContext, - targetStyle: any, - srcLayer: GXJSONObject, - srcCss: GXJSONObject, - gxTemplateNode: GXTemplateNode, - gxParentNode?: GXNode - ) { - - // - // Layout - // - - let display = srcCss['display']; - if (display != undefined) { - targetStyle.display = display; - } - - let direction = srcCss['direction']; - if (direction != undefined) { - targetStyle.direction = direction; - } - - let flexDirection = srcCss['flex-direction']; - if (flexDirection != undefined) { - targetStyle.flexDirection = flexDirection; - } - - let flexWrap = srcCss['flex-wrap']; - if (flexWrap != undefined) { - targetStyle.flexWrap = flexWrap; - } - - let overflow = srcCss['overflow']; - if (overflow != undefined) { - targetStyle.overflow = overflow; - } - - let alignItems = srcCss['align-items']; - if (alignItems != undefined) { - targetStyle.alignItems = alignItems; - } - - let alignSelf = srcCss['align-self']; - if (alignSelf != undefined) { - targetStyle.alignSelf = alignSelf; - } - - let alignContent = srcCss['align-content']; - if (alignContent != undefined) { - targetStyle.alignContent = alignContent; - } - - let justifyContent = srcCss['justify-content']; - if (justifyContent != undefined) { - targetStyle.justifyContent = justifyContent; - } - - let flexGrow = srcCss['flex-grow']; - if (flexGrow != undefined) { - targetStyle.flexGrow = flexGrow; - } - - let flexShrink = srcCss['flex-shrink']; - - if (flexShrink != undefined) { - targetStyle.flexShrink = flexShrink; - } - - let flexBasis = srcCss['flex-basis']; - if (flexBasis != undefined) { - targetStyle.flexBasis = flexBasis; - } - - let position = srcCss['position']; - if (position != undefined) { - targetStyle.position = position; - } - - let left = srcCss['left']; - if (left != undefined) { - targetStyle.left = left; - } - - let right = srcCss['right']; - if (right != undefined) { - targetStyle.right = right; - } - - let top = srcCss['top']; - if (top != undefined) { - targetStyle.top = top; - } - - let bottom = srcCss['bottom']; - if (bottom != undefined) { - targetStyle.bottom = bottom; - } - - let marginLeft = srcCss['margin-left']; - if (marginLeft != undefined) { - targetStyle.marginLeft = marginLeft; - } - - let marginTop = srcCss['margin-top']; - if (marginTop != undefined) { - targetStyle.marginTop = marginTop; - } - - let marginRight = srcCss['margin-right']; - if (marginRight != undefined) { - targetStyle.marginRight = marginRight; - } - - let marginBottom = srcCss['margin-bottom']; - if (marginBottom != undefined) { - targetStyle.marginBottom = marginBottom; - } - - let paddingLeft = srcCss['padding-left']; - if (paddingLeft != undefined) { - targetStyle.paddingLeft = paddingLeft; - } - - let paddingTop = srcCss['padding-top']; - if (paddingTop != undefined) { - targetStyle.paddingTop = paddingTop; - } - - let paddingRight = srcCss['padding-right']; - if (paddingRight != undefined) { - targetStyle.paddingRight = paddingRight; - } - - let paddingBottom = srcCss['padding-bottom']; - if (paddingBottom != undefined) { - targetStyle.paddingBottom = paddingBottom; - } - - let width = srcCss['width'] || ''; - if (width != '') { - targetStyle.width = width; - } - - let height = srcCss['height'] || ''; - if (height != '') { - targetStyle.height = height; - } - - let minWidth = srcCss['min-width']; - if (minWidth != undefined) { - targetStyle.minWidth = minWidth; - } - - let minHeight = srcCss['min-height']; - if (minHeight != undefined) { - targetStyle.minHeight = minHeight; - } - - let maxWidth = srcCss['max-width']; - if (maxWidth != undefined) { - targetStyle.maxWidth = maxWidth; - } - - let maxHeight = srcCss['max-height']; - if (maxHeight != undefined) { - targetStyle.maxHeight = maxHeight; - } - - // 特殊处理:在微信小程序上不生效;在H5上生效 - // 小程序不支持 - let aspectRatio = srcCss['aspect-ratio']; - if (aspectRatio != undefined) { - targetStyle.aspectRatio = aspectRatio; - } - - // - // Style - // - - let opacity = srcCss['opacity']; - if (opacity != undefined) { - targetStyle.opacity = opacity; - } - - let boxShadow = srcCss['box-shadow']; - if (boxShadow != undefined) { - targetStyle.boxShadow = boxShadow; - } - - let backgroundColor = srcCss['background-color']; - if (backgroundColor != undefined) { - targetStyle.backgroundColor = backgroundColor; - } - - let backgroundImage = srcCss['background-image']; - if (backgroundImage != undefined) { - targetStyle.backgroundImage = backgroundImage; - } - - let borderColor = srcCss['border-color']; - if (borderColor != undefined) { - targetStyle.borderColor = borderColor; - } - - let borderStyle = srcCss['border-style']; - if (borderStyle != undefined) { - targetStyle.borderStyle = borderStyle; - } - - let borderWidth = srcCss['border-width']; - if (borderWidth != undefined) { - targetStyle.borderWidth = borderWidth; - } - - let borderTopLeftRadius = srcCss['border-top-left-radius']; - if (borderTopLeftRadius != undefined) { - targetStyle.borderTopLeftRadius = borderTopLeftRadius; - } - - let borderTopRightRadius = srcCss['border-top-right-radius']; - if (borderTopRightRadius != undefined) { - targetStyle.borderTopRightRadius = borderTopRightRadius; - } - - let borderBottomLeftRadius = srcCss['border-bottom-left-radius']; - if (borderBottomLeftRadius != undefined) { - targetStyle.borderBottomLeftRadius = borderBottomLeftRadius; - } - - let borderBottomRightRadius = srcCss['border-bottom-right-radius']; - if (borderBottomRightRadius != undefined) { - targetStyle.borderBottomRightRadius = borderBottomRightRadius; - } - - let borderRadius = srcCss['border-radius']; - if (borderRadius != undefined) { - targetStyle.borderRadius = borderRadius; - } - - if (gxTemplateNode.isTextType() || gxTemplateNode.isRichTextType() || gxTemplateNode.isIconFontType()) { - let fontSize = srcCss['font-size']; - if (fontSize != undefined) { - targetStyle.fontSize = fontSize; - } - - let fontFamily = srcCss['font-family']; - if (fontFamily != undefined) { - targetStyle.fontFamily = fontFamily; - } - - let fontWeight = srcCss['font-weight']; - if (fontWeight != undefined) { - targetStyle.fontWeight = fontWeight; - } - - let color = srcCss['color']; - if (color != undefined) { - targetStyle.color = color; - } - - let textOverflow = srcCss['text-overflow']; - targetStyle.textOverflow = "ellipsis" - if (textOverflow != undefined) { - targetStyle.textOverflow = textOverflow; - } - - let textAlign = srcCss['text-align']; - if (textAlign != undefined) { - targetStyle.textAlign = textAlign; - } - - let lineHeight = srcCss['line-height']; - if (lineHeight != undefined) { - targetStyle.lineHeight = lineHeight; - } - - let textDecoration = srcCss['text-decoration']; - if (textDecoration != undefined) { - targetStyle.textDecoration = textDecoration; - } - } - - if (gxTemplateNode.isImageType()) { - let mode = srcCss['mode']; - if (mode != undefined) { - gxTemplateNode.imageMode = mode; - } - } - - // - // 特殊处理的逻辑 - // - - // 对图片进行处理 - if (gxTemplateNode.isImageType()) { - // 特殊处理:图片不允许被压缩 - targetStyle.flexShrink = '0'; - - // 特殊处理:只有溢出不裁剪,才能显示阴影 - } - - // 对View进行处理 - if (gxTemplateNode.isViewType()) { - - // 特殊处理:只有溢出不裁剪,才能显示阴影 - if (boxShadow != null) { - targetStyle.boxShadow = ''; - if (overflow == 'visible') { - targetStyle.boxShadow = boxShadow; - } - } - - // 特殊处理:如果不需要溢出裁剪,那么需要将display改成inline - if (overflow != null && overflow == "visible") { - targetStyle.display = 'inline'; - } - - // 特殊处理:因为下面的因素,对于view,将其position改为absolute,达到视觉效果一致的目的,不过可能会有衍生问题出现。 - // H5:元素实际的width = padding + width - // Native:元素实际的width = padding + (width-padding) - if (width.endsWith('px') && paddingLeft != null) { - targetStyle.width = parseInt(width) - parseInt(paddingLeft) + 'px' - gxTemplateNode.forceWidthChange = true - } - if (gxParentNode?.gxTemplateNode?.forceWidthChange == true) { - targetStyle.position = 'absolute'; - } - } - - // 对嵌套节点进行处理 - if (gxTemplateNode.isGaiaTemplate()) { - // 特殊处理:如果是嵌套节点,并且自身有内边距,并且width100%,那么需要处理一下 - if ((paddingLeft != null || paddingRight != null) && targetStyle.width == '100%' && gxParentNode != null) { - targetStyle.width = 'auto'; - targetStyle.flexGrow = '1'; - } - - // 如果是嵌套模板的根节点,并且宽度100%,有左右padding信息,那么需要可以被压缩 - // if (gxTemplateContext.isNestChildTemplate && srcLayer['sub-type'] == undefined) { - // if (width == '100%' && (paddingLeft != undefined || paddingRight != undefined)) { - // targetStyle.flexShrink = '1'; - // // 若还是垂直布局,那么宽度需要auto - // if (gxParentNode?.gxTemplateNode.finalStyle?.flexDirection == 'column') { - // targetStyle.width = 'auto'; - // } - // } - // } - } - - // 对Text进行处理 - if (gxTemplateNode.isTextType() || gxTemplateNode.isRichTextType() || gxTemplateNode.isIconFontType()) { - - // 特殊处理:对文字渐变色进行处理 - if (backgroundImage != null) { - targetStyle['-webkit-background-clip'] = 'text'; - targetStyle.color = 'transparent'; - } - - // 特殊处理:文字默认居中 - if (height.endsWith('px')) { - targetStyle.lineHeight = height; - } - - // 特殊处理:如果height没有设置,那么高度是stretch撑满父空间的,此时文字应该居中 - if (height == undefined && gxParentNode != null) { - targetStyle.lineHeight = gxParentNode.gxTemplateNode.finalStyle.height; - } - - // 特殊处理:如果横向,文字是固定宽度,那么不能被压缩 - if (gxParentNode?.gxTemplateNode?.finalStyle?.flexDirection == 'row' && width.endsWith('px')) { - targetStyle.flexShrink = '0'; - } - - // 特殊处理:如果竖向, 文字是固定高度,那么不能被压缩 - if (gxParentNode?.gxTemplateNode?.finalStyle?.flexDirection == 'column' && height.endsWith('px') - ) { - targetStyle.flexShrink = '0'; - } - - // 特殊处理:对文字自适应的处理 - let fitContent = srcCss['fit-content']; - - // 对文字自适应进行特殊处理 - if (fitContent != null && fitContent != undefined) { - // css parser 返回 attr:string - if (fitContent == 'true') { - // 如果宽度是auto并且设置的自增长,那么fitcontent之后,需要按照实际的宽度设置 - if ((width == 'auto' || width == undefined) && flexGrow == '1') { - targetStyle.flexGrow = '0'; - } - // 特殊处理:如果宽度是具体的像素值,并且设置了fitcontent,那么需要宽度auto - else if (width.endsWith('px')) { - // 特殊处理:如果未设定maxWidth或者maxWidth为auto,那么需要设置maxWidth=width,来限定自适应的结果 - if (targetStyle.maxWidth == undefined || targetStyle.maxWidth == null || targetStyle.maxWidth == 'auto') { - targetStyle.maxWidth = targetStyle.width; - } - targetStyle.width = 'auto'; - } else if (width == undefined) { - // 特殊处理:如果宽度没设置,并且是自适应,那么自适应的文字不应该被压缩 - targetStyle.flexShrink = '0'; - } - } else { - // 特殊处理:如果没有设置文字自适应,并且width没有设置,那么宽度设置为0px - if (width == undefined) { - targetStyle.width = '0px'; - } - } - } - - // 特殊处理:处理多行文字...逻辑 - let maxLines = srcCss['lines']; - if (maxLines != undefined && maxLines > 1) { - targetStyle['-webkit-box-orient'] = 'vertical'; - targetStyle['-webkit-line-clamp'] = maxLines; - targetStyle['line-clamp'] = maxLines; - targetStyle.display = '-webkit-box'; - targetStyle.overflow = 'hidden'; - targetStyle.lineHeight = ''; - - // 如果不是fitcontent=true,并且多行,那么需要手动计算一下高度,并且赋值 - if (fitContent == 'false' && targetStyle.height != undefined) { - let tmpHeight = targetStyle.height as string; - if (tmpHeight.endsWith('px')) { - targetStyle.height = parseInt(tmpHeight.substring(0, tmpHeight.indexOf('px'))) * maxLines + 'px'; - } - // 如果不符合后缀逻辑,那么直接设置auto - else { - targetStyle.height = 'auto'; - } - } - // 自适应,那么高度设置成auto - else if (fitContent == 'true') { - targetStyle.height = 'auto'; - } - - } - // 特殊处理:处理单行文字...逻辑 - else if (targetStyle.textOverflow == "ellipsis") { - targetStyle.minWidth = '0px'; - targetStyle.whiteSpace = 'nowrap'; - targetStyle.display = ''; - } - } - - } - - static createGridStyleByConfig(gxStyle: any, gxGridConfig: GXGridConfig) { - const gxGridStyle = gxStyle; - - // 特殊处理 - gxGridStyle.display = 'inline-block'; - gxGridStyle.overflow = 'hidden'; - - // 和native保持一致 - // edge-insets - if (gxGridConfig.edgeInsetsTop != null) { - gxGridStyle.marginTop = gxGridConfig.edgeInsetsTop; - } - if (gxGridConfig.edgeInsetsLeft != null) { - gxGridStyle.marginLeft = gxGridConfig.edgeInsetsLeft; - } - if (gxGridConfig.edgeInsetsRight != null) { - gxGridStyle.marginRight = gxGridConfig.edgeInsetsRight; - } - if (gxGridConfig.edgeInsetsBottom != null) { - gxGridStyle.marginBottom = gxGridConfig.edgeInsetsBottom; - } - return gxGridStyle; - } - - static createScrollStyleByConfig(gxStyle: any, gxScrollConfig: GXScrollConfig) { - const scrollStyle = gxStyle; - - // 特殊处理,否则无法滑动 - scrollStyle.display = 'inline-block'; - scrollStyle.overflow = 'scroll'; - - // 和native保持一致 - // edge-insets - if (gxScrollConfig.edgeInsetsTop != null) { - scrollStyle.paddingTop = gxScrollConfig.edgeInsetsTop; - } - if (gxScrollConfig.edgeInsetsLeft != null) { - scrollStyle.paddingLeft = gxScrollConfig.edgeInsetsLeft; - } - if (gxScrollConfig.edgeInsetsRight != null) { - scrollStyle.paddingRight = gxScrollConfig.edgeInsetsRight; - } - if (gxScrollConfig.edgeInsetsBottom != null) { - scrollStyle.paddingBottom = gxScrollConfig.edgeInsetsBottom; - } - - // 处理Scroll的左右内边距的情况 - if ((scrollStyle.paddingLeft != '' || scrollStyle.paddingRight != '') && scrollStyle.width == '100%') { - scrollStyle.width = 'auto'; - // 特殊处理:微信:将display处理成grid,否则内边距会不生效 - // if (process.env.TARO_ENV === 'weapp') { - // scrollStyle.display = 'grid'; - // } - } - - const isHorizontal = gxScrollConfig.direction == 'horizontal'; - const isVertical = gxScrollConfig.direction == 'vertical'; - - // 此处可能要根据多平台适配 - if (isHorizontal) { - // https://taro-docs.jd.com/taro/docs/components/viewContainer/scroll-view - // if (process.env.TARO_ENV === 'h5') { - // scrollStyle.display = 'inline-flex'; - // } else if (process.env.TARO_ENV === 'weapp') { - // scrollStyle["white-space"] = "nowrap"; - // } - } else { - scrollStyle.display = ''; - } - - const finalScrollStyle = Object.keys(scrollStyle).reduce((accumulator, key) => { - const cssKey = key; - const cssValue = scrollStyle[key].replace("'", ""); - return `${accumulator}${cssKey}:${cssValue};`; - }, ''); - - return finalScrollStyle; - } - - static createScrollItemWrapStyleByConfig(isHorizontal: boolean, itemIndex: number, dataSize: number, gxScrollConfig: GXScrollConfig, isVertical: boolean) { - let itemWrapStyle = { - marginRight: '0px', - marginBottom: '0px', - display: '' - }; - - if (isHorizontal) { - // if (process.env.TARO_ENV === 'weapp') { - // itemWrapStyle.display = 'inline-block'; - // } - } - - if (itemIndex != dataSize - 1) { - if (isHorizontal) { - if (gxScrollConfig.itemSpacing != null) { - itemWrapStyle.marginRight = gxScrollConfig.itemSpacing; - } - - } else if (isVertical) { - if (gxScrollConfig.itemSpacing != null) { - itemWrapStyle.marginBottom = gxScrollConfig.itemSpacing; - } - } - } - return itemWrapStyle; - } - - static createGridGroupStyle(groupItemIndex: number, gridGroupSize: number, isVertical: boolean, gxGridConfig: GXGridConfig) { - const gxGridGroupStyle = { - display: 'flex', - marginBottom: '0px' - }; - - if (groupItemIndex != gridGroupSize - 1) { - if (isVertical) { - if (gxGridConfig.rowSpacing != null) { - gxGridGroupStyle.marginBottom = gxGridConfig.rowSpacing; - } - } - } - return gxGridGroupStyle; - } - - static createGridGroupItemStyle(childItemIndex: number, groupItemSize: number, isVertical: boolean, gxGridConfig: GXGridConfig) { - const gxGridGroupItemStyle = { - flex: `1 1 0`, - display: 'block', - marginRight: '0px' - }; - - if (childItemIndex != groupItemSize - 1) { - if (isVertical) { - if (gxGridConfig.itemSpacing != null) { - gxGridGroupItemStyle.marginRight = gxGridConfig.itemSpacing; - } - } - } - return gxGridGroupItemStyle; - } -} - diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssParser.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssParser.ts deleted file mode 100644 index 313797161..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXCssParser.ts +++ /dev/null @@ -1,74 +0,0 @@ -export const selX = /([^\s\;\{\}][^\;\{\}]*)\{/g; - -export const endX = /\}/g; - -export const lineX = /([^\;\{\}]*)\;/g; - -export const commentX = /\/\*[\s\S]*?\*\//g; - -export const lineAttrX = /([^\:]+):([^\;]*);/; - -// This is used, a concatenation of all above. We use alternation to -// capture. -export const altX = /(\/\*[\s\S]*?\*\/)|([^\s\;\{\}][^\;\{\}]*(?=\{))|(\})|([^\;\{\}]+\;(?!\s*\*\/))/gim; - -export const isEmpty = function (x: Record): boolean { - return typeof x == 'undefined' || x.length == 0 || x == null; -}; - -// const capComment = 1; -const capSelector = 2; -const capEnd = 3; -const capAttr = 4; - -export const toJSON = function (cssString: string): any { - const node = {}; - let match: any = null; - let count = 0; - - while ((match = altX.exec(cssString)) != null) { - if (!isEmpty(match[capSelector])) { - // New node, we recurse - const name = match[capSelector].trim(); - // This will return when we encounter a closing brace - const newNode = toJSON(cssString); - const bits = [name]; - for (const i in bits) { - const sel = bits[i].trim(); - if (sel in node) { - for (const att in newNode) { - node[sel][att] = newNode[att]; - } - } else { - node[sel] = newNode; - } - } - } else if (!isEmpty(match[capEnd])) { - // Node has finished - return node; - } else if (!isEmpty(match[capAttr])) { - const line = match[capAttr].trim(); - const attr = lineAttrX.exec(line); - if (attr) { - // Attribute - const name = attr[1].trim(); - const value = attr[2].trim(); - - if (name in node) { - const currVal = node[name]; - if (!(currVal instanceof Array)) { - node[name] = [currVal]; - } - node[name].push(value); - } else { - node[name] = value; - } - } else { - // Semicolon terminated line - node[count++] = line; - } - } - } - - return node; -}; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXData.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXData.ts deleted file mode 100644 index 6108871f8..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXData.ts +++ /dev/null @@ -1,39 +0,0 @@ -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateInfo from './GXTemplateInfo'; -import GXIExtensionTemplateSource from './GXIExtensionTemplateSource'; -import GXIExtensionTemplateInfoSource from './GXIExtensionTemplateInfoSource'; -import GXTemplate from './GXTemplate'; -import hilog from '@ohos.hilog'; - -class GXTemplateInfoSource implements GXIExtensionTemplateInfoSource { - private dataCache = new Map>(); - - getTemplateInfo(templateItem: GXTemplateItem): GXTemplateInfo { - // TODO: GXTemplateInfo缓存逻辑 - return GXTemplateInfo.createByGXTemplateItem(templateItem); - } -} - -class GXTemplateSource implements GXIExtensionTemplateSource { - getTemplate(templateItem: GXTemplateItem): GXTemplate { - hilog.debug(0x0000, 'gaiaxTag', 'getTemplate %{public}s', JSON.stringify(templateItem) ?? 'null'); - return this.gxTemplateSource?.getTemplate(templateItem) - } - - private gxTemplateSource?: GXIExtensionTemplateSource; - - register(gxTemplateSource: GXIExtensionTemplateSource) { - hilog.debug(0x0000, 'gaiaxTag', 'register %{public}s', JSON.stringify(gxTemplateSource) ?? 'null'); - this.gxTemplateSource = gxTemplateSource; - } -} - -export default class GXData { - gxTemplateInfoSource = new GXTemplateInfoSource(); - - gxTemplateSource = new GXTemplateSource(); - - getTemplateInfo(templateItem: GXTemplateItem): GXTemplateInfo { - return this.gxTemplateInfoSource.getTemplateInfo(templateItem); - } -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXDataBinding.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXDataBinding.ts deleted file mode 100644 index 9839085ab..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXDataBinding.ts +++ /dev/null @@ -1,23 +0,0 @@ -import GXExpression from './GXExpression'; -import { GXJSONObject } from './GXJson'; - -export default class GXDataBinding { - static getExtend(data?: GXJSONObject, gxTemplateData?: GXJSONObject): GXJSONObject { - if (data != null && data.extend != null) { - return GXExpression.desireData(data.extend, gxTemplateData) as GXJSONObject - } - return null; - } - - static getData(data?: GXJSONObject, gxTemplateData?: GXJSONObject): GXJSONObject { - if (data != null) { - const result = {}; - if (data.value != null) { - result['value'] = GXExpression.desireData(data.value, gxTemplateData) as GXJSONObject; - return result as GXJSONObject; - } - return {} as GXJSONObject; - } - return {} as GXJSONObject; - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXExpression.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXExpression.ts deleted file mode 100644 index deb774d2b..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXExpression.ts +++ /dev/null @@ -1,322 +0,0 @@ -import computeValuePath from './GXValuePath'; - -class GXExpression { - desireData(expression: any, rawJson: any): any { - if (typeof expression === 'boolean') { - return expression; - } - else if (typeof expression === 'number') { - return expression; - } - else if (expression == null) { - return null; - } - else if (typeof expression === 'object') { - const targetObj = expression; - const result = {}; - Object.keys(targetObj).forEach(key => { - result[key] = instance.desireData(targetObj[key], rawJson); - }); - return result; - } - else if (typeof expression === 'string') { - const exp = expression.trim() - // GXSelf - if (this.isSelf(exp)) { - return rawJson; - } - // GXNull - else if (this.isNull(exp)) { - return null; - } - // GXBool - else if (this.isBool(exp)) { - if (exp == 'true') { - return true; - } else { - return false; - } - } - // GXNumber - else if (this.isNumber(exp)) { - return parseFloat(exp); - } - // GXString - else if (this.isString(exp)) { - return exp.substring(1, exp.length - 1); - } - // GXEval - else if (this.isEval(exp)) { - const newExp = exp.substring("eval(".length, exp.length - 1).trim(); - if (newExp.includes("==")) { - const result = newExp.split("=="); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left == right; - } else if (newExp.includes(">=")) { - const result = newExp.split(">=") - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left >= right; - } else if (newExp.includes(">")) { - const result = newExp.split(">"); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left > right; - } else if (newExp.includes("<=")) { - const result = newExp.split("<="); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left <= right; - } else if (newExp.includes("<")) { - const result = newExp.split("<"); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left < right; - } else if (newExp.includes("!=")) { - const result = newExp.split("!="); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left != right; - } else if (newExp.includes("||")) { - const result = newExp.split("||"); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left || right; - } else if (newExp.includes("&&")) { - const result = newExp.split("&&"); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left && right; - } else if (newExp.includes("%")) { - const result = newExp.split("%"); - const left = instance.desireData(result[0], rawJson) - const right = instance.desireData(result[1], rawJson) - return left % right; - } - return false; - } - // GXEnv - else if (this.isEnv(exp)) { - return NaN; - } - // GXScroll - else if (this.isScroll(exp)) { - return NaN; - } - // GXSize - else if (this.isSize(exp)) { - return NaN; - } - // GXTextValue - else if (this.isTextValue(exp)) { - let result = ''; - const splits = exp.split(" + "); - splits.forEach(element => { - let value = instance.desireData(element, rawJson) - if (value != null) { - result += value; - } - }); - return result; - } - // GXValue - else if (this.isValue(exp)) { - const result = exp.substring(2, exp.length - 1) - if (typeof rawJson == 'object') { - return computeValuePath(result, rawJson); - } - return ''; - } - // GXTernaryValue3 - else if (this.isTernaryValue3(exp)) { - // @{ a ? b : @{ c ? d : e } } - // @{ a ?: @{ c ?: e } } - - const newExp = exp.substring(2, exp.length - 1).trim(); - - let ternaryIndexOf = newExp.indexOf('@{') - let ternary11IndexOf = newExp.indexOf(' ? ') - let ternary12IndexOf = newExp.indexOf(' : ') - let ternary2IndexOf = newExp.indexOf(' ?: ') - - if (ternary11IndexOf < ternaryIndexOf && ternary12IndexOf < ternaryIndexOf) { - const condition = newExp.substring(0, ternary11IndexOf).trim() - const trueResult = newExp.substring(ternary11IndexOf + 3, ternary12IndexOf).trim() - const falseResult = newExp.substring(ternary12IndexOf + 3, newExp.length).trim() - - const cond = instance.desireData(condition, rawJson) - if (this.isCondition(cond)) { - return instance.desireData(trueResult, rawJson) - } else { - return instance.desireData(falseResult, rawJson) - } - - } else if (ternary2IndexOf < ternaryIndexOf) { - const conditionAndTrue = newExp.substring(0, ternary2IndexOf).trim() - const falseResult = newExp.substring(ternary2IndexOf + 4, newExp.length).trim() - - const cond = instance.desireData(conditionAndTrue, rawJson) - if (this.isCondition(cond)) { - return cond - } else { - return instance.desireData(falseResult, rawJson) - } - } - return NaN; - } - // GXTernaryValue1 - else if (this.isTernaryValue1(exp)) { - - const newExp = exp.substring(2, exp.length - 1); - const splits1 = newExp.split("?"); - const condition = splits1[0].trim() - const splits2 = splits1[1].split(":"); - const trueResult = splits2[0].trim() - const falseResult = splits2[1].trim() - - const cond = instance.desireData(condition, rawJson) - if (this.isCondition(cond)) { - return instance.desireData(trueResult, rawJson) - } else { - return instance.desireData(falseResult, rawJson) - } - } - // GXTernaryValue2 - else if (this.isTernaryValue2(exp)) { - - const newExp = exp.substring(2, exp.length - 1); - const split = newExp.split("?:"); - const conditionAndTrue = split[0].trim() - const falseResult = split[1].trim() - - const cond = instance.desireData(conditionAndTrue, rawJson) - if (this.isCondition(cond)) { - return cond - } else { - return instance.desireData(falseResult, rawJson) - } - } - // GXText - else if (this.isText(exp)) { - return exp; - } - } - return null; - } - - isCondition(condition: any): boolean { - if (typeof condition == 'boolean' && condition == true) { - return true - } else if (typeof condition == 'number' && condition != 0.0) { - return true - } else if (condition == "0" || condition == "false" || condition == false || condition == 0 || condition == 0.0) { - return false - } else if (condition == "1" || condition == "true" || (typeof condition == 'string' && condition.length != 0)) { - return true - } else if (typeof condition == 'string' && condition.length == 0) { - return false - } else { - return condition != null - } - } - - private isText(expression: string) { - return expression.length != 0; - } - - // @{ a ? b : @{ c ?: d} } - private isTernaryValue3(expression: string) { - let result = expression.match(this.ternaryValueRegex) - if (result != null && result.length >= 2) { - return true; - } - return false; - } - - // @{ ${data} ? b : c } - private isTernaryValue1(expression: string) { - let result = expression.match(this.ternaryValueRegex) - if (result != null && result.length == 1) { - return /\@\{.+\?.+\:.+\}/g.test(expression); - } - return false; - } - - // @{ ${data} ?: b } - private isTernaryValue2(expression: string) { - let result = expression.match(this.ternaryValueRegex) - if (result != null && result.length == 1) { - return /\@\{.+\?\:.+\}/g.test(expression) - } - return false; - } - - private valueRegex = /\$\{[a-zA-Z.\[\]0-9]+\}/g; - private ternaryValueRegex = /\@\{/g; - - private isValue(expression: string) { - if (expression.startsWith("${") && expression.endsWith("}")) { - let result = expression.match(this.valueRegex) - if (result != null && result.length == 1) { - return true; - } - } - return false; - } - - /** - * 文本表达式: - * - * text + ${data} - * - * ${data} + text - * - * @{ xxx } + text - * text + @{} - */ - private isTextValue(expression: string) { - return!expression.startsWith("@") && expression.indexOf(" + ") != -1; - } - - private isSize(expression: string) { - return expression.startsWith("size(") && expression.endsWith(")"); - } - - private isScroll(expression: string) { - return expression.startsWith("scroll(") && expression.endsWith(")"); - } - - private isEnv(expression: string) { - return expression.startsWith("env(") && expression.endsWith(")"); - } - - private isEval(expression: string) { - return expression.startsWith("eval(") && expression.endsWith(")"); - } - - private isString(expression: string) { - return expression.startsWith("'") && expression.endsWith("'"); - } - - private isNumber(expression: string) { - // eslint-disable-next-line no-restricted-globals - return !isNaN(parseFloat(expression)) // ...and ensure strings of whitespace fail - } - - private isBool(expression: string) { - return expression == "true" || expression == "false"; - } - - private isNull(expression: string) { - return expression == "null"; - } - - private isSelf(expression: string) { - return expression == "$$"; - } -} - -const instance = new GXExpression(); - -export default instance \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGenerate.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGenerate.ts deleted file mode 100644 index 4cf5eccdb..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGenerate.ts +++ /dev/null @@ -1,33 +0,0 @@ -import hilog from '@ohos.hilog'; -import GXMeasureSize from './GXMeasureSize'; -import GXTemplateContext from './GXTemplateContext'; -import GXTemplateData from './GXTemplateData'; -import GXTemplateEngine from './GXTemplateEngine'; -import GXTemplateInfo from './GXTemplateInfo'; -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateNode from './GXTemplateNode'; - -class GXGenerator { - // 创建上下文 - createContext(gxTemplateItem: GXTemplateItem, - gxTemplateData: GXTemplateData, - gxMeasureSize: GXMeasureSize, - gxVisualTemplateNode?: GXTemplateNode) { - hilog.debug(0x0000, 'gaiaxTag', 'createContext %{public}s %{public}s %{public}s', JSON.stringify(gxTemplateItem) ?? 'null', JSON.stringify(GXTemplateData) ?? 'null', JSON.stringify(gxMeasureSize) ?? 'null'); - - let gxTemplateInfo: GXTemplateInfo = GXTemplateEngine.gxData.getTemplateInfo(gxTemplateItem); - - hilog.debug(0x0000, 'gaiaxTag', 'createContext %{public}s ', JSON.stringify(gxTemplateInfo) ?? 'null'); - - if (gxTemplateInfo == null) { - return null; - } - - // 构建上下文 - return new GXTemplateContext(gxTemplateItem, gxTemplateData, gxMeasureSize, gxTemplateInfo, gxVisualTemplateNode) - } -} - -let gxGenerate = new GXGenerator(); - -export default gxGenerate as GXGenerator; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGesture.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGesture.ts deleted file mode 100644 index 4355ceacc..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXGesture.ts +++ /dev/null @@ -1,54 +0,0 @@ -import { GXJSONObject } from './GXJson' -import { GXNode } from './GXNode' -import GXTemplateContext from './GXTemplateContext' -import GXTemplateItem from './GXTemplateItem' -import GXTemplateKey from './GXTemplateKey' - -export default class GXGesture { - /** - * Event types:tap, longpress - */ - gestureType: string = GXTemplateKey.GAIAX_GESTURE_TYPE_TAP - - /** - * Target view - */ - // view: ReactNode = null - - /** - * Node id - */ - nodeId: string = null - - nodeIdPath: string = null - - /** - * Template information - */ - templateItem: GXTemplateItem = null - - /** - * View index - */ - index: number = null - - /** - * Event data - */ - eventParams: GXJSONObject = null - - static create( - gxTemplateContext: GXTemplateContext, - gxTemplateData: GXJSONObject, - gxNode: GXNode - ): GXGesture { - const gxGesture = new GXGesture() - gxGesture.nodeId = gxNode.gxId; - gxGesture.nodeIdPath = gxNode.gxIdPath; - gxGesture.templateItem = gxTemplateContext.gxTemplateItem; - gxGesture.eventParams = gxNode.gxTemplateNode.getEventData(gxTemplateData); - // TODO - // gxGesture.view = gxNode.gxView; - return gxGesture; - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIEventListener.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIEventListener.ts deleted file mode 100644 index 5a0fe83e1..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIEventListener.ts +++ /dev/null @@ -1,10 +0,0 @@ -import GXGesture from './GXGesture'; - -export default interface GXIEventListener { - - /** - * Gesture event - */ - onGestureEvent(gxGesture: GXGesture); - -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionCustomComponent.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionCustomComponent.ts deleted file mode 100644 index 73dacd07e..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionCustomComponent.ts +++ /dev/null @@ -1,3 +0,0 @@ -export default interface GXIExtensionCustomComponent { - createComponent(componentName: string, componentData: any); -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateInfoSource.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateInfoSource.ts deleted file mode 100644 index 1c0cf2afb..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateInfoSource.ts +++ /dev/null @@ -1,7 +0,0 @@ -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateInfo from './GXTemplateInfo'; - - -export default interface GXIExtensionTemplateInfoSource { - getTemplateInfo(gxTemplateItem: GXTemplateItem): GXTemplateInfo; -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateSource.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateSource.ts deleted file mode 100644 index 336b5f8a4..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXIExtensionTemplateSource.ts +++ /dev/null @@ -1,9 +0,0 @@ -import GXTemplate from './GXTemplate'; -import GXTemplateItem from './GXTemplateItem'; - - -export interface GXIExtensionTemplateSource { - getTemplate(gxTemplateItem: GXTemplateItem): GXTemplate; -} - -export default GXIExtensionTemplateSource \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXITrackListener.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXITrackListener.ts deleted file mode 100644 index 39a6e36e2..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXITrackListener.ts +++ /dev/null @@ -1,12 +0,0 @@ -import GXTrack from './GXTrack'; - - -export interface GXITrackListener { - - /** - * Track event - */ - onTrackEvent(gxTrack: GXTrack); -} - -export default GXITrackListener; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXJson.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXJson.ts deleted file mode 100644 index 56261fc96..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXJson.ts +++ /dev/null @@ -1,15 +0,0 @@ -export type GXJSONValue = -| string - | number - | boolean - | any - | GXJSONObject - | GXJSONArray - | null - | {} - -export interface GXJSONObject { - [k: string]: GXJSONValue; -} - -export interface GXJSONArray extends Array {} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXMeasureSize.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXMeasureSize.ts deleted file mode 100644 index ea8f38154..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXMeasureSize.ts +++ /dev/null @@ -1,6 +0,0 @@ -export class GXMeasureSize { - templateWidth: string; - templateHeight: string; -} - -export default GXMeasureSize; diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXNode.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXNode.ts deleted file mode 100644 index 1f8907ae6..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXNode.ts +++ /dev/null @@ -1,48 +0,0 @@ -import { GXJSONObject } from './GXJson'; -import GXTemplateContext from './GXTemplateContext'; -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateNode from './GXTemplateNode'; - -export class GXNode { - gxTemplateNode: GXTemplateNode; - - gxId: string = ''; - - gxIdPath: string = ''; - - gxChildren: Array = null; - - gxChildTemplateItems?: Map; - - gxData?: GXJSONObject; - - setIdPath( - gxTemplateContext: GXTemplateContext, - gxLayer: GXJSONObject, - gxParentNode?: GXNode - ) { - this.gxId = gxLayer['id']; - if (gxParentNode != null) { - if (this.gxIdPath.length != 0) { - this.gxIdPath = `${gxParentNode.gxIdPath}@${this.gxIdPath}@${this.gxId}` - } else { - this.gxIdPath = `${gxParentNode.gxIdPath}@${this.gxId}` - } - } else { - if (this.gxIdPath.length != 0) { - this.gxIdPath = `${this.gxIdPath}@${this.gxId}` - } else { - if (gxTemplateContext.gxTemplateItem.templatePrefixId != null) { - this.gxIdPath = `${gxTemplateContext.gxTemplateItem.templatePrefixId}-${this.gxId}` - } else { - this.gxIdPath = this.gxId - } - - } - } - } - - static create(): GXNode { - return new GXNode(); - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXRegisterCenter.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXRegisterCenter.ts deleted file mode 100644 index d592c5d8f..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXRegisterCenter.ts +++ /dev/null @@ -1,53 +0,0 @@ -import GXIExtensionTemplateSource from './GXIExtensionTemplateSource'; -import GXIExtensionCustomComponent from './GXIExtensionCustomComponent'; -import GXTemplateEngine from './GXTemplateEngine'; -import hilog from '@ohos.hilog'; -import GXTemplate from './GXTemplate'; -import GXTemplateItem from './GXTemplateItem'; - -class GXRegisterCenter { - gxExtensionCustomComponent: GXIExtensionCustomComponent - - registerExtensionTemplateSource(gxTemplateSource: GXIExtensionTemplateSource) { - GXTemplateEngine.gxData.gxTemplateSource.register(gxTemplateSource); - } - - registerExtensionCustomComponent(gxExtensionComponent: GXIExtensionCustomComponent) { - this.gxExtensionCustomComponent = gxExtensionComponent - } -} - -export default GXRegisterCenter; - -class GXRawFileTemplateSource implements GXIExtensionTemplateSource { - getTemplate(gxTemplateItem: GXTemplateItem): GXTemplate { - const templateData = this.templates.get(gxTemplateItem.templateId); - hilog.debug(0x0000, 'gaiaxTag', 'getTemplate = %{public}s', JSON.stringify(templateData) ?? 'null'); - if (templateData != null && templateData != undefined) { - let layer = templateData['index.json']; - let css = templateData['index.css']; - let data = templateData['index.databinding']; - return GXTemplate.create(layer, css, data); - } - return null; - } - - private templates = new Map(); - - addData(templateId: string, template: any) { - hilog.debug(0x0000, 'gaiaxTag', 'addData %{public}s %{public}s', templateId, JSON.stringify(template) ?? 'null'); - this.templates.set(templateId, template) - } - - getData(templateId: string) { - let template = this.templates.get(templateId); - hilog.debug(0x0000, 'gaiaxTag', 'getData %{public}s %{public}s', templateId, JSON.stringify(template) ?? 'null'); - return template; - } -} - -export const gxRawFileTemplateSource = new GXRawFileTemplateSource(); - -export const gxRegisterCenter = new GXRegisterCenter(); - -gxRegisterCenter.registerExtensionTemplateSource(gxRawFileTemplateSource) \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplate.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplate.ts deleted file mode 100644 index d1e2d2275..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplate.ts +++ /dev/null @@ -1,17 +0,0 @@ -export class GXTemplate { - static create(layer: string, css: string, data: string): GXTemplate { - const template = new GXTemplate(); - template.layer = layer; - template.css = css; - template.data = data; - return template; - } - - layer: string; - - data: string; - - css: string; -} - -export default GXTemplate \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateContext.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateContext.ts deleted file mode 100644 index 5e9c0dad4..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateContext.ts +++ /dev/null @@ -1,38 +0,0 @@ -import GXTemplateData from './GXTemplateData'; -import GXMeasureSize from './GXMeasureSize'; -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateInfo from './GXTemplateInfo'; -import GXTemplateNode from './GXTemplateNode'; -import { GXNode } from './GXNode'; - -export default class GXTemplateContext { - gxTemplateItem: GXTemplateItem; - - gxTemplateInfo: GXTemplateInfo; - - gxTemplateData: GXTemplateData; - - gxMeasureSize: GXMeasureSize; - - gxVisualTemplateNode?: GXTemplateNode; - - isNestChildTemplate: boolean; - - gxRootNode: GXNode; - - gxRootStyle: any; - - constructor( - gxTemplateItem: GXTemplateItem, - gxTemplateData: GXTemplateData, - gxMeasureSize: GXMeasureSize, - gxTemplateInfo: GXTemplateInfo, - gxVisualTemplateNode?: GXTemplateNode - ) { - this.gxTemplateItem = gxTemplateItem; - this.gxTemplateInfo = gxTemplateInfo; - this.gxTemplateData = gxTemplateData; - this.gxMeasureSize = gxMeasureSize; - this.gxVisualTemplateNode = gxVisualTemplateNode; - } -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateData.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateData.ts deleted file mode 100644 index 5ea78a518..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateData.ts +++ /dev/null @@ -1,24 +0,0 @@ -import GXIEventListener from './GXIEventListener'; -import GXITrackListener from './GXITrackListener'; - -export class GXTemplateData { - // JSON Data - templateData: any; - - /** - * @suppress - */ - scrollIndex: number = -1; - - /** - * Event listener - */ - eventListener: GXIEventListener = null; - - /** - * Track listener - */ - trackListener: GXITrackListener = null; -} - -export default GXTemplateData; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateEngine.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateEngine.ts deleted file mode 100644 index cfa6081a3..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateEngine.ts +++ /dev/null @@ -1,9 +0,0 @@ -import GXData from './GXData'; - -class GXTemplateEngine { - gxData = new GXData() -} - -let gxTemplateEngine = new GXTemplateEngine(); - -export default gxTemplateEngine as GXTemplateEngine; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateInfo.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateInfo.ts deleted file mode 100644 index 7ead3b430..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateInfo.ts +++ /dev/null @@ -1,69 +0,0 @@ -import hilog from '@ohos.hilog'; -import { toJSON } from './GXCssParser'; -import { GXJSONArray, GXJSONObject } from './GXJson'; -import GXTemplate from './GXTemplate'; -import GXTemplateEngine from './GXTemplateEngine'; -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateNode from './GXTemplateNode'; - -export default class GXTemplateInfo { - getChildTemplate(id: string): GXTemplateInfo { - if (this.children != null) { - for (const gxTemplateInfo of this.children) { - if (gxTemplateInfo.layer.id == id) { - return gxTemplateInfo; - } - } - } - return null; - } - - static createByGXTemplateItem(gxTemplateItem: GXTemplateItem): GXTemplateInfo { - const gxTemplate = GXTemplateEngine.gxData.gxTemplateSource.getTemplate(gxTemplateItem); - hilog.debug(0x0000, 'gaiaxTag', 'createByGXTemplateItem %{public}s ', JSON.stringify(gxTemplate) ?? 'null'); - if (gxTemplate != null) { - const gxTemplateInfo = this.createByGXTemplate(gxTemplate); - const layer = gxTemplateInfo.layer; - this.initChildren(gxTemplateInfo, layer, gxTemplateItem); - return gxTemplateInfo; - } - return null; - } - - static createByGXTemplate(gxTemplate: GXTemplate): GXTemplateInfo { - const gxTemplateInfo = new GXTemplateInfo(); - gxTemplateInfo.layer = JSON.parse(gxTemplate.layer); - gxTemplateInfo.data = JSON.parse(gxTemplate.data); - gxTemplateInfo.css = toJSON(gxTemplate.css); - return gxTemplateInfo; - } - - static initChildren(gxTemplateInfo: GXTemplateInfo, layer: GXJSONObject, gxTemplateItem: GXTemplateItem) { - const layers = layer?.layers as GXJSONArray; - if (layers != null && layers != undefined) { - for (const target of layers) { - const childLayer = target as GXJSONObject; - if (GXTemplateNode.isNestChildTemplateType(childLayer)) { - if (gxTemplateInfo.children == null) { - gxTemplateInfo.children = new Array(); - } - const gxChildTemplateItem = GXTemplateItem.create(gxTemplateItem.templateBiz, childLayer.id); - const gxChildTemplateInfo = this.createByGXTemplateItem(gxChildTemplateItem); - gxTemplateInfo.children?.push(gxChildTemplateInfo); - - } - this.initChildren(gxTemplateInfo, childLayer, gxTemplateItem); - } - } - } - - layer: GXJSONObject; - - data: GXJSONObject; - - css: GXJSONObject; - - children?: Array = null; -} - - diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateItem.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateItem.ts deleted file mode 100644 index 9b5d13980..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateItem.ts +++ /dev/null @@ -1,14 +0,0 @@ -export class GXTemplateItem { - static create(templateBiz: string, templateId: string) { - const gxTemplateItem = new GXTemplateItem(); - gxTemplateItem.templateBiz = templateBiz; - gxTemplateItem.templateId = templateId; - return gxTemplateItem; - } - - templateBiz: string = null; - templateId: string = null; - templatePrefixId: string = null; -} - -export default GXTemplateItem \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateKey.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateKey.ts deleted file mode 100644 index 07b534883..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateKey.ts +++ /dev/null @@ -1,379 +0,0 @@ -export default class GXTemplateKey { - static STYLE_BOX_SHADOW = "box-shadow" - - /** - * https://www.runoob.com/cssref/pr-font-font-size.html - * font-size 属性用于设置字体大小。 - */ - static STYLE_FONT_SIZE = "font-size" - - /** - * https://www.runoob.com/cssref/pr-font-font-family.html - * font - family属性指定一个元素的字体。 - */ - static STYLE_FONT_FAMILY = "font-family" - - /** - * https://www.runoob.com/cssref/pr-text-color.html - * - * Color属性指定文本的颜色。 - */ - static STYLE_FONT_COLOR = "color" - - /*** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/font-weight - */ - static STYLE_FONT_WEIGHT = "font-weight" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-color - */ - static STYLE_BACKGROUND_COLOR = "background-color" - - - static STYLE_HIDDEN = "hidden" - - /** - * https://www.runoob.com/cssref/pr-background-image.html - * background-image 属性设置一个元素的背景图像。 - */ - static STYLE_BACKGROUND_IMAGE = "background-image" - - /** - * Gaiax 自定义属性 - * 行数 - */ - static STYLE_FONT_LINES = "lines" - - /** - * https://www.runoob.com/cssref/css3-pr-text-overflow.html - * text-overflow属性指定当文本溢出包含它的元素,应该发生什么。 - */ - static STYLE_FONT_TEXT_OVERFLOW = "text-overflow" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align - * text-align属性指定元素文本的水平对齐方式。 - */ - static STYLE_FONT_TEXT_ALIGN = "text-align" - - /** - * https://developers.weixin.qq.com/miniprogram/dev/component/image.html - * 图片的裁剪方式 - */ - static STYLE_MODE = "mode" - - /** - * 图片的裁剪方式类型 - */ - static STYLE_MODE_TYPE = "mode-type" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-radius - * border-radius 属性是一个最多可指定四个 border -*- radius 属性的复合属性 - */ - static STYLE_BORDER_RADIUS = "border-radius" - - static STYLE_BORDER_BOTTOM_LEFT_RADIUS = "border-bottom-left-radius" - - static STYLE_BORDER_BOTTOM_RIGHT_RADIUS = "border-bottom-right-radius" - - static STYLE_BORDER_TOP_LEFT_RADIUS = "border-top-left-radius" - - static STYLE_BORDER_TOP_RIGHT_RADIUS = "border-top-right-radius" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-width - * border-width属性设置一个元素的四个边框的宽度。。 - */ - static STYLE_BORDER_WIDTH = "border-width" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-color - * border-color属性设置一个元素的四个边框颜色 - */ - static STYLE_BORDER_COLOR = "border-color" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/opacity - * 设置一个div元素的透明度级别 - */ - static STYLE_OPACITY = "opacity" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/line-height - * CSS 属性用于设置多行元素的空间量,如多行文本的间距。 - */ - static STYLE_FONT_LINE_HEIGHT = "line-height" - - /** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-decoration - */ - static STYLE_FONT_TEXT_DECORATION = "text-decoration" - - /** - * 文字自适应 - */ - static STYLE_FIT_CONTENT = "fit-content" - - /** - * 弹性容器通过设置 display 属性的值为 flex 或 inline-flex将其定义为弹性容器。 - */ - static FLEXBOX_DISPLAY = "display" - - /** - * 设置页面布局方式,如果我们设置 direction 属性为 rtl (right-to-left),弹性子元素的排列方式也会改变,页面布局也跟着改变: - */ - static FLEXBOX_DIRECTION = "direction" - - /** - * flex-direction 属性指定了弹性子元素在父容器中的位置。 - */ - static FLEXBOX_FLEX_DIRECTION = "flex-direction" - - /** - * flex-wrap 属性用于指定弹性盒子的子元素换行方式。 - */ - static FLEXBOX_FLEX_WRAP = "flex-wrap" - - /** - * overflow 属性规定当内容溢出元素框时发生的事情。 - */ - static FLEXBOX_OVERFLOW = "overflow" - - /** - * align-items 设置或检索弹性盒子元素在侧轴(纵轴)方向上的对齐方式。 - */ - static FLEXBOX_ALIGN_ITEMS = "align-items" - - /** - * align-self 属性用于设置弹性元素自身在侧轴(纵轴)方向上的对齐方式。 - */ - static FLEXBOX_ALIGN_SELF = "align-self" - - /** - * align-content 属性用于修改 flex-wrap 属性的行为。类似于 align-items, 但它不是设置弹性子元素的对齐,而是设置各个行的对齐。 - */ - static FLEXBOX_ALIGN_CONTENT = "align-content" - - /** - * 内容对齐(justify-content)属性应用在弹性容器上,把弹性项沿着弹性容器的主轴线(main axis)对齐。 - */ - static FLEXBOX_JUSTIFY_CONTENT = "justify-content" - - /** - * 规定元素的定位类型。 - */ - static FLEXBOX_POSITION_TYPE = "position" - - static FLEXBOX_POSITION_LEFT = "left" - - static FLEXBOX_POSITION_RIGHT = "right" - - static FLEXBOX_POSITION_TOP = "top" - - static FLEXBOX_POSITION_BOTTOM = "bottom" - - /** - * 外边距属性。 - */ - static FLEXBOX_MARGIN = "margin" - - static FLEXBOX_MARGIN_LEFT = "margin-left" - - static FLEXBOX_MARGIN_RIGHT = "margin-right" - - static FLEXBOX_MARGIN_TOP = "margin-top" - - static FLEXBOX_MARGIN_BOTTOM = "margin-bottom" - - /** - * 内边距属性 - */ - static FLEXBOX_PADDING = "padding" - - static FLEXBOX_PADDING_LEFT = "padding-left" - - static FLEXBOX_PADDING_RIGHT = "padding-right" - - static FLEXBOX_PADDING_TOP = "padding-top" - - static FLEXBOX_PADDING_BOTTOM = "padding-bottom" - - /** - * 边框属性 - */ - static FLEXBOX_BORDER = "border" - - static FLEXBOX_BORDER_LEFT = "border-left" - - static FLEXBOX_BORDER_RIGHT = "border-right" - - static FLEXBOX_BORDER_TOP = "border-top" - - static FLEXBOX_BORDER_BOTTOM = "border-bottom" - - /** - * flex 属性用于指定弹性子元素如何分配空间。 - * [ flex-grow ]:定义弹性盒子元素的扩展比率。 - */ - static FLEXBOX_FLEX_GROW = "flex-grow" - - /** - * flex 属性用于指定弹性子元素如何分配空间。 - * [ flex-shrink ]:定义弹性盒子元素的收缩比率。 - */ - static FLEXBOX_FLEX_SHRINK = "flex-shrink" - - /** - * flex 属性用于指定弹性子元素如何分配空间。 - * [ flex-basis ]:定义弹性盒子元素的默认基准值。 - */ - static FLEXBOX_FLEX_BASIS = "flex-basis" - - /** - * 规定页面内容包含框的尺寸和方向。 - */ - static FLEXBOX_SIZE = "size" - - static FLEXBOX_MIN_SIZE = "min-size" - - static FLEXBOX_MAX_SIZE = "max-size" - - static FLEXBOX_SIZE_WIDTH = "width" - - static FLEXBOX_SIZE_HEIGHT = "height" - - static FLEXBOX_MIN_WIDTH = "min-width" - - static FLEXBOX_MIN_HEIGHT = "min-height" - - static FLEXBOX_MAX_WIDTH = "max-width" - - static FLEXBOX_MAX_HEIGHT = "max-height" - - /** - * 纵横比 - */ - static FLEXBOX_ASPECT_RATIO = "aspect-ratio" - - /////////////////////////////////////// - /////////////////////////////////////// - /////////////////////////////////////// - - static GAIAX_DATA = "data" - - static GAIAX_EVENT = "event" - - static GAIAX_CONFIG = "config" - - static GAIAX_ANIMATION = "animation" - - static GAIAX_LAYER_EDGE_INSETS = "edge-insets" - - static GAIAX_LAYER_LINE_SPACING = "line-spacing" - - static GAIAX_LAYER_INTERITEM_SPACING = "interitem-spacing" - - static GAIAX_LAYER_ITEM_SPACING = "item-spacing" - - static GAIAX_LAYER_ROW_SPACING = "row-spacing" - - static GAIAX_LAYER_COLUMN = "column" - - static GAIAX_LAYER_SCROLL_ENABLE = "scroll-enable" - - static GAIAX_LAYER_GRAVITY = "gravity" - - static GAIAX_LAYER_ID = "id" - - static GAIAX_LAYERS = "layers" - - static GAIAX_LAYER_TYPE = "type" - - static GAIAX_LAYER_SUB_TYPE = "sub-type" - - static GAIAX_LAYER_CUSTOM_VIEW_CLASS = "view-class-android" - - static GAIAX_LAYER_CLASS = "class" - - static GAIAX_PX = "px" - - static GAIAX_PT = "pt" - - static GAIAX_PE = "%" - - static GAIAX_AUTO = "auto" - - static GAIAX_LAYER_DIRECTION = "direction" - static GAIAX_HORIZONTAL = "horizontal" - static GAIAX_VERTICAL = "vertical" - - static GAIAX_HIGHLIGHT_REGEX = "(.*?)" - - static GAIAX_HIGHLIGHT_COLOR = "highlight-color" - static GAIAX_HIGHLIGHT_FONT_WEIGHT = "highlight-font-weight" - static GAIAX_HIGHLIGHT_FONT_SIZE = "highlight-font-size" - static GAIAX_HIGHLIGHT_FONT_FAMILY = "highlight-font-family" - static GAIAX_HIGHLIGHT_TAG = "highlight-tag" - - static GAIAX_UE = "ue" - static GAIAX_ACCESSIBILITY_DESC = "accessibilityDesc" - static GAIAX_ACCESSIBILITY_ENABLE = "accessibilityEnable" - static GAIAX_PLACEHOLDER = "placeholder" - static GAIAX_EXTEND = "extend" - - static GAIAX_LAYER = "layer" - static GAIAX_DATABINDING = "databinding" - static GAIAX_CSS = "css" - static GAIAX_JS = "js" - - static GAIAX_INDEX_DATABINDING = "index.databinding" - static GAIAX_INDEX_CSS = "index.css" - static GAIAX_INDEX_JSON = "index.json" - static GAIAX_INDEX_JS = "index.js" - static GAIAX_INDEX_MOCK = "index.mock" - - static GAIAX_TEMPLATE_ID = "templateId" - static GAIAX_TEMPLATE_VERSION = "templateVersion" - static GAIAX_TEMPLATE_BIZ = "templateBiz" - static GAIAX_TEMPLATE_TYPE = "templateType" - - static GAIAX_GESTURE_TYPE = "type" - static GAIAX_GESTURE_TYPE_TAP = "tap" - static GAIAX_GESTURE_TYPE_JS_TAP = "click" - static GAIAX_GESTURE_TYPE_LONGPRESS = "longpress" - - static GAIAX_CUSTOM_PROPERTY_VIEW_PORT_WIDTH = "view-port-width" - static GAIAX_CUSTOM_PROPERTY_GRID_COMPUTE_CONTAINER_HEIGHT = "grid-compute-container-height" - static GAIAX_CUSTOM_PROPERTY_SCROLL_COMPUTE_CONTAINER_HEIGHT = - "scroll-compute-container-height" - - static GAIAX_ICONFONT_FONT_FAMILY_DEFAULT_NAME = "iconfont" - - static GAIAX_DATABINDING_HOLDING_OFFSET = "holding-offset" - static GAIAX_DATABINDING_ITEM_TYPE = "item-type" - static GAIAX_DATABINDING_ITEM_TYPE_PATH = "path" - static GAIAX_DATABINDING_ITEM_TYPE_CONFIG = "config" - - static GAIAX_CONTAINER_FOOTER = "item-footer-type" - static GAIAX_CONTAINER_HAS_MORE = "hasMore" - - static GAIAX_ANIMATION_TYPE_LOTTIE = "LOTTIE" - static GAIAX_ANIMATION_TYPE_PROP = "PROP" - - - // GXSliderView - static GAIAX_LAYER_SLIDER_SCROLL_TIME_INTER = "slider-scroll-time-inter" - static GAIAX_LAYER_SLIDER_INFINITY_SCROLL = "slider-infinity-scroll" - static GAIAX_LAYER_SLIDER_HAS_INDICATOR = "slider-has-indicator" - static GAIAX_LAYER_SLIDER_SELECTED_INDEX = "slider-selected-index" - static GAIAX_LAYER_SLIDER_INDICATOR_SELECTED_COLOR = "slider-indicator-selected-color" - static GAIAX_LAYER_SLIDER_INDICATOR_UNSELECTED_COLOR = "slider-indicator-unselected-color" - - // GXProgressView - static GAIAX_LAYER_PROGRESS_STROKE_COLOR = "stroke-color" - static GAIAX_LAYER_PROGRESS_TRAIL_COLOR = "trail-color" - static GAIAX_LAYER_PROGRESS_TYPE = "progress-type" - static GAIAX_LAYER_PROGRESS_ANIMATED = "animated" -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateNode.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateNode.ts deleted file mode 100644 index fbe3e2bec..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTemplateNode.ts +++ /dev/null @@ -1,396 +0,0 @@ -import GXCssConvertStyle from './GXCssConvertStyle'; -import GXDataBinding from './GXDatabinding'; -import GXExpression from './GXExpression'; -import { GXJSONObject } from './GXJson'; -import { GXNode } from './GXNode'; -import GXTemplateContext from './GXTemplateContext'; -import GXTemplateInfo from './GXTemplateInfo'; - -export class GXGridConfig { - direction: string = 'vertical'; - itemSpacing: string = null; - rowSpacing: string = null; - column: number = 1; - edgeInsetsLeft: string = null; - edgeInsetsTop: string = null; - edgeInsetsRight: string = null; - edgeInsetsBottom: string = null; - - static createByExtend(src: GXGridConfig, extend: GXJSONObject) { - // ScrollConfig - const gxConfig = new GXGridConfig(); - - // direction - gxConfig.direction = src.direction; - const newDirection = extend['direction'] - if (newDirection != null) { - gxConfig.direction = newDirection - } - - // item spacing - const itemSpacing = src.itemSpacing; - if (itemSpacing != null) { - gxConfig.itemSpacing = src.itemSpacing; - } - const newItemSpacing = extend['item-spacing']; - if (newItemSpacing != null) { - gxConfig.itemSpacing = newItemSpacing; - } - - // row spacing - const rowSpacing = src.rowSpacing; - if (rowSpacing != null) { - gxConfig.rowSpacing = src.rowSpacing; - } - const newRowSpacing = extend['row-spacing']; - if (newRowSpacing != null) { - gxConfig.rowSpacing = newRowSpacing; - } - - return gxConfig; - } - - static create(gxLayer: GXJSONObject) { - // ScrollConfig - const gxConfig = new GXGridConfig(); - - // column - gxConfig.column = Number.parseInt(gxLayer['column']) || 1; - - // direction - gxConfig.direction = gxLayer['direction'] || 'vertical'; - - // item spacing - const itemSpacing = gxLayer['item-spacing']; - if (itemSpacing != null) { - gxConfig.itemSpacing = itemSpacing + "px"; - } - - // row spacing - const rowSpacing = gxLayer['row-spacing']; - if (rowSpacing != null) { - gxConfig.rowSpacing = rowSpacing + "px"; - } - - // top left bottom right - // "edge-insets": "{2,1,4,3}", - const edgeInsets: string = gxLayer['edge-insets']; - if (edgeInsets != null) { - const edges = edgeInsets.substring(1, edgeInsets.length - 1).split(','); - gxConfig.edgeInsetsTop = edges[0] + 'px'; - gxConfig.edgeInsetsLeft = edges[1] + 'px'; - gxConfig.edgeInsetsBottom = edges[2] + 'px'; - gxConfig.edgeInsetsRight = edges[3] + 'px'; - } - - return gxConfig; - } -} - -export class GXScrollConfig { - direction: string = 'horizontal'; - itemSpacing: string = null; - rowSpacing: string = null; - edgeInsetsLeft: string = null; - edgeInsetsTop: string = null; - edgeInsetsRight: string = null; - edgeInsetsBottom: string = null; - - static createByExtend(src: GXScrollConfig, extend: GXJSONObject) { - // ScrollConfig - const gxConfig = new GXScrollConfig(); - - // direction - gxConfig.direction = src.direction; - const newDirection = extend['direction'] - if (newDirection != null) { - gxConfig.direction = newDirection - } - - // item spacing - const itemSpacing = src.itemSpacing; - if (itemSpacing != null) { - gxConfig.itemSpacing = src.itemSpacing; - } - const newItemSpacing = extend['item-spacing']; - if (newItemSpacing != null) { - gxConfig.itemSpacing = newItemSpacing; - } - - // row spacing - const rowSpacing = src.rowSpacing; - if (rowSpacing != null) { - gxConfig.rowSpacing = src.rowSpacing; - } - const newRowSpacing = extend['row-spacing']; - if (newRowSpacing != null) { - gxConfig.rowSpacing = newRowSpacing; - } - - return gxConfig; - } - - static create(gxLayer: GXJSONObject) { - // ScrollConfig - const gxConfig = new GXScrollConfig(); - - // direction - gxConfig.direction = gxLayer['direction'] || 'horizontal'; - - // item spacing - const itemSpacing = gxLayer['item-spacing']; - if (itemSpacing != null) { - gxConfig.itemSpacing = itemSpacing + "px"; - } - - // row spacing - const rowSpacing = gxLayer['row-spacing']; - if (rowSpacing != null) { - gxConfig.rowSpacing = rowSpacing + "px"; - } - - // top left bottom right - // "edge-insets": "{2,1,4,3}", - const edgeInsets: string = gxLayer['edge-insets']; - if (edgeInsets != null) { - const edges = edgeInsets.substring(1, edgeInsets.length - 1).split(','); - gxConfig.edgeInsetsTop = edges[0] + 'px'; - gxConfig.edgeInsetsLeft = edges[1] + 'px'; - gxConfig.edgeInsetsBottom = edges[2] + 'px'; - gxConfig.edgeInsetsRight = edges[3] + 'px'; - } - - - return gxConfig; - } -} - -/** - * 节点的原始样式 - */ -export default class GXTemplateNode { - forceWidthChange: boolean; - imageMode: string; - - getExtend(gxTemplateData?: GXJSONObject): GXJSONObject { - return GXDataBinding.getExtend(this.data, gxTemplateData); - } - - getData(gxTemplateData?: GXJSONObject): GXJSONObject { - return GXDataBinding.getData(this.data, gxTemplateData); - } - - getDataValue(gxTemplateData?: GXJSONObject): GXJSONObject { - return GXDataBinding.getData(this.data, gxTemplateData)['value'] as GXJSONObject; - } - - getEventData(gxTemplateData?: GXJSONObject): GXJSONObject { - return GXExpression.desireData(this.event, gxTemplateData) as GXJSONObject; - } - - initFinal( - gxTemplateContext: GXTemplateContext, - gxTemplateData?: GXJSONObject, - gxVisualTemplateData?: GXJSONObject, - gxParentNode?: GXNode - ) { - - // 获取样式绑定的结果 - const extendCssData = this.getExtend(gxTemplateData); - - let selfFinalCss = {}; - if (extendCssData != null) { - - selfFinalCss = Object.assign({}, this.css, extendCssData); - - if (this.gxScrollConfig != null) { - this.finalGXScrollConfig = GXScrollConfig.createByExtend(this.gxScrollConfig, extendCssData); - } - - if (this.gxGridConfig != null) { - this.finalGXGridConfig = GXGridConfig.createByExtend(this.gxGridConfig, extendCssData); - } - - } else { - - selfFinalCss = this.css; - - this.finalGXScrollConfig = this.gxScrollConfig; - - this.finalGXGridConfig = this.gxGridConfig; - } - - // 初始化虚拟节点样式 - this.gxVisualTemplateNode?.initFinal(gxTemplateContext, gxVisualTemplateData, null, gxParentNode); - - // 组合节点样式 - this.finalCss = Object.assign({}, selfFinalCss, this.gxVisualTemplateNode?.finalCss); - - // 获取转换后的节点样式 - this.finalStyle = GXCssConvertStyle.createViewStyleByCss(gxTemplateContext, this.layer, this.finalCss, this, gxParentNode); - } - - layer: GXJSONObject; - css: GXJSONObject; - data?: GXJSONObject; - event?: GXJSONObject; - animation?: GXJSONObject; - gxVisualTemplateNode?: GXTemplateNode; - gxScrollConfig: GXScrollConfig = null; - gxGridConfig: GXGridConfig = null; - finalGXScrollConfig: GXScrollConfig = null; - finalGXGridConfig: GXGridConfig = null; - finalStyle: any; - finalCss: GXJSONObject; - - type(): string { - return this.layer['type']; - } - - getCustomView(): string { - return this.layer['view-class-taro'] - } - - isNestChildTemplateType(): boolean { - return GXTemplateNode.isNestChildTemplateType(this.layer); - } - - isContainerType(): boolean { - return GXTemplateNode.isContainerType(this.layer); - } - - isCustomType(): boolean { - return GXTemplateNode.isCustomType(this.layer); - } - - isTextType(): boolean { - return GXTemplateNode.isTextType(this.layer); - } - - isRichTextType(): boolean { - return GXTemplateNode.isRichTextType(this.layer); - } - - isIconFontType(): boolean { - return GXTemplateNode.isIconFontType(this.layer); - } - - isLottieType(): boolean { - return GXTemplateNode.isLottieType(this.layer); - } - - isImageType(): boolean { - return GXTemplateNode.isImageType(this.layer); - } - - isViewType(): boolean { - return GXTemplateNode.isViewType(this.layer); - } - - isGaiaTemplate(): boolean { - return GXTemplateNode.isGaiaTemplate(this.layer); - } - - isGridType(): boolean { - return GXTemplateNode.isGridType(this.layer); - } - - isScrollType(): boolean { - return GXTemplateNode.isScrollType(this.layer); - } - - isSliderType(): boolean { - return GXTemplateNode.isSliderType(this.layer); - } - - static isNestChildTemplateType(layer: GXJSONObject): boolean { - return layer != null && - layer['type'] == 'gaia-template' - && layer['sub-type'] == 'custom' - && layer['view-class-taro'] == null - } - - static isContainerType(layer: GXJSONObject): boolean { - return layer != null && GXTemplateNode.isScrollType(layer) || GXTemplateNode.isGridType(layer) || GXTemplateNode.isSliderType(layer); - } - - static isCustomType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'custom' && (layer['view-class-taro'] != null) - } - - static isTextType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'text' - } - - static isRichTextType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'richtext' - } - - static isIconFontType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'iconfont' - } - - static isLottieType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'lottie' - } - - static isImageType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'image' - } - - static isViewType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'view' || layer['type'] == 'gaia-template' && layer['sub-type'] != null - } - - static isGaiaTemplate(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'gaia-template' - } - - static isGridType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'gaia-template' && layer['sub-type'] == 'grid' - } - - static isScrollType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'gaia-template' && layer['sub-type'] == 'scroll' - } - - static isSliderType(layer: GXJSONObject): boolean { - return layer != null && layer['type'] == 'gaia-template' && layer['sub-type'] == 'slider' - } - - static create(gxLayer: GXJSONObject, gxTemplateInfo: GXTemplateInfo, gxVisualTemplateNode?: GXTemplateNode): GXTemplateNode { - const gxTemplateNode = new GXTemplateNode() - - const layerId = gxLayer['id']; - - // 获取原始节点的层级 - gxTemplateNode.layer = gxLayer; - - // 获取原始节点的样式 - gxTemplateNode.css = gxTemplateInfo.css['#' + layerId] || gxTemplateInfo.css['.' + layerId]; - - // 获取原始节点的数据 - gxTemplateNode.data = gxTemplateInfo.data['data']?.[layerId]; - - // 获取原始节点的事件 - gxTemplateNode.event = gxTemplateInfo.data['event']?.[layerId]; - - // 获取原始节点的动画 - gxTemplateNode.animation = gxTemplateInfo.data['animation']?.[layerId]; - - // 设置虚拟节点 - gxTemplateNode.gxVisualTemplateNode = gxVisualTemplateNode; - - // 设置Scroll配置 - if (GXTemplateNode.isScrollType(gxLayer)) { - gxTemplateNode.gxScrollConfig = GXScrollConfig.create(gxLayer); - } - - // 设置Grid配置 - if (GXTemplateNode.isGridType(gxLayer)) { - gxTemplateNode.gxGridConfig = GXGridConfig.create(gxLayer); - } - - return gxTemplateNode; - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTrack.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTrack.ts deleted file mode 100644 index 6b9902f55..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXTrack.ts +++ /dev/null @@ -1,47 +0,0 @@ -import { GXJSONObject } from './GXJson' -import { GXNode } from './GXNode' -import GXTemplateContext from './GXTemplateContext' -import GXTemplateItem from './GXTemplateItem' - -export default class GXTrack { - /** - * Target view - */ - // view: ReactNode = null - - /** - * Node id - */ - nodeId: string = null - - nodeIdPath: string = null - - /** - * View index - */ - index: number = null - - /** - * Template information - */ - templateItem: GXTemplateItem = null - - /** - * Buried data - */ - trackParams: GXJSONObject = null - - static create( - gxTemplateContext: GXTemplateContext, - gxTemplateData: GXJSONObject, - gxNode: GXNode - ): GXTrack { - const gxTrack = new GXTrack() - gxTrack.nodeId = gxNode.gxId; - gxTrack.nodeIdPath = gxNode.gxIdPath; - gxTrack.templateItem = gxTemplateContext.gxTemplateItem; - gxTrack.trackParams = gxNode.gxTemplateNode.getEventData(gxTemplateData); - // gxTrack.view = gxNode.gxView; - return gxTrack; - } -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXValuePath.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXValuePath.ts deleted file mode 100644 index 6b4ff7ba2..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXValuePath.ts +++ /dev/null @@ -1,43 +0,0 @@ -export default function computeValuePath(valuePath: string, targetObject: any): any { - try { - - // 表达式 - const keyIndex = valuePath.indexOf('.') - - // 取数组 - if (keyIndex <= 0 && valuePath.includes('[') && valuePath.includes(']')) { - const indexLeft = valuePath.indexOf('[') - const indexRight = valuePath.indexOf(']') - const arrayName = valuePath.substring(0, indexLeft).trim() - const arrayIndex = valuePath.substring(indexLeft + 1, indexRight).trim() - if (targetObject != null && targetObject != undefined) { - return targetObject[arrayName][arrayIndex]; - } else { - console.error(`computeValuePath: ${valuePath} is not exist`); - return ''; - } - } - - // 表达式 - if (keyIndex <= 0) { - if (targetObject != null && targetObject != undefined) { - return targetObject[valuePath]; - } else { - console.error(`computeValuePath: ${valuePath} is not exist`); - return ''; - } - - } - - if (keyIndex > 0) { - // 取值 - const firstKey = valuePath.substring(0, keyIndex).trim(); - const restKey = valuePath.substring(keyIndex + 1, valuePath.length).trim(); - return computeValuePath(restKey, targetObject[firstKey]); - } - - } catch (error) { - console.error(error); - return ''; - } -}; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewBuilder.ets b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewBuilder.ets deleted file mode 100644 index 8c3d23552..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewBuilder.ets +++ /dev/null @@ -1,477 +0,0 @@ -import GXGenerate from './GXGenerate'; -import GXMeasureSize from './GXMeasureSize'; -import { GXNode } from './GXNode'; -import GXTemplateContext from './GXTemplateContext'; -import GXTemplateData from './GXTemplateData'; -import GXTemplateItem from './GXTemplateItem'; -import GXTemplateNode from './GXTemplateNode'; -import GXViewTreeCreator from './GXViewTreeCreator'; - -@Builder -export default function createView( - gxTemplateItem: GXTemplateItem, - gxTemplateData: GXTemplateData, - gxMeasureSize: GXMeasureSize, - gxVisualTemplateNode?: GXTemplateNode -) { - createViewForContext(GXGenerate.createContext(gxTemplateItem, gxTemplateData, gxMeasureSize, gxVisualTemplateNode)) -} - -@Builder -function createViewForContext(gxTemplateContext?: GXTemplateContext) { - if (gxTemplateContext == null) { - Text("GXView is null") - } else { - createViewTree(GXViewTreeCreator.createNodeTree(gxTemplateContext)) - } -} - -@Builder -function createViewTree(gxNode?: GXNode) { - if (gxNode == null) { - Text("GXNode is null") - } else { - createViewTreeByNodeTree(gxNode) - } -} - -@Builder -function createViewTreeByNodeTree(gxNode: GXNode) { - // View or Template - if (gxNode.gxTemplateNode.isViewType() || gxNode.gxTemplateNode.isGaiaTemplate()) { - createViewOrTemplate(gxNode) - } else if (gxNode.gxTemplateNode.isTextType()) { - createText(gxNode) - } else { - Text('other type node') - } -} - -@Builder -function createText(gxNode: GXNode) { - Text(gxNode.gxData?.value || 'text value is null') - .key(gxNode.gxId) - .width(width(gxNode)) - .height(height(gxNode)) - .flexBasis(flexBasis(gxNode)) - .flexShrink(flexShrink(gxNode)) - .flexGrow(flexGrow(gxNode)) - .alignSelf(alignSelf(gxNode)) - .margin(margin(gxNode)) - .padding(padding(gxNode)) - .aspectRatio(aspectRatio(gxNode)) - .constraintSize(constraintSize(gxNode)) - .backgroundColor(backgroundColor(gxNode)) - .textAlign(textAlign(gxNode)) - .opacity(opacity(gxNode)) - .border({ - width: borderWidth(gxNode), - color: borderColor(gxNode), - radius: borderRadius(gxNode), - style: borderStyle(gxNode) - }) - .clip(true) - .visibility(visibility(gxNode)) -} - -@Builder -function createViewOrTemplate(gxNode: GXNode) { - // 如果是View或者Template类型,那么创建Flex布局 - // ({ - // wrap: flexWrap(gxNode), - // direction: flexDirection(gxNode), - // justifyContent: flexJustifyContent(gxNode), - // alignItems: flexAlignItems(gxNode), - // alignContent: flexAlignContent(gxNode), - // }) - Column() { - ForEach(gxNode.gxChildren, (gxChildNode: GXNode) => { - // 如果有子节点,那么递归创建子View - createViewTreeByNodeTree(gxChildNode); - }, (item: GXNode, index) => index + item.gxId); - } - .key(gxNode.gxId) - .width(width(gxNode)) - .height(height(gxNode)) - .justifyContent(flexJustifyContent(gxNode)) - .alignItems(HorizontalAlign.Center) - .flexBasis(flexBasis(gxNode)) - .flexShrink(flexShrink(gxNode)) - .flexGrow(flexGrow(gxNode)) - .alignSelf(alignSelf(gxNode)) - .margin(margin(gxNode)) - .padding(padding(gxNode)) - .aspectRatio(aspectRatio(gxNode)) - .constraintSize(constraintSize(gxNode)) - .backgroundColor(backgroundColor(gxNode)) - .opacity(opacity(gxNode)) - .border({ - width: borderWidth(gxNode), - color: borderColor(gxNode), - radius: borderRadius(gxNode), - style: borderStyle(gxNode) - }) - .clip(true) - .visibility(visibility(gxNode)) -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/visibility - * @param gxNode - */ -function visibility(gxNode: GXNode): Visibility { - let visibility = gxNode.gxTemplateNode.finalCss['visibility']; - if (visibility != undefined && visibility != null) { - if (visibility == "visible") { - return Visibility.Visible; - } else if (visibility == "hidden") { - return Visibility.Hidden; - } - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-style - * @param gxNode - */ -function borderStyle(gxNode: GXNode): BorderStyle { - let borderStyle = gxNode.gxTemplateNode.finalCss['border-style']; - if (borderStyle != undefined && borderStyle != null) { - if (borderStyle == "none") { - return null; - } else if (borderStyle == "dotted") { - return BorderStyle.Dotted; - } else if (borderStyle == "dashed") { - return BorderStyle.Dashed; - } else if (borderStyle == "solid") { - return BorderStyle.Solid; - } - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-radius - * @param gxNode - */ -function borderRadius(gxNode: GXNode): string { - let borderRadius = gxNode.gxTemplateNode.finalCss['border-radius']; - if (borderRadius != undefined && borderRadius != null) { - return borderRadius.replace('px', 'vp'); - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-width - * @param gxNode - */ -function borderColor(gxNode: GXNode): string { - let borderColor = gxNode.gxTemplateNode.finalCss['border-color']; - if (borderColor != undefined && borderColor != null) { - return borderColor; - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/border-width - * @param gxNode - */ -function borderWidth(gxNode: GXNode): string { - let borderWidth = gxNode.gxTemplateNode.finalCss['border-width']; - if (borderWidth != undefined && borderWidth != null) { - return borderWidth.replace('px', 'vp'); - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/opacity - * @param gxNode - */ -function opacity(gxNode: GXNode): number { - let opacity = gxNode.gxTemplateNode.finalCss['opacity']; - if (opacity != undefined && opacity != null) { - return Number.parseInt(opacity); - } - return 1; -} - - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex-basis - * @param gxNode - */ -function flexBasis(gxNode: GXNode): string { - let flexBasis = gxNode.gxTemplateNode.finalCss['flex-basis']; - if (flexBasis != undefined && overflow != null) { - if (flexBasis == "auto") { - return "auto"; - } else { - return flexBasis.replace('px', 'vp'); - } - } - return "auto"; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/align-self - * @param gxNode - */ -function alignSelf(gxNode: GXNode): ItemAlign { - let alignSelf = gxNode.gxTemplateNode.finalCss['align-self']; - if (alignSelf != undefined && alignSelf != null) { - if (alignSelf == "auto") { - return ItemAlign.Auto; - } else if (alignSelf == "stretch") { - return ItemAlign.Stretch; - } else if (alignSelf == "center") { - return ItemAlign.Center; - } else if (alignSelf == "start") { - return ItemAlign.Start; - } else if (alignSelf == "end") { - return ItemAlign.End; - } - } - return null; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/overflow - * @param gxNode - */ -function overflow(gxNode: GXNode): string { - let overflow = gxNode.gxTemplateNode.finalCss['overflow']; - if (overflow != undefined && overflow != null) { - return overflow; - } - return null; -} - -function constraintSize(gxNode: GXNode): ConstraintSizeOptions { - let minWidth = gxNode.gxTemplateNode.finalCss['min-width']; - let minHeight = gxNode.gxTemplateNode.finalCss['min-height']; - let maxWidth = gxNode.gxTemplateNode.finalCss['max-width']; - let maxHeight = gxNode.gxTemplateNode.finalCss['max-height']; - return { - minWidth: minWidth?.replace('px', 'vp'), - minHeight: minHeight?.replace('px', 'vp'), - maxWidth: maxWidth?.replace('px', 'vp'), - maxHeight: maxHeight?.replace('px', 'vp'), - }; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/background-color - * @param gxNode - * @returns - */ -function backgroundColor(gxNode: GXNode): ResourceColor { - let color = gxNode.gxTemplateNode.finalCss['background-color']; - if (color != undefined && color != null) { - return color; - } - return null; -} - -function aspectRatio(gxNode: GXNode): number { - let aspectRatio = gxNode.gxTemplateNode.finalCss['aspect-ratio'] || null; - if (aspectRatio != undefined && aspectRatio != null) { - return Number.parseInt(aspectRatio); - } - return null; -} - -function margin(gxNode: GXNode): Margin { - let left = gxNode.gxTemplateNode.finalCss['margin-left']; - let top = gxNode.gxTemplateNode.finalCss['margin-top']; - let right = gxNode.gxTemplateNode.finalCss['margin-right']; - let bottom = gxNode.gxTemplateNode.finalCss['margin-bottom']; - return { - left: left?.value?.replace('px', 'vp'), - top: top?.value?.replace('px', 'vp'), - right: right?.value?.replace('px', 'vp'), - bottom: bottom?.value?.replace('px', 'vp') - } -} - -function padding(gxNode: GXNode): Margin { - let left = gxNode.gxTemplateNode.finalCss['padding-left']; - let top = gxNode.gxTemplateNode.finalCss['padding-top']; - let right = gxNode.gxTemplateNode.finalCss['padding-right']; - let bottom = gxNode.gxTemplateNode.finalCss['padding-bottom']; - return { - left: left?.value?.replace('px', 'vp'), - top: top?.value?.replace('px', 'vp'), - right: right?.value?.replace('px', 'vp'), - bottom: bottom?.value?.replace('px', 'vp') - } -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/text-align - * @param gxNode - * @returns - */ -function textAlign(gxNode: GXNode): TextAlign { - let value = gxNode.gxTemplateNode.finalCss['text-align']; - if (value == "start") { - return TextAlign.Start; - } else if (value == "end") { - return TextAlign.End; - } else if (value == "center") { - return TextAlign.Center; - } - return TextAlign.Start; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/align-content - * @param gxNode - * @returns - */ -function flexAlignContent(gxNode: GXNode): FlexAlign { - let value = gxNode.gxTemplateNode.finalCss['align-content']; - if (value == "start" || value == "flex-start") { - return FlexAlign.Start; - } else if (value == "end" || value == "flex-end") { - return FlexAlign.End; - } else if (value == "center") { - return FlexAlign.Center; - } else if (value == "space-between") { - return FlexAlign.SpaceBetween; - } else if (value == "space-around") { - return FlexAlign.SpaceAround; - } else if (value == "space-evenly") { - return FlexAlign.SpaceEvenly; - } - return FlexAlign.Start; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/align-items - * @param gxNode - * @returns - */ -function flexAlignItems(gxNode: GXNode): ItemAlign { - let value = gxNode.gxTemplateNode.finalCss['align-items']; - if (value == "start") { - return ItemAlign.Start; - } else if (value == "end") { - return ItemAlign.End; - } else if (value == "center") { - return ItemAlign.Center; - } else if (value == "stretch") { - return ItemAlign.Stretch; - } - return ItemAlign.Auto; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/justify-content - * @param gxNode - * @returns - */ -function flexJustifyContent(gxNode: GXNode): FlexAlign { - let value = gxNode.gxTemplateNode.finalCss['justify-content']; - if (value == "start" || value == "flex-start") { - return FlexAlign.Start; - } else if (value == "end" || value == "flex-end") { - return FlexAlign.End; - } else if (value == "center") { - return FlexAlign.Center; - } else if (value == "space-between") { - return FlexAlign.SpaceBetween; - } else if (value == "space-around") { - return FlexAlign.SpaceAround; - } else if (value == "space-evenly") { - return FlexAlign.SpaceEvenly; - } - return FlexAlign.Start; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex-wrap - * @param gxNode - * @returns - */ -function flexWrap(gxNode: GXNode): FlexWrap { - let value = gxNode.gxTemplateNode.finalCss['flex-wrap']; - if (value == "wrap") { - return FlexWrap.Wrap; - } else if (value == "wrap-reverse") { - return FlexWrap.WrapReverse; - } else if (value == "nowrap") { - return FlexWrap.NoWrap; - } - return FlexWrap.NoWrap; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex-direction - * @param gxNode - * @returns - */ -function flexDirection(gxNode: GXNode): FlexDirection { - let value = gxNode.gxTemplateNode.finalCss['flex-direction']; - if (value == "row") { - return FlexDirection.Row; - } else if (value == "column") { - return FlexDirection.Column - } - return FlexDirection.Row; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/height - * @param gxNode - * @returns - */ -function height(gxNode: GXNode): Length { - let value: string = gxNode.gxTemplateNode.finalCss['height']; - if (value != undefined && value != null) { - return value.replace('px', 'vp'); - } - return 'auto'; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/width - * @param gxNode - * @returns - */ -function width(gxNode: GXNode): Length { - let value: string = gxNode.gxTemplateNode.finalCss['width']; - if (value != undefined && value != null) { - return value.replace('px', 'vp'); - } - return "auto"; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex-grow - * @param gxNode - * @returns - */ -function flexGrow(gxNode: GXNode): number { - let value: string = gxNode.gxTemplateNode.finalCss['flex-grow']; - if (value != undefined && value != null) { - return Number.parseInt(value); - } - return 0; -} - -/** - * https://developer.mozilla.org/zh-CN/docs/Web/CSS/flex-shrink - * @param gxNode - * @returns - */ -function flexShrink(gxNode: GXNode): number { - let value: string = gxNode.gxTemplateNode.finalCss['flex-shrink']; - if (value != undefined && value != null) { - return Number.parseInt(value); - } - return 1; -} diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewTreeCreator.ts b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewTreeCreator.ts deleted file mode 100644 index 6d4ec6bf7..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/GXViewTreeCreator.ts +++ /dev/null @@ -1,194 +0,0 @@ -import GXTemplateContext from './GXTemplateContext'; -import { GXNode } from './GXNode'; -import GXTemplateNode from './GXTemplateNode'; -import GXTemplateInfo from './GXTemplateInfo'; -import { GXJSONArray, GXJSONObject } from './GXJson'; -import hilog from '@ohos.hilog'; -import GXTemplateItem from './GXTemplateItem'; -import GXCssConvertStyle from './GXCssConvertStyle'; - -export class GXViewTreeCreator { - - createNodeTree(gxTemplateContext: GXTemplateContext): GXNode { - - const gxTemplateData = gxTemplateContext.gxTemplateData.templateData as GXJSONObject; - - const gxTemplateInfo = gxTemplateContext.gxTemplateInfo; - - const gxLayer = gxTemplateInfo.layer; - - const gxParentNode = null; - - const gxVisualTemplateNode = gxTemplateContext.gxVisualTemplateNode; - - const gxVisualTemplateNodeData = null - - const gxRootNode = this.createNode( - gxTemplateContext, - gxTemplateInfo, - gxLayer, - gxTemplateData, - gxParentNode, - gxVisualTemplateNode, - gxVisualTemplateNodeData - ); - - const gxRootStyle = GXCssConvertStyle.createRootStyle(gxTemplateContext.gxMeasureSize, gxRootNode, gxTemplateData); - - gxTemplateContext.gxRootStyle = gxRootStyle; - - gxTemplateContext.gxRootNode = gxRootNode; - - hilog.debug(0x0000, 'gaiaxTag', 'createRootNode %{public}s', JSON.stringify(gxRootNode) ?? 'null'); - - return gxRootNode; - } - - private createNode( - gxTemplateContext: GXTemplateContext, - gxTemplateInfo: GXTemplateInfo, - gxLayer: GXJSONObject, - gxTemplateData: GXJSONObject, - gxParentNode?: GXNode, - gxVisualTemplateNode?: GXTemplateNode, - gxVisualTemplateNodeData?: GXJSONObject, - - ): GXNode { - - const gxNode = GXNode.create(); - - gxNode.setIdPath(gxTemplateContext, gxLayer, gxParentNode); - - gxNode.gxTemplateNode = GXTemplateNode.create(gxLayer, gxTemplateInfo, gxVisualTemplateNode); - - if (gxNode.gxTemplateNode.isViewType() || gxNode.gxTemplateNode.isGaiaTemplate()) { - this.createViewOrTemplateNode( - gxTemplateContext, - gxNode, - gxTemplateData, - gxLayer, - gxTemplateInfo, - gxParentNode, - gxVisualTemplateNodeData - ); - } else if (gxNode.gxTemplateNode.isTextType()) { - this.createTextNode( - gxTemplateContext, - gxNode, - gxTemplateData, - gxParentNode - ); - } - - return gxNode; - } - - private createViewOrTemplateNode( - gxTemplateContext: GXTemplateContext, - gxNode: GXNode, - gxTemplateData: GXJSONObject, - gxLayer: GXJSONObject, - gxTemplateInfo: GXTemplateInfo, - gxParentNode: GXNode, - gxVisualTemplateNodeData?: GXJSONObject, - ) { - gxNode.gxTemplateNode.initFinal(gxTemplateContext, gxTemplateData, gxVisualTemplateNodeData, gxParentNode); - - const layers = gxLayer['layers'] as GXJSONArray; - - if (layers != null) { - - if (gxNode != null && gxNode.gxChildren == null) { - gxNode.gxChildren = new Array(); - } - - for (const target of layers) { - - const childLayer = target as GXJSONObject; - - // 嵌套子模板类型,是个虚拟节点 - if (GXTemplateNode.isNestChildTemplateType(childLayer)) { - - // 获取子模板信息 - const gxChildTemplateInfo = gxTemplateInfo.getChildTemplate(childLayer.id); - - // 创建一个虚拟节点 - const gxChildVisualTemplateNode = GXTemplateNode.create(childLayer, gxTemplateInfo, null); - - // 获取子模板的根节点 - const gxChildLayer = gxChildTemplateInfo.layer; - - // 容器模板下的子模板 - if (gxNode.gxTemplateNode.isContainerType()) { - - // 初始化 - if (gxNode != null && gxNode.gxChildTemplateItems == null) { - gxNode.gxChildTemplateItems = new Map(); - } - - // 容器下的子模板 - const childTemplateItem = GXTemplateItem.create( - gxTemplateContext.gxTemplateItem.templateBiz, - gxChildLayer.id - ); - - gxNode?.gxChildTemplateItems?.set(childTemplateItem, gxChildVisualTemplateNode); - } - // 普通模板嵌套的子模板根节点,可能是普通模板也可能是容器模板 - else { - - // 获取嵌套子模板的数据,会传给下一级模板当做数据源 - const gxChildTemplateData = gxChildVisualTemplateNode.getDataValue(gxTemplateData); - - // 使用原有数据源作为虚拟节点的数据源 - const gxChildVisualTemplateNodeData = gxTemplateData; - - const childNode = this.createNode( - gxTemplateContext, - gxChildTemplateInfo, - gxChildLayer, - gxChildTemplateData, - gxNode, - gxChildVisualTemplateNode, - gxChildVisualTemplateNodeData - ); - - gxNode?.gxChildren?.push(childNode); - - } - } - // 普通子节点 - else { - const childNode = this.createNode( - gxTemplateContext, - gxTemplateInfo, - childLayer, - gxTemplateData, - gxNode, - null - ); - - gxNode?.gxChildren?.push(childNode); - } - } - } - } - - - private createTextNode( - gxTemplateContext: GXTemplateContext, - gxNode: GXNode, - gxTemplateData: GXJSONObject, - gxParentNode?: GXNode - ) { - gxNode.gxTemplateNode.initFinal(gxTemplateContext, gxTemplateData, null, gxParentNode); - - const data = gxNode.gxTemplateNode.getData(gxTemplateData); - - gxNode.gxData = data; - } -} - -let gxViewTreeCreator = new GXViewTreeCreator(); - -export default gxViewTreeCreator as GXViewTreeCreator; \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/view/GXView.ets b/GaiaXHarmony/GaiaX/src/main/ets/gaiax/view/GXView.ets deleted file mode 100644 index e0f824c5c..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/gaiax/view/GXView.ets +++ /dev/null @@ -1,8 +0,0 @@ -@Component -struct GXView { - flexOptions: FlexOptions - - build() { - Flex(this.flexOptions) - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/pages/Index.ets b/GaiaXHarmony/GaiaX/src/main/ets/pages/Index.ets deleted file mode 100644 index d6ca48cf4..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/pages/Index.ets +++ /dev/null @@ -1,17 +0,0 @@ -@Entry -@Component -struct Index { - @State message: string = 'Hello World' - - build() { - Row() { - Column() { - Text(this.message) - .fontSize(50) - .fontWeight(FontWeight.Bold) - } - .width('100%') - } - .height('100%') - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/ets/utils/RawFileUtils.ets b/GaiaXHarmony/GaiaX/src/main/ets/utils/RawFileUtils.ets deleted file mode 100644 index 0085c15bd..000000000 --- a/GaiaXHarmony/GaiaX/src/main/ets/utils/RawFileUtils.ets +++ /dev/null @@ -1,63 +0,0 @@ -import GXTemplateItem from '../gaiax/GXTemplateItem'; - -type Callback = (error: Error | null, data: any | null) => void; - -function Uint8ArrayToString(fileData) { - var dataString = ""; - for (var i = 0; i < fileData.length; i++) { - dataString += String.fromCharCode(fileData[i]); - } - - return dataString -} - -function stringToUint8Array(str) { - var arr = []; - for (var i = 0, j = str.length; i < j; ++i) { - arr.push(str.charCodeAt(i)); - } - - var tmpUint8Array = new Uint8Array(arr); - return tmpUint8Array -} - -// 从RawFile中加载模板 -export function loadTemplate(context: Context, gxTemplateItem: GXTemplateItem, callback: Callback) { - context - .resourceManager - .getRawFileContent(`${gxTemplateItem.templateBiz}/${gxTemplateItem.templateId}/index.json`, (error, value) => { - if (error != null) { - console.log("error is " + error); - callback(error, null) - } else { - let indexJSON = Uint8ArrayToString(value); - context - .resourceManager - .getRawFileContent(`${gxTemplateItem.templateBiz}/${gxTemplateItem.templateId}/index.css`, (error, value) => { - if (error != null) { - console.log("error is " + error); - callback(error, null) - } else { - let indexCSS = Uint8ArrayToString(value); - context - .resourceManager - .getRawFileContent(`${gxTemplateItem.templateBiz}/${gxTemplateItem.templateId}/index.databinding`, (error, value) => { - if (error != null) { - console.log("error is " + error); - callback(error, null) - } else { - let indexDataBinding = Uint8ArrayToString(value); - - let template = { - "index.json": indexJSON, - "index.css": indexCSS, - "index.databinding": indexDataBinding, - }; - callback(null, template); - } - }); - } - }); - } - }); -} diff --git a/GaiaXHarmony/GaiaX/src/main/module.json5 b/GaiaXHarmony/GaiaX/src/main/module.json5 deleted file mode 100644 index 9dbb0027b..000000000 --- a/GaiaXHarmony/GaiaX/src/main/module.json5 +++ /dev/null @@ -1,13 +0,0 @@ -{ - "module": { - "name": "GaiaX", - "type": "shared", - "description": "$string:shared_desc", - "deviceTypes": [ - "phone", - "tablet" - ], - "deliveryWithInstall": true, - "pages": "$profile:main_pages" - } -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/resources/base/element/color.json b/GaiaXHarmony/GaiaX/src/main/resources/base/element/color.json deleted file mode 100644 index 1bbc9aa96..000000000 --- a/GaiaXHarmony/GaiaX/src/main/resources/base/element/color.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "color": [ - { - "name": "white", - "value": "#FFFFFF" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/resources/base/element/string.json b/GaiaXHarmony/GaiaX/src/main/resources/base/element/string.json deleted file mode 100644 index 98e1d8a84..000000000 --- a/GaiaXHarmony/GaiaX/src/main/resources/base/element/string.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "string": [ - { - "name": "shared_desc", - "value": "description" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/GaiaX/src/main/resources/base/media/icon.png b/GaiaXHarmony/GaiaX/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - 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() { - // 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/GaiaXHarmony/app/src/main/ets/pages/Index.ets b/GaiaXHarmony/app/src/main/ets/pages/Index.ets deleted file mode 100644 index 278090b1b..000000000 --- a/GaiaXHarmony/app/src/main/ets/pages/Index.ets +++ /dev/null @@ -1,27 +0,0 @@ -import { GXComponent } from 'gaiax' -import GXParams from './Modal' - -@Entry -@Component -struct Index { - @State message: string = 'Hello GaiaX' - - build() { - Row() { - Column() { - Text(this.message) - .height("100vp") - .fontSize(28) - .fontWeight(FontWeight.Bold) - GXComponent({ - gxTemplateItem: GXParams.getGXTemplateItem(), - gxTemplateData: GXParams.getGXTemplateData(), - gxMeasureSize: GXParams.getGXMeasureSize() - }) - } - .width('100%') - - } - .height('100%') - } -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/main/ets/pages/Modal.ets b/GaiaXHarmony/app/src/main/ets/pages/Modal.ets deleted file mode 100644 index d185224ec..000000000 --- a/GaiaXHarmony/app/src/main/ets/pages/Modal.ets +++ /dev/null @@ -1,69 +0,0 @@ -import GXIExtensionTemplateSource from 'gaiax/src/main/ets/gaiax/GXIExtensionTemplateSource'; -import GXMeasureSize from 'gaiax/src/main/ets/gaiax/GXMeasureSize'; -import GXTemplate from 'gaiax/src/main/ets/gaiax/GXTemplate'; -import GXTemplateData from 'gaiax/src/main/ets/gaiax/GXTemplateData'; -import GXTemplateItem from 'gaiax/src/main/ets/gaiax/GXTemplateItem'; -import { gxRegisterCenter } from 'gaiax/src/main/ets/gaiax/GXRegisterCenter'; -import hilog from '@ohos.hilog'; - -class GXFastPreviewTemplateSource implements GXIExtensionTemplateSource { - getTemplate(gxTemplateItem: GXTemplateItem): GXTemplate { - const templateData = this.templates.get(gxTemplateItem.templateId) - if (templateData != null && templateData != undefined) { - let layer = templateData['index.json']; - let css = templateData['index.css']; - let data = templateData['index.databinding']; - return GXTemplate.create(layer, css, data); - } - return null; - } - - private templates = new Map(); - - addData(templateId: string, template: any) { - this.templates.set(templateId, template) - } - - getData(templateId: string) { - return this.templates.get(templateId); - } -} - - - -export const gxFastPreviewTemplateSource = new GXFastPreviewTemplateSource(); - -class GXParams { - getGXTemplateItem() { - let gxTemplateItem = new GXTemplateItem(); - gxTemplateItem.templateBiz = 'harmony'; - gxTemplateItem.templateId = 'harmony-demo'; - return gxTemplateItem; - } - - getGXTemplateData() { - let gxTemplateData = new GXTemplateData(); - return gxTemplateData; - } - - getGXMeasureSize() { - let gxMeasureSize = new GXMeasureSize(); - gxMeasureSize.templateWidth = "100%"; - return gxMeasureSize; - } -} - -let gxParams = new GXParams(); - -// gxRegisterCenter.registerExtensionTemplateSource(gxFastPreviewTemplateSource) - -// let template = { -// "index.css": $rawfile('harmony/harmony-demo/index.css'), -// "index.databinding": $rawfile('harmony/harmony-demo/index.databinding'), -// "index.json": $rawfile('harmony/harmony-demo/index.json'), -// }; -// // gxTemplateSource.addData("harmony-demo", template); -// hilog.error(0x0000, 'gaiaxTag', 'template = %{public}s', JSON.stringify(template) ?? 'null'); - -export default gxParams as GXParams; - diff --git a/GaiaXHarmony/app/src/main/module.json5 b/GaiaXHarmony/app/src/main/module.json5 deleted file mode 100644 index 8212c52f7..000000000 --- a/GaiaXHarmony/app/src/main/module.json5 +++ /dev/null @@ -1,37 +0,0 @@ -{ - "module": { - "name": "app", - "type": "entry", - "description": "$string:module_desc", - "mainElement": "AppAbility", - "deviceTypes": [ - "phone", - "tablet" - ], - "deliveryWithInstall": true, - "installationFree": false, - "pages": "$profile:main_pages", - "abilities": [ - { - "name": "AppAbility", - "srcEntry": "./ets/appability/AppAbility.ts", - "description": "$string:AppAbility_desc", - "icon": "$media:icon", - "label": "$string:AppAbility_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/GaiaXHarmony/app/src/main/resources/base/element/color.json b/GaiaXHarmony/app/src/main/resources/base/element/color.json deleted file mode 100644 index 3c712962d..000000000 --- a/GaiaXHarmony/app/src/main/resources/base/element/color.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "color": [ - { - "name": "start_window_background", - "value": "#FFFFFF" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/main/resources/base/element/string.json b/GaiaXHarmony/app/src/main/resources/base/element/string.json deleted file mode 100644 index 647f36bb9..000000000 --- a/GaiaXHarmony/app/src/main/resources/base/element/string.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "string": [ - { - "name": "module_desc", - "value": "module description" - }, - { - "name": "AppAbility_desc", - "value": "description" - }, - { - "name": "AppAbility_label", - "value": "label" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/main/resources/base/media/icon.png b/GaiaXHarmony/app/src/main/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 { - 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/GaiaXHarmony/app/src/ohosTest/ets/testability/pages/Index.ets b/GaiaXHarmony/app/src/ohosTest/ets/testability/pages/Index.ets deleted file mode 100644 index 166366593..000000000 --- a/GaiaXHarmony/app/src/ohosTest/ets/testability/pages/Index.ets +++ /dev/null @@ -1,34 +0,0 @@ -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/GaiaXHarmony/app/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts b/GaiaXHarmony/app/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts deleted file mode 100644 index 2d6786fe8..000000000 --- a/GaiaXHarmony/app/src/ohosTest/ets/testrunner/OpenHarmonyTestRunner.ts +++ /dev/null @@ -1,46 +0,0 @@ -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() - const bundleName = abilityDelegatorArguments.bundleName; - const testAbilityName = 'TestAbility'; - let lMonitor = { - abilityName: testAbilityName, - onAbilityCreate: onAbilityCreateCallback, - }; - abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) - const want = { - bundleName: bundleName, - abilityName: testAbilityName - }; - abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator(); - abilityDelegator.startAbility(want, (err : any, data : any) => { - hilog.info(0x0000, 'testTag', 'startAbility : err : %{public}s', JSON.stringify(err) ?? ''); - hilog.info(0x0000, 'testTag', 'startAbility : data : %{public}s',JSON.stringify(data) ?? ''); - }) - hilog.info(0x0000, 'testTag', '%{public}s', 'OpenHarmonyTestRunner onRun end'); - } -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/ohosTest/module.json5 b/GaiaXHarmony/app/src/ohosTest/module.json5 deleted file mode 100644 index c692b55eb..000000000 --- a/GaiaXHarmony/app/src/ohosTest/module.json5 +++ /dev/null @@ -1,37 +0,0 @@ -{ - "module": { - "name": "app_test", - "type": "feature", - "description": "$string:module_test_desc", - "mainElement": "TestAbility", - "deviceTypes": [ - "phone", - "tablet" - ], - "deliveryWithInstall": true, - "installationFree": false, - "pages": "$profile:test_pages", - "abilities": [ - { - "name": "TestAbility", - "srcEntry": "./ets/testability/TestAbility.ets", - "description": "$string:TestAbility_desc", - "icon": "$media:icon", - "label": "$string:TestAbility_label", - "exported": true, - "startWindowIcon": "$media:icon", - "startWindowBackground": "$color:start_window_background", - "skills": [ - { - "actions": [ - "action.system.home" - ], - "entities": [ - "entity.system.home" - ] - } - ] - } - ] - } -} diff --git a/GaiaXHarmony/app/src/ohosTest/resources/base/element/color.json b/GaiaXHarmony/app/src/ohosTest/resources/base/element/color.json deleted file mode 100644 index 3c712962d..000000000 --- a/GaiaXHarmony/app/src/ohosTest/resources/base/element/color.json +++ /dev/null @@ -1,8 +0,0 @@ -{ - "color": [ - { - "name": "start_window_background", - "value": "#FFFFFF" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/ohosTest/resources/base/element/string.json b/GaiaXHarmony/app/src/ohosTest/resources/base/element/string.json deleted file mode 100644 index 65d8fa5a7..000000000 --- a/GaiaXHarmony/app/src/ohosTest/resources/base/element/string.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "string": [ - { - "name": "module_test_desc", - "value": "test ability description" - }, - { - "name": "TestAbility_desc", - "value": "the test ability" - }, - { - "name": "TestAbility_label", - "value": "test label" - } - ] -} \ No newline at end of file diff --git a/GaiaXHarmony/app/src/ohosTest/resources/base/media/icon.png b/GaiaXHarmony/app/src/ohosTest/resources/base/media/icon.png deleted file mode 100644 index ce307a8827bd75456441ceb57d530e4c8d45d36c..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 6790 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 J#LU>X001YYpS%D7 diff --git a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.cer b/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.cer deleted file mode 100644 index bd143a56a..000000000 --- a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.cer +++ /dev/null @@ -1,50 +0,0 @@ ------BEGIN CERTIFICATE----- -MIICGjCCAaGgAwIBAgIIShhpn519jNAwCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC -Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE -AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDMxNjAzMDQzOVoXDTQ5MDMx -NjAzMDQzOVowUzELMAkGA1UEBhMCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE -CwwKSHVhd2VpIENCRzEeMBwGA1UEAwwVSHVhd2VpIENCRyBSb290IENBIEcyMHYw -EAYHKoZIzj0CAQYFK4EEACIDYgAEWidkGnDSOw3/HE2y2GHl+fpWBIa5S+IlnNrs -GUvwC1I2QWvtqCHWmwFlFK95zKXiM8s9yV3VVXh7ivN8ZJO3SC5N1TCrvB2lpHMB -wcz4DA0kgHCMm/wDec6kOHx1xvCRo0IwQDAOBgNVHQ8BAf8EBAMCAQYwDwYDVR0T -AQH/BAUwAwEB/zAdBgNVHQ4EFgQUo45a9Vq8cYwqaiVyfkiS4pLcIAAwCgYIKoZI -zj0EAwMDZwAwZAIwMypeB7P0IbY7c6gpWcClhRznOJFj8uavrNu2PIoz9KIqr3jn -BlBHJs0myI7ntYpEAjBbm8eDMZY5zq5iMZUC6H7UzYSix4Uy1YlsLVV738PtKP9h -FTjgDHctXJlC5L7+ZDY= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIIDATCCAoigAwIBAgIIXmuDXbWpOB8wCgYIKoZIzj0EAwMwUzELMAkGA1UEBhMC -Q04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEeMBwGA1UE -AwwVSHVhd2VpIENCRyBSb290IENBIEcyMB4XDTIwMDcwOTAyMDQyNFoXDTMwMDcw -NzAyMDQyNFowYjELMAkGA1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UE -CwwKSHVhd2VpIENCRzEtMCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVs -YXRpb25zIENBIEcyMHYwEAYHKoZIzj0CAQYFK4EEACIDYgAE65LdoIZh1hlpZ2gP -bJ6gPhHsvYSRe22KETgdqeVeYnrbRHI9wsPT6RGYS+pU4mPl6wxzgDMqN6SY/BoZ -luhkE1PzaHoPoNIWIq0O33hpyKyyYwAacIUEjYurkw1E9r9no4IBGDCCARQwHwYD -VR0jBBgwFoAUo45a9Vq8cYwqaiVyfkiS4pLcIAAwHQYDVR0OBBYEFNtek7Ij6NDk -/nF6Zumkc0dbf/NeMEYGA1UdIAQ/MD0wOwYEVR0gADAzMDEGCCsGAQUFBwIBFiVo -dHRwOi8vY3BraS1jYXdlYi5odWF3ZWkuY29tL2Nwa2kvY3BzMBIGA1UdEwEB/wQI -MAYBAf8CAQAwDgYDVR0PAQH/BAQDAgEGMGYGA1UdHwRfMF0wW6BZoFeGVWh0dHA6 -Ly9jcGtpLWNhd2ViLmh1YXdlaS5jb20vY3BraS9zZXJ2bGV0L2NybEZpbGVEb3du -LmNybD9jZXJ0eXBlPTEwJi9yb290X2cyX2NybC5jcmwwCgYIKoZIzj0EAwMDZwAw -ZAIwWO1X5q2MdfpR1Q237GpUHGbL1C13rGyFg2p3AYo44FpZ2/A9ss0wOHKM4KDl -ZPqdAjBLkf8NPZy7KVog98+iCTLq35DJ2ZVxkCxknA9YhiHVyXf4HPm4JlT7rW7o -Q+FzM3c= ------END CERTIFICATE----- ------BEGIN CERTIFICATE----- -MIICrzCCAjagAwIBAgIOCfmAemKyr+maOeY8OsowCgYIKoZIzj0EAwMwYjELMAkG -A1UEBgwCQ04xDzANBgNVBAoMBkh1YXdlaTETMBEGA1UECwwKSHVhd2VpIENCRzEt -MCsGA1UEAwwkSHVhd2VpIENCRyBEZXZlbG9wZXIgUmVsYXRpb25zIENBIEcyMB4X -DTIzMDkyNjA5MzUyMVoXDTI0MDkyNjA5MzUyMFowdzELMAkGA1UEBhMCQ04xEjAQ -BgNVBAoMCeWIq+W/l+WNjjEdMBsGA1UECwwUMTQwMDU3ODc3MTQ1Nzg5MjY0ODMx -NTAzBgNVBAMMLOWIq+W/l+WNjigxNDAwNTc4NzcxNDU3ODkyNjQ4MylcLERldmVs -b3BtZW50MFkwEwYHKoZIzj0CAQYIKoZIzj0DAQcDQgAE/EOxsyguJuWOaF+40dIi -W3KN6lc7oSujdXEmqi3PidTO4njL/fjykeFtbNGwp7rDlhIzTB+oCz6YlJ3YU08B -NqOBujCBtzAMBgNVHRMBAf8EAjAAMEIGA1UdHwQ7MDkwN6A1oDOGMWh0dHA6Ly9j -cmwuY2xvdWQuaHVhd2VpLmNvbS9IdWF3ZWlDQkdIRFJHMmNybC5jcmwwHwYDVR0j -BBgwFoAU216TsiPo0OT+cXpm6aRzR1t/814wHQYDVR0OBBYEFMyrMEQasD6HROqJ -wz50+7wy99HUMA4GA1UdDwEB/wQEAwIHgDATBgNVHSUEDDAKBggrBgEFBQcDAzAK -BggqhkjOPQQDAwNnADBkAjBIrxnzmfer2Nx4lmIFbuAy4S+rmaRpNHPNCPwfqVhk -JkCIJlzFDsVlHpXFcZuBlxsCMEizHRDVV4mQvmIWPCMcbkPu725ly1TRYM9Z3CI+ -uusak3ZPM66WOl0LjehA2IWciA== ------END CERTIFICATE----- diff --git a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.csr b/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.csr deleted file mode 100644 index 720566bef..000000000 --- a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.csr +++ /dev/null @@ -1,9 +0,0 @@ ------BEGIN NEW CERTIFICATE REQUEST----- -MIIBNjCB3AIBADBKMQkwBwYDVQQGEwAxCTAHBgNVBAgTADEJMAcGA1UEBxMAMQkw -BwYDVQQKEwAxCTAHBgNVBAsTADERMA8GA1UEAxMIRGVidWdLZXkwWTATBgcqhkjO -PQIBBggqhkjOPQMBBwNCAAT8Q7GzKC4m5Y5oX7jR0iJbco3qVzuhK6N1cSaqLc+J -1M7ieMv9+PKR4W1s0bCnusOWEjNMH6gLPpiUndhTTwE2oDAwLgYJKoZIhvcNAQkO -MSEwHzAdBgNVHQ4EFgQUzKswRBqwPodE6onDPnT7vDL30dQwCgYIKoZIzj0EAwID -SQAwRgIhAIzNFS/8GN296Ce83xJk/sn3fpXs0Q16B4L93KJpGHcVAiEAzb796BE+ -PKf5kFIuhifSo+FFsTUgsJK7EndrYvzJcFw= ------END NEW CERTIFICATE REQUEST----- diff --git a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p12 b/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p12 deleted file mode 100644 index a6077d6a65c200bea7ade6cbe0859892211826d3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 1128 zcmXqLVo70QWHxAG;bY^}YV&CO&dbQoxS)yoKT8wyZ-XZ0?*>hbdMHwi@+?h^(m-Kx zAQoohhU((sVq{v-xYwX@mq8j_Ju9z4q=5y3%VVI;BEnpjuq)52E9JG}$MsPcO;?48 zAMs&gQWs!iR50LSI@3p8BBSRMhdAMUaMGS@H1Q=2nQW=sM zN*U4_vVp8h14V=aQ9}_Hp^(hnR0TsbOH*?r14|aMMeJ+~nwT~Lh1M}K zG61RN2pL8~0d-mAQrdz1grd|tekuY>#X~y(-jR( zOa^nmsukZ~CVFYYiMgz2f^J1B=#{-OA zl*2|VG06QA z(+ne};Js3F5B}#ply{w7+rA`CZ=(99xdKr)|JS6PxwvV5zwYZ3zQQ4?fomJmv+4p^ zU8NuY_w#TLpEvKw(fp#Nr4u(#J^RGv_PyQ3H+$DVOe=aHa(d;d&If;IcHQ%lzkNA) z16#|S<=kSYp7MDn?k}(Dv}4HWo2&L~YUWFs*IX$dUKhna?X;V@-S_Syy-C$)mTzY3 z%ztvU{(*av)_aj(tE|MIO9?;CF>Ux2v}5J#`~-t|_DrcR>5_=OtQM2kPm7Y+dR8xS zMQoDPld5AnE9~dJxcfD0)!qmrE~y)j?!?{7-2HZzi<$nB*R`(Ke}`_o+`sseW2W-T zr8BhLH_4=iT70(3(c8ICWYX%XzS}s~UOHQ?7*YL`>Dxq}KO!sn{zS8$JaL=Pc%o+c zdzo{0bC`_}C>W^r&$--_8FAzGOk1;_!UM14wl}Yc{M(rD(AxNS_d}1LlY%~;dAB@F zx{+_8sK|=KW##6_XLr37_ODTR;q{4E_u6FsSFxWas4b0KeZDNP#q3FXjS!RVF2-9? ze3v5jHAWwJvQPL#%wieI`>_?4;s(A3h6cRw{Kv$|%D|!^E5@d?e)C0pGkLT7S0Cuj vToiXMa?wNC&brm0wq}hi2BK$ diff --git a/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p7b b/GaiaXHarmony/config/auto_debug_GaiaXHarmony_com.alibaba.gaiax.demo_40086000132854920.p7b deleted file mode 100644 index 68d23a4dca2e2b92fabfa8e107607945322e01e8..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 4156 zcmcgv3vg3a8g3qhM_VWYojW<_ zKj-}SJLi1gckThbWoFgbg?-k(uS;d4<^8>76`;3lo?IqFN@9s(nV?Y0WuRB} z*yWD0{$AB)Wv}YNTQ%K6DjiD1wQ(*cXclYGDo_P9i!O!z2_A;gMVf3j#KU&80hsi9 z#G=LYJf_uSyg}8uY@Ck@+E6@@kh1YYw-8Mvg_O2{ zM-PD62mnAZ)NIgOPzn2RmzWUGX#GMe6AFa>NmHr62#%5QOw99Q{Y$Wcc3(>YX zYqOE5JW1kVE{KaZ0uS08WFUqMvASHUGR8RskJ*tm4Jqgn~VG3K#8ezuunr z!?Kh?!s^tsxv0OMc13wOv$nVoBQo9=17MkmNQ)lp@OqQD^U~T=xYJKLgE+0D9X;t> zFk72#ad1qf9`LqMTf7CUvm2v+Q=%~&=3D7lR|sne@otAc9GOu$)mIf!hSBr>A4(|8!iS=uJ;6K@rrCb+Vq z-H0Oz%2C6%bOPRr8|!nHa9i9T6SE$)r<-qaX1U?Lu8-NfeT^0y-@;(tmMGdZ=a>fEfr#CnkY6p@`9)4mBiz!(HibO~#CzEAK)wIy0gdt}04i8+hK+Qj1e0%}U637zPK?6p~g6z(p}uCa-x zD7=mc22(_kW(c^tcpk5l_z>*sjD#HxPN%eYahxI|c$l!IdgA$5KuDqX9(^=sV|-aW zr*EuG#W+{eZf&rW4Pv0HxiiuhuZ@tl+Gw7k(#=t8vX$|BvqZEfO|o<-Z*@`4&H9+L zJ7#NXAX&dJ(vUTwhG-6PyF9GLi;=dU}l0qNduq}0;eqS-)LX}33t(e8gSCW&}IVzYbF{% z3pMJ^1VczENXCqs%@%|(1Hz0+56zGOVlo?W6vYhyr%AoRU^3CT(Lw;6p)tY&aNI=e zEoKJOv=@wcXkOZ3PtWquwBhtQe^go{Sb__dl}-S-{K<|W7mW(3oMvTz@0e+zS3U#u z$_Dxsa+zE{rgmCr>#tU>e-n&Tje+Og>(xqy0yHAUV5~~fq*P6klXheRD3vPXN>tV? zCki2C5|}6jic7`~1=J)_gIot@NW2E0M^kNnBlng6pQ1q5xos5nw=%S-ewA z^_CIUALpgrpiDKoFfX}GHLCJuf4TSco^_NQEZh9@9moTg*Prkq zo8%wecKEf`+g@IS9=R*3ZMyZ?3ukV)z)dk9FA=qEzaUQT|Bg38cASMzZkQc&7cHvT zF>AVKBo@H`KkU!}?GQWWk6=e*B9IZel%Q@51>>Q3P~9k`B*{X?6zBqpg6e@0YEGgH zY93Jq%P*lQxhhAef+^Aqi%Z5^9gS){nXDO70WuHF9YQiwYG_C$0->m&X1O>Q6r^t( zH6_3=B;Wy)E;DCH8VcEH1yQ7YA#S+YyXWZK`-%3CXFR|Re!ck9vd2!(y<_jbx@(jE z($TN9KQpL#@sA64cTxl6_uP^D*{p-BsN=>C$NnU-6_Fma^sK6;;HpDS&u5ubE zUp4ugufE=|Zfa$y08eHTJ!y^dkt;ihcIx=69by^N#Ni4exEcX8ZEShc*I6 z8n0F^1=V1QN(qZaP+Ev;Or=UTYSd`CtbAT)CX-yO(oJ|5 z)A^I>D~URK6{wf;&Q{XU4e|b^{ndR-en6g7RF{U^*^!1@*^y3lclcA$D)_))&AD%Znkp{VY@r@5d#C5Z&IS9?s(fN#+u=uoa?pPI(AqZxnp5{~c;(On>Ww>> ze|Ti~^0h1EC%M}n&@~_jP8~X3(RO&+`CkY6>=hC2SVJC->R<}g!Ne+ zGtGB}EMWBe!hjAQ7!pPYXa~#sJ^d|xO~bQy(xO5}2c^J3qoERFT$067=>`RF zWYq|muS>yGvLlFIlFW#+cvu4wnG$g|-tt)a^-0^_eBFYjWhZa^`9t4rZ-2Y&c>GJW zTk}PA<$*I>g>_rfXDg;pJS7L=kmsdM7tY^#ZQI_b>$R)*mG>}fK575Fq4(&`&+a;R zeANf#%#&r|ryWS`Bj*l2GRPslG8*m%4rK_EKMnEZV=kR9Bk$DxA!rX5FW+Mo2yDA} z6PLknjEj}AqmT*kP{81=*9a__0mZyPcez!GXq4*e;BAhmSwZ7V; zRccn%uG+49pL@UWxqqDJoagtx=l%DEMuX$YNCD7juqp+$Xq-;mA6imMQbIIX3K$KR zxWXdPXv&KJlPC*;(Uf^tIO}TCDQN!t1qP9l5uzy-ub>=MgaY(Gd=<_CWWFt8SnQ=VDvfL_ z5B548_gT3`I&Sa3Ho!hSSK(UYd#iNfx2*>mtMEFEuWnrrs{i$u9=_Gr{;#_Mi|um= ziq)-04@sTTa@Aq-u&w2#p*==bk%9qT*qj z`oSaPYsB0)`mMDddUZ75t>IieqgMG-<|6m*-kx*YWu&nd$Z_)}Lnn$X?ljK~S@I-;uG_q8T_o72arE z36$v9O8Ro))=tG=~*K9h0W~yn_TNhMW&{k#o zW@7%eHJ&`5$5R`sM!Q@R-@8`!HEt^g1}Cvu)Jj2K<@E`m*P6Vjd1a<;WGsGB8Mtq9 zKfN)y*A;C(|Te?{>^D zjHd06r$xrBc$F`xXLPqL3B;Rg_r9>pKl^IRGLZ}@8g7C;p=Gnjr@zU{z<5#5=P7UL zN1+0~5JDDUeg%6tfik>D^rKwA8Q2JUpf`dPkG<@EUD>dbe2OFxpuW!c$vm z^rbuXJO=e2F>wPTh`yB+_X-ipKHU;9sF)=)ag}#MGQ+_>gEuB@=_2i0R%oD|d&teh zFCd%jvX&tg(RHfqcBl?N(k@^=esSxxy+f?kJNqN`;?uX-&lzHQM&5_U{w=-Y&;TkXt>M< z7ZhpI52-Kk)X6Nt-{9>#x(j`if16RN6ZvNGc1~(ZcU^Ol*(fr?0(42>y^bV&_;Qe+ zSMk`>U%kAnJc4rTcVjFdn`ok_0hHWnQR4F?&v#bKtbp@p+f5>BbD)b{-&Vg>cUpl1 z!e3v!H1sw*$2+Ik&al zg{nSi=~fG~QZ#{cj=+>HzVdunq^I;tY#&y00hh{7>+u9qqDwCtREML?o<-Y(x&%+=)Cx0G z5`BZfXPpZbxrFAdzOLrh@9jRIUu^qkaRykte`xtwgq}_EE$w7sE&prptQ$VH=gr@{ zByq)HpR07z?3ROdg^r=&4C(^I#Ei(96r&-z&v6Em_sWg7Ckn2Xc>606;As<*#1DiX4czG+} z*QrQmR8~$g;Ngz1)BYW!P2AN~sZA+UwZuPn`v0^YfpCkMjp3g4?Oc{7xW&*%r zw48ZXlCL7*%~_Ps57AT;# z9C7DtHr=WlH+X+_K-#7UQ)E>AzUUO`IW$l2<>AzWv<^|(%-3BDG)bZL;I4EjkkWv1 z|6R4z%u-Ko=U-L=Y$DPDxp5NKtrh#G%aBY>0VeqnR)!E!Voy}WQ=FkZ0?{T7z~hv6mW zjl=X?S}7s=gJgcN0<+r}xucq+6a_yOr?VD8k(m&4}xR`c7|?7KSj{yz7I`D z;8-51*7ljt`aC%lJvie!jDuZP6)Lo5IO*Ps&@F5?=pP{@D(`7A-AK=jkutgSDv&1C zYs`9C@rWsnsAJHjGD#|k)Aw0Kp;5qC@>0C*S7JGB_G_$wA&67(@@LBZ#N&q$OrYERx#{4;H)E2kOQt@79GH4QaS7B@{ z_t>9z+1qk!bj0 zL;nw|^xKFFWkOfT^ohhrApHB-&BUN;d|_F5J+dW7HcDM&@{muGJR^41-GlEeHgev_ ztTxQ4Sn^U^hkvzLQ#%@7R29Y^mCoA6y6|LS+{--dtiNK|U8_m%2MR9pq2*12>_zZ7 zesWZ|Ntv&kF5NQ`(>(FutUpr;e#p|vE4_LyH)0$4e2#R)H=oJsF<#j4mD%oCyc^T+ z*u8s~dI2(EZ=(N>;ZP9baWvHIv$1@?x7%ECO7o6z`(ANbN2gXL*-UzTtCSN3_Qh(p zEq9ILo2_P7M#*J70g2+*u;Q`%+Wg>f&V+N+gRN(rk}jQ``PngAIk<7k6QxPQvcx8( zisTB_6f|P_Y(8D;UAVw*GIrpr;yvoiMlnBAoO~`8YHmdjk@Zi#|K#JOO(bOHX~1yT z@Vj3!Pg2RFsAB{uHa)g3yxG&lDLXlYX`GNB)6F(S5_}L8YIjQ~7uax5U00chxU-r> zvn+g1a>^4*ocm6n>IP_*Lh1D6A4?D5syl!})3e$U2XEQ&49k)y@XMRB4*-fqYSj?V z)0c7+oVGPuQOea%0bFm^bl&uB7 i>VtvI!~PR9C0daTpK9NCd@^k{4q]+-b \ No newline at end of file diff --git a/GaiaXHarmony/config/material/ce/d2219569ba9f4e179b8ec193875ba8f6 b/GaiaXHarmony/config/material/ce/d2219569ba9f4e179b8ec193875ba8f6 deleted file mode 100644 index 8b9362a6ec54f2264352bffeecca0064712f88d4..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 48 zcmV-00MGvb001D(FKeIIEU_@vzNDn`Bt%}#_`Jw6^n9b4=W@y_9+S%`Im9q88@Ozf G#_-lIV;FD% diff --git a/GaiaXHarmony/config/material/fd/0/2379066c9d9f4d09be1d6f5da64c8ba9 b/GaiaXHarmony/config/material/fd/0/2379066c9d9f4d09be1d6f5da64c8ba9 deleted file mode 100644 index 6dbd12252..000000000 --- a/GaiaXHarmony/config/material/fd/0/2379066c9d9f4d09be1d6f5da64c8ba9 +++ /dev/null @@ -1 +0,0 @@ -1\GHGQAY< \ No newline at end of file diff --git a/GaiaXHarmony/config/material/fd/1/fe49d02062ec407eb9f8709cb3698f8e b/GaiaXHarmony/config/material/fd/1/fe49d02062ec407eb9f8709cb3698f8e deleted file mode 100644 index 33e1311ab..000000000 --- a/GaiaXHarmony/config/material/fd/1/fe49d02062ec407eb9f8709cb3698f8e +++ /dev/null @@ -1 +0,0 @@ -I^f im,ͮz \ No newline at end of file diff --git a/GaiaXHarmony/config/material/fd/2/c747d9df96c04a61a9010bfa4fa2b9ff b/GaiaXHarmony/config/material/fd/2/c747d9df96c04a61a9010bfa4fa2b9ff deleted file mode 100644 index 38a2d53c8..000000000 --- a/GaiaXHarmony/config/material/fd/2/c747d9df96c04a61a9010bfa4fa2b9ff +++ /dev/null @@ -1 +0,0 @@ -Ϗ 7B6Ikf \ No newline at end of file diff --git a/GaiaXHarmony/hvigor/hvigor-config.json5 b/GaiaXHarmony/hvigor/hvigor-config.json5 deleted file mode 100644 index 8c70ef0e9..000000000 --- a/GaiaXHarmony/hvigor/hvigor-config.json5 +++ /dev/null @@ -1,18 +0,0 @@ -{ - "hvigorVersion": "4.0.4", - "dependencies": { - "@ohos/hvigor-ohos-plugin": "4.0.4" - }, - "execution": { - // "daemon": true, /* Enable daemon compilation. Default: true */ - // "incremental": true, /* Enable incremental compilation. Default: true */ - // "parallel": true, /* Enable parallel compilation. Default: true */ - // "typeCheck": false, /* Enable typeCheck. Default: false */ - }, - "logging": { - // "level": "info" /* Define the log level. Value: [ "debug" | "info" | "warn" | "error" ]. Default: "info" */ - }, - "debugging": { - // "stacktrace": false /* Disable stacktrace compilation. Default: false */ - } -} \ No newline at end of file diff --git a/GaiaXHarmony/hvigor/hvigor-wrapper.js b/GaiaXHarmony/hvigor/hvigor-wrapper.js deleted file mode 100644 index 2be61f689..000000000 --- a/GaiaXHarmony/hvigor/hvigor-wrapper.js +++ /dev/null @@ -1 +0,0 @@ -"use strict";var u=require("path"),D=require("os"),e=require("fs"),t=require("child_process"),r=require("crypto"),n="undefined"!=typeof globalThis?globalThis:"undefined"!=typeof window?window:"undefined"!=typeof global?global:"undefined"!=typeof self?self:{},i={},C={},F=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(C,"__esModule",{value:!0}),C.maxPathLength=C.isMac=C.isLinux=C.isWindows=void 0;const E=F(D),A="Windows_NT",o="Darwin";function a(){return E.default.type()===A}function c(){return E.default.type()===o}C.isWindows=a,C.isLinux=function(){return"Linux"===E.default.type()},C.isMac=c,C.maxPathLength=function(){return c()?1016:a()?259:4095},function(e){var t=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),r=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),i=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&t(D,u,e);return r(D,u),D};Object.defineProperty(e,"__esModule",{value:!0}),e.WORK_SPACE=e.HVIGOR_PROJECT_WRAPPER_HOME=e.HVIGOR_PROJECT_ROOT_DIR=e.HVIGOR_PROJECT_CACHES_HOME=e.HVIGOR_PNPM_STORE_PATH=e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=e.PROJECT_CACHES=e.HVIGOR_WRAPPER_TOOLS_HOME=e.HVIGOR_USER_HOME=e.DEFAULT_PACKAGE_JSON=e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME=e.PNPM=e.HVIGOR=e.NPM_TOOL=e.PNPM_TOOL=e.HVIGOR_ENGINE_PACKAGE_NAME=void 0;const F=i(D),E=i(u),A=C;e.HVIGOR_ENGINE_PACKAGE_NAME="@ohos/hvigor",e.PNPM_TOOL=(0,A.isWindows)()?"pnpm.cmd":"pnpm",e.NPM_TOOL=(0,A.isWindows)()?"npm.cmd":"npm",e.HVIGOR="hvigor",e.PNPM="pnpm",e.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME="hvigor-config.json5",e.DEFAULT_PACKAGE_JSON="package.json",e.HVIGOR_USER_HOME=E.resolve(F.homedir(),".hvigor"),e.HVIGOR_WRAPPER_TOOLS_HOME=E.resolve(e.HVIGOR_USER_HOME,"wrapper","tools"),e.PROJECT_CACHES="project_caches",e.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH=E.resolve(e.HVIGOR_WRAPPER_TOOLS_HOME,"node_modules",".bin",e.PNPM_TOOL),e.HVIGOR_PNPM_STORE_PATH=E.resolve(e.HVIGOR_USER_HOME,"caches"),e.HVIGOR_PROJECT_CACHES_HOME=E.resolve(e.HVIGOR_USER_HOME,e.PROJECT_CACHES),e.HVIGOR_PROJECT_ROOT_DIR=process.cwd(),e.HVIGOR_PROJECT_WRAPPER_HOME=E.resolve(e.HVIGOR_PROJECT_ROOT_DIR,e.HVIGOR),e.WORK_SPACE="workspace"}(i);var s={},l={};Object.defineProperty(l,"__esModule",{value:!0}),l.logInfoPrintConsole=l.logErrorAndExit=void 0,l.logErrorAndExit=function(u){u instanceof Error?console.error(u.message):console.error(u),process.exit(-1)},l.logInfoPrintConsole=function(u){console.log(u)};var B=n&&n.__createBinding||(Object.create?function(u,D,e,t){void 0===t&&(t=e);var r=Object.getOwnPropertyDescriptor(D,e);r&&!("get"in r?!D.__esModule:r.writable||r.configurable)||(r={enumerable:!0,get:function(){return D[e]}}),Object.defineProperty(u,t,r)}:function(u,D,e,t){void 0===t&&(t=e),u[t]=D[e]}),d=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),f=n&&n.__importStar||function(u){if(u&&u.__esModule)return u;var D={};if(null!=u)for(var e in u)"default"!==e&&Object.prototype.hasOwnProperty.call(u,e)&&B(D,u,e);return d(D,u),D};Object.defineProperty(s,"__esModule",{value:!0});var _=s.executeBuild=void 0;const p=f(e),O=f(u),h=l;_=s.executeBuild=function(u){const D=O.resolve(u,"node_modules","@ohos","hvigor","bin","hvigor.js");try{const u=p.realpathSync(D);require(u)}catch(e){(0,h.logErrorAndExit)(`Error: ENOENT: no such file ${D},delete ${u} and retry.`)}};var P={},v={},g={},m={};Object.defineProperty(m,"__esModule",{value:!0}),m.Unicode=void 0;class R{}m.Unicode=R,R.SPACE_SEPARATOR=/[\u1680\u2000-\u200A\u202F\u205F\u3000]/,R.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]/,R.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(g,"__esModule",{value:!0}),g.JudgeUtil=void 0;const y=m;g.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&&y.Unicode.SPACE_SEPARATOR.test(u)}static isIdStartChar(u){return"string"==typeof u&&(u>="a"&&u<="z"||u>="A"&&u<="Z"||"$"===u||"_"===u||y.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||y.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 I=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(v,"__esModule",{value:!0}),v.parseJsonText=v.parseJsonFile=void 0;const N=I(e),b=I(D),S=I(u),w=g;var H;!function(u){u[u.Char=0]="Char",u[u.EOF=1]="EOF",u[u.Identifier=2]="Identifier"}(H||(H={}));let x,M,T,V,G,j,J="start",U=[],W=0,L=1,$=0,k=!1,K="default",z="'",q=1;function Z(u,D=!1){M=String(u),J="start",U=[],W=0,L=1,$=0,V=void 0,k=D;do{x=X(),ru[J]()}while("eof"!==x.type);return V}function X(){for(K="default",G="",z="'",q=1;;){j=Q();const u=uu[K]();if(u)return u}}function Q(){if(M[W])return String.fromCodePoint(M.codePointAt(W))}function Y(){const u=Q();return"\n"===u?(L++,$=0):u?$+=u.length:$++,u&&(W+=u.length),u}v.parseJsonFile=function(u,D=!1,e="utf-8"){const t=N.default.readFileSync(S.default.resolve(u),{encoding:e});try{return Z(t,D)}catch(D){if(D instanceof SyntaxError){const e=D.message.split("at");if(2===e.length)throw new Error(`${e[0].trim()}${b.default.EOL}\t at ${u}:${e[1].trim()}`)}throw new Error(`${u} is not in valid JSON/JSON5 format.`)}},v.parseJsonText=Z;const uu={default(){switch(j){case"/":return Y(),void(K="comment");case void 0:return Y(),Du("eof")}if(!w.JudgeUtil.isIgnoreChar(j)&&!w.JudgeUtil.isSpaceSeparator(j))return uu[J]();Y()},start(){K="value"},beforePropertyName(){switch(j){case"$":case"_":return G=Y(),void(K="identifierName");case"\\":return Y(),void(K="identifierNameStartEscape");case"}":return Du("punctuator",Y());case'"':case"'":return z=j,Y(),void(K="string")}if(w.JudgeUtil.isIdStartChar(j))return G+=Y(),void(K="identifierName");throw Fu(H.Char,Y())},afterPropertyName(){if(":"===j)return Du("punctuator",Y());throw Fu(H.Char,Y())},beforePropertyValue(){K="value"},afterPropertyValue(){switch(j){case",":case"}":return Du("punctuator",Y())}throw Fu(H.Char,Y())},beforeArrayValue(){if("]"===j)return Du("punctuator",Y());K="value"},afterArrayValue(){switch(j){case",":case"]":return Du("punctuator",Y())}throw Fu(H.Char,Y())},end(){throw Fu(H.Char,Y())},comment(){switch(j){case"*":return Y(),void(K="multiLineComment");case"/":return Y(),void(K="singleLineComment")}throw Fu(H.Char,Y())},multiLineComment(){switch(j){case"*":return Y(),void(K="multiLineCommentAsterisk");case void 0:throw Fu(H.Char,Y())}Y()},multiLineCommentAsterisk(){switch(j){case"*":return void Y();case"/":return Y(),void(K="default");case void 0:throw Fu(H.Char,Y())}Y(),K="multiLineComment"},singleLineComment(){switch(j){case"\n":case"\r":case"\u2028":case"\u2029":return Y(),void(K="default");case void 0:return Y(),Du("eof")}Y()},value(){switch(j){case"{":case"[":return Du("punctuator",Y());case"n":return Y(),eu("ull"),Du("null",null);case"t":return Y(),eu("rue"),Du("boolean",!0);case"f":return Y(),eu("alse"),Du("boolean",!1);case"-":case"+":return"-"===Y()&&(q=-1),void(K="numerical");case".":case"0":case"I":case"N":return void(K="numerical");case'"':case"'":return z=j,Y(),G="",void(K="string")}if(void 0===j||!w.JudgeUtil.isDigitWithoutZero(j))throw Fu(H.Char,Y());K="numerical"},numerical(){switch(j){case".":return G=Y(),void(K="decimalPointLeading");case"0":return G=Y(),void(K="zero");case"I":return Y(),eu("nfinity"),Du("numeric",q*(1/0));case"N":return Y(),eu("aN"),Du("numeric",NaN)}if(void 0!==j&&w.JudgeUtil.isDigitWithoutZero(j))return G=Y(),void(K="decimalInteger");throw Fu(H.Char,Y())},zero(){switch(j){case".":case"e":case"E":return void(K="decimal");case"x":case"X":return G+=Y(),void(K="hexadecimal")}return Du("numeric",0)},decimalInteger(){switch(j){case".":case"e":case"E":return void(K="decimal")}if(!w.JudgeUtil.isDigit(j))return Du("numeric",q*Number(G));G+=Y()},decimal(){switch(j){case".":G+=Y(),K="decimalFraction";break;case"e":case"E":G+=Y(),K="decimalExponent"}},decimalPointLeading(){if(w.JudgeUtil.isDigit(j))return G+=Y(),void(K="decimalFraction");throw Fu(H.Char,Y())},decimalFraction(){switch(j){case"e":case"E":return G+=Y(),void(K="decimalExponent")}if(!w.JudgeUtil.isDigit(j))return Du("numeric",q*Number(G));G+=Y()},decimalExponent(){switch(j){case"+":case"-":return G+=Y(),void(K="decimalExponentSign")}if(w.JudgeUtil.isDigit(j))return G+=Y(),void(K="decimalExponentInteger");throw Fu(H.Char,Y())},decimalExponentSign(){if(w.JudgeUtil.isDigit(j))return G+=Y(),void(K="decimalExponentInteger");throw Fu(H.Char,Y())},decimalExponentInteger(){if(!w.JudgeUtil.isDigit(j))return Du("numeric",q*Number(G));G+=Y()},hexadecimal(){if(w.JudgeUtil.isHexDigit(j))return G+=Y(),void(K="hexadecimalInteger");throw Fu(H.Char,Y())},hexadecimalInteger(){if(!w.JudgeUtil.isHexDigit(j))return Du("numeric",q*Number(G));G+=Y()},identifierNameStartEscape(){if("u"!==j)throw Fu(H.Char,Y());Y();const u=tu();switch(u){case"$":case"_":break;default:if(!w.JudgeUtil.isIdStartChar(u))throw Fu(H.Identifier)}G+=u,K="identifierName"},identifierName(){switch(j){case"$":case"_":case"‌":case"‍":return void(G+=Y());case"\\":return Y(),void(K="identifierNameEscape")}if(!w.JudgeUtil.isIdContinueChar(j))return Du("identifier",G);G+=Y()},identifierNameEscape(){if("u"!==j)throw Fu(H.Char,Y());Y();const u=tu();switch(u){case"$":case"_":case"‌":case"‍":break;default:if(!w.JudgeUtil.isIdContinueChar(u))throw Fu(H.Identifier)}G+=u,K="identifierName"},string(){switch(j){case"\\":return Y(),void(G+=function(){const u=Q(),D=function(){switch(Q()){case"b":return Y(),"\b";case"f":return Y(),"\f";case"n":return Y(),"\n";case"r":return Y(),"\r";case"t":return Y(),"\t";case"v":return Y(),"\v"}return}();if(D)return D;switch(u){case"0":if(Y(),w.JudgeUtil.isDigit(Q()))throw Fu(H.Char,Y());return"\0";case"x":return Y(),function(){let u="",D=Q();if(!w.JudgeUtil.isHexDigit(D))throw Fu(H.Char,Y());if(u+=Y(),D=Q(),!w.JudgeUtil.isHexDigit(D))throw Fu(H.Char,Y());return u+=Y(),String.fromCodePoint(parseInt(u,16))}();case"u":return Y(),tu();case"\n":case"\u2028":case"\u2029":return Y(),"";case"\r":return Y(),"\n"===Q()&&Y(),""}if(void 0===u||w.JudgeUtil.isDigitWithoutZero(u))throw Fu(H.Char,Y());return Y()}());case'"':case"'":if(j===z){const u=Du("string",G);return Y(),u}return void(G+=Y());case"\n":case"\r":case void 0:throw Fu(H.Char,Y());case"\u2028":case"\u2029":!function(u){console.warn(`JSON5: '${Cu(u)}' in strings is not valid ECMAScript; consider escaping.`)}(j)}G+=Y()}};function Du(u,D){return{type:u,value:D,line:L,column:$}}function eu(u){for(const D of u){if(Q()!==D)throw Fu(H.Char,Y());Y()}}function tu(){let u="",D=4;for(;D-- >0;){const D=Q();if(!w.JudgeUtil.isHexDigit(D))throw Fu(H.Char,Y());u+=Y()}return String.fromCodePoint(parseInt(u,16))}const ru={start(){if("eof"===x.type)throw Fu(H.EOF);nu()},beforePropertyName(){switch(x.type){case"identifier":case"string":return T=x.value,void(J="afterPropertyName");case"punctuator":return void iu();case"eof":throw Fu(H.EOF)}},afterPropertyName(){if("eof"===x.type)throw Fu(H.EOF);J="beforePropertyValue"},beforePropertyValue(){if("eof"===x.type)throw Fu(H.EOF);nu()},afterPropertyValue(){if("eof"===x.type)throw Fu(H.EOF);switch(x.value){case",":return void(J="beforePropertyName");case"}":iu()}},beforeArrayValue(){if("eof"===x.type)throw Fu(H.EOF);"punctuator"!==x.type||"]"!==x.value?nu():iu()},afterArrayValue(){if("eof"===x.type)throw Fu(H.EOF);switch(x.value){case",":return void(J="beforeArrayValue");case"]":iu()}},end(){}};function nu(){const u=function(){let u;switch(x.type){case"punctuator":switch(x.value){case"{":u={};break;case"[":u=[]}break;case"null":case"boolean":case"numeric":case"string":u=x.value}return u}();if(k&&"object"==typeof u&&(u._line=L,u._column=$),void 0===V)V=u;else{const D=U[U.length-1];Array.isArray(D)?k&&"object"!=typeof u?D.push({value:u,_line:L,_column:$}):D.push(u):D[T]=k&&"object"!=typeof u?{value:u,_line:L,_column:$}:u}!function(u){if(u&&"object"==typeof u)U.push(u),J=Array.isArray(u)?"beforeArrayValue":"beforePropertyName";else{const u=U[U.length-1];J=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}}(u)}function iu(){U.pop();const u=U[U.length-1];J=u?Array.isArray(u)?"afterArrayValue":"afterPropertyValue":"end"}function Cu(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 Fu(u,D){let e="";switch(u){case H.Char:e=void 0===D?`JSON5: invalid end of input at ${L}:${$}`:`JSON5: invalid character '${Cu(D)}' at ${L}:${$}`;break;case H.EOF:e=`JSON5: invalid end of input at ${L}:${$}`;break;case H.Identifier:$-=5,e=`JSON5: invalid identifier character at ${L}:${$}`}const t=new Eu(e);return t.lineNumber=L,t.columnNumber=$,t}class Eu extends SyntaxError{}var Au={},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]}),au=n&&n.__setModuleDefault||(Object.create?function(u,D){Object.defineProperty(u,"default",{enumerable:!0,value:D})}:function(u,D){u.default=D}),cu=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 au(D,u),D},su=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(Au,"__esModule",{value:!0}),Au.isFileExists=Au.offlinePluginConversion=Au.executeCommand=Au.getNpmPath=Au.hasNpmPackInPaths=void 0;const lu=t,Bu=su(e),du=cu(u),fu=i,_u=l;Au.hasNpmPackInPaths=function(u,D){try{return require.resolve(u,{paths:[...D]}),!0}catch(u){return!1}},Au.getNpmPath=function(){const u=process.execPath;return du.join(du.dirname(u),fu.NPM_TOOL)},Au.executeCommand=function(u,D,e){0!==(0,lu.spawnSync)(u,D,e).status&&(0,_u.logErrorAndExit)(`Error: ${u} ${D} execute failed.See above for details.`)},Au.offlinePluginConversion=function(u,D){return D.startsWith("file:")||D.endsWith(".tgz")?du.resolve(u,fu.HVIGOR,D.replace("file:","")):D},Au.isFileExists=function(u){return Bu.default.existsSync(u)&&Bu.default.statSync(u).isFile()};var pu={};!function(u){var D=n&&n.__importDefault||function(u){return u&&u.__esModule?u:{default:u}};Object.defineProperty(u,"__esModule",{value:!0}),u.hashFile=u.hash=u.createHash=void 0;const t=D(r),i=D(e);u.createHash=(u="MD5")=>t.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)}}(pu);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=Pu(u),yu=i,Iu=v,Nu=l,bu=Au,Su=vu(D),wu=pu;let Hu,xu,Mu;function Tu(u,D,e){return void 0!==e.dependencies&&(0,bu.offlinePluginConversion)(yu.HVIGOR_PROJECT_ROOT_DIR,D.dependencies[u])===Ru.normalize(e.dependencies[u])}function Vu(){const u=Ru.join(Mu,yu.WORK_SPACE);if((0,Nu.logInfoPrintConsole)("Hvigor cleaning..."),!mu.existsSync(u))return;const D=mu.readdirSync(u);if(!D||0===D.length)return;const e=Ru.resolve(Mu,"node_modules","@ohos","hvigor","bin","hvigor.js");mu.existsSync(e)&&(0,bu.executeCommand)(process.argv[0],[e,"--stop-daemon"],{});try{D.forEach((D=>{mu.rmSync(Ru.resolve(u,D),{recursive:!0})}))}catch(D){(0,Nu.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=Ru.resolve(yu.HVIGOR_PROJECT_WRAPPER_HOME,yu.DEFAULT_HVIGOR_CONFIG_JSON_FILE_NAME);mu.existsSync(u)||(0,Nu.logErrorAndExit)(`Error: Hvigor config file ${u} does not exist.`);return(0,Iu.parseJsonFile)(u)}(),Mu=function(u){let D,e=u.hvigorVersion;e.endsWith(".tgz")&&(e=function(u){let D=Ru.normalize(u);const e=D.lastIndexOf(Ru.sep);-1!==e&&(D=D.substring(e+1));D=D.replace(".tgz","");let t=0;for(let u=0;u="0"&&D.charAt(u)<="9"){t=u;break}return D=D.substring(t),D}(e));D=e>"2.5.0"?function(u){let D=`${yu.HVIGOR_ENGINE_PACKAGE_NAME}@${u.hvigorVersion}`;const e=u.dependencies;if(e){Object.getOwnPropertyNames(e).sort().forEach((u=>{D+=`,${u}@${e[u]}`}))}return(0,wu.hash)(D)}(u):(0,wu.hash)(process.cwd());return Ru.resolve(Su.default.homedir(),".hvigor","project_caches",D)}(Hu),xu=function(){const u=Ru.resolve(Mu,yu.WORK_SPACE,yu.DEFAULT_PACKAGE_JSON);return mu.existsSync(u)?(0,Iu.parseJsonFile)(u):{dependencies:{}}}(),!(0,bu.hasNpmPackInPaths)(yu.HVIGOR_ENGINE_PACKAGE_NAME,[Ru.join(Mu,yu.WORK_SPACE)])||(0,bu.offlinePluginConversion)(yu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion)!==xu.dependencies[yu.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,bu.hasNpmPackInPaths)(u,[Ru.join(Mu,yu.WORK_SPACE)])||!Tu(u,Hu,xu))return!1;return!0}()){Vu();try{!function(){(0,Nu.logInfoPrintConsole)("Hvigor installing...");for(const u in Hu.dependencies)Hu.dependencies[u]&&(Hu.dependencies[u]=(0,bu.offlinePluginConversion)(yu.HVIGOR_PROJECT_ROOT_DIR,Hu.dependencies[u]));const u={dependencies:{...Hu.dependencies}};u.dependencies[yu.HVIGOR_ENGINE_PACKAGE_NAME]=(0,bu.offlinePluginConversion)(yu.HVIGOR_PROJECT_ROOT_DIR,Hu.hvigorVersion);const D=Ru.join(Mu,yu.WORK_SPACE);try{mu.mkdirSync(D,{recursive:!0});const e=Ru.resolve(D,yu.DEFAULT_PACKAGE_JSON);mu.writeFileSync(e,JSON.stringify(u))}catch(u){(0,Nu.logErrorAndExit)(u)}(function(){const u=["config","set","store-dir",yu.HVIGOR_PNPM_STORE_PATH],D={cwd:Ru.join(Mu,yu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,bu.executeCommand)(yu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)})(),function(){const u=["install"],D={cwd:Ru.join(Mu,yu.WORK_SPACE),stdio:["inherit","inherit","inherit"]};(0,bu.executeCommand)(yu.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH,u,D)}(),(0,Nu.logInfoPrintConsole)("Hvigor install success.")}()}catch(u){Vu()}}return Mu};var Gu={};!function(r){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(r,"__esModule",{value:!0}),r.executeInstallPnpm=r.isPnpmInstalled=r.environmentHandler=r.checkNpmConifg=r.PNPM_VERSION=void 0;const o=t,a=E(e),c=A(D),s=E(u),B=i,d=l,f=Au;r.PNPM_VERSION="7.30.0",r.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.")},r.environmentHandler=function(){process.env["npm_config_update-notifier"]="false"},r.isPnpmInstalled=function(){return!!a.existsSync(B.HVIGOR_WRAPPER_PNPM_SCRIPT_PATH)&&(0,f.hasNpmPackInPaths)("pnpm",[B.HVIGOR_WRAPPER_TOOLS_HOME])},r.executeInstallPnpm=function(){(0,d.logInfoPrintConsole)(`Installing pnpm@${r.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]=r.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/GaiaXHarmony/hvigorfile.ts b/GaiaXHarmony/hvigorfile.ts deleted file mode 100644 index f3cb9f1a8..000000000 --- a/GaiaXHarmony/hvigorfile.ts +++ /dev/null @@ -1,6 +0,0 @@ -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/GaiaXHarmony/hvigorw b/GaiaXHarmony/hvigorw deleted file mode 100755 index ff6a29a2a..000000000 --- a/GaiaXHarmony/hvigorw +++ /dev/null @@ -1,48 +0,0 @@ -#!/bin/bash - -# ---------------------------------------------------------------------------- -# Hvigor startup script, version 1.0.0 -# -# Required ENV vars: -# ------------------ -# NODE_HOME - location of a Node home dir -# or -# Add /usr/local/nodejs/bin to the PATH environment variable -# ---------------------------------------------------------------------------- - -HVIGOR_APP_HOME="`pwd -P`" -HVIGOR_WRAPPER_SCRIPT=${HVIGOR_APP_HOME}/hvigor/hvigor-wrapper.js -warn() { - echo "" - echo -e "\033[1;33m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" -} - -error() { - echo "" - echo -e "\033[1;31m`date '+[%Y-%m-%d %H:%M:%S]'`$@\033[0m" -} - -fail() { - error "$@" - exit 1 -} - -# Determine node to start hvigor wrapper script -if [ -n "${NODE_HOME}" ];then - EXECUTABLE_NODE="${NODE_HOME}/bin/node" - if [ ! -x "$EXECUTABLE_NODE" ];then - fail "ERROR: NODE_HOME is set to an invalid directory,check $NODE_HOME\n\nPlease set NODE_HOME in your environment to the location where your nodejs installed" - fi -else - EXECUTABLE_NODE="node" - which ${EXECUTABLE_NODE} > /dev/null 2>&1 || fail "ERROR: NODE_HOME is not set and not 'node' command found in your path" -fi - -# Check hvigor wrapper script -if [ ! -r "$HVIGOR_WRAPPER_SCRIPT" ];then - fail "ERROR: Couldn't find hvigor/hvigor-wrapper.js in ${HVIGOR_APP_HOME}" -fi - -# start hvigor-wrapper script -exec "${EXECUTABLE_NODE}" \ - "${HVIGOR_WRAPPER_SCRIPT}" "$@" diff --git a/GaiaXHarmony/hvigorw.bat b/GaiaXHarmony/hvigorw.bat deleted file mode 100644 index d570007e8..000000000 --- a/GaiaXHarmony/hvigorw.bat +++ /dev/null @@ -1,64 +0,0 @@ -@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/GaiaXHarmony/oh-package-lock.json5 b/GaiaXHarmony/oh-package-lock.json5 deleted file mode 100644 index 0d91c722a..000000000 --- a/GaiaXHarmony/oh-package-lock.json5 +++ /dev/null @@ -1,16 +0,0 @@ -{ - "lockfileVersion": 3, - "ATTENTION": "THIS IS AN AUTOGENERATED FILE. DO NOT EDIT THIS FILE DIRECTLY.", - "specifiers": { - "@ohos/hypium@1.0.6": "@ohos/hypium@1.0.6" - }, - "packages": { - "@ohos/hypium@1.0.6": { - "name": "@ohos/hypium", - "integrity": "sha512-bb3DWeWhYrFqj9mPFV3yZQpkm36kbcK+YYaeY9g292QKSjOdmhEIQR2ULPvyMsgSR4usOBf5nnYrDmaCCXirgQ==", - "resolved": "https://repo.harmonyos.com/ohpm/@ohos/hypium/-/hypium-1.0.6.tgz", - "shasum": "3f5fed65372633233264b3447705b0831dfe7ea1", - "registryType": "ohpm" - } - } -} \ No newline at end of file diff --git a/GaiaXHarmony/oh-package.json5 b/GaiaXHarmony/oh-package.json5 deleted file mode 100644 index 08e9e6e1d..000000000 --- a/GaiaXHarmony/oh-package.json5 +++ /dev/null @@ -1,12 +0,0 @@ -{ - "license": "", - "devDependencies": { - "@ohos/hypium": "1.0.6" - }, - "author": "", - "name": "gaiaxharmony", - "description": "Please describe the basic information.", - "main": "", - "version": "1.0.0", - "dependencies": {} -}