13af6ab5fSopenharmony_ci/*
23af6ab5fSopenharmony_ci * Copyright (c) 2024 Huawei Device Co., Ltd.
33af6ab5fSopenharmony_ci * Licensed under the Apache License, Version 2.0 (the "License");
43af6ab5fSopenharmony_ci * you may not use this file except in compliance with the License.
53af6ab5fSopenharmony_ci * You may obtain a copy of the License at
63af6ab5fSopenharmony_ci *
73af6ab5fSopenharmony_ci *     http://www.apache.org/licenses/LICENSE-2.0
83af6ab5fSopenharmony_ci *
93af6ab5fSopenharmony_ci * Unless required by applicable law or agreed to in writing, software
103af6ab5fSopenharmony_ci * distributed under the License is distributed on an "AS IS" BASIS,
113af6ab5fSopenharmony_ci * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
123af6ab5fSopenharmony_ci * See the License for the specific language governing permissions and
133af6ab5fSopenharmony_ci * limitations under the License.
143af6ab5fSopenharmony_ci */
153af6ab5fSopenharmony_ci
163af6ab5fSopenharmony_ci
173af6ab5fSopenharmony_ciclass MyDataSource {
183af6ab5fSopenharmony_ci  data: string[] = ["a", "b", "c", "d", "e"];
193af6ab5fSopenharmony_ci  public totalCount(): number {
203af6ab5fSopenharmony_ci      return this.data.length;
213af6ab5fSopenharmony_ci  }
223af6ab5fSopenharmony_ci  public getData(index: number): string {
233af6ab5fSopenharmony_ci      return this.data[index];
243af6ab5fSopenharmony_ci  }
253af6ab5fSopenharmony_ci}
263af6ab5fSopenharmony_ci
273af6ab5fSopenharmony_ci// A simplified version of ArkUI `LazyForEach` in SDK
283af6ab5fSopenharmony_ciclass LazyForEach {
293af6ab5fSopenharmony_ci    create(id: string, component: any, source: any, itemGenFunction: any, itemIdFunc: any): void {};
303af6ab5fSopenharmony_ci}
313af6ab5fSopenharmony_ci
323af6ab5fSopenharmony_cilet lazyforeach: LazyForEach = new LazyForEach();
333af6ab5fSopenharmony_ci
343af6ab5fSopenharmony_ciclass MyComponent {
353af6ab5fSopenharmony_ci  constructor(params, __localStorage) {
363af6ab5fSopenharmony_ci      this.source = new MyDataSource();
373af6ab5fSopenharmony_ci      this.setInitiallyProvidedValue(params);
383af6ab5fSopenharmony_ci  }
393af6ab5fSopenharmony_ci  setInitiallyProvidedValue(params) {
403af6ab5fSopenharmony_ci      if (params.source !== undefined) {
413af6ab5fSopenharmony_ci          this.source = params.source;
423af6ab5fSopenharmony_ci      }
433af6ab5fSopenharmony_ci  }
443af6ab5fSopenharmony_ci  observeComponentCreation2() {};
453af6ab5fSopenharmony_ci  private source: MyDataSource;
463af6ab5fSopenharmony_ci  initialRender() {
473af6ab5fSopenharmony_ci      this.observeComponentCreation2();
483af6ab5fSopenharmony_ci      {
493af6ab5fSopenharmony_ci          const __lazyForEachItemGenFunction = (_item, index?: number) => {
503af6ab5fSopenharmony_ci              const item = _item;
513af6ab5fSopenharmony_ci              {
523af6ab5fSopenharmony_ci                  const observedDeepRender = () => {
533af6ab5fSopenharmony_ci                  };
543af6ab5fSopenharmony_ci                  observedDeepRender();
553af6ab5fSopenharmony_ci              }
563af6ab5fSopenharmony_ci          };
573af6ab5fSopenharmony_ci          const __lazyForEachItemIdFunc = (item: string, index?: number) => index?.toString() + item;
583af6ab5fSopenharmony_ci          lazyforeach.create("1", this, this.source, __lazyForEachItemGenFunction, __lazyForEachItemIdFunc);
593af6ab5fSopenharmony_ci      }
603af6ab5fSopenharmony_ci  }
613af6ab5fSopenharmony_ci}