From c1ddea7557416cd91f570211128fd51de5d4d538 Mon Sep 17 00:00:00 2001 From: liubihao Date: Tue, 29 Jul 2025 15:18:17 +0800 Subject: [PATCH] 111 Signed-off-by: liubihao --- api/arkui/component/forEach.d.ets | 67 +- api/arkui/component/lazyForEach.d.ets | 920 ++++++++++++-------------- 2 files changed, 470 insertions(+), 517 deletions(-) diff --git a/api/arkui/component/forEach.d.ets b/api/arkui/component/forEach.d.ets index c3430f872d..2142d1cf11 100644 --- a/api/arkui/component/forEach.d.ets +++ b/api/arkui/component/forEach.d.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2025 Huawei Device Co., Ltd. + * Copyright (c) 2024-2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -12,17 +12,42 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - -// HADWRITTEN, DO NOT REGENERATE - /** * @file * @kit ArkUI * @arkts 1.2 */ -import { memo, ComponentBuilder, __memo_context_type, __memo_id_type } from './../stateManagement/runtime' +/** + * Define item generator function. + * + * @typedef { function } ItemGeneratorFunc + * @param { T } item - item in an array + * @param { number } index - index corresponding to an array item. + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +@Builder +declare type ItemGeneratorFunc = (item: T, index: number) => void; + +import { memo, ComponentBuilder, __memo_context_type, __memo_id_type } from './../stateManagement/runtime'; + +import { Builder } from './builder'; + +/** + * Defines ForEach Component. + * + * @param { Array } arr - the array collection to be used in UI + * @param { ItemGeneratorFunc } itemGenerator - item generator function + * @param { KeyGeneratorFunc } [keyGenerator] - key generator function + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +@Builder +export declare function ForEach(arr: Array, + itemGenerator: ItemGeneratorFunc, + keyGenerator?: KeyGeneratorFunc, +): void; /** * declare ForEachAttribute @@ -54,4 +79,32 @@ export declare function ForEach(arr: Array, @memo itemGenerator: (item: T, index: number) => void, keyGenerator?: (item: T, index: number) => string, -): ForEachAttribute \ No newline at end of file +): ForEachAttribute; + +/** + * Defines ForEach Component. + * + * @param { Array } arr - the array collection to be used in UI + * @param { ItemGeneratorFunc } itemGenerator - item generator function + * @param { KeyGeneratorFunc } [keyGenerator] - key generator function + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +@Builder +export declare function ForEach(arr: Array, + @Builder + itemGenerator: ItemGeneratorFunc, + keyGenerator?: KeyGeneratorFunc, +): void; + +/** + * Define key generator function. + * + * @typedef { function } KeyGeneratorFunc + * @param { T } item - item in an array + * @param { number } index - index corresponding to an array item. + * @returns {string} Character string generated based on item and index + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +declare type KeyGeneratorFunc = (item: T, index: number) => string; \ No newline at end of file diff --git a/api/arkui/component/lazyForEach.d.ets b/api/arkui/component/lazyForEach.d.ets index c454f744d4..100210e207 100644 --- a/api/arkui/component/lazyForEach.d.ets +++ b/api/arkui/component/lazyForEach.d.ets @@ -1,5 +1,5 @@ /* - * Copyright (c) 2024-2025 Huawei Device Co., Ltd. + * Copyright (c) 2025 Huawei Device Co., Ltd. * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at @@ -12,624 +12,507 @@ * See the License for the specific language governing permissions and * limitations under the License. */ - - -// HADWRITTEN, DO NOT REGENERATE - /** * @file * @kit ArkUI * @arkts 1.2 */ -import { memo, ComponentBuilder, __memo_context_type, __memo_id_type } from './../stateManagement/runtime' +import { Builder } from './builder'; +import { ComponentBuilder } from './../stateManagement/runtime'; /** - * Defines type to operation data source. + * Defines delete operation. * - * @enum { string } + * @interface DataDeleteOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export enum DataOperationType { - /** - * Add data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - ADD = 'add', - /** - * Delete data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - DELETE = 'delete', - /** - * Exchange data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - EXCHANGE = 'exchange', - /** - * Move data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - MOVE = 'move', - /** - * Change data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - CHANGE = 'change', - /** - * Reload data. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - RELOAD = 'reload' +export interface DataDeleteOperation { + /** + * How to operate deleted data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; + /** + * Index of deleted data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + index: number; + /** + * Count of deleted data in one operation + * Only validate for ADD and DELETE. + * + * @type { ?number } + * @default 1 + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + count?: number; } /** - * Defines add operation. + * Defines position of moved data. * - * @interface DataAddOperation + * @interface MoveIndex * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataAddOperation { - /** - * How to operate added data. - * - * @type { DataOperationType.ADD } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; - /** - * Index of added data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - index: number; - /** - * Count of added data in one operation - * Only validate for ADD and DELETE. - * - * @type { ?number } - * @default 1 - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - count?: number; - /** - * Key of added data. - * - * @type { ?(string | Array) } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - key?: string | Array; +export interface MoveIndex { + /** + * Index of moved data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + from: number; + /** + * Destination of moved data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + to: number; } /** - * Defines delete operation. + * Defines new key of exchange data. * - * @interface DataDeleteOperation + * @interface ExchangeKey * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataDeleteOperation { - /** - * How to operate deleted data. - * - * @type { DataOperationType.DELETE } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; - /** - * Index of deleted data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - index: number; - /** - * Count of deleted data in one operation - * Only validate for ADD and DELETE. - * - * @type { ?number } - * @default 1 - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - count?: number; +export interface ExchangeKey { + /** + * Key of the first exchange data. + * + * @type { string } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + start: string; + /** + * Key of the second exchange data. + * + * @type { string } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + end: string; } /** - * Defines change operation. + * Defines exchange operation. * - * @interface DataChangeOperation + * @interface DataExchangeOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataChangeOperation { - /** - * How to operate changed data. - * - * @type { DataOperationType.CHANGE } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; - /** - * Index of changed data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - index: number; - /** - * Key of changed data. - * - * @type { ?string } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - key?: string; +export interface DataExchangeOperation { + /** + * How to operate exchange data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; + /** + * Index of exchange data. + * + * @type { ExchangeIndex } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + index: ExchangeIndex; + /** + * Key of exchange data. + * + * @type { ?ExchangeKey } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + key?: ExchangeKey; } /** - * Defines position of moved data. + * All data operation type * - * @interface MoveIndex + * @typedef { DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | DataExchangeOperation + * | DataReloadOperation } * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface MoveIndex { - /** - * Index of moved data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - from: number; - /** - * Destination of moved data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - to: number; +export type DataOperation = DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | + DataExchangeOperation | DataReloadOperation; + +/** + * Developers need to implement this interface to provide data to LazyForEach component. + * + * @interface IDataSource + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +export interface IDataSource { + /** + * Total data count. + * + * @returns { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + totalCount(): number; + /** + * Return the data of index. + * + * @param { number } index + * @returns { T } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + getData(index: number): T; + /** + * Register data change listener. + * + * @param { DataChangeListener } listener + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + registerDataChangeListener(listener: DataChangeListener): void; + /** + * Unregister data change listener. + * + * @param { DataChangeListener } listener + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + unregisterDataChangeListener(listener: DataChangeListener): void; } +import { memo, ComponentBuilder, __memo_context_type, __memo_id_type } from './../stateManagement/runtime'; + /** - * Defines position of exchange data. + * Defines type to operation data source. * - * @interface ExchangeIndex + * @enum { string } * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface ExchangeIndex { - /** - * Index of the first exchange data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - start: number; - /** - * Index of the second exchange data. - * - * @type { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - end: number; +export enum DataOperationType { + /** + * Add data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + ADD = 'add', + /** + * Delete data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + DELETE = 'delete', + /** + * Exchange data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + EXCHANGE = 'exchange', + /** + * Move data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + MOVE = 'move', + /** + * Change data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + CHANGE = 'change', + /** + * Reload data. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + RELOAD = 'reload' } /** - * Defines new key of exchange data. + * Defines add operation. * - * @interface ExchangeKey + * @interface DataAddOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface ExchangeKey { - /** - * Key of the first exchange data. - * - * @type { string } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - start: string; - /** - * Key of the second exchange data. - * - * @type { string } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - end: string; +export interface DataAddOperation { + /** + * How to operate added data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; + /** + * Index of added data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + index: number; + /** + * Count of added data in one operation + * Only validate for ADD and DELETE. + * + * @type { ?number } + * @default 1 + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + count?: number; + /** + * Key of added data. + * + * @type { ?(string | Array) } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + key?: string | Array; } /** - * Defines move&exchange operation. + * Defines change operation. * - * @interface DataMoveOperation + * @interface DataChangeOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataMoveOperation { - /** - * How to operate moved data. - * - * @type { DataOperationType.MOVE } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; - /** - * Index of moved data. - * - * @type { MoveIndex } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - index: MoveIndex; - /** - * Key of moved data. - * - * @type { ?string } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - key?: string; +export interface DataChangeOperation { + /** + * How to operate changed data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; + /** + * Index of changed data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + index: number; + /** + * Key of changed data. + * + * @type { ?string } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + key?: string; } /** - * Defines exchange operation. + * Defines position of exchange data. * - * @interface DataExchangeOperation + * @interface ExchangeIndex * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataExchangeOperation { - /** - * How to operate exchange data. - * - * @type { DataOperationType.EXCHANGE } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; - /** - * Index of exchange data. - * - * @type { ExchangeIndex } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - index: ExchangeIndex; - /** - * Key of exchange data. - * - * @type { ?ExchangeKey } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - key?: ExchangeKey; +export interface ExchangeIndex { + /** + * Index of the first exchange data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + start: number; + /** + * Index of the second exchange data. + * + * @type { number } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + end: number; } /** - * Defines reload operation. + * Defines move&exchange operation. * - * @interface DataReloadOperation + * @interface DataMoveOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface DataReloadOperation { - /** - * How to operate reload data. - * - * @type { DataOperationType.RELOAD } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - type: DataOperationType; +export interface DataMoveOperation { + /** + * How to operate moved data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; + /** + * Index of moved data. + * + * @type { MoveIndex } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + index: MoveIndex; + /** + * Key of moved data. + * + * @type { ?string } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + key?: string; } /** - * All data operation type + * Defines reload operation. * - * @typedef { DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | DataExchangeOperation - * | DataReloadOperation } + * @interface DataReloadOperation * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export type DataOperation = DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | - DataExchangeOperation | DataReloadOperation; +export interface DataReloadOperation { + /** + * How to operate reload data. + * + * @type { DataOperationType } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + type: DataOperationType; +} /** * Data Change Listener. * * @interface DataChangeListener * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ export interface DataChangeListener { - /** - * Data ready. - * - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDataReloaded(): void - /** - * Data added. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @since 20 - * @deprecated since 8 - * @useinstead onDataAdd - */ - onDataAdded(index: number): void - /** - * Data added. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDataAdd(index: number): void - /** - * Data moved. - * - * @param { number } from - * @param { number } to - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @since 20 - * @deprecated since 8 - * @useinstead onDataMove - */ - onDataMoved(from: number, to: number): void - /** - * Data moved. - * - * @param { number } from - * @param { number } to - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDataMove(from: number, to: number): void - /** - * Data deleted. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @since 20 - * @deprecated since 8 - * @useinstead onDataDelete - */ - onDataDeleted(index: number): void - /** - * Data deleted. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDataDelete(index: number): void - /** - * Call when has data change. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @since 20 - * @deprecated since 8 - * @useinstead onDataChange - */ - onDataChanged(index: number): void - /** - * Call when has data change. - * - * @param { number } index - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDataChange(index: number): void - /** - * Call when multiple data change. - * - * @param { DataOperation[] } dataOperations - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - onDatasetChange(dataOperations: Array): void + /** + * Data ready. + * + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDataReloaded(): void; + /** + * Data added. + * + * @param { number } index + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDataAdd(index: number): void; + /** + * Data moved. + * + * @param { number } from + * @param { number } to + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDataMove(from: number, to: number): void; + /** + * Data deleted. + * + * @param { number } index + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDataDelete(index: number): void; + /** + * Call when has data change. + * + * @param { number } index + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDataChange(index: number): void; + /** + * Call when multiple data change. + * + * @param { Array } dataOperations + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ + onDatasetChange(dataOperations: Array): void; } /** - * Developers need to implement this interface to provide data to LazyForEach component. + * declare LazyForEachAttribute * - * @interface IDataSource + * @interface LazyForEachAttribute * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface IDataSource { - /** - * Total data count. - * - * @returns { number } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - totalCount(): number; - /** - * Return the data of index. - * - * @param { number } index - * @returns { any } - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - getData(index: number): T; - /** - * Register data change listener. - * - * @param { DataChangeListener } listener - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - registerDataChangeListener(listener: DataChangeListener): void; - /** - * Unregister data change listener. - * - * @param { DataChangeListener } listener - * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice - * @since 20 - */ - unregisterDataChangeListener(listener: DataChangeListener): void; -} +export interface LazyForEachAttribute {} /** - * declare ForEachAttribute + * Define item generator function. * + * @typedef { function } ItemGeneratorFunc + * @param { T } item - item in an array + * @param { number } index - index corresponding to an array item. * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface LazyForEachAttribute {} +@Builder +declare type ItemGeneratorFunc = (item: T, index: number) => void; /** - * declare UILazyForEachAttribute + * Define key generator function. * + * @typedef { function } KeyGeneratorFunc + * @param { T } item - item in an array + * @param { number } index - index corresponding to an array item. + * @returns {string} Character string generated based on item and index + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +declare type KeyGeneratorFunc = (item: T, index: number) => string; + +/** + * Enter the value to obtain the LazyForEach. + * + * @param { IDataSource } dataSource - the array collection to be used in UI + * @param { ItemGeneratorFunc } itemGenerator - item generator function + * @param { KeyGeneratorFunc } [keyGenerator] - key generator function + * @returns { LazyForEachAttribute } LazyForEach attribute * @syscap SystemCapability.ArkUI.ArkUI.Full - * @crossplatform - * @atomicservice * @since 20 */ -export interface UILazyForEachAttribute {} +@ComponentBuilder +export declare function LazyForEach(dataSource: IDataSource, + itemGenerator: ItemGeneratorFunc, + keyGenerator?: KeyGeneratorFunc, +): LazyForEachAttribute; /** * Enter the value to obtain the LazyForEach. @@ -649,4 +532,21 @@ export declare function LazyForEach(dataSource: IDataSource, @memo itemGenerator: (item: T, index: number) => void, keyGenerator?: (item: T, index: number) => string, -): LazyForEachAttribute \ No newline at end of file +): LazyForEachAttribute; + +/** + * Enter the value to obtain the LazyForEach. + * + * @param { IDataSource } dataSource - the array collection to be used in UI + * @param { ItemGeneratorFunc } itemGenerator - item generator function + * @param { KeyGeneratorFunc } [keyGenerator] - key generator function + * @returns { UILazyForEachAttribute } + * @syscap SystemCapability.ArkUI.ArkUI.Full + * @since 20 + */ +@ComponentBuilder +export declare function LazyForEach(dataSource: IDataSource, + @Builder + itemGenerator: ItemGeneratorFunc, + keyGenerator?: KeyGeneratorFunc, +): UILazyForEachAttribute; \ No newline at end of file -- Gitee