From 938cf78c5be5c72e0933c813508e91f8ec820979 Mon Sep 17 00:00:00 2001 From: Susanto <51540113+nerdyspook@users.noreply.github.com> Date: Thu, 9 Jun 2022 14:28:28 +0530 Subject: [PATCH 1/4] feat: added wheel picker library Library includes: - Single Option Picker - Birthday Picker - Time Selection 12hr Picker - Time Selection 24hr Picker - Month Day Picker - Year Month Picker - Year Month Day Picker - Year Month Day Time Picker --- README.md | 127 ++ build-profile.json5 | 31 + entry/build-profile.json5 | 13 + entry/hvigorfile.js | 2 + entry/package-lock.json | 5 + entry/package.json | 13 + entry/src/main/config.json | 68 + entry/src/main/ets/MainAbility/app.ets | 8 + .../src/main/ets/MainAbility/pages/index.ets | 348 ++++ .../main/resources/base/element/string.json | 16 + entry/src/main/resources/base/media/icon.png | Bin 0 -> 6790 bytes .../src/main/resources/en/element/string.json | 100 + .../src/main/resources/zh/element/string.json | 100 + entry/src/ohosTest/config.json | 68 + entry/src/ohosTest/ets/TestAbility/app.ets | 18 + .../ohosTest/ets/TestAbility/pages/index.ets | 35 + .../ets/TestRunner/OpenHarmonyTestRunner.ts | 63 + entry/src/ohosTest/ets/test/Ability.test.ets | 13 + entry/src/ohosTest/ets/test/List.test.ets | 5 + .../resources/base/element/string.json | 12 + .../ohosTest/resources/base/media/icon.png | Bin 0 -> 6790 bytes hvigorfile.js | 2 + package-lock.json | 1655 +++++++++++++++++ package.json | 18 + wheelpicker/build-profile.json5 | 5 + .../merge_profile/default/config.json | 33 + .../merge_res/default/merge_npm_res_file.json | 1 + .../process_profile/default/config.json | 1 + .../res/default/ResourceTable.txt | 26 + .../intermediates/res/default/config.json | 42 + .../intermediates/res/default/resources.index | Bin 0 -> 3128 bytes wheelpicker/hvigorfile.js | 3 + wheelpicker/index.ets | 9 + wheelpicker/package-lock.json | 5 + wheelpicker/package.json | 14 + wheelpicker/src/main/config.json | 24 + .../main/ets/components/birthdayPicker.ets | 107 ++ .../main/ets/components/monthDayPicker.ets | 111 ++ .../ets/components/singleOptionPicker.ets | 72 + .../src/main/ets/components/time12Picker.ets | 109 ++ .../src/main/ets/components/time24Picker.ets | 110 ++ .../ets/components/yearMonthDayPicker.ets | 126 ++ .../ets/components/yearMonthDayTimePicker.ets | 160 ++ .../main/ets/components/yearMonthPicker.ets | 102 + .../main/resources/base/element/string.json | 8 + .../src/main/resources/en/element/string.json | 104 ++ .../src/main/resources/zh/element/string.json | 104 ++ 47 files changed, 3996 insertions(+) create mode 100644 README.md create mode 100644 build-profile.json5 create mode 100644 entry/build-profile.json5 create mode 100644 entry/hvigorfile.js create mode 100644 entry/package-lock.json create mode 100644 entry/package.json create mode 100644 entry/src/main/config.json create mode 100644 entry/src/main/ets/MainAbility/app.ets create mode 100644 entry/src/main/ets/MainAbility/pages/index.ets create mode 100644 entry/src/main/resources/base/element/string.json create mode 100644 entry/src/main/resources/base/media/icon.png create mode 100644 entry/src/main/resources/en/element/string.json create mode 100644 entry/src/main/resources/zh/element/string.json create mode 100644 entry/src/ohosTest/config.json create mode 100644 entry/src/ohosTest/ets/TestAbility/app.ets create mode 100644 entry/src/ohosTest/ets/TestAbility/pages/index.ets create mode 100644 entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts create mode 100644 entry/src/ohosTest/ets/test/Ability.test.ets create mode 100644 entry/src/ohosTest/ets/test/List.test.ets create mode 100644 entry/src/ohosTest/resources/base/element/string.json create mode 100644 entry/src/ohosTest/resources/base/media/icon.png create mode 100644 hvigorfile.js create mode 100644 package-lock.json create mode 100644 package.json create mode 100644 wheelpicker/build-profile.json5 create mode 100644 wheelpicker/build/default/intermediates/merge_profile/default/config.json create mode 100644 wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json create mode 100644 wheelpicker/build/default/intermediates/process_profile/default/config.json create mode 100644 wheelpicker/build/default/intermediates/res/default/ResourceTable.txt create mode 100644 wheelpicker/build/default/intermediates/res/default/config.json create mode 100644 wheelpicker/build/default/intermediates/res/default/resources.index create mode 100644 wheelpicker/hvigorfile.js create mode 100644 wheelpicker/index.ets create mode 100644 wheelpicker/package-lock.json create mode 100644 wheelpicker/package.json create mode 100644 wheelpicker/src/main/config.json create mode 100644 wheelpicker/src/main/ets/components/birthdayPicker.ets create mode 100644 wheelpicker/src/main/ets/components/monthDayPicker.ets create mode 100644 wheelpicker/src/main/ets/components/singleOptionPicker.ets create mode 100644 wheelpicker/src/main/ets/components/time12Picker.ets create mode 100644 wheelpicker/src/main/ets/components/time24Picker.ets create mode 100644 wheelpicker/src/main/ets/components/yearMonthDayPicker.ets create mode 100644 wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets create mode 100644 wheelpicker/src/main/ets/components/yearMonthPicker.ets create mode 100644 wheelpicker/src/main/resources/base/element/string.json create mode 100644 wheelpicker/src/main/resources/en/element/string.json create mode 100644 wheelpicker/src/main/resources/zh/element/string.json diff --git a/README.md b/README.md new file mode 100644 index 0000000..c237b16 --- /dev/null +++ b/README.md @@ -0,0 +1,127 @@ +# Wheel Picker + +This library is developed to provide different types of wheel pickers implemented using extended typescript. + +## Installation +``` +npm install @ohos/libwheelpicker --save +``` + +## Instructions for use + +### Displaying of images can be circular or oval. +You need to import the wheelpickers as per your choice like the following: +```ets +import {SingleOptionDialog, TimeSelection12, TimeSelection24, MonthDayDialog, YearMonthDialog, YearMonthDayDialog, YearMonthDayTimeDialog, BirthdayDialog } from "@ohos/wheelpicker" +``` +##### For Single Option Picker +Initialize the model data + +``` +model: SingleOptionDialog.Model= new SingleOptionDialog.Model(); +``` +Call the picker dialog +``` + IntegerDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ + model: this.IntegerDialog, + options: this.integerOptions, + selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, + leftButtonBgColor: this.leftButtonBgColor, + leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, + rightButtonBgColor: this.rightButtonBgColor, + rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, + pickerTitleFontSize: this.pickerTitleFontSize, + pickerHeight: this.pickerHeight, + cancel: this.onCancel, + confirm: this.onIntegerAccept + }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + +``` +##### For IntegerDialog Picker + +Initialize the model data +``` +Integermodel: IntegerDialog.Model= new IntegerDialog.Model(); +``` + + +## Interface Description +`` +Integermodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); +`` + +`` +Birthdaymodel: BirthdayDialog.Model = new BirthdayDialog.Model(); +`` + +`` +TimeSelection24model: TimeSelection24.Model = new TimeSelection24.Model(); +`` + +`` +TimeSelection12model: TimeSelection12.Model = new TimeSelection12.Model(); +`` + +`` +MonthDayDialogmodel: MonthDayDialog.Model = new MonthDayDialog.Model(); +`` + +`` +YearMonthDialogmodel: YearMonthDialog.Model = new YearMonthDialog.Model(); +`` + +`` +YearMonthDayDialogmodel: YearMonthDayDialog.Model = new YearMonthDayDialog.Model(); +`` + +`` +YearMonthDayTimeDialogmodel: YearMonthDayTimeDialog.Model = new YearMonthDayTimeDialog.Model(); +`` + +## Directory Structure +```` +|---- WheelPicker +| |---- wheelpicker #wheel picker library +| |---- src + |---- main + |---- ets + |---- components + |---- birthdayPicker.ets + |---- monthDayPicker.ets + |---- singleOptionPicker.ets + |---- time12Picker.ets + |---- time24Picker.ets + |---- yearMonthDayPicker.ets + |---- yearMonthDayTimePicker.ets + |---- yearMonthPicker.ets +| +| |---- entry #Sample Code Folder +| |---- src +| |---- main +| |---- ets +| |---- MainAbility +| |---- pages +| |---- index..ets +```` +## Compatibility +Supports OpenHarmony API version 8 + +## Code Contribution +If you find any problems during usage, you can submit an [Issue](https://github.com/applibgroup/OHOSPicker/issues) to us. Of course, we also welcome you to send us [PR](https://github.com/applibgroup/OHOSPicker/pulls). +Please enjoy and participate in open source freely. + +## Open Source License + +Licensed under [Apache-2.0 license](LICENSE) + +## Reference: + +Design by : Susanto Mahato \ No newline at end of file diff --git a/build-profile.json5 b/build-profile.json5 new file mode 100644 index 0000000..2c0c85b --- /dev/null +++ b/build-profile.json5 @@ -0,0 +1,31 @@ +{ + "app": { + "signingConfigs": [], + "compileSdkVersion": 8, + "compatibleSdkVersion": 8, + "products": [ + { + "name": "default", + "signingConfig": "default", + } + ] + }, + "modules": [ + { + "name": "entry", + "srcPath": "./entry", + "targets": [ + { + "name": "default", + "applyToProducts": [ + "default" + ] + } + ] + }, + { + "name": "wheelpicker", + "srcPath": "./wheelpicker" + } + ] +} \ No newline at end of file diff --git a/entry/build-profile.json5 b/entry/build-profile.json5 new file mode 100644 index 0000000..73b91e9 --- /dev/null +++ b/entry/build-profile.json5 @@ -0,0 +1,13 @@ +{ + "apiType": 'faMode', + "buildOption": { + }, + "targets": [ + { + "name": "default", + }, + { + "name": "ohosTest", + } + ] +} \ No newline at end of file diff --git a/entry/hvigorfile.js b/entry/hvigorfile.js new file mode 100644 index 0000000..79ea2ec --- /dev/null +++ b/entry/hvigorfile.js @@ -0,0 +1,2 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').legacyHapTasks diff --git a/entry/package-lock.json b/entry/package-lock.json new file mode 100644 index 0000000..6b5c677 --- /dev/null +++ b/entry/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "entry", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/entry/package.json b/entry/package.json new file mode 100644 index 0000000..c4c0623 --- /dev/null +++ b/entry/package.json @@ -0,0 +1,13 @@ +{ + "name": "entry", + "version": "1.0.0", + "ohos": { + "org": "huawei", + "buildTool": "hvigor", + "directoryLevel": "module" + }, + "description": "example description", + "repository": {}, + "license": "ISC", + "dependencies": {} +} diff --git a/entry/src/main/config.json b/entry/src/main/config.json new file mode 100644 index 0000000..5ff5b9a --- /dev/null +++ b/entry/src/main/config.json @@ -0,0 +1,68 @@ +{ + "app": { + "vendor": "example", + "bundleName": "com.example.wheelpicker", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": {}, + "module": { + "mainAbility": ".MainAbility", + "deviceType": [ + "phone", + "tablet" + ], + "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:MainAbility_desc", + "formsEnabled": false, + "label": "$string:MainAbility_label", + "type": "page", + "launchType": "standard" + } + ], + "distro": { + "moduleType": "entry", + "installationFree": false, + "deliveryWithInstall": true, + "moduleName": "entry" + }, + "package": "com.example.entry", + "srcPath": "", + "name": ".entry", + "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/entry/src/main/ets/MainAbility/app.ets b/entry/src/main/ets/MainAbility/app.ets new file mode 100644 index 0000000..dd5e7e7 --- /dev/null +++ b/entry/src/main/ets/MainAbility/app.ets @@ -0,0 +1,8 @@ +export default { + onCreate() { + console.info('Application onCreate') + }, + onDestroy() { + console.info('Application onDestroy') + }, +} \ No newline at end of file diff --git a/entry/src/main/ets/MainAbility/pages/index.ets b/entry/src/main/ets/MainAbility/pages/index.ets new file mode 100644 index 0000000..c9a2ac4 --- /dev/null +++ b/entry/src/main/ets/MainAbility/pages/index.ets @@ -0,0 +1,348 @@ + +import prompt from '@system.prompt'; +import {SingleOptionDialog, TimeSelection12, TimeSelection24, MonthDayDialog, YearMonthDialog, YearMonthDayDialog, YearMonthDayTimeDialog, BirthdayDialog } from "@ohos/wheelpicker" + +@Entry +@Component +struct CustomDialogUser { + @State selectedValue: string = "" + + leftButtonString: string = "Cancel" + leftButtonBgColor: number = 0xffffff + leftButtonTextColor: string = "#22d3ee" + rightButtonString: string = "Ok" + rightButtonBgColor: number = 0xffffff + rightButtonTextColor: string = "#22d3ee" + pickerTitle: string = " " + pickerTitleFontSize: string = "20FP" + pickerHeight: string = "200VP" + firstPickerWidth: string = "40VP" + secondPickerWidth: string = "60VP" + thirdPickerWidth: string = "80VP" + fourthPickerWidth: string = "100VP" + fifthPickerWidth: string = "120VP" + + integerOptions: string[] = ["140 cm", "145 cm","150 cm","155 cm","160 cm","165 cm","170 cm","175 cm","180 cm","185 cm","190 cm","195 cm","200 cm"] + IntegerDialog: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + IntegerDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.IntegerDialog, options: this.integerOptions, selectedValue: this.selectedValue, leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onIntegerAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + + floatOptions: string[] = ["4.00","4.10","4.20","4.30","4.40","4.50","4.60","4.70","4.80","4.90","5.00","5.10","5.20","5.30","5.40","5.50","5.60","5.70","5.80","5.90","6.00"] + Floatmodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + floatDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.Floatmodel, options: this.floatOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onFloatAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + optionTextOptions: string[] = ["very very very very very very very very very very very long text", "text"] + OptionTextmodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + optionTextDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.OptionTextmodel, options: this.optionTextOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onOptionTextAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + householdOptions: string[] = ["fresh food", "household appliances", "home life", "medical insurance", "drinks"] + Householdmodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + householdDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.Householdmodel, options: this.householdOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onHouseholdAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + genderOptions: string[] = ["Male", "Female"] + Gendermodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + genderDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.Gendermodel, options: this.genderOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onGenderAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + ethnicOptions: string[] = ["Tatar", "Derung", "Oroqen", "Hezhen", "Monba"] + Ethnicmodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + ethnicDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.Ethnicmodel, options: this.ethnicOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onEthnicAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + constellationOptions: string[] = ["Aquarius", "Aquila", "Aries", "Canis Major", "Cassiopeia", "Cygnus", "Gemini", "Leo", "Lyra", "Orion", "Pisces", "Scorpius", "Taurus", "Ursa Major", "Ursa Minor"] + Constellationmodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + constellationDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.Constellationmodel, options: this.constellationOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onConstellationAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + phoneCodeOptions: string[] = ["Singapore", "Thailand", "Japan", "Korea", "Vietnam", "India"] + PhoneCodemodel: SingleOptionDialog.Model= new SingleOptionDialog.Model(); + phoneCodeDialogController: CustomDialogController = new CustomDialogController({ + builder: SingleOptionDialog({ model: this.PhoneCodemodel, options: this.phoneCodeOptions, selectedValue: this.selectedValue, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, + rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, + pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, + cancel: this.onCancel, confirm: this.onPhoneCodeAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + dates: string[] = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","28","29","30","31"] + months: string[] = ["Jan", "Feb", "Mar", "Apr", "May", "Jun", "Jul", "Aug", "Sep", "Oct", "Nov", "Dec"] + years: string[] = ["2022","2021","2020","2019","2018"] + @State selectedDate: string = "" + @State selectedMonth: string = "" + @State selectedYear: string = "" + Birthdaymodel: BirthdayDialog.Model = new BirthdayDialog.Model(); + birthdayDialogController: CustomDialogController = new CustomDialogController({ + builder: BirthdayDialog({ model: this.Birthdaymodel, dates: this.dates, months: this.months, years: this.years, selectedDate: this.selectedDate, selectedMonth: this.selectedMonth, selectedYear: this.selectedYear, cancel: this.onCancel, confirm: this.onBirthdayAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + hour: string[] = ["01","02","03","04","05","06","07","08","09","10","11","12"] + minutes: string[] = ["00", "10", "20", "30", "40", "50"] + seconds: string[] = ["00","01","02","03","04","05","06","07","08","09","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31","32","33","34","35","36","37","38","39","40","41","42","43","44","45","46","47","48","49","50","51","52","53","54","55","56","57","58","59","60"] + @State selectedHour: string = "" + @State selectedMinutes: string = "" + @State selectedSecond: string = "" + TimeSelection24model: TimeSelection24.Model = new TimeSelection24.Model(); + timeSelection24Controller: CustomDialogController = new CustomDialogController({ + builder: TimeSelection24({ model: this.TimeSelection24model, hour: this.hour, minutes: this.minutes, seconds: this.seconds, selectedHour: this.selectedHour, selectedMinutes: this.selectedMinutes, selectedSecond: this.selectedSecond, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onTime24Accept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + zone: string[] = ["AM", "PM"] + @State selectedZone: string = "" + TimeSelection12model: TimeSelection12.Model = new TimeSelection12.Model(); + timeSelection12Controller: CustomDialogController = new CustomDialogController({ + builder: TimeSelection12({ model: this.TimeSelection12model, hour: this.hour, minutes: this.minutes, zone: this.zone, selectedHour: this.selectedHour, selectedMinutes: this.selectedMinutes, selectedZone: this.selectedZone, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onTime12Accept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + month: string[] = ["01","02","03","04","05","06","07","08","09","10","11","12"] + day: string[] = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] + @State selectedDay: string = "" + MonthDayDialogmodel: MonthDayDialog.Model = new MonthDayDialog.Model(); + monthDayController: CustomDialogController = new CustomDialogController({ + builder: MonthDayDialog({ model: this.MonthDayDialogmodel, month: this.month, day: this.day, selectedMonth: this.selectedMonth, selectedDay: this.selectedDay, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onMonthDayAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + year: string[] = ["2021", "2022", "2023", "2024", "2025", "2026", "2027", "2028", "2029", "2030"] + YearMonthDialogmodel: YearMonthDialog.Model = new YearMonthDialog.Model(); + yearMonthController: CustomDialogController = new CustomDialogController({ + builder: YearMonthDialog({ model: this.YearMonthDialogmodel, year: this.year, month: this.month, selectedYear: this.selectedYear, selectedMonth: this.selectedMonth, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onYearMonthAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + YearMonthDayDialogmodel: YearMonthDayDialog.Model = new YearMonthDayDialog.Model(); + yearMonthDayController: CustomDialogController = new CustomDialogController({ + builder: YearMonthDayDialog({ model: this.YearMonthDayDialogmodel, year: this.year, month: this.month, day: this.day, selectedYear: this.selectedYear, selectedMonth: this.selectedMonth, selectedDay: this.selectedDay, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onYearMonthDayAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + YearMonthDayTimeDialogmodel: YearMonthDayTimeDialog.Model = new YearMonthDayTimeDialog.Model(); + yearMonthDayTimeController: CustomDialogController = new CustomDialogController({ + builder: YearMonthDayTimeDialog({ model: this.YearMonthDayTimeDialogmodel, year: this.year, month: this.month, day: this.day, hour: this.hour, minutes: this.minutes, selectedYear: this.selectedYear, selectedMonth: this.selectedMonth, selectedDay: this.selectedDay, selectedHour: this.selectedHour, selectedMinutes: this.selectedMinutes, + leftButtonString: this.leftButtonString, leftButtonBgColor: this.leftButtonBgColor, leftButtonTextColor: this.leftButtonTextColor, rightButtonString: this.rightButtonString, rightButtonBgColor: this.rightButtonBgColor, rightButtonTextColor: this.rightButtonTextColor, pickerTitle: this.pickerTitle, pickerTitleFontSize: this.pickerTitleFontSize, pickerHeight: this.pickerHeight, cancel: this.onCancel, confirm: this.onYearMonthDayTimeAccept }), + cancel: this.existApp, + autoCancel: true, + alignment: DialogAlignment.Bottom + }) + + onCancel() { + console.info('Callback when the first button is clicked') + } + onAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onIntegerAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onFloatAccept() { + this.selectedValue === "" ? prompt.showToast({ message: "4.10 °C" }) : prompt.showToast({ message: this.selectedValue + " °C" }) + console.info('Callback when the second button is clicked') + } + onOptionTextAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onHouseholdAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onGenderAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onEthnicAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onConstellationAccept() { + prompt.showToast({ message: this.selectedValue }) + console.info('Callback when the second button is clicked') + } + onPhoneCodeAccept() { + prompt.showToast({ message: this.selectedValue}) + console.info('Callback when the second button is clicked') + } + onBirthdayAccept() { + prompt.showToast({ message: this.selectedYear+" : "+this.selectedMonth+" : "+this.selectedDate }) + console.info('Callback when the second button is clicked') + } + onTime24Accept() { + prompt.showToast({ message: this.selectedHour+" : "+this.selectedMinutes+" : "+this.selectedSecond }) + console.info('Callback when the second button is clicked') + } + onTime12Accept() { + prompt.showToast({ message: this.selectedHour+" : "+this.selectedMinutes+" "+this.selectedZone }) + console.info('Callback when the second button is clicked') + } + onMonthDayAccept() { + prompt.showToast({ message: this.selectedMonth+" - "+this.selectedDay }) + console.info('Callback when the second button is clicked') + } + onYearMonthAccept() { + prompt.showToast({ message: this.selectedYear+" - "+this.selectedMonth }) + console.info('Callback when the second button is clicked') + } + onYearMonthDayAccept() { + prompt.showToast({ message: this.selectedYear+" - "+this.selectedMonth + " - " + this.selectedDay }) + console.info('Callback when the second button is clicked') + } + onYearMonthDayTimeAccept() { + prompt.showToast({ message: this.selectedYear+"-"+this.selectedMonth + "-" + this.selectedDay + " " + this.selectedHour + " : " + this.selectedMinutes }) + console.info('Callback when the second button is clicked') + } + existApp() { + console.info('Click the callback in the blank area') + } + + showSingleOptionDialog() { + this.IntegerDialog.reset() + this.IntegerDialog.setScrollHeight(160) + this.IntegerDialogController.open() + } + + + build() { + Column({space: 5}){ + Text("Wheel Pickers").fontSize(25).fontWeight(500).height('5%').width('500VP').textAlign(TextAlign.Center).backgroundColor('#94a3b8') + Button("Integer Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.showSingleOptionDialog() + }) + + Button("Float Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.floatDialogController.open() + }) + + Button("Option Text Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.optionTextDialogController.open() + }) + + Button("Household Items Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.householdDialogController.open() + }) + + Button("Gender Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.genderDialogController.open() + }) + + Button("Ethnic Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.ethnicDialogController.open() + }) + + Button("Constellation Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.constellationDialogController.open() + }) + + Button("Phone Code Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.phoneCodeDialogController.open() + }) + + Button("Birthday Picker",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.birthdayDialogController.open() + }) + + Button("Time Selection 24hr",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.timeSelection24Controller.open() + }) + + Button("Time Selection 12hr",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.timeSelection12Controller.open() + }) + + Button("Month Day",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.monthDayController.open() + }) + + Button("Year Month",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.yearMonthController.open() + }) + + Button("Year Month Day",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.yearMonthDayController.open() + }) + + Button("Year Month Day Time",{type: ButtonType.Normal}).width('500VP').borderRadius(0).onClick(() => { + this.yearMonthDayTimeController.open() + }) + } + } +} \ No newline at end of file diff --git a/entry/src/main/resources/base/element/string.json b/entry/src/main/resources/base/element/string.json new file mode 100644 index 0000000..dddf912 --- /dev/null +++ b/entry/src/main/resources/base/element/string.json @@ -0,0 +1,16 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "description" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + } + ] +} \ No newline at end of file diff --git a/entry/src/main/resources/base/media/icon.png b/entry/src/main/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 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 + }) + } + .width('100%') + } + .height('100%') + } + } \ No newline at end of file diff --git a/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts b/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts new file mode 100644 index 0000000..ed3ba0d --- /dev/null +++ b/entry/src/ohosTest/ets/TestRunner/OpenHarmonyTestRunner.ts @@ -0,0 +1,63 @@ +import TestRunner from '@ohos.application.testRunner' +import AbilityDelegatorRegistry from '@ohos.application.abilityDelegatorRegistry' + +var abilityDelegator = undefined +var abilityDelegatorArguments = undefined + +function translateParamsToString(parameters) { + const keySet = new Set([ + '-s class', '-s notClass', '-s suite', '-s itName', + '-s level', '-s testType', '-s size', '-s timeout', + '-s package' + ]) + let targetParams = ''; + for (const key in parameters) { + if (keySet.has(key)) { + targetParams += ' ' + key + ' ' + parameters[key] + } + } + return targetParams.trim() +} + +async function onAbilityCreateCallback() { + console.log('onAbilityCreateCallback'); +} + +async function addAbilityMonitorCallback(err: any) { + console.info('addAbilityMonitorCallback : ' + JSON.stringify(err)) +} + +export default class OpenHarmonyTestRunner implements TestRunner { + constructor() { + } + + onPrepare() { + console.info('OpenHarmonyTestRunner OnPrepare') + } + + onRun() { + console.log('OpenHarmonyTestRunner onRun run') + abilityDelegatorArguments = AbilityDelegatorRegistry.getArguments() + abilityDelegator = AbilityDelegatorRegistry.getAbilityDelegator() + + let lMonitor = { + abilityName: testAbilityName, + onAbilityCreate: onAbilityCreateCallback, + }; + var testAbilityName = abilityDelegatorArguments.parameters['-p'] + '.TestAbility' + abilityDelegator.addAbilityMonitor(lMonitor, addAbilityMonitorCallback) + var cmd = 'aa start -d 0 -a ' + testAbilityName + ' -b ' + abilityDelegatorArguments.bundleName + cmd += ' '+translateParamsToString(abilityDelegatorArguments.parameters) + console.info('cmd : '+cmd) + abilityDelegator.executeShellCommand(cmd, + (err: any, d: any) => { + console.info('executeShellCommand : err : ' + JSON.stringify(err)); + console.info('executeShellCommand : data : ' + d.stdResult); + console.info('executeShellCommand : data : ' + d.exitCode); + }) + console.info('OpenHarmonyTestRunner onRun call abilityDelegator.getAppContext') + var context = abilityDelegator.getAppContext() + console.info('getAppContext : ' + JSON.stringify(context)) + console.info('OpenHarmonyTestRunner onRun end') + } +}; \ No newline at end of file diff --git a/entry/src/ohosTest/ets/test/Ability.test.ets b/entry/src/ohosTest/ets/test/Ability.test.ets new file mode 100644 index 0000000..1236e0c --- /dev/null +++ b/entry/src/ohosTest/ets/test/Ability.test.ets @@ -0,0 +1,13 @@ +import { describe, beforeAll, beforeEach, afterEach, afterAll, it, expect } from 'hypium/index' + +export default function abilityTest() { + describe('ActsAbilityTest', function () { + it('assertContain',0, function () { + console.info("it begin") + let a = 'abc' + let b = 'b' + expect(a).assertContain(b) + expect(a).assertEqual(a) + }) + }) +} \ No newline at end of file diff --git a/entry/src/ohosTest/ets/test/List.test.ets b/entry/src/ohosTest/ets/test/List.test.ets new file mode 100644 index 0000000..d766fe2 --- /dev/null +++ b/entry/src/ohosTest/ets/test/List.test.ets @@ -0,0 +1,5 @@ +import abilityTest from './Ability.test' + +export default function testsuite() { + abilityTest() +} \ No newline at end of file diff --git a/entry/src/ohosTest/resources/base/element/string.json b/entry/src/ohosTest/resources/base/element/string.json new file mode 100644 index 0000000..a0901cf --- /dev/null +++ b/entry/src/ohosTest/resources/base/element/string.json @@ -0,0 +1,12 @@ +{ + "string": [ + { + "name": "description_TestAbility", + "value": "eTS_Empty Ability" + }, + { + "name": "entry_TestAbility", + "value": "entry_TestAbility" + } + ] +} \ No newline at end of file diff --git a/entry/src/ohosTest/resources/base/media/icon.png b/entry/src/ohosTest/resources/base/media/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..ce307a8827bd75456441ceb57d530e4c8d45d36c GIT binary patch literal 6790 zcmX|G1ymHk)?T_}Vd;>R?p|tHQo6fg38|$UVM!6BLrPFWk?s;$LOP{GmJpBl$qoSA!PUg~PA65-S00{{S`XKG6NkG0RgjEntPrmV+?0|00mu7;+5 zrdpa{2QLqPJ4Y{j7=Mrl{BaxrkdY69+c~(w{Fv-v&aR%aEI&JYSeRTLWm!zbv;?)_ ziZB;fwGbbeL5Q}YLx`J$lp~A09KK8t_z}PZ=4ZzgdeKtgoc+o5EvN9A1K1_<>M?MBqb#!ASf&# zEX?<)!RH(7>1P+j=jqG(58}TVN-$psA6K}atCuI!KTJD&FMmH-78ZejBm)0qc{ESp z|LuG1{QnBUJRg_E=h1#XMWt2%fcoN@l7eAS!Es?Q+;XsRNPhiiE=@AqlLkJzF`O18 zbsbSmKN=aaq8k3NFYZfDWpKmM!coBU0(XnL8R{4=i|wi{!uWYM2je{U{B*K2PVdu&=E zTq*-XsEsJ$u5H4g6DIm2Y!DN`>^v|AqlwuCD;w45K0@eqauiqWf7l&o)+YLHm~|L~ z7$0v5mkobriU!H<@mVJHLlmQqzQ3d6Rh_-|%Yy2li*tHO>_vcnuZ7OR_xkAIuIU&x z-|8Y0wj|6|a6_I(v91y%k_kNw6pnkNdxjqG8!%Vz_d%c_!X+6-;1`GC9_FpjoHev5fEV7RhJ>r=mh-jp$fqbqRJ=obwdgLDVP5+s zy1=_DWG0Y-Jb3t^WXmkr(d9~08k-|#Ly zaNOmT(^9tIb&eb4%CzIT zAm3CUtWSr1t4?h1kk#NBi{U|pJslvME{q|_eS^3En>SOqSxyuN1x;Is@8~m?*>}** znrRFArP!K_52RpX*&JHMR<^lVdm8ypJ}0R(SD(51j;6@ni$6bQ+2XL+R^|NnSp5}(kzvMZ^(@4fD_{QVu$(&K6H|C37TG1Am9Re{<<3gd zh@`>;BqkXMW&p0T6rt|iB$)~CvFe(XC)F9WgAZn*0@t$oZo;!*}r@_`h?KKH&6A@3= zISXoQB+~`op>NP-buiA*^0n{@i{_?MRG)&k)c)k_F+-2Lud!S9pc+i`s74NpBCaGF zXN+pHkubw*msGBTY27BKHv)RRh3;nMg4&$fD_6X9Vt~;_4D+5XPH~#Kn-yjcy!$}1 zigv#FNY>TqMhtIBb@UoF!cE~Q8~;!Pek>SQQwHnHuWKoVBosAiOr}q>!>aE*Krc)V zBUMEcJ5NU0g8}-h6i1zpMY9>m4ne?=U2~`w7K7Q0gB_=p@$5K7p6}thw z-~3dMj?YNX2X$lZ+7ngQ$=s}3mizNN@kE%OtB)?c&i~2L55z8^=yz;xMHLmlY>&Q# zJj?!)M#q_SyfkQh)k?j8IfLtB)ZCp|*vf4_B zos?73yd^h-Ac+;?E4*bpf=o*^3x3-`TVjbY4n6!EN10K6o@fxdyps05Vo3PU)otB} z`3kR+2w7_C#8Z!q`J)p{Vh!+m9-UP!$STp+Hb}}#@#_u^SsUQg<}59< zTvH3%XS4G+6FF^(m6bVF&nSUIXcl;nw{=H$%fgeJ>CgDYiLdpDXr{;-AnG z8dvcrHYVMI&`R6;GWekI@Ir3!uo)oz4^{6q0m^}@f2tM9&=YHNi6-?rh0-{+k@cQm zdp`g#YdQn%MDVg2GR>wZ`n2<0l4)9nx1Wfr&!Dvz=bPwU!h2S?ez6MVc5APE4-xLB zi&W9Q8k2@0w!C53g?iAIQ}~p*3O(@zja6KQ=M3zfW*_6o5SwR-)6VBh~m7{^-=MC-owYH5-u40a}a0liho3QZZ5L{bS_xM1)4}19)zTU$$MY zq3eZML1WC{K%YFd`Be0M-rkO^l?h{kM{$2oK1*A@HVJ57*yhDkUF!2WZ&oA4Y-sK( zCY69%#`mBCi6>6uw(x4gbFaP0+FD*JKJ-q!F1E?vLJ+d35!I5d7@^eU?(CS|C^tmI5?lv@s{{*|1F zFg|OzNpZ0hxljdjaW%45O0MOttRrd(Z?h{HYbB-KFUx&9GfFL3b8NwZ$zNu)WbBD` zYkj$^UB5%3Pj1MDr>S2Ejr9pUcgA!;ZG!@{uAy12)vG=*^9-|dNQBc8&`oxBlU~#y zs!anJX&T?57Jdr^sb>e+V`MVfY>Y0ESg7MG<7W0g&bR-ZYzzZ%2H&Etcp zcd6QeXO1D!5A#zM0lx*GH}`M)2~ZFLE;sP^RSB5wVMNfiZXPd(cmO>j=OSA3`o5r& zna(|^jGXbdN7PK)U8b7^zYtYkkeb%<%F~=OqB~kXMQkq}ii|skh@WSRt>5za;cjP0 zZ~nD%6)wzedqE}BMLt~qKwlvTr33))#uP~xyw#*Eaa|DbMQ_%mG0U8numf8)0DX`r zRoG2bM;#g|p-8gWnwRV5SCW0tLjLO&9Z?K>FImeIxlGUgo0Zk`9Qzhj1eco~7XZy+hXc@YF&ZQ=? zn*^1O56yK^x{y}q`j7}blGCx%dydV!c7)g~tJzmHhV=W~jbWRRR{1<^oDK+1clprm zz$eCy7y9+?{E|YgkW~}}iB#I4XoJ*xr8R?i_Hv$=Cof5bo-Nj~f`-DLebH}&0% zfQj9@WGd4;N~Y?mzQsHJTJq6!Qzl^-vwol(+fMt#Pl=Wh#lI5Vmu@QM0=_r+1wHt` z+8WZ~c2}KQQ+q)~2Ki77QvV&`xb|xVcTms99&cD$Zz4+-^R4kvUBxG8gDk7Y`K*)JZ^2rL(+ZWV~%W(@6 z)0bPArG#BROa_PHs~&WplQ_UIrpd)1N1QGPfv!J(Z9jNT#i%H?CE6|pPZb9hJ1JW4 z^q;ft#!HRNV0YgPojzIYT`8LuET2rUe-J|c!9l4`^*;4WtY@Ew@pL>wkjmMgGfN7 ze}}GtmU0@<_#08~I-Suk=^*9GLW=H4xhsml;vAV{%hy5Eegl@!6qKqbG024%n2HHw zCc@ivW_$@5ZoHP70(7D+(`PvgjW1Pd`wsiuv-aCukMrafwDm)B!xXVy*j2opohhoU zcJz%ADmj>i3`-3-$7nQKBQQuGY;2Qt&+(L~C>vSGFj5{Mlv?T_^dql;{zkpe4R1}R z%XfZyQ}wr*sr>jrKgm*PWLjuVc%6&&`Kbf1SuFpHPN&>W)$GmqC;pIoBC`=4-hPY8 zT*>%I2fP}vGW;R=^!1be?ta2UQd2>alOFFbVl;(SQJ4Jk#)4Z0^wpWEVvY4=vyDk@ zqlModi@iVPMC+{?rm=4(n+<;|lmUO@UKYA>EPTS~AndtK^Wy^%#3<;(dQdk3WaUkRtzSMC9}7x2||CNpF#(3T4C)@ z$~RWs`BNABKX|{cmBt>Q=&gkXl&x!!NK_%5hW0LS)Z4PB>%sV?F-{Wyj#s7W%$F{D zXdK^Fp3wvy+48+GP6F_|^PCRx=ddcTO3sG;B23A49~Qaw31SZ0Rc~`r4qqt%#OGW{ zCA_(LG5^N>yzUn&kAgVmxb=EA8s&tBXC}S1CZ(KoW)(%^JjLTPo^fs`Va;`=YlVPgmB$!yB}<(4ym6OeZ3xAJJ#;)2+B%p3P1Wt+d$eo`vz`T zXfUP2))kBDPoscH;Jc7I3NU<({|@wM$&GaDt`n7WLgIY3IA7A6-_R?z8N3mz|}*i z(zl5ot--Oq@f2-nv{X(ujT2T(k1vY_qh93pK@>H-qc%2Xta)IP0Q%zt%bqYgI`o!wv!0QerB`nCN^1n|@$sVOQ!V0teVG!I z_fD%JvfDeT1cK#-{o6Gv7}& zY0#NWin~kVaf$aufV&;63Hbs|`QVZWpDX6IMk1Hj2G}fiH9e-^6u2zf^FIr^BwD<6zjw63+{yUe8PUFvk8v{sJ=R{d#`O!sz`Q13~< zPT$JS(w=yQfU2`zPCNfSw=&zup@DXc(98afjhv@1w_f!m2Z>rMJ19AB&dB%P#Ls3b z=lK7OILM+SQ&VEd=1GN6o&>YVVtIzoZ%=Z_SdqJN2}E43{bE`>w+A;=y->@^k{oCC z$F*WTY&?34;kfyFV?b*Xb1Pq`Z=%OgwEg)Rz)tx=`f%5#w_INP=x&z5!jI;#;N$ma zhO)+MDm;SxOEVL15; zGq(v2pL3&P1Sl)8P*;G-fd{l1QJsv@e@d8)1PK4w2m*M%V3j-V~L^$i|&C@b?D?9tfwE{B^}Z$k8e5FmQ>v7Xz)sG32g9t}YBt zyR$+*_00RmPx+0mW+vVG4mxd(n$(eQf3-w>JPl2UJpafrPaL5@2j}%{VE-) zBI%6Qpj*dsdH<;g!S!avA~bv^0E+ zfyJbSjPb+j;J52U)<|cIcntQBI2T#>2;tOxu{%D?kML476AErF(qN9hPva5Nkc@BF zC-tLF@3ZFb%Kpj)M<{)x*l|*Ia@ECeXo2E4h2f!aV=cHAhi_E_mfUth(sM4^hJq7B zQsGWqdZUm9S%F`$nQ*_#NcuD`&)Ek%_s{&^78{9Hm ztri&rYLOxgFdG>O@+XHy z9#;|&vBCPXH5Mon^I`jSuR$&~ZWtyB67ujzFSj!51>#C}C17~TffQ{c-!QFQkTQ%! zIR^b1`zHx|*1GU?tbBx23weFLz5H?y_Q%N&t$}k?w+``2A=aotj0;2v$~AL z{scF-cL{wsdrmPvf#a9OHyYLcwQD4Kcm)`LLwMh4WT~p29f7M!iafJSU`IV}QY5Wa z(n44-9oA}?J{a+ah*@31WTs#&J#o1`H98#6IQf;Wv0N_!);f&9g7o-k(lW5rWnDUR zQBFIRG+X=6NnsI@mxnwm;tf5;_Uxg?jZ8m-m0}&6+DA!qam(p$mN5R})yA_7m$q@| zFEd|dpS595rxQr-n#GjI5i-AhnUE>Cr;jpCqSrD~EwK_DqI^7%3#p5)%T_od!t3SOmH9MyXeeGO2(UQL;ax|x?Ncixmeo1=$ z{-);Au{*tfzOG?KQ~K|ak8-HQ?`Pekhe2WM(8s{xv-p>Zmu_6{G!-oE$7$mY`MOJorI=+mMx?H;`pr!;fVYz?5~yXBACruWB`Ph zZM}90_<^OBxIhyZ9BW$`>6JvO;%VFpqVr8|7t3~AmxYak6?`Pp#c;**_SYmi`&z23 z`p6_~ePvH)C6x-G9$hgL=eVALq`-AiamN>!3~Lxw&{H(b{B(7xSRm6<3<{%{yXiH# zos5Rv1L+8fUKJLo%P>4I&$}y= 2.1.2 < 3.0.0" + } + }, + "ieee754": { + "version": "1.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/ieee754/-/ieee754-1.2.1.tgz", + "integrity": "sha512-dcyqhDvX1C46lXZcVqCpK+FtMRQVdIMN6/Df5js2zouUsqG7I6sFxitIC+7KYK29KdXOLHdu9zL4sFnoVQnqaA==" + }, + "inflight": { + "version": "1.0.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/inflight/-/inflight-1.0.6.tgz", + "integrity": "sha1-Sb1jMdfQLQwJvJEKEHW6gWW1bfk=", + "requires": { + "once": "^1.3.0", + "wrappy": "1" + } + }, + "inherits": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/inherits/-/inherits-2.0.4.tgz", + "integrity": "sha512-k/vGaX4/Yla3WzyMCvTQOXYeIHvqOKtnqBduzTHpzpQZzAskKMhZ2K+EnBiSM9zGSoIFeMpXKxa4dYeZIQqewQ==" + }, + "ini": { + "version": "1.3.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/ini/-/ini-1.3.8.tgz", + "integrity": "sha512-JV/yugV2uzW5iMRSiZAyDtQd+nxtUnjeLt0acNdw98kKLrvuRVyB80tsREOE7yvGVgalhZ6RNXCmEHkUKBKxew==" + }, + "interpret": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/interpret/-/interpret-1.4.0.tgz", + "integrity": "sha512-agE4QfB2Lkp9uICn7BAqoscw4SZP9kTE2hxiFI3jBPmXJfdqiahTbUuKGsMoN2GtqL9AxhYioAcVvgsb1HvRbA==" + }, + "invert-kv": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/invert-kv/-/invert-kv-1.0.0.tgz", + "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=" + }, + "is-absolute": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-absolute/-/is-absolute-1.0.0.tgz", + "integrity": "sha512-dOWoqflvcydARa360Gvv18DZ/gRuHKi2NU/wU5X1ZFzdYfH29nkiNZsF3mp4OJ3H4yo9Mx8A/uAGNzpzPN3yBA==", + "requires": { + "is-relative": "^1.0.0", + "is-windows": "^1.0.1" + } + }, + "is-arrayish": { + "version": "0.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-arrayish/-/is-arrayish-0.2.1.tgz", + "integrity": "sha1-d8mYQFJ6qOyxqLppe4BkWnqSap0=" + }, + "is-core-module": { + "version": "2.9.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-core-module/-/is-core-module-2.9.0.tgz", + "integrity": "sha512-+5FPy5PnwmO3lvfMb0AsoPaBG+5KHUI0wYFXOtYPnVVVspTFUuMZNfNaNVRt3FZadstu2c8x23vykRW/NBoU6A==", + "requires": { + "has": "^1.0.3" + } + }, + "is-extglob": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-extglob/-/is-extglob-2.1.1.tgz", + "integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=" + }, + "is-fullwidth-code-point": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", + "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", + "requires": { + "number-is-nan": "^1.0.0" + } + }, + "is-glob": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-glob/-/is-glob-4.0.3.tgz", + "integrity": "sha512-xelSayHH36ZgE7ZWhli7pW34hNbNl8Ojv5KVmkJD4hBdD3th8Tfk9vYasLM+mXWOZhFkgZfxhLSnrwRr4elSSg==", + "requires": { + "is-extglob": "^2.1.1" + } + }, + "is-number": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-4.0.0.tgz", + "integrity": "sha512-rSklcAIlf1OmFdyAqbnWTLVelsQ58uvZ66S/ZyawjWqIviTWCjg2PzVGw8WUA+nNuPTqb4wgA+NszrJ+08LlgQ==" + }, + "is-plain-object": { + "version": "5.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-plain-object/-/is-plain-object-5.0.0.tgz", + "integrity": "sha512-VRSzKkbMm5jMDoKLbltAkFQ5Qr7VDiTFGXxYFXXowVj387GeGNOCsOH6Msy00SGZ3Fp84b1Naa1psqgcCIEP5Q==" + }, + "is-relative": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-relative/-/is-relative-1.0.0.tgz", + "integrity": "sha512-Kw/ReK0iqwKeu0MITLFuj0jbPAmEiOsIwyIXvvbfa6QfmN9pkD1M+8pdk7Rl/dTKbH34/XBFMbgD4iMJhLQbGA==", + "requires": { + "is-unc-path": "^1.0.0" + } + }, + "is-stream": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-stream/-/is-stream-2.0.1.tgz", + "integrity": "sha512-hFoiJiTl63nn+kstHGBtewWSKnQLpyb155KHheA1l39uvtO9nWIop1p3udqPcUd/xbF1VLMO4n7OI6p7RbngDg==" + }, + "is-unc-path": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-unc-path/-/is-unc-path-1.0.0.tgz", + "integrity": "sha512-mrGpVd0fs7WWLfVsStvgF6iEJnbjDFZh9/emhRDcGWTduTfNHd9CHeUwH3gYIjdbwo4On6hunkztwOaAw0yllQ==", + "requires": { + "unc-path-regex": "^0.1.2" + } + }, + "is-utf8": { + "version": "0.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-utf8/-/is-utf8-0.2.1.tgz", + "integrity": "sha1-Sw2hRCEE0bM2NA6AeX6GXPOffXI=" + }, + "is-windows": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-windows/-/is-windows-1.0.2.tgz", + "integrity": "sha512-eXK1UInq2bPmjyX6e3VHIzMLobc4J94i4AWn+Hpq3OU5KkrRC96OAcR3PRJ/pGu6m8TRnBHP9dkXQVsT/COVIA==" + }, + "isarray": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/isarray/-/isarray-1.0.0.tgz", + "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" + }, + "isexe": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/isexe/-/isexe-2.0.0.tgz", + "integrity": "sha1-6PvzdNxVb/iUehDcsFctYz8s+hA=" + }, + "isobject": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/isobject/-/isobject-3.0.1.tgz", + "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" + }, + "json-schema-traverse": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/json-schema-traverse/-/json-schema-traverse-1.0.0.tgz", + "integrity": "sha512-NM8/P9n3XjXhIZn1lLhkFaACTOURQXjWhV4BA/RnOv8xvgqtqpAX9IO4mRQxSx1Rlo4tqzeqb0sOlruaOy3dug==" + }, + "json5": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/json5/-/json5-2.2.0.tgz", + "integrity": "sha512-f+8cldu7X/y7RAJurMEJmdoKXGB/X550w2Nr3tTbezL6RwEE/iMcm+tZnXeoZtKuOq6ft8+CqzEkrIgx1fPoQA==", + "requires": { + "minimist": "^1.2.5" + } + }, + "jsonfile": { + "version": "6.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/jsonfile/-/jsonfile-6.1.0.tgz", + "integrity": "sha512-5dgndWOriYSm5cnYaJNhalLNDKOqFwyDB/rr1E9ZsGciGvKPs8R2xYGCacuf3z6K1YKDz182fd+fY3cn3pMqXQ==", + "requires": { + "graceful-fs": "^4.1.6", + "universalify": "^2.0.0" + } + }, + "kind-of": { + "version": "6.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/kind-of/-/kind-of-6.0.3.tgz", + "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" + }, + "last-run": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/last-run/-/last-run-1.1.1.tgz", + "integrity": "sha1-RblpQsF7HHnHchmCWbqUO+v4yls=", + "requires": { + "default-resolution": "^2.0.0", + "es6-weak-map": "^2.0.1" + } + }, + "lazystream": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/lazystream/-/lazystream-1.0.1.tgz", + "integrity": "sha512-b94GiNHQNy6JNTrt5w6zNyffMrNkXZb3KTkCZJb2V1xaEGCk093vkZ2jk3tpaeP33/OiXC+WvK9AxUebnf5nbw==", + "requires": { + "readable-stream": "^2.0.5" + }, + "dependencies": { + "readable-stream": { + "version": "2.3.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/readable-stream/-/readable-stream-2.3.7.tgz", + "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", + "requires": { + "core-util-is": "~1.0.0", + "inherits": "~2.0.3", + "isarray": "~1.0.0", + "process-nextick-args": "~2.0.0", + "safe-buffer": "~5.1.1", + "string_decoder": "~1.1.1", + "util-deprecate": "~1.0.1" + } + } + } + }, + "lcid": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lcid/-/lcid-1.0.0.tgz", + "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", + "requires": { + "invert-kv": "^1.0.0" + } + }, + "liftoff": { + "version": "4.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/liftoff/-/liftoff-4.0.0.tgz", + "integrity": "sha512-rMGwYF8q7g2XhG2ulBmmJgWv25qBsqRbDn5gH0+wnuyeFt7QBJlHJmtg5qEdn4pN6WVAUMgXnIxytMFRX9c1aA==", + "requires": { + "extend": "^3.0.2", + "findup-sync": "^5.0.0", + "fined": "^2.0.0", + "flagged-respawn": "^2.0.0", + "is-plain-object": "^5.0.0", + "object.map": "^1.0.1", + "rechoir": "^0.8.0", + "resolve": "^1.20.0" + } + }, + "load-json-file": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/load-json-file/-/load-json-file-1.1.0.tgz", + "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", + "requires": { + "graceful-fs": "^4.1.2", + "parse-json": "^2.2.0", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0", + "strip-bom": "^2.0.0" + } + }, + "lodash": { + "version": "4.17.21", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash/-/lodash-4.17.21.tgz", + "integrity": "sha512-v2kDEe57lecTulaDIuNTPy3Ry4gLGJ6Z1O3vE1krgXZNrsQ+LFTGHVxVjcXPs17LhbZVGedAJv8XZ1tvj5FvSg==" + }, + "lodash.defaults": { + "version": "4.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.defaults/-/lodash.defaults-4.2.0.tgz", + "integrity": "sha1-0JF4cW/+pN3p5ft7N/bwgCJ0WAw=" + }, + "lodash.difference": { + "version": "4.5.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.difference/-/lodash.difference-4.5.0.tgz", + "integrity": "sha1-nMtOUF1Ia5FlE0V3KIWi3yf9AXw=" + }, + "lodash.flatten": { + "version": "4.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.flatten/-/lodash.flatten-4.4.0.tgz", + "integrity": "sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=" + }, + "lodash.isplainobject": { + "version": "4.0.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.isplainobject/-/lodash.isplainobject-4.0.6.tgz", + "integrity": "sha1-fFJqUtibRcRcxpC4gWO+BJf1UMs=" + }, + "lodash.union": { + "version": "4.6.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/lodash.union/-/lodash.union-4.6.0.tgz", + "integrity": "sha1-SLtQiECfFvGCFmZkHETdGqrjzYg=" + }, + "log4js": { + "version": "6.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/log4js/-/log4js-6.4.1.tgz", + "integrity": "sha512-iUiYnXqAmNKiIZ1XSAitQ4TmNs8CdZYTAWINARF3LjnsLN8tY5m0vRwd6uuWj/yNY0YHxeZodnbmxKFUOM2rMg==", + "requires": { + "date-format": "^4.0.3", + "debug": "^4.3.3", + "flatted": "^3.2.4", + "rfdc": "^1.3.0", + "streamroller": "^3.0.2" + } + }, + "make-iterator": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/make-iterator/-/make-iterator-1.0.1.tgz", + "integrity": "sha512-pxiuXh0iVEq7VM7KMIhs5gxsfxCux2URptUQaXo4iZZJxBAzTPOLE2BumO5dbfVYq/hBJFBR/a1mFDmOx5AGmw==", + "requires": { + "kind-of": "^6.0.2" + } + }, + "map-cache": { + "version": "0.2.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/map-cache/-/map-cache-0.2.2.tgz", + "integrity": "sha1-wyq9C9ZSXZsFFkW7TyasXcmKDb8=" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "micromatch": { + "version": "4.0.5", + "resolved": "https://repo.huaweicloud.com/repository/npm/micromatch/-/micromatch-4.0.5.tgz", + "integrity": "sha512-DMy+ERcEW2q8Z2Po+WNXuw3c5YaUSFjAO5GsJqfEl7UjvtIuFKO6ZrKvcItdy98dwFI2N1tg3zNIdKaQT+aNdA==", + "requires": { + "braces": "^3.0.2", + "picomatch": "^2.3.1" + } + }, + "mimic-fn": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mimic-fn/-/mimic-fn-2.1.0.tgz", + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" + }, + "minimatch": { + "version": "3.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/minimatch/-/minimatch-3.1.2.tgz", + "integrity": "sha512-J7p63hRiAjw1NDEww1W7i37+ByIrOWO5XQQAzZ3VOcL0PNybwpfmV/N05zFAzwQ9USyEcX6t3UO+K5aqBQOIHw==", + "requires": { + "brace-expansion": "^1.1.7" + } + }, + "minimist": { + "version": "1.2.6", + "resolved": "https://repo.huaweicloud.com/repository/npm/minimist/-/minimist-1.2.6.tgz", + "integrity": "sha512-Jsjnk4bw3YJqYzbdyBiNsPWHPfO++UGG749Cxs6peCu5Xg4nrena6OVxOYxrQTqww0Jmwt+Ref8rggumkTLz9Q==" + }, + "ms": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/ms/-/ms-2.1.2.tgz", + "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==" + }, + "mute-stdout": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/mute-stdout/-/mute-stdout-1.0.0.tgz", + "integrity": "sha1-WzLqB+tDyd7WEwQ0z5JvRrKn/U0=" + }, + "next-tick": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/next-tick/-/next-tick-1.1.0.tgz", + "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" + }, + "normalize-package-data": { + "version": "2.5.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-package-data/-/normalize-package-data-2.5.0.tgz", + "integrity": "sha512-/5CMN3T0R4XTj4DcGaexo+roZSdSFW/0AOOTROrjxzCG1wrWXEsGbRKevjlIL+ZDE4sZlJr5ED4YW0yqmkK+eA==", + "requires": { + "hosted-git-info": "^2.1.4", + "resolve": "^1.10.0", + "semver": "2 || 3 || 4 || 5", + "validate-npm-package-license": "^3.0.1" + } + }, + "normalize-path": { + "version": "3.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/normalize-path/-/normalize-path-3.0.0.tgz", + "integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==" + }, + "now-and-later": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/now-and-later/-/now-and-later-2.0.1.tgz", + "integrity": "sha512-KGvQ0cB70AQfg107Xvs/Fbu+dGmZoTRJp2TaPwcwQm3/7PteUyN2BCgk8KBMPGBUXZdVwyWS8fDCGFygBm19UQ==", + "requires": { + "once": "^1.3.2" + } + }, + "npm-run-path": { + "version": "4.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/npm-run-path/-/npm-run-path-4.0.1.tgz", + "integrity": "sha512-S48WzZW777zhNIrn7gxOlISNAqi9ZC/uQFnRdbeIHhZhCA6UqpkOT8T1G7BvfdgP4Er8gF4sUbaS0i7QvIfCWw==", + "requires": { + "path-key": "^3.0.0" + } + }, + "number-is-nan": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/number-is-nan/-/number-is-nan-1.0.1.tgz", + "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" + }, + "object-keys": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object-keys/-/object-keys-1.1.1.tgz", + "integrity": "sha512-NuAESUOUMrlIXOfHKzD6bpPu3tYt3xvjNdRIQ+FeT0lNb4K8WR70CaDxhuNguS2XG+GjkyMwOzsN5ZktImfhLA==" + }, + "object.assign": { + "version": "4.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.assign/-/object.assign-4.1.2.tgz", + "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", + "requires": { + "call-bind": "^1.0.0", + "define-properties": "^1.1.3", + "has-symbols": "^1.0.1", + "object-keys": "^1.1.1" + } + }, + "object.defaults": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.defaults/-/object.defaults-1.1.0.tgz", + "integrity": "sha1-On+GgzS0B96gbaFtiNXNKeQ1/s8=", + "requires": { + "array-each": "^1.0.1", + "array-slice": "^1.0.0", + "for-own": "^1.0.0", + "isobject": "^3.0.0" + } + }, + "object.map": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.map/-/object.map-1.0.1.tgz", + "integrity": "sha1-z4Plncj8wK1fQlDh94s7gb2AHTc=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "object.pick": { + "version": "1.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.pick/-/object.pick-1.3.0.tgz", + "integrity": "sha1-h6EKxMFpS9Lhy/U1kaZhQftd10c=", + "requires": { + "isobject": "^3.0.1" + } + }, + "object.reduce": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/object.reduce/-/object.reduce-1.0.1.tgz", + "integrity": "sha1-b+NI8qx/oPlcpiEiZZkJaCW7A60=", + "requires": { + "for-own": "^1.0.0", + "make-iterator": "^1.0.0" + } + }, + "once": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/once/-/once-1.4.0.tgz", + "integrity": "sha1-WDsap3WWHUsROsF9nFC6753Xa9E=", + "requires": { + "wrappy": "1" + } + }, + "onetime": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/onetime/-/onetime-5.1.2.tgz", + "integrity": "sha512-kbpaSSGJTWdAY5KPVeMOKXSrPtr8C8C7wodJbcsd51jRnmD+GZu8Y0VoU6Dm5Z4vWr0Ig/1NKuWRKf7j5aaYSg==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "os-locale": { + "version": "1.4.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/os-locale/-/os-locale-1.4.0.tgz", + "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", + "requires": { + "lcid": "^1.0.0" + } + }, + "parse-filepath": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-filepath/-/parse-filepath-1.0.2.tgz", + "integrity": "sha1-pjISf1Oq89FYdvWHLz/6x2PWyJE=", + "requires": { + "is-absolute": "^1.0.0", + "map-cache": "^0.2.0", + "path-root": "^0.1.1" + } + }, + "parse-json": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-json/-/parse-json-2.2.0.tgz", + "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", + "requires": { + "error-ex": "^1.2.0" + } + }, + "parse-passwd": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/parse-passwd/-/parse-passwd-1.0.0.tgz", + "integrity": "sha1-bVuTSkVpk7I9N/QKOC1vFmao5cY=" + }, + "path-exists": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-exists/-/path-exists-2.1.0.tgz", + "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", + "requires": { + "pinkie-promise": "^2.0.0" + } + }, + "path-is-absolute": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-is-absolute/-/path-is-absolute-1.0.1.tgz", + "integrity": "sha1-F0uSaHNVNP+8es5r9TpanhtcX18=" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "path-parse": { + "version": "1.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-parse/-/path-parse-1.0.7.tgz", + "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==" + }, + "path-root": { + "version": "0.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root/-/path-root-0.1.1.tgz", + "integrity": "sha1-mkpoFMrBwM1zNgqV8yCDyOpHRbc=", + "requires": { + "path-root-regex": "^0.1.0" + } + }, + "path-root-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-root-regex/-/path-root-regex-0.1.2.tgz", + "integrity": "sha1-v8zcjfWxLcUsi0PsONGNcsBLqW0=" + }, + "path-type": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/path-type/-/path-type-1.1.0.tgz", + "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", + "requires": { + "graceful-fs": "^4.1.2", + "pify": "^2.0.0", + "pinkie-promise": "^2.0.0" + } + }, + "picomatch": { + "version": "2.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/picomatch/-/picomatch-2.3.1.tgz", + "integrity": "sha512-JU3teHTNjmE2VCGFzuY8EXzCDVwEqB2a8fsIvwaStHhAWJEeVd1o1QD80CU6+ZdEXXSLbSsuLwJjkCBWqRQUVA==" + }, + "pify": { + "version": "2.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pify/-/pify-2.3.0.tgz", + "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=" + }, + "pinkie": { + "version": "2.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie/-/pinkie-2.0.4.tgz", + "integrity": "sha1-clVrgM+g1IqXToDnckjoDtT3+HA=" + }, + "pinkie-promise": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/pinkie-promise/-/pinkie-promise-2.0.1.tgz", + "integrity": "sha1-ITXW36ejWMBprJsXh3YogihFD/o=", + "requires": { + "pinkie": "^2.0.0" + } + }, + "pretty-hrtime": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/pretty-hrtime/-/pretty-hrtime-1.0.0.tgz", + "integrity": "sha1-9ualItPmBwRSK/Db5oVu0g515Nw=" + }, + "process-nextick-args": { + "version": "2.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/process-nextick-args/-/process-nextick-args-2.0.1.tgz", + "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" + }, + "punycode": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/punycode/-/punycode-2.1.1.tgz", + "integrity": "sha512-XRsRjdf+j5ml+y/6GKHPZbrF/8p2Yga0JPtdqTIY2Xe5ohJPD9saDJJLPvp9+NSBprVvevdXZybnj2cv8OEd0A==" + }, + "read-pkg": { + "version": "1.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/read-pkg/-/read-pkg-1.1.0.tgz", + "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", + "requires": { + "load-json-file": "^1.0.0", + "normalize-package-data": "^2.3.2", + "path-type": "^1.0.0" + } + }, + "read-pkg-up": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/read-pkg-up/-/read-pkg-up-1.0.1.tgz", + "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", + "requires": { + "find-up": "^1.0.0", + "read-pkg": "^1.0.0" + } + }, + "readable-stream": { + "version": "3.6.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/readable-stream/-/readable-stream-3.6.0.tgz", + "integrity": "sha512-BViHy7LKeTz4oNnkcLJ+lVSL6vpiFeX6/d3oSH8zCW7UxP2onchk+vTGB143xuFjHS3deTgkKoXXymXqymiIdA==", + "requires": { + "inherits": "^2.0.3", + "string_decoder": "^1.1.1", + "util-deprecate": "^1.0.1" + } + }, + "readdir-glob": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/readdir-glob/-/readdir-glob-1.1.1.tgz", + "integrity": "sha512-91/k1EzZwDx6HbERR+zucygRFfiPl2zkIYZtv3Jjr6Mn7SkKcVct8aVO+sSRiGMc6fLf72du3d92/uY63YPdEA==", + "requires": { + "minimatch": "^3.0.4" + } + }, + "rechoir": { + "version": "0.8.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/rechoir/-/rechoir-0.8.0.tgz", + "integrity": "sha512-/vxpCXddiX8NGfGO/mTafwjq4aFa/71pvamip0++IQk3zG8cbCj0fifNPrjjF1XMXUne91jL9OoxmdykoEtifQ==", + "requires": { + "resolve": "^1.20.0" + } + }, + "require-directory": { + "version": "2.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/require-directory/-/require-directory-2.1.1.tgz", + "integrity": "sha1-jGStX9MNqxyXbiNE/+f3kqam30I=" + }, + "require-from-string": { + "version": "2.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/require-from-string/-/require-from-string-2.0.2.tgz", + "integrity": "sha512-Xf0nWe6RseziFMu+Ap9biiUbmplq6S9/p+7w7YXP/JBHhrUDDUhwa+vANyubuqfZWTveU//DYVGsDG7RKL/vEw==" + }, + "require-main-filename": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/require-main-filename/-/require-main-filename-1.0.1.tgz", + "integrity": "sha1-l/cXtp1IeE9fUmpsWqj/3aBVpNE=" + }, + "resolve": { + "version": "1.22.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve/-/resolve-1.22.0.tgz", + "integrity": "sha512-Hhtrw0nLeSrFQ7phPp4OOcVjLPIeMnRlr5mcnVuMe7M/7eBn98A3hmFRLoFo3DLZkivSYwhRUJTyPyWAk56WLw==", + "requires": { + "is-core-module": "^2.8.1", + "path-parse": "^1.0.7", + "supports-preserve-symlinks-flag": "^1.0.0" + } + }, + "resolve-dir": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-dir/-/resolve-dir-1.0.1.tgz", + "integrity": "sha1-eaQGRMNivoLybv/nOcm7U4IEb0M=", + "requires": { + "expand-tilde": "^2.0.0", + "global-modules": "^1.0.0" + } + }, + "resolve-package-path": { + "version": "4.0.3", + "resolved": "https://repo.huaweicloud.com/repository/npm/resolve-package-path/-/resolve-package-path-4.0.3.tgz", + "integrity": "sha512-SRpNAPW4kewOaNUt8VPqhJ0UMxawMwzJD8V7m1cJfdSTK9ieZwS6K7Dabsm4bmLFM96Z5Y/UznrpG5kt1im8yA==", + "requires": { + "path-root": "^0.1.1" + } + }, + "rfdc": { + "version": "1.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/rfdc/-/rfdc-1.3.0.tgz", + "integrity": "sha512-V2hovdzFbOi77/WajaSMXk2OLm+xNIeQdMMuB7icj7bk6zi2F8GGAxigcnDFpJHbNyNcgyJDiP+8nOrY5cZGrA==" + }, + "safe-buffer": { + "version": "5.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/safe-buffer/-/safe-buffer-5.1.2.tgz", + "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==" + }, + "safer-buffer": { + "version": "2.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/safer-buffer/-/safer-buffer-2.1.2.tgz", + "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" + }, + "semver": { + "version": "5.7.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/semver/-/semver-5.7.1.tgz", + "integrity": "sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==" + }, + "set-blocking": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/set-blocking/-/set-blocking-2.0.0.tgz", + "integrity": "sha1-BF+XgtARrppoA93TgrJDkrPYkPc=" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "signal-exit": { + "version": "3.0.7", + "resolved": "https://repo.huaweicloud.com/repository/npm/signal-exit/-/signal-exit-3.0.7.tgz", + "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==" + }, + "spdx-correct": { + "version": "3.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-correct/-/spdx-correct-3.1.1.tgz", + "integrity": "sha512-cOYcUWwhCuHCXi49RhFRCyJEK3iPj1Ziz9DpViV3tbZOwXD49QzIN3MpOLJNxh2qwq2lJJZaKMVw9qNi4jTC0w==", + "requires": { + "spdx-expression-parse": "^3.0.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-exceptions": { + "version": "2.3.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-exceptions/-/spdx-exceptions-2.3.0.tgz", + "integrity": "sha512-/tTrYOC7PPI1nUAgx34hUpqXuyJG+DTHJTnIULG4rDygi4xu/tfgmq1e1cIRwRzwZgo4NLySi+ricLkZkw4i5A==" + }, + "spdx-expression-parse": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-expression-parse/-/spdx-expression-parse-3.0.1.tgz", + "integrity": "sha512-cbqHunsQWnJNE6KhVSMsMeH5H/L9EpymbzqTQ3uLwNCLZ1Q481oWaofqH7nO6V07xlXwY6PhQdQ2IedWx/ZK4Q==", + "requires": { + "spdx-exceptions": "^2.1.0", + "spdx-license-ids": "^3.0.0" + } + }, + "spdx-license-ids": { + "version": "3.0.11", + "resolved": "https://repo.huaweicloud.com/repository/npm/spdx-license-ids/-/spdx-license-ids-3.0.11.tgz", + "integrity": "sha512-Ctl2BrFiM0X3MANYgj3CkygxhRmr9mi6xhejbdO960nF6EDJApTYpn0BQnDKlnNBULKiCN1n3w9EBkHK8ZWg+g==" + }, + "stream-exhaust": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/stream-exhaust/-/stream-exhaust-1.0.2.tgz", + "integrity": "sha512-b/qaq/GlBK5xaq1yrK9/zFcyRSTNxmcZwFLGSTG0mXgZl/4Z6GgiyYOXOvY7N3eEvFRAG1bkDRz5EPGSvPYQlw==" + }, + "streamroller": { + "version": "3.0.8", + "resolved": "https://repo.huaweicloud.com/repository/npm/streamroller/-/streamroller-3.0.8.tgz", + "integrity": "sha512-VI+ni3czbFZrd1MrlybxykWZ8sMDCMtTU7YJyhgb9M5X6d1DDxLdJr+gSnmRpXPMnIWxWKMaAE8K0WumBp3lDg==", + "requires": { + "date-format": "^4.0.9", + "debug": "^4.3.4", + "fs-extra": "^10.1.0" + } + }, + "string-width": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/string-width/-/string-width-1.0.2.tgz", + "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", + "requires": { + "code-point-at": "^1.0.0", + "is-fullwidth-code-point": "^1.0.0", + "strip-ansi": "^3.0.0" + } + }, + "string_decoder": { + "version": "1.1.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/string_decoder/-/string_decoder-1.1.1.tgz", + "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", + "requires": { + "safe-buffer": "~5.1.0" + } + }, + "strip-ansi": { + "version": "3.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-ansi/-/strip-ansi-3.0.1.tgz", + "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", + "requires": { + "ansi-regex": "^2.0.0" + } + }, + "strip-bom": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-bom/-/strip-bom-2.0.0.tgz", + "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", + "requires": { + "is-utf8": "^0.2.0" + } + }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, + "supports-preserve-symlinks-flag": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/supports-preserve-symlinks-flag/-/supports-preserve-symlinks-flag-1.0.0.tgz", + "integrity": "sha512-ot0WnXS9fgdkgIcePe6RHNk1WA8+muPa6cSjeR3V8K27q9BB1rTE3R1p7Hv0z1ZyAc8s6Vvv8DIyWf681MAt0w==" + }, + "tar-stream": { + "version": "2.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/tar-stream/-/tar-stream-2.2.0.tgz", + "integrity": "sha512-ujeqbceABgwMZxEJnk2HDY2DlnUZ+9oEcb1KzTVfYHio0UE6dG71n60d8D2I4qNvleWrrXpmjpt7vZeF1LnMZQ==", + "requires": { + "bl": "^4.0.3", + "end-of-stream": "^1.4.1", + "fs-constants": "^1.0.0", + "inherits": "^2.0.3", + "readable-stream": "^3.1.1" + } + }, + "to-regex-range": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/to-regex-range/-/to-regex-range-5.0.1.tgz", + "integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==", + "requires": { + "is-number": "^7.0.0" + }, + "dependencies": { + "is-number": { + "version": "7.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/is-number/-/is-number-7.0.0.tgz", + "integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==" + } + } + }, + "type": { + "version": "1.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/type/-/type-1.2.0.tgz", + "integrity": "sha512-+5nt5AAniqsCnu2cEQQdpzCAh33kVx8n0VoFidKpB1dVVLAN/F+bgVOqOJqOnEnrhp222clB5p3vUlD+1QAnfg==" + }, + "unc-path-regex": { + "version": "0.1.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/unc-path-regex/-/unc-path-regex-0.1.2.tgz", + "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" + }, + "undertaker": { + "version": "1.2.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/undertaker/-/undertaker-1.2.1.tgz", + "integrity": "sha512-71WxIzDkgYk9ZS+spIB8iZXchFhAdEo2YU8xYqBYJ39DIUIqziK78ftm26eecoIY49X0J2MLhG4hr18Yp6/CMA==", + "requires": { + "arr-flatten": "^1.0.1", + "arr-map": "^2.0.0", + "bach": "^1.0.0", + "collection-map": "^1.0.0", + "es6-weak-map": "^2.0.1", + "last-run": "^1.1.0", + "object.defaults": "^1.0.0", + "object.reduce": "^1.0.0", + "undertaker-registry": "^1.0.0" + } + }, + "undertaker-registry": { + "version": "1.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/undertaker-registry/-/undertaker-registry-1.0.1.tgz", + "integrity": "sha1-XkvaMI5KiirlhPm5pDWaSZglzFA=" + }, + "universalify": { + "version": "2.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/universalify/-/universalify-2.0.0.tgz", + "integrity": "sha512-hAZsKq7Yy11Zu1DE0OzWjw7nnLZmJZYTDZZyEFHZdUhV8FkH5MCfoU1XMaxXovpyW5nq5scPqq0ZDP9Zyl04oQ==" + }, + "uri-js": { + "version": "4.4.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/uri-js/-/uri-js-4.4.1.tgz", + "integrity": "sha512-7rKUyy33Q1yc98pQ1DAmLtwX109F7TIfWlW1Ydo8Wl1ii1SeHieeh0HHfPeL2fMXK6z0s8ecKs9frCuLJvndBg==", + "requires": { + "punycode": "^2.1.0" + } + }, + "util-deprecate": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/util-deprecate/-/util-deprecate-1.0.2.tgz", + "integrity": "sha1-RQ1Nyfpw3nMnYvvS1KKJgUGaDM8=" + }, + "v8flags": { + "version": "3.2.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/v8flags/-/v8flags-3.2.0.tgz", + "integrity": "sha512-mH8etigqMfiGWdeXpaaqGfs6BndypxusHHcv2qSHyZkGEznCd/qAXCWWRzeowtL54147cktFOC4P5y+kl8d8Jg==", + "requires": { + "homedir-polyfill": "^1.0.1" + } + }, + "validate-npm-package-license": { + "version": "3.0.4", + "resolved": "https://repo.huaweicloud.com/repository/npm/validate-npm-package-license/-/validate-npm-package-license-3.0.4.tgz", + "integrity": "sha512-DpKm2Ui/xN7/HQKCtpZxoRWBhZ9Z0kqtygG8XCgNQ8ZlDnxuQmWhj566j8fN4Cu3/JmbhsDo7fcAJq4s9h27Ew==", + "requires": { + "spdx-correct": "^3.0.0", + "spdx-expression-parse": "^3.0.0" + } + }, + "which": { + "version": "1.3.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/which/-/which-1.3.1.tgz", + "integrity": "sha512-HxJdYWq1MTIQbJ3nw0cqssHoTNU267KlrDuGZ1WYlxDStUtKUhOaJmh112/TZmHxxUfuJqPXSOm7tDyas0OSIQ==", + "requires": { + "isexe": "^2.0.0" + } + }, + "which-module": { + "version": "1.0.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/which-module/-/which-module-1.0.0.tgz", + "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=" + }, + "wrap-ansi": { + "version": "2.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrap-ansi/-/wrap-ansi-2.1.0.tgz", + "integrity": "sha1-2Pw9KE3QV5T+hJc8rs3Rz4JP3YU=", + "requires": { + "string-width": "^1.0.1", + "strip-ansi": "^3.0.1" + } + }, + "wrappy": { + "version": "1.0.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/wrappy/-/wrappy-1.0.2.tgz", + "integrity": "sha1-tSQ9jz7BqjXxNkYFvA0QNuMKtp8=" + }, + "y18n": { + "version": "3.2.2", + "resolved": "https://repo.huaweicloud.com/repository/npm/y18n/-/y18n-3.2.2.tgz", + "integrity": "sha512-uGZHXkHnhF0XeeAPgnKfPv1bgKAYyVvmNL1xlKsPYZPaIHxGti2hHqvOCQv71XMsLxu1QjergkqogUnms5D3YQ==" + }, + "yargs": { + "version": "7.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/yargs/-/yargs-7.1.0.tgz", + "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", + "requires": { + "camelcase": "^3.0.0", + "cliui": "^3.2.0", + "decamelize": "^1.1.1", + "get-caller-file": "^1.0.1", + "os-locale": "^1.4.0", + "read-pkg-up": "^1.0.1", + "require-directory": "^2.1.1", + "require-main-filename": "^1.0.1", + "set-blocking": "^2.0.0", + "string-width": "^1.0.2", + "which-module": "^1.0.0", + "y18n": "^3.2.1", + "yargs-parser": "^5.0.0" + } + }, + "yargs-parser": { + "version": "5.0.1", + "resolved": "https://repo.huaweicloud.com/repository/npm/yargs-parser/-/yargs-parser-5.0.1.tgz", + "integrity": "sha512-wpav5XYiddjXxirPoCTUPbqM0PXvJ9hiBMvuJgInvo4/lAOTZzUprArw17q2O1P2+GHhbBr18/iQwjL5Z9BqfA==", + "requires": { + "camelcase": "^3.0.0", + "object.assign": "^4.1.0" + } + }, + "zip-stream": { + "version": "4.1.0", + "resolved": "https://repo.huaweicloud.com/repository/npm/zip-stream/-/zip-stream-4.1.0.tgz", + "integrity": "sha512-zshzwQW7gG7hjpBlgeQP9RuyPGNxvJdzR8SUM3QhxCnLjWN2E7j3dOvpeDcQoETfHx0urRS7EtmVToql7YpU4A==", + "requires": { + "archiver-utils": "^2.1.0", + "compress-commons": "^4.1.0", + "readable-stream": "^3.6.0" + } + } + } +} diff --git a/package.json b/package.json new file mode 100644 index 0000000..780593b --- /dev/null +++ b/package.json @@ -0,0 +1,18 @@ +{ + "name": "wheelpicker", + "version": "1.0.0", + "ohos": { + "org": "huawei", + "buildTool": "hvigor", + "directoryLevel": "project" + }, + "description": "example description", + "repository": {}, + "license": "ISC", + "dependencies": { + "@ohos/hvigor": "1.0.6", + "@ohos/hvigor-ohos-plugin": "1.0.6", + "@ohos/wheelpicker": "file:./wheelpicker", + "hypium": "^1.0.0" + } +} diff --git a/wheelpicker/build-profile.json5 b/wheelpicker/build-profile.json5 new file mode 100644 index 0000000..f1d2f01 --- /dev/null +++ b/wheelpicker/build-profile.json5 @@ -0,0 +1,5 @@ +{ + "apiType": "faMode", + "buildOption": { + } +} diff --git a/wheelpicker/build/default/intermediates/merge_profile/default/config.json b/wheelpicker/build/default/intermediates/merge_profile/default/config.json new file mode 100644 index 0000000..375a1e7 --- /dev/null +++ b/wheelpicker/build/default/intermediates/merge_profile/default/config.json @@ -0,0 +1,33 @@ +{ + "app": { + "bundleName": "com.example.wheelpicker", + "vendor": "example", + "version": { + "code": 1000000, + "name": "1.0.0" + }, + "apiVersion": { + "target": 8, + "compatible": 8, + "releaseType": "Release" + } + }, + "deviceConfig": { + "default": { + "debug": true + } + }, + "module": { + "package": "com.example.wheelpicker", + "deviceType": [ + "phone", + "tablet" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "wheelpicker", + "moduleType": "har" + }, + "uiSyntax": "ets" + } +} diff --git a/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json b/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json new file mode 100644 index 0000000..3cbdbcf --- /dev/null +++ b/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json @@ -0,0 +1 @@ +{"dependencies":[],"local":{"path":[],"name":[]}} diff --git a/wheelpicker/build/default/intermediates/process_profile/default/config.json b/wheelpicker/build/default/intermediates/process_profile/default/config.json new file mode 100644 index 0000000..f66bc40 --- /dev/null +++ b/wheelpicker/build/default/intermediates/process_profile/default/config.json @@ -0,0 +1 @@ +{"app":{"bundleName":"com.example.wheelpicker","vendor":"example","version":{"code":1000000,"name":"1.0.0"},"apiVersion":{"target":8,"compatible":8,"releaseType":"Release"}},"deviceConfig":{"default":{"debug":true}},"module":{"package":"com.example.wheelpicker","deviceType":["phone","tablet"],"distro":{"deliveryWithInstall":true,"moduleName":"wheelpicker","moduleType":"har","virtualMachine":"ark"},"uiSyntax":"ets"}} diff --git a/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt b/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt new file mode 100644 index 0000000..9e6c072 --- /dev/null +++ b/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt @@ -0,0 +1,26 @@ +string MainAbility_desc 0x01000000 +string MainAbility_label 0x01000001 +string birthday_picker 0x01000002 +string blank_area_click 0x01000003 +string cancel 0x01000004 +string constellation_picker 0x01000005 +string entry_desc 0x01000006 +string ethnic_picker 0x01000007 +string first_button_click 0x01000008 +string float_picker 0x01000009 +string gender_picker 0x0100000a +string household_items_picker 0x0100000b +string integer_picker 0x0100000c +string month_day_picker 0x0100000d +string ok 0x0100000e +string option_text_picker 0x0100000f +string page_show 0x01000010 +string phone_code_picker 0x01000011 +string second_button_click 0x01000012 +string time_selectio_12_picker 0x01000013 +string time_selection_24_picker 0x01000014 +string title 0x01000015 +string wheel_pickers 0x01000016 +string year_month_day_picker 0x01000017 +string year_month_day_time_picker 0x01000018 +string year_month_picker 0x01000019 \ No newline at end of file diff --git a/wheelpicker/build/default/intermediates/res/default/config.json b/wheelpicker/build/default/intermediates/res/default/config.json new file mode 100644 index 0000000..dbd5071 --- /dev/null +++ b/wheelpicker/build/default/intermediates/res/default/config.json @@ -0,0 +1,42 @@ +{ + "app" : + { + "apiVersion" : + { + "compatible" : 8, + "releaseType" : "Release", + "target" : 8 + }, + "bundleName" : "com.example.wheelpicker", + "vendor" : "example", + "version" : + { + "code" : 1000000, + "name" : "1.0.0" + } + }, + "deviceConfig" : + { + "default" : + { + "debug" : true + } + }, + "module" : + { + "deviceType" : + [ + "phone", + "tablet" + ], + "distro" : + { + "deliveryWithInstall" : true, + "moduleName" : "wheelpicker", + "moduleType" : "har", + "virtualMachine" : "ark" + }, + "package" : "com.example.wheelpicker", + "uiSyntax" : "ets" + } +} \ No newline at end of file diff --git a/wheelpicker/build/default/intermediates/res/default/resources.index b/wheelpicker/build/default/intermediates/res/default/resources.index new file mode 100644 index 0000000000000000000000000000000000000000..4ba282337a8c5753230d74134fdb2191baf3a625 GIT binary patch literal 3128 zcmcguT}&KR6h31W6v|KeS!`|0Sgk+B7}%iJ>Pt(j64KB}qc$;_%YC| zeMO`^*R}QVQ%z0J(*OT=a3|3Ygl#`|s`CdKp5K4LyC&C;$n8%+pk(p4h}w>JcJjI! zV*9S#dUwu7o4}gYe**IBUw9yn_7EO-1G|Cu0M7zTfVY69z%=k)U=5V+0~)|G;1IAJ zxBx`T+TXwmpbjUMz;<92&;;%Rjst6eKLcxldk~}!_$sg-cpex6&H@{NzXR_FRwD`2 zpmhMbK2^`#oE$!11G%1Gfk;*R2Z&U(Lr5B-wAX=frJVz^$t(~b?GHS-o_%<5Jsm)< z=N%x|vkc^VvOun97nHc3Mj+P{19CkRK(6OcAlI`OPPm>ofLu=>kn6bu6Z_CKegJB>Rw#vQPZ{~NLsg?U>&hdr$;xF!bEn#!r+AwWeeIPy>P2asnv9%NUxNl zxtC|;E;q2AT3sjQ3EMWgRFzmgMGM6$yN9JEw|wIfm6LG1q&%F*r5aB}B^~qPjulm& zD@g=v<+4rc^3)tasiQbg5X`ndd zf;S9{HW*CQBj zzCJssqX+lX?V+%g@@1-}j$nTElj6qY%2$)L;;UCfC*rOn^j0?}RCP6! zV3`qxOxd(c8@{HEMH-h97@=5^&ec(FYh&vUN_TwQ>*%D_EA&obi)b*F&Ea?w_uGTi zNJ**D99F5Q1~Efyu?@GtcK1eG#|XD5W6(x$j!Y{h2<+Jcl;#Dfri7`cl3t4oVap>) zfwnNC!j^7Q)GYll9aYgOVJ7u_|3cIUfw85D&r2ibuDVS|Iv)Z(u-P&=1j!bPvY7J9 z3(P@91@WY^qAY|2DWpe6)^5!eqqhArC#E*&T^`7M_v3%yw#?{cdi-j(e<=OYb^p>- z5pGj$Vs6_@nfI3bft#7@%b80n{_wItIhpzN1OKxx*5=;7Go|?>7t)J^c}i1<&y-e8 z>5G&8^0j;_w_&pfWueSw>j$!d$kgR!B7@txkJIBLdAFOX?6CC5RJM=&b7NfJ^z`bD z{?!}bq=$#HpUkAk7xPsXr7+b}rZ9wDnDIZH%7@&-BP z{n^aulz;x+yv=QStWg%nJcdwX^XajI#l0 z$7D~-9cHo+AyoFtQu@L`dSW^swkVmkNJA#G5M@Re)@DCnz4=wtd)>qHjZ+w7MY z*O^T9gPE+1PjhW$hHvR+7E`}hn8nJ-Uz(S#yB&cYl0likYFS^0fsSV5pG)7KzZBIl Mf1&$9w4&VgFEwf;vH$=8 literal 0 HcmV?d00001 diff --git a/wheelpicker/hvigorfile.js b/wheelpicker/hvigorfile.js new file mode 100644 index 0000000..21f60d3 --- /dev/null +++ b/wheelpicker/hvigorfile.js @@ -0,0 +1,3 @@ +// Script for compiling build behavior. It is built in the build plug-in and cannot be modified currently. +module.exports = require('@ohos/hvigor-ohos-plugin').legacyHarTasks + diff --git a/wheelpicker/index.ets b/wheelpicker/index.ets new file mode 100644 index 0000000..bc27afe --- /dev/null +++ b/wheelpicker/index.ets @@ -0,0 +1,9 @@ + +export { SingleOptionDialog } from "./src/main/ets/components/singleOptionPicker" +export { TimeSelection12 } from "./src/main/ets/components/time12Picker" +export { TimeSelection24 } from "./src/main/ets/components/time24Picker" +export { BirthdayDialog } from "./src/main/ets/components/birthdayPicker" +export { MonthDayDialog } from "./src/main/ets/components/monthDayPicker" +export { YearMonthDialog } from "./src/main/ets/components/yearMonthPicker" +export { YearMonthDayDialog } from "./src/main/ets/components/yearMonthDayPicker" +export { YearMonthDayTimeDialog } from "./src/main/ets/components/yearMonthDayTimePicker" \ No newline at end of file diff --git a/wheelpicker/package-lock.json b/wheelpicker/package-lock.json new file mode 100644 index 0000000..11dd0ac --- /dev/null +++ b/wheelpicker/package-lock.json @@ -0,0 +1,5 @@ +{ + "name": "@ohos/wheelpicker", + "version": "1.0.0", + "lockfileVersion": 1 +} diff --git a/wheelpicker/package.json b/wheelpicker/package.json new file mode 100644 index 0000000..d60217b --- /dev/null +++ b/wheelpicker/package.json @@ -0,0 +1,14 @@ +{ + "name": "@ohos/wheelpicker", + "description": "a npm package which contains arkUI2.0 page", + "ohos": { + "org": "" + }, + "version": "1.0.0", + "main": "index.ets", + "types": "", + "repository": {}, + "author": "Susanto Mahato", + "license": "ISC", + "dependencies": {} +} diff --git a/wheelpicker/src/main/config.json b/wheelpicker/src/main/config.json new file mode 100644 index 0000000..125e1eb --- /dev/null +++ b/wheelpicker/src/main/config.json @@ -0,0 +1,24 @@ +{ + "app": { + "bundleName": "com.example.wheelpicker", + "vendor": "example", + "version": { + "code": 1000000, + "name": "1.0.0" + } + }, + "deviceConfig": {}, + "module": { + "package": "com.example.wheelpicker", + "deviceType": [ + "phone", + "tablet" + ], + "distro": { + "deliveryWithInstall": true, + "moduleName": "wheelpicker", + "moduleType": "har" + }, + "uiSyntax": "ets" + } +} diff --git a/wheelpicker/src/main/ets/components/birthdayPicker.ets b/wheelpicker/src/main/ets/components/birthdayPicker.ets new file mode 100644 index 0000000..b997535 --- /dev/null +++ b/wheelpicker/src/main/ets/components/birthdayPicker.ets @@ -0,0 +1,107 @@ +@CustomDialog +export struct BirthdayDialog { + controller: CustomDialogController + @State model: BirthdayDialog.Model = new BirthdayDialog.Model(); + cancel: () => void + confirm: () => void + @State select: number = 1 + dates: string[] = this.model.dates + months: string[] = this.model.months + years: string[] = this.model.years + selectedDate: string = this.model.selectedDate + selectedMonth: string = this.model.selectedMonth + selectedYear: string = this.model.selectedYear + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + + build() { + Column() { + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title")).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({justifyContent: FlexAlign.SpaceBetween}){ + TextPicker({range: this.years ? this.years : [], selected: this.select}) + .width(this.firstPickerWidth ? this.firstPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedYear = value + }) + TextPicker({range: this.months ? this.months : [], selected: this.select}) + .width(this.secondPickerWidth ? this.secondPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedMonth = value + }) + TextPicker({range: this.dates ? this.dates : [], selected: this.select}) + .width(this.thirdPickerWidth ? this.thirdPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedDate = value + }) + } + } + } +} +export namespace BirthdayDialog { + export class Model { + height: number + dates: string[] + months: string[] + years: string[] + selectedDate: string + selectedMonth: string + selectedYear: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} \ No newline at end of file diff --git a/wheelpicker/src/main/ets/components/monthDayPicker.ets b/wheelpicker/src/main/ets/components/monthDayPicker.ets new file mode 100644 index 0000000..e828dc8 --- /dev/null +++ b/wheelpicker/src/main/ets/components/monthDayPicker.ets @@ -0,0 +1,111 @@ +@CustomDialog +export struct MonthDayDialog { + controller: CustomDialogController + @State model: MonthDayDialog.Model = new MonthDayDialog.Model(); + cancel: () => void + confirm: () => void + @State monthSelect: number = 1 + @State daySelect: number = 1 + month: string[] = this.model.month + day: string[] = this.model.day + selectedMonth: string = this.model.selectedMonth + selectedDay: string = this.model.selectedDay + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + build() { + Column() { + + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title") ).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.month ? this.month : [], selected: this.monthSelect }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedMonth = value + this.monthSelect = index + }) + + TextPicker({ range: this.day ? this.day : [], selected: this.daySelect }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + if(this.monthSelect === 1){ + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] + }else if(this.monthSelect === 0 || this.monthSelect === 2 || this.monthSelect === 4 || this.monthSelect === 6 || this.monthSelect === 7 || this.monthSelect === 9 || this.monthSelect === 11) { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"] + } else { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"] + } + this.selectedDay = value + this.daySelect = index + }) + + } + } + } +} +export namespace MonthDayDialog { + export class Model { + height: number + monthSelect: number + daySelect: number + month: string[] + day: string[] + selectedMonth: string + selectedDay: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} diff --git a/wheelpicker/src/main/ets/components/singleOptionPicker.ets b/wheelpicker/src/main/ets/components/singleOptionPicker.ets new file mode 100644 index 0000000..9bc02de --- /dev/null +++ b/wheelpicker/src/main/ets/components/singleOptionPicker.ets @@ -0,0 +1,72 @@ +@CustomDialog +export struct SingleOptionDialog { + controller: CustomDialogController + @State model: SingleOptionDialog.Model = new SingleOptionDialog.Model(); + cancel: () => void + confirm: () => void + select: number = 1 + options: string[] = this.model.options + selectedValue: string = this.model.selectedValue + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + + + build() { + Column() { + + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel") ) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title") ).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: 10 }) + + TextPicker({range: this.options ? this.options : ["try"] , selected: this.select}).height(this.pickerHeight ? this.pickerHeight : "200VP" ).onChange((value: string) => { + this.selectedValue = value + }) + } + } +} +export namespace SingleOptionDialog { + export class Model { + options: string[] + height: number + selectedValue: string + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + + reset() : Model { + this.options = null + this.height = 0 + + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} \ No newline at end of file diff --git a/wheelpicker/src/main/ets/components/time12Picker.ets b/wheelpicker/src/main/ets/components/time12Picker.ets new file mode 100644 index 0000000..13e382e --- /dev/null +++ b/wheelpicker/src/main/ets/components/time12Picker.ets @@ -0,0 +1,109 @@ +@CustomDialog +export struct TimeSelection12 { + controller: CustomDialogController + @State model: TimeSelection12.Model = new TimeSelection12.Model(); + cancel: () => void + confirm: () => void + @State select: number = 1 + hour: string[] = this.model.hour + minutes: string[] = this.model.minutes + zone: string[] = this.model.zone + selectedHour: string = this.model.selectedHour + selectedMinutes: string = this.model.selectedMinutes + selectedZone: string = this.model.selectedZone + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + build() { + Column() { + + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel") ) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title")).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.hour ? this.hour : [], selected: this.select }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedHour = value + }) + Text(":").fontSize("20FP").fontWeight(600) + TextPicker({ range: this.minutes ? this.minutes : [], selected: this.select }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedMinutes = value + }) + TextPicker({ range: this.zone ? this.zone : [], selected: this.select }) + .width(this.thirdPickerWidth ? this.thirdPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedZone = value + }) + } + } + } +} +export namespace TimeSelection12 { + export class Model { + height: number + hour: string[] + minutes: string[] + zone: string[] + selectedHour: string + selectedMinutes: string + selectedZone: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} diff --git a/wheelpicker/src/main/ets/components/time24Picker.ets b/wheelpicker/src/main/ets/components/time24Picker.ets new file mode 100644 index 0000000..076e4d9 --- /dev/null +++ b/wheelpicker/src/main/ets/components/time24Picker.ets @@ -0,0 +1,110 @@ +@CustomDialog +export struct TimeSelection24 { + controller: CustomDialogController + @State model: TimeSelection24.Model = new TimeSelection24.Model(); + cancel: () => void + confirm: () => void + @State select: number = 1 + hour: string[] = this.model.hour + minutes: string[] = this.model.minutes + seconds: string[] = this.model.seconds + selectedHour: string = this.model.selectedHour + selectedMinutes: string = this.model.selectedMinutes + selectedSecond: string = this.model.selectedSecond + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + build() { + Column() { + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title")).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.hour ? this.hour : ["00"], selected: this.select }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedHour = value + }) + Text("hr").fontSize("20FP") + TextPicker({ range: this.minutes ? this.minutes : ["00"], selected: this.select }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedMinutes = value + }) + Text("min").fontSize("20FP") + TextPicker({ range: this.seconds ? this.seconds : ["00"], selected: this.select }) + .width(this.thirdPickerWidth ? this.thirdPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string) => { + this.selectedSecond = value + }) + Text("sec").fontSize("20FP") + } + } + } +} +export namespace TimeSelection24 { + export class Model { + height: number + hour: string[] + minutes: string[] + seconds: string[] + selectedHour: string + selectedMinutes: string + selectedSecond: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} \ No newline at end of file diff --git a/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets b/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets new file mode 100644 index 0000000..4915a26 --- /dev/null +++ b/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets @@ -0,0 +1,126 @@ +@CustomDialog +export struct YearMonthDayDialog { + controller: CustomDialogController + @State model: YearMonthDayDialog.Model = new YearMonthDayDialog.Model(); + cancel: () => void + confirm: () => void + @State yearSelect: number = 1 + @State monthSelect: number = 1 + @State daySelect: number = 1 + year: string[] = this.model.year + month: string[] = this.model.month + day: string[] = this.model.day + selectedYear: string = this.model.selectedYear + selectedMonth: string = this.model.selectedMonth + selectedDay: string = this.model.selectedDay + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + build() { + Column() { + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title") ).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.year ? this.year : [], selected: this.yearSelect }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "60VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedYear = value + this.yearSelect = index + }) + + Text("year").fontSize("16FP") + + TextPicker({ range: this.month ? this.month : [], selected: this.monthSelect }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "60VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedMonth = value + this.monthSelect = index + }) + + Text("month").fontSize("16FP") + + TextPicker({ range: this.day ? this.day : [], selected: this.daySelect }) + .width(this.thirdPickerWidth ? this.thirdPickerWidth : "60VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + if(this.monthSelect === 1){ + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] + }else if(this.monthSelect === 0 || this.monthSelect === 2 || this.monthSelect === 4 || this.monthSelect === 6 || this.monthSelect === 7 || this.monthSelect === 9 || this.monthSelect === 11) { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"] + } else { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"] + } + this.selectedDay = value + this.daySelect = index + }) + + Text("day").fontSize("16FP") + + } + } + } +} +export namespace YearMonthDayDialog { + export class Model { + height: number + year: string[] + month: string[] + day: string[] + selectedYear: string + selectedMonth: string + selectedDay: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} diff --git a/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets b/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets new file mode 100644 index 0000000..7495198 --- /dev/null +++ b/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets @@ -0,0 +1,160 @@ +@CustomDialog +export struct YearMonthDayTimeDialog { + controller: CustomDialogController + @State model: YearMonthDayTimeDialog.Model = new YearMonthDayTimeDialog.Model(); + cancel: () => void + confirm: () => void + @State yearSelect: number = 1 + @State monthSelect: number = 1 + @State daySelect: number = 1 + @State hourSelect: number = 1 + @State minuteSelect: number = 1 + year: string[] = this.model.year + month: string[] = this.model.month + day: string[] = this.model.day + hour: string[] = this.model.hour + minutes: string[] = this.model.minutes + selectedYear: string = this.model.selectedYear + selectedMonth: string = this.model.selectedMonth + selectedDay: string = this.model.selectedDay + selectedHour: string = this.model.selectedHour + selectedMinutes: string = this.model.selectedMinutes + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + + build() { + Column() { + + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title") ).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.year ? this.year : [], selected: this.yearSelect }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "60VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedYear = value + this.yearSelect = index + }) + + Text("yr").fontSize("15FP") + + TextPicker({ range: this.month ? this.month : [], selected: this.monthSelect }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "40VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedMonth = value + this.monthSelect = index + + }) + + Text("mon").fontSize("15FP") + + TextPicker({ range: this.day ? this.day : [], selected: this.daySelect }) + .width(this.thirdPickerWidth ? this.thirdPickerWidth : "40VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + if(this.monthSelect === 1){ + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28"] + }else if(this.monthSelect === 0 || this.monthSelect === 2 || this.monthSelect === 4 || this.monthSelect === 6 || this.monthSelect === 7 || this.monthSelect === 9 || this.monthSelect === 11) { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30","31"] + } else { + this.day = ["1","2","3","4","5","6","7","8","9","10","11","12","13","14","15","16","17","18","19","20","21","22","23","24","25","26","27","28","29","30"] + } + this.selectedDay = value + this.daySelect = index + }) + + Text("day").fontSize("15FP") + + TextPicker({ range: this.hour ? this.hour : [], selected: this.hourSelect }) + .width(this.fourthPickerWidth ? this.fourthPickerWidth : "40VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedHour = value + this.hourSelect = index + }) + + Text("hr").fontSize("15FP") + + TextPicker({ range: this.minutes ? this.minutes : [], selected: this.minuteSelect }) + .width(this.fifthPickerWidth ? this.fifthPickerWidth : "40VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedMinutes = value + this.minuteSelect = index + }) + + Text("min").fontSize("15FP") + + } + } + } +} +export namespace YearMonthDayTimeDialog { + export class Model { + height: number + year: string[] + month: string[] + day: string[] + hour: string[] + minutes: string[] + selectedYear: string + selectedMonth: string + selectedDay: string + selectedHour: string + selectedMinutes: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset(): Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} diff --git a/wheelpicker/src/main/ets/components/yearMonthPicker.ets b/wheelpicker/src/main/ets/components/yearMonthPicker.ets new file mode 100644 index 0000000..c7e9227 --- /dev/null +++ b/wheelpicker/src/main/ets/components/yearMonthPicker.ets @@ -0,0 +1,102 @@ +@CustomDialog +export struct YearMonthDialog { + controller: CustomDialogController + @State model: YearMonthDialog.Model = new YearMonthDialog.Model(); + cancel: () => void + confirm: () => void + @State select: number = 1 + year: string[] = this.model.year + month: string[] = this.model.month + selectedYear: string = this.model.selectedYear + selectedMonth: string = this.model.selectedMonth + + leftButtonString: string = this.model.leftButtonString + leftButtonBgColor: number = this.model.leftButtonBgColor + leftButtonTextColor: string = this.model.leftButtonTextColor + rightButtonString: string = this.model.rightButtonString + rightButtonBgColor: number = this.model.rightButtonBgColor + rightButtonTextColor: string = this.model.rightButtonTextColor + pickerTitle: string = this.model.pickerTitle + pickerTitleFontSize: string = this.model.pickerTitleFontSize + pickerHeight: string = this.model.pickerHeight + firstPickerWidth: string = this.model.firstPickerWidth + secondPickerWidth: string = this.model.secondPickerWidth + thirdPickerWidth: string = this.model.thirdPickerWidth + fourthPickerWidth: string = this.model.fourthPickerWidth + fifthPickerWidth: string = this.model.fifthPickerWidth + + build() { + Column() { + Flex({ justifyContent: FlexAlign.SpaceAround }) { + Button(this.leftButtonString ? this.leftButtonString : $r("app.string.cancel")) + .onClick(() => { + this.controller.close() + this.cancel() + }).backgroundColor(this.leftButtonBgColor ? this.leftButtonBgColor : 0xffffff ).fontColor(this.leftButtonTextColor ? this.leftButtonTextColor : "#171717" ) + Text(this.pickerTitle ? this.pickerTitle : $r("app.string.title") ).fontSize(this.pickerTitleFontSize ? this.pickerTitleFontSize : "20FP" ).padding({top: "12VP"}) + Button(this.rightButtonString ? this.rightButtonString : $r("app.string.ok") ) + .onClick(() => { + this.controller.close() + this.confirm() + }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) + }.margin({ bottom: "10VP" }) + + Flex({ justifyContent: FlexAlign.Center, alignItems: ItemAlign.Center }) { + TextPicker({ range: this.year ? this.year : [], selected: this.select }) + .width(this.firstPickerWidth ? this.firstPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedYear = value + }) + + Text("Year").fontSize("18FP") + + TextPicker({ range: this.month ? this.month : [], selected: this.select }) + .width(this.secondPickerWidth ? this.secondPickerWidth : "80VP" ) + .height(this.pickerHeight ? this.pickerHeight : "200VP" ) + .onChange((value: string, index: number) => { + this.selectedMonth = value + }) + + Text("Month").fontSize("18FP") + + } + } + } +} +export namespace YearMonthDialog { + export class Model { + height: number + year: string[] + month: string[] + selectedMonth: string + selectedYear: string + + leftButtonString: string + rightButtonString: string + pickerTitle: string + pickerTitleFontSize: string + leftButtonBgColor: number + leftButtonTextColor: string + rightButtonBgColor: number + rightButtonTextColor: string + pickerHeight: string + + firstPickerWidth: string + secondPickerWidth: string + thirdPickerWidth: string + fourthPickerWidth: string + fifthPickerWidth: string + + + reset() : Model { + this.height = 0 + return this + } + + setScrollHeight(height: number): Model { + this.height = height + return this + } + } +} diff --git a/wheelpicker/src/main/resources/base/element/string.json b/wheelpicker/src/main/resources/base/element/string.json new file mode 100644 index 0000000..78fe302 --- /dev/null +++ b/wheelpicker/src/main/resources/base/element/string.json @@ -0,0 +1,8 @@ +{ + "string": [ + { + "name": "page_show", + "value": "page from npm package" + } + ] +} diff --git a/wheelpicker/src/main/resources/en/element/string.json b/wheelpicker/src/main/resources/en/element/string.json new file mode 100644 index 0000000..2d66dc6 --- /dev/null +++ b/wheelpicker/src/main/resources/en/element/string.json @@ -0,0 +1,104 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "description" + }, + { + "name": "MainAbility_desc", + "value": "description" + }, + { + "name": "MainAbility_label", + "value": "label" + }, + { + "name": "cancel", + "value": "Cancel" + }, + { + "name": "ok", + "value": "Ok" + }, + { + "name": "title", + "value": "Title" + }, + { + "name": "first_button_click", + "value": "Callback when the first button is clicked" + }, + { + "name": "second_button_click", + "value": "Callback when the second button is clicked" + }, + { + "name": "blank_area_click", + "value": "Click the callback in the blank area" + }, + { + "name": "wheel_pickers", + "value": "Wheel Pickers" + }, + { + "name": "integer_picker", + "value": "Integer Picker" + }, + { + "name": "float_picker", + "value": "Float Picker" + }, + { + "name": "option_text_picker", + "value": "Option Text Picker" + }, + { + "name": "household_items_picker", + "value": "Houshold Items Picker" + }, + { + "name": "gender_picker", + "value": "Gender Picker" + }, + { + "name": "ethnic_picker", + "value": "Ethnic Picker" + }, + { + "name": "constellation_picker", + "value": "Constellation Picker" + }, + { + "name": "phone_code_picker", + "value": "Phone Code Picker" + }, + { + "name": "birthday_picker", + "value": "Birthday Picker" + }, + { + "name": "time_selection_24_picker", + "value": "Time Selection 24hr" + }, + { + "name": "time_selectio_12_picker", + "value": "Time Selection 12hr" + }, + { + "name": "month_day_picker", + "value": "Month Day" + }, + { + "name": "year_month_picker", + "value": "Year Month" + }, + { + "name": "year_month_day_picker", + "value": "Year Month Day" + }, + { + "name": "year_month_day_time_picker", + "value": "Year Month Day Time" + } + ] +} \ No newline at end of file diff --git a/wheelpicker/src/main/resources/zh/element/string.json b/wheelpicker/src/main/resources/zh/element/string.json new file mode 100644 index 0000000..b06f314 --- /dev/null +++ b/wheelpicker/src/main/resources/zh/element/string.json @@ -0,0 +1,104 @@ +{ + "string": [ + { + "name": "entry_desc", + "value": "描述" + }, + { + "name": "MainAbility_desc", + "value": "描述" + }, + { + "name": "MainAbility_label", + "value": "标签" + }, + { + "name": "cancel", + "value": "取消" + }, + { + "name": "ok", + "value": "好的" + }, + { + "name": "title", + "value": "标题" + }, + { + "name": "first_button_click", + "value": "单击第一个按钮时的回调" + }, + { + "name": "second_button_click", + "value": "单击第二个按钮时的回调" + }, + { + "name": "blank_area_click", + "value": "点击空白区域的回调" + }, + { + "name": "wheel_pickers", + "value": "选轮器" + }, + { + "name": "integer_picker", + "value": "整数选择器" + }, + { + "name": "float_picker", + "value": "浮动选择器" + }, + { + "name": "option_text_picker", + "value": "选项文本选择器" + }, + { + "name": "household_items_picker", + "value": "家居用品选择器" + }, + { + "name": "gender_picker", + "value": "性别选择器" + }, + { + "name": "ethnic_picker", + "value": "民族选择器" + }, + { + "name": "constellation_picker", + "value": "星座选择器" + }, + { + "name": "phone_code_picker", + "value": "电话代码选择器" + }, + { + "name": "birthday_picker", + "value": "生日选择器" + }, + { + "name": "time_selection_24_picker", + "value": "时间选择 24 小时" + }, + { + "name": "time_selectio_12_picker", + "value": "时间选择 12hr" + }, + { + "name": "month_day_picker", + "value": "月日" + }, + { + "name": "year_month_picker", + "value": "年月" + }, + { + "name": "year_month_day_picker", + "value": "年月日" + }, + { + "name": "year_month_day_time_picker", + "value": "年 月 日 时间" + } + ] +} \ No newline at end of file From 8227b3097d6a2924c3ccc05bae238078393f5728 Mon Sep 17 00:00:00 2001 From: Susanto <51540113+nerdyspook@users.noreply.github.com> Date: Mon, 13 Jun 2022 17:26:28 +0530 Subject: [PATCH 2/4] Add files via upload --- LICENSE | 201 ++++++++++++++++++++++++++++++++++++++++++++++ README.OpenSource | 11 +++ 2 files changed, 212 insertions(+) create mode 100644 LICENSE create mode 100644 README.OpenSource diff --git a/LICENSE b/LICENSE new file mode 100644 index 0000000..d345f84 --- /dev/null +++ b/LICENSE @@ -0,0 +1,201 @@ + Apache License + Version 2.0, January 2004 + http://www.apache.org/licenses/ + + TERMS AND CONDITIONS FOR USE, REPRODUCTION, AND DISTRIBUTION + + 1. Definitions. + + "License" shall mean the terms and conditions for use, reproduction, + and distribution as defined by Sections 1 through 9 of this document. + + "Licensor" shall mean the copyright owner or entity authorized by + the copyright owner that is granting the License. + + "Legal Entity" shall mean the union of the acting entity and all + other entities that control, are controlled by, or are under common + control with that entity. For the purposes of this definition, + "control" means (i) the power, direct or indirect, to cause the + direction or management of such entity, whether by contract or + otherwise, or (ii) ownership of fifty percent (50%) or more of the + outstanding shares, or (iii) beneficial ownership of such entity. + + "You" (or "Your") shall mean an individual or Legal Entity + exercising permissions granted by this License. + + "Source" form shall mean the preferred form for making modifications, + including but not limited to software source code, documentation + source, and configuration files. + + "Object" form shall mean any form resulting from mechanical + transformation or translation of a Source form, including but + not limited to compiled object code, generated documentation, + and conversions to other media types. + + "Work" shall mean the work of authorship, whether in Source or + Object form, made available under the License, as indicated by a + copyright notice that is included in or attached to the work + (an example is provided in the Appendix below). + + "Derivative Works" shall mean any work, whether in Source or Object + form, that is based on (or derived from) the Work and for which the + editorial revisions, annotations, elaborations, or other modifications + represent, as a whole, an original work of authorship. For the purposes + of this License, Derivative Works shall not include works that remain + separable from, or merely link (or bind by name) to the interfaces of, + the Work and Derivative Works thereof. + + "Contribution" shall mean any work of authorship, including + the original version of the Work and any modifications or additions + to that Work or Derivative Works thereof, that is intentionally + submitted to Licensor for inclusion in the Work by the copyright owner + or by an individual or Legal Entity authorized to submit on behalf of + the copyright owner. For the purposes of this definition, "submitted" + means any form of electronic, verbal, or written communication sent + to the Licensor or its representatives, including but not limited to + communication on electronic mailing lists, source code control systems, + and issue tracking systems that are managed by, or on behalf of, the + Licensor for the purpose of discussing and improving the Work, but + excluding communication that is conspicuously marked or otherwise + designated in writing by the copyright owner as "Not a Contribution." + + "Contributor" shall mean Licensor and any individual or Legal Entity + on behalf of whom a Contribution has been received by Licensor and + subsequently incorporated within the Work. + + 2. Grant of Copyright License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + copyright license to reproduce, prepare Derivative Works of, + publicly display, publicly perform, sublicense, and distribute the + Work and such Derivative Works in Source or Object form. + + 3. Grant of Patent License. Subject to the terms and conditions of + this License, each Contributor hereby grants to You a perpetual, + worldwide, non-exclusive, no-charge, royalty-free, irrevocable + (except as stated in this section) patent license to make, have made, + use, offer to sell, sell, import, and otherwise transfer the Work, + where such license applies only to those patent claims licensable + by such Contributor that are necessarily infringed by their + Contribution(s) alone or by combination of their Contribution(s) + with the Work to which such Contribution(s) was submitted. If You + institute patent litigation against any entity (including a + cross-claim or counterclaim in a lawsuit) alleging that the Work + or a Contribution incorporated within the Work constitutes direct + or contributory patent infringement, then any patent licenses + granted to You under this License for that Work shall terminate + as of the date such litigation is filed. + + 4. Redistribution. You may reproduce and distribute copies of the + Work or Derivative Works thereof in any medium, with or without + modifications, and in Source or Object form, provided that You + meet the following conditions: + + (a) You must give any other recipients of the Work or + Derivative Works a copy of this License; and + + (b) You must cause any modified files to carry prominent notices + stating that You changed the files; and + + (c) You must retain, in the Source form of any Derivative Works + that You distribute, all copyright, patent, trademark, and + attribution notices from the Source form of the Work, + excluding those notices that do not pertain to any part of + the Derivative Works; and + + (d) If the Work includes a "NOTICE" text file as part of its + distribution, then any Derivative Works that You distribute must + include a readable copy of the attribution notices contained + within such NOTICE file, excluding those notices that do not + pertain to any part of the Derivative Works, in at least one + of the following places: within a NOTICE text file distributed + as part of the Derivative Works; within the Source form or + documentation, if provided along with the Derivative Works; or, + within a display generated by the Derivative Works, if and + wherever such third-party notices normally appear. The contents + of the NOTICE file are for informational purposes only and + do not modify the License. You may add Your own attribution + notices within Derivative Works that You distribute, alongside + or as an addendum to the NOTICE text from the Work, provided + that such additional attribution notices cannot be construed + as modifying the License. + + You may add Your own copyright statement to Your modifications and + may provide additional or different license terms and conditions + for use, reproduction, or distribution of Your modifications, or + for any such Derivative Works as a whole, provided Your use, + reproduction, and distribution of the Work otherwise complies with + the conditions stated in this License. + + 5. Submission of Contributions. Unless You explicitly state otherwise, + any Contribution intentionally submitted for inclusion in the Work + by You to the Licensor shall be under the terms and conditions of + this License, without any additional terms or conditions. + Notwithstanding the above, nothing herein shall supersede or modify + the terms of any separate license agreement you may have executed + with Licensor regarding such Contributions. + + 6. Trademarks. This License does not grant permission to use the trade + names, trademarks, service marks, or product names of the Licensor, + except as required for reasonable and customary use in describing the + origin of the Work and reproducing the content of the NOTICE file. + + 7. Disclaimer of Warranty. Unless required by applicable law or + agreed to in writing, Licensor provides the Work (and each + Contributor provides its Contributions) on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or + implied, including, without limitation, any warranties or conditions + of TITLE, NON-INFRINGEMENT, MERCHANTABILITY, or FITNESS FOR A + PARTICULAR PURPOSE. You are solely responsible for determining the + appropriateness of using or redistributing the Work and assume any + risks associated with Your exercise of permissions under this License. + + 8. Limitation of Liability. In no event and under no legal theory, + whether in tort (including negligence), contract, or otherwise, + unless required by applicable law (such as deliberate and grossly + negligent acts) or agreed to in writing, shall any Contributor be + liable to You for damages, including any direct, indirect, special, + incidental, or consequential damages of any character arising as a + result of this License or out of the use or inability to use the + Work (including but not limited to damages for loss of goodwill, + work stoppage, computer failure or malfunction, or any and all + other commercial damages or losses), even if such Contributor + has been advised of the possibility of such damages. + + 9. Accepting Warranty or Additional Liability. While redistributing + the Work or Derivative Works thereof, You may choose to offer, + and charge a fee for, acceptance of support, warranty, indemnity, + or other liability obligations and/or rights consistent with this + License. However, in accepting such obligations, You may act only + on Your own behalf and on Your sole responsibility, not on behalf + of any other Contributor, and only if You agree to indemnify, + defend, and hold each Contributor harmless for any liability + incurred by, or claims asserted against, such Contributor by reason + of your accepting any such warranty or additional liability. + + END OF TERMS AND CONDITIONS + + APPENDIX: How to apply the Apache License to your work. + + To apply the Apache License to your work, attach the following + boilerplate notice, with the fields enclosed by brackets "[]" + replaced with your own identifying information. (Don't include + the brackets!) The text should be enclosed in the appropriate + comment syntax for the file format. We also recommend that a + file or class name and description of purpose be included on the + same "printed page" as the copyright notice for easier + identification within third-party archives. + + Copyright 2022 Susanto Mahato + + Licensed under the Apache License, Version 2.0 (the "License"); + you may not use this file except in compliance with the License. + You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, software + distributed under the License is distributed on an "AS IS" BASIS, + WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + See the License for the specific language governing permissions and + limitations under the License. diff --git a/README.OpenSource b/README.OpenSource new file mode 100644 index 0000000..1a68f7b --- /dev/null +++ b/README.OpenSource @@ -0,0 +1,11 @@ +[ + { + "Name": "WheelPicker", + "License": "Apache-2.0 License", + "License File": " LICENSE ", + "Version Number": "2.3.0", + "Owner" : "" + "Upstream URL": "https://github.com/applibgroup/OHOSPicker", + "Description": "A set of wheel pickers to select an option from." + } +] \ No newline at end of file From 28d49e8537a1d75bf8da8e877784325257ded484 Mon Sep 17 00:00:00 2001 From: Susanto <51540113+nerdyspook@users.noreply.github.com> Date: Wed, 15 Jun 2022 07:45:31 +0530 Subject: [PATCH 3/4] Delete wheelpicker/build directory --- .../merge_profile/default/config.json | 33 -------------- .../merge_res/default/merge_npm_res_file.json | 1 - .../process_profile/default/config.json | 1 - .../res/default/ResourceTable.txt | 26 ----------- .../intermediates/res/default/config.json | 42 ------------------ .../intermediates/res/default/resources.index | Bin 3128 -> 0 bytes 6 files changed, 103 deletions(-) delete mode 100644 wheelpicker/build/default/intermediates/merge_profile/default/config.json delete mode 100644 wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json delete mode 100644 wheelpicker/build/default/intermediates/process_profile/default/config.json delete mode 100644 wheelpicker/build/default/intermediates/res/default/ResourceTable.txt delete mode 100644 wheelpicker/build/default/intermediates/res/default/config.json delete mode 100644 wheelpicker/build/default/intermediates/res/default/resources.index diff --git a/wheelpicker/build/default/intermediates/merge_profile/default/config.json b/wheelpicker/build/default/intermediates/merge_profile/default/config.json deleted file mode 100644 index 375a1e7..0000000 --- a/wheelpicker/build/default/intermediates/merge_profile/default/config.json +++ /dev/null @@ -1,33 +0,0 @@ -{ - "app": { - "bundleName": "com.example.wheelpicker", - "vendor": "example", - "version": { - "code": 1000000, - "name": "1.0.0" - }, - "apiVersion": { - "target": 8, - "compatible": 8, - "releaseType": "Release" - } - }, - "deviceConfig": { - "default": { - "debug": true - } - }, - "module": { - "package": "com.example.wheelpicker", - "deviceType": [ - "phone", - "tablet" - ], - "distro": { - "deliveryWithInstall": true, - "moduleName": "wheelpicker", - "moduleType": "har" - }, - "uiSyntax": "ets" - } -} diff --git a/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json b/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json deleted file mode 100644 index 3cbdbcf..0000000 --- a/wheelpicker/build/default/intermediates/merge_res/default/merge_npm_res_file.json +++ /dev/null @@ -1 +0,0 @@ -{"dependencies":[],"local":{"path":[],"name":[]}} diff --git a/wheelpicker/build/default/intermediates/process_profile/default/config.json b/wheelpicker/build/default/intermediates/process_profile/default/config.json deleted file mode 100644 index f66bc40..0000000 --- a/wheelpicker/build/default/intermediates/process_profile/default/config.json +++ /dev/null @@ -1 +0,0 @@ -{"app":{"bundleName":"com.example.wheelpicker","vendor":"example","version":{"code":1000000,"name":"1.0.0"},"apiVersion":{"target":8,"compatible":8,"releaseType":"Release"}},"deviceConfig":{"default":{"debug":true}},"module":{"package":"com.example.wheelpicker","deviceType":["phone","tablet"],"distro":{"deliveryWithInstall":true,"moduleName":"wheelpicker","moduleType":"har","virtualMachine":"ark"},"uiSyntax":"ets"}} diff --git a/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt b/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt deleted file mode 100644 index 9e6c072..0000000 --- a/wheelpicker/build/default/intermediates/res/default/ResourceTable.txt +++ /dev/null @@ -1,26 +0,0 @@ -string MainAbility_desc 0x01000000 -string MainAbility_label 0x01000001 -string birthday_picker 0x01000002 -string blank_area_click 0x01000003 -string cancel 0x01000004 -string constellation_picker 0x01000005 -string entry_desc 0x01000006 -string ethnic_picker 0x01000007 -string first_button_click 0x01000008 -string float_picker 0x01000009 -string gender_picker 0x0100000a -string household_items_picker 0x0100000b -string integer_picker 0x0100000c -string month_day_picker 0x0100000d -string ok 0x0100000e -string option_text_picker 0x0100000f -string page_show 0x01000010 -string phone_code_picker 0x01000011 -string second_button_click 0x01000012 -string time_selectio_12_picker 0x01000013 -string time_selection_24_picker 0x01000014 -string title 0x01000015 -string wheel_pickers 0x01000016 -string year_month_day_picker 0x01000017 -string year_month_day_time_picker 0x01000018 -string year_month_picker 0x01000019 \ No newline at end of file diff --git a/wheelpicker/build/default/intermediates/res/default/config.json b/wheelpicker/build/default/intermediates/res/default/config.json deleted file mode 100644 index dbd5071..0000000 --- a/wheelpicker/build/default/intermediates/res/default/config.json +++ /dev/null @@ -1,42 +0,0 @@ -{ - "app" : - { - "apiVersion" : - { - "compatible" : 8, - "releaseType" : "Release", - "target" : 8 - }, - "bundleName" : "com.example.wheelpicker", - "vendor" : "example", - "version" : - { - "code" : 1000000, - "name" : "1.0.0" - } - }, - "deviceConfig" : - { - "default" : - { - "debug" : true - } - }, - "module" : - { - "deviceType" : - [ - "phone", - "tablet" - ], - "distro" : - { - "deliveryWithInstall" : true, - "moduleName" : "wheelpicker", - "moduleType" : "har", - "virtualMachine" : "ark" - }, - "package" : "com.example.wheelpicker", - "uiSyntax" : "ets" - } -} \ No newline at end of file diff --git a/wheelpicker/build/default/intermediates/res/default/resources.index b/wheelpicker/build/default/intermediates/res/default/resources.index deleted file mode 100644 index 4ba282337a8c5753230d74134fdb2191baf3a625..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 3128 zcmcguT}&KR6h31W6v|KeS!`|0Sgk+B7}%iJ>Pt(j64KB}qc$;_%YC| zeMO`^*R}QVQ%z0J(*OT=a3|3Ygl#`|s`CdKp5K4LyC&C;$n8%+pk(p4h}w>JcJjI! zV*9S#dUwu7o4}gYe**IBUw9yn_7EO-1G|Cu0M7zTfVY69z%=k)U=5V+0~)|G;1IAJ zxBx`T+TXwmpbjUMz;<92&;;%Rjst6eKLcxldk~}!_$sg-cpex6&H@{NzXR_FRwD`2 zpmhMbK2^`#oE$!11G%1Gfk;*R2Z&U(Lr5B-wAX=frJVz^$t(~b?GHS-o_%<5Jsm)< z=N%x|vkc^VvOun97nHc3Mj+P{19CkRK(6OcAlI`OPPm>ofLu=>kn6bu6Z_CKegJB>Rw#vQPZ{~NLsg?U>&hdr$;xF!bEn#!r+AwWeeIPy>P2asnv9%NUxNl zxtC|;E;q2AT3sjQ3EMWgRFzmgMGM6$yN9JEw|wIfm6LG1q&%F*r5aB}B^~qPjulm& zD@g=v<+4rc^3)tasiQbg5X`ndd zf;S9{HW*CQBj zzCJssqX+lX?V+%g@@1-}j$nTElj6qY%2$)L;;UCfC*rOn^j0?}RCP6! zV3`qxOxd(c8@{HEMH-h97@=5^&ec(FYh&vUN_TwQ>*%D_EA&obi)b*F&Ea?w_uGTi zNJ**D99F5Q1~Efyu?@GtcK1eG#|XD5W6(x$j!Y{h2<+Jcl;#Dfri7`cl3t4oVap>) zfwnNC!j^7Q)GYll9aYgOVJ7u_|3cIUfw85D&r2ibuDVS|Iv)Z(u-P&=1j!bPvY7J9 z3(P@91@WY^qAY|2DWpe6)^5!eqqhArC#E*&T^`7M_v3%yw#?{cdi-j(e<=OYb^p>- z5pGj$Vs6_@nfI3bft#7@%b80n{_wItIhpzN1OKxx*5=;7Go|?>7t)J^c}i1<&y-e8 z>5G&8^0j;_w_&pfWueSw>j$!d$kgR!B7@txkJIBLdAFOX?6CC5RJM=&b7NfJ^z`bD z{?!}bq=$#HpUkAk7xPsXr7+b}rZ9wDnDIZH%7@&-BP z{n^aulz;x+yv=QStWg%nJcdwX^XajI#l0 z$7D~-9cHo+AyoFtQu@L`dSW^swkVmkNJA#G5M@Re)@DCnz4=wtd)>qHjZ+w7MY z*O^T9gPE+1PjhW$hHvR+7E`}hn8nJ-Uz(S#yB&cYl0likYFS^0fsSV5pG)7KzZBIl Mf1&$9w4&VgFEwf;vH$=8 From 0e710955c55fcb7891818b5a116c7888120fbbfa Mon Sep 17 00:00:00 2001 From: Susanto <51540113+nerdyspook@users.noreply.github.com> Date: Wed, 15 Jun 2022 07:47:50 +0530 Subject: [PATCH 4/4] Added copyright in each ets --- .../src/main/ets/components/birthdayPicker.ets | 15 +++++++++++++++ .../src/main/ets/components/monthDayPicker.ets | 15 +++++++++++++++ .../main/ets/components/singleOptionPicker.ets | 17 ++++++++++++++++- .../src/main/ets/components/time12Picker.ets | 15 +++++++++++++++ .../src/main/ets/components/time24Picker.ets | 15 +++++++++++++++ .../main/ets/components/yearMonthDayPicker.ets | 15 +++++++++++++++ .../ets/components/yearMonthDayTimePicker.ets | 15 +++++++++++++++ .../src/main/ets/components/yearMonthPicker.ets | 15 +++++++++++++++ 8 files changed, 121 insertions(+), 1 deletion(-) diff --git a/wheelpicker/src/main/ets/components/birthdayPicker.ets b/wheelpicker/src/main/ets/components/birthdayPicker.ets index b997535..2e0f2d1 100644 --- a/wheelpicker/src/main/ets/components/birthdayPicker.ets +++ b/wheelpicker/src/main/ets/components/birthdayPicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct BirthdayDialog { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/monthDayPicker.ets b/wheelpicker/src/main/ets/components/monthDayPicker.ets index e828dc8..ee64d5d 100644 --- a/wheelpicker/src/main/ets/components/monthDayPicker.ets +++ b/wheelpicker/src/main/ets/components/monthDayPicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct MonthDayDialog { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/singleOptionPicker.ets b/wheelpicker/src/main/ets/components/singleOptionPicker.ets index 9bc02de..dbedf9c 100644 --- a/wheelpicker/src/main/ets/components/singleOptionPicker.ets +++ b/wheelpicker/src/main/ets/components/singleOptionPicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct SingleOptionDialog { controller: CustomDialogController @@ -33,7 +48,7 @@ export struct SingleOptionDialog { this.controller.close() this.confirm() }).backgroundColor(this.rightButtonBgColor ? this.rightButtonBgColor : 0xffffff ).fontColor(this.rightButtonTextColor ? this.rightButtonTextColor : "#171717" ) - }.margin({ bottom: 10 }) + }.margin({ bottom: "10VP" }) TextPicker({range: this.options ? this.options : ["try"] , selected: this.select}).height(this.pickerHeight ? this.pickerHeight : "200VP" ).onChange((value: string) => { this.selectedValue = value diff --git a/wheelpicker/src/main/ets/components/time12Picker.ets b/wheelpicker/src/main/ets/components/time12Picker.ets index 13e382e..330a04b 100644 --- a/wheelpicker/src/main/ets/components/time12Picker.ets +++ b/wheelpicker/src/main/ets/components/time12Picker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct TimeSelection12 { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/time24Picker.ets b/wheelpicker/src/main/ets/components/time24Picker.ets index 076e4d9..94f83c8 100644 --- a/wheelpicker/src/main/ets/components/time24Picker.ets +++ b/wheelpicker/src/main/ets/components/time24Picker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct TimeSelection24 { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets b/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets index 4915a26..dbc676d 100644 --- a/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets +++ b/wheelpicker/src/main/ets/components/yearMonthDayPicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct YearMonthDayDialog { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets b/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets index 7495198..ca66fb6 100644 --- a/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets +++ b/wheelpicker/src/main/ets/components/yearMonthDayTimePicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct YearMonthDayTimeDialog { controller: CustomDialogController diff --git a/wheelpicker/src/main/ets/components/yearMonthPicker.ets b/wheelpicker/src/main/ets/components/yearMonthPicker.ets index c7e9227..a8ee7c4 100644 --- a/wheelpicker/src/main/ets/components/yearMonthPicker.ets +++ b/wheelpicker/src/main/ets/components/yearMonthPicker.ets @@ -1,3 +1,18 @@ +/* + * Copyright (c) 2022 Application Library Engineering Group. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + @CustomDialog export struct YearMonthDialog { controller: CustomDialogController