1/* 2 * Copyright (c) 2021 Huawei Device Co., Ltd. 3 * Licensed under the Apache License, Version 2.0 (the "License"); 4 * you may not use this file except in compliance with the License. 5 * You may obtain a copy of the License at 6 * 7 * http://www.apache.org/licenses/LICENSE-2.0 8 * 9 * Unless required by applicable law or agreed to in writing, software 10 * distributed under the License is distributed on an "AS IS" BASIS, 11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 * See the License for the specific language governing permissions and 13 * limitations under the License. 14 */ 15 16/** 17 * Data Change Listener. 18 * @since 7 19 */ 20declare interface DataChangeListener { 21 /** 22 * Data ready. 23 * @since 7 24 */ 25 onDataReloaded(): void; 26 27 /** 28 * Data added. 29 * @since 7 30 * @deprecated since 8 31 * @useinstead onDataAdd 32 */ 33 onDataAdded(index: number): void; 34 35 /** 36 * Data added. 37 * @since 8 38 */ 39 onDataAdd(index: number): void; 40 41 /** 42 * Data moved. 43 * @since 7 44 * @deprecated since 8 45 * @useinstead onDataMove 46 */ 47 onDataMoved(from: number, to: number): void; 48 49 /** 50 * Data moved. 51 * @since 8 52 */ 53 onDataMove(from: number, to: number): void; 54 55 /** 56 * Data deleted. 57 * @since 7 58 * @deprecated since 8 59 * @useinstead onDataDelete 60 */ 61 onDataDeleted(index: number): void; 62 63 /** 64 * Data deleted. 65 * @since 8 66 */ 67 onDataDelete(index: number): void; 68 69 /** 70 * Call when has data change. 71 * @since 7 72 * @deprecated since 8 73 * @useinstead onDataChange 74 */ 75 onDataChanged(index: number): void; 76 77 /** 78 * Call when has data change. 79 * @since 8 80 */ 81 onDataChange(index: number): void; 82} 83 84/** 85 * Developers need to implement this interface to provide data to LazyForEach component. 86 * @since 7 87 */ 88declare interface IDataSource { 89 /** 90 * Total data count. 91 * @since 7 92 */ 93 totalCount(): number; 94 95 /** 96 * Return the data of index. 97 * @since 7 98 */ 99 getData(index: number): any; 100 101 /** 102 * Register data change listener. 103 * @since 7 104 */ 105 registerDataChangeListener(listener: DataChangeListener): void; 106 107 /** 108 * Unregister data change listener. 109 * @since 7 110 */ 111 unregisterDataChangeListener(listener: DataChangeListener): void; 112} 113 114/** 115 * Lazy loading. 116 * @since 7 117 */ 118interface LazyForEachInterface { 119 /** 120 * Enter the value to obtain the LazyForEach. 121 * @since 7 122 */ 123 ( 124 dataSource: IDataSource, 125 itemGenerator: (item: any, index?: number) => void, 126 keyGenerator?: (item: any, index?: number) => string, 127 ): LazyForEachInterface; 128} 129 130/** 131 * Defines LazyForEach Component. 132 * @since 7 133 */ 134declare const LazyForEach: LazyForEachInterface; 135