/* * Copyright (c) 2021-2023 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 * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ /** * @file * @kit ArkUI */ /** * Defines type to operation data source. * * @enum { string } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ declare enum DataOperationType { /** * Add data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ ADD = 'add', /** * Delete data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ DELETE = 'delete', /** * Exchange data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ EXCHANGE = 'exchange', /** * Move data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ MOVE = 'move', /** * Change data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ CHANGE = 'change', /** * Reload data. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ RELOAD = 'reload' } /** * Defines add operation. * * @interface DataAddOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataAddOperation { /** * How to operate added data. * * @type { DataOperationType.ADD } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.ADD, /** * Index of added data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ 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 12 */ count?: number, /** * Key of added data. * * @type { ?(string | Array) } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ key?: string | Array } /** * Defines delete operation. * * @interface DataDeleteOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataDeleteOperation { /** * How to operate deleted data. * * @type { DataOperationType.DELETE } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.DELETE, /** * Index of deleted data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ 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 12 */ count?: number } /** * Defines change operation. * * @interface DataChangeOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataChangeOperation { /** * How to operate changed data. * * @type { DataOperationType.CHANGE } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.CHANGE, /** * Index of changed data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ index: number, /** * Key of changed data. * * @type { ?string } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ key?: string } /** * Defines position of moved data. * * @interface MoveIndex * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface MoveIndex { /** * Index of moved data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ from: number; /** * Destination of moved data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ to: number; } /** * Defines position of exchange data. * * @interface ExchangeIndex * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface ExchangeIndex { /** * Index of the first exchange data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ start: number; /** * Index of the second exchange data. * * @type { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ end: number; } /** * Defines new key of exchange data. * * @interface ExchangeKey * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface ExchangeKey { /** * Key of the first exchange data. * * @type { string } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ start: string; /** * Key of the second exchange data. * * @type { string } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ end: string; } /** * Defines move&exchange operation. * * @interface DataMoveOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataMoveOperation { /** * How to operate moved data. * * @type { DataOperationType.MOVE } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.MOVE, /** * Index of moved data. * * @type { MoveIndex } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ index: MoveIndex, /** * Key of moved data. * * @type { ?string } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ key?: string } /** * Defines exchange operation. * * @interface DataExchangeOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataExchangeOperation { /** * How to operate exchange data. * * @type { DataOperationType.EXCHANGE } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.EXCHANGE, /** * Index of exchange data. * * @type { ExchangeIndex } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ index: ExchangeIndex, /** * Key of exchange data. * * @type { ?ExchangeKey } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ key?: ExchangeKey } /** * Defines reload operation. * * @interface DataReloadOperation * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ interface DataReloadOperation { /** * How to operate reload data. * * @type { DataOperationType.RELOAD } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ type: DataOperationType.RELOAD } /** * All data operation type * * @typedef { DataAddOperation | DataDeleteOperation | DataChangeOperation |DataMoveOperation | DataExchangeOperation | DataReloadOperation } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ declare type DataOperation = DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | DataExchangeOperation | DataReloadOperation; /** * Data Change Listener. * * @interface DataChangeListener * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Data Change Listener. * * @interface DataChangeListener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Data Change Listener. * * @interface DataChangeListener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ declare interface DataChangeListener { /** * Data ready. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Data ready. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Data ready. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ onDataReloaded(): void; /** * Data added. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 * @deprecated since 8 * @useinstead onDataAdd */ onDataAdded(index: number): void; /** * Data added. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 8 */ /** * Data added. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Data added. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ onDataAdd(index: number): void; /** * Data moved. * * @param { number } from * @param { number } to * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 * @deprecated since 8 * @useinstead onDataMove */ onDataMoved(from: number, to: number): void; /** * Data moved. * * @param { number } from * @param { number } to * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 8 */ /** * Data moved. * * @param { number } from * @param { number } to * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Data moved. * * @param { number } from * @param { number } to * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ onDataMove(from: number, to: number): void; /** * Data deleted. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 * @deprecated since 8 * @useinstead onDataDelete */ onDataDeleted(index: number): void; /** * Data deleted. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 8 */ /** * Data deleted. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Data deleted. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ onDataDelete(index: number): void; /** * Call when has data change. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 * @deprecated since 8 * @useinstead onDataChange */ onDataChanged(index: number): void; /** * Call when has data change. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 8 */ /** * Call when has data change. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Call when has data change. * * @param { number } index * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ onDataChange(index: number): void; /** * Call when multiple data change. * * @param { DataOperation[] } dataOperations * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ onDatasetChange(dataOperations: DataOperation[]): void; } /** * Developers need to implement this interface to provide data to LazyForEach component. * * @interface IDataSource * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Developers need to implement this interface to provide data to LazyForEach component. * * @interface IDataSource * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Developers need to implement this interface to provide data to LazyForEach component. * * @interface IDataSource * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ declare interface IDataSource { /** * Total data count. * * @returns { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Total data count. * * @returns { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Total data count. * * @returns { number } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ totalCount(): number; /** * Return the data of index. * * @param { number } index * @returns { any } * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Return the data of index. * * @param { number } index * @returns { any } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Return the data of index. * * @param { number } index * @returns { any } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ getData(index: number): any; /** * Register data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Register data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Register data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ registerDataChangeListener(listener: DataChangeListener): void; /** * Unregister data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Unregister data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Unregister data change listener. * * @param { DataChangeListener } listener * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ unregisterDataChangeListener(listener: DataChangeListener): void; } /** * declare ForEachAttribute * * @extends DynamicNode * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ declare class LazyForEachAttribute extends DynamicNode { } /** * Lazy loading. * * @interface LazyForEachInterface * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Lazy loading. * * @interface LazyForEachInterface * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Lazy loading. * * @interface LazyForEachInterface * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ interface LazyForEachInterface { /** * Enter the value to obtain the LazyForEach. * * @param { IDataSource } dataSource * @param { function } itemGenerator * @param { function } keyGenerator * @returns { LazyForEachInterface } * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Enter the value to obtain the LazyForEach. * * @param { IDataSource } dataSource * @param { function } itemGenerator * @param { function } keyGenerator * @returns { LazyForEachInterface } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Enter the value to obtain the LazyForEach. * * @param { IDataSource } dataSource * @param { function } itemGenerator * @param { function } keyGenerator * @returns { LazyForEachInterface } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ /** * Enter the value to obtain the LazyForEach. * * @param { IDataSource } dataSource * @param { function } itemGenerator * @param { function } keyGenerator * @returns { LazyForEachAttribute } * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 12 */ ( dataSource: IDataSource, itemGenerator: (item: any, index: number) => void, keyGenerator?: (item: any, index: number) => string, ): LazyForEachAttribute; } /** * Defines LazyForEach Component. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @since 7 */ /** * Defines LazyForEach Component. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @since 10 */ /** * Defines LazyForEach Component. * * @syscap SystemCapability.ArkUI.ArkUI.Full * @crossplatform * @atomicservice * @since 11 */ declare const LazyForEach: LazyForEachInterface;