From 2fbd59c54dee7ca34c78ad31a6af554af783a4f0 Mon Sep 17 00:00:00 2001 From: asfasdff Date: Wed, 19 Jan 2022 21:33:33 +0800 Subject: [PATCH] add samples Signed-off-by: asfasdff --- README_zh.md | 1 + Util/eTSUtilTypeCheck/README_zh.md | 15 + Util/eTSUtilTypeCheck/build.gradle | 34 ++ Util/eTSUtilTypeCheck/entry/build.gradle | 21 ++ .../entry/src/main/config.json | 67 ++++ .../entry/src/main/ets/MainAbility/app.ets | 23 ++ .../src/main/ets/MainAbility/common/check.ets | 337 ++++++++++++++++++ .../src/main/ets/MainAbility/common/show.ets | 42 +++ .../src/main/ets/MainAbility/pages/index.ets | 68 ++++ .../main/resources/base/element/string.json | 28 ++ .../src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../src/main/resources/en/element/string.json | 28 ++ .../src/main/resources/zh/element/string.json | 28 ++ .../screenhots/devices/main.png | Bin 0 -> 39102 bytes Util/eTSUtilTypeCheck/settings.gradle | 1 + 15 files changed, 693 insertions(+) create mode 100644 Util/eTSUtilTypeCheck/README_zh.md create mode 100644 Util/eTSUtilTypeCheck/build.gradle create mode 100644 Util/eTSUtilTypeCheck/entry/build.gradle create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/config.json create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/app.ets create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/check.ets create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/show.ets create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/pages/index.ets create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/resources/base/element/string.json create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/resources/base/media/icon.png create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/resources/en/element/string.json create mode 100644 Util/eTSUtilTypeCheck/entry/src/main/resources/zh/element/string.json create mode 100644 Util/eTSUtilTypeCheck/screenhots/devices/main.png create mode 100644 Util/eTSUtilTypeCheck/settings.gradle diff --git a/README_zh.md b/README_zh.md index 627676d4c4..8500f6528e 100755 --- a/README_zh.md +++ b/README_zh.md @@ -26,6 +26,7 @@ - [`Flashlight:`手电筒(JS)](https://gitee.com/openharmony/app_samples/tree/master/common/Flashlight) - [`JsHelloWorld:`你好世界(JS)](https://gitee.com/openharmony/app_samples/tree/master/common/JsHelloWorld) - [`eTSUtilBase64Codec:`Base64编解码(eTS)](https://gitee.com/openharmony/app_samples/tree/master/common/eTSUtilBase64Codec) + - [`eTSUtilTypeCheck:`类型校验(eTS)](https://gitee.com/openharmony/app_samples/tree/master/common/eTSUtilTypeCheck) - data - [`eTSFileIo:`文件管理(eTS)](https://gitee.com/openharmony/app_samples/tree/master/data/eTSFileIo) diff --git a/Util/eTSUtilTypeCheck/README_zh.md b/Util/eTSUtilTypeCheck/README_zh.md new file mode 100644 index 0000000000..c198958c8d --- /dev/null +++ b/Util/eTSUtilTypeCheck/README_zh.md @@ -0,0 +1,15 @@ +# util工具函数-类型校验 + +## 简介 + +本示例通过对给定值进行校验,判断是否符合Type类型,并输出校验结果。 + +### 使用说明 + +1.点击显示预置值按钮,将会显示预置值。 + +2.点击校验预置值按钮,将会对预置值进行校验,并输出校验结果。 + +### 约束与限制 + +本示例仅支持在标准系统上运行。 \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/build.gradle b/Util/eTSUtilTypeCheck/build.gradle new file mode 100644 index 0000000000..f350f30a90 --- /dev/null +++ b/Util/eTSUtilTypeCheck/build.gradle @@ -0,0 +1,34 @@ +// Top-level build file where you can add configuration options common to all sub-projects/modules. +apply plugin: 'com.huawei.ohos.app' + +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 8 + supportSystem "standard" +} + +buildscript { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } + dependencies { + classpath 'com.huawei.ohos:hap:3.0.5.2' + classpath 'com.huawei.ohos:decctest:1.2.7.2' + } +} + +allprojects { + repositories { + maven { + url 'https://repo.huaweicloud.com/repository/maven/' + } + maven { + url 'https://developer.huawei.com/repo/' + } + } +} diff --git a/Util/eTSUtilTypeCheck/entry/build.gradle b/Util/eTSUtilTypeCheck/entry/build.gradle new file mode 100644 index 0000000000..05a33cd3ad --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/build.gradle @@ -0,0 +1,21 @@ +apply plugin: 'com.huawei.ohos.hap' +//For instructions on signature configuration, see https://developer.harmonyos.com/cn/docs/documentation/doc-guides/ide_debug_device-0000001053822404#section1112183053510 +ohos { + compileSdkVersion 8 + defaultConfig { + compatibleSdkVersion 8 + } + buildTypes { + release { + proguardOpt { + proguardEnabled false + rulesFiles 'proguard-rules.pro' + } + } + } +} + +dependencies { + implementation fileTree(dir: 'libs', include: ['*.jar', '*.har']) + testImplementation 'junit:junit:4.13.1' +} diff --git a/Util/eTSUtilTypeCheck/entry/src/main/config.json b/Util/eTSUtilTypeCheck/entry/src/main/config.json new file mode 100644 index 0000000000..be5d400847 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/config.json @@ -0,0 +1,67 @@ +{ + "app": { + "bundleName": "com.samples.eTSUtilTypeCheck", + "vendor": "samples", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.samples.eTSUtilTypeCheck", + "name": ".MyApplication", + "mainAbility": ".MainAbility", + "srcPath": "", + "deviceType": [ + "phone" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "entry", + "moduleType": "entry", + "installationFree": false + }, + "abilities": [ + { + "skills": [ + { + "entities": [ + "entity.system.home" + ], + "actions": [ + "action.system.home" + ] + } + ], + "orientation": "unspecified", + "visible": true, + "srcPath": "MainAbility", + "name": ".MainAbility", + "srcLanguage": "ets", + "icon": "$media:icon", + "description": "$string:description_mainability", + "formsEnabled": false, + "label": "$string:entry_MainAbility", + "type": "page", + "launchType": "standard" + } + ], + "js": [ + { + "mode": { + "syntax": "ets", + "type": "pageAbility" + }, + "pages": [ + "pages/index" + ], + "name": ".MainAbility", + "window": { + "designWidth": 720, + "autoDesignWidth": false + } + } + ] + } +} \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/app.ets b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/app.ets new file mode 100644 index 0000000000..bf28e58b36 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/app.ets @@ -0,0 +1,23 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +export default { + onCreate() { + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, +} \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/check.ets b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/check.ets new file mode 100644 index 0000000000..f0199a37b0 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/check.ets @@ -0,0 +1,337 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import util from '@ohos.util' + +const number_value = new Number (55) +const string_value = new String ('sdsddadas') +const arrayBuffer_value = new ArrayBuffer(8) +const boolean_value = new Boolean (true) +@Component +export struct checkType { + @Link output: string + @Link input: string + @State arrayBufferCheck: string = ' ' + @State argumentsCheck: string = ' ' + @State asyncFunctionCheck: string = ' ' + @State booleanCheck: string = ' ' + @State dataViewCheck: string = ' ' + @State dateCheck: string = ' ' + @State externalCheck: string = ' ' + @State float32ArrayCheck: string = ' ' + @State generatorCheck: string = ' ' + @State int8ArrayCheck: string = ' ' + @State mapCheck: string = ' ' + @State errorCheck: string = ' ' + @State numberCheck: string = ' ' + @State promiseCheck: string = ' ' + @State proxyCheck: string = ' ' + @State regExpCheck: string = ' ' + @State setCheck: string = ' ' + @State stringCheck: string = ' ' + @State symbolCheck: string = ' ' + @State uint8ArrayCheck: string = ' ' + @State weakMapCheck: string = ' ' + @State WeakSetCheck: string = ' ' + check() { + let that = new util.Types() + let result: Boolean + try { + result = that.isAnyArrayBuffer(arrayBuffer_value) + if(result == true) { + console.log("Success, arrayBuffer_value this value is ArrayBuffer.") + this.arrayBufferCheck = 'Success, arrayBuffer_value this value is ArrayBuffer.' + } else if(result == false) { + console.log("Success, arrayBuffer_value this value not is ArrayBuffer.") + this.arrayBufferCheck = 'Success, arrayBuffer_value this value not is ArrayBuffer.' + } else { + console.log("Error!") + } + + result = that.isArgumentsObject(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is arguments.') + this.argumentsCheck = 'Success, arrayBuffer_value this value is arguments.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is arguments.') + this.argumentsCheck = 'Success, arrayBuffer_value this value not is arguments.' + } else { + console.log('Error!') + } + + result = that.isAsyncFunction(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is AsyncFunction.') + this.asyncFunctionCheck = 'Success, arrayBuffer_value this value is AsyncFunction.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is AsyncFunction.') + this.asyncFunctionCheck = 'Success, arrayBuffer_value this value not is AsyncFunction.' + } else { + console.log('Error!') + } + + result = that.isBooleanObject(boolean_value) + if(result == true) { + console.log('Success, boolean_value this value is Boolean.') + this.booleanCheck = 'Success, boolean_value this value is Boolean.' + } else if(result == false) { + console.log('Success, boolean_value this value not is Boolean.') + this.booleanCheck = 'Success, boolean_value this value not is Boolean.' + } else { + console.log('Error!') + } + + result = that.isDataView(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is DataView.') + this.dataViewCheck = 'Success, arrayBuffer_value this value is DataView.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is DataView.') + this.dataViewCheck = 'Success, arrayBuffer_value this value not is DataView.' + } else { + console.log('Error!') + } + + result = that.isDate(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Date.') + this.dateCheck = 'Success, arrayBuffer_value this value is Date.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Date.') + this.dateCheck = 'Success, arrayBuffer_value this value not is Date.' + } else { + console.log('Error!') + } + + result = that.isExternal(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is native External.') + this.externalCheck = 'Success, arrayBuffer_value this value is native External.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is native External.') + this.externalCheck = 'Success, arrayBuffer_value this value not is native External.' + } else { + console.log('Error!') + } + + result = that.isFloat32Array(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Float32Array.') + this.float32ArrayCheck = 'Success, arrayBuffer_value this value is Float32Array.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Float32Array.') + this.float32ArrayCheck = 'Success, arrayBuffer_value this value is Float32Array.' + } else { + console.log('Error!') + } + + result = that.isGeneratorFunction(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is generator.') + this.generatorCheck = 'Success, arrayBuffer_value this value is generator.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is generator.') + this.generatorCheck = 'Success, arrayBuffer_value this value not is generator.' + } else { + console.log('Error!') + } + + result = that.isInt8Array(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Int8Array.') + this.int8ArrayCheck = 'Success, arrayBuffer_value this value is Int8Array.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Int8Array.') + this.int8ArrayCheck = 'Success, arrayBuffer_value this value not is Int8Array.' + } else { + console.log('Error!') + } + + result = that.isMap(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Map.') + this.mapCheck = 'Success, arrayBuffer_value this value is Map.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Map.') + this.mapCheck = 'Success, arrayBuffer_value this value not is Map.' + } else { + console.log('Error!') + } + + result = that.isNativeError(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Error.') + this.errorCheck = 'Success, arrayBuffer_value this value is Error.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Error.') + this.errorCheck = 'Success, arrayBuffer_value this value not is Error.' + } else { + console.log('Error!') + } + + result = that.isNumberObject(number_value) + if(result == true) { + console.log('Success, number_value this value is Number.') + this.numberCheck = 'Success, number_value this value is Number.' + } else if(result == false) { + console.log('Success, number_value this value not is Number.') + this.numberCheck = 'Success, number_value this value not is Number.' + } else { + console.log('Error!') + } + + result = that.isPromise(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Promise.') + this.promiseCheck = 'Success, arrayBuffer_value this value is Promise.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Promise.') + this.promiseCheck = 'Success, arrayBuffer_value this value not is Promise.' + } else { + console.log('Error!') + } + + result = that.isProxy(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Proxy.') + this.proxyCheck = 'Success, arrayBuffer_value this value is Proxy.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Proxy.') + this.proxyCheck = 'Success, arrayBuffer_value this value not is Proxy.' + } else { + console.log('Error!') + } + + result = that.isRegExp(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is RegExp.') + this.regExpCheck = 'Success, arrayBuffer_value this value is RegExp.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is RegExp.') + this.regExpCheck = 'Success, arrayBuffer_value this value not is RegExp.' + } else { + console.log('Error!') + } + + result = that.isSet(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Set.') + this.setCheck = 'Success, arrayBuffer_value this value is Set.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Set.') + this.setCheck = 'Success, arrayBuffer_value this value not is Set.' + } else { + console.log('Error!') + } + + result = that.isStringObject(string_value) + if(result == true) { + console.log('Success, string_value this value is String.') + this.stringCheck = 'Success, string_value this value is String.' + } else if(result == false) { + console.log('Success, string_value this value not is String.') + this.stringCheck = 'Success, string_value this value not is String.' + } else { + console.log('Error!') + } + + result = that.isSymbolObject(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Symbol.') + this.symbolCheck = 'Success, arrayBuffer_value this value is Symbol.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Symbol.') + this.symbolCheck = 'Success, arrayBuffer_value this value not is Symbol.' + } else { + console.log('Error!') + } + + result = that.isUint8Array(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is Uint8Array.') + this.uint8ArrayCheck = 'Success, arrayBuffer_value this value is Uint8Array.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is Uint8Array.') + this.uint8ArrayCheck = 'Success, arrayBuffer_value this value not is Uint8Array.' + } else { + console.log('Error!') + } + + result = that.isWeakMap(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is WeakMap.') + this.weakMapCheck = 'Success, arrayBuffer_value this value is WeakMap.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is WeakMap.') + this.weakMapCheck = 'Success, arrayBuffer_value this value not is WeakMap.' + } else { + console.log('Error!') + } + + result = that.isWeakSet(arrayBuffer_value) + if(result == true) { + console.log('Success, arrayBuffer_value this value is WeakSet.') + this.WeakSetCheck = 'Success, arrayBuffer_value this value is WeakSet.' + } else if(result == false) { + console.log('Success, arrayBuffer_value this value not is WeakSet.') + this.WeakSetCheck = 'Success, arrayBuffer_value this value not is WeakSet.' + } else { + console.log('Error!') + } + } catch(e) { + console.log('error' + e) + } + + this.output = (`${this.asyncFunctionCheck} +${this.booleanCheck} +${this.dataViewCheck} +${this.dateCheck} +${this.externalCheck} +${this.float32ArrayCheck} +${this.int8ArrayCheck} +${this.generatorCheck} +${this.int8ArrayCheck} +${this.mapCheck} +${this.errorCheck} +${this.numberCheck} +${this.promiseCheck} +${this.proxyCheck} +${this.regExpCheck} +${this.setCheck} +${this.stringCheck} +${this.symbolCheck} +${this.uint8ArrayCheck} +${this.weakMapCheck} +${this.WeakSetCheck}`) + } + + + build() { + Button() { + Text($r("app.string.check")) + .fontColor(Color.Black) + .fontSize(20) + .textAlign(TextAlign.Center) + .width('85%') + } + .type(ButtonType.Capsule) + .backgroundColor('#0D9FFB') + .padding(5) + .margin({ top: 10 }) + .onClick(() => { + this.check() + }) + } +} \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/show.ets b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/show.ets new file mode 100644 index 0000000000..191220b418 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/common/show.ets @@ -0,0 +1,42 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +@Component +export struct showKey { + @State showArrary: string = ' ' + @Link input: string + @Link output: string + + build() { + Button() { + Text($r("app.string.show")) + .fontColor(Color.Black) + .fontSize(20) + .textAlign(TextAlign.Center) + .width('85%') + } + .type(ButtonType.Capsule) + .backgroundColor('#0D9FFB') + .padding(5) + .margin({ top: 10 }) + .onClick(() => { + this.showArrary = this.input + this.showArrary = 'Number: number_value = 55\nString: string_value = sdsddadas\n' + + 'ArrayBuffer: arrayBuffer_value = 8\nBoolean: boolean_value = true' + this.output = this.showArrary + }) + } +} \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/pages/index.ets b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/pages/index.ets new file mode 100644 index 0000000000..babc4c75f1 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/ets/MainAbility/pages/index.ets @@ -0,0 +1,68 @@ +/* + * Copyright (c) 2021 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + +import {showKey} from '../common/show.ets' +import {checkType} from '../common/check.ets' + + + +@Entry +@Component +struct Index { + @State output: string = ' ' + @State input: string = ' ' + + build() { + Column() { + Text($r('app.string.title')) + .textAlign(TextAlign.Center) + .width('100%') + .height('5%') + .backgroundColor('#008bdd') + .fontSize(25) + .fontColor(Color.Black) + .fontWeight(FontWeight.Bold) + + Scroll() { + Column() { + Text(this.output) + .width('90%') + .height('65%') + .fontSize(15) + .padding({ left: 5, right: 5}) + .margin({ left: 10, right: 10, top: 10, bottom: 10 }) + .border({ width: 2, radius: 5, color: Color.Gray }) + } + } + + Flex({ + direction: FlexDirection.Row, + alignItems: ItemAlign.Center, + justifyContent: FlexAlign.Center, + wrap: FlexWrap.Wrap + }) { + + showKey({ output: $output, input: $input}) + + + checkType({ output: $output, input: $input}) + + } + } + .width('100%') + .height('100%') + } +} diff --git a/Util/eTSUtilTypeCheck/entry/src/main/resources/base/element/string.json b/Util/eTSUtilTypeCheck/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000000..b96d2514d5 --- /dev/null +++ b/Util/eTSUtilTypeCheck/entry/src/main/resources/base/element/string.json @@ -0,0 +1,28 @@ +{ + "string": [ + { + "name": "entry_MainAbility", + "value": "UtilTypeCheck" + }, + { + "name": "description_mainability", + "value": "eTS_Empty Ability" + }, + { + "name": "title", + "value": "Check input value" + }, + { + "name": "text", + "value": "confirm" + }, + { + "name": "show", + "value": "Display preset value" + }, + { + "name": "check", + "value": "Check preset value" + } + ] +} \ No newline at end of file diff --git a/Util/eTSUtilTypeCheck/entry/src/main/resources/base/media/icon.png b/Util/eTSUtilTypeCheck/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 KtU%mJ+p=Y literal 0 HcmV?d00001 diff --git a/Util/eTSUtilTypeCheck/settings.gradle b/Util/eTSUtilTypeCheck/settings.gradle new file mode 100644 index 0000000000..4773db7323 --- /dev/null +++ b/Util/eTSUtilTypeCheck/settings.gradle @@ -0,0 +1 @@ +include ':entry' -- Gitee