From 7c8069fdd2dab8327ca3b0afed3d056d423259f1 Mon Sep 17 00:00:00 2001 From: g00657522 Date: Thu, 30 Jan 2025 17:02:10 +0300 Subject: [PATCH 01/11] Executable test candidate --- arkoala-arkts/user/src/ets/tests/test01.ets | 30 +++++ arkoala-arkts/user/src/ets/tests/test02.ets | 66 +++++++++++ arkoala-arkts/user/src/ets/tests/test03.ets | 73 ++++++++++++ arkoala-arkts/user/src/ets/tests/test04.ets | 35 ++++++ arkoala-arkts/user/src/ets/tests/test05.ets | 34 ++++++ arkoala-arkts/user/src/ets/tests/test06.ets | 32 +++++ arkoala-arkts/user/src/ets/tests/test07.ets | 24 ++++ arkoala-arkts/user/src/ets/tests/test08.ets | 27 +++++ arkoala-arkts/user/src/ets/tests/test09.ets | 29 +++++ arkoala-arkts/user/src/ets/tests/test10.ets | 30 +++++ arkoala-arkts/user/src/ets/tests/test11.ets | 46 ++++++++ arkoala-arkts/user/src/ets/tests/test12.ets | 97 +++++++++++++++ arkoala-arkts/user/src/ets/tests/test13.ets | 23 ++++ arkoala-arkts/user/src/ets/tests/test14.ets | 50 ++++++++ arkoala-arkts/user/src/ets/tests/test15.ets | 50 ++++++++ arkoala-arkts/user/src/ets/tests/test16.ets | 41 +++++++ arkoala-arkts/user/src/ets/tests/test17.ets | 123 ++++++++++++++++++++ arkoala-arkts/user/src/ets/tests/test18.ets | 61 ++++++++++ arkoala-arkts/user/src/ets/tests/test19.ets | 75 ++++++++++++ arkoala-arkts/user/src/ets/tests/test20.ets | 75 ++++++++++++ arkoala-arkts/user/src/ets/tests/test21.ets | 80 +++++++++++++ arkoala-arkts/user/src/ets/tests/test22.ets | 60 ++++++++++ arkoala-arkts/user/src/ets/tests/test23.ets | 29 +++++ arkoala-arkts/user/src/ets/tests/test24.ets | 57 +++++++++ arkoala-arkts/user/src/ets/tests/test25.ets | 35 ++++++ 25 files changed, 1282 insertions(+) create mode 100644 arkoala-arkts/user/src/ets/tests/test01.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test02.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test03.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test04.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test05.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test06.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test07.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test08.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test09.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test10.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test11.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test12.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test13.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test14.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test15.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test16.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test17.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test18.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test19.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test20.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test21.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test22.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test23.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test24.ets create mode 100644 arkoala-arkts/user/src/ets/tests/test25.ets diff --git a/arkoala-arkts/user/src/ets/tests/test01.ets b/arkoala-arkts/user/src/ets/tests/test01.ets new file mode 100644 index 000000000..46f16dbd9 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test01.ets @@ -0,0 +1,30 @@ +@Component +struct EntryComponent1 { + @Prop prop : number = 2; + build() { + Column() { + Button(`${this.prop}`).onClick(()=>{ + this.prop += 4; // only received once, change prop, will not synchronized to its Child. + }) + MyComponent1({state : this.prop}) + } + } +} + +@Component +struct MyComponent1 { + @State count: Resource = $r('sys.color.ohos_id_color_emphasize') + @State state : number = 1; + build() { + Column() { + Text(`Hello ${this.state}`) + .fontColor(this.count) + Button('change') + .onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }) + } + } +} + + diff --git a/arkoala-arkts/user/src/ets/tests/test02.ets b/arkoala-arkts/user/src/ets/tests/test02.ets new file mode 100644 index 000000000..335171a35 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test02.ets @@ -0,0 +1,66 @@ +class Person2 { + public value: string; + + constructor(value: string) { + this.value = value; + } +} + +class Model2 { + public value: string; + public name: Person2; + constructor(value: string, person: Person2) { + this.value = value; + this.name = person; + } +} + +@Entry +@Component +struct Page2 { + // class类型 + @State @Watch("onTitleChange") title: Model2 = new Model2('Hello', new Person2('World')); + onTitleChange() { + console.log(`observe the object and object property change`) + } + + build() { + Column() { + Text(`assign a object: ${JSON.stringify(this.title)}`) + .id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(()=>{ + this.title = new Model2('Hi', new Person2('ArkUI')); // assign the object to @State variable + }) + Text(`assign a object property: ${this.title.value}`) + .id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(()=>{ + this.title.value = 'Hi'; // assign the object property + }) + Text(`assign a object second layer property: ${this.title.name.value}`) + .id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Blue) + .onClick(()=>{ + this.title.name.value = 'ArkUI'; // can not observe properties of second-level objects + }) + } + .height('100%') + .width('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test03.ets b/arkoala-arkts/user/src/ets/tests/test03.ets new file mode 100644 index 000000000..c7a494fe4 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test03.ets @@ -0,0 +1,73 @@ +class Person3 { + public value: string; + + constructor(value: string) { + this.value = value; + } +} + +class Model3 { + public value: string; + public name: Person3; + constructor(value: string, person: Person3) { + this.value = value; + this.name = person; + } +} + +@Entry +@Component +struct Page3 { + // 数组类型 + @State @Watch("onTitleChange") title: Model3[] = [new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]; + onTitleChange() { + console.log(`observe the object and object property change`) + } + + build() { + Column() { + Text(`assign an array: ${JSON.stringify(this.title)}`) + .fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(()=>{ + this.title = [new Model3("33", new Person3("33"))]; // Array assignment + }) + Text(`assign item: ${this.title[0].value}`) + .fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(()=>{ + this.title[0] = new Model3("44", new Person3("44")); // Array item assignment + }) + Text(`delete array items: ${JSON.stringify(this.title)}`) + .fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Gray) + .onClick(()=>{ + this.title.pop(); // + }) + Text(`Added array items: ${JSON.stringify(this.title)}`) + .fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Yellow) + .onClick(()=>{ + this.title.push(new Model3("12", new Person3("12"))); + }) + } + .height('100%') + .width('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test04.ets b/arkoala-arkts/user/src/ets/tests/test04.ets new file mode 100644 index 000000000..d3ea05309 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test04.ets @@ -0,0 +1,35 @@ +@Entry +@Component +struct DatePickerExample { + @State selectedDate: Date = new Date('2021-08-08'); + + build() { + Column() { + Button('set selectedDate to 2023-07-08') + .margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-08'); + }) + Button('increase the year by 1') + .margin(10) + .onClick(() => { + this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1); + }) + Button('increase the month by 1') + .margin(10) + .onClick(() => { + this.selectedDate.setMonth(this.selectedDate.getMonth() + 1); + }) + Button('increase the day by 1') + .margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }) + DatePicker({ + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + }) + }.width('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test05.ets b/arkoala-arkts/user/src/ets/tests/test05.ets new file mode 100644 index 000000000..3ea4531ae --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test05.ets @@ -0,0 +1,34 @@ +@Entry +@Component +struct MapSample { + @State message: Map = new Map([[0, "a"], [1, "b"], [3, "c"]]); + + build() { + Row() { + Column() { + ForEach(Array.from(this.message.entries()), (item: [number, string]) => { + Text(`${item[0]}`).fontSize(30) + Text(`${item[1]}`).fontSize(30) + Divider() + }) + Button('init map').onClick(() => { + this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); + }) + Button('set new one').onClick(() => { + this.message.set(4, "d"); + }) + Button('clear').onClick(() => { + this.message.clear(); + }) + Button('replace the first one').onClick(() => { + this.message.set(0, "aa"); + }) + Button('delete the first one').onClick(() => { + this.message.delete(0); + }) + } + .width('100%') + } + .height('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test06.ets b/arkoala-arkts/user/src/ets/tests/test06.ets new file mode 100644 index 000000000..80209e198 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test06.ets @@ -0,0 +1,32 @@ +@Entry +@Component +struct SetSample { + @State message: Set = new Set([0, 1, 2, 3, 4]); + + build() { + Row() { + Column() { + ForEach(Array.from(this.message.entries()), (item: [number, number]) => { + Text(`${item[0]}`).fontSize(30) + Divider() + }) + Button('init set').onClick(() => { + this.message = new Set([10, 1, 2, 3, 8]); + }) + Button('set new one').onClick(() => { + this.message.add(5); + }) + Button('clear').onClick(() => { + this.message.clear(); + }) + Button('delete the first one').onClick(() => { + this.message.delete(0); + }) + } + .width('100%') + } + .height('100%') + } +} + + diff --git a/arkoala-arkts/user/src/ets/tests/test07.ets b/arkoala-arkts/user/src/ets/tests/test07.ets new file mode 100644 index 000000000..a4d5406c2 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test07.ets @@ -0,0 +1,24 @@ +@Entry +@Component +struct EntryComponent7 { + build() { + Column() { + MyComponent7() + } + } +} + +@Component +struct MyComponent7 { + @State count: number | undefined = 0; + + build() { + Column() { + Text(`count(${this.count})`) + Button('change') + .onClick(() => { + this.count = undefined; // UI will be triggered + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test08.ets b/arkoala-arkts/user/src/ets/tests/test08.ets new file mode 100644 index 000000000..5e91059e0 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test08.ets @@ -0,0 +1,27 @@ +// import { resourceManager } from '@kit.LocalizationKit'; + +@Entry +@Component +struct EntryComponent8 { + build() { + Column() { + MyComponent8() + } + } +} + +@Component +struct MyComponent8 { + @State count: Resource = $r('sys.color.ohos_id_color_emphasize') + + build() { + Column() { + Text('Hello') + .fontColor(this.count) + Button('change') + .onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test09.ets b/arkoala-arkts/user/src/ets/tests/test09.ets new file mode 100644 index 000000000..e6bf04df3 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test09.ets @@ -0,0 +1,29 @@ +@Entry +@Component +struct EntryComponent { + @State state : number = 2; + build() { + Column() { + Button(`${this.state}`).onClick(()=>{ + this.state += 4; // change state, will synchronize to its Child. + }) + MyComponent({prop : this.state}) + } + } +} + +@Component +struct MyComponent { + @State count: Resource = $r('sys.color.ohos_id_color_emphasize') + @Prop prop : number = 1; + build() { + Column() { + Text(`Hello ${this.prop}`) + .fontColor(this.count) + Button('change') + .onClick(() => { + this.prop += 5 // change prop, will not sync back to its parent + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test10.ets b/arkoala-arkts/user/src/ets/tests/test10.ets new file mode 100644 index 000000000..1b453137c --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test10.ets @@ -0,0 +1,30 @@ +//import {AppStorageV2} from '@kit.ArkUI' +@Entry +@Component +struct EntryComponent10 { + @State state : number = 2; + build() { + Column() { + Button(`${this.state}`).onClick(()=>{ + this.state += 4; // change state, will synchronize to its Child. + }) + MyComponent10({link : this.state}) + } + } +} + +@Component +struct MyComponent10 { + @State count: Resource = $r('sys.color.ohos_id_color_emphasize') + @Link link : number; + build() { + Column() { + Text(`Hello ${this.link}`) + .fontColor(this.count) + Button('change') + .onClick(() => { + this.link += 5 // change link, will sync back to its parent + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test11.ets b/arkoala-arkts/user/src/ets/tests/test11.ets new file mode 100644 index 000000000..c7ca7a31b --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test11.ets @@ -0,0 +1,46 @@ +class Model11 { + public value: string; + constructor(value: string) { + this.value = value; + } +} + +@Entry +@Component +struct EntryComponent11 { + build() { + Column() { + // 此处指定的任何命名参数都将在初始渲染时 + // 覆盖本地定义的默认值 + MyComponent11({ count: 1, increaseBy: 2 }) + MyComponent11({ title: new Model11('Hello, World 2'), count: 7 }) + } + } +} + +@Component +struct MyComponent11 { + + @State title: Model11 = new Model11('local child value'); + @State count: number = 0; + private increaseBy : number = 1; + + build() { + Column() { + Text(`count : ${this.count} titleValue : ${this.title.value}`) + Button() { + Text(`Click to change title`).fontSize(10) + }.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.title.value = this.title.value == 'Hello Ace' ? 'Hello World' : 'Hello Ace'; + }) + + Button() { + Text(`Click to increase count=${this.count}`).fontSize(10) + }.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.count += this.increaseBy; + }) + } // Column + } // build +} diff --git a/arkoala-arkts/user/src/ets/tests/test12.ets b/arkoala-arkts/user/src/ets/tests/test12.ets new file mode 100644 index 000000000..dce9e8526 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test12.ets @@ -0,0 +1,97 @@ +@Observed +class Son12 { + public title: string; + + constructor(title: string) { + this.title = title; + } +} + +@Observed +class Father12 { + public name: string; + public son: Son12; + + constructor(name: string, son: Son12) { + this.name = name; + this.son = son; + } +} + + +@Entry +@Component +struct Person12 { + @State person: Father12 = new Father12('Hello', new Son12('world')); + + build() { + Column() { + Flex({ direction: FlexDirection.Column, alignItems: ItemAlign.Center }) { + Button('change Father12 name') + .width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.name = "Hi"; + }) + Button('change Son12 title') + .width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.son.title = "ArkUI"; // Son12 must be decorated with @Observed + }) + Text(this.person.name) + .fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .fontColor('#e6000000') + .onClick(() => { + this.person.name = 'Bye'; + }) + Text(this.person.son.title) + .fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.person.son.title = "openHarmony"; + }) + Child({ child: this.person.son }) + } + + } + + } +} + + +@Component +struct Child { + @Prop child: Son12 = new Son12(''); + + build() { + Column() { + Text(this.child.title) + .fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.child.title = 'Bye Bye'; + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test13.ets b/arkoala-arkts/user/src/ets/tests/test13.ets new file mode 100644 index 000000000..c6bf46028 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test13.ets @@ -0,0 +1,23 @@ +class Info13 { + info: string = 'Hello'; +} + +@Component +struct Child13 { + @Link test: Info13; + build() { + Text(this.test.info) + } +} + +@Entry +@Component +struct LinkExample { + @State info: Info13 = new Info13(); + build() { + Column() { + Child13({ test: this.info }) // also support this spec + Child13({ test: $info }) // support $ + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test14.ets b/arkoala-arkts/user/src/ets/tests/test14.ets new file mode 100644 index 000000000..40b9629a8 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test14.ets @@ -0,0 +1,50 @@ +@Component +struct Child14 { + @Consume selectedDate: Date; + + build() { + Column() { + Button(`child increase the day by 1`) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1) + }) + Button('child update the new date') + .margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-09-09') + }) + DatePicker({ + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + }) + } + } +} + +@Entry +@Component +struct Parent14 { + @Provide selectedDate: Date = new Date('2021-08-08') + + build() { + Column() { + Button('parent increase the day by 1') + .margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1) + }) + Button('parent update the new date') + .margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-07') + }) + DatePicker({ + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + }) + Child14() + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test15.ets b/arkoala-arkts/user/src/ets/tests/test15.ets new file mode 100644 index 000000000..15ad79669 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test15.ets @@ -0,0 +1,50 @@ +@Component +struct GrandSon15 { + // @Consume装饰的变量通过相同的属性名绑定其祖先内的@Provide装饰的变量 + @Consume("reviewVotes") reviewVotes: number; + + build() { + Column() { + Text(`reviewVotes(${this.reviewVotes})`) // Text显示10 + Button(`reviewVotes(${this.reviewVotes}), give +1`) + .onClick(() => this.reviewVotes += 1) + } + .width('50%') + } +} + +@Component +struct Child15 { + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 10; + @Provide("reviewVotes") reviewVotes: number = 10; + + build() { + Row({ space: 5 }) { + GrandSon15() + } + } +} + +@Component +struct Parent15 { + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 20; + @Provide("reviewVotes") reviewVotes: number = 20; + + build() { + Child15() + } +} + +@Entry +@Component +struct GrandParent15 { + @Provide("reviewVotes") reviewVotes: number = 40; + + build() { + Column() { + Button(`reviewVotes(${this.reviewVotes}), give +1`) + .onClick(() => this.reviewVotes += 1) + Parent15() + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test16.ets b/arkoala-arkts/user/src/ets/tests/test16.ets new file mode 100644 index 000000000..ea59a0288 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test16.ets @@ -0,0 +1,41 @@ +@Observed +class Info16 { + count: number; + + constructor(count: number) { + this.count = count; + } +} + +@Component +struct Child16 { + @ObjectLink num: Info16; + + build() { + Column() { + Text(`num的值: ${this.num.count}`) + .onClick(() => { + // 正确写法,可以更改@ObjectLink装饰变量的成员属性 + this.num.count += 20; // modify count can sync back its parent + }) + } + } +} + +@Entry +@Component +struct Parent16 { + @State num: Info16 = new Info16(10); + + build() { + Column() { + Text(`count的值: ${this.num.count}`) + Button('click') + .onClick(() => { + // 可以在父组件做整体替换 + this.num = new Info16(30); // modify ObjectLink object, can sync to its child + }) + Child16({num: this.num}) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test17.ets b/arkoala-arkts/user/src/ets/tests/test17.ets new file mode 100644 index 000000000..1b47318b0 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test17.ets @@ -0,0 +1,123 @@ +let NextID: number = 1; + +@Observed +class Bag { + public id: number; + public size: number; + + constructor(size: number) { + this.id = NextID++; + this.size = size; + } +} + +@Observed +class User { + public bag: Bag; + + constructor(bag: Bag) { + this.bag = bag; + } +} + +@Observed +class Book { + public bookName: BookName; + + constructor(bookName: BookName) { + this.bookName = bookName; + } +} + +@Observed +class BookName extends Bag { + public nameSize: number; + + constructor(nameSize: number) { + // 调用父类方法对nameSize进行处理 + super(nameSize); + this.nameSize = nameSize; + } +} + +@Component +struct Son17 { + label: string = 'Son17'; + @ObjectLink bag: Bag; + + build() { + Column() { + Text(`Son17 [${this.label}] this.bag.size = ${this.bag.size}`) + .fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center) + Button(`Son17: this.bag.size add 1`) + .width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bag.size += 1; + }) + } + } +} + +@Component +struct Father17 { + label: string = 'Father17'; + @ObjectLink bookName: BookName; + + build() { + Row() { + Column() { + Text(`Father17 [${this.label}] this.bookName.size = ${this.bookName.size}`) + .fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center) + Button(`Father17: this.bookName.size add 1`) + .width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bookName.size += 1; + console.log('this.bookName.size:' + this.bookName.size); + }) + } + .width(320) + } + } +} + +@Entry +@Component +struct GrandFather17 { + @State user: User = new User(new Bag(0)); + @State child: Book = new Book(new BookName(0)); + + build() { + Column() { + Son17({ label: 'Son17 #1', bag: this.user.bag }) + .width(320) + Father17({ label: 'Father17 #3', bookName: this.child.bookName }) + .width(320) + Button(`GrandFather17: this.child.bookName.size add 10`) + .width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.child.bookName.size += 10; + console.log('this.child.bookName.size:' + this.child.bookName.size); + }) + } + } +} + + diff --git a/arkoala-arkts/user/src/ets/tests/test18.ets b/arkoala-arkts/user/src/ets/tests/test18.ets new file mode 100644 index 000000000..64d7f45af --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test18.ets @@ -0,0 +1,61 @@ +@Observed +class ObservedArray extends Array { + constructor(args: T[]) { + super(...args); + } +} + +@Component +struct Item { + @ObjectLink itemArr: ObservedArray; + + build() { + Row() { + ForEach(this.itemArr, (item: string, index: number) => { + Text(`${index}: ${item}`) + .width(100) + .height(100) + }, (item: string) => item) + } + } +} + +@Entry +@Component +struct IndexPage { + @State arr: Array> = [new ObservedArray(['apple']), new ObservedArray(['banana']), new ObservedArray(['orange'])]; + + build() { + Column() { + ForEach(this.arr, (itemArr: ObservedArray) => { + Item({ itemArr: itemArr }) + }) + + Divider() + + Button('push two-dimensional array item') + .margin(10) + .onClick(() => { + this.arr[0].push('strawberry'); + }) + + Button('push array item') + .margin(10) + .onClick(() => { + this.arr.push(new ObservedArray(['pear'])); + }) + + Button('change two-dimensional array first item') + .margin(10) + .onClick(() => { + this.arr[0][0] = 'APPLE'; + }) + + Button('change array first item') + .margin(10) + .onClick(() => { + this.arr[0] = new ObservedArray(['watermelon']); + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test19.ets b/arkoala-arkts/user/src/ets/tests/test19.ets new file mode 100644 index 000000000..653f21e03 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test19.ets @@ -0,0 +1,75 @@ +@Observed +class Info { + public info: MySet; + + constructor(info: MySet) { + this.info = info; + } +} + + +@Observed +export class MySet extends Set { + public name: string; + + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + + getName() { + return this.name; + } +} + +@Entry +@Component +struct SetSampleNested { + @State message: Info = new Info(new MySet("Set", [0, 1, 2, 3, 4])); + + build() { + Row() { + Column() { + SetSampleNestedChild({ mySet: this.message.info }) + } + .width('100%') + } + .height('100%') + } +} + +@Component +struct SetSampleNestedChild { + @ObjectLink mySet: MySet; + + build() { + Row() { + Column() { + ForEach(Array.from(this.mySet.entries()), (item: [number, number]) => { + Text(`${item}`).fontSize(30) + Divider() + }) + Button('set new one') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }) + Button('clear') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }) + Button('delete the first one') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }) + } + .width('100%') + } + .height('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test20.ets b/arkoala-arkts/user/src/ets/tests/test20.ets new file mode 100644 index 000000000..653f21e03 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test20.ets @@ -0,0 +1,75 @@ +@Observed +class Info { + public info: MySet; + + constructor(info: MySet) { + this.info = info; + } +} + + +@Observed +export class MySet extends Set { + public name: string; + + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + + getName() { + return this.name; + } +} + +@Entry +@Component +struct SetSampleNested { + @State message: Info = new Info(new MySet("Set", [0, 1, 2, 3, 4])); + + build() { + Row() { + Column() { + SetSampleNestedChild({ mySet: this.message.info }) + } + .width('100%') + } + .height('100%') + } +} + +@Component +struct SetSampleNestedChild { + @ObjectLink mySet: MySet; + + build() { + Row() { + Column() { + ForEach(Array.from(this.mySet.entries()), (item: [number, number]) => { + Text(`${item}`).fontSize(30) + Divider() + }) + Button('set new one') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }) + Button('clear') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }) + Button('delete the first one') + .width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }) + } + .width('100%') + } + .height('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test21.ets b/arkoala-arkts/user/src/ets/tests/test21.ets new file mode 100644 index 000000000..999f324e2 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test21.ets @@ -0,0 +1,80 @@ +@Observed +class Source { + public source: number; + + constructor(source: number) { + this.source = source; + } +} + +@Observed +class Data { + public data: number; + + constructor(data: number) { + this.data = data; + } +} + +@Entry +@Component +struct Parent21 { + @State count: Source | Data | undefined = new Source(10); + + build() { + Column() { + Child21({ count: this.count }) + + Button('change count property') + .margin(10) + .onClick(() => { + // 判断count的类型,做属性的更新 + if (this.count instanceof Source) { + this.count.source += 1; + } else if (this.count instanceof Data) { + this.count.data += 1; + } else { + console.info('count is undefined, cannot change property'); + } + }) + + Button('change count to Source') + .margin(10) + .onClick(() => { + // 赋值为Source的实例 + this.count = new Source(100); + }) + + Button('change count to Data') + .margin(10) + .onClick(() => { + // 赋值为Data的实例 + this.count = new Data(100); + }) + + Button('change count to undefined') + .margin(10) + .onClick(() => { + // 赋值为undefined + this.count = undefined; + }) + }.width('100%') + } +} + +@Component +struct Child21 { + @ObjectLink count: Source | Data | undefined; + + build() { + Column() { + Text(`count is instanceof ${this.count instanceof Source ? 'Source' : + this.count instanceof Data ? 'Data' : 'undefined'}`) + .fontSize(30) + .margin(10) + + Text(`count's property is ${this.count instanceof Source ? this.count.source : this.count?.data}`).fontSize(15) + + }.width('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test22.ets b/arkoala-arkts/user/src/ets/tests/test22.ets new file mode 100644 index 000000000..f97b70a7e --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test22.ets @@ -0,0 +1,60 @@ +class LogTrack { + @Track str1: string; + @Track str2: string; + + constructor(str1: string) { + this.str1 = str1; + this.str2 = 'World'; + } +} + +class LogNotTrack { + str1: string; + str2: string; + + constructor(str1: string) { + this.str1 = str1; + this.str2 = '世界'; + } +} + +@Entry +@Component +struct AddLog { + @State logTrack: LogTrack = new LogTrack('Hello'); + @State logNotTrack: LogNotTrack = new LogNotTrack('你好'); + + isRender(index: number) { + console.log(`Text ${index} is rendered`); + return 50; + } + + build() { + Row() { + Column() { + Text(this.logTrack.str1) // Text1 + .fontSize(this.isRender(1)) + .fontWeight(FontWeight.Bold) + Text(this.logTrack.str2) // Text2 + .fontSize(this.isRender(2)) + .fontWeight(FontWeight.Bold) + Button('change logTrack.str1') + .onClick(() => { + this.logTrack.str1 = 'Bye'; + }) + Text(this.logNotTrack.str1) // Text3 + .fontSize(this.isRender(3)) + .fontWeight(FontWeight.Bold) + Text(this.logNotTrack.str2) // Text4 + .fontSize(this.isRender(4)) + .fontWeight(FontWeight.Bold) + Button('change logNotTrack.str1') + .onClick(() => { + this.logNotTrack.str1 = '再见'; + }) + } + .width('100%') + } + .height('100%') + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test23.ets b/arkoala-arkts/user/src/ets/tests/test23.ets new file mode 100644 index 000000000..75b382ab6 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test23.ets @@ -0,0 +1,29 @@ +@Entry +@Component +struct UsePropertyName { + @State @Watch('countUpdated') apple: number = 0; + @State @Watch('countUpdated') cabbage: number = 0; + @State fruit: number = 0; + // @Watch 回调 + countUpdated(propName: string): void { + if (propName == 'apple') { + this.fruit = this.apple; + } + } + + build() { + Column() { + Text(`Number of apples: ${this.apple.toString()}`).fontSize(30) + Text(`Number of cabbages: ${this.cabbage.toString()}`).fontSize(30) + Text(`Total number of fruits: ${this.fruit.toString()}`).fontSize(30) + Button('Add apples') + .onClick(() => { + this.apple++; + }) + Button('Add cabbages') + .onClick(() => { + this.cabbage++; + }) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test24.ets b/arkoala-arkts/user/src/ets/tests/test24.ets new file mode 100644 index 000000000..37d6917cc --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test24.ets @@ -0,0 +1,57 @@ +@Observed +class Task { + isFinished: boolean = false; + + constructor(isFinished : boolean) { + this.isFinished = isFinished; + } +} + +@Entry +@Component +struct ParentComponent { + @State @Watch('onTaskAChanged') taskA: Task = new Task(false); + @State @Watch('onTaskBChanged') taskB: Task = new Task(false); + + onTaskAChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + + onTaskBChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + + build() { + Column() { + Text(`父组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`) + Text(`父组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`) + ChildComponent({ taskA: this.taskA, taskB: this.taskB }) + Button('切换任务状态') + .onClick(() => { + this.taskB = new Task(!this.taskB.isFinished); + this.taskA = new Task(!this.taskA.isFinished); + }) + } + } +} + +@Component +struct ChildComponent { + @ObjectLink @Watch('onObjectLinkTaskChanged') taskB: Task; + @Link @Watch('onLinkTaskChanged') taskA: Task; + + onObjectLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@ObjectLink关联的任务属性变化: ${changedPropertyName}`); + } + + onLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@Link关联的任务属性变化: ${changedPropertyName}`); + } + + build() { + Column() { + Text(`子组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`) + Text(`子组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`) + } + } +} diff --git a/arkoala-arkts/user/src/ets/tests/test25.ets b/arkoala-arkts/user/src/ets/tests/test25.ets new file mode 100644 index 000000000..3e1605b5b --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/test25.ets @@ -0,0 +1,35 @@ +@Component +struct TotalView { + @Prop @Watch('onCountUpdated') count: number = 0; + @State total: number = 0; + // @Watch 回调 + onCountUpdated(propName: string): void { + this.total += this.count; + } + + build() { + Text(`Total: ${this.total}`) + } +} + +@Entry +@Component +struct CountModifier { + @State @Watch('onCountChange') count: number = 0; + + onCountChange() { + console.log(`change count = ${this.count}`) + } + build() { + Column() { + Button('add to basket') + .onClick(() => { + for (let i = 0; i < 1000; i++) { + this.count++ + } + + }) + TotalView({ count: this.count }) + } + } +} -- Gitee From 9209dc9ca2be727a314079ddc9036d33fde327c2 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Fri, 31 Jan 2025 10:37:51 +0300 Subject: [PATCH 02/11] generated by ets-to-ts translation Signed-off-by: Alexander Gorshenev --- .../src/ets/tests/tmp-generated/test01.ts | 112 ++++++++ .../src/ets/tests/tmp-generated/test02.ts | 107 ++++++++ .../src/ets/tests/tmp-generated/test03.ts | 115 ++++++++ .../src/ets/tests/tmp-generated/test04.ts | 77 ++++++ .../src/ets/tests/tmp-generated/test05.ts | 89 +++++++ .../src/ets/tests/tmp-generated/test06.ts | 81 ++++++ .../src/ets/tests/tmp-generated/test07.ts | 77 ++++++ .../src/ets/tests/tmp-generated/test08.ts | 79 ++++++ .../src/ets/tests/tmp-generated/test09.ts | 112 ++++++++ .../src/ets/tests/tmp-generated/test10.ts | 107 ++++++++ .../src/ets/tests/tmp-generated/test11.ts | 122 +++++++++ .../src/ets/tests/tmp-generated/test12.ts | 161 +++++++++++ .../src/ets/tests/tmp-generated/test13.ts | 86 ++++++ .../src/ets/tests/tmp-generated/test14.ts | 118 +++++++++ .../src/ets/tests/tmp-generated/test15.ts | 180 +++++++++++++ .../src/ets/tests/tmp-generated/test16.ts | 108 ++++++++ .../src/ets/tests/tmp-generated/test17.ts | 249 ++++++++++++++++++ .../src/ets/tests/tmp-generated/test18.ts | 127 +++++++++ .../src/ets/tests/tmp-generated/test19.ts | 154 +++++++++++ .../src/ets/tests/tmp-generated/test20.ts | 154 +++++++++++ .../src/ets/tests/tmp-generated/test21.ts | 156 +++++++++++ .../src/ets/tests/tmp-generated/test22.ts | 111 ++++++++ .../src/ets/tests/tmp-generated/test23.ts | 95 +++++++ .../src/ets/tests/tmp-generated/test24.ts | 146 ++++++++++ .../src/ets/tests/tmp-generated/test25.ts | 117 ++++++++ 25 files changed, 3040 insertions(+) create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts create mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts new file mode 100644 index 000000000..275d76bc4 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts @@ -0,0 +1,112 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +class ArkEntryComponent1Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent1Options): void { + this.__backing_prop = propState(2); + } + private __backing_prop?: SyncedProperty; + private get prop(): number { + return this.__backing_prop!.value; + } + private set prop(value: number) { + this.__backing_prop!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: EntryComponent1Options | undefined): void { + this.__backing_prop?.update(initializers?.prop); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent1Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.prop += 4; // only received once, change prop, will not synchronized to its Child. + }); + }, undefined, `${this.prop}`); + MyComponent1(undefined, undefined, { state: this.prop } as MyComponent1Options); + }); + } +} +class ArkMyComponent1Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent1Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_state = stateOf(initializers?.state ?? (1), this); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent1Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.state}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent1(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent1Options): void { + const updatedInitializers: EntryComponent1Options = { + prop: initializers?.prop, + __backing_prop: initializers?.__backing_prop + }; + ArkEntryComponent1Component._instantiate(style, () => new ArkEntryComponent1Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent1(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent1Options): void { + const updatedInitializers: MyComponent1Options = { + __backing_count: initializers?.__backing_count, + __backing_state: initializers?.__backing_state + }; + ArkMyComponent1Component._instantiate(style, () => new ArkMyComponent1Component, content, updatedInitializers); +} +export interface EntryComponent1Options { + __backing_prop?: SyncedProperty; + prop?: number; +} +export interface MyComponent1Options { + __backing_count?: MutableState; + count?: Resource; + __backing_state?: MutableState; + state?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts new file mode 100644 index 000000000..edcd52906 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts @@ -0,0 +1,107 @@ +import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Person2 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class Model2 { + public value: string; + public name: Person2; + constructor(value: string, person: Person2) { + this.value = value; + this.name = person; + } +} +class ArkPage2Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Page2Options): void { + this.__backing_title = stateOf(initializers?.title ?? (new Model2('Hello', new Person2('World'))), this); + } + // class类型 + private __backing_title?: MutableState; + private get title(): Model2 { + return this.__backing_title!.value; + } + private set title(value: Model2) { + this.__backing_title!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Page2Options | undefined): void { + OnChange(this.title, (_: Model2) => this.onTitleChange("title")); + } + onTitleChange() { + console.log(`observe the object and object property change`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Page2Options) { + ArkColumn(__instance => { + { + __instance.height('100%') + .width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(() => { + this.title = new Model2('Hi', new Person2('ArkUI')); // assign the object to @State variable + }); + }, undefined, `assign a object: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(() => { + this.title.value = 'Hi'; // assign the object property + }); + }, undefined, `assign a object property: ${this.title.value}`); + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Blue) + .onClick(() => { + this.title.name.value = 'ArkUI'; // can not observe properties of second-level objects + }); + }, undefined, `assign a object second layer property: ${this.title.name.value}`); + }); + } +} +/** @memo */ +export function Page2(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Page2Options): void { + const updatedInitializers: Page2Options = { + __backing_title: initializers?.__backing_title + }; + ArkPage2Component._instantiate(style, () => new ArkPage2Component, content, updatedInitializers); +} +export interface Page2Options { + __backing_title?: MutableState; + title?: Model2; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts new file mode 100644 index 000000000..af002233e --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts @@ -0,0 +1,115 @@ +import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Person3 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class Model3 { + public value: string; + public name: Person3; + constructor(value: string, person: Person3) { + this.value = value; + this.name = person; + } +} +class ArkPage3Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Page3Options): void { + this.__backing_title = stateOf(initializers?.title ?? ([new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]), this); + } + // 数组类型 + private __backing_title?: MutableState; + private get title(): Model3[] { + return this.__backing_title!.value; + } + private set title(value: Model3[]) { + this.__backing_title!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Page3Options | undefined): void { + OnChange(this.title, (_: Model3[]) => this.onTitleChange("title")); + } + onTitleChange() { + console.log(`observe the object and object property change`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Page3Options) { + ArkColumn(__instance => { + { + __instance.height('100%') + .width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(() => { + this.title = [new Model3("33", new Person3("33"))]; // Array assignment + }); + }, undefined, `assign an array: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(() => { + this.title[0] = new Model3("44", new Person3("44")); // Array item assignment + }); + }, undefined, `assign item: ${this.title[0].value}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Gray) + .onClick(() => { + this.title.pop(); // + }); + }, undefined, `delete array items: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Yellow) + .onClick(() => { + this.title.push(new Model3("12", new Person3("12"))); + }); + }, undefined, `Added array items: ${JSON.stringify(this.title)}`); + }); + } +} +/** @memo */ +export function Page3(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Page3Options): void { + const updatedInitializers: Page3Options = { + __backing_title: initializers?.__backing_title + }; + ArkPage3Component._instantiate(style, () => new ArkPage3Component, content, updatedInitializers); +} +export interface Page3Options { + __backing_title?: MutableState; + title?: Model3[]; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts new file mode 100644 index 000000000..b71464e3c --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts @@ -0,0 +1,77 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkDatePickerExampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: DatePickerExampleOptions): void { + this.__backing_selectedDate = stateOf(initializers?.selectedDate ?? (new Date('2021-08-08')), this); + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: DatePickerExampleOptions) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-08'); + }); + }, undefined, 'set selectedDate to 2023-07-08'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1); + }); + }, undefined, 'increase the year by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setMonth(this.selectedDate.getMonth() + 1); + }); + }, undefined, 'increase the month by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, 'increase the day by 1'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + }); + } +} +/** @memo */ +export function DatePickerExample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: DatePickerExampleOptions): void { + const updatedInitializers: DatePickerExampleOptions = { + __backing_selectedDate: initializers?.__backing_selectedDate + }; + ArkDatePickerExampleComponent._instantiate(style, () => new ArkDatePickerExampleComponent, content, updatedInitializers); +} +export interface DatePickerExampleOptions { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts new file mode 100644 index 000000000..183d723cf --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts @@ -0,0 +1,89 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkMapSampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MapSampleOptions): void { + this.__backing_message = stateOf>(initializers?.message ?? (new Map([[0, "a"], [1, "b"], [3, "c"]])), this); + } + private __backing_message?: MutableState>; + private get message(): Map { + return this.__backing_message!.value; + } + private set message(value: Map) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MapSampleOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.message.entries()), (item: [ + number, + string + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[0]}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[1]}`); + ArkDivider(undefined, undefined); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); + }); + }, undefined, 'init map'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.set(4, "d"); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.set(0, "aa"); + }); + }, undefined, 'replace the first one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function MapSample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MapSampleOptions): void { + const updatedInitializers: MapSampleOptions = { + __backing_message: initializers?.__backing_message + }; + ArkMapSampleComponent._instantiate(style, () => new ArkMapSampleComponent, content, updatedInitializers); +} +export interface MapSampleOptions { + __backing_message?: MutableState>; + message?: Map; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts new file mode 100644 index 000000000..0c9a928a3 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts @@ -0,0 +1,81 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkSetSampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleOptions): void { + this.__backing_message = stateOf>(initializers?.message ?? (new Set([0, 1, 2, 3, 4])), this); + } + private __backing_message?: MutableState>; + private get message(): Set { + return this.__backing_message!.value; + } + private set message(value: Set) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.message.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[0]}`); + ArkDivider(undefined, undefined); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message = new Set([10, 1, 2, 3, 8]); + }); + }, undefined, 'init set'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleOptions): void { + const updatedInitializers: SetSampleOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleComponent._instantiate(style, () => new ArkSetSampleComponent, content, updatedInitializers); +} +export interface SetSampleOptions { + __backing_message?: MutableState>; + message?: Set; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts new file mode 100644 index 000000000..5d0ea3cb3 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts @@ -0,0 +1,77 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent7Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent7Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent7Options) { + ArkColumn(__builder, () => { + MyComponent7(undefined, undefined); + }); + } +} +class ArkMyComponent7Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent7Options): void { + this.__backing_count = stateOf(initializers?.count ?? (0), this); + } + private __backing_count?: MutableState; + private get count(): number | undefined { + return this.__backing_count!.value; + } + private set count(value: number | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent7Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count(${this.count})`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = undefined; // UI will be triggered + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent7(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent7Options): void { + const updatedInitializers: EntryComponent7Options = {}; + ArkEntryComponent7Component._instantiate(style, () => new ArkEntryComponent7Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent7(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent7Options): void { + const updatedInitializers: MyComponent7Options = { + __backing_count: initializers?.__backing_count + }; + ArkMyComponent7Component._instantiate(style, () => new ArkMyComponent7Component, content, updatedInitializers); +} +export interface EntryComponent7Options { +} +export interface MyComponent7Options { + __backing_count?: MutableState; + count?: number | undefined; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts new file mode 100644 index 000000000..13a58ccab --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts @@ -0,0 +1,79 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent8Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent8Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent8Options) { + ArkColumn(__builder, () => { + MyComponent8(undefined, undefined); + }); + } +} +class ArkMyComponent8Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent8Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent8Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, 'Hello'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent8(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent8Options): void { + const updatedInitializers: EntryComponent8Options = {}; + ArkEntryComponent8Component._instantiate(style, () => new ArkEntryComponent8Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent8(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent8Options): void { + const updatedInitializers: MyComponent8Options = { + __backing_count: initializers?.__backing_count + }; + ArkMyComponent8Component._instantiate(style, () => new ArkMyComponent8Component, content, updatedInitializers); +} +export interface EntryComponent8Options { +} +export interface MyComponent8Options { + __backing_count?: MutableState; + count?: Resource; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts new file mode 100644 index 000000000..b3a79c747 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts @@ -0,0 +1,112 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponentOptions): void { + this.__backing_state = stateOf(initializers?.state ?? (2), this); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponentOptions) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.state += 4; // change state, will synchronize to its Child. + }); + }, undefined, `${this.state}`); + MyComponent(undefined, undefined, { prop: this.state } as MyComponentOptions); + }); + } +} +class ArkMyComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponentOptions): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_prop = propState(1); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_prop?: SyncedProperty; + private get prop(): number { + return this.__backing_prop!.value; + } + private set prop(value: number) { + this.__backing_prop!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: MyComponentOptions | undefined): void { + this.__backing_prop?.update(initializers?.prop); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponentOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.prop}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.prop += 5; // change prop, will not sync back to its parent + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponentOptions): void { + const updatedInitializers: EntryComponentOptions = { + __backing_state: initializers?.__backing_state + }; + ArkEntryComponentComponent._instantiate(style, () => new ArkEntryComponentComponent, content, updatedInitializers); +} +/** @memo */ +export function MyComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponentOptions): void { + const updatedInitializers: MyComponentOptions = { + __backing_count: initializers?.__backing_count, + prop: initializers?.prop, + __backing_prop: initializers?.__backing_prop + }; + ArkMyComponentComponent._instantiate(style, () => new ArkMyComponentComponent, content, updatedInitializers); +} +export interface EntryComponentOptions { + __backing_state?: MutableState; + state?: number; +} +export interface MyComponentOptions { + __backing_count?: MutableState; + count?: Resource; + __backing_prop?: SyncedProperty; + prop?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts new file mode 100644 index 000000000..467191a75 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts @@ -0,0 +1,107 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent10Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent10Options): void { + this.__backing_state = stateOf(initializers?.state ?? (2), this); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent10Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.state += 4; // change state, will synchronize to its Child. + }); + }, undefined, `${this.state}`); + MyComponent10(undefined, undefined, { link: this.state } as MyComponent10Options); + }); + } +} +class ArkMyComponent10Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent10Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_link = initializers!.__backing_link!; + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_link?: MutableState; + private get link(): number { + return this.__backing_link!.value; + } + private set link(value: number) { + this.__backing_link!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent10Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.link}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.link += 5; // change link, will sync back to its parent + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent10(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent10Options): void { + const updatedInitializers: EntryComponent10Options = { + __backing_state: initializers?.__backing_state + }; + ArkEntryComponent10Component._instantiate(style, () => new ArkEntryComponent10Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent10(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent10Options): void { + const updatedInitializers: MyComponent10Options = { + __backing_count: initializers?.__backing_count, + __backing_link: initializers?.__backing_link + }; + ArkMyComponent10Component._instantiate(style, () => new ArkMyComponent10Component, content, updatedInitializers); +} +export interface EntryComponent10Options { + __backing_state?: MutableState; + state?: number; +} +export interface MyComponent10Options { + __backing_count?: MutableState; + count?: Resource; + __backing_link?: MutableState; + link?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts new file mode 100644 index 000000000..301f409fb --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts @@ -0,0 +1,122 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class Model11 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class ArkEntryComponent11Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent11Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent11Options) { + ArkColumn(__builder, () => { + // 此处指定的任何命名参数都将在初始渲染时 + // 覆盖本地定义的默认值 + MyComponent11(undefined, undefined, { count: 1, increaseBy: 2 } as MyComponent11Options); + MyComponent11(undefined, undefined, { title: new Model11('Hello, World 2'), count: 7 } as MyComponent11Options); + }); + } +} +class ArkMyComponent11Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent11Options): void { + this.__backing_title = stateOf(initializers?.title ?? (new Model11('local child value')), this); + this.__backing_count = stateOf(initializers?.count ?? (0), this); + this.__backing_increaseBy = initializers?.increaseBy ?? (1); + } + private __backing_title?: MutableState; + private get title(): Model11 { + return this.__backing_title!.value; + } + private set title(value: Model11) { + this.__backing_title!.value = observableProxy(value); + } + private __backing_count?: MutableState; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_increaseBy?: number; + private get increaseBy(): number { + return this.__backing_increaseBy as number; + } + private set increaseBy(value: number) { + this.__backing_increaseBy = value; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent11Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count : ${this.count} titleValue : ${this.title.value}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.title.value = this.title.value == 'Hello Ace' ? 'Hello World' : 'Hello Ace'; + }); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(10); + }, undefined, `Click to change title`); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.count += this.increaseBy; + }); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(10); + }, undefined, `Click to increase count=${this.count}`); + }); + }); // Column + } // build +} +/** @memo */ +export function EntryComponent11(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent11Options): void { + const updatedInitializers: EntryComponent11Options = {}; + ArkEntryComponent11Component._instantiate(style, () => new ArkEntryComponent11Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent11(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent11Options): void { + const updatedInitializers: MyComponent11Options = { + __backing_title: initializers?.__backing_title, + __backing_count: initializers?.__backing_count, + increaseBy: initializers?.increaseBy + }; + ArkMyComponent11Component._instantiate(style, () => new ArkMyComponent11Component, content, updatedInitializers); +} +export interface EntryComponent11Options { +} +export interface MyComponent11Options { + __backing_title?: MutableState; + title?: Model11; + __backing_count?: MutableState; + count?: number; + increaseBy?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts new file mode 100644 index 000000000..5da3f0bbb --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts @@ -0,0 +1,161 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkFlex, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, FlexDirection, FlexOptions, ItemAlign, SyncedProperty, TextAlign, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Son12 { + public title: string; + constructor(title: string) { + this.title = title; + } +} +@Observed +class Father12 { + public name: string; + public son: Son12; + constructor(name: string, son: Son12) { + this.name = name; + this.son = son; + } +} +class ArkPerson12Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Person12Options): void { + this.__backing_person = stateOf(initializers?.person ?? (new Father12('Hello', new Son12('world'))), this); + } + private __backing_person?: MutableState; + private get person(): Father12 { + return this.__backing_person!.value; + } + private set person(value: Father12) { + this.__backing_person!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Person12Options) { + ArkColumn(__builder, () => { + ArkFlex(undefined, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.name = "Hi"; + }); + }, undefined, 'change Father12 name'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.son.title = "ArkUI"; // Son12 must be decorated with @Observed + }); + }, undefined, 'change Son12 title'); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .fontColor('#e6000000') + .onClick(() => { + this.person.name = 'Bye'; + }); + }, undefined, this.person.name); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.person.son.title = "openHarmony"; + }); + }, undefined, this.person.son.title); + Child(undefined, undefined, { child: this.person.son } as ChildOptions); + }, { direction: FlexDirection.Column, alignItems: ItemAlign.Center } as FlexOptions); + }); + } +} +class ArkChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ChildOptions): void { + this.__backing_child = propState(new Son12('')); + } + private __backing_child?: SyncedProperty; + private get child(): Son12 { + return this.__backing_child!.value; + } + private set child(value: Son12) { + this.__backing_child!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ChildOptions | undefined): void { + this.__backing_child?.update(initializers?.child); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ChildOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.child.title = 'Bye Bye'; + }); + }, undefined, this.child.title); + }); + } +} +/** @memo */ +export function Person12(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Person12Options): void { + const updatedInitializers: Person12Options = { + __backing_person: initializers?.__backing_person + }; + ArkPerson12Component._instantiate(style, () => new ArkPerson12Component, content, updatedInitializers); +} +/** @memo */ +export function Child(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ChildOptions): void { + const updatedInitializers: ChildOptions = { + child: initializers?.child, + __backing_child: initializers?.__backing_child + }; + ArkChildComponent._instantiate(style, () => new ArkChildComponent, content, updatedInitializers); +} +export interface Person12Options { + __backing_person?: MutableState; + person?: Father12; +} +export interface ChildOptions { + __backing_child?: SyncedProperty; + child?: Son12; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts new file mode 100644 index 000000000..9de25d6d7 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts @@ -0,0 +1,86 @@ +import { ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Info13 { + info: string = 'Hello'; +} +class ArkChild13Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child13Options): void { + this.__backing_test = initializers!.__backing_test!; + } + private __backing_test?: MutableState; + private get test(): Info13 { + return this.__backing_test!.value; + } + private set test(value: Info13) { + this.__backing_test!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child13Options) { + ArkText(__builder, undefined, this.test.info); + } +} +class ArkLinkExampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: LinkExampleOptions): void { + this.__backing_info = stateOf(initializers?.info ?? (new Info13()), this); + } + private __backing_info?: MutableState; + private get info(): Info13 { + return this.__backing_info!.value; + } + private set info(value: Info13) { + this.__backing_info!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: LinkExampleOptions) { + ArkColumn(__builder, () => { + Child13(undefined, undefined, { test: this.info } as Child13Options); // also support this spec + Child13(undefined, undefined, { __backing_test: this.__backing_info } as Child13Options); // support $ + }); + } +} +/** @memo */ +export function Child13(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child13Options): void { + const updatedInitializers: Child13Options = { + __backing_test: initializers?.__backing_test + }; + ArkChild13Component._instantiate(style, () => new ArkChild13Component, content, updatedInitializers); +} +/** @memo */ +export function LinkExample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: LinkExampleOptions): void { + const updatedInitializers: LinkExampleOptions = { + __backing_info: initializers?.__backing_info + }; + ArkLinkExampleComponent._instantiate(style, () => new ArkLinkExampleComponent, content, updatedInitializers); +} +export interface Child13Options { + __backing_test?: MutableState; + test?: Info13; +} +export interface LinkExampleOptions { + __backing_info?: MutableState; + info?: Info13; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts new file mode 100644 index 000000000..eb6299a51 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts @@ -0,0 +1,118 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; +import { MutableState, contextLocal } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkChild14Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child14Options): void { + this.__backing_selectedDate = initializers!.__backing_selectedDate!; + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child14Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, `child increase the day by 1`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-09-09'); + }); + }, undefined, 'child update the new date'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + }); + } +} +class ArkParent14Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent14Options): void { + this.__backing_selectedDate = initializers!.__backing_selectedDate!; + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent14Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, 'parent increase the day by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-07'); + }); + }, undefined, 'parent update the new date'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + Child14(undefined, undefined); + }); + } +} +/** @memo */ +export function Child14(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child14Options): void { + const __consume_selectedDate = contextLocal("selectedDate") as MutableState; + const updatedInitializers: Child14Options = { + __backing_selectedDate: __consume_selectedDate + }; + ArkChild14Component._instantiate(style, () => new ArkChild14Component, content, updatedInitializers); +} +/** @memo */ +export function Parent14(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent14Options): void { + const __provide_selectedDate = contextLocalStateOf("selectedDate", () => new Date('2021-08-08')); + const updatedInitializers: Parent14Options = { + __backing_selectedDate: __provide_selectedDate + }; + ArkParent14Component._instantiate(style, () => new ArkParent14Component, content, updatedInitializers); +} +export interface Child14Options { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} +export interface Parent14Options { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts new file mode 100644 index 000000000..30a743c84 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts @@ -0,0 +1,180 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, RowOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; +import { MutableState, contextLocal } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkGrandSon15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandSon15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Consume装饰的变量通过相同的属性名绑定其祖先内的@Provide装饰的变量 + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandSon15Options) { + ArkColumn(__instance => { + { + __instance.width('50%'); + } + __builder?.(__instance); + }, () => { + ArkText(undefined, undefined, `reviewVotes(${this.reviewVotes})`); // Text显示10 + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => this.reviewVotes += 1); + }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); + }); + } +} +class ArkChild15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 10; + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child15Options) { + ArkRow(__builder, () => { + GrandSon15(undefined, undefined); + }, { space: 5 } as RowOptions); + } +} +class ArkParent15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 20; + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent15Options) { + Child15(__builder, undefined); + } +} +class ArkGrandParent15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandParent15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandParent15Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => this.reviewVotes += 1); + }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); + Parent15(undefined, undefined); + }); + } +} +/** @memo */ +export function GrandSon15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandSon15Options): void { + const __consume_reviewVotes = contextLocal("reviewVotes") as MutableState; + const updatedInitializers: GrandSon15Options = { + __backing_reviewVotes: __consume_reviewVotes + }; + ArkGrandSon15Component._instantiate(style, () => new ArkGrandSon15Component, content, updatedInitializers); +} +/** @memo */ +export function Child15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 10); + const updatedInitializers: Child15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkChild15Component._instantiate(style, () => new ArkChild15Component, content, updatedInitializers); +} +/** @memo */ +export function Parent15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 20); + const updatedInitializers: Parent15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkParent15Component._instantiate(style, () => new ArkParent15Component, content, updatedInitializers); +} +/** @memo */ +export function GrandParent15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandParent15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 40); + const updatedInitializers: GrandParent15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkGrandParent15Component._instantiate(style, () => new ArkGrandParent15Component, content, updatedInitializers); +} +export interface GrandSon15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface Child15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface Parent15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface GrandParent15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts new file mode 100644 index 000000000..62e1489c9 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts @@ -0,0 +1,108 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +@Observed +class Info16 { + count: number; + constructor(count: number) { + this.count = count; + } +} +class ArkChild16Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child16Options): void { + this.__backing_num = objectLinkState(); + } + private __backing_num?: SyncedProperty; + private get num(): Info16 { + return this.__backing_num!.value; + } + private set num(value: Info16) { + this.__backing_num!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Child16Options | undefined): void { + this.__backing_num?.update(initializers?.num); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child16Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.onClick(() => { + // 正确写法,可以更改@ObjectLink装饰变量的成员属性 + this.num.count += 20; // modify count can sync back its parent + }); + }, undefined, `num的值: ${this.num.count}`); + }); + } +} +class ArkParent16Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent16Options): void { + this.__backing_num = stateOf(initializers?.num ?? (new Info16(10)), this); + } + private __backing_num?: MutableState; + private get num(): Info16 { + return this.__backing_num!.value; + } + private set num(value: Info16) { + this.__backing_num!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent16Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count的值: ${this.num.count}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // 可以在父组件做整体替换 + this.num = new Info16(30); // modify ObjectLink object, can sync to its child + }); + }, undefined, 'click'); + Child16(undefined, undefined, { num: this.num } as Child16Options); + }); + } +} +/** @memo */ +export function Child16(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child16Options): void { + const updatedInitializers: Child16Options = { + num: initializers?.num, + __backing_num: initializers?.__backing_num + }; + ArkChild16Component._instantiate(style, () => new ArkChild16Component, content, updatedInitializers); +} +/** @memo */ +export function Parent16(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent16Options): void { + const updatedInitializers: Parent16Options = { + __backing_num: initializers?.__backing_num + }; + ArkParent16Component._instantiate(style, () => new ArkParent16Component, content, updatedInitializers); +} +export interface Child16Options { + __backing_num?: SyncedProperty; + num?: Info16; +} +export interface Parent16Options { + __backing_num?: MutableState; + num?: Info16; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts new file mode 100644 index 000000000..a185b5135 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts @@ -0,0 +1,249 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, TextAlign, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +let NextID: number = 1; +@Observed +class Bag { + public id: number; + public size: number; + constructor(size: number) { + this.id = NextID++; + this.size = size; + } +} +@Observed +class User { + public bag: Bag; + constructor(bag: Bag) { + this.bag = bag; + } +} +@Observed +class Book { + public bookName: BookName; + constructor(bookName: BookName) { + this.bookName = bookName; + } +} +@Observed +class BookName extends Bag { + public nameSize: number; + constructor(nameSize: number) { + // 调用父类方法对nameSize进行处理 + super(nameSize); + this.nameSize = nameSize; + } +} +class ArkSon17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Son17Options): void { + this.__backing_label = initializers?.label ?? ('Son17'); + this.__backing_bag = objectLinkState(); + } + private __backing_label?: string; + private get label(): string { + return this.__backing_label as string; + } + private set label(value: string) { + this.__backing_label = value; + } + private __backing_bag?: SyncedProperty; + private get bag(): Bag { + return this.__backing_bag!.value; + } + private set bag(value: Bag) { + this.__backing_bag!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Son17Options | undefined): void { + this.__backing_bag?.update(initializers?.bag); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Son17Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center); + }, undefined, `Son17 [${this.label}] this.bag.size = ${this.bag.size}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bag.size += 1; + }); + }, undefined, `Son17: this.bag.size add 1`); + }); + } +} +class ArkFather17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Father17Options): void { + this.__backing_label = initializers?.label ?? ('Father17'); + this.__backing_bookName = objectLinkState(); + } + private __backing_label?: string; + private get label(): string { + return this.__backing_label as string; + } + private set label(value: string) { + this.__backing_label = value; + } + private __backing_bookName?: SyncedProperty; + private get bookName(): BookName { + return this.__backing_bookName!.value; + } + private set bookName(value: BookName) { + this.__backing_bookName!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Father17Options | undefined): void { + this.__backing_bookName?.update(initializers?.bookName); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Father17Options) { + ArkRow(__builder, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width(320); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center); + }, undefined, `Father17 [${this.label}] this.bookName.size = ${this.bookName.size}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bookName.size += 1; + console.log('this.bookName.size:' + this.bookName.size); + }); + }, undefined, `Father17: this.bookName.size add 1`); + }); + }); + } +} +class ArkGrandFather17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandFather17Options): void { + this.__backing_user = stateOf(initializers?.user ?? (new User(new Bag(0))), this); + this.__backing_child = stateOf(initializers?.child ?? (new Book(new BookName(0))), this); + } + private __backing_user?: MutableState; + private get user(): User { + return this.__backing_user!.value; + } + private set user(value: User) { + this.__backing_user!.value = observableProxy(value); + } + private __backing_child?: MutableState; + private get child(): Book { + return this.__backing_child!.value; + } + private set child(value: Book) { + this.__backing_child!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandFather17Options) { + ArkColumn(__builder, () => { + Son17((__instance: ArkCommonMethodComponent) => { + __instance.width(320); + }, undefined, { label: 'Son17 #1', bag: this.user.bag } as Son17Options); + Father17((__instance: ArkCommonMethodComponent) => { + __instance.width(320); + }, undefined, { label: 'Father17 #3', bookName: this.child.bookName } as Father17Options); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.child.bookName.size += 10; + console.log('this.child.bookName.size:' + this.child.bookName.size); + }); + }, undefined, `GrandFather17: this.child.bookName.size add 10`); + }); + } +} +/** @memo */ +export function Son17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Son17Options): void { + const updatedInitializers: Son17Options = { + label: initializers?.label, + bag: initializers?.bag, + __backing_bag: initializers?.__backing_bag + }; + ArkSon17Component._instantiate(style, () => new ArkSon17Component, content, updatedInitializers); +} +/** @memo */ +export function Father17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Father17Options): void { + const updatedInitializers: Father17Options = { + label: initializers?.label, + bookName: initializers?.bookName, + __backing_bookName: initializers?.__backing_bookName + }; + ArkFather17Component._instantiate(style, () => new ArkFather17Component, content, updatedInitializers); +} +/** @memo */ +export function GrandFather17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandFather17Options): void { + const updatedInitializers: GrandFather17Options = { + __backing_user: initializers?.__backing_user, + __backing_child: initializers?.__backing_child + }; + ArkGrandFather17Component._instantiate(style, () => new ArkGrandFather17Component, content, updatedInitializers); +} +export interface Son17Options { + label?: string; + __backing_bag?: SyncedProperty; + bag?: Bag; +} +export interface Father17Options { + label?: string; + __backing_bookName?: SyncedProperty; + bookName?: BookName; +} +export interface GrandFather17Options { + __backing_user?: MutableState; + user?: User; + __backing_child?: MutableState; + child?: Book; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts new file mode 100644 index 000000000..61632570c --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts @@ -0,0 +1,127 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +@Observed +class ObservedArray extends Array { + constructor(args: T[]) { + super(...args); + } +} +class ArkItemComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ItemOptions): void { + this.__backing_itemArr = objectLinkState>(); + } + private __backing_itemArr?: SyncedProperty>; + private get itemArr(): ObservedArray { + return this.__backing_itemArr!.value; + } + private set itemArr(value: ObservedArray) { + this.__backing_itemArr!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ItemOptions | undefined): void { + this.__backing_itemArr?.update(initializers?.itemArr); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ItemOptions) { + ArkRow(__builder, () => { + ForEach(this.itemArr, (item: string, index: number) => { + ArkText((__instance: ArkTextComponent) => { + __instance.width(100) + .height(100); + }, undefined, `${index}: ${item}`); + }, (item: string) => item); + }); + } +} +class ArkIndexPageComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: IndexPageOptions): void { + this.__backing_arr = stateOf>>(initializers?.arr ?? ([new ObservedArray(['apple']), new ObservedArray(['banana']), new ObservedArray(['orange'])]), this); + } + private __backing_arr?: MutableState>>; + private get arr(): Array> { + return this.__backing_arr!.value; + } + private set arr(value: Array>) { + this.__backing_arr!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: IndexPageOptions) { + ArkColumn(__builder, () => { + ForEach(this.arr, (itemArr: ObservedArray) => { + Item(undefined, undefined, { itemArr: itemArr } as ItemOptions); + }); + ArkDivider(undefined, undefined); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0].push('strawberry'); + }); + }, undefined, 'push two-dimensional array item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr.push(new ObservedArray(['pear'])); + }); + }, undefined, 'push array item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0][0] = 'APPLE'; + }); + }, undefined, 'change two-dimensional array first item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0] = new ObservedArray(['watermelon']); + }); + }, undefined, 'change array first item'); + }); + } +} +/** @memo */ +export function Item(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ItemOptions): void { + const updatedInitializers: ItemOptions = { + itemArr: initializers?.itemArr, + __backing_itemArr: initializers?.__backing_itemArr + }; + ArkItemComponent._instantiate(style, () => new ArkItemComponent, content, updatedInitializers); +} +/** @memo */ +export function IndexPage(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: IndexPageOptions): void { + const updatedInitializers: IndexPageOptions = { + __backing_arr: initializers?.__backing_arr + }; + ArkIndexPageComponent._instantiate(style, () => new ArkIndexPageComponent, content, updatedInitializers); +} +export interface ItemOptions { + __backing_itemArr?: SyncedProperty>; + itemArr?: ObservedArray; +} +export interface IndexPageOptions { + __backing_arr?: MutableState>>; + arr?: Array>; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts new file mode 100644 index 000000000..98900e846 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts @@ -0,0 +1,154 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Info { + public info: MySet; + constructor(info: MySet) { + this.info = info; + } +} +@Observed +export class MySet extends Set { + public name: string; + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + getName() { + return this.name; + } +} +class ArkSetSampleNestedComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions): void { + this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); + } + private __backing_message?: MutableState; + private get message(): Info { + return this.__backing_message!.value; + } + private set message(value: Info) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); + }); + }); + } +} +class ArkSetSampleNestedChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions): void { + this.__backing_mySet = objectLinkState>(); + } + private __backing_mySet?: SyncedProperty>; + private get mySet(): MySet { + return this.__backing_mySet!.value; + } + private set mySet(value: MySet) { + this.__backing_mySet!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { + this.__backing_mySet?.update(initializers?.mySet); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.mySet.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item}`); + ArkDivider(undefined, undefined); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSampleNested(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedOptions): void { + const updatedInitializers: SetSampleNestedOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); +} +/** @memo */ +export function SetSampleNestedChild(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedChildOptions): void { + const updatedInitializers: SetSampleNestedChildOptions = { + mySet: initializers?.mySet, + __backing_mySet: initializers?.__backing_mySet + }; + ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); +} +export interface SetSampleNestedOptions { + __backing_message?: MutableState; + message?: Info; +} +export interface SetSampleNestedChildOptions { + __backing_mySet?: SyncedProperty>; + mySet?: MySet; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts new file mode 100644 index 000000000..98900e846 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts @@ -0,0 +1,154 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Info { + public info: MySet; + constructor(info: MySet) { + this.info = info; + } +} +@Observed +export class MySet extends Set { + public name: string; + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + getName() { + return this.name; + } +} +class ArkSetSampleNestedComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions): void { + this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); + } + private __backing_message?: MutableState; + private get message(): Info { + return this.__backing_message!.value; + } + private set message(value: Info) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); + }); + }); + } +} +class ArkSetSampleNestedChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions): void { + this.__backing_mySet = objectLinkState>(); + } + private __backing_mySet?: SyncedProperty>; + private get mySet(): MySet { + return this.__backing_mySet!.value; + } + private set mySet(value: MySet) { + this.__backing_mySet!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { + this.__backing_mySet?.update(initializers?.mySet); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.mySet.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item}`); + ArkDivider(undefined, undefined); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSampleNested(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedOptions): void { + const updatedInitializers: SetSampleNestedOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); +} +/** @memo */ +export function SetSampleNestedChild(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedChildOptions): void { + const updatedInitializers: SetSampleNestedChildOptions = { + mySet: initializers?.mySet, + __backing_mySet: initializers?.__backing_mySet + }; + ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); +} +export interface SetSampleNestedOptions { + __backing_message?: MutableState; + message?: Info; +} +export interface SetSampleNestedChildOptions { + __backing_mySet?: SyncedProperty>; + mySet?: MySet; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts new file mode 100644 index 000000000..ce81e1977 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts @@ -0,0 +1,156 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Source { + public source: number; + constructor(source: number) { + this.source = source; + } +} +@Observed +class Data { + public data: number; + constructor(data: number) { + this.data = data; + } +} +class ArkParent21Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent21Options): void { + this.__backing_count = stateOf(initializers?.count ?? (new Source(10)), this); + } + private __backing_count?: MutableState; + private get count(): Source | Data | undefined { + return this.__backing_count!.value; + } + private set count(value: Source | Data | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent21Options) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + Child21(undefined, undefined, { count: this.count } as Child21Options); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 判断count的类型,做属性的更新 + if (this.count instanceof Source) { + this.count.source += 1; + } + else if (this.count instanceof Data) { + this.count.data += 1; + } + else { + console.info('count is undefined, cannot change property'); + } + }); + }, undefined, 'change count property'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为Source的实例 + this.count = new Source(100); + }); + }, undefined, 'change count to Source'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为Data的实例 + this.count = new Data(100); + }); + }, undefined, 'change count to Data'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为undefined + this.count = undefined; + }); + }, undefined, 'change count to undefined'); + }); + } +} +class ArkChild21Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child21Options): void { + this.__backing_count = objectLinkState(); + } + private __backing_count?: SyncedProperty; + private get count(): Source | Data | undefined { + return this.__backing_count!.value; + } + private set count(value: Source | Data | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Child21Options | undefined): void { + this.__backing_count?.update(initializers?.count); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child21Options) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .margin(10); + }, undefined, `count is instanceof ${this.count instanceof Source ? 'Source' : + this.count instanceof Data ? 'Data' : 'undefined'}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(15); + }, undefined, `count's property is ${this.count instanceof Source ? this.count.source : this.count?.data}`); + }); + } +} +/** @memo */ +export function Parent21(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent21Options): void { + const updatedInitializers: Parent21Options = { + __backing_count: initializers?.__backing_count + }; + ArkParent21Component._instantiate(style, () => new ArkParent21Component, content, updatedInitializers); +} +/** @memo */ +export function Child21(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child21Options): void { + const updatedInitializers: Child21Options = { + count: initializers?.count, + __backing_count: initializers?.__backing_count + }; + ArkChild21Component._instantiate(style, () => new ArkChild21Component, content, updatedInitializers); +} +export interface Parent21Options { + __backing_count?: MutableState; + count?: Source | Data | undefined; +} +export interface Child21Options { + __backing_count?: SyncedProperty; + count?: Source | Data | undefined; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts new file mode 100644 index 000000000..798b7af49 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts @@ -0,0 +1,111 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, FontWeight, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class LogTrack { + @Track + str1: string; + @Track + str2: string; + constructor(str1: string) { + this.str1 = str1; + this.str2 = 'World'; + } +} +class LogNotTrack { + str1: string; + str2: string; + constructor(str1: string) { + this.str1 = str1; + this.str2 = '世界'; + } +} +class ArkAddLogComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: AddLogOptions): void { + this.__backing_logTrack = stateOf(initializers?.logTrack ?? (new LogTrack('Hello')), this); + this.__backing_logNotTrack = stateOf(initializers?.logNotTrack ?? (new LogNotTrack('你好')), this); + } + private __backing_logTrack?: MutableState; + private get logTrack(): LogTrack { + return this.__backing_logTrack!.value; + } + private set logTrack(value: LogTrack) { + this.__backing_logTrack!.value = observableProxy(value); + } + private __backing_logNotTrack?: MutableState; + private get logNotTrack(): LogNotTrack { + return this.__backing_logNotTrack!.value; + } + private set logNotTrack(value: LogNotTrack) { + this.__backing_logNotTrack!.value = observableProxy(value); + } + isRender(index: number) { + console.log(`Text ${index} is rendered`); + return 50; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: AddLogOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(1)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logTrack.str1); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(2)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logTrack.str2); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.logTrack.str1 = 'Bye'; + }); + }, undefined, 'change logTrack.str1'); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(3)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logNotTrack.str1); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(4)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logNotTrack.str2); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.logNotTrack.str1 = '再见'; + }); + }, undefined, 'change logNotTrack.str1'); + }); + }); + } +} +/** @memo */ +export function AddLog(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: AddLogOptions): void { + const updatedInitializers: AddLogOptions = { + __backing_logTrack: initializers?.__backing_logTrack, + __backing_logNotTrack: initializers?.__backing_logNotTrack + }; + ArkAddLogComponent._instantiate(style, () => new ArkAddLogComponent, content, updatedInitializers); +} +export interface AddLogOptions { + __backing_logTrack?: MutableState; + logTrack?: LogTrack; + __backing_logNotTrack?: MutableState; + logNotTrack?: LogNotTrack; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts new file mode 100644 index 000000000..caf8c34e4 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts @@ -0,0 +1,95 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkUsePropertyNameComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: UsePropertyNameOptions): void { + this.__backing_apple = stateOf(initializers?.apple ?? (0), this); + this.__backing_cabbage = stateOf(initializers?.cabbage ?? (0), this); + this.__backing_fruit = stateOf(initializers?.fruit ?? (0), this); + } + private __backing_apple?: MutableState; + private get apple(): number { + return this.__backing_apple!.value; + } + private set apple(value: number) { + this.__backing_apple!.value = observableProxy(value); + } + private __backing_cabbage?: MutableState; + private get cabbage(): number { + return this.__backing_cabbage!.value; + } + private set cabbage(value: number) { + this.__backing_cabbage!.value = observableProxy(value); + } + private __backing_fruit?: MutableState; + private get fruit(): number { + return this.__backing_fruit!.value; + } + private set fruit(value: number) { + this.__backing_fruit!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: UsePropertyNameOptions | undefined): void { + OnChange(this.apple, (_: number) => this.countUpdated("apple")); + OnChange(this.cabbage, (_: number) => this.countUpdated("cabbage")); + } + // @Watch 回调 + countUpdated(propName: string): void { + if (propName == 'apple') { + this.fruit = this.apple; + } + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: UsePropertyNameOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Number of apples: ${this.apple.toString()}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Number of cabbages: ${this.cabbage.toString()}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Total number of fruits: ${this.fruit.toString()}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.apple++; + }); + }, undefined, 'Add apples'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.cabbage++; + }); + }, undefined, 'Add cabbages'); + }); + } +} +/** @memo */ +export function UsePropertyName(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: UsePropertyNameOptions): void { + const updatedInitializers: UsePropertyNameOptions = { + __backing_apple: initializers?.__backing_apple, + __backing_cabbage: initializers?.__backing_cabbage, + __backing_fruit: initializers?.__backing_fruit + }; + ArkUsePropertyNameComponent._instantiate(style, () => new ArkUsePropertyNameComponent, content, updatedInitializers); +} +export interface UsePropertyNameOptions { + __backing_apple?: MutableState; + apple?: number; + __backing_cabbage?: MutableState; + cabbage?: number; + __backing_fruit?: MutableState; + fruit?: number; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts new file mode 100644 index 000000000..afcb60e3e --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts @@ -0,0 +1,146 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Task { + isFinished: boolean = false; + constructor(isFinished: boolean) { + this.isFinished = isFinished; + } +} +class ArkParentComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ParentComponentOptions): void { + this.__backing_taskA = stateOf(initializers?.taskA ?? (new Task(false)), this); + this.__backing_taskB = stateOf(initializers?.taskB ?? (new Task(false)), this); + } + private __backing_taskA?: MutableState; + private get taskA(): Task { + return this.__backing_taskA!.value; + } + private set taskA(value: Task) { + this.__backing_taskA!.value = observableProxy(value); + } + private __backing_taskB?: MutableState; + private get taskB(): Task { + return this.__backing_taskB!.value; + } + private set taskB(value: Task) { + this.__backing_taskB!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ParentComponentOptions | undefined): void { + OnChange(this.taskA, (_: Task) => this.onTaskAChanged("taskA")); + OnChange(this.taskB, (_: Task) => this.onTaskBChanged("taskB")); + } + onTaskAChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + onTaskBChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ParentComponentOptions) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `父组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); + ArkText(undefined, undefined, `父组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); + ChildComponent(undefined, undefined, { taskA: this.taskA, taskB: this.taskB } as ChildComponentOptions); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.taskB = new Task(!this.taskB.isFinished); + this.taskA = new Task(!this.taskA.isFinished); + }); + }, undefined, '切换任务状态'); + }); + } +} +class ArkChildComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ChildComponentOptions): void { + this.__backing_taskB = objectLinkState(); + this.__backing_taskA = initializers!.__backing_taskA!; + } + private __backing_taskB?: SyncedProperty; + private get taskB(): Task { + return this.__backing_taskB!.value; + } + private set taskB(value: Task) { + this.__backing_taskB!.value = observableProxy(value); + } + private __backing_taskA?: MutableState; + private get taskA(): Task { + return this.__backing_taskA!.value; + } + private set taskA(value: Task) { + this.__backing_taskA!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ChildComponentOptions | undefined): void { + this.__backing_taskB?.update(initializers?.taskB); + OnChange(this.taskB, (_: Task) => this.onObjectLinkTaskChanged("taskB")); + OnChange(this.taskA, (_: Task) => this.onLinkTaskChanged("taskA")); + } + onObjectLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@ObjectLink关联的任务属性变化: ${changedPropertyName}`); + } + onLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@Link关联的任务属性变化: ${changedPropertyName}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ChildComponentOptions) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `子组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); + ArkText(undefined, undefined, `子组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); + }); + } +} +/** @memo */ +export function ParentComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ParentComponentOptions): void { + const updatedInitializers: ParentComponentOptions = { + __backing_taskA: initializers?.__backing_taskA, + __backing_taskB: initializers?.__backing_taskB + }; + ArkParentComponentComponent._instantiate(style, () => new ArkParentComponentComponent, content, updatedInitializers); +} +/** @memo */ +export function ChildComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ChildComponentOptions): void { + const updatedInitializers: ChildComponentOptions = { + taskB: initializers?.taskB, + __backing_taskB: initializers?.__backing_taskB, + __backing_taskA: initializers?.__backing_taskA + }; + ArkChildComponentComponent._instantiate(style, () => new ArkChildComponentComponent, content, updatedInitializers); +} +export interface ParentComponentOptions { + __backing_taskA?: MutableState; + taskA?: Task; + __backing_taskB?: MutableState; + taskB?: Task; +} +export interface ChildComponentOptions { + __backing_taskB?: SyncedProperty; + taskB?: Task; + __backing_taskA?: MutableState; + taskA?: Task; +} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts new file mode 100644 index 000000000..85e866407 --- /dev/null +++ b/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts @@ -0,0 +1,117 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkTotalViewComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: TotalViewOptions): void { + this.__backing_count = propState(0); + this.__backing_total = stateOf(initializers?.total ?? (0), this); + } + private __backing_count?: SyncedProperty; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_total?: MutableState; + private get total(): number { + return this.__backing_total!.value; + } + private set total(value: number) { + this.__backing_total!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: TotalViewOptions | undefined): void { + this.__backing_count?.update(initializers?.count); + OnChange(this.count, (_: number) => this.onCountUpdated("count")); + } + // @Watch 回调 + onCountUpdated(propName: string): void { + this.total += this.count; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: TotalViewOptions) { + ArkText(__builder, undefined, `Total: ${this.total}`); + } +} +class ArkCountModifierComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: CountModifierOptions): void { + this.__backing_count = stateOf(initializers?.count ?? (0), this); + } + private __backing_count?: MutableState; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: CountModifierOptions | undefined): void { + OnChange(this.count, (_: number) => this.onCountChange("count")); + } + onCountChange() { + console.log(`change count = ${this.count}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: CountModifierOptions) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + for (let i = 0; i < 1000; i++) { + this.count++; + } + }); + }, undefined, 'add to basket'); + TotalView(undefined, undefined, { count: this.count } as TotalViewOptions); + }); + } +} +/** @memo */ +export function TotalView(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: TotalViewOptions): void { + const updatedInitializers: TotalViewOptions = { + count: initializers?.count, + __backing_count: initializers?.__backing_count, + __backing_total: initializers?.__backing_total + }; + ArkTotalViewComponent._instantiate(style, () => new ArkTotalViewComponent, content, updatedInitializers); +} +/** @memo */ +export function CountModifier(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: CountModifierOptions): void { + const updatedInitializers: CountModifierOptions = { + __backing_count: initializers?.__backing_count + }; + ArkCountModifierComponent._instantiate(style, () => new ArkCountModifierComponent, content, updatedInitializers); +} +export interface TotalViewOptions { + __backing_count?: SyncedProperty; + count?: number; + __backing_total?: MutableState; + total?: number; +} +export interface CountModifierOptions { + __backing_count?: MutableState; + count?: number; +} -- Gitee From 3df3c5c05fb9d56e53ffeb0befd9a61db665aa0a Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Fri, 31 Jan 2025 11:52:39 +0300 Subject: [PATCH 03/11] Updated tests for arkts compilation Signed-off-by: Alexander Gorshenev --- arkoala-arkts/user/src/ets/tests/test02.ets | 2 +- arkoala-arkts/user/src/ets/tests/test03.ets | 2 +- arkoala-arkts/user/src/ets/tests/test05.ets | 2 +- arkoala-arkts/user/src/ets/tests/test06.ets | 2 +- arkoala-arkts/user/src/ets/tests/test18.ets | 2 +- arkoala-arkts/user/src/ets/tests/test19.ets | 2 +- arkoala-arkts/user/src/ets/tests/test20.ets | 2 +- arkoala-arkts/user/src/ets/tests/test25.ets | 2 +- 8 files changed, 8 insertions(+), 8 deletions(-) diff --git a/arkoala-arkts/user/src/ets/tests/test02.ets b/arkoala-arkts/user/src/ets/tests/test02.ets index 335171a35..960c5bedb 100644 --- a/arkoala-arkts/user/src/ets/tests/test02.ets +++ b/arkoala-arkts/user/src/ets/tests/test02.ets @@ -20,7 +20,7 @@ class Model2 { struct Page2 { // class类型 @State @Watch("onTitleChange") title: Model2 = new Model2('Hello', new Person2('World')); - onTitleChange() { + onTitleChange(name: string) { console.log(`observe the object and object property change`) } diff --git a/arkoala-arkts/user/src/ets/tests/test03.ets b/arkoala-arkts/user/src/ets/tests/test03.ets index c7a494fe4..4a84cd5e4 100644 --- a/arkoala-arkts/user/src/ets/tests/test03.ets +++ b/arkoala-arkts/user/src/ets/tests/test03.ets @@ -20,7 +20,7 @@ class Model3 { struct Page3 { // 数组类型 @State @Watch("onTitleChange") title: Model3[] = [new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]; - onTitleChange() { + onTitleChange(name: string) { console.log(`observe the object and object property change`) } diff --git a/arkoala-arkts/user/src/ets/tests/test05.ets b/arkoala-arkts/user/src/ets/tests/test05.ets index 3ea4531ae..07727db12 100644 --- a/arkoala-arkts/user/src/ets/tests/test05.ets +++ b/arkoala-arkts/user/src/ets/tests/test05.ets @@ -10,7 +10,7 @@ struct MapSample { Text(`${item[0]}`).fontSize(30) Text(`${item[1]}`).fontSize(30) Divider() - }) + }, (item: [number, string], index: number) => JSON.stringify(item[1])) Button('init map').onClick(() => { this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); }) diff --git a/arkoala-arkts/user/src/ets/tests/test06.ets b/arkoala-arkts/user/src/ets/tests/test06.ets index 80209e198..c298008fc 100644 --- a/arkoala-arkts/user/src/ets/tests/test06.ets +++ b/arkoala-arkts/user/src/ets/tests/test06.ets @@ -9,7 +9,7 @@ struct SetSample { ForEach(Array.from(this.message.entries()), (item: [number, number]) => { Text(`${item[0]}`).fontSize(30) Divider() - }) + }, (item: [number, number], index: number) => JSON.stringify(item[0].toString())) Button('init set').onClick(() => { this.message = new Set([10, 1, 2, 3, 8]); }) diff --git a/arkoala-arkts/user/src/ets/tests/test18.ets b/arkoala-arkts/user/src/ets/tests/test18.ets index 64d7f45af..445452787 100644 --- a/arkoala-arkts/user/src/ets/tests/test18.ets +++ b/arkoala-arkts/user/src/ets/tests/test18.ets @@ -29,7 +29,7 @@ struct IndexPage { Column() { ForEach(this.arr, (itemArr: ObservedArray) => { Item({ itemArr: itemArr }) - }) + }, (item: ObservedArray) => item.toString()) Divider() diff --git a/arkoala-arkts/user/src/ets/tests/test19.ets b/arkoala-arkts/user/src/ets/tests/test19.ets index 653f21e03..51233f2ec 100644 --- a/arkoala-arkts/user/src/ets/tests/test19.ets +++ b/arkoala-arkts/user/src/ets/tests/test19.ets @@ -48,7 +48,7 @@ struct SetSampleNestedChild { ForEach(Array.from(this.mySet.entries()), (item: [number, number]) => { Text(`${item}`).fontSize(30) Divider() - }) + }, (item: [number, number]) => item.toString()) Button('set new one') .width(200) .margin(10) diff --git a/arkoala-arkts/user/src/ets/tests/test20.ets b/arkoala-arkts/user/src/ets/tests/test20.ets index 653f21e03..51233f2ec 100644 --- a/arkoala-arkts/user/src/ets/tests/test20.ets +++ b/arkoala-arkts/user/src/ets/tests/test20.ets @@ -48,7 +48,7 @@ struct SetSampleNestedChild { ForEach(Array.from(this.mySet.entries()), (item: [number, number]) => { Text(`${item}`).fontSize(30) Divider() - }) + }, (item: [number, number]) => item.toString()) Button('set new one') .width(200) .margin(10) diff --git a/arkoala-arkts/user/src/ets/tests/test25.ets b/arkoala-arkts/user/src/ets/tests/test25.ets index 3e1605b5b..3a107e527 100644 --- a/arkoala-arkts/user/src/ets/tests/test25.ets +++ b/arkoala-arkts/user/src/ets/tests/test25.ets @@ -17,7 +17,7 @@ struct TotalView { struct CountModifier { @State @Watch('onCountChange') count: number = 0; - onCountChange() { + onCountChange(name: string) { console.log(`change count = ${this.count}`) } build() { -- Gitee From 2f98a1977f5f1053daf0794c35d44c496c08b131 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Fri, 31 Jan 2025 11:56:40 +0300 Subject: [PATCH 04/11] more Signed-off-by: Alexander Gorshenev --- .../src/ets/tests/tmp-generated/test01.ts | 112 -------- .../src/ets/tests/tmp-generated/test02.ts | 107 -------- .../src/ets/tests/tmp-generated/test03.ts | 115 -------- .../src/ets/tests/tmp-generated/test04.ts | 77 ------ .../src/ets/tests/tmp-generated/test05.ts | 89 ------- .../src/ets/tests/tmp-generated/test06.ts | 81 ------ .../src/ets/tests/tmp-generated/test07.ts | 77 ------ .../src/ets/tests/tmp-generated/test08.ts | 79 ------ .../src/ets/tests/tmp-generated/test09.ts | 112 -------- .../src/ets/tests/tmp-generated/test10.ts | 107 -------- .../src/ets/tests/tmp-generated/test11.ts | 122 --------- .../src/ets/tests/tmp-generated/test12.ts | 161 ----------- .../src/ets/tests/tmp-generated/test13.ts | 86 ------ .../src/ets/tests/tmp-generated/test14.ts | 118 --------- .../src/ets/tests/tmp-generated/test15.ts | 180 ------------- .../src/ets/tests/tmp-generated/test16.ts | 108 -------- .../src/ets/tests/tmp-generated/test17.ts | 249 ------------------ .../src/ets/tests/tmp-generated/test18.ts | 127 --------- .../src/ets/tests/tmp-generated/test19.ts | 154 ----------- .../src/ets/tests/tmp-generated/test20.ts | 154 ----------- .../src/ets/tests/tmp-generated/test21.ts | 156 ----------- .../src/ets/tests/tmp-generated/test22.ts | 111 -------- .../src/ets/tests/tmp-generated/test23.ts | 95 ------- .../src/ets/tests/tmp-generated/test24.ts | 146 ---------- .../src/ets/tests/tmp-generated/test25.ts | 117 -------- 25 files changed, 3040 deletions(-) delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts delete mode 100644 arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts deleted file mode 100644 index 275d76bc4..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test01.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -class ArkEntryComponent1Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent1Options): void { - this.__backing_prop = propState(2); - } - private __backing_prop?: SyncedProperty; - private get prop(): number { - return this.__backing_prop!.value; - } - private set prop(value: number) { - this.__backing_prop!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: EntryComponent1Options | undefined): void { - this.__backing_prop?.update(initializers?.prop); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent1Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.prop += 4; // only received once, change prop, will not synchronized to its Child. - }); - }, undefined, `${this.prop}`); - MyComponent1(undefined, undefined, { state: this.prop } as MyComponent1Options); - }); - } -} -class ArkMyComponent1Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent1Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_state = stateOf(initializers?.state ?? (1), this); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent1Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.state}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = $r('sys.media.ohos_user_auth_icon_face'); - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent1(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent1Options): void { - const updatedInitializers: EntryComponent1Options = { - prop: initializers?.prop, - __backing_prop: initializers?.__backing_prop - }; - ArkEntryComponent1Component._instantiate(style, () => new ArkEntryComponent1Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent1(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent1Options): void { - const updatedInitializers: MyComponent1Options = { - __backing_count: initializers?.__backing_count, - __backing_state: initializers?.__backing_state - }; - ArkMyComponent1Component._instantiate(style, () => new ArkMyComponent1Component, content, updatedInitializers); -} -export interface EntryComponent1Options { - __backing_prop?: SyncedProperty; - prop?: number; -} -export interface MyComponent1Options { - __backing_count?: MutableState; - count?: Resource; - __backing_state?: MutableState; - state?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts deleted file mode 100644 index edcd52906..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test02.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Person2 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class Model2 { - public value: string; - public name: Person2; - constructor(value: string, person: Person2) { - this.value = value; - this.name = person; - } -} -class ArkPage2Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Page2Options): void { - this.__backing_title = stateOf(initializers?.title ?? (new Model2('Hello', new Person2('World'))), this); - } - // class类型 - private __backing_title?: MutableState; - private get title(): Model2 { - return this.__backing_title!.value; - } - private set title(value: Model2) { - this.__backing_title!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Page2Options | undefined): void { - OnChange(this.title, (_: Model2) => this.onTitleChange("title")); - } - onTitleChange() { - console.log(`observe the object and object property change`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Page2Options) { - ArkColumn(__instance => { - { - __instance.height('100%') - .width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Green) - .onClick(() => { - this.title = new Model2('Hi', new Person2('ArkUI')); // assign the object to @State variable - }); - }, undefined, `assign a object: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Red) - .onClick(() => { - this.title.value = 'Hi'; // assign the object property - }); - }, undefined, `assign a object property: ${this.title.value}`); - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Blue) - .onClick(() => { - this.title.name.value = 'ArkUI'; // can not observe properties of second-level objects - }); - }, undefined, `assign a object second layer property: ${this.title.name.value}`); - }); - } -} -/** @memo */ -export function Page2(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Page2Options): void { - const updatedInitializers: Page2Options = { - __backing_title: initializers?.__backing_title - }; - ArkPage2Component._instantiate(style, () => new ArkPage2Component, content, updatedInitializers); -} -export interface Page2Options { - __backing_title?: MutableState; - title?: Model2; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts deleted file mode 100644 index af002233e..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test03.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Person3 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class Model3 { - public value: string; - public name: Person3; - constructor(value: string, person: Person3) { - this.value = value; - this.name = person; - } -} -class ArkPage3Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Page3Options): void { - this.__backing_title = stateOf(initializers?.title ?? ([new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]), this); - } - // 数组类型 - private __backing_title?: MutableState; - private get title(): Model3[] { - return this.__backing_title!.value; - } - private set title(value: Model3[]) { - this.__backing_title!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Page3Options | undefined): void { - OnChange(this.title, (_: Model3[]) => this.onTitleChange("title")); - } - onTitleChange() { - console.log(`observe the object and object property change`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Page3Options) { - ArkColumn(__instance => { - { - __instance.height('100%') - .width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Green) - .onClick(() => { - this.title = [new Model3("33", new Person3("33"))]; // Array assignment - }); - }, undefined, `assign an array: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Red) - .onClick(() => { - this.title[0] = new Model3("44", new Person3("44")); // Array item assignment - }); - }, undefined, `assign item: ${this.title[0].value}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Gray) - .onClick(() => { - this.title.pop(); // - }); - }, undefined, `delete array items: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Yellow) - .onClick(() => { - this.title.push(new Model3("12", new Person3("12"))); - }); - }, undefined, `Added array items: ${JSON.stringify(this.title)}`); - }); - } -} -/** @memo */ -export function Page3(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Page3Options): void { - const updatedInitializers: Page3Options = { - __backing_title: initializers?.__backing_title - }; - ArkPage3Component._instantiate(style, () => new ArkPage3Component, content, updatedInitializers); -} -export interface Page3Options { - __backing_title?: MutableState; - title?: Model3[]; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts deleted file mode 100644 index b71464e3c..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test04.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkDatePickerExampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: DatePickerExampleOptions): void { - this.__backing_selectedDate = stateOf(initializers?.selectedDate ?? (new Date('2021-08-08')), this); - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: DatePickerExampleOptions) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-07-08'); - }); - }, undefined, 'set selectedDate to 2023-07-08'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1); - }); - }, undefined, 'increase the year by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setMonth(this.selectedDate.getMonth() + 1); - }); - }, undefined, 'increase the month by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, 'increase the day by 1'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - }); - } -} -/** @memo */ -export function DatePickerExample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: DatePickerExampleOptions): void { - const updatedInitializers: DatePickerExampleOptions = { - __backing_selectedDate: initializers?.__backing_selectedDate - }; - ArkDatePickerExampleComponent._instantiate(style, () => new ArkDatePickerExampleComponent, content, updatedInitializers); -} -export interface DatePickerExampleOptions { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts deleted file mode 100644 index 183d723cf..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test05.ts +++ /dev/null @@ -1,89 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkMapSampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MapSampleOptions): void { - this.__backing_message = stateOf>(initializers?.message ?? (new Map([[0, "a"], [1, "b"], [3, "c"]])), this); - } - private __backing_message?: MutableState>; - private get message(): Map { - return this.__backing_message!.value; - } - private set message(value: Map) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MapSampleOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.message.entries()), (item: [ - number, - string - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[0]}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[1]}`); - ArkDivider(undefined, undefined); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); - }); - }, undefined, 'init map'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.set(4, "d"); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.set(0, "aa"); - }); - }, undefined, 'replace the first one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function MapSample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MapSampleOptions): void { - const updatedInitializers: MapSampleOptions = { - __backing_message: initializers?.__backing_message - }; - ArkMapSampleComponent._instantiate(style, () => new ArkMapSampleComponent, content, updatedInitializers); -} -export interface MapSampleOptions { - __backing_message?: MutableState>; - message?: Map; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts deleted file mode 100644 index 0c9a928a3..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test06.ts +++ /dev/null @@ -1,81 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkSetSampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleOptions): void { - this.__backing_message = stateOf>(initializers?.message ?? (new Set([0, 1, 2, 3, 4])), this); - } - private __backing_message?: MutableState>; - private get message(): Set { - return this.__backing_message!.value; - } - private set message(value: Set) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.message.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[0]}`); - ArkDivider(undefined, undefined); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message = new Set([10, 1, 2, 3, 8]); - }); - }, undefined, 'init set'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleOptions): void { - const updatedInitializers: SetSampleOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleComponent._instantiate(style, () => new ArkSetSampleComponent, content, updatedInitializers); -} -export interface SetSampleOptions { - __backing_message?: MutableState>; - message?: Set; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts deleted file mode 100644 index 5d0ea3cb3..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test07.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent7Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent7Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent7Options) { - ArkColumn(__builder, () => { - MyComponent7(undefined, undefined); - }); - } -} -class ArkMyComponent7Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent7Options): void { - this.__backing_count = stateOf(initializers?.count ?? (0), this); - } - private __backing_count?: MutableState; - private get count(): number | undefined { - return this.__backing_count!.value; - } - private set count(value: number | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent7Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count(${this.count})`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = undefined; // UI will be triggered - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent7(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent7Options): void { - const updatedInitializers: EntryComponent7Options = {}; - ArkEntryComponent7Component._instantiate(style, () => new ArkEntryComponent7Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent7(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent7Options): void { - const updatedInitializers: MyComponent7Options = { - __backing_count: initializers?.__backing_count - }; - ArkMyComponent7Component._instantiate(style, () => new ArkMyComponent7Component, content, updatedInitializers); -} -export interface EntryComponent7Options { -} -export interface MyComponent7Options { - __backing_count?: MutableState; - count?: number | undefined; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts deleted file mode 100644 index 13a58ccab..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test08.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent8Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent8Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent8Options) { - ArkColumn(__builder, () => { - MyComponent8(undefined, undefined); - }); - } -} -class ArkMyComponent8Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent8Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent8Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, 'Hello'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = $r('sys.media.ohos_user_auth_icon_face'); - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent8(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent8Options): void { - const updatedInitializers: EntryComponent8Options = {}; - ArkEntryComponent8Component._instantiate(style, () => new ArkEntryComponent8Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent8(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent8Options): void { - const updatedInitializers: MyComponent8Options = { - __backing_count: initializers?.__backing_count - }; - ArkMyComponent8Component._instantiate(style, () => new ArkMyComponent8Component, content, updatedInitializers); -} -export interface EntryComponent8Options { -} -export interface MyComponent8Options { - __backing_count?: MutableState; - count?: Resource; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts deleted file mode 100644 index b3a79c747..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test09.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponentOptions): void { - this.__backing_state = stateOf(initializers?.state ?? (2), this); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponentOptions) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.state += 4; // change state, will synchronize to its Child. - }); - }, undefined, `${this.state}`); - MyComponent(undefined, undefined, { prop: this.state } as MyComponentOptions); - }); - } -} -class ArkMyComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponentOptions): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_prop = propState(1); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_prop?: SyncedProperty; - private get prop(): number { - return this.__backing_prop!.value; - } - private set prop(value: number) { - this.__backing_prop!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: MyComponentOptions | undefined): void { - this.__backing_prop?.update(initializers?.prop); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponentOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.prop}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.prop += 5; // change prop, will not sync back to its parent - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponentOptions): void { - const updatedInitializers: EntryComponentOptions = { - __backing_state: initializers?.__backing_state - }; - ArkEntryComponentComponent._instantiate(style, () => new ArkEntryComponentComponent, content, updatedInitializers); -} -/** @memo */ -export function MyComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponentOptions): void { - const updatedInitializers: MyComponentOptions = { - __backing_count: initializers?.__backing_count, - prop: initializers?.prop, - __backing_prop: initializers?.__backing_prop - }; - ArkMyComponentComponent._instantiate(style, () => new ArkMyComponentComponent, content, updatedInitializers); -} -export interface EntryComponentOptions { - __backing_state?: MutableState; - state?: number; -} -export interface MyComponentOptions { - __backing_count?: MutableState; - count?: Resource; - __backing_prop?: SyncedProperty; - prop?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts deleted file mode 100644 index 467191a75..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test10.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent10Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent10Options): void { - this.__backing_state = stateOf(initializers?.state ?? (2), this); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent10Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.state += 4; // change state, will synchronize to its Child. - }); - }, undefined, `${this.state}`); - MyComponent10(undefined, undefined, { link: this.state } as MyComponent10Options); - }); - } -} -class ArkMyComponent10Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent10Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_link = initializers!.__backing_link!; - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_link?: MutableState; - private get link(): number { - return this.__backing_link!.value; - } - private set link(value: number) { - this.__backing_link!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent10Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.link}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.link += 5; // change link, will sync back to its parent - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent10(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent10Options): void { - const updatedInitializers: EntryComponent10Options = { - __backing_state: initializers?.__backing_state - }; - ArkEntryComponent10Component._instantiate(style, () => new ArkEntryComponent10Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent10(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent10Options): void { - const updatedInitializers: MyComponent10Options = { - __backing_count: initializers?.__backing_count, - __backing_link: initializers?.__backing_link - }; - ArkMyComponent10Component._instantiate(style, () => new ArkMyComponent10Component, content, updatedInitializers); -} -export interface EntryComponent10Options { - __backing_state?: MutableState; - state?: number; -} -export interface MyComponent10Options { - __backing_count?: MutableState; - count?: Resource; - __backing_link?: MutableState; - link?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts deleted file mode 100644 index 301f409fb..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test11.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class Model11 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class ArkEntryComponent11Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent11Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent11Options) { - ArkColumn(__builder, () => { - // 此处指定的任何命名参数都将在初始渲染时 - // 覆盖本地定义的默认值 - MyComponent11(undefined, undefined, { count: 1, increaseBy: 2 } as MyComponent11Options); - MyComponent11(undefined, undefined, { title: new Model11('Hello, World 2'), count: 7 } as MyComponent11Options); - }); - } -} -class ArkMyComponent11Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent11Options): void { - this.__backing_title = stateOf(initializers?.title ?? (new Model11('local child value')), this); - this.__backing_count = stateOf(initializers?.count ?? (0), this); - this.__backing_increaseBy = initializers?.increaseBy ?? (1); - } - private __backing_title?: MutableState; - private get title(): Model11 { - return this.__backing_title!.value; - } - private set title(value: Model11) { - this.__backing_title!.value = observableProxy(value); - } - private __backing_count?: MutableState; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_increaseBy?: number; - private get increaseBy(): number { - return this.__backing_increaseBy as number; - } - private set increaseBy(value: number) { - this.__backing_increaseBy = value; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent11Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count : ${this.count} titleValue : ${this.title.value}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // @State变量的更新将触发上面的Text组件内容更新 - this.title.value = this.title.value == 'Hello Ace' ? 'Hello World' : 'Hello Ace'; - }); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(10); - }, undefined, `Click to change title`); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // @State变量的更新将触发上面的Text组件内容更新 - this.count += this.increaseBy; - }); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(10); - }, undefined, `Click to increase count=${this.count}`); - }); - }); // Column - } // build -} -/** @memo */ -export function EntryComponent11(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent11Options): void { - const updatedInitializers: EntryComponent11Options = {}; - ArkEntryComponent11Component._instantiate(style, () => new ArkEntryComponent11Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent11(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent11Options): void { - const updatedInitializers: MyComponent11Options = { - __backing_title: initializers?.__backing_title, - __backing_count: initializers?.__backing_count, - increaseBy: initializers?.increaseBy - }; - ArkMyComponent11Component._instantiate(style, () => new ArkMyComponent11Component, content, updatedInitializers); -} -export interface EntryComponent11Options { -} -export interface MyComponent11Options { - __backing_title?: MutableState; - title?: Model11; - __backing_count?: MutableState; - count?: number; - increaseBy?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts deleted file mode 100644 index 5da3f0bbb..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test12.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkFlex, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, FlexDirection, FlexOptions, ItemAlign, SyncedProperty, TextAlign, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Son12 { - public title: string; - constructor(title: string) { - this.title = title; - } -} -@Observed -class Father12 { - public name: string; - public son: Son12; - constructor(name: string, son: Son12) { - this.name = name; - this.son = son; - } -} -class ArkPerson12Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Person12Options): void { - this.__backing_person = stateOf(initializers?.person ?? (new Father12('Hello', new Son12('world'))), this); - } - private __backing_person?: MutableState; - private get person(): Father12 { - return this.__backing_person!.value; - } - private set person(value: Father12) { - this.__backing_person!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Person12Options) { - ArkColumn(__builder, () => { - ArkFlex(undefined, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(312) - .height(40) - .margin(12) - .fontColor('#FFFFFF,90%') - .onClick(() => { - this.person.name = "Hi"; - }); - }, undefined, 'change Father12 name'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(312) - .height(40) - .margin(12) - .fontColor('#FFFFFF,90%') - .onClick(() => { - this.person.son.title = "ArkUI"; // Son12 must be decorated with @Observed - }); - }, undefined, 'change Son12 title'); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .fontColor('#e6000000') - .onClick(() => { - this.person.name = 'Bye'; - }); - }, undefined, this.person.name); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .onClick(() => { - this.person.son.title = "openHarmony"; - }); - }, undefined, this.person.son.title); - Child(undefined, undefined, { child: this.person.son } as ChildOptions); - }, { direction: FlexDirection.Column, alignItems: ItemAlign.Center } as FlexOptions); - }); - } -} -class ArkChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ChildOptions): void { - this.__backing_child = propState(new Son12('')); - } - private __backing_child?: SyncedProperty; - private get child(): Son12 { - return this.__backing_child!.value; - } - private set child(value: Son12) { - this.__backing_child!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ChildOptions | undefined): void { - this.__backing_child?.update(initializers?.child); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ChildOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .onClick(() => { - this.child.title = 'Bye Bye'; - }); - }, undefined, this.child.title); - }); - } -} -/** @memo */ -export function Person12(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Person12Options): void { - const updatedInitializers: Person12Options = { - __backing_person: initializers?.__backing_person - }; - ArkPerson12Component._instantiate(style, () => new ArkPerson12Component, content, updatedInitializers); -} -/** @memo */ -export function Child(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ChildOptions): void { - const updatedInitializers: ChildOptions = { - child: initializers?.child, - __backing_child: initializers?.__backing_child - }; - ArkChildComponent._instantiate(style, () => new ArkChildComponent, content, updatedInitializers); -} -export interface Person12Options { - __backing_person?: MutableState; - person?: Father12; -} -export interface ChildOptions { - __backing_child?: SyncedProperty; - child?: Son12; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts deleted file mode 100644 index 9de25d6d7..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test13.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Info13 { - info: string = 'Hello'; -} -class ArkChild13Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child13Options): void { - this.__backing_test = initializers!.__backing_test!; - } - private __backing_test?: MutableState; - private get test(): Info13 { - return this.__backing_test!.value; - } - private set test(value: Info13) { - this.__backing_test!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child13Options) { - ArkText(__builder, undefined, this.test.info); - } -} -class ArkLinkExampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: LinkExampleOptions): void { - this.__backing_info = stateOf(initializers?.info ?? (new Info13()), this); - } - private __backing_info?: MutableState; - private get info(): Info13 { - return this.__backing_info!.value; - } - private set info(value: Info13) { - this.__backing_info!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: LinkExampleOptions) { - ArkColumn(__builder, () => { - Child13(undefined, undefined, { test: this.info } as Child13Options); // also support this spec - Child13(undefined, undefined, { __backing_test: this.__backing_info } as Child13Options); // support $ - }); - } -} -/** @memo */ -export function Child13(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child13Options): void { - const updatedInitializers: Child13Options = { - __backing_test: initializers?.__backing_test - }; - ArkChild13Component._instantiate(style, () => new ArkChild13Component, content, updatedInitializers); -} -/** @memo */ -export function LinkExample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: LinkExampleOptions): void { - const updatedInitializers: LinkExampleOptions = { - __backing_info: initializers?.__backing_info - }; - ArkLinkExampleComponent._instantiate(style, () => new ArkLinkExampleComponent, content, updatedInitializers); -} -export interface Child13Options { - __backing_test?: MutableState; - test?: Info13; -} -export interface LinkExampleOptions { - __backing_info?: MutableState; - info?: Info13; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts deleted file mode 100644 index eb6299a51..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test14.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; -import { MutableState, contextLocal } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkChild14Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child14Options): void { - this.__backing_selectedDate = initializers!.__backing_selectedDate!; - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child14Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, `child increase the day by 1`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-09-09'); - }); - }, undefined, 'child update the new date'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - }); - } -} -class ArkParent14Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent14Options): void { - this.__backing_selectedDate = initializers!.__backing_selectedDate!; - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent14Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, 'parent increase the day by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-07-07'); - }); - }, undefined, 'parent update the new date'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - Child14(undefined, undefined); - }); - } -} -/** @memo */ -export function Child14(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child14Options): void { - const __consume_selectedDate = contextLocal("selectedDate") as MutableState; - const updatedInitializers: Child14Options = { - __backing_selectedDate: __consume_selectedDate - }; - ArkChild14Component._instantiate(style, () => new ArkChild14Component, content, updatedInitializers); -} -/** @memo */ -export function Parent14(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent14Options): void { - const __provide_selectedDate = contextLocalStateOf("selectedDate", () => new Date('2021-08-08')); - const updatedInitializers: Parent14Options = { - __backing_selectedDate: __provide_selectedDate - }; - ArkParent14Component._instantiate(style, () => new ArkParent14Component, content, updatedInitializers); -} -export interface Child14Options { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} -export interface Parent14Options { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts deleted file mode 100644 index 30a743c84..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test15.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, RowOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; -import { MutableState, contextLocal } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkGrandSon15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandSon15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Consume装饰的变量通过相同的属性名绑定其祖先内的@Provide装饰的变量 - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandSon15Options) { - ArkColumn(__instance => { - { - __instance.width('50%'); - } - __builder?.(__instance); - }, () => { - ArkText(undefined, undefined, `reviewVotes(${this.reviewVotes})`); // Text显示10 - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => this.reviewVotes += 1); - }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); - }); - } -} -class ArkChild15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 10; - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child15Options) { - ArkRow(__builder, () => { - GrandSon15(undefined, undefined); - }, { space: 5 } as RowOptions); - } -} -class ArkParent15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 20; - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent15Options) { - Child15(__builder, undefined); - } -} -class ArkGrandParent15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandParent15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandParent15Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => this.reviewVotes += 1); - }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); - Parent15(undefined, undefined); - }); - } -} -/** @memo */ -export function GrandSon15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandSon15Options): void { - const __consume_reviewVotes = contextLocal("reviewVotes") as MutableState; - const updatedInitializers: GrandSon15Options = { - __backing_reviewVotes: __consume_reviewVotes - }; - ArkGrandSon15Component._instantiate(style, () => new ArkGrandSon15Component, content, updatedInitializers); -} -/** @memo */ -export function Child15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 10); - const updatedInitializers: Child15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkChild15Component._instantiate(style, () => new ArkChild15Component, content, updatedInitializers); -} -/** @memo */ -export function Parent15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 20); - const updatedInitializers: Parent15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkParent15Component._instantiate(style, () => new ArkParent15Component, content, updatedInitializers); -} -/** @memo */ -export function GrandParent15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandParent15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 40); - const updatedInitializers: GrandParent15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkGrandParent15Component._instantiate(style, () => new ArkGrandParent15Component, content, updatedInitializers); -} -export interface GrandSon15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface Child15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface Parent15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface GrandParent15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts deleted file mode 100644 index 62e1489c9..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test16.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -@Observed -class Info16 { - count: number; - constructor(count: number) { - this.count = count; - } -} -class ArkChild16Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child16Options): void { - this.__backing_num = objectLinkState(); - } - private __backing_num?: SyncedProperty; - private get num(): Info16 { - return this.__backing_num!.value; - } - private set num(value: Info16) { - this.__backing_num!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Child16Options | undefined): void { - this.__backing_num?.update(initializers?.num); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child16Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.onClick(() => { - // 正确写法,可以更改@ObjectLink装饰变量的成员属性 - this.num.count += 20; // modify count can sync back its parent - }); - }, undefined, `num的值: ${this.num.count}`); - }); - } -} -class ArkParent16Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent16Options): void { - this.__backing_num = stateOf(initializers?.num ?? (new Info16(10)), this); - } - private __backing_num?: MutableState; - private get num(): Info16 { - return this.__backing_num!.value; - } - private set num(value: Info16) { - this.__backing_num!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent16Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count的值: ${this.num.count}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // 可以在父组件做整体替换 - this.num = new Info16(30); // modify ObjectLink object, can sync to its child - }); - }, undefined, 'click'); - Child16(undefined, undefined, { num: this.num } as Child16Options); - }); - } -} -/** @memo */ -export function Child16(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child16Options): void { - const updatedInitializers: Child16Options = { - num: initializers?.num, - __backing_num: initializers?.__backing_num - }; - ArkChild16Component._instantiate(style, () => new ArkChild16Component, content, updatedInitializers); -} -/** @memo */ -export function Parent16(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent16Options): void { - const updatedInitializers: Parent16Options = { - __backing_num: initializers?.__backing_num - }; - ArkParent16Component._instantiate(style, () => new ArkParent16Component, content, updatedInitializers); -} -export interface Child16Options { - __backing_num?: SyncedProperty; - num?: Info16; -} -export interface Parent16Options { - __backing_num?: MutableState; - num?: Info16; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts deleted file mode 100644 index a185b5135..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test17.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, TextAlign, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -let NextID: number = 1; -@Observed -class Bag { - public id: number; - public size: number; - constructor(size: number) { - this.id = NextID++; - this.size = size; - } -} -@Observed -class User { - public bag: Bag; - constructor(bag: Bag) { - this.bag = bag; - } -} -@Observed -class Book { - public bookName: BookName; - constructor(bookName: BookName) { - this.bookName = bookName; - } -} -@Observed -class BookName extends Bag { - public nameSize: number; - constructor(nameSize: number) { - // 调用父类方法对nameSize进行处理 - super(nameSize); - this.nameSize = nameSize; - } -} -class ArkSon17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Son17Options): void { - this.__backing_label = initializers?.label ?? ('Son17'); - this.__backing_bag = objectLinkState(); - } - private __backing_label?: string; - private get label(): string { - return this.__backing_label as string; - } - private set label(value: string) { - this.__backing_label = value; - } - private __backing_bag?: SyncedProperty; - private get bag(): Bag { - return this.__backing_bag!.value; - } - private set bag(value: Bag) { - this.__backing_bag!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Son17Options | undefined): void { - this.__backing_bag?.update(initializers?.bag); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Son17Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor('#ffffffff') - .backgroundColor('#ff3d9dba') - .width(320) - .height(50) - .borderRadius(25) - .margin(10) - .textAlign(TextAlign.Center); - }, undefined, `Son17 [${this.label}] this.bag.size = ${this.bag.size}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.bag.size += 1; - }); - }, undefined, `Son17: this.bag.size add 1`); - }); - } -} -class ArkFather17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Father17Options): void { - this.__backing_label = initializers?.label ?? ('Father17'); - this.__backing_bookName = objectLinkState(); - } - private __backing_label?: string; - private get label(): string { - return this.__backing_label as string; - } - private set label(value: string) { - this.__backing_label = value; - } - private __backing_bookName?: SyncedProperty; - private get bookName(): BookName { - return this.__backing_bookName!.value; - } - private set bookName(value: BookName) { - this.__backing_bookName!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Father17Options | undefined): void { - this.__backing_bookName?.update(initializers?.bookName); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Father17Options) { - ArkRow(__builder, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width(320); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor('#ffffffff') - .backgroundColor('#ff3d9dba') - .width(320) - .height(50) - .borderRadius(25) - .margin(10) - .textAlign(TextAlign.Center); - }, undefined, `Father17 [${this.label}] this.bookName.size = ${this.bookName.size}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.bookName.size += 1; - console.log('this.bookName.size:' + this.bookName.size); - }); - }, undefined, `Father17: this.bookName.size add 1`); - }); - }); - } -} -class ArkGrandFather17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandFather17Options): void { - this.__backing_user = stateOf(initializers?.user ?? (new User(new Bag(0))), this); - this.__backing_child = stateOf(initializers?.child ?? (new Book(new BookName(0))), this); - } - private __backing_user?: MutableState; - private get user(): User { - return this.__backing_user!.value; - } - private set user(value: User) { - this.__backing_user!.value = observableProxy(value); - } - private __backing_child?: MutableState; - private get child(): Book { - return this.__backing_child!.value; - } - private set child(value: Book) { - this.__backing_child!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandFather17Options) { - ArkColumn(__builder, () => { - Son17((__instance: ArkCommonMethodComponent) => { - __instance.width(320); - }, undefined, { label: 'Son17 #1', bag: this.user.bag } as Son17Options); - Father17((__instance: ArkCommonMethodComponent) => { - __instance.width(320); - }, undefined, { label: 'Father17 #3', bookName: this.child.bookName } as Father17Options); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.child.bookName.size += 10; - console.log('this.child.bookName.size:' + this.child.bookName.size); - }); - }, undefined, `GrandFather17: this.child.bookName.size add 10`); - }); - } -} -/** @memo */ -export function Son17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Son17Options): void { - const updatedInitializers: Son17Options = { - label: initializers?.label, - bag: initializers?.bag, - __backing_bag: initializers?.__backing_bag - }; - ArkSon17Component._instantiate(style, () => new ArkSon17Component, content, updatedInitializers); -} -/** @memo */ -export function Father17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Father17Options): void { - const updatedInitializers: Father17Options = { - label: initializers?.label, - bookName: initializers?.bookName, - __backing_bookName: initializers?.__backing_bookName - }; - ArkFather17Component._instantiate(style, () => new ArkFather17Component, content, updatedInitializers); -} -/** @memo */ -export function GrandFather17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandFather17Options): void { - const updatedInitializers: GrandFather17Options = { - __backing_user: initializers?.__backing_user, - __backing_child: initializers?.__backing_child - }; - ArkGrandFather17Component._instantiate(style, () => new ArkGrandFather17Component, content, updatedInitializers); -} -export interface Son17Options { - label?: string; - __backing_bag?: SyncedProperty; - bag?: Bag; -} -export interface Father17Options { - label?: string; - __backing_bookName?: SyncedProperty; - bookName?: BookName; -} -export interface GrandFather17Options { - __backing_user?: MutableState; - user?: User; - __backing_child?: MutableState; - child?: Book; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts deleted file mode 100644 index 61632570c..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test18.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -@Observed -class ObservedArray extends Array { - constructor(args: T[]) { - super(...args); - } -} -class ArkItemComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ItemOptions): void { - this.__backing_itemArr = objectLinkState>(); - } - private __backing_itemArr?: SyncedProperty>; - private get itemArr(): ObservedArray { - return this.__backing_itemArr!.value; - } - private set itemArr(value: ObservedArray) { - this.__backing_itemArr!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ItemOptions | undefined): void { - this.__backing_itemArr?.update(initializers?.itemArr); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ItemOptions) { - ArkRow(__builder, () => { - ForEach(this.itemArr, (item: string, index: number) => { - ArkText((__instance: ArkTextComponent) => { - __instance.width(100) - .height(100); - }, undefined, `${index}: ${item}`); - }, (item: string) => item); - }); - } -} -class ArkIndexPageComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: IndexPageOptions): void { - this.__backing_arr = stateOf>>(initializers?.arr ?? ([new ObservedArray(['apple']), new ObservedArray(['banana']), new ObservedArray(['orange'])]), this); - } - private __backing_arr?: MutableState>>; - private get arr(): Array> { - return this.__backing_arr!.value; - } - private set arr(value: Array>) { - this.__backing_arr!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: IndexPageOptions) { - ArkColumn(__builder, () => { - ForEach(this.arr, (itemArr: ObservedArray) => { - Item(undefined, undefined, { itemArr: itemArr } as ItemOptions); - }); - ArkDivider(undefined, undefined); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0].push('strawberry'); - }); - }, undefined, 'push two-dimensional array item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr.push(new ObservedArray(['pear'])); - }); - }, undefined, 'push array item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0][0] = 'APPLE'; - }); - }, undefined, 'change two-dimensional array first item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0] = new ObservedArray(['watermelon']); - }); - }, undefined, 'change array first item'); - }); - } -} -/** @memo */ -export function Item(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ItemOptions): void { - const updatedInitializers: ItemOptions = { - itemArr: initializers?.itemArr, - __backing_itemArr: initializers?.__backing_itemArr - }; - ArkItemComponent._instantiate(style, () => new ArkItemComponent, content, updatedInitializers); -} -/** @memo */ -export function IndexPage(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: IndexPageOptions): void { - const updatedInitializers: IndexPageOptions = { - __backing_arr: initializers?.__backing_arr - }; - ArkIndexPageComponent._instantiate(style, () => new ArkIndexPageComponent, content, updatedInitializers); -} -export interface ItemOptions { - __backing_itemArr?: SyncedProperty>; - itemArr?: ObservedArray; -} -export interface IndexPageOptions { - __backing_arr?: MutableState>>; - arr?: Array>; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts deleted file mode 100644 index 98900e846..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test19.ts +++ /dev/null @@ -1,154 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Info { - public info: MySet; - constructor(info: MySet) { - this.info = info; - } -} -@Observed -export class MySet extends Set { - public name: string; - constructor(name?: string, args?: T[]) { - super(args); - this.name = name ? name : "My Set"; - } - getName() { - return this.name; - } -} -class ArkSetSampleNestedComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions): void { - this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); - } - private __backing_message?: MutableState; - private get message(): Info { - return this.__backing_message!.value; - } - private set message(value: Info) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); - }); - }); - } -} -class ArkSetSampleNestedChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions): void { - this.__backing_mySet = objectLinkState>(); - } - private __backing_mySet?: SyncedProperty>; - private get mySet(): MySet { - return this.__backing_mySet!.value; - } - private set mySet(value: MySet) { - this.__backing_mySet!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { - this.__backing_mySet?.update(initializers?.mySet); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.mySet.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item}`); - ArkDivider(undefined, undefined); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSampleNested(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedOptions): void { - const updatedInitializers: SetSampleNestedOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); -} -/** @memo */ -export function SetSampleNestedChild(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedChildOptions): void { - const updatedInitializers: SetSampleNestedChildOptions = { - mySet: initializers?.mySet, - __backing_mySet: initializers?.__backing_mySet - }; - ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); -} -export interface SetSampleNestedOptions { - __backing_message?: MutableState; - message?: Info; -} -export interface SetSampleNestedChildOptions { - __backing_mySet?: SyncedProperty>; - mySet?: MySet; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts deleted file mode 100644 index 98900e846..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test20.ts +++ /dev/null @@ -1,154 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Info { - public info: MySet; - constructor(info: MySet) { - this.info = info; - } -} -@Observed -export class MySet extends Set { - public name: string; - constructor(name?: string, args?: T[]) { - super(args); - this.name = name ? name : "My Set"; - } - getName() { - return this.name; - } -} -class ArkSetSampleNestedComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions): void { - this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); - } - private __backing_message?: MutableState; - private get message(): Info { - return this.__backing_message!.value; - } - private set message(value: Info) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); - }); - }); - } -} -class ArkSetSampleNestedChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions): void { - this.__backing_mySet = objectLinkState>(); - } - private __backing_mySet?: SyncedProperty>; - private get mySet(): MySet { - return this.__backing_mySet!.value; - } - private set mySet(value: MySet) { - this.__backing_mySet!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { - this.__backing_mySet?.update(initializers?.mySet); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.mySet.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item}`); - ArkDivider(undefined, undefined); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSampleNested(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedOptions): void { - const updatedInitializers: SetSampleNestedOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); -} -/** @memo */ -export function SetSampleNestedChild(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedChildOptions): void { - const updatedInitializers: SetSampleNestedChildOptions = { - mySet: initializers?.mySet, - __backing_mySet: initializers?.__backing_mySet - }; - ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); -} -export interface SetSampleNestedOptions { - __backing_message?: MutableState; - message?: Info; -} -export interface SetSampleNestedChildOptions { - __backing_mySet?: SyncedProperty>; - mySet?: MySet; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts deleted file mode 100644 index ce81e1977..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test21.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Source { - public source: number; - constructor(source: number) { - this.source = source; - } -} -@Observed -class Data { - public data: number; - constructor(data: number) { - this.data = data; - } -} -class ArkParent21Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent21Options): void { - this.__backing_count = stateOf(initializers?.count ?? (new Source(10)), this); - } - private __backing_count?: MutableState; - private get count(): Source | Data | undefined { - return this.__backing_count!.value; - } - private set count(value: Source | Data | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent21Options) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - Child21(undefined, undefined, { count: this.count } as Child21Options); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 判断count的类型,做属性的更新 - if (this.count instanceof Source) { - this.count.source += 1; - } - else if (this.count instanceof Data) { - this.count.data += 1; - } - else { - console.info('count is undefined, cannot change property'); - } - }); - }, undefined, 'change count property'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为Source的实例 - this.count = new Source(100); - }); - }, undefined, 'change count to Source'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为Data的实例 - this.count = new Data(100); - }); - }, undefined, 'change count to Data'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为undefined - this.count = undefined; - }); - }, undefined, 'change count to undefined'); - }); - } -} -class ArkChild21Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child21Options): void { - this.__backing_count = objectLinkState(); - } - private __backing_count?: SyncedProperty; - private get count(): Source | Data | undefined { - return this.__backing_count!.value; - } - private set count(value: Source | Data | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Child21Options | undefined): void { - this.__backing_count?.update(initializers?.count); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child21Options) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .margin(10); - }, undefined, `count is instanceof ${this.count instanceof Source ? 'Source' : - this.count instanceof Data ? 'Data' : 'undefined'}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(15); - }, undefined, `count's property is ${this.count instanceof Source ? this.count.source : this.count?.data}`); - }); - } -} -/** @memo */ -export function Parent21(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent21Options): void { - const updatedInitializers: Parent21Options = { - __backing_count: initializers?.__backing_count - }; - ArkParent21Component._instantiate(style, () => new ArkParent21Component, content, updatedInitializers); -} -/** @memo */ -export function Child21(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child21Options): void { - const updatedInitializers: Child21Options = { - count: initializers?.count, - __backing_count: initializers?.__backing_count - }; - ArkChild21Component._instantiate(style, () => new ArkChild21Component, content, updatedInitializers); -} -export interface Parent21Options { - __backing_count?: MutableState; - count?: Source | Data | undefined; -} -export interface Child21Options { - __backing_count?: SyncedProperty; - count?: Source | Data | undefined; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts deleted file mode 100644 index 798b7af49..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test22.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, FontWeight, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class LogTrack { - @Track - str1: string; - @Track - str2: string; - constructor(str1: string) { - this.str1 = str1; - this.str2 = 'World'; - } -} -class LogNotTrack { - str1: string; - str2: string; - constructor(str1: string) { - this.str1 = str1; - this.str2 = '世界'; - } -} -class ArkAddLogComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: AddLogOptions): void { - this.__backing_logTrack = stateOf(initializers?.logTrack ?? (new LogTrack('Hello')), this); - this.__backing_logNotTrack = stateOf(initializers?.logNotTrack ?? (new LogNotTrack('你好')), this); - } - private __backing_logTrack?: MutableState; - private get logTrack(): LogTrack { - return this.__backing_logTrack!.value; - } - private set logTrack(value: LogTrack) { - this.__backing_logTrack!.value = observableProxy(value); - } - private __backing_logNotTrack?: MutableState; - private get logNotTrack(): LogNotTrack { - return this.__backing_logNotTrack!.value; - } - private set logNotTrack(value: LogNotTrack) { - this.__backing_logNotTrack!.value = observableProxy(value); - } - isRender(index: number) { - console.log(`Text ${index} is rendered`); - return 50; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: AddLogOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(1)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logTrack.str1); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(2)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logTrack.str2); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.logTrack.str1 = 'Bye'; - }); - }, undefined, 'change logTrack.str1'); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(3)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logNotTrack.str1); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(4)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logNotTrack.str2); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.logNotTrack.str1 = '再见'; - }); - }, undefined, 'change logNotTrack.str1'); - }); - }); - } -} -/** @memo */ -export function AddLog(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: AddLogOptions): void { - const updatedInitializers: AddLogOptions = { - __backing_logTrack: initializers?.__backing_logTrack, - __backing_logNotTrack: initializers?.__backing_logNotTrack - }; - ArkAddLogComponent._instantiate(style, () => new ArkAddLogComponent, content, updatedInitializers); -} -export interface AddLogOptions { - __backing_logTrack?: MutableState; - logTrack?: LogTrack; - __backing_logNotTrack?: MutableState; - logNotTrack?: LogNotTrack; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts deleted file mode 100644 index caf8c34e4..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test23.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkUsePropertyNameComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: UsePropertyNameOptions): void { - this.__backing_apple = stateOf(initializers?.apple ?? (0), this); - this.__backing_cabbage = stateOf(initializers?.cabbage ?? (0), this); - this.__backing_fruit = stateOf(initializers?.fruit ?? (0), this); - } - private __backing_apple?: MutableState; - private get apple(): number { - return this.__backing_apple!.value; - } - private set apple(value: number) { - this.__backing_apple!.value = observableProxy(value); - } - private __backing_cabbage?: MutableState; - private get cabbage(): number { - return this.__backing_cabbage!.value; - } - private set cabbage(value: number) { - this.__backing_cabbage!.value = observableProxy(value); - } - private __backing_fruit?: MutableState; - private get fruit(): number { - return this.__backing_fruit!.value; - } - private set fruit(value: number) { - this.__backing_fruit!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: UsePropertyNameOptions | undefined): void { - OnChange(this.apple, (_: number) => this.countUpdated("apple")); - OnChange(this.cabbage, (_: number) => this.countUpdated("cabbage")); - } - // @Watch 回调 - countUpdated(propName: string): void { - if (propName == 'apple') { - this.fruit = this.apple; - } - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: UsePropertyNameOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Number of apples: ${this.apple.toString()}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Number of cabbages: ${this.cabbage.toString()}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Total number of fruits: ${this.fruit.toString()}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.apple++; - }); - }, undefined, 'Add apples'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.cabbage++; - }); - }, undefined, 'Add cabbages'); - }); - } -} -/** @memo */ -export function UsePropertyName(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: UsePropertyNameOptions): void { - const updatedInitializers: UsePropertyNameOptions = { - __backing_apple: initializers?.__backing_apple, - __backing_cabbage: initializers?.__backing_cabbage, - __backing_fruit: initializers?.__backing_fruit - }; - ArkUsePropertyNameComponent._instantiate(style, () => new ArkUsePropertyNameComponent, content, updatedInitializers); -} -export interface UsePropertyNameOptions { - __backing_apple?: MutableState; - apple?: number; - __backing_cabbage?: MutableState; - cabbage?: number; - __backing_fruit?: MutableState; - fruit?: number; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts deleted file mode 100644 index afcb60e3e..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test24.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Task { - isFinished: boolean = false; - constructor(isFinished: boolean) { - this.isFinished = isFinished; - } -} -class ArkParentComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ParentComponentOptions): void { - this.__backing_taskA = stateOf(initializers?.taskA ?? (new Task(false)), this); - this.__backing_taskB = stateOf(initializers?.taskB ?? (new Task(false)), this); - } - private __backing_taskA?: MutableState; - private get taskA(): Task { - return this.__backing_taskA!.value; - } - private set taskA(value: Task) { - this.__backing_taskA!.value = observableProxy(value); - } - private __backing_taskB?: MutableState; - private get taskB(): Task { - return this.__backing_taskB!.value; - } - private set taskB(value: Task) { - this.__backing_taskB!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ParentComponentOptions | undefined): void { - OnChange(this.taskA, (_: Task) => this.onTaskAChanged("taskA")); - OnChange(this.taskB, (_: Task) => this.onTaskBChanged("taskB")); - } - onTaskAChanged(changedPropertyName: string): void { - console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); - } - onTaskBChanged(changedPropertyName: string): void { - console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ParentComponentOptions) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `父组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); - ArkText(undefined, undefined, `父组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); - ChildComponent(undefined, undefined, { taskA: this.taskA, taskB: this.taskB } as ChildComponentOptions); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.taskB = new Task(!this.taskB.isFinished); - this.taskA = new Task(!this.taskA.isFinished); - }); - }, undefined, '切换任务状态'); - }); - } -} -class ArkChildComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ChildComponentOptions): void { - this.__backing_taskB = objectLinkState(); - this.__backing_taskA = initializers!.__backing_taskA!; - } - private __backing_taskB?: SyncedProperty; - private get taskB(): Task { - return this.__backing_taskB!.value; - } - private set taskB(value: Task) { - this.__backing_taskB!.value = observableProxy(value); - } - private __backing_taskA?: MutableState; - private get taskA(): Task { - return this.__backing_taskA!.value; - } - private set taskA(value: Task) { - this.__backing_taskA!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ChildComponentOptions | undefined): void { - this.__backing_taskB?.update(initializers?.taskB); - OnChange(this.taskB, (_: Task) => this.onObjectLinkTaskChanged("taskB")); - OnChange(this.taskA, (_: Task) => this.onLinkTaskChanged("taskA")); - } - onObjectLinkTaskChanged(changedPropertyName: string): void { - console.log(`观测到子组件@ObjectLink关联的任务属性变化: ${changedPropertyName}`); - } - onLinkTaskChanged(changedPropertyName: string): void { - console.log(`观测到子组件@Link关联的任务属性变化: ${changedPropertyName}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ChildComponentOptions) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `子组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); - ArkText(undefined, undefined, `子组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); - }); - } -} -/** @memo */ -export function ParentComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ParentComponentOptions): void { - const updatedInitializers: ParentComponentOptions = { - __backing_taskA: initializers?.__backing_taskA, - __backing_taskB: initializers?.__backing_taskB - }; - ArkParentComponentComponent._instantiate(style, () => new ArkParentComponentComponent, content, updatedInitializers); -} -/** @memo */ -export function ChildComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ChildComponentOptions): void { - const updatedInitializers: ChildComponentOptions = { - taskB: initializers?.taskB, - __backing_taskB: initializers?.__backing_taskB, - __backing_taskA: initializers?.__backing_taskA - }; - ArkChildComponentComponent._instantiate(style, () => new ArkChildComponentComponent, content, updatedInitializers); -} -export interface ParentComponentOptions { - __backing_taskA?: MutableState; - taskA?: Task; - __backing_taskB?: MutableState; - taskB?: Task; -} -export interface ChildComponentOptions { - __backing_taskB?: SyncedProperty; - taskB?: Task; - __backing_taskA?: MutableState; - taskA?: Task; -} diff --git a/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts b/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts deleted file mode 100644 index 85e866407..000000000 --- a/arkoala-arkts/user/src/ets/tests/tmp-generated/test25.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkTotalViewComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: TotalViewOptions): void { - this.__backing_count = propState(0); - this.__backing_total = stateOf(initializers?.total ?? (0), this); - } - private __backing_count?: SyncedProperty; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_total?: MutableState; - private get total(): number { - return this.__backing_total!.value; - } - private set total(value: number) { - this.__backing_total!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: TotalViewOptions | undefined): void { - this.__backing_count?.update(initializers?.count); - OnChange(this.count, (_: number) => this.onCountUpdated("count")); - } - // @Watch 回调 - onCountUpdated(propName: string): void { - this.total += this.count; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: TotalViewOptions) { - ArkText(__builder, undefined, `Total: ${this.total}`); - } -} -class ArkCountModifierComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: CountModifierOptions): void { - this.__backing_count = stateOf(initializers?.count ?? (0), this); - } - private __backing_count?: MutableState; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: CountModifierOptions | undefined): void { - OnChange(this.count, (_: number) => this.onCountChange("count")); - } - onCountChange() { - console.log(`change count = ${this.count}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: CountModifierOptions) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - for (let i = 0; i < 1000; i++) { - this.count++; - } - }); - }, undefined, 'add to basket'); - TotalView(undefined, undefined, { count: this.count } as TotalViewOptions); - }); - } -} -/** @memo */ -export function TotalView(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: TotalViewOptions): void { - const updatedInitializers: TotalViewOptions = { - count: initializers?.count, - __backing_count: initializers?.__backing_count, - __backing_total: initializers?.__backing_total - }; - ArkTotalViewComponent._instantiate(style, () => new ArkTotalViewComponent, content, updatedInitializers); -} -/** @memo */ -export function CountModifier(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: CountModifierOptions): void { - const updatedInitializers: CountModifierOptions = { - __backing_count: initializers?.__backing_count - }; - ArkCountModifierComponent._instantiate(style, () => new ArkCountModifierComponent, content, updatedInitializers); -} -export interface TotalViewOptions { - __backing_count?: SyncedProperty; - count?: number; - __backing_total?: MutableState; - total?: number; -} -export interface CountModifierOptions { - __backing_count?: MutableState; - count?: number; -} -- Gitee From 2689b3ca39e38e93dd7a7c241f9ec03c8ece70de Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Fri, 31 Jan 2025 12:06:21 +0300 Subject: [PATCH 05/11] moved tmp-generated out of src Signed-off-by: Alexander Gorshenev --- arkoala-arkts/user/tmp-generated/test01.ts | 112 +++++++++ arkoala-arkts/user/tmp-generated/test02.ts | 107 +++++++++ arkoala-arkts/user/tmp-generated/test03.ts | 115 ++++++++++ arkoala-arkts/user/tmp-generated/test04.ts | 77 +++++++ arkoala-arkts/user/tmp-generated/test05.ts | 92 ++++++++ arkoala-arkts/user/tmp-generated/test06.ts | 84 +++++++ arkoala-arkts/user/tmp-generated/test07.ts | 77 +++++++ arkoala-arkts/user/tmp-generated/test08.ts | 79 +++++++ arkoala-arkts/user/tmp-generated/test09.ts | 112 +++++++++ arkoala-arkts/user/tmp-generated/test10.ts | 107 +++++++++ arkoala-arkts/user/tmp-generated/test11.ts | 122 ++++++++++ arkoala-arkts/user/tmp-generated/test12.ts | 161 +++++++++++++ arkoala-arkts/user/tmp-generated/test13.ts | 86 +++++++ arkoala-arkts/user/tmp-generated/test14.ts | 118 ++++++++++ arkoala-arkts/user/tmp-generated/test15.ts | 180 +++++++++++++++ arkoala-arkts/user/tmp-generated/test16.ts | 108 +++++++++ arkoala-arkts/user/tmp-generated/test17.ts | 249 +++++++++++++++++++++ arkoala-arkts/user/tmp-generated/test18.ts | 127 +++++++++++ arkoala-arkts/user/tmp-generated/test19.ts | 157 +++++++++++++ arkoala-arkts/user/tmp-generated/test20.ts | 157 +++++++++++++ arkoala-arkts/user/tmp-generated/test21.ts | 156 +++++++++++++ arkoala-arkts/user/tmp-generated/test22.ts | 111 +++++++++ arkoala-arkts/user/tmp-generated/test23.ts | 95 ++++++++ arkoala-arkts/user/tmp-generated/test24.ts | 146 ++++++++++++ arkoala-arkts/user/tmp-generated/test25.ts | 117 ++++++++++ 25 files changed, 3052 insertions(+) create mode 100644 arkoala-arkts/user/tmp-generated/test01.ts create mode 100644 arkoala-arkts/user/tmp-generated/test02.ts create mode 100644 arkoala-arkts/user/tmp-generated/test03.ts create mode 100644 arkoala-arkts/user/tmp-generated/test04.ts create mode 100644 arkoala-arkts/user/tmp-generated/test05.ts create mode 100644 arkoala-arkts/user/tmp-generated/test06.ts create mode 100644 arkoala-arkts/user/tmp-generated/test07.ts create mode 100644 arkoala-arkts/user/tmp-generated/test08.ts create mode 100644 arkoala-arkts/user/tmp-generated/test09.ts create mode 100644 arkoala-arkts/user/tmp-generated/test10.ts create mode 100644 arkoala-arkts/user/tmp-generated/test11.ts create mode 100644 arkoala-arkts/user/tmp-generated/test12.ts create mode 100644 arkoala-arkts/user/tmp-generated/test13.ts create mode 100644 arkoala-arkts/user/tmp-generated/test14.ts create mode 100644 arkoala-arkts/user/tmp-generated/test15.ts create mode 100644 arkoala-arkts/user/tmp-generated/test16.ts create mode 100644 arkoala-arkts/user/tmp-generated/test17.ts create mode 100644 arkoala-arkts/user/tmp-generated/test18.ts create mode 100644 arkoala-arkts/user/tmp-generated/test19.ts create mode 100644 arkoala-arkts/user/tmp-generated/test20.ts create mode 100644 arkoala-arkts/user/tmp-generated/test21.ts create mode 100644 arkoala-arkts/user/tmp-generated/test22.ts create mode 100644 arkoala-arkts/user/tmp-generated/test23.ts create mode 100644 arkoala-arkts/user/tmp-generated/test24.ts create mode 100644 arkoala-arkts/user/tmp-generated/test25.ts diff --git a/arkoala-arkts/user/tmp-generated/test01.ts b/arkoala-arkts/user/tmp-generated/test01.ts new file mode 100644 index 000000000..275d76bc4 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test01.ts @@ -0,0 +1,112 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +class ArkEntryComponent1Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent1Options): void { + this.__backing_prop = propState(2); + } + private __backing_prop?: SyncedProperty; + private get prop(): number { + return this.__backing_prop!.value; + } + private set prop(value: number) { + this.__backing_prop!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: EntryComponent1Options | undefined): void { + this.__backing_prop?.update(initializers?.prop); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent1Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.prop += 4; // only received once, change prop, will not synchronized to its Child. + }); + }, undefined, `${this.prop}`); + MyComponent1(undefined, undefined, { state: this.prop } as MyComponent1Options); + }); + } +} +class ArkMyComponent1Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent1Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_state = stateOf(initializers?.state ?? (1), this); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent1Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.state}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent1(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent1Options): void { + const updatedInitializers: EntryComponent1Options = { + prop: initializers?.prop, + __backing_prop: initializers?.__backing_prop + }; + ArkEntryComponent1Component._instantiate(style, () => new ArkEntryComponent1Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent1(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent1Options): void { + const updatedInitializers: MyComponent1Options = { + __backing_count: initializers?.__backing_count, + __backing_state: initializers?.__backing_state + }; + ArkMyComponent1Component._instantiate(style, () => new ArkMyComponent1Component, content, updatedInitializers); +} +export interface EntryComponent1Options { + __backing_prop?: SyncedProperty; + prop?: number; +} +export interface MyComponent1Options { + __backing_count?: MutableState; + count?: Resource; + __backing_state?: MutableState; + state?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test02.ts b/arkoala-arkts/user/tmp-generated/test02.ts new file mode 100644 index 000000000..a5de441fe --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test02.ts @@ -0,0 +1,107 @@ +import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Person2 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class Model2 { + public value: string; + public name: Person2; + constructor(value: string, person: Person2) { + this.value = value; + this.name = person; + } +} +class ArkPage2Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Page2Options): void { + this.__backing_title = stateOf(initializers?.title ?? (new Model2('Hello', new Person2('World'))), this); + } + // class类型 + private __backing_title?: MutableState; + private get title(): Model2 { + return this.__backing_title!.value; + } + private set title(value: Model2) { + this.__backing_title!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Page2Options | undefined): void { + OnChange(this.title, (_: Model2) => this.onTitleChange("title")); + } + onTitleChange(name: string) { + console.log(`observe the object and object property change`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Page2Options) { + ArkColumn(__instance => { + { + __instance.height('100%') + .width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(() => { + this.title = new Model2('Hi', new Person2('ArkUI')); // assign the object to @State variable + }); + }, undefined, `assign a object: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(() => { + this.title.value = 'Hi'; // assign the object property + }); + }, undefined, `assign a object property: ${this.title.value}`); + ArkText((__instance: ArkTextComponent) => { + __instance.id('Page2HelloWorld') + .fontSize(40) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Blue) + .onClick(() => { + this.title.name.value = 'ArkUI'; // can not observe properties of second-level objects + }); + }, undefined, `assign a object second layer property: ${this.title.name.value}`); + }); + } +} +/** @memo */ +export function Page2(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Page2Options): void { + const updatedInitializers: Page2Options = { + __backing_title: initializers?.__backing_title + }; + ArkPage2Component._instantiate(style, () => new ArkPage2Component, content, updatedInitializers); +} +export interface Page2Options { + __backing_title?: MutableState; + title?: Model2; +} diff --git a/arkoala-arkts/user/tmp-generated/test03.ts b/arkoala-arkts/user/tmp-generated/test03.ts new file mode 100644 index 000000000..19f37d1b2 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test03.ts @@ -0,0 +1,115 @@ +import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Person3 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class Model3 { + public value: string; + public name: Person3; + constructor(value: string, person: Person3) { + this.value = value; + this.name = person; + } +} +class ArkPage3Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Page3Options): void { + this.__backing_title = stateOf(initializers?.title ?? ([new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]), this); + } + // 数组类型 + private __backing_title?: MutableState; + private get title(): Model3[] { + return this.__backing_title!.value; + } + private set title(value: Model3[]) { + this.__backing_title!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Page3Options | undefined): void { + OnChange(this.title, (_: Model3[]) => this.onTitleChange("title")); + } + onTitleChange(name: string) { + console.log(`observe the object and object property change`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Page3Options) { + ArkColumn(__instance => { + { + __instance.height('100%') + .width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Green) + .onClick(() => { + this.title = [new Model3("33", new Person3("33"))]; // Array assignment + }); + }, undefined, `assign an array: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Red) + .onClick(() => { + this.title[0] = new Model3("44", new Person3("44")); // Array item assignment + }); + }, undefined, `assign item: ${this.title[0].value}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Gray) + .onClick(() => { + this.title.pop(); // + }); + }, undefined, `delete array items: ${JSON.stringify(this.title)}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .fontWeight(FontWeight.Bold) + .alignRules({ + center: { anchor: '__container__', align: VerticalAlign.Center }, + middle: { anchor: '__container__', align: HorizontalAlign.Center } + }).backgroundColor(Color.Yellow) + .onClick(() => { + this.title.push(new Model3("12", new Person3("12"))); + }); + }, undefined, `Added array items: ${JSON.stringify(this.title)}`); + }); + } +} +/** @memo */ +export function Page3(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Page3Options): void { + const updatedInitializers: Page3Options = { + __backing_title: initializers?.__backing_title + }; + ArkPage3Component._instantiate(style, () => new ArkPage3Component, content, updatedInitializers); +} +export interface Page3Options { + __backing_title?: MutableState; + title?: Model3[]; +} diff --git a/arkoala-arkts/user/tmp-generated/test04.ts b/arkoala-arkts/user/tmp-generated/test04.ts new file mode 100644 index 000000000..b71464e3c --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test04.ts @@ -0,0 +1,77 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkDatePickerExampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: DatePickerExampleOptions): void { + this.__backing_selectedDate = stateOf(initializers?.selectedDate ?? (new Date('2021-08-08')), this); + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: DatePickerExampleOptions) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-08'); + }); + }, undefined, 'set selectedDate to 2023-07-08'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1); + }); + }, undefined, 'increase the year by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setMonth(this.selectedDate.getMonth() + 1); + }); + }, undefined, 'increase the month by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, 'increase the day by 1'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + }); + } +} +/** @memo */ +export function DatePickerExample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: DatePickerExampleOptions): void { + const updatedInitializers: DatePickerExampleOptions = { + __backing_selectedDate: initializers?.__backing_selectedDate + }; + ArkDatePickerExampleComponent._instantiate(style, () => new ArkDatePickerExampleComponent, content, updatedInitializers); +} +export interface DatePickerExampleOptions { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} diff --git a/arkoala-arkts/user/tmp-generated/test05.ts b/arkoala-arkts/user/tmp-generated/test05.ts new file mode 100644 index 000000000..e9c1939c2 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test05.ts @@ -0,0 +1,92 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkMapSampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MapSampleOptions): void { + this.__backing_message = stateOf>(initializers?.message ?? (new Map([[0, "a"], [1, "b"], [3, "c"]])), this); + } + private __backing_message?: MutableState>; + private get message(): Map { + return this.__backing_message!.value; + } + private set message(value: Map) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MapSampleOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.message.entries()), (item: [ + number, + string + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[0]}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[1]}`); + ArkDivider(undefined, undefined); + }, (item: [ + number, + string + ], index: number) => JSON.stringify(item[1])); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); + }); + }, undefined, 'init map'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.set(4, "d"); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.set(0, "aa"); + }); + }, undefined, 'replace the first one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function MapSample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MapSampleOptions): void { + const updatedInitializers: MapSampleOptions = { + __backing_message: initializers?.__backing_message + }; + ArkMapSampleComponent._instantiate(style, () => new ArkMapSampleComponent, content, updatedInitializers); +} +export interface MapSampleOptions { + __backing_message?: MutableState>; + message?: Map; +} diff --git a/arkoala-arkts/user/tmp-generated/test06.ts b/arkoala-arkts/user/tmp-generated/test06.ts new file mode 100644 index 000000000..862737d3a --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test06.ts @@ -0,0 +1,84 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkSetSampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleOptions): void { + this.__backing_message = stateOf>(initializers?.message ?? (new Set([0, 1, 2, 3, 4])), this); + } + private __backing_message?: MutableState>; + private get message(): Set { + return this.__backing_message!.value; + } + private set message(value: Set) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.message.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item[0]}`); + ArkDivider(undefined, undefined); + }, (item: [ + number, + number + ], index: number) => JSON.stringify(item[0].toString())); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message = new Set([10, 1, 2, 3, 8]); + }); + }, undefined, 'init set'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.message.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleOptions): void { + const updatedInitializers: SetSampleOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleComponent._instantiate(style, () => new ArkSetSampleComponent, content, updatedInitializers); +} +export interface SetSampleOptions { + __backing_message?: MutableState>; + message?: Set; +} diff --git a/arkoala-arkts/user/tmp-generated/test07.ts b/arkoala-arkts/user/tmp-generated/test07.ts new file mode 100644 index 000000000..5d0ea3cb3 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test07.ts @@ -0,0 +1,77 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent7Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent7Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent7Options) { + ArkColumn(__builder, () => { + MyComponent7(undefined, undefined); + }); + } +} +class ArkMyComponent7Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent7Options): void { + this.__backing_count = stateOf(initializers?.count ?? (0), this); + } + private __backing_count?: MutableState; + private get count(): number | undefined { + return this.__backing_count!.value; + } + private set count(value: number | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent7Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count(${this.count})`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = undefined; // UI will be triggered + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent7(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent7Options): void { + const updatedInitializers: EntryComponent7Options = {}; + ArkEntryComponent7Component._instantiate(style, () => new ArkEntryComponent7Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent7(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent7Options): void { + const updatedInitializers: MyComponent7Options = { + __backing_count: initializers?.__backing_count + }; + ArkMyComponent7Component._instantiate(style, () => new ArkMyComponent7Component, content, updatedInitializers); +} +export interface EntryComponent7Options { +} +export interface MyComponent7Options { + __backing_count?: MutableState; + count?: number | undefined; +} diff --git a/arkoala-arkts/user/tmp-generated/test08.ts b/arkoala-arkts/user/tmp-generated/test08.ts new file mode 100644 index 000000000..13a58ccab --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test08.ts @@ -0,0 +1,79 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent8Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent8Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent8Options) { + ArkColumn(__builder, () => { + MyComponent8(undefined, undefined); + }); + } +} +class ArkMyComponent8Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent8Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent8Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, 'Hello'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.count = $r('sys.media.ohos_user_auth_icon_face'); + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent8(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent8Options): void { + const updatedInitializers: EntryComponent8Options = {}; + ArkEntryComponent8Component._instantiate(style, () => new ArkEntryComponent8Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent8(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent8Options): void { + const updatedInitializers: MyComponent8Options = { + __backing_count: initializers?.__backing_count + }; + ArkMyComponent8Component._instantiate(style, () => new ArkMyComponent8Component, content, updatedInitializers); +} +export interface EntryComponent8Options { +} +export interface MyComponent8Options { + __backing_count?: MutableState; + count?: Resource; +} diff --git a/arkoala-arkts/user/tmp-generated/test09.ts b/arkoala-arkts/user/tmp-generated/test09.ts new file mode 100644 index 000000000..b3a79c747 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test09.ts @@ -0,0 +1,112 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponentOptions): void { + this.__backing_state = stateOf(initializers?.state ?? (2), this); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponentOptions) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.state += 4; // change state, will synchronize to its Child. + }); + }, undefined, `${this.state}`); + MyComponent(undefined, undefined, { prop: this.state } as MyComponentOptions); + }); + } +} +class ArkMyComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponentOptions): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_prop = propState(1); + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_prop?: SyncedProperty; + private get prop(): number { + return this.__backing_prop!.value; + } + private set prop(value: number) { + this.__backing_prop!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: MyComponentOptions | undefined): void { + this.__backing_prop?.update(initializers?.prop); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponentOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.prop}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.prop += 5; // change prop, will not sync back to its parent + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponentOptions): void { + const updatedInitializers: EntryComponentOptions = { + __backing_state: initializers?.__backing_state + }; + ArkEntryComponentComponent._instantiate(style, () => new ArkEntryComponentComponent, content, updatedInitializers); +} +/** @memo */ +export function MyComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponentOptions): void { + const updatedInitializers: MyComponentOptions = { + __backing_count: initializers?.__backing_count, + prop: initializers?.prop, + __backing_prop: initializers?.__backing_prop + }; + ArkMyComponentComponent._instantiate(style, () => new ArkMyComponentComponent, content, updatedInitializers); +} +export interface EntryComponentOptions { + __backing_state?: MutableState; + state?: number; +} +export interface MyComponentOptions { + __backing_count?: MutableState; + count?: Resource; + __backing_prop?: SyncedProperty; + prop?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test10.ts b/arkoala-arkts/user/tmp-generated/test10.ts new file mode 100644 index 000000000..467191a75 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test10.ts @@ -0,0 +1,107 @@ +import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkEntryComponent10Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent10Options): void { + this.__backing_state = stateOf(initializers?.state ?? (2), this); + } + private __backing_state?: MutableState; + private get state(): number { + return this.__backing_state!.value; + } + private set state(value: number) { + this.__backing_state!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent10Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.state += 4; // change state, will synchronize to its Child. + }); + }, undefined, `${this.state}`); + MyComponent10(undefined, undefined, { link: this.state } as MyComponent10Options); + }); + } +} +class ArkMyComponent10Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent10Options): void { + this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); + this.__backing_link = initializers!.__backing_link!; + } + private __backing_count?: MutableState; + private get count(): Resource { + return this.__backing_count!.value; + } + private set count(value: Resource) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_link?: MutableState; + private get link(): number { + return this.__backing_link!.value; + } + private set link(value: number) { + this.__backing_link!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent10Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor(this.count); + }, undefined, `Hello ${this.link}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.link += 5; // change link, will sync back to its parent + }); + }, undefined, 'change'); + }); + } +} +/** @memo */ +export function EntryComponent10(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent10Options): void { + const updatedInitializers: EntryComponent10Options = { + __backing_state: initializers?.__backing_state + }; + ArkEntryComponent10Component._instantiate(style, () => new ArkEntryComponent10Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent10(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent10Options): void { + const updatedInitializers: MyComponent10Options = { + __backing_count: initializers?.__backing_count, + __backing_link: initializers?.__backing_link + }; + ArkMyComponent10Component._instantiate(style, () => new ArkMyComponent10Component, content, updatedInitializers); +} +export interface EntryComponent10Options { + __backing_state?: MutableState; + state?: number; +} +export interface MyComponent10Options { + __backing_count?: MutableState; + count?: Resource; + __backing_link?: MutableState; + link?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test11.ts b/arkoala-arkts/user/tmp-generated/test11.ts new file mode 100644 index 000000000..301f409fb --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test11.ts @@ -0,0 +1,122 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { MutableState } from "@koalaui/runtime"; +import { observableProxy } from "@koalaui/common"; +class Model11 { + public value: string; + constructor(value: string) { + this.value = value; + } +} +class ArkEntryComponent11Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent11Options): void { + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: EntryComponent11Options) { + ArkColumn(__builder, () => { + // 此处指定的任何命名参数都将在初始渲染时 + // 覆盖本地定义的默认值 + MyComponent11(undefined, undefined, { count: 1, increaseBy: 2 } as MyComponent11Options); + MyComponent11(undefined, undefined, { title: new Model11('Hello, World 2'), count: 7 } as MyComponent11Options); + }); + } +} +class ArkMyComponent11Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: MyComponent11Options): void { + this.__backing_title = stateOf(initializers?.title ?? (new Model11('local child value')), this); + this.__backing_count = stateOf(initializers?.count ?? (0), this); + this.__backing_increaseBy = initializers?.increaseBy ?? (1); + } + private __backing_title?: MutableState; + private get title(): Model11 { + return this.__backing_title!.value; + } + private set title(value: Model11) { + this.__backing_title!.value = observableProxy(value); + } + private __backing_count?: MutableState; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_increaseBy?: number; + private get increaseBy(): number { + return this.__backing_increaseBy as number; + } + private set increaseBy(value: number) { + this.__backing_increaseBy = value; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: MyComponent11Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count : ${this.count} titleValue : ${this.title.value}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.title.value = this.title.value == 'Hello Ace' ? 'Hello World' : 'Hello Ace'; + }); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(10); + }, undefined, `Click to change title`); + }); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // @State变量的更新将触发上面的Text组件内容更新 + this.count += this.increaseBy; + }); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(10); + }, undefined, `Click to increase count=${this.count}`); + }); + }); // Column + } // build +} +/** @memo */ +export function EntryComponent11(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: EntryComponent11Options): void { + const updatedInitializers: EntryComponent11Options = {}; + ArkEntryComponent11Component._instantiate(style, () => new ArkEntryComponent11Component, content, updatedInitializers); +} +/** @memo */ +export function MyComponent11(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: MyComponent11Options): void { + const updatedInitializers: MyComponent11Options = { + __backing_title: initializers?.__backing_title, + __backing_count: initializers?.__backing_count, + increaseBy: initializers?.increaseBy + }; + ArkMyComponent11Component._instantiate(style, () => new ArkMyComponent11Component, content, updatedInitializers); +} +export interface EntryComponent11Options { +} +export interface MyComponent11Options { + __backing_title?: MutableState; + title?: Model11; + __backing_count?: MutableState; + count?: number; + increaseBy?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test12.ts b/arkoala-arkts/user/tmp-generated/test12.ts new file mode 100644 index 000000000..5da3f0bbb --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test12.ts @@ -0,0 +1,161 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkFlex, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, FlexDirection, FlexOptions, ItemAlign, SyncedProperty, TextAlign, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Son12 { + public title: string; + constructor(title: string) { + this.title = title; + } +} +@Observed +class Father12 { + public name: string; + public son: Son12; + constructor(name: string, son: Son12) { + this.name = name; + this.son = son; + } +} +class ArkPerson12Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Person12Options): void { + this.__backing_person = stateOf(initializers?.person ?? (new Father12('Hello', new Son12('world'))), this); + } + private __backing_person?: MutableState; + private get person(): Father12 { + return this.__backing_person!.value; + } + private set person(value: Father12) { + this.__backing_person!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Person12Options) { + ArkColumn(__builder, () => { + ArkFlex(undefined, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.name = "Hi"; + }); + }, undefined, 'change Father12 name'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(312) + .height(40) + .margin(12) + .fontColor('#FFFFFF,90%') + .onClick(() => { + this.person.son.title = "ArkUI"; // Son12 must be decorated with @Observed + }); + }, undefined, 'change Son12 title'); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .fontColor('#e6000000') + .onClick(() => { + this.person.name = 'Bye'; + }); + }, undefined, this.person.name); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.person.son.title = "openHarmony"; + }); + }, undefined, this.person.son.title); + Child(undefined, undefined, { child: this.person.son } as ChildOptions); + }, { direction: FlexDirection.Column, alignItems: ItemAlign.Center } as FlexOptions); + }); + } +} +class ArkChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ChildOptions): void { + this.__backing_child = propState(new Son12('')); + } + private __backing_child?: SyncedProperty; + private get child(): Son12 { + return this.__backing_child!.value; + } + private set child(value: Son12) { + this.__backing_child!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ChildOptions | undefined): void { + this.__backing_child?.update(initializers?.child); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ChildOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(16) + .margin(12) + .width(312) + .height(40) + .backgroundColor('#ededed') + .borderRadius(20) + .textAlign(TextAlign.Center) + .onClick(() => { + this.child.title = 'Bye Bye'; + }); + }, undefined, this.child.title); + }); + } +} +/** @memo */ +export function Person12(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Person12Options): void { + const updatedInitializers: Person12Options = { + __backing_person: initializers?.__backing_person + }; + ArkPerson12Component._instantiate(style, () => new ArkPerson12Component, content, updatedInitializers); +} +/** @memo */ +export function Child(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ChildOptions): void { + const updatedInitializers: ChildOptions = { + child: initializers?.child, + __backing_child: initializers?.__backing_child + }; + ArkChildComponent._instantiate(style, () => new ArkChildComponent, content, updatedInitializers); +} +export interface Person12Options { + __backing_person?: MutableState; + person?: Father12; +} +export interface ChildOptions { + __backing_child?: SyncedProperty; + child?: Son12; +} diff --git a/arkoala-arkts/user/tmp-generated/test13.ts b/arkoala-arkts/user/tmp-generated/test13.ts new file mode 100644 index 000000000..9de25d6d7 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test13.ts @@ -0,0 +1,86 @@ +import { ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class Info13 { + info: string = 'Hello'; +} +class ArkChild13Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child13Options): void { + this.__backing_test = initializers!.__backing_test!; + } + private __backing_test?: MutableState; + private get test(): Info13 { + return this.__backing_test!.value; + } + private set test(value: Info13) { + this.__backing_test!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child13Options) { + ArkText(__builder, undefined, this.test.info); + } +} +class ArkLinkExampleComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: LinkExampleOptions): void { + this.__backing_info = stateOf(initializers?.info ?? (new Info13()), this); + } + private __backing_info?: MutableState; + private get info(): Info13 { + return this.__backing_info!.value; + } + private set info(value: Info13) { + this.__backing_info!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: LinkExampleOptions) { + ArkColumn(__builder, () => { + Child13(undefined, undefined, { test: this.info } as Child13Options); // also support this spec + Child13(undefined, undefined, { __backing_test: this.__backing_info } as Child13Options); // support $ + }); + } +} +/** @memo */ +export function Child13(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child13Options): void { + const updatedInitializers: Child13Options = { + __backing_test: initializers?.__backing_test + }; + ArkChild13Component._instantiate(style, () => new ArkChild13Component, content, updatedInitializers); +} +/** @memo */ +export function LinkExample(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: LinkExampleOptions): void { + const updatedInitializers: LinkExampleOptions = { + __backing_info: initializers?.__backing_info + }; + ArkLinkExampleComponent._instantiate(style, () => new ArkLinkExampleComponent, content, updatedInitializers); +} +export interface Child13Options { + __backing_test?: MutableState; + test?: Info13; +} +export interface LinkExampleOptions { + __backing_info?: MutableState; + info?: Info13; +} diff --git a/arkoala-arkts/user/tmp-generated/test14.ts b/arkoala-arkts/user/tmp-generated/test14.ts new file mode 100644 index 000000000..eb6299a51 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test14.ts @@ -0,0 +1,118 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; +import { MutableState, contextLocal } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkChild14Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child14Options): void { + this.__backing_selectedDate = initializers!.__backing_selectedDate!; + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child14Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, `child increase the day by 1`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-09-09'); + }); + }, undefined, 'child update the new date'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + }); + } +} +class ArkParent14Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent14Options): void { + this.__backing_selectedDate = initializers!.__backing_selectedDate!; + } + private __backing_selectedDate?: MutableState; + private get selectedDate(): Date { + return this.__backing_selectedDate!.value; + } + private set selectedDate(value: Date) { + this.__backing_selectedDate!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent14Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate.setDate(this.selectedDate.getDate() + 1); + }); + }, undefined, 'parent increase the day by 1'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.selectedDate = new Date('2023-07-07'); + }); + }, undefined, 'parent update the new date'); + ArkDatePicker(undefined, undefined, { + start: new Date('1970-1-1'), + end: new Date('2100-1-1'), + selected: this.selectedDate + } as DatePickerOptions); + Child14(undefined, undefined); + }); + } +} +/** @memo */ +export function Child14(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child14Options): void { + const __consume_selectedDate = contextLocal("selectedDate") as MutableState; + const updatedInitializers: Child14Options = { + __backing_selectedDate: __consume_selectedDate + }; + ArkChild14Component._instantiate(style, () => new ArkChild14Component, content, updatedInitializers); +} +/** @memo */ +export function Parent14(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent14Options): void { + const __provide_selectedDate = contextLocalStateOf("selectedDate", () => new Date('2021-08-08')); + const updatedInitializers: Parent14Options = { + __backing_selectedDate: __provide_selectedDate + }; + ArkParent14Component._instantiate(style, () => new ArkParent14Component, content, updatedInitializers); +} +export interface Child14Options { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} +export interface Parent14Options { + __backing_selectedDate?: MutableState; + selectedDate?: Date; +} diff --git a/arkoala-arkts/user/tmp-generated/test15.ts b/arkoala-arkts/user/tmp-generated/test15.ts new file mode 100644 index 000000000..30a743c84 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test15.ts @@ -0,0 +1,180 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, RowOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; +import { MutableState, contextLocal } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkGrandSon15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandSon15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Consume装饰的变量通过相同的属性名绑定其祖先内的@Provide装饰的变量 + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandSon15Options) { + ArkColumn(__instance => { + { + __instance.width('50%'); + } + __builder?.(__instance); + }, () => { + ArkText(undefined, undefined, `reviewVotes(${this.reviewVotes})`); // Text显示10 + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => this.reviewVotes += 1); + }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); + }); + } +} +class ArkChild15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 10; + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child15Options) { + ArkRow(__builder, () => { + GrandSon15(undefined, undefined); + }, { space: 5 } as RowOptions); + } +} +class ArkParent15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 20; + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent15Options) { + Child15(__builder, undefined); + } +} +class ArkGrandParent15Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandParent15Options): void { + this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; + } + private __backing_reviewVotes?: MutableState; + private get reviewVotes(): number { + return this.__backing_reviewVotes!.value; + } + private set reviewVotes(value: number) { + this.__backing_reviewVotes!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandParent15Options) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => this.reviewVotes += 1); + }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); + Parent15(undefined, undefined); + }); + } +} +/** @memo */ +export function GrandSon15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandSon15Options): void { + const __consume_reviewVotes = contextLocal("reviewVotes") as MutableState; + const updatedInitializers: GrandSon15Options = { + __backing_reviewVotes: __consume_reviewVotes + }; + ArkGrandSon15Component._instantiate(style, () => new ArkGrandSon15Component, content, updatedInitializers); +} +/** @memo */ +export function Child15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 10); + const updatedInitializers: Child15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkChild15Component._instantiate(style, () => new ArkChild15Component, content, updatedInitializers); +} +/** @memo */ +export function Parent15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 20); + const updatedInitializers: Parent15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkParent15Component._instantiate(style, () => new ArkParent15Component, content, updatedInitializers); +} +/** @memo */ +export function GrandParent15(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandParent15Options): void { + const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 40); + const updatedInitializers: GrandParent15Options = { + __backing_reviewVotes: __provide_reviewVotes + }; + ArkGrandParent15Component._instantiate(style, () => new ArkGrandParent15Component, content, updatedInitializers); +} +export interface GrandSon15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface Child15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface Parent15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} +export interface GrandParent15Options { + __backing_reviewVotes?: MutableState; + reviewVotes?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test16.ts b/arkoala-arkts/user/tmp-generated/test16.ts new file mode 100644 index 000000000..62e1489c9 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test16.ts @@ -0,0 +1,108 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +@Observed +class Info16 { + count: number; + constructor(count: number) { + this.count = count; + } +} +class ArkChild16Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child16Options): void { + this.__backing_num = objectLinkState(); + } + private __backing_num?: SyncedProperty; + private get num(): Info16 { + return this.__backing_num!.value; + } + private set num(value: Info16) { + this.__backing_num!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Child16Options | undefined): void { + this.__backing_num?.update(initializers?.num); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child16Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.onClick(() => { + // 正确写法,可以更改@ObjectLink装饰变量的成员属性 + this.num.count += 20; // modify count can sync back its parent + }); + }, undefined, `num的值: ${this.num.count}`); + }); + } +} +class ArkParent16Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent16Options): void { + this.__backing_num = stateOf(initializers?.num ?? (new Info16(10)), this); + } + private __backing_num?: MutableState; + private get num(): Info16 { + return this.__backing_num!.value; + } + private set num(value: Info16) { + this.__backing_num!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent16Options) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `count的值: ${this.num.count}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + // 可以在父组件做整体替换 + this.num = new Info16(30); // modify ObjectLink object, can sync to its child + }); + }, undefined, 'click'); + Child16(undefined, undefined, { num: this.num } as Child16Options); + }); + } +} +/** @memo */ +export function Child16(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child16Options): void { + const updatedInitializers: Child16Options = { + num: initializers?.num, + __backing_num: initializers?.__backing_num + }; + ArkChild16Component._instantiate(style, () => new ArkChild16Component, content, updatedInitializers); +} +/** @memo */ +export function Parent16(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent16Options): void { + const updatedInitializers: Parent16Options = { + __backing_num: initializers?.__backing_num + }; + ArkParent16Component._instantiate(style, () => new ArkParent16Component, content, updatedInitializers); +} +export interface Child16Options { + __backing_num?: SyncedProperty; + num?: Info16; +} +export interface Parent16Options { + __backing_num?: MutableState; + num?: Info16; +} diff --git a/arkoala-arkts/user/tmp-generated/test17.ts b/arkoala-arkts/user/tmp-generated/test17.ts new file mode 100644 index 000000000..a185b5135 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test17.ts @@ -0,0 +1,249 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, TextAlign, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +let NextID: number = 1; +@Observed +class Bag { + public id: number; + public size: number; + constructor(size: number) { + this.id = NextID++; + this.size = size; + } +} +@Observed +class User { + public bag: Bag; + constructor(bag: Bag) { + this.bag = bag; + } +} +@Observed +class Book { + public bookName: BookName; + constructor(bookName: BookName) { + this.bookName = bookName; + } +} +@Observed +class BookName extends Bag { + public nameSize: number; + constructor(nameSize: number) { + // 调用父类方法对nameSize进行处理 + super(nameSize); + this.nameSize = nameSize; + } +} +class ArkSon17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Son17Options): void { + this.__backing_label = initializers?.label ?? ('Son17'); + this.__backing_bag = objectLinkState(); + } + private __backing_label?: string; + private get label(): string { + return this.__backing_label as string; + } + private set label(value: string) { + this.__backing_label = value; + } + private __backing_bag?: SyncedProperty; + private get bag(): Bag { + return this.__backing_bag!.value; + } + private set bag(value: Bag) { + this.__backing_bag!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Son17Options | undefined): void { + this.__backing_bag?.update(initializers?.bag); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Son17Options) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center); + }, undefined, `Son17 [${this.label}] this.bag.size = ${this.bag.size}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bag.size += 1; + }); + }, undefined, `Son17: this.bag.size add 1`); + }); + } +} +class ArkFather17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Father17Options): void { + this.__backing_label = initializers?.label ?? ('Father17'); + this.__backing_bookName = objectLinkState(); + } + private __backing_label?: string; + private get label(): string { + return this.__backing_label as string; + } + private set label(value: string) { + this.__backing_label = value; + } + private __backing_bookName?: SyncedProperty; + private get bookName(): BookName { + return this.__backing_bookName!.value; + } + private set bookName(value: BookName) { + this.__backing_bookName!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Father17Options | undefined): void { + this.__backing_bookName?.update(initializers?.bookName); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Father17Options) { + ArkRow(__builder, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width(320); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontColor('#ffffffff') + .backgroundColor('#ff3d9dba') + .width(320) + .height(50) + .borderRadius(25) + .margin(10) + .textAlign(TextAlign.Center); + }, undefined, `Father17 [${this.label}] this.bookName.size = ${this.bookName.size}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.bookName.size += 1; + console.log('this.bookName.size:' + this.bookName.size); + }); + }, undefined, `Father17: this.bookName.size add 1`); + }); + }); + } +} +class ArkGrandFather17Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: GrandFather17Options): void { + this.__backing_user = stateOf(initializers?.user ?? (new User(new Bag(0))), this); + this.__backing_child = stateOf(initializers?.child ?? (new Book(new BookName(0))), this); + } + private __backing_user?: MutableState; + private get user(): User { + return this.__backing_user!.value; + } + private set user(value: User) { + this.__backing_user!.value = observableProxy(value); + } + private __backing_child?: MutableState; + private get child(): Book { + return this.__backing_child!.value; + } + private set child(value: Book) { + this.__backing_child!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: GrandFather17Options) { + ArkColumn(__builder, () => { + Son17((__instance: ArkCommonMethodComponent) => { + __instance.width(320); + }, undefined, { label: 'Son17 #1', bag: this.user.bag } as Son17Options); + Father17((__instance: ArkCommonMethodComponent) => { + __instance.width(320); + }, undefined, { label: 'Father17 #3', bookName: this.child.bookName } as Father17Options); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(320) + .backgroundColor('#ff17a98d') + .margin(10) + .onClick(() => { + this.child.bookName.size += 10; + console.log('this.child.bookName.size:' + this.child.bookName.size); + }); + }, undefined, `GrandFather17: this.child.bookName.size add 10`); + }); + } +} +/** @memo */ +export function Son17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Son17Options): void { + const updatedInitializers: Son17Options = { + label: initializers?.label, + bag: initializers?.bag, + __backing_bag: initializers?.__backing_bag + }; + ArkSon17Component._instantiate(style, () => new ArkSon17Component, content, updatedInitializers); +} +/** @memo */ +export function Father17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Father17Options): void { + const updatedInitializers: Father17Options = { + label: initializers?.label, + bookName: initializers?.bookName, + __backing_bookName: initializers?.__backing_bookName + }; + ArkFather17Component._instantiate(style, () => new ArkFather17Component, content, updatedInitializers); +} +/** @memo */ +export function GrandFather17(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: GrandFather17Options): void { + const updatedInitializers: GrandFather17Options = { + __backing_user: initializers?.__backing_user, + __backing_child: initializers?.__backing_child + }; + ArkGrandFather17Component._instantiate(style, () => new ArkGrandFather17Component, content, updatedInitializers); +} +export interface Son17Options { + label?: string; + __backing_bag?: SyncedProperty; + bag?: Bag; +} +export interface Father17Options { + label?: string; + __backing_bookName?: SyncedProperty; + bookName?: BookName; +} +export interface GrandFather17Options { + __backing_user?: MutableState; + user?: User; + __backing_child?: MutableState; + child?: Book; +} diff --git a/arkoala-arkts/user/tmp-generated/test18.ts b/arkoala-arkts/user/tmp-generated/test18.ts new file mode 100644 index 000000000..4434a7309 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test18.ts @@ -0,0 +1,127 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +import { MutableState } from "@koalaui/runtime"; +@Observed +class ObservedArray extends Array { + constructor(args: T[]) { + super(...args); + } +} +class ArkItemComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ItemOptions): void { + this.__backing_itemArr = objectLinkState>(); + } + private __backing_itemArr?: SyncedProperty>; + private get itemArr(): ObservedArray { + return this.__backing_itemArr!.value; + } + private set itemArr(value: ObservedArray) { + this.__backing_itemArr!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ItemOptions | undefined): void { + this.__backing_itemArr?.update(initializers?.itemArr); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ItemOptions) { + ArkRow(__builder, () => { + ForEach(this.itemArr, (item: string, index: number) => { + ArkText((__instance: ArkTextComponent) => { + __instance.width(100) + .height(100); + }, undefined, `${index}: ${item}`); + }, (item: string) => item); + }); + } +} +class ArkIndexPageComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: IndexPageOptions): void { + this.__backing_arr = stateOf>>(initializers?.arr ?? ([new ObservedArray(['apple']), new ObservedArray(['banana']), new ObservedArray(['orange'])]), this); + } + private __backing_arr?: MutableState>>; + private get arr(): Array> { + return this.__backing_arr!.value; + } + private set arr(value: Array>) { + this.__backing_arr!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: IndexPageOptions) { + ArkColumn(__builder, () => { + ForEach(this.arr, (itemArr: ObservedArray) => { + Item(undefined, undefined, { itemArr: itemArr } as ItemOptions); + }, (item: ObservedArray) => item.toString()); + ArkDivider(undefined, undefined); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0].push('strawberry'); + }); + }, undefined, 'push two-dimensional array item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr.push(new ObservedArray(['pear'])); + }); + }, undefined, 'push array item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0][0] = 'APPLE'; + }); + }, undefined, 'change two-dimensional array first item'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + this.arr[0] = new ObservedArray(['watermelon']); + }); + }, undefined, 'change array first item'); + }); + } +} +/** @memo */ +export function Item(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ItemOptions): void { + const updatedInitializers: ItemOptions = { + itemArr: initializers?.itemArr, + __backing_itemArr: initializers?.__backing_itemArr + }; + ArkItemComponent._instantiate(style, () => new ArkItemComponent, content, updatedInitializers); +} +/** @memo */ +export function IndexPage(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: IndexPageOptions): void { + const updatedInitializers: IndexPageOptions = { + __backing_arr: initializers?.__backing_arr + }; + ArkIndexPageComponent._instantiate(style, () => new ArkIndexPageComponent, content, updatedInitializers); +} +export interface ItemOptions { + __backing_itemArr?: SyncedProperty>; + itemArr?: ObservedArray; +} +export interface IndexPageOptions { + __backing_arr?: MutableState>>; + arr?: Array>; +} diff --git a/arkoala-arkts/user/tmp-generated/test19.ts b/arkoala-arkts/user/tmp-generated/test19.ts new file mode 100644 index 000000000..9fece5aad --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test19.ts @@ -0,0 +1,157 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Info { + public info: MySet; + constructor(info: MySet) { + this.info = info; + } +} +@Observed +export class MySet extends Set { + public name: string; + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + getName() { + return this.name; + } +} +class ArkSetSampleNestedComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions): void { + this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); + } + private __backing_message?: MutableState; + private get message(): Info { + return this.__backing_message!.value; + } + private set message(value: Info) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); + }); + }); + } +} +class ArkSetSampleNestedChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions): void { + this.__backing_mySet = objectLinkState>(); + } + private __backing_mySet?: SyncedProperty>; + private get mySet(): MySet { + return this.__backing_mySet!.value; + } + private set mySet(value: MySet) { + this.__backing_mySet!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { + this.__backing_mySet?.update(initializers?.mySet); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.mySet.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item}`); + ArkDivider(undefined, undefined); + }, (item: [ + number, + number + ]) => item.toString()); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSampleNested(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedOptions): void { + const updatedInitializers: SetSampleNestedOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); +} +/** @memo */ +export function SetSampleNestedChild(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedChildOptions): void { + const updatedInitializers: SetSampleNestedChildOptions = { + mySet: initializers?.mySet, + __backing_mySet: initializers?.__backing_mySet + }; + ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); +} +export interface SetSampleNestedOptions { + __backing_message?: MutableState; + message?: Info; +} +export interface SetSampleNestedChildOptions { + __backing_mySet?: SyncedProperty>; + mySet?: MySet; +} diff --git a/arkoala-arkts/user/tmp-generated/test20.ts b/arkoala-arkts/user/tmp-generated/test20.ts new file mode 100644 index 000000000..9fece5aad --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test20.ts @@ -0,0 +1,157 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Info { + public info: MySet; + constructor(info: MySet) { + this.info = info; + } +} +@Observed +export class MySet extends Set { + public name: string; + constructor(name?: string, args?: T[]) { + super(args); + this.name = name ? name : "My Set"; + } + getName() { + return this.name; + } +} +class ArkSetSampleNestedComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions): void { + this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); + } + private __backing_message?: MutableState; + private get message(): Info { + return this.__backing_message!.value; + } + private set message(value: Info) { + this.__backing_message!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); + }); + }); + } +} +class ArkSetSampleNestedChildComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions): void { + this.__backing_mySet = objectLinkState>(); + } + private __backing_mySet?: SyncedProperty>; + private get mySet(): MySet { + return this.__backing_mySet!.value; + } + private set mySet(value: MySet) { + this.__backing_mySet!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { + this.__backing_mySet?.update(initializers?.mySet); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: SetSampleNestedChildOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ForEach(Array.from(this.mySet.entries()), (item: [ + number, + number + ]) => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `${item}`); + ArkDivider(undefined, undefined); + }, (item: [ + number, + number + ]) => item.toString()); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.add(5); + }); + }, undefined, 'set new one'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.clear(); + }); + }, undefined, 'clear'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.width(200) + .margin(10) + .onClick(() => { + this.mySet.delete(0); + }); + }, undefined, 'delete the first one'); + }); + }); + } +} +/** @memo */ +export function SetSampleNested(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedOptions): void { + const updatedInitializers: SetSampleNestedOptions = { + __backing_message: initializers?.__backing_message + }; + ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); +} +/** @memo */ +export function SetSampleNestedChild(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: SetSampleNestedChildOptions): void { + const updatedInitializers: SetSampleNestedChildOptions = { + mySet: initializers?.mySet, + __backing_mySet: initializers?.__backing_mySet + }; + ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); +} +export interface SetSampleNestedOptions { + __backing_message?: MutableState; + message?: Info; +} +export interface SetSampleNestedChildOptions { + __backing_mySet?: SyncedProperty>; + mySet?: MySet; +} diff --git a/arkoala-arkts/user/tmp-generated/test21.ts b/arkoala-arkts/user/tmp-generated/test21.ts new file mode 100644 index 000000000..ce81e1977 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test21.ts @@ -0,0 +1,156 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Source { + public source: number; + constructor(source: number) { + this.source = source; + } +} +@Observed +class Data { + public data: number; + constructor(data: number) { + this.data = data; + } +} +class ArkParent21Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Parent21Options): void { + this.__backing_count = stateOf(initializers?.count ?? (new Source(10)), this); + } + private __backing_count?: MutableState; + private get count(): Source | Data | undefined { + return this.__backing_count!.value; + } + private set count(value: Source | Data | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Parent21Options) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + Child21(undefined, undefined, { count: this.count } as Child21Options); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 判断count的类型,做属性的更新 + if (this.count instanceof Source) { + this.count.source += 1; + } + else if (this.count instanceof Data) { + this.count.data += 1; + } + else { + console.info('count is undefined, cannot change property'); + } + }); + }, undefined, 'change count property'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为Source的实例 + this.count = new Source(100); + }); + }, undefined, 'change count to Source'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为Data的实例 + this.count = new Data(100); + }); + }, undefined, 'change count to Data'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.margin(10) + .onClick(() => { + // 赋值为undefined + this.count = undefined; + }); + }, undefined, 'change count to undefined'); + }); + } +} +class ArkChild21Component extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: Child21Options): void { + this.__backing_count = objectLinkState(); + } + private __backing_count?: SyncedProperty; + private get count(): Source | Data | undefined { + return this.__backing_count!.value; + } + private set count(value: Source | Data | undefined) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: Child21Options | undefined): void { + this.__backing_count?.update(initializers?.count); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: Child21Options) { + ArkColumn(__instance => { + { + __instance.width('100%'); + } + __builder?.(__instance); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30) + .margin(10); + }, undefined, `count is instanceof ${this.count instanceof Source ? 'Source' : + this.count instanceof Data ? 'Data' : 'undefined'}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(15); + }, undefined, `count's property is ${this.count instanceof Source ? this.count.source : this.count?.data}`); + }); + } +} +/** @memo */ +export function Parent21(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Parent21Options): void { + const updatedInitializers: Parent21Options = { + __backing_count: initializers?.__backing_count + }; + ArkParent21Component._instantiate(style, () => new ArkParent21Component, content, updatedInitializers); +} +/** @memo */ +export function Child21(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: Child21Options): void { + const updatedInitializers: Child21Options = { + count: initializers?.count, + __backing_count: initializers?.__backing_count + }; + ArkChild21Component._instantiate(style, () => new ArkChild21Component, content, updatedInitializers); +} +export interface Parent21Options { + __backing_count?: MutableState; + count?: Source | Data | undefined; +} +export interface Child21Options { + __backing_count?: SyncedProperty; + count?: Source | Data | undefined; +} diff --git a/arkoala-arkts/user/tmp-generated/test22.ts b/arkoala-arkts/user/tmp-generated/test22.ts new file mode 100644 index 000000000..798b7af49 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test22.ts @@ -0,0 +1,111 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, FontWeight, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class LogTrack { + @Track + str1: string; + @Track + str2: string; + constructor(str1: string) { + this.str1 = str1; + this.str2 = 'World'; + } +} +class LogNotTrack { + str1: string; + str2: string; + constructor(str1: string) { + this.str1 = str1; + this.str2 = '世界'; + } +} +class ArkAddLogComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: AddLogOptions): void { + this.__backing_logTrack = stateOf(initializers?.logTrack ?? (new LogTrack('Hello')), this); + this.__backing_logNotTrack = stateOf(initializers?.logNotTrack ?? (new LogNotTrack('你好')), this); + } + private __backing_logTrack?: MutableState; + private get logTrack(): LogTrack { + return this.__backing_logTrack!.value; + } + private set logTrack(value: LogTrack) { + this.__backing_logTrack!.value = observableProxy(value); + } + private __backing_logNotTrack?: MutableState; + private get logNotTrack(): LogNotTrack { + return this.__backing_logNotTrack!.value; + } + private set logNotTrack(value: LogNotTrack) { + this.__backing_logNotTrack!.value = observableProxy(value); + } + isRender(index: number) { + console.log(`Text ${index} is rendered`); + return 50; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: AddLogOptions) { + ArkRow(__instance => { + { + __instance.height('100%'); + } + __builder?.(__instance); + }, () => { + ArkColumn((__instance: ArkColumnComponent) => { + __instance.width('100%'); + }, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(1)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logTrack.str1); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(2)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logTrack.str2); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.logTrack.str1 = 'Bye'; + }); + }, undefined, 'change logTrack.str1'); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(3)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logNotTrack.str1); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(this.isRender(4)) + .fontWeight(FontWeight.Bold); + }, undefined, this.logNotTrack.str2); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.logNotTrack.str1 = '再见'; + }); + }, undefined, 'change logNotTrack.str1'); + }); + }); + } +} +/** @memo */ +export function AddLog(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: AddLogOptions): void { + const updatedInitializers: AddLogOptions = { + __backing_logTrack: initializers?.__backing_logTrack, + __backing_logNotTrack: initializers?.__backing_logNotTrack + }; + ArkAddLogComponent._instantiate(style, () => new ArkAddLogComponent, content, updatedInitializers); +} +export interface AddLogOptions { + __backing_logTrack?: MutableState; + logTrack?: LogTrack; + __backing_logNotTrack?: MutableState; + logNotTrack?: LogNotTrack; +} diff --git a/arkoala-arkts/user/tmp-generated/test23.ts b/arkoala-arkts/user/tmp-generated/test23.ts new file mode 100644 index 000000000..caf8c34e4 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test23.ts @@ -0,0 +1,95 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkUsePropertyNameComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: UsePropertyNameOptions): void { + this.__backing_apple = stateOf(initializers?.apple ?? (0), this); + this.__backing_cabbage = stateOf(initializers?.cabbage ?? (0), this); + this.__backing_fruit = stateOf(initializers?.fruit ?? (0), this); + } + private __backing_apple?: MutableState; + private get apple(): number { + return this.__backing_apple!.value; + } + private set apple(value: number) { + this.__backing_apple!.value = observableProxy(value); + } + private __backing_cabbage?: MutableState; + private get cabbage(): number { + return this.__backing_cabbage!.value; + } + private set cabbage(value: number) { + this.__backing_cabbage!.value = observableProxy(value); + } + private __backing_fruit?: MutableState; + private get fruit(): number { + return this.__backing_fruit!.value; + } + private set fruit(value: number) { + this.__backing_fruit!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: UsePropertyNameOptions | undefined): void { + OnChange(this.apple, (_: number) => this.countUpdated("apple")); + OnChange(this.cabbage, (_: number) => this.countUpdated("cabbage")); + } + // @Watch 回调 + countUpdated(propName: string): void { + if (propName == 'apple') { + this.fruit = this.apple; + } + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: UsePropertyNameOptions) { + ArkColumn(__builder, () => { + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Number of apples: ${this.apple.toString()}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Number of cabbages: ${this.cabbage.toString()}`); + ArkText((__instance: ArkTextComponent) => { + __instance.fontSize(30); + }, undefined, `Total number of fruits: ${this.fruit.toString()}`); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.apple++; + }); + }, undefined, 'Add apples'); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.cabbage++; + }); + }, undefined, 'Add cabbages'); + }); + } +} +/** @memo */ +export function UsePropertyName(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: UsePropertyNameOptions): void { + const updatedInitializers: UsePropertyNameOptions = { + __backing_apple: initializers?.__backing_apple, + __backing_cabbage: initializers?.__backing_cabbage, + __backing_fruit: initializers?.__backing_fruit + }; + ArkUsePropertyNameComponent._instantiate(style, () => new ArkUsePropertyNameComponent, content, updatedInitializers); +} +export interface UsePropertyNameOptions { + __backing_apple?: MutableState; + apple?: number; + __backing_cabbage?: MutableState; + cabbage?: number; + __backing_fruit?: MutableState; + fruit?: number; +} diff --git a/arkoala-arkts/user/tmp-generated/test24.ts b/arkoala-arkts/user/tmp-generated/test24.ts new file mode 100644 index 000000000..afcb60e3e --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test24.ts @@ -0,0 +1,146 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +@Observed +class Task { + isFinished: boolean = false; + constructor(isFinished: boolean) { + this.isFinished = isFinished; + } +} +class ArkParentComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ParentComponentOptions): void { + this.__backing_taskA = stateOf(initializers?.taskA ?? (new Task(false)), this); + this.__backing_taskB = stateOf(initializers?.taskB ?? (new Task(false)), this); + } + private __backing_taskA?: MutableState; + private get taskA(): Task { + return this.__backing_taskA!.value; + } + private set taskA(value: Task) { + this.__backing_taskA!.value = observableProxy(value); + } + private __backing_taskB?: MutableState; + private get taskB(): Task { + return this.__backing_taskB!.value; + } + private set taskB(value: Task) { + this.__backing_taskB!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ParentComponentOptions | undefined): void { + OnChange(this.taskA, (_: Task) => this.onTaskAChanged("taskA")); + OnChange(this.taskB, (_: Task) => this.onTaskBChanged("taskB")); + } + onTaskAChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + onTaskBChanged(changedPropertyName: string): void { + console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ParentComponentOptions) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `父组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); + ArkText(undefined, undefined, `父组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); + ChildComponent(undefined, undefined, { taskA: this.taskA, taskB: this.taskB } as ChildComponentOptions); + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + this.taskB = new Task(!this.taskB.isFinished); + this.taskA = new Task(!this.taskA.isFinished); + }); + }, undefined, '切换任务状态'); + }); + } +} +class ArkChildComponentComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: ChildComponentOptions): void { + this.__backing_taskB = objectLinkState(); + this.__backing_taskA = initializers!.__backing_taskA!; + } + private __backing_taskB?: SyncedProperty; + private get taskB(): Task { + return this.__backing_taskB!.value; + } + private set taskB(value: Task) { + this.__backing_taskB!.value = observableProxy(value); + } + private __backing_taskA?: MutableState; + private get taskA(): Task { + return this.__backing_taskA!.value; + } + private set taskA(value: Task) { + this.__backing_taskA!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: ChildComponentOptions | undefined): void { + this.__backing_taskB?.update(initializers?.taskB); + OnChange(this.taskB, (_: Task) => this.onObjectLinkTaskChanged("taskB")); + OnChange(this.taskA, (_: Task) => this.onLinkTaskChanged("taskA")); + } + onObjectLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@ObjectLink关联的任务属性变化: ${changedPropertyName}`); + } + onLinkTaskChanged(changedPropertyName: string): void { + console.log(`观测到子组件@Link关联的任务属性变化: ${changedPropertyName}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: ChildComponentOptions) { + ArkColumn(__builder, () => { + ArkText(undefined, undefined, `子组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); + ArkText(undefined, undefined, `子组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); + }); + } +} +/** @memo */ +export function ParentComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ParentComponentOptions): void { + const updatedInitializers: ParentComponentOptions = { + __backing_taskA: initializers?.__backing_taskA, + __backing_taskB: initializers?.__backing_taskB + }; + ArkParentComponentComponent._instantiate(style, () => new ArkParentComponentComponent, content, updatedInitializers); +} +/** @memo */ +export function ChildComponent(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: ChildComponentOptions): void { + const updatedInitializers: ChildComponentOptions = { + taskB: initializers?.taskB, + __backing_taskB: initializers?.__backing_taskB, + __backing_taskA: initializers?.__backing_taskA + }; + ArkChildComponentComponent._instantiate(style, () => new ArkChildComponentComponent, content, updatedInitializers); +} +export interface ParentComponentOptions { + __backing_taskA?: MutableState; + taskA?: Task; + __backing_taskB?: MutableState; + taskB?: Task; +} +export interface ChildComponentOptions { + __backing_taskB?: SyncedProperty; + taskB?: Task; + __backing_taskA?: MutableState; + taskA?: Task; +} diff --git a/arkoala-arkts/user/tmp-generated/test25.ts b/arkoala-arkts/user/tmp-generated/test25.ts new file mode 100644 index 000000000..f75a6a866 --- /dev/null +++ b/arkoala-arkts/user/tmp-generated/test25.ts @@ -0,0 +1,117 @@ +import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; +import { MutableState, OnChange } from "@koalaui/runtime"; +import { LocalStorage } from "@koalaui/arkui-common"; +import { observableProxy } from "@koalaui/common"; +class ArkTotalViewComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: TotalViewOptions): void { + this.__backing_count = propState(0); + this.__backing_total = stateOf(initializers?.total ?? (0), this); + } + private __backing_count?: SyncedProperty; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + private __backing_total?: MutableState; + private get total(): number { + return this.__backing_total!.value; + } + private set total(value: number) { + this.__backing_total!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: TotalViewOptions | undefined): void { + this.__backing_count?.update(initializers?.count); + OnChange(this.count, (_: number) => this.onCountUpdated("count")); + } + // @Watch 回调 + onCountUpdated(propName: string): void { + this.total += this.count; + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: TotalViewOptions) { + ArkText(__builder, undefined, `Total: ${this.total}`); + } +} +class ArkCountModifierComponent extends ArkStructBase { + private _entry_local_storage_ = new LocalStorage(); + __initializeStruct(/**/ + /** @memo */ + content?: () => void, initializers?: CountModifierOptions): void { + this.__backing_count = stateOf(initializers?.count ?? (0), this); + } + private __backing_count?: MutableState; + private get count(): number { + return this.__backing_count!.value; + } + private set count(value: number) { + this.__backing_count!.value = observableProxy(value); + } + /** @memo */ + __updateStruct(initializers: CountModifierOptions | undefined): void { + OnChange(this.count, (_: number) => this.onCountChange("count")); + } + onCountChange(name: string) { + console.log(`change count = ${this.count}`); + } + /** @memo */ + __build(/**/ + /** @memo */ + __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ + /** @memo */ + content?: () => void, initializers?: CountModifierOptions) { + ArkColumn(__builder, () => { + ArkButton((__instance: ArkButtonComponent) => { + __instance.onClick(() => { + for (let i = 0; i < 1000; i++) { + this.count++; + } + }); + }, undefined, 'add to basket'); + TotalView(undefined, undefined, { count: this.count } as TotalViewOptions); + }); + } +} +/** @memo */ +export function TotalView(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: TotalViewOptions): void { + const updatedInitializers: TotalViewOptions = { + count: initializers?.count, + __backing_count: initializers?.__backing_count, + __backing_total: initializers?.__backing_total + }; + ArkTotalViewComponent._instantiate(style, () => new ArkTotalViewComponent, content, updatedInitializers); +} +/** @memo */ +export function CountModifier(/**/ +/** @memo */ +style?: (__instance: ArkCommonMethodComponent) => void, /**/ +/** @memo */ +content?: () => void, initializers?: CountModifierOptions): void { + const updatedInitializers: CountModifierOptions = { + __backing_count: initializers?.__backing_count + }; + ArkCountModifierComponent._instantiate(style, () => new ArkCountModifierComponent, content, updatedInitializers); +} +export interface TotalViewOptions { + __backing_count?: SyncedProperty; + count?: number; + __backing_total?: MutableState; + total?: number; +} +export interface CountModifierOptions { + __backing_count?: MutableState; + count?: number; +} -- Gitee From 5874cd783c817ba65dcd561bd568828ab276f2dc Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:08:49 +0300 Subject: [PATCH 06/11] Created arkoala-arkts/test application Signed-off-by: Alexander Gorshenev --- .../test/arktsconfig-run-unmemoized.json | 40 ++++++++++++++ arkoala-arkts/test/package.json | 29 ++++++++++ .../test/scripts/build-har-universal.mjs | 39 +++++++++++++ arkoala-arkts/test/scripts/build-har.mjs | 55 +++++++++++++++++++ arkoala-arkts/test/src/Page.ts | 33 +++++++++++ .../tmp-generated => test/src/ets}/test01.ts | 0 .../tmp-generated => test/src/ets}/test02.ts | 0 .../tmp-generated => test/src/ets}/test03.ts | 0 .../tmp-generated => test/src/ets}/test04.ts | 0 .../tmp-generated => test/src/ets}/test05.ts | 0 .../tmp-generated => test/src/ets}/test06.ts | 0 .../tmp-generated => test/src/ets}/test07.ts | 0 .../tmp-generated => test/src/ets}/test08.ts | 0 .../tmp-generated => test/src/ets}/test09.ts | 0 .../tmp-generated => test/src/ets}/test10.ts | 0 .../tmp-generated => test/src/ets}/test11.ts | 0 .../tmp-generated => test/src/ets}/test12.ts | 0 .../tmp-generated => test/src/ets}/test13.ts | 0 .../tmp-generated => test/src/ets}/test14.ts | 0 .../tmp-generated => test/src/ets}/test15.ts | 0 .../tmp-generated => test/src/ets}/test16.ts | 0 .../tmp-generated => test/src/ets}/test17.ts | 0 .../tmp-generated => test/src/ets}/test18.ts | 0 .../tmp-generated => test/src/ets}/test19.ts | 0 .../tmp-generated => test/src/ets}/test20.ts | 0 .../tmp-generated => test/src/ets}/test21.ts | 0 .../tmp-generated => test/src/ets}/test22.ts | 0 .../tmp-generated => test/src/ets}/test23.ts | 0 .../tmp-generated => test/src/ets}/test24.ts | 0 .../tmp-generated => test/src/ets}/test25.ts | 0 arkoala-arkts/test/tsconfig-unmemoize.json | 55 +++++++++++++++++++ 31 files changed, 251 insertions(+) create mode 100644 arkoala-arkts/test/arktsconfig-run-unmemoized.json create mode 100644 arkoala-arkts/test/package.json create mode 100644 arkoala-arkts/test/scripts/build-har-universal.mjs create mode 100644 arkoala-arkts/test/scripts/build-har.mjs create mode 100644 arkoala-arkts/test/src/Page.ts rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test01.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test02.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test03.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test04.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test05.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test06.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test07.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test08.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test09.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test10.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test11.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test12.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test13.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test14.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test15.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test16.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test17.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test18.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test19.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test20.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test21.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test22.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test23.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test24.ts (100%) rename arkoala-arkts/{user/tmp-generated => test/src/ets}/test25.ts (100%) create mode 100644 arkoala-arkts/test/tsconfig-unmemoize.json diff --git a/arkoala-arkts/test/arktsconfig-run-unmemoized.json b/arkoala-arkts/test/arktsconfig-run-unmemoized.json new file mode 100644 index 000000000..054f9c7e4 --- /dev/null +++ b/arkoala-arkts/test/arktsconfig-run-unmemoized.json @@ -0,0 +1,40 @@ +{ + "compilerOptions": { + "package": "@koalaui/arkts-arkui-test", + "outDir": "build/abc", + "baseUrl": ".", + "paths": { + "app": [ + "./build/unmemoized/build/generated" + ], + "@koalaui/compat": [ + "../../incremental/compat/src/arkts" + ], + "@koalaui/common": [ + "../../incremental/common/src" + ], + "@koalaui/runtime": [ + "../../incremental/runtime/build/unmemoized/src" + ], + "@koalaui/arkts-arkui": [ + "../arkui/build/unmemoized/src" + ], + "@koalaui/interop": [ + "../../interop/src/arkts" + ], + "#components": [ + "../arkui/build/unmemoized/src/generated/arkts" + ], + "@koalaui/arkui-common": [ + "../../arkoala/arkui-common/build/unmemoized/src", "../../arkoala/arkui-common/build/unmemoized/src/arkts" + ], + "#arkcompat": [ + "../../arkoala/arkui-common/build/unmemoized/src/arkts" + ], + "#arkstate": ["../../arkoala/arkui-common/build/unmemoized/src"] + } + }, + "include": [ + "./build/unmemoized/**/*.ts" + ] +} diff --git a/arkoala-arkts/test/package.json b/arkoala-arkts/test/package.json new file mode 100644 index 000000000..eb401afa6 --- /dev/null +++ b/arkoala-arkts/test/package.json @@ -0,0 +1,29 @@ +{ + "name": "@koalaui/arkts-arkui-test", + "version": "1.4.1", + "description": "", + "scripts": { + "clean": "rimraf build generated unmemoized js_output abc lib app/test/build", + "compile:plugin": "cd ../../arkoala/ets-plugin && npm run compile", + "compile:ets": "npm run compile:plugin && cd src/ets && ets-tsc -p ./etsconfig.json", + "unmemoize": "npm run compile:ets && ets-tsc -p tsconfig-unmemoize.json", + "unmemoize:runtime": "npm run unmemoize --prefix ../../incremental/runtime", + "unmemoize:arkui-no-common": "npm run unmemoize --prefix ../arkui", + "unmemoize:arkui-common": "npm run unmemoize --prefix ../../arkoala/arkui-common", + "unmemoize:all": "npm run unmemoize:runtime && npm run unmemoize:arkui-no-common && npm run unmemoize:arkui-common && npm run unmemoize", + "build:test": "npm run unmemoize:all && npm run build:test:inc", + "build:test:inc": "fast-arktsc --input-files ./arktsconfig-run-unmemoized.json --output-dir ./build --compiler ../../incremental/tools/panda/arkts/arktsc --link-name test && ninja ${NINJA_OPTIONS} -f build/build.ninja", + + "pack": "npm run cli-tools:check && cd app && DEVECO_SDK_HOME=../../../arkoala/ohos-sdk/ohos-sdk ../command-line-tools/hvigor/bin/hvigorw --no-daemon --mode module -p product=default -p module=test@default assembleHar", + "har-arm32": "npm run build:test && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name test --arch arm32 && npm run pack", + "har-arm64": "npm run build:test && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har.mjs --name test --arch arm64 && npm run pack", + "har-universal": "npm run build:test && npm run --prefix ../../arkoala/ohos-sdk download && node scripts/build-har-universal.mjs --name test && npm run pack", + + "cli-tools:chmod:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", + "cli-tools:chmod:yz": "node ../../arkoala/ohos-sdk/scripts/gitlab-cli.mjs chmod -p ./command-line-tools/ohpm/bin -b 755 && node ../../arkoala/ohos-sdk/scripts/gitlab-cli.mjs chmod -p ./command-line-tools/hvigor/bin -b 755", + "cli-tools:download:bz": "node ../../arkoala/ohos-sdk/scripts/openlab-cli.mjs download -p command-line-tools -v 5.0.3502 -f command-line-tools.5.0.3502.zip -d command-line-tools && npm run cli-tools:chmod:bz", + "cli-tools:download:yz": "node ../../arkoala/ohos-sdk/scripts/gitlab-cli.mjs download -p deveco-tools -v 5.0.1300 -f deveco-tools.5.0.1300.zip -d command-line-tools && npm run cli-tools:chmod:yz", + "cli-tools:download": "test \"$KOALA_BZ\" = \"0\" && npm run cli-tools:download:yz || npm run cli-tools:download:bz", + "cli-tools:check": "test -d ./command-line-tools || npm run cli-tools:download" + } +} diff --git a/arkoala-arkts/test/scripts/build-har-universal.mjs b/arkoala-arkts/test/scripts/build-har-universal.mjs new file mode 100644 index 000000000..06a194e3a --- /dev/null +++ b/arkoala-arkts/test/scripts/build-har-universal.mjs @@ -0,0 +1,39 @@ +import { dirname } from "path" +import { fileURLToPath } from "url" + +import fs from "fs" +import path from "path" +import process from "process" +import minimist from "minimist" + +var args = minimist(process.argv.slice(2)) +const name = args["name"] + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +const CWD = process.cwd() +const HAR_PATH = path.join(CWD, `app/${name}`) + + +function copyFile(from, to) { + if (!fs.existsSync(from)) { + throw new Error(`file ${from} does not exist`) + } + + console.log(`> Copy from: ${from} to ${to}`) + fs.cpSync(from, to, { recursive: true, force: true }) +} + + +function main() { + // arm32 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/armeabi-v7a/${name}.abc.so`)) + + // arm64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/arm64-v8a/${name}.abc.so`)) + + //x64 + copyFile(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/x86-64/${name}.abc.so`)) +} + +main() diff --git a/arkoala-arkts/test/scripts/build-har.mjs b/arkoala-arkts/test/scripts/build-har.mjs new file mode 100644 index 000000000..b61e5528d --- /dev/null +++ b/arkoala-arkts/test/scripts/build-har.mjs @@ -0,0 +1,55 @@ +import { execSync } from "child_process" +import { dirname } from "path" +import { fileURLToPath } from "url" + +import fs from "fs" +import path from "path" +import process from "process" +import minimist from "minimist" + +var args = minimist(process.argv.slice(2)) +const arch = args["arch"] +const name = args["name"] + +const _dirname = dirname(fileURLToPath(import.meta.url)) + +const CWD = process.cwd() +// const BUNDLE_PATH = path.join(CWD, "arkoala-har-bundle") +const HAR_PATH = path.join(CWD, `app/${name}`) + +function execCmdSync(cmd, options) { + return execSync(cmd, options).toString().trim().replace("\n", " ") +} + +function rollupLaunch() { + console.log(`> Run rollup`) + execCmdSync("npx rollup -c") +} + +function copyFilesToHar(from, to) { + if (!fs.existsSync(from)) { + throw new Error(`file ${from} does not exist`) + } + + console.log(`> Copy from: ${from} to ${to}`) + fs.cpSync(from, to, { recursive: true, force: true }) +} + + +function main(targetLibDir, name) { + + // process.chdir(BUNDLE_PATH) + + // rollupLaunch() + /* we don't yet know which files should be in har */ + copyFilesToHar(path.join(_dirname, `../build/${name}.abc`), path.join(HAR_PATH, `libs/${targetLibDir}/${name}.abc.so`)) +} + +if (arch == "arm32") { + main("armeabi-v7a", name) +} else if (arch == "arm64") { + main("arm64-v8a", name) +} else { + console.log("Unsupported architecture: ", arch) + exit(1) +} diff --git a/arkoala-arkts/test/src/Page.ts b/arkoala-arkts/test/src/Page.ts new file mode 100644 index 000000000..f07279346 --- /dev/null +++ b/arkoala-arkts/test/src/Page.ts @@ -0,0 +1,33 @@ +import { Page1 } from "app/page1" +import { NavigationPage } from "app/navigation" +import { UserView, UserViewBuilder } from "@koalaui/arkts-arkui" + +export class ViewTrivialApp extends UserView { + private params: String + constructor(params: String) { + super() + this.params = params + } + getBuilder(): UserViewBuilder { + /** @memo */ + let wrapper = () => { + Page1() + } + return wrapper + } +} + +export class ViewNavigationApp extends UserView { + private params: String + constructor(params: String) { + super() + this.params = params + } + getBuilder(): UserViewBuilder { + /** @memo */ + let wrapper = () => { + NavigationPage() + } + return wrapper + } +} diff --git a/arkoala-arkts/user/tmp-generated/test01.ts b/arkoala-arkts/test/src/ets/test01.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test01.ts rename to arkoala-arkts/test/src/ets/test01.ts diff --git a/arkoala-arkts/user/tmp-generated/test02.ts b/arkoala-arkts/test/src/ets/test02.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test02.ts rename to arkoala-arkts/test/src/ets/test02.ts diff --git a/arkoala-arkts/user/tmp-generated/test03.ts b/arkoala-arkts/test/src/ets/test03.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test03.ts rename to arkoala-arkts/test/src/ets/test03.ts diff --git a/arkoala-arkts/user/tmp-generated/test04.ts b/arkoala-arkts/test/src/ets/test04.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test04.ts rename to arkoala-arkts/test/src/ets/test04.ts diff --git a/arkoala-arkts/user/tmp-generated/test05.ts b/arkoala-arkts/test/src/ets/test05.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test05.ts rename to arkoala-arkts/test/src/ets/test05.ts diff --git a/arkoala-arkts/user/tmp-generated/test06.ts b/arkoala-arkts/test/src/ets/test06.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test06.ts rename to arkoala-arkts/test/src/ets/test06.ts diff --git a/arkoala-arkts/user/tmp-generated/test07.ts b/arkoala-arkts/test/src/ets/test07.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test07.ts rename to arkoala-arkts/test/src/ets/test07.ts diff --git a/arkoala-arkts/user/tmp-generated/test08.ts b/arkoala-arkts/test/src/ets/test08.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test08.ts rename to arkoala-arkts/test/src/ets/test08.ts diff --git a/arkoala-arkts/user/tmp-generated/test09.ts b/arkoala-arkts/test/src/ets/test09.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test09.ts rename to arkoala-arkts/test/src/ets/test09.ts diff --git a/arkoala-arkts/user/tmp-generated/test10.ts b/arkoala-arkts/test/src/ets/test10.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test10.ts rename to arkoala-arkts/test/src/ets/test10.ts diff --git a/arkoala-arkts/user/tmp-generated/test11.ts b/arkoala-arkts/test/src/ets/test11.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test11.ts rename to arkoala-arkts/test/src/ets/test11.ts diff --git a/arkoala-arkts/user/tmp-generated/test12.ts b/arkoala-arkts/test/src/ets/test12.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test12.ts rename to arkoala-arkts/test/src/ets/test12.ts diff --git a/arkoala-arkts/user/tmp-generated/test13.ts b/arkoala-arkts/test/src/ets/test13.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test13.ts rename to arkoala-arkts/test/src/ets/test13.ts diff --git a/arkoala-arkts/user/tmp-generated/test14.ts b/arkoala-arkts/test/src/ets/test14.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test14.ts rename to arkoala-arkts/test/src/ets/test14.ts diff --git a/arkoala-arkts/user/tmp-generated/test15.ts b/arkoala-arkts/test/src/ets/test15.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test15.ts rename to arkoala-arkts/test/src/ets/test15.ts diff --git a/arkoala-arkts/user/tmp-generated/test16.ts b/arkoala-arkts/test/src/ets/test16.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test16.ts rename to arkoala-arkts/test/src/ets/test16.ts diff --git a/arkoala-arkts/user/tmp-generated/test17.ts b/arkoala-arkts/test/src/ets/test17.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test17.ts rename to arkoala-arkts/test/src/ets/test17.ts diff --git a/arkoala-arkts/user/tmp-generated/test18.ts b/arkoala-arkts/test/src/ets/test18.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test18.ts rename to arkoala-arkts/test/src/ets/test18.ts diff --git a/arkoala-arkts/user/tmp-generated/test19.ts b/arkoala-arkts/test/src/ets/test19.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test19.ts rename to arkoala-arkts/test/src/ets/test19.ts diff --git a/arkoala-arkts/user/tmp-generated/test20.ts b/arkoala-arkts/test/src/ets/test20.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test20.ts rename to arkoala-arkts/test/src/ets/test20.ts diff --git a/arkoala-arkts/user/tmp-generated/test21.ts b/arkoala-arkts/test/src/ets/test21.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test21.ts rename to arkoala-arkts/test/src/ets/test21.ts diff --git a/arkoala-arkts/user/tmp-generated/test22.ts b/arkoala-arkts/test/src/ets/test22.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test22.ts rename to arkoala-arkts/test/src/ets/test22.ts diff --git a/arkoala-arkts/user/tmp-generated/test23.ts b/arkoala-arkts/test/src/ets/test23.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test23.ts rename to arkoala-arkts/test/src/ets/test23.ts diff --git a/arkoala-arkts/user/tmp-generated/test24.ts b/arkoala-arkts/test/src/ets/test24.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test24.ts rename to arkoala-arkts/test/src/ets/test24.ts diff --git a/arkoala-arkts/user/tmp-generated/test25.ts b/arkoala-arkts/test/src/ets/test25.ts similarity index 100% rename from arkoala-arkts/user/tmp-generated/test25.ts rename to arkoala-arkts/test/src/ets/test25.ts diff --git a/arkoala-arkts/test/tsconfig-unmemoize.json b/arkoala-arkts/test/tsconfig-unmemoize.json new file mode 100644 index 000000000..cc086dbc0 --- /dev/null +++ b/arkoala-arkts/test/tsconfig-unmemoize.json @@ -0,0 +1,55 @@ +{ + "extends": "@koalaui/build-common/tsconfig.json", + "compilerOptions": { + "types": [], + "plugins": [ + { + "transform": "@koalaui/compiler-plugin/build/lib/src/koala-transformer.js", + "trace": false, + "only_unmemoize": true, + "unmemoizeDir": "./build/unmemoized" + } + ], + "outDir": "./build/junk", + "baseUrl": ".", + "paths": { + "@koalaui/arkui-common": [ + "../../arkoala/arkui-common/src/arkts" + ], + "@koalaui/runtime": [ + "../../incremental/runtime" + ], + "#arkcompat": [ + "../../arkoala/arkui-common/src/arkts" + ], + "@koalaui/arkts-arkui": [ + "../arkui/src" + ], + "@koalaui/arkts-arkui/ohos.router": [ + "../arkui/src/ohos.router.ts" + ], + "app/*": [ + "./build/generated/*" + ] + } + }, + "files": [ + "../../incremental/tools/panda/arkts/std-lib/global.d.ts" + ], + "include": [ + "./build/generated", + "./src/**/*.ts" + ], + "exclude": [ + "../arkui/src/generated/arkts", + "../arkui/src/generated/common.ts", + "../arkui/src/generated/test_utils.ts", + "../arkui/src/generated/main.ts" + ], + "references": [ + { "path": "../../arkoala/arkui-common" }, + { "path": "../../arkoala/arkui-common/tsconfig-unmemoize.json" }, + { "path": "../../incremental/runtime" }, + { "path": "../arkui/tsconfig-unmemoize.json" } + ] +} -- Gitee From 11a05013cf1efbe186c58a6fd35c97363d6c71cc Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:10:39 +0300 Subject: [PATCH 07/11] added etsconfig Signed-off-by: Alexander Gorshenev --- arkoala-arkts/test/src/ets/etsconfig.json | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 arkoala-arkts/test/src/ets/etsconfig.json diff --git a/arkoala-arkts/test/src/ets/etsconfig.json b/arkoala-arkts/test/src/ets/etsconfig.json new file mode 100644 index 000000000..2e88d85ca --- /dev/null +++ b/arkoala-arkts/test/src/ets/etsconfig.json @@ -0,0 +1,21 @@ +{ + "extends": "../../../arkui/config/etsconfig-base.json", + "include": [ + "./**/*.ets" + ], + "compilerOptions": { + "types": [], + "baseUrl": ".", + "rootDirs": [ + "." + ], + "outDir": "../../build/ets-junk", + "plugins": [ + { + "transform": "@koalaui/ets-plugin/build/lib/src/ArkExpander.js", + "destination": "../../build/generated", + "arkui": "@koalaui/arkts-arkui" + } + ] + } +} -- Gitee From b84d5ee8c8a4d110b14f9db2699dd9d276c51f43 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:18:22 +0300 Subject: [PATCH 08/11] Placed test cases as a separate arkoala-arkts application Signed-off-by: Alexander Gorshenev --- arkoala-arkts/test/src/Page.ts | 2 +- arkoala-arkts/{user/src/ets/tests => test/src/ets}/test01.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test02.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test03.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test04.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test05.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test06.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test07.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test08.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test09.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test10.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test11.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test12.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test13.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test14.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test15.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test16.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test17.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test18.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test19.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test20.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test21.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test22.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test23.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test24.ets | 0 arkoala-arkts/{user/src/ets/tests => test/src/ets}/test25.ets | 0 26 files changed, 1 insertion(+), 1 deletion(-) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test01.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test02.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test03.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test04.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test05.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test06.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test07.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test08.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test09.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test10.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test11.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test12.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test13.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test14.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test15.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test16.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test17.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test18.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test19.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test20.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test21.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test22.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test23.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test24.ets (100%) rename arkoala-arkts/{user/src/ets/tests => test/src/ets}/test25.ets (100%) diff --git a/arkoala-arkts/test/src/Page.ts b/arkoala-arkts/test/src/Page.ts index f07279346..ee17f1253 100644 --- a/arkoala-arkts/test/src/Page.ts +++ b/arkoala-arkts/test/src/Page.ts @@ -11,7 +11,7 @@ export class ViewTrivialApp extends UserView { getBuilder(): UserViewBuilder { /** @memo */ let wrapper = () => { - Page1() + TestWrapper() } return wrapper } diff --git a/arkoala-arkts/user/src/ets/tests/test01.ets b/arkoala-arkts/test/src/ets/test01.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test01.ets rename to arkoala-arkts/test/src/ets/test01.ets diff --git a/arkoala-arkts/user/src/ets/tests/test02.ets b/arkoala-arkts/test/src/ets/test02.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test02.ets rename to arkoala-arkts/test/src/ets/test02.ets diff --git a/arkoala-arkts/user/src/ets/tests/test03.ets b/arkoala-arkts/test/src/ets/test03.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test03.ets rename to arkoala-arkts/test/src/ets/test03.ets diff --git a/arkoala-arkts/user/src/ets/tests/test04.ets b/arkoala-arkts/test/src/ets/test04.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test04.ets rename to arkoala-arkts/test/src/ets/test04.ets diff --git a/arkoala-arkts/user/src/ets/tests/test05.ets b/arkoala-arkts/test/src/ets/test05.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test05.ets rename to arkoala-arkts/test/src/ets/test05.ets diff --git a/arkoala-arkts/user/src/ets/tests/test06.ets b/arkoala-arkts/test/src/ets/test06.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test06.ets rename to arkoala-arkts/test/src/ets/test06.ets diff --git a/arkoala-arkts/user/src/ets/tests/test07.ets b/arkoala-arkts/test/src/ets/test07.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test07.ets rename to arkoala-arkts/test/src/ets/test07.ets diff --git a/arkoala-arkts/user/src/ets/tests/test08.ets b/arkoala-arkts/test/src/ets/test08.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test08.ets rename to arkoala-arkts/test/src/ets/test08.ets diff --git a/arkoala-arkts/user/src/ets/tests/test09.ets b/arkoala-arkts/test/src/ets/test09.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test09.ets rename to arkoala-arkts/test/src/ets/test09.ets diff --git a/arkoala-arkts/user/src/ets/tests/test10.ets b/arkoala-arkts/test/src/ets/test10.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test10.ets rename to arkoala-arkts/test/src/ets/test10.ets diff --git a/arkoala-arkts/user/src/ets/tests/test11.ets b/arkoala-arkts/test/src/ets/test11.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test11.ets rename to arkoala-arkts/test/src/ets/test11.ets diff --git a/arkoala-arkts/user/src/ets/tests/test12.ets b/arkoala-arkts/test/src/ets/test12.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test12.ets rename to arkoala-arkts/test/src/ets/test12.ets diff --git a/arkoala-arkts/user/src/ets/tests/test13.ets b/arkoala-arkts/test/src/ets/test13.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test13.ets rename to arkoala-arkts/test/src/ets/test13.ets diff --git a/arkoala-arkts/user/src/ets/tests/test14.ets b/arkoala-arkts/test/src/ets/test14.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test14.ets rename to arkoala-arkts/test/src/ets/test14.ets diff --git a/arkoala-arkts/user/src/ets/tests/test15.ets b/arkoala-arkts/test/src/ets/test15.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test15.ets rename to arkoala-arkts/test/src/ets/test15.ets diff --git a/arkoala-arkts/user/src/ets/tests/test16.ets b/arkoala-arkts/test/src/ets/test16.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test16.ets rename to arkoala-arkts/test/src/ets/test16.ets diff --git a/arkoala-arkts/user/src/ets/tests/test17.ets b/arkoala-arkts/test/src/ets/test17.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test17.ets rename to arkoala-arkts/test/src/ets/test17.ets diff --git a/arkoala-arkts/user/src/ets/tests/test18.ets b/arkoala-arkts/test/src/ets/test18.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test18.ets rename to arkoala-arkts/test/src/ets/test18.ets diff --git a/arkoala-arkts/user/src/ets/tests/test19.ets b/arkoala-arkts/test/src/ets/test19.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test19.ets rename to arkoala-arkts/test/src/ets/test19.ets diff --git a/arkoala-arkts/user/src/ets/tests/test20.ets b/arkoala-arkts/test/src/ets/test20.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test20.ets rename to arkoala-arkts/test/src/ets/test20.ets diff --git a/arkoala-arkts/user/src/ets/tests/test21.ets b/arkoala-arkts/test/src/ets/test21.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test21.ets rename to arkoala-arkts/test/src/ets/test21.ets diff --git a/arkoala-arkts/user/src/ets/tests/test22.ets b/arkoala-arkts/test/src/ets/test22.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test22.ets rename to arkoala-arkts/test/src/ets/test22.ets diff --git a/arkoala-arkts/user/src/ets/tests/test23.ets b/arkoala-arkts/test/src/ets/test23.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test23.ets rename to arkoala-arkts/test/src/ets/test23.ets diff --git a/arkoala-arkts/user/src/ets/tests/test24.ets b/arkoala-arkts/test/src/ets/test24.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test24.ets rename to arkoala-arkts/test/src/ets/test24.ets diff --git a/arkoala-arkts/user/src/ets/tests/test25.ets b/arkoala-arkts/test/src/ets/test25.ets similarity index 100% rename from arkoala-arkts/user/src/ets/tests/test25.ets rename to arkoala-arkts/test/src/ets/test25.ets -- Gitee From 3ad3e67954f03dc9fa3a84d38327399d13340251 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:31:10 +0300 Subject: [PATCH 09/11] added a README Signed-off-by: Alexander Gorshenev --- arkoala-arkts/test/README.md | 21 +++++++++++++++++++++ 1 file changed, 21 insertions(+) create mode 100644 arkoala-arkts/test/README.md diff --git a/arkoala-arkts/test/README.md b/arkoala-arkts/test/README.md new file mode 100644 index 000000000..5d95ffd0f --- /dev/null +++ b/arkoala-arkts/test/README.md @@ -0,0 +1,21 @@ +# This is a small testsuite on arkoala/arkts state management + +the test cases are in src/ets + +## Initial setup + + +See https://gitee.com/openharmony-sig/arkcompiler_ets_frontend/blob/master/arkoala-arkts/README.md + +for the initial setup + +## How to see the rewrites + +At the moment you can take a look at the rewrite: + +``` +$ npm run compile:ets +``` + +Now check out the `build/generated` folder + -- Gitee From d43e8d25674064dcbfbaae52d3e3de8fa624c114 Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:45:43 +0300 Subject: [PATCH 10/11] more Signed-off-by: Alexander Gorshenev --- arkoala-arkts/test/README.md | 16 ++ arkoala-arkts/test/package.json | 3 + arkoala-arkts/test/src/Page.ts | 19 +- arkoala-arkts/test/src/ets/test01.ts | 112 ------------ arkoala-arkts/test/src/ets/test02.ts | 107 ------------ arkoala-arkts/test/src/ets/test03.ts | 115 ------------- arkoala-arkts/test/src/ets/test04.ts | 77 --------- arkoala-arkts/test/src/ets/test05.ts | 92 ---------- arkoala-arkts/test/src/ets/test06.ts | 84 --------- arkoala-arkts/test/src/ets/test07.ts | 77 --------- arkoala-arkts/test/src/ets/test08.ts | 79 --------- arkoala-arkts/test/src/ets/test09.ts | 112 ------------ arkoala-arkts/test/src/ets/test10.ts | 107 ------------ arkoala-arkts/test/src/ets/test11.ts | 122 ------------- arkoala-arkts/test/src/ets/test12.ts | 161 ----------------- arkoala-arkts/test/src/ets/test13.ts | 86 --------- arkoala-arkts/test/src/ets/test14.ts | 118 ------------- arkoala-arkts/test/src/ets/test15.ts | 180 ------------------- arkoala-arkts/test/src/ets/test16.ts | 108 ------------ arkoala-arkts/test/src/ets/test17.ts | 249 --------------------------- arkoala-arkts/test/src/ets/test18.ts | 127 -------------- arkoala-arkts/test/src/ets/test19.ts | 157 ----------------- arkoala-arkts/test/src/ets/test20.ts | 157 ----------------- arkoala-arkts/test/src/ets/test21.ts | 156 ----------------- arkoala-arkts/test/src/ets/test22.ts | 111 ------------ arkoala-arkts/test/src/ets/test23.ts | 95 ---------- arkoala-arkts/test/src/ets/test24.ts | 146 ---------------- arkoala-arkts/test/src/ets/test25.ts | 117 ------------- 28 files changed, 21 insertions(+), 3069 deletions(-) delete mode 100644 arkoala-arkts/test/src/ets/test01.ts delete mode 100644 arkoala-arkts/test/src/ets/test02.ts delete mode 100644 arkoala-arkts/test/src/ets/test03.ts delete mode 100644 arkoala-arkts/test/src/ets/test04.ts delete mode 100644 arkoala-arkts/test/src/ets/test05.ts delete mode 100644 arkoala-arkts/test/src/ets/test06.ts delete mode 100644 arkoala-arkts/test/src/ets/test07.ts delete mode 100644 arkoala-arkts/test/src/ets/test08.ts delete mode 100644 arkoala-arkts/test/src/ets/test09.ts delete mode 100644 arkoala-arkts/test/src/ets/test10.ts delete mode 100644 arkoala-arkts/test/src/ets/test11.ts delete mode 100644 arkoala-arkts/test/src/ets/test12.ts delete mode 100644 arkoala-arkts/test/src/ets/test13.ts delete mode 100644 arkoala-arkts/test/src/ets/test14.ts delete mode 100644 arkoala-arkts/test/src/ets/test15.ts delete mode 100644 arkoala-arkts/test/src/ets/test16.ts delete mode 100644 arkoala-arkts/test/src/ets/test17.ts delete mode 100644 arkoala-arkts/test/src/ets/test18.ts delete mode 100644 arkoala-arkts/test/src/ets/test19.ts delete mode 100644 arkoala-arkts/test/src/ets/test20.ts delete mode 100644 arkoala-arkts/test/src/ets/test21.ts delete mode 100644 arkoala-arkts/test/src/ets/test22.ts delete mode 100644 arkoala-arkts/test/src/ets/test23.ts delete mode 100644 arkoala-arkts/test/src/ets/test24.ts delete mode 100644 arkoala-arkts/test/src/ets/test25.ts diff --git a/arkoala-arkts/test/README.md b/arkoala-arkts/test/README.md index 5d95ffd0f..5413c4055 100644 --- a/arkoala-arkts/test/README.md +++ b/arkoala-arkts/test/README.md @@ -19,3 +19,19 @@ $ npm run compile:ets Now check out the `build/generated` folder + +## How to see compilation errors + +``` +$ npm run build:test +``` + +will try to compile the test cases up to .abc and will demonstrate the errors + +``` +$ npm run build:test:passed +``` + +should be able to run es2panda on the cases +TODO: at the moment the test cases should be adapter to ArkTS capabilities of es2panda + diff --git a/arkoala-arkts/test/package.json b/arkoala-arkts/test/package.json index eb401afa6..1010448d2 100644 --- a/arkoala-arkts/test/package.json +++ b/arkoala-arkts/test/package.json @@ -7,11 +7,14 @@ "compile:plugin": "cd ../../arkoala/ets-plugin && npm run compile", "compile:ets": "npm run compile:plugin && cd src/ets && ets-tsc -p ./etsconfig.json", "unmemoize": "npm run compile:ets && ets-tsc -p tsconfig-unmemoize.json", + "unmemoize:passed": "npm run compile:ets && ets-tsc -p tsconfig-unmemoize-passed.json", "unmemoize:runtime": "npm run unmemoize --prefix ../../incremental/runtime", "unmemoize:arkui-no-common": "npm run unmemoize --prefix ../arkui", "unmemoize:arkui-common": "npm run unmemoize --prefix ../../arkoala/arkui-common", "unmemoize:all": "npm run unmemoize:runtime && npm run unmemoize:arkui-no-common && npm run unmemoize:arkui-common && npm run unmemoize", + "unmemoize:all:passed": "npm run unmemoize:runtime && npm run unmemoize:arkui-no-common && npm run unmemoize:arkui-common && npm run unmemoize:passed", "build:test": "npm run unmemoize:all && npm run build:test:inc", + "build:test:passed": "npm run unmemoize:all:passed && npm run build:test:inc", "build:test:inc": "fast-arktsc --input-files ./arktsconfig-run-unmemoized.json --output-dir ./build --compiler ../../incremental/tools/panda/arkts/arktsc --link-name test && ninja ${NINJA_OPTIONS} -f build/build.ninja", "pack": "npm run cli-tools:check && cd app && DEVECO_SDK_HOME=../../../arkoala/ohos-sdk/ohos-sdk ../command-line-tools/hvigor/bin/hvigorw --no-daemon --mode module -p product=default -p module=test@default assembleHar", diff --git a/arkoala-arkts/test/src/Page.ts b/arkoala-arkts/test/src/Page.ts index ee17f1253..63ed529ac 100644 --- a/arkoala-arkts/test/src/Page.ts +++ b/arkoala-arkts/test/src/Page.ts @@ -1,8 +1,7 @@ -import { Page1 } from "app/page1" -import { NavigationPage } from "app/navigation" +import { TestWrapper } from "app/TestWrapper" import { UserView, UserViewBuilder } from "@koalaui/arkts-arkui" -export class ViewTrivialApp extends UserView { +export class ViewTestApp extends UserView { private params: String constructor(params: String) { super() @@ -17,17 +16,3 @@ export class ViewTrivialApp extends UserView { } } -export class ViewNavigationApp extends UserView { - private params: String - constructor(params: String) { - super() - this.params = params - } - getBuilder(): UserViewBuilder { - /** @memo */ - let wrapper = () => { - NavigationPage() - } - return wrapper - } -} diff --git a/arkoala-arkts/test/src/ets/test01.ts b/arkoala-arkts/test/src/ets/test01.ts deleted file mode 100644 index 275d76bc4..000000000 --- a/arkoala-arkts/test/src/ets/test01.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -class ArkEntryComponent1Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent1Options): void { - this.__backing_prop = propState(2); - } - private __backing_prop?: SyncedProperty; - private get prop(): number { - return this.__backing_prop!.value; - } - private set prop(value: number) { - this.__backing_prop!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: EntryComponent1Options | undefined): void { - this.__backing_prop?.update(initializers?.prop); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent1Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.prop += 4; // only received once, change prop, will not synchronized to its Child. - }); - }, undefined, `${this.prop}`); - MyComponent1(undefined, undefined, { state: this.prop } as MyComponent1Options); - }); - } -} -class ArkMyComponent1Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent1Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_state = stateOf(initializers?.state ?? (1), this); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent1Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.state}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = $r('sys.media.ohos_user_auth_icon_face'); - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent1(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent1Options): void { - const updatedInitializers: EntryComponent1Options = { - prop: initializers?.prop, - __backing_prop: initializers?.__backing_prop - }; - ArkEntryComponent1Component._instantiate(style, () => new ArkEntryComponent1Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent1(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent1Options): void { - const updatedInitializers: MyComponent1Options = { - __backing_count: initializers?.__backing_count, - __backing_state: initializers?.__backing_state - }; - ArkMyComponent1Component._instantiate(style, () => new ArkMyComponent1Component, content, updatedInitializers); -} -export interface EntryComponent1Options { - __backing_prop?: SyncedProperty; - prop?: number; -} -export interface MyComponent1Options { - __backing_count?: MutableState; - count?: Resource; - __backing_state?: MutableState; - state?: number; -} diff --git a/arkoala-arkts/test/src/ets/test02.ts b/arkoala-arkts/test/src/ets/test02.ts deleted file mode 100644 index a5de441fe..000000000 --- a/arkoala-arkts/test/src/ets/test02.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Person2 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class Model2 { - public value: string; - public name: Person2; - constructor(value: string, person: Person2) { - this.value = value; - this.name = person; - } -} -class ArkPage2Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Page2Options): void { - this.__backing_title = stateOf(initializers?.title ?? (new Model2('Hello', new Person2('World'))), this); - } - // class类型 - private __backing_title?: MutableState; - private get title(): Model2 { - return this.__backing_title!.value; - } - private set title(value: Model2) { - this.__backing_title!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Page2Options | undefined): void { - OnChange(this.title, (_: Model2) => this.onTitleChange("title")); - } - onTitleChange(name: string) { - console.log(`observe the object and object property change`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Page2Options) { - ArkColumn(__instance => { - { - __instance.height('100%') - .width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Green) - .onClick(() => { - this.title = new Model2('Hi', new Person2('ArkUI')); // assign the object to @State variable - }); - }, undefined, `assign a object: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Red) - .onClick(() => { - this.title.value = 'Hi'; // assign the object property - }); - }, undefined, `assign a object property: ${this.title.value}`); - ArkText((__instance: ArkTextComponent) => { - __instance.id('Page2HelloWorld') - .fontSize(40) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Blue) - .onClick(() => { - this.title.name.value = 'ArkUI'; // can not observe properties of second-level objects - }); - }, undefined, `assign a object second layer property: ${this.title.name.value}`); - }); - } -} -/** @memo */ -export function Page2(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Page2Options): void { - const updatedInitializers: Page2Options = { - __backing_title: initializers?.__backing_title - }; - ArkPage2Component._instantiate(style, () => new ArkPage2Component, content, updatedInitializers); -} -export interface Page2Options { - __backing_title?: MutableState; - title?: Model2; -} diff --git a/arkoala-arkts/test/src/ets/test03.ts b/arkoala-arkts/test/src/ets/test03.ts deleted file mode 100644 index 19f37d1b2..000000000 --- a/arkoala-arkts/test/src/ets/test03.ts +++ /dev/null @@ -1,115 +0,0 @@ -import { ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Color, FontWeight, HorizontalAlign, VerticalAlign, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Person3 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class Model3 { - public value: string; - public name: Person3; - constructor(value: string, person: Person3) { - this.value = value; - this.name = person; - } -} -class ArkPage3Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Page3Options): void { - this.__backing_title = stateOf(initializers?.title ?? ([new Model3("11", new Person3("11")), new Model3("22", new Person3("22"))]), this); - } - // 数组类型 - private __backing_title?: MutableState; - private get title(): Model3[] { - return this.__backing_title!.value; - } - private set title(value: Model3[]) { - this.__backing_title!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Page3Options | undefined): void { - OnChange(this.title, (_: Model3[]) => this.onTitleChange("title")); - } - onTitleChange(name: string) { - console.log(`observe the object and object property change`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Page3Options) { - ArkColumn(__instance => { - { - __instance.height('100%') - .width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Green) - .onClick(() => { - this.title = [new Model3("33", new Person3("33"))]; // Array assignment - }); - }, undefined, `assign an array: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Red) - .onClick(() => { - this.title[0] = new Model3("44", new Person3("44")); // Array item assignment - }); - }, undefined, `assign item: ${this.title[0].value}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Gray) - .onClick(() => { - this.title.pop(); // - }); - }, undefined, `delete array items: ${JSON.stringify(this.title)}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .fontWeight(FontWeight.Bold) - .alignRules({ - center: { anchor: '__container__', align: VerticalAlign.Center }, - middle: { anchor: '__container__', align: HorizontalAlign.Center } - }).backgroundColor(Color.Yellow) - .onClick(() => { - this.title.push(new Model3("12", new Person3("12"))); - }); - }, undefined, `Added array items: ${JSON.stringify(this.title)}`); - }); - } -} -/** @memo */ -export function Page3(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Page3Options): void { - const updatedInitializers: Page3Options = { - __backing_title: initializers?.__backing_title - }; - ArkPage3Component._instantiate(style, () => new ArkPage3Component, content, updatedInitializers); -} -export interface Page3Options { - __backing_title?: MutableState; - title?: Model3[]; -} diff --git a/arkoala-arkts/test/src/ets/test04.ts b/arkoala-arkts/test/src/ets/test04.ts deleted file mode 100644 index b71464e3c..000000000 --- a/arkoala-arkts/test/src/ets/test04.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkDatePickerExampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: DatePickerExampleOptions): void { - this.__backing_selectedDate = stateOf(initializers?.selectedDate ?? (new Date('2021-08-08')), this); - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: DatePickerExampleOptions) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-07-08'); - }); - }, undefined, 'set selectedDate to 2023-07-08'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setFullYear(this.selectedDate.getFullYear() + 1); - }); - }, undefined, 'increase the year by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setMonth(this.selectedDate.getMonth() + 1); - }); - }, undefined, 'increase the month by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, 'increase the day by 1'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - }); - } -} -/** @memo */ -export function DatePickerExample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: DatePickerExampleOptions): void { - const updatedInitializers: DatePickerExampleOptions = { - __backing_selectedDate: initializers?.__backing_selectedDate - }; - ArkDatePickerExampleComponent._instantiate(style, () => new ArkDatePickerExampleComponent, content, updatedInitializers); -} -export interface DatePickerExampleOptions { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} diff --git a/arkoala-arkts/test/src/ets/test05.ts b/arkoala-arkts/test/src/ets/test05.ts deleted file mode 100644 index e9c1939c2..000000000 --- a/arkoala-arkts/test/src/ets/test05.ts +++ /dev/null @@ -1,92 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkMapSampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MapSampleOptions): void { - this.__backing_message = stateOf>(initializers?.message ?? (new Map([[0, "a"], [1, "b"], [3, "c"]])), this); - } - private __backing_message?: MutableState>; - private get message(): Map { - return this.__backing_message!.value; - } - private set message(value: Map) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MapSampleOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.message.entries()), (item: [ - number, - string - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[0]}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[1]}`); - ArkDivider(undefined, undefined); - }, (item: [ - number, - string - ], index: number) => JSON.stringify(item[1])); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message = new Map([[0, "e"], [1, "f"], [3, "g"]]); - }); - }, undefined, 'init map'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.set(4, "d"); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.set(0, "aa"); - }); - }, undefined, 'replace the first one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function MapSample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MapSampleOptions): void { - const updatedInitializers: MapSampleOptions = { - __backing_message: initializers?.__backing_message - }; - ArkMapSampleComponent._instantiate(style, () => new ArkMapSampleComponent, content, updatedInitializers); -} -export interface MapSampleOptions { - __backing_message?: MutableState>; - message?: Map; -} diff --git a/arkoala-arkts/test/src/ets/test06.ts b/arkoala-arkts/test/src/ets/test06.ts deleted file mode 100644 index 862737d3a..000000000 --- a/arkoala-arkts/test/src/ets/test06.ts +++ /dev/null @@ -1,84 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkSetSampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleOptions): void { - this.__backing_message = stateOf>(initializers?.message ?? (new Set([0, 1, 2, 3, 4])), this); - } - private __backing_message?: MutableState>; - private get message(): Set { - return this.__backing_message!.value; - } - private set message(value: Set) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.message.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item[0]}`); - ArkDivider(undefined, undefined); - }, (item: [ - number, - number - ], index: number) => JSON.stringify(item[0].toString())); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message = new Set([10, 1, 2, 3, 8]); - }); - }, undefined, 'init set'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.message.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleOptions): void { - const updatedInitializers: SetSampleOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleComponent._instantiate(style, () => new ArkSetSampleComponent, content, updatedInitializers); -} -export interface SetSampleOptions { - __backing_message?: MutableState>; - message?: Set; -} diff --git a/arkoala-arkts/test/src/ets/test07.ts b/arkoala-arkts/test/src/ets/test07.ts deleted file mode 100644 index 5d0ea3cb3..000000000 --- a/arkoala-arkts/test/src/ets/test07.ts +++ /dev/null @@ -1,77 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent7Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent7Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent7Options) { - ArkColumn(__builder, () => { - MyComponent7(undefined, undefined); - }); - } -} -class ArkMyComponent7Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent7Options): void { - this.__backing_count = stateOf(initializers?.count ?? (0), this); - } - private __backing_count?: MutableState; - private get count(): number | undefined { - return this.__backing_count!.value; - } - private set count(value: number | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent7Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count(${this.count})`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = undefined; // UI will be triggered - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent7(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent7Options): void { - const updatedInitializers: EntryComponent7Options = {}; - ArkEntryComponent7Component._instantiate(style, () => new ArkEntryComponent7Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent7(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent7Options): void { - const updatedInitializers: MyComponent7Options = { - __backing_count: initializers?.__backing_count - }; - ArkMyComponent7Component._instantiate(style, () => new ArkMyComponent7Component, content, updatedInitializers); -} -export interface EntryComponent7Options { -} -export interface MyComponent7Options { - __backing_count?: MutableState; - count?: number | undefined; -} diff --git a/arkoala-arkts/test/src/ets/test08.ts b/arkoala-arkts/test/src/ets/test08.ts deleted file mode 100644 index 13a58ccab..000000000 --- a/arkoala-arkts/test/src/ets/test08.ts +++ /dev/null @@ -1,79 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent8Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent8Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent8Options) { - ArkColumn(__builder, () => { - MyComponent8(undefined, undefined); - }); - } -} -class ArkMyComponent8Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent8Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent8Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, 'Hello'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.count = $r('sys.media.ohos_user_auth_icon_face'); - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent8(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent8Options): void { - const updatedInitializers: EntryComponent8Options = {}; - ArkEntryComponent8Component._instantiate(style, () => new ArkEntryComponent8Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent8(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent8Options): void { - const updatedInitializers: MyComponent8Options = { - __backing_count: initializers?.__backing_count - }; - ArkMyComponent8Component._instantiate(style, () => new ArkMyComponent8Component, content, updatedInitializers); -} -export interface EntryComponent8Options { -} -export interface MyComponent8Options { - __backing_count?: MutableState; - count?: Resource; -} diff --git a/arkoala-arkts/test/src/ets/test09.ts b/arkoala-arkts/test/src/ets/test09.ts deleted file mode 100644 index b3a79c747..000000000 --- a/arkoala-arkts/test/src/ets/test09.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponentOptions): void { - this.__backing_state = stateOf(initializers?.state ?? (2), this); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponentOptions) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.state += 4; // change state, will synchronize to its Child. - }); - }, undefined, `${this.state}`); - MyComponent(undefined, undefined, { prop: this.state } as MyComponentOptions); - }); - } -} -class ArkMyComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponentOptions): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_prop = propState(1); - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_prop?: SyncedProperty; - private get prop(): number { - return this.__backing_prop!.value; - } - private set prop(value: number) { - this.__backing_prop!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: MyComponentOptions | undefined): void { - this.__backing_prop?.update(initializers?.prop); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponentOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.prop}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.prop += 5; // change prop, will not sync back to its parent - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponentOptions): void { - const updatedInitializers: EntryComponentOptions = { - __backing_state: initializers?.__backing_state - }; - ArkEntryComponentComponent._instantiate(style, () => new ArkEntryComponentComponent, content, updatedInitializers); -} -/** @memo */ -export function MyComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponentOptions): void { - const updatedInitializers: MyComponentOptions = { - __backing_count: initializers?.__backing_count, - prop: initializers?.prop, - __backing_prop: initializers?.__backing_prop - }; - ArkMyComponentComponent._instantiate(style, () => new ArkMyComponentComponent, content, updatedInitializers); -} -export interface EntryComponentOptions { - __backing_state?: MutableState; - state?: number; -} -export interface MyComponentOptions { - __backing_count?: MutableState; - count?: Resource; - __backing_prop?: SyncedProperty; - prop?: number; -} diff --git a/arkoala-arkts/test/src/ets/test10.ts b/arkoala-arkts/test/src/ets/test10.ts deleted file mode 100644 index 467191a75..000000000 --- a/arkoala-arkts/test/src/ets/test10.ts +++ /dev/null @@ -1,107 +0,0 @@ -import { $r, ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, Resource, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkEntryComponent10Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent10Options): void { - this.__backing_state = stateOf(initializers?.state ?? (2), this); - } - private __backing_state?: MutableState; - private get state(): number { - return this.__backing_state!.value; - } - private set state(value: number) { - this.__backing_state!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent10Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.state += 4; // change state, will synchronize to its Child. - }); - }, undefined, `${this.state}`); - MyComponent10(undefined, undefined, { link: this.state } as MyComponent10Options); - }); - } -} -class ArkMyComponent10Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent10Options): void { - this.__backing_count = stateOf(initializers?.count ?? ($r('sys.color.ohos_id_color_emphasize')), this); - this.__backing_link = initializers!.__backing_link!; - } - private __backing_count?: MutableState; - private get count(): Resource { - return this.__backing_count!.value; - } - private set count(value: Resource) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_link?: MutableState; - private get link(): number { - return this.__backing_link!.value; - } - private set link(value: number) { - this.__backing_link!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent10Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor(this.count); - }, undefined, `Hello ${this.link}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.link += 5; // change link, will sync back to its parent - }); - }, undefined, 'change'); - }); - } -} -/** @memo */ -export function EntryComponent10(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent10Options): void { - const updatedInitializers: EntryComponent10Options = { - __backing_state: initializers?.__backing_state - }; - ArkEntryComponent10Component._instantiate(style, () => new ArkEntryComponent10Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent10(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent10Options): void { - const updatedInitializers: MyComponent10Options = { - __backing_count: initializers?.__backing_count, - __backing_link: initializers?.__backing_link - }; - ArkMyComponent10Component._instantiate(style, () => new ArkMyComponent10Component, content, updatedInitializers); -} -export interface EntryComponent10Options { - __backing_state?: MutableState; - state?: number; -} -export interface MyComponent10Options { - __backing_count?: MutableState; - count?: Resource; - __backing_link?: MutableState; - link?: number; -} diff --git a/arkoala-arkts/test/src/ets/test11.ts b/arkoala-arkts/test/src/ets/test11.ts deleted file mode 100644 index 301f409fb..000000000 --- a/arkoala-arkts/test/src/ets/test11.ts +++ /dev/null @@ -1,122 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { MutableState } from "@koalaui/runtime"; -import { observableProxy } from "@koalaui/common"; -class Model11 { - public value: string; - constructor(value: string) { - this.value = value; - } -} -class ArkEntryComponent11Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent11Options): void { - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: EntryComponent11Options) { - ArkColumn(__builder, () => { - // 此处指定的任何命名参数都将在初始渲染时 - // 覆盖本地定义的默认值 - MyComponent11(undefined, undefined, { count: 1, increaseBy: 2 } as MyComponent11Options); - MyComponent11(undefined, undefined, { title: new Model11('Hello, World 2'), count: 7 } as MyComponent11Options); - }); - } -} -class ArkMyComponent11Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: MyComponent11Options): void { - this.__backing_title = stateOf(initializers?.title ?? (new Model11('local child value')), this); - this.__backing_count = stateOf(initializers?.count ?? (0), this); - this.__backing_increaseBy = initializers?.increaseBy ?? (1); - } - private __backing_title?: MutableState; - private get title(): Model11 { - return this.__backing_title!.value; - } - private set title(value: Model11) { - this.__backing_title!.value = observableProxy(value); - } - private __backing_count?: MutableState; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_increaseBy?: number; - private get increaseBy(): number { - return this.__backing_increaseBy as number; - } - private set increaseBy(value: number) { - this.__backing_increaseBy = value; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: MyComponent11Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count : ${this.count} titleValue : ${this.title.value}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // @State变量的更新将触发上面的Text组件内容更新 - this.title.value = this.title.value == 'Hello Ace' ? 'Hello World' : 'Hello Ace'; - }); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(10); - }, undefined, `Click to change title`); - }); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // @State变量的更新将触发上面的Text组件内容更新 - this.count += this.increaseBy; - }); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(10); - }, undefined, `Click to increase count=${this.count}`); - }); - }); // Column - } // build -} -/** @memo */ -export function EntryComponent11(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: EntryComponent11Options): void { - const updatedInitializers: EntryComponent11Options = {}; - ArkEntryComponent11Component._instantiate(style, () => new ArkEntryComponent11Component, content, updatedInitializers); -} -/** @memo */ -export function MyComponent11(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: MyComponent11Options): void { - const updatedInitializers: MyComponent11Options = { - __backing_title: initializers?.__backing_title, - __backing_count: initializers?.__backing_count, - increaseBy: initializers?.increaseBy - }; - ArkMyComponent11Component._instantiate(style, () => new ArkMyComponent11Component, content, updatedInitializers); -} -export interface EntryComponent11Options { -} -export interface MyComponent11Options { - __backing_title?: MutableState; - title?: Model11; - __backing_count?: MutableState; - count?: number; - increaseBy?: number; -} diff --git a/arkoala-arkts/test/src/ets/test12.ts b/arkoala-arkts/test/src/ets/test12.ts deleted file mode 100644 index 5da3f0bbb..000000000 --- a/arkoala-arkts/test/src/ets/test12.ts +++ /dev/null @@ -1,161 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkFlex, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, FlexDirection, FlexOptions, ItemAlign, SyncedProperty, TextAlign, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Son12 { - public title: string; - constructor(title: string) { - this.title = title; - } -} -@Observed -class Father12 { - public name: string; - public son: Son12; - constructor(name: string, son: Son12) { - this.name = name; - this.son = son; - } -} -class ArkPerson12Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Person12Options): void { - this.__backing_person = stateOf(initializers?.person ?? (new Father12('Hello', new Son12('world'))), this); - } - private __backing_person?: MutableState; - private get person(): Father12 { - return this.__backing_person!.value; - } - private set person(value: Father12) { - this.__backing_person!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Person12Options) { - ArkColumn(__builder, () => { - ArkFlex(undefined, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(312) - .height(40) - .margin(12) - .fontColor('#FFFFFF,90%') - .onClick(() => { - this.person.name = "Hi"; - }); - }, undefined, 'change Father12 name'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(312) - .height(40) - .margin(12) - .fontColor('#FFFFFF,90%') - .onClick(() => { - this.person.son.title = "ArkUI"; // Son12 must be decorated with @Observed - }); - }, undefined, 'change Son12 title'); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .fontColor('#e6000000') - .onClick(() => { - this.person.name = 'Bye'; - }); - }, undefined, this.person.name); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .onClick(() => { - this.person.son.title = "openHarmony"; - }); - }, undefined, this.person.son.title); - Child(undefined, undefined, { child: this.person.son } as ChildOptions); - }, { direction: FlexDirection.Column, alignItems: ItemAlign.Center } as FlexOptions); - }); - } -} -class ArkChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ChildOptions): void { - this.__backing_child = propState(new Son12('')); - } - private __backing_child?: SyncedProperty; - private get child(): Son12 { - return this.__backing_child!.value; - } - private set child(value: Son12) { - this.__backing_child!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ChildOptions | undefined): void { - this.__backing_child?.update(initializers?.child); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ChildOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(16) - .margin(12) - .width(312) - .height(40) - .backgroundColor('#ededed') - .borderRadius(20) - .textAlign(TextAlign.Center) - .onClick(() => { - this.child.title = 'Bye Bye'; - }); - }, undefined, this.child.title); - }); - } -} -/** @memo */ -export function Person12(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Person12Options): void { - const updatedInitializers: Person12Options = { - __backing_person: initializers?.__backing_person - }; - ArkPerson12Component._instantiate(style, () => new ArkPerson12Component, content, updatedInitializers); -} -/** @memo */ -export function Child(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ChildOptions): void { - const updatedInitializers: ChildOptions = { - child: initializers?.child, - __backing_child: initializers?.__backing_child - }; - ArkChildComponent._instantiate(style, () => new ArkChildComponent, content, updatedInitializers); -} -export interface Person12Options { - __backing_person?: MutableState; - person?: Father12; -} -export interface ChildOptions { - __backing_child?: SyncedProperty; - child?: Son12; -} diff --git a/arkoala-arkts/test/src/ets/test13.ts b/arkoala-arkts/test/src/ets/test13.ts deleted file mode 100644 index 9de25d6d7..000000000 --- a/arkoala-arkts/test/src/ets/test13.ts +++ /dev/null @@ -1,86 +0,0 @@ -import { ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class Info13 { - info: string = 'Hello'; -} -class ArkChild13Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child13Options): void { - this.__backing_test = initializers!.__backing_test!; - } - private __backing_test?: MutableState; - private get test(): Info13 { - return this.__backing_test!.value; - } - private set test(value: Info13) { - this.__backing_test!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child13Options) { - ArkText(__builder, undefined, this.test.info); - } -} -class ArkLinkExampleComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: LinkExampleOptions): void { - this.__backing_info = stateOf(initializers?.info ?? (new Info13()), this); - } - private __backing_info?: MutableState; - private get info(): Info13 { - return this.__backing_info!.value; - } - private set info(value: Info13) { - this.__backing_info!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: LinkExampleOptions) { - ArkColumn(__builder, () => { - Child13(undefined, undefined, { test: this.info } as Child13Options); // also support this spec - Child13(undefined, undefined, { __backing_test: this.__backing_info } as Child13Options); // support $ - }); - } -} -/** @memo */ -export function Child13(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child13Options): void { - const updatedInitializers: Child13Options = { - __backing_test: initializers?.__backing_test - }; - ArkChild13Component._instantiate(style, () => new ArkChild13Component, content, updatedInitializers); -} -/** @memo */ -export function LinkExample(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: LinkExampleOptions): void { - const updatedInitializers: LinkExampleOptions = { - __backing_info: initializers?.__backing_info - }; - ArkLinkExampleComponent._instantiate(style, () => new ArkLinkExampleComponent, content, updatedInitializers); -} -export interface Child13Options { - __backing_test?: MutableState; - test?: Info13; -} -export interface LinkExampleOptions { - __backing_info?: MutableState; - info?: Info13; -} diff --git a/arkoala-arkts/test/src/ets/test14.ts b/arkoala-arkts/test/src/ets/test14.ts deleted file mode 100644 index eb6299a51..000000000 --- a/arkoala-arkts/test/src/ets/test14.ts +++ /dev/null @@ -1,118 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDatePicker, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, DatePickerOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; -import { MutableState, contextLocal } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkChild14Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child14Options): void { - this.__backing_selectedDate = initializers!.__backing_selectedDate!; - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child14Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, `child increase the day by 1`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-09-09'); - }); - }, undefined, 'child update the new date'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - }); - } -} -class ArkParent14Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent14Options): void { - this.__backing_selectedDate = initializers!.__backing_selectedDate!; - } - private __backing_selectedDate?: MutableState; - private get selectedDate(): Date { - return this.__backing_selectedDate!.value; - } - private set selectedDate(value: Date) { - this.__backing_selectedDate!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent14Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate.setDate(this.selectedDate.getDate() + 1); - }); - }, undefined, 'parent increase the day by 1'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.selectedDate = new Date('2023-07-07'); - }); - }, undefined, 'parent update the new date'); - ArkDatePicker(undefined, undefined, { - start: new Date('1970-1-1'), - end: new Date('2100-1-1'), - selected: this.selectedDate - } as DatePickerOptions); - Child14(undefined, undefined); - }); - } -} -/** @memo */ -export function Child14(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child14Options): void { - const __consume_selectedDate = contextLocal("selectedDate") as MutableState; - const updatedInitializers: Child14Options = { - __backing_selectedDate: __consume_selectedDate - }; - ArkChild14Component._instantiate(style, () => new ArkChild14Component, content, updatedInitializers); -} -/** @memo */ -export function Parent14(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent14Options): void { - const __provide_selectedDate = contextLocalStateOf("selectedDate", () => new Date('2021-08-08')); - const updatedInitializers: Parent14Options = { - __backing_selectedDate: __provide_selectedDate - }; - ArkParent14Component._instantiate(style, () => new ArkParent14Component, content, updatedInitializers); -} -export interface Child14Options { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} -export interface Parent14Options { - __backing_selectedDate?: MutableState; - selectedDate?: Date; -} diff --git a/arkoala-arkts/test/src/ets/test15.ts b/arkoala-arkts/test/src/ets/test15.ts deleted file mode 100644 index 30a743c84..000000000 --- a/arkoala-arkts/test/src/ets/test15.ts +++ /dev/null @@ -1,180 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, RowOptions, contextLocalStateOf } from "@koalaui/arkts-arkui"; -import { MutableState, contextLocal } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkGrandSon15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandSon15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Consume装饰的变量通过相同的属性名绑定其祖先内的@Provide装饰的变量 - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandSon15Options) { - ArkColumn(__instance => { - { - __instance.width('50%'); - } - __builder?.(__instance); - }, () => { - ArkText(undefined, undefined, `reviewVotes(${this.reviewVotes})`); // Text显示10 - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => this.reviewVotes += 1); - }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); - }); - } -} -class ArkChild15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 10; - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child15Options) { - ArkRow(__builder, () => { - GrandSon15(undefined, undefined); - }, { space: 5 } as RowOptions); - } -} -class ArkParent15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - // @Provide({ allowOverride: "reviewVotes" }) reviewVotes: number = 20; - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent15Options) { - Child15(__builder, undefined); - } -} -class ArkGrandParent15Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandParent15Options): void { - this.__backing_reviewVotes = initializers!.__backing_reviewVotes!; - } - private __backing_reviewVotes?: MutableState; - private get reviewVotes(): number { - return this.__backing_reviewVotes!.value; - } - private set reviewVotes(value: number) { - this.__backing_reviewVotes!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandParent15Options) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => this.reviewVotes += 1); - }, undefined, `reviewVotes(${this.reviewVotes}), give +1`); - Parent15(undefined, undefined); - }); - } -} -/** @memo */ -export function GrandSon15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandSon15Options): void { - const __consume_reviewVotes = contextLocal("reviewVotes") as MutableState; - const updatedInitializers: GrandSon15Options = { - __backing_reviewVotes: __consume_reviewVotes - }; - ArkGrandSon15Component._instantiate(style, () => new ArkGrandSon15Component, content, updatedInitializers); -} -/** @memo */ -export function Child15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 10); - const updatedInitializers: Child15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkChild15Component._instantiate(style, () => new ArkChild15Component, content, updatedInitializers); -} -/** @memo */ -export function Parent15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 20); - const updatedInitializers: Parent15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkParent15Component._instantiate(style, () => new ArkParent15Component, content, updatedInitializers); -} -/** @memo */ -export function GrandParent15(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandParent15Options): void { - const __provide_reviewVotes = contextLocalStateOf("reviewVotes", () => 40); - const updatedInitializers: GrandParent15Options = { - __backing_reviewVotes: __provide_reviewVotes - }; - ArkGrandParent15Component._instantiate(style, () => new ArkGrandParent15Component, content, updatedInitializers); -} -export interface GrandSon15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface Child15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface Parent15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} -export interface GrandParent15Options { - __backing_reviewVotes?: MutableState; - reviewVotes?: number; -} diff --git a/arkoala-arkts/test/src/ets/test16.ts b/arkoala-arkts/test/src/ets/test16.ts deleted file mode 100644 index 62e1489c9..000000000 --- a/arkoala-arkts/test/src/ets/test16.ts +++ /dev/null @@ -1,108 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -@Observed -class Info16 { - count: number; - constructor(count: number) { - this.count = count; - } -} -class ArkChild16Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child16Options): void { - this.__backing_num = objectLinkState(); - } - private __backing_num?: SyncedProperty; - private get num(): Info16 { - return this.__backing_num!.value; - } - private set num(value: Info16) { - this.__backing_num!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Child16Options | undefined): void { - this.__backing_num?.update(initializers?.num); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child16Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.onClick(() => { - // 正确写法,可以更改@ObjectLink装饰变量的成员属性 - this.num.count += 20; // modify count can sync back its parent - }); - }, undefined, `num的值: ${this.num.count}`); - }); - } -} -class ArkParent16Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent16Options): void { - this.__backing_num = stateOf(initializers?.num ?? (new Info16(10)), this); - } - private __backing_num?: MutableState; - private get num(): Info16 { - return this.__backing_num!.value; - } - private set num(value: Info16) { - this.__backing_num!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent16Options) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `count的值: ${this.num.count}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - // 可以在父组件做整体替换 - this.num = new Info16(30); // modify ObjectLink object, can sync to its child - }); - }, undefined, 'click'); - Child16(undefined, undefined, { num: this.num } as Child16Options); - }); - } -} -/** @memo */ -export function Child16(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child16Options): void { - const updatedInitializers: Child16Options = { - num: initializers?.num, - __backing_num: initializers?.__backing_num - }; - ArkChild16Component._instantiate(style, () => new ArkChild16Component, content, updatedInitializers); -} -/** @memo */ -export function Parent16(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent16Options): void { - const updatedInitializers: Parent16Options = { - __backing_num: initializers?.__backing_num - }; - ArkParent16Component._instantiate(style, () => new ArkParent16Component, content, updatedInitializers); -} -export interface Child16Options { - __backing_num?: SyncedProperty; - num?: Info16; -} -export interface Parent16Options { - __backing_num?: MutableState; - num?: Info16; -} diff --git a/arkoala-arkts/test/src/ets/test17.ts b/arkoala-arkts/test/src/ets/test17.ts deleted file mode 100644 index a185b5135..000000000 --- a/arkoala-arkts/test/src/ets/test17.ts +++ /dev/null @@ -1,249 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, TextAlign, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -let NextID: number = 1; -@Observed -class Bag { - public id: number; - public size: number; - constructor(size: number) { - this.id = NextID++; - this.size = size; - } -} -@Observed -class User { - public bag: Bag; - constructor(bag: Bag) { - this.bag = bag; - } -} -@Observed -class Book { - public bookName: BookName; - constructor(bookName: BookName) { - this.bookName = bookName; - } -} -@Observed -class BookName extends Bag { - public nameSize: number; - constructor(nameSize: number) { - // 调用父类方法对nameSize进行处理 - super(nameSize); - this.nameSize = nameSize; - } -} -class ArkSon17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Son17Options): void { - this.__backing_label = initializers?.label ?? ('Son17'); - this.__backing_bag = objectLinkState(); - } - private __backing_label?: string; - private get label(): string { - return this.__backing_label as string; - } - private set label(value: string) { - this.__backing_label = value; - } - private __backing_bag?: SyncedProperty; - private get bag(): Bag { - return this.__backing_bag!.value; - } - private set bag(value: Bag) { - this.__backing_bag!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Son17Options | undefined): void { - this.__backing_bag?.update(initializers?.bag); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Son17Options) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor('#ffffffff') - .backgroundColor('#ff3d9dba') - .width(320) - .height(50) - .borderRadius(25) - .margin(10) - .textAlign(TextAlign.Center); - }, undefined, `Son17 [${this.label}] this.bag.size = ${this.bag.size}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.bag.size += 1; - }); - }, undefined, `Son17: this.bag.size add 1`); - }); - } -} -class ArkFather17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Father17Options): void { - this.__backing_label = initializers?.label ?? ('Father17'); - this.__backing_bookName = objectLinkState(); - } - private __backing_label?: string; - private get label(): string { - return this.__backing_label as string; - } - private set label(value: string) { - this.__backing_label = value; - } - private __backing_bookName?: SyncedProperty; - private get bookName(): BookName { - return this.__backing_bookName!.value; - } - private set bookName(value: BookName) { - this.__backing_bookName!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Father17Options | undefined): void { - this.__backing_bookName?.update(initializers?.bookName); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Father17Options) { - ArkRow(__builder, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width(320); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontColor('#ffffffff') - .backgroundColor('#ff3d9dba') - .width(320) - .height(50) - .borderRadius(25) - .margin(10) - .textAlign(TextAlign.Center); - }, undefined, `Father17 [${this.label}] this.bookName.size = ${this.bookName.size}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.bookName.size += 1; - console.log('this.bookName.size:' + this.bookName.size); - }); - }, undefined, `Father17: this.bookName.size add 1`); - }); - }); - } -} -class ArkGrandFather17Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: GrandFather17Options): void { - this.__backing_user = stateOf(initializers?.user ?? (new User(new Bag(0))), this); - this.__backing_child = stateOf(initializers?.child ?? (new Book(new BookName(0))), this); - } - private __backing_user?: MutableState; - private get user(): User { - return this.__backing_user!.value; - } - private set user(value: User) { - this.__backing_user!.value = observableProxy(value); - } - private __backing_child?: MutableState; - private get child(): Book { - return this.__backing_child!.value; - } - private set child(value: Book) { - this.__backing_child!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: GrandFather17Options) { - ArkColumn(__builder, () => { - Son17((__instance: ArkCommonMethodComponent) => { - __instance.width(320); - }, undefined, { label: 'Son17 #1', bag: this.user.bag } as Son17Options); - Father17((__instance: ArkCommonMethodComponent) => { - __instance.width(320); - }, undefined, { label: 'Father17 #3', bookName: this.child.bookName } as Father17Options); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(320) - .backgroundColor('#ff17a98d') - .margin(10) - .onClick(() => { - this.child.bookName.size += 10; - console.log('this.child.bookName.size:' + this.child.bookName.size); - }); - }, undefined, `GrandFather17: this.child.bookName.size add 10`); - }); - } -} -/** @memo */ -export function Son17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Son17Options): void { - const updatedInitializers: Son17Options = { - label: initializers?.label, - bag: initializers?.bag, - __backing_bag: initializers?.__backing_bag - }; - ArkSon17Component._instantiate(style, () => new ArkSon17Component, content, updatedInitializers); -} -/** @memo */ -export function Father17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Father17Options): void { - const updatedInitializers: Father17Options = { - label: initializers?.label, - bookName: initializers?.bookName, - __backing_bookName: initializers?.__backing_bookName - }; - ArkFather17Component._instantiate(style, () => new ArkFather17Component, content, updatedInitializers); -} -/** @memo */ -export function GrandFather17(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: GrandFather17Options): void { - const updatedInitializers: GrandFather17Options = { - __backing_user: initializers?.__backing_user, - __backing_child: initializers?.__backing_child - }; - ArkGrandFather17Component._instantiate(style, () => new ArkGrandFather17Component, content, updatedInitializers); -} -export interface Son17Options { - label?: string; - __backing_bag?: SyncedProperty; - bag?: Bag; -} -export interface Father17Options { - label?: string; - __backing_bookName?: SyncedProperty; - bookName?: BookName; -} -export interface GrandFather17Options { - __backing_user?: MutableState; - user?: User; - __backing_child?: MutableState; - child?: Book; -} diff --git a/arkoala-arkts/test/src/ets/test18.ts b/arkoala-arkts/test/src/ets/test18.ts deleted file mode 100644 index 4434a7309..000000000 --- a/arkoala-arkts/test/src/ets/test18.ts +++ /dev/null @@ -1,127 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -import { MutableState } from "@koalaui/runtime"; -@Observed -class ObservedArray extends Array { - constructor(args: T[]) { - super(...args); - } -} -class ArkItemComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ItemOptions): void { - this.__backing_itemArr = objectLinkState>(); - } - private __backing_itemArr?: SyncedProperty>; - private get itemArr(): ObservedArray { - return this.__backing_itemArr!.value; - } - private set itemArr(value: ObservedArray) { - this.__backing_itemArr!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ItemOptions | undefined): void { - this.__backing_itemArr?.update(initializers?.itemArr); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ItemOptions) { - ArkRow(__builder, () => { - ForEach(this.itemArr, (item: string, index: number) => { - ArkText((__instance: ArkTextComponent) => { - __instance.width(100) - .height(100); - }, undefined, `${index}: ${item}`); - }, (item: string) => item); - }); - } -} -class ArkIndexPageComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: IndexPageOptions): void { - this.__backing_arr = stateOf>>(initializers?.arr ?? ([new ObservedArray(['apple']), new ObservedArray(['banana']), new ObservedArray(['orange'])]), this); - } - private __backing_arr?: MutableState>>; - private get arr(): Array> { - return this.__backing_arr!.value; - } - private set arr(value: Array>) { - this.__backing_arr!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: IndexPageOptions) { - ArkColumn(__builder, () => { - ForEach(this.arr, (itemArr: ObservedArray) => { - Item(undefined, undefined, { itemArr: itemArr } as ItemOptions); - }, (item: ObservedArray) => item.toString()); - ArkDivider(undefined, undefined); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0].push('strawberry'); - }); - }, undefined, 'push two-dimensional array item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr.push(new ObservedArray(['pear'])); - }); - }, undefined, 'push array item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0][0] = 'APPLE'; - }); - }, undefined, 'change two-dimensional array first item'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - this.arr[0] = new ObservedArray(['watermelon']); - }); - }, undefined, 'change array first item'); - }); - } -} -/** @memo */ -export function Item(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ItemOptions): void { - const updatedInitializers: ItemOptions = { - itemArr: initializers?.itemArr, - __backing_itemArr: initializers?.__backing_itemArr - }; - ArkItemComponent._instantiate(style, () => new ArkItemComponent, content, updatedInitializers); -} -/** @memo */ -export function IndexPage(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: IndexPageOptions): void { - const updatedInitializers: IndexPageOptions = { - __backing_arr: initializers?.__backing_arr - }; - ArkIndexPageComponent._instantiate(style, () => new ArkIndexPageComponent, content, updatedInitializers); -} -export interface ItemOptions { - __backing_itemArr?: SyncedProperty>; - itemArr?: ObservedArray; -} -export interface IndexPageOptions { - __backing_arr?: MutableState>>; - arr?: Array>; -} diff --git a/arkoala-arkts/test/src/ets/test19.ts b/arkoala-arkts/test/src/ets/test19.ts deleted file mode 100644 index 9fece5aad..000000000 --- a/arkoala-arkts/test/src/ets/test19.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Info { - public info: MySet; - constructor(info: MySet) { - this.info = info; - } -} -@Observed -export class MySet extends Set { - public name: string; - constructor(name?: string, args?: T[]) { - super(args); - this.name = name ? name : "My Set"; - } - getName() { - return this.name; - } -} -class ArkSetSampleNestedComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions): void { - this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); - } - private __backing_message?: MutableState; - private get message(): Info { - return this.__backing_message!.value; - } - private set message(value: Info) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); - }); - }); - } -} -class ArkSetSampleNestedChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions): void { - this.__backing_mySet = objectLinkState>(); - } - private __backing_mySet?: SyncedProperty>; - private get mySet(): MySet { - return this.__backing_mySet!.value; - } - private set mySet(value: MySet) { - this.__backing_mySet!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { - this.__backing_mySet?.update(initializers?.mySet); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.mySet.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item}`); - ArkDivider(undefined, undefined); - }, (item: [ - number, - number - ]) => item.toString()); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSampleNested(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedOptions): void { - const updatedInitializers: SetSampleNestedOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); -} -/** @memo */ -export function SetSampleNestedChild(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedChildOptions): void { - const updatedInitializers: SetSampleNestedChildOptions = { - mySet: initializers?.mySet, - __backing_mySet: initializers?.__backing_mySet - }; - ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); -} -export interface SetSampleNestedOptions { - __backing_message?: MutableState; - message?: Info; -} -export interface SetSampleNestedChildOptions { - __backing_mySet?: SyncedProperty>; - mySet?: MySet; -} diff --git a/arkoala-arkts/test/src/ets/test20.ts b/arkoala-arkts/test/src/ets/test20.ts deleted file mode 100644 index 9fece5aad..000000000 --- a/arkoala-arkts/test/src/ets/test20.ts +++ /dev/null @@ -1,157 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkDivider, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, ForEach, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Info { - public info: MySet; - constructor(info: MySet) { - this.info = info; - } -} -@Observed -export class MySet extends Set { - public name: string; - constructor(name?: string, args?: T[]) { - super(args); - this.name = name ? name : "My Set"; - } - getName() { - return this.name; - } -} -class ArkSetSampleNestedComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions): void { - this.__backing_message = stateOf(initializers?.message ?? (new Info(new MySet("Set", [0, 1, 2, 3, 4]))), this); - } - private __backing_message?: MutableState; - private get message(): Info { - return this.__backing_message!.value; - } - private set message(value: Info) { - this.__backing_message!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - SetSampleNestedChild(undefined, undefined, { mySet: this.message.info } as SetSampleNestedChildOptions); - }); - }); - } -} -class ArkSetSampleNestedChildComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions): void { - this.__backing_mySet = objectLinkState>(); - } - private __backing_mySet?: SyncedProperty>; - private get mySet(): MySet { - return this.__backing_mySet!.value; - } - private set mySet(value: MySet) { - this.__backing_mySet!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: SetSampleNestedChildOptions | undefined): void { - this.__backing_mySet?.update(initializers?.mySet); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: SetSampleNestedChildOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ForEach(Array.from(this.mySet.entries()), (item: [ - number, - number - ]) => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `${item}`); - ArkDivider(undefined, undefined); - }, (item: [ - number, - number - ]) => item.toString()); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.add(5); - }); - }, undefined, 'set new one'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.clear(); - }); - }, undefined, 'clear'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.width(200) - .margin(10) - .onClick(() => { - this.mySet.delete(0); - }); - }, undefined, 'delete the first one'); - }); - }); - } -} -/** @memo */ -export function SetSampleNested(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedOptions): void { - const updatedInitializers: SetSampleNestedOptions = { - __backing_message: initializers?.__backing_message - }; - ArkSetSampleNestedComponent._instantiate(style, () => new ArkSetSampleNestedComponent, content, updatedInitializers); -} -/** @memo */ -export function SetSampleNestedChild(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: SetSampleNestedChildOptions): void { - const updatedInitializers: SetSampleNestedChildOptions = { - mySet: initializers?.mySet, - __backing_mySet: initializers?.__backing_mySet - }; - ArkSetSampleNestedChildComponent._instantiate(style, () => new ArkSetSampleNestedChildComponent, content, updatedInitializers); -} -export interface SetSampleNestedOptions { - __backing_message?: MutableState; - message?: Info; -} -export interface SetSampleNestedChildOptions { - __backing_mySet?: SyncedProperty>; - mySet?: MySet; -} diff --git a/arkoala-arkts/test/src/ets/test21.ts b/arkoala-arkts/test/src/ets/test21.ts deleted file mode 100644 index ce81e1977..000000000 --- a/arkoala-arkts/test/src/ets/test21.ts +++ /dev/null @@ -1,156 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Source { - public source: number; - constructor(source: number) { - this.source = source; - } -} -@Observed -class Data { - public data: number; - constructor(data: number) { - this.data = data; - } -} -class ArkParent21Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Parent21Options): void { - this.__backing_count = stateOf(initializers?.count ?? (new Source(10)), this); - } - private __backing_count?: MutableState; - private get count(): Source | Data | undefined { - return this.__backing_count!.value; - } - private set count(value: Source | Data | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Parent21Options) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - Child21(undefined, undefined, { count: this.count } as Child21Options); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 判断count的类型,做属性的更新 - if (this.count instanceof Source) { - this.count.source += 1; - } - else if (this.count instanceof Data) { - this.count.data += 1; - } - else { - console.info('count is undefined, cannot change property'); - } - }); - }, undefined, 'change count property'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为Source的实例 - this.count = new Source(100); - }); - }, undefined, 'change count to Source'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为Data的实例 - this.count = new Data(100); - }); - }, undefined, 'change count to Data'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.margin(10) - .onClick(() => { - // 赋值为undefined - this.count = undefined; - }); - }, undefined, 'change count to undefined'); - }); - } -} -class ArkChild21Component extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: Child21Options): void { - this.__backing_count = objectLinkState(); - } - private __backing_count?: SyncedProperty; - private get count(): Source | Data | undefined { - return this.__backing_count!.value; - } - private set count(value: Source | Data | undefined) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: Child21Options | undefined): void { - this.__backing_count?.update(initializers?.count); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: Child21Options) { - ArkColumn(__instance => { - { - __instance.width('100%'); - } - __builder?.(__instance); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30) - .margin(10); - }, undefined, `count is instanceof ${this.count instanceof Source ? 'Source' : - this.count instanceof Data ? 'Data' : 'undefined'}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(15); - }, undefined, `count's property is ${this.count instanceof Source ? this.count.source : this.count?.data}`); - }); - } -} -/** @memo */ -export function Parent21(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Parent21Options): void { - const updatedInitializers: Parent21Options = { - __backing_count: initializers?.__backing_count - }; - ArkParent21Component._instantiate(style, () => new ArkParent21Component, content, updatedInitializers); -} -/** @memo */ -export function Child21(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: Child21Options): void { - const updatedInitializers: Child21Options = { - count: initializers?.count, - __backing_count: initializers?.__backing_count - }; - ArkChild21Component._instantiate(style, () => new ArkChild21Component, content, updatedInitializers); -} -export interface Parent21Options { - __backing_count?: MutableState; - count?: Source | Data | undefined; -} -export interface Child21Options { - __backing_count?: SyncedProperty; - count?: Source | Data | undefined; -} diff --git a/arkoala-arkts/test/src/ets/test22.ts b/arkoala-arkts/test/src/ets/test22.ts deleted file mode 100644 index 798b7af49..000000000 --- a/arkoala-arkts/test/src/ets/test22.ts +++ /dev/null @@ -1,111 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkColumnComponent, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkRow, ArkRowComponent, ArkStructBase, ArkText, ArkTextComponent, FontWeight, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class LogTrack { - @Track - str1: string; - @Track - str2: string; - constructor(str1: string) { - this.str1 = str1; - this.str2 = 'World'; - } -} -class LogNotTrack { - str1: string; - str2: string; - constructor(str1: string) { - this.str1 = str1; - this.str2 = '世界'; - } -} -class ArkAddLogComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: AddLogOptions): void { - this.__backing_logTrack = stateOf(initializers?.logTrack ?? (new LogTrack('Hello')), this); - this.__backing_logNotTrack = stateOf(initializers?.logNotTrack ?? (new LogNotTrack('你好')), this); - } - private __backing_logTrack?: MutableState; - private get logTrack(): LogTrack { - return this.__backing_logTrack!.value; - } - private set logTrack(value: LogTrack) { - this.__backing_logTrack!.value = observableProxy(value); - } - private __backing_logNotTrack?: MutableState; - private get logNotTrack(): LogNotTrack { - return this.__backing_logNotTrack!.value; - } - private set logNotTrack(value: LogNotTrack) { - this.__backing_logNotTrack!.value = observableProxy(value); - } - isRender(index: number) { - console.log(`Text ${index} is rendered`); - return 50; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: AddLogOptions) { - ArkRow(__instance => { - { - __instance.height('100%'); - } - __builder?.(__instance); - }, () => { - ArkColumn((__instance: ArkColumnComponent) => { - __instance.width('100%'); - }, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(1)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logTrack.str1); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(2)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logTrack.str2); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.logTrack.str1 = 'Bye'; - }); - }, undefined, 'change logTrack.str1'); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(3)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logNotTrack.str1); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(this.isRender(4)) - .fontWeight(FontWeight.Bold); - }, undefined, this.logNotTrack.str2); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.logNotTrack.str1 = '再见'; - }); - }, undefined, 'change logNotTrack.str1'); - }); - }); - } -} -/** @memo */ -export function AddLog(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: AddLogOptions): void { - const updatedInitializers: AddLogOptions = { - __backing_logTrack: initializers?.__backing_logTrack, - __backing_logNotTrack: initializers?.__backing_logNotTrack - }; - ArkAddLogComponent._instantiate(style, () => new ArkAddLogComponent, content, updatedInitializers); -} -export interface AddLogOptions { - __backing_logTrack?: MutableState; - logTrack?: LogTrack; - __backing_logNotTrack?: MutableState; - logNotTrack?: LogNotTrack; -} diff --git a/arkoala-arkts/test/src/ets/test23.ts b/arkoala-arkts/test/src/ets/test23.ts deleted file mode 100644 index caf8c34e4..000000000 --- a/arkoala-arkts/test/src/ets/test23.ts +++ /dev/null @@ -1,95 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, ArkTextComponent, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkUsePropertyNameComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: UsePropertyNameOptions): void { - this.__backing_apple = stateOf(initializers?.apple ?? (0), this); - this.__backing_cabbage = stateOf(initializers?.cabbage ?? (0), this); - this.__backing_fruit = stateOf(initializers?.fruit ?? (0), this); - } - private __backing_apple?: MutableState; - private get apple(): number { - return this.__backing_apple!.value; - } - private set apple(value: number) { - this.__backing_apple!.value = observableProxy(value); - } - private __backing_cabbage?: MutableState; - private get cabbage(): number { - return this.__backing_cabbage!.value; - } - private set cabbage(value: number) { - this.__backing_cabbage!.value = observableProxy(value); - } - private __backing_fruit?: MutableState; - private get fruit(): number { - return this.__backing_fruit!.value; - } - private set fruit(value: number) { - this.__backing_fruit!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: UsePropertyNameOptions | undefined): void { - OnChange(this.apple, (_: number) => this.countUpdated("apple")); - OnChange(this.cabbage, (_: number) => this.countUpdated("cabbage")); - } - // @Watch 回调 - countUpdated(propName: string): void { - if (propName == 'apple') { - this.fruit = this.apple; - } - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: UsePropertyNameOptions) { - ArkColumn(__builder, () => { - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Number of apples: ${this.apple.toString()}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Number of cabbages: ${this.cabbage.toString()}`); - ArkText((__instance: ArkTextComponent) => { - __instance.fontSize(30); - }, undefined, `Total number of fruits: ${this.fruit.toString()}`); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.apple++; - }); - }, undefined, 'Add apples'); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.cabbage++; - }); - }, undefined, 'Add cabbages'); - }); - } -} -/** @memo */ -export function UsePropertyName(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: UsePropertyNameOptions): void { - const updatedInitializers: UsePropertyNameOptions = { - __backing_apple: initializers?.__backing_apple, - __backing_cabbage: initializers?.__backing_cabbage, - __backing_fruit: initializers?.__backing_fruit - }; - ArkUsePropertyNameComponent._instantiate(style, () => new ArkUsePropertyNameComponent, content, updatedInitializers); -} -export interface UsePropertyNameOptions { - __backing_apple?: MutableState; - apple?: number; - __backing_cabbage?: MutableState; - cabbage?: number; - __backing_fruit?: MutableState; - fruit?: number; -} diff --git a/arkoala-arkts/test/src/ets/test24.ts b/arkoala-arkts/test/src/ets/test24.ts deleted file mode 100644 index afcb60e3e..000000000 --- a/arkoala-arkts/test/src/ets/test24.ts +++ /dev/null @@ -1,146 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, objectLinkState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -@Observed -class Task { - isFinished: boolean = false; - constructor(isFinished: boolean) { - this.isFinished = isFinished; - } -} -class ArkParentComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ParentComponentOptions): void { - this.__backing_taskA = stateOf(initializers?.taskA ?? (new Task(false)), this); - this.__backing_taskB = stateOf(initializers?.taskB ?? (new Task(false)), this); - } - private __backing_taskA?: MutableState; - private get taskA(): Task { - return this.__backing_taskA!.value; - } - private set taskA(value: Task) { - this.__backing_taskA!.value = observableProxy(value); - } - private __backing_taskB?: MutableState; - private get taskB(): Task { - return this.__backing_taskB!.value; - } - private set taskB(value: Task) { - this.__backing_taskB!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ParentComponentOptions | undefined): void { - OnChange(this.taskA, (_: Task) => this.onTaskAChanged("taskA")); - OnChange(this.taskB, (_: Task) => this.onTaskBChanged("taskB")); - } - onTaskAChanged(changedPropertyName: string): void { - console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); - } - onTaskBChanged(changedPropertyName: string): void { - console.log(`观测到父组件任务属性变化: ${changedPropertyName}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ParentComponentOptions) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `父组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); - ArkText(undefined, undefined, `父组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); - ChildComponent(undefined, undefined, { taskA: this.taskA, taskB: this.taskB } as ChildComponentOptions); - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - this.taskB = new Task(!this.taskB.isFinished); - this.taskA = new Task(!this.taskA.isFinished); - }); - }, undefined, '切换任务状态'); - }); - } -} -class ArkChildComponentComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: ChildComponentOptions): void { - this.__backing_taskB = objectLinkState(); - this.__backing_taskA = initializers!.__backing_taskA!; - } - private __backing_taskB?: SyncedProperty; - private get taskB(): Task { - return this.__backing_taskB!.value; - } - private set taskB(value: Task) { - this.__backing_taskB!.value = observableProxy(value); - } - private __backing_taskA?: MutableState; - private get taskA(): Task { - return this.__backing_taskA!.value; - } - private set taskA(value: Task) { - this.__backing_taskA!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: ChildComponentOptions | undefined): void { - this.__backing_taskB?.update(initializers?.taskB); - OnChange(this.taskB, (_: Task) => this.onObjectLinkTaskChanged("taskB")); - OnChange(this.taskA, (_: Task) => this.onLinkTaskChanged("taskA")); - } - onObjectLinkTaskChanged(changedPropertyName: string): void { - console.log(`观测到子组件@ObjectLink关联的任务属性变化: ${changedPropertyName}`); - } - onLinkTaskChanged(changedPropertyName: string): void { - console.log(`观测到子组件@Link关联的任务属性变化: ${changedPropertyName}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: ChildComponentOptions) { - ArkColumn(__builder, () => { - ArkText(undefined, undefined, `子组件任务A状态: ${this.taskA.isFinished ? '已完成' : '未完成'}`); - ArkText(undefined, undefined, `子组件任务B状态: ${this.taskB.isFinished ? '已完成' : '未完成'}`); - }); - } -} -/** @memo */ -export function ParentComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ParentComponentOptions): void { - const updatedInitializers: ParentComponentOptions = { - __backing_taskA: initializers?.__backing_taskA, - __backing_taskB: initializers?.__backing_taskB - }; - ArkParentComponentComponent._instantiate(style, () => new ArkParentComponentComponent, content, updatedInitializers); -} -/** @memo */ -export function ChildComponent(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: ChildComponentOptions): void { - const updatedInitializers: ChildComponentOptions = { - taskB: initializers?.taskB, - __backing_taskB: initializers?.__backing_taskB, - __backing_taskA: initializers?.__backing_taskA - }; - ArkChildComponentComponent._instantiate(style, () => new ArkChildComponentComponent, content, updatedInitializers); -} -export interface ParentComponentOptions { - __backing_taskA?: MutableState; - taskA?: Task; - __backing_taskB?: MutableState; - taskB?: Task; -} -export interface ChildComponentOptions { - __backing_taskB?: SyncedProperty; - taskB?: Task; - __backing_taskA?: MutableState; - taskA?: Task; -} diff --git a/arkoala-arkts/test/src/ets/test25.ts b/arkoala-arkts/test/src/ets/test25.ts deleted file mode 100644 index f75a6a866..000000000 --- a/arkoala-arkts/test/src/ets/test25.ts +++ /dev/null @@ -1,117 +0,0 @@ -import { ArkButton, ArkButtonComponent, ArkColumn, ArkCommonMethodComponent, ArkPageTransitionEnterComponent, ArkPageTransitionExitComponent, ArkStructBase, ArkText, SyncedProperty, propState, stateOf } from "@koalaui/arkts-arkui"; -import { MutableState, OnChange } from "@koalaui/runtime"; -import { LocalStorage } from "@koalaui/arkui-common"; -import { observableProxy } from "@koalaui/common"; -class ArkTotalViewComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: TotalViewOptions): void { - this.__backing_count = propState(0); - this.__backing_total = stateOf(initializers?.total ?? (0), this); - } - private __backing_count?: SyncedProperty; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - private __backing_total?: MutableState; - private get total(): number { - return this.__backing_total!.value; - } - private set total(value: number) { - this.__backing_total!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: TotalViewOptions | undefined): void { - this.__backing_count?.update(initializers?.count); - OnChange(this.count, (_: number) => this.onCountUpdated("count")); - } - // @Watch 回调 - onCountUpdated(propName: string): void { - this.total += this.count; - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: TotalViewOptions) { - ArkText(__builder, undefined, `Total: ${this.total}`); - } -} -class ArkCountModifierComponent extends ArkStructBase { - private _entry_local_storage_ = new LocalStorage(); - __initializeStruct(/**/ - /** @memo */ - content?: () => void, initializers?: CountModifierOptions): void { - this.__backing_count = stateOf(initializers?.count ?? (0), this); - } - private __backing_count?: MutableState; - private get count(): number { - return this.__backing_count!.value; - } - private set count(value: number) { - this.__backing_count!.value = observableProxy(value); - } - /** @memo */ - __updateStruct(initializers: CountModifierOptions | undefined): void { - OnChange(this.count, (_: number) => this.onCountChange("count")); - } - onCountChange(name: string) { - console.log(`change count = ${this.count}`); - } - /** @memo */ - __build(/**/ - /** @memo */ - __builder: ((__instance: ArkCommonMethodComponent) => void) | undefined, /**/ - /** @memo */ - content?: () => void, initializers?: CountModifierOptions) { - ArkColumn(__builder, () => { - ArkButton((__instance: ArkButtonComponent) => { - __instance.onClick(() => { - for (let i = 0; i < 1000; i++) { - this.count++; - } - }); - }, undefined, 'add to basket'); - TotalView(undefined, undefined, { count: this.count } as TotalViewOptions); - }); - } -} -/** @memo */ -export function TotalView(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: TotalViewOptions): void { - const updatedInitializers: TotalViewOptions = { - count: initializers?.count, - __backing_count: initializers?.__backing_count, - __backing_total: initializers?.__backing_total - }; - ArkTotalViewComponent._instantiate(style, () => new ArkTotalViewComponent, content, updatedInitializers); -} -/** @memo */ -export function CountModifier(/**/ -/** @memo */ -style?: (__instance: ArkCommonMethodComponent) => void, /**/ -/** @memo */ -content?: () => void, initializers?: CountModifierOptions): void { - const updatedInitializers: CountModifierOptions = { - __backing_count: initializers?.__backing_count - }; - ArkCountModifierComponent._instantiate(style, () => new ArkCountModifierComponent, content, updatedInitializers); -} -export interface TotalViewOptions { - __backing_count?: SyncedProperty; - count?: number; - __backing_total?: MutableState; - total?: number; -} -export interface CountModifierOptions { - __backing_count?: MutableState; - count?: number; -} -- Gitee From 5935815099f76ddd05246f3727ffefeb34614dcb Mon Sep 17 00:00:00 2001 From: Alexander Gorshenev Date: Mon, 3 Feb 2025 12:45:56 +0300 Subject: [PATCH 11/11] more Signed-off-by: Alexander Gorshenev --- .../test/tsconfig-unmemoize-passed.json | 69 +++++++++++++++++++ 1 file changed, 69 insertions(+) create mode 100644 arkoala-arkts/test/tsconfig-unmemoize-passed.json diff --git a/arkoala-arkts/test/tsconfig-unmemoize-passed.json b/arkoala-arkts/test/tsconfig-unmemoize-passed.json new file mode 100644 index 000000000..041117129 --- /dev/null +++ b/arkoala-arkts/test/tsconfig-unmemoize-passed.json @@ -0,0 +1,69 @@ +{ + "extends": "@koalaui/build-common/tsconfig.json", + "compilerOptions": { + "types": [], + "plugins": [ + { + "transform": "@koalaui/compiler-plugin/build/lib/src/koala-transformer.js", + "trace": false, + "only_unmemoize": true, + "unmemoizeDir": "./build/unmemoized" + } + ], + "outDir": "./build/junk", + "baseUrl": ".", + "paths": { + "@koalaui/arkui-common": [ + "../../arkoala/arkui-common/src/arkts" + ], + "@koalaui/runtime": [ + "../../incremental/runtime" + ], + "#arkcompat": [ + "../../arkoala/arkui-common/src/arkts" + ], + "@koalaui/arkts-arkui": [ + "../arkui/src" + ], + "@koalaui/arkts-arkui/ohos.router": [ + "../arkui/src/ohos.router.ts" + ], + "app/*": [ + "./build/generated/*" + ] + } + }, + "files": [ + "../../incremental/tools/panda/arkts/std-lib/global.d.ts" + ], + "include": [ + "./build/generated", + "./src/**/*.ts" + ], + "exclude": [ + "../arkui/src/generated/arkts", + "../arkui/src/generated/common.ts", + "../arkui/src/generated/test_utils.ts", + "../arkui/src/generated/main.ts", + + "build/generated/test01.ts", + "build/generated/test08.ts", + "build/generated/test09.ts", + "build/generated/test10.ts", + "build/generated/test12.ts", + "build/generated/test16.ts", + "build/generated/test17.ts", + "build/generated/test18.ts", + "build/generated/test19.ts", + "build/generated/test20.ts", + "build/generated/test21.ts", + "build/generated/test22.ts", + "build/generated/test24.ts" + ], + "references": [ + { "path": "../../arkoala/arkui-common" }, + { "path": "../../arkoala/arkui-common/tsconfig-unmemoize.json" }, + { "path": "../../incremental/runtime" }, + { "path": "../arkui/tsconfig-unmemoize.json" } + ] +} -- Gitee