199da06d0Sopenharmony_ci/**
299da06d0Sopenharmony_ci * Copyright (c) 2022 Huawei Device Co., Ltd.
399da06d0Sopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
499da06d0Sopenharmony_ci * you may not use this file except in compliance with the License.
599da06d0Sopenharmony_ci * You may obtain a copy of the License at
699da06d0Sopenharmony_ci *
799da06d0Sopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
899da06d0Sopenharmony_ci *
999da06d0Sopenharmony_ci * Unless required by applicable law or agreed to in writing, software
1099da06d0Sopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
1199da06d0Sopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
1299da06d0Sopenharmony_ci * See the License for the specific language governing permissions and
1399da06d0Sopenharmony_ci * limitations under the License.
1499da06d0Sopenharmony_ci */
1599da06d0Sopenharmony_ci
1699da06d0Sopenharmony_ciimport CallServiceProxy from '../../model/CallServiceProxy';
1799da06d0Sopenharmony_ciimport DtmfBtn from '../components/DtmfBtn';
1899da06d0Sopenharmony_ciimport DefaultCallData from '../struct/TypeUtils';
1999da06d0Sopenharmony_ci
2099da06d0Sopenharmony_ciclass DataListStruct {
2199da06d0Sopenharmony_ci  public value: string
2299da06d0Sopenharmony_ci  public sign: string
2399da06d0Sopenharmony_ci}
2499da06d0Sopenharmony_ciconst TAG = 'Keyboard';
2599da06d0Sopenharmony_ci
2699da06d0Sopenharmony_ci@Component
2799da06d0Sopenharmony_ciexport default struct Keyboard {
2899da06d0Sopenharmony_ci  @Link callData: DefaultCallData;
2999da06d0Sopenharmony_ci  @StorageLink('TextInput') textInput: string = '';
3099da06d0Sopenharmony_ci  @StorageLink('TextInputValue') textInputValue: string = '';
3199da06d0Sopenharmony_ci  @State dataList: Array<DataListStruct> =
3299da06d0Sopenharmony_ci    [
3399da06d0Sopenharmony_ci      {
3499da06d0Sopenharmony_ci        value: '1',
3599da06d0Sopenharmony_ci        sign: 'o_o'
3699da06d0Sopenharmony_ci      },
3799da06d0Sopenharmony_ci      {
3899da06d0Sopenharmony_ci        value: '2',
3999da06d0Sopenharmony_ci        sign: 'ABC'
4099da06d0Sopenharmony_ci      },
4199da06d0Sopenharmony_ci      {
4299da06d0Sopenharmony_ci        value: '3',
4399da06d0Sopenharmony_ci        sign: 'DEF'
4499da06d0Sopenharmony_ci      },
4599da06d0Sopenharmony_ci      {
4699da06d0Sopenharmony_ci        value: '4',
4799da06d0Sopenharmony_ci        sign: 'GHI'
4899da06d0Sopenharmony_ci      },
4999da06d0Sopenharmony_ci      {
5099da06d0Sopenharmony_ci        value: '5',
5199da06d0Sopenharmony_ci        sign: 'JKL'
5299da06d0Sopenharmony_ci      },
5399da06d0Sopenharmony_ci      {
5499da06d0Sopenharmony_ci        value: '6',
5599da06d0Sopenharmony_ci        sign: 'MNO'
5699da06d0Sopenharmony_ci      },
5799da06d0Sopenharmony_ci      {
5899da06d0Sopenharmony_ci        value: '7',
5999da06d0Sopenharmony_ci        sign: 'PQRS'
6099da06d0Sopenharmony_ci      },
6199da06d0Sopenharmony_ci      {
6299da06d0Sopenharmony_ci        value: '8',
6399da06d0Sopenharmony_ci        sign: 'TUV'
6499da06d0Sopenharmony_ci      },
6599da06d0Sopenharmony_ci      {
6699da06d0Sopenharmony_ci        value: '9',
6799da06d0Sopenharmony_ci        sign: 'WXYZ'
6899da06d0Sopenharmony_ci      },
6999da06d0Sopenharmony_ci      {
7099da06d0Sopenharmony_ci        value: '*',
7199da06d0Sopenharmony_ci        sign: '(P)'
7299da06d0Sopenharmony_ci      },
7399da06d0Sopenharmony_ci      {
7499da06d0Sopenharmony_ci        value: '0',
7599da06d0Sopenharmony_ci        sign: '+'
7699da06d0Sopenharmony_ci      },
7799da06d0Sopenharmony_ci      {
7899da06d0Sopenharmony_ci        value: '#',
7999da06d0Sopenharmony_ci        sign: '(W)'
8099da06d0Sopenharmony_ci      },
8199da06d0Sopenharmony_ci    ];
8299da06d0Sopenharmony_ci  private mCallServiceProxy: CallServiceProxy;
8399da06d0Sopenharmony_ci
8499da06d0Sopenharmony_ci  public aboutToAppear(): void {
8599da06d0Sopenharmony_ci    this.mCallServiceProxy = CallServiceProxy.getInstance();
8699da06d0Sopenharmony_ci  }
8799da06d0Sopenharmony_ci
8899da06d0Sopenharmony_ci  build() {
8999da06d0Sopenharmony_ci    GridRow({ columns: { sm: 4, md: 8, lg: 12 }, gutter: 24 }) {
9099da06d0Sopenharmony_ci      GridCol({ span: { sm: 4, md: 6, lg: 6 }, offset: { md: 1, lg: 3 } }) {
9199da06d0Sopenharmony_ci        Grid() {
9299da06d0Sopenharmony_ci          ForEach(this.dataList, (item) => {
9399da06d0Sopenharmony_ci            GridItem() {
9499da06d0Sopenharmony_ci              DtmfBtn({
9599da06d0Sopenharmony_ci                item: item,
9699da06d0Sopenharmony_ci                textInput: $textInput,
9799da06d0Sopenharmony_ci                textInputValue: $textInputValue,
9899da06d0Sopenharmony_ci                dataList: $dataList,
9999da06d0Sopenharmony_ci                callData: this.callData
10099da06d0Sopenharmony_ci              })
10199da06d0Sopenharmony_ci            }
10299da06d0Sopenharmony_ci            .height(56.5)
10399da06d0Sopenharmony_ci          })
10499da06d0Sopenharmony_ci        }
10599da06d0Sopenharmony_ci        .columnsGap(24)
10699da06d0Sopenharmony_ci        .rowsGap(20.5)
10799da06d0Sopenharmony_ci        .columnsTemplate('1fr 1fr 1fr')
10899da06d0Sopenharmony_ci        .rowsTemplate('1fr 1fr 1fr 1fr')
10999da06d0Sopenharmony_ci      }
11099da06d0Sopenharmony_ci      .height(287.5)
11199da06d0Sopenharmony_ci    }
11299da06d0Sopenharmony_ci    .margin({ left: 24, right: 24 })
11399da06d0Sopenharmony_ci  }
11499da06d0Sopenharmony_ci}