1/* 2 * Copyright (c) 2021-2023 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 * 19 * @interface DataChangeListener 20 * @syscap SystemCapability.ArkUI.ArkUI.Full 21 * @since 7 22 */ 23/** 24 * Data Change Listener. 25 * 26 * @interface DataChangeListener 27 * @syscap SystemCapability.ArkUI.ArkUI.Full 28 * @crossplatform 29 * @since 10 30 */ 31declare interface DataChangeListener { 32 /** 33 * Data ready. 34 * 35 * @syscap SystemCapability.ArkUI.ArkUI.Full 36 * @since 7 37 */ 38 /** 39 * Data ready. 40 * 41 * @syscap SystemCapability.ArkUI.ArkUI.Full 42 * @crossplatform 43 * @since 10 44 */ 45 onDataReloaded(): void; 46 47 /** 48 * Data added. 49 * 50 * @param { number } index 51 * @syscap SystemCapability.ArkUI.ArkUI.Full 52 * @since 7 53 * @deprecated since 8 54 * @useinstead onDataAdd 55 */ 56 onDataAdded(index: number): void; 57 58 /** 59 * Data added. 60 * 61 * @param { number } index 62 * @syscap SystemCapability.ArkUI.ArkUI.Full 63 * @since 8 64 */ 65 /** 66 * Data added. 67 * 68 * @param { number } index 69 * @syscap SystemCapability.ArkUI.ArkUI.Full 70 * @crossplatform 71 * @since 10 72 */ 73 onDataAdd(index: number): void; 74 75 /** 76 * Data moved. 77 * 78 * @param { number } from 79 * @param { number } to 80 * @syscap SystemCapability.ArkUI.ArkUI.Full 81 * @since 7 82 * @deprecated since 8 83 * @useinstead onDataMove 84 */ 85 onDataMoved(from: number, to: number): void; 86 87 /** 88 * Data moved. 89 * 90 * @param { number } from 91 * @param { number } to 92 * @syscap SystemCapability.ArkUI.ArkUI.Full 93 * @since 8 94 */ 95 /** 96 * Data moved. 97 * 98 * @param { number } from 99 * @param { number } to 100 * @syscap SystemCapability.ArkUI.ArkUI.Full 101 * @crossplatform 102 * @since 10 103 */ 104 onDataMove(from: number, to: number): void; 105 106 /** 107 * Data deleted. 108 * 109 * @param { number } index 110 * @syscap SystemCapability.ArkUI.ArkUI.Full 111 * @since 7 112 * @deprecated since 8 113 * @useinstead onDataDelete 114 */ 115 onDataDeleted(index: number): void; 116 117 /** 118 * Data deleted. 119 * 120 * @param { number } index 121 * @syscap SystemCapability.ArkUI.ArkUI.Full 122 * @since 8 123 */ 124 /** 125 * Data deleted. 126 * 127 * @param { number } index 128 * @syscap SystemCapability.ArkUI.ArkUI.Full 129 * @crossplatform 130 * @since 10 131 */ 132 onDataDelete(index: number): void; 133 134 /** 135 * Call when has data change. 136 * 137 * @param { number } index 138 * @syscap SystemCapability.ArkUI.ArkUI.Full 139 * @since 7 140 * @deprecated since 8 141 * @useinstead onDataChange 142 */ 143 onDataChanged(index: number): void; 144 145 /** 146 * Call when has data change. 147 * 148 * @param { number } index 149 * @syscap SystemCapability.ArkUI.ArkUI.Full 150 * @since 8 151 */ 152 /** 153 * Call when has data change. 154 * 155 * @param { number } index 156 * @syscap SystemCapability.ArkUI.ArkUI.Full 157 * @crossplatform 158 * @since 10 159 */ 160 onDataChange(index: number): void; 161} 162 163/** 164 * Developers need to implement this interface to provide data to LazyForEach component. 165 * 166 * @interface IDataSource 167 * @syscap SystemCapability.ArkUI.ArkUI.Full 168 * @since 7 169 */ 170/** 171 * Developers need to implement this interface to provide data to LazyForEach component. 172 * 173 * @interface IDataSource 174 * @syscap SystemCapability.ArkUI.ArkUI.Full 175 * @crossplatform 176 * @since 10 177 */ 178declare interface IDataSource { 179 /** 180 * Total data count. 181 * 182 * @returns { number } 183 * @syscap SystemCapability.ArkUI.ArkUI.Full 184 * @since 7 185 */ 186 /** 187 * Total data count. 188 * 189 * @returns { number } 190 * @syscap SystemCapability.ArkUI.ArkUI.Full 191 * @crossplatform 192 * @since 10 193 */ 194 totalCount(): number; 195 196 /** 197 * Return the data of index. 198 * 199 * @param { number } index 200 * @returns { any } 201 * @syscap SystemCapability.ArkUI.ArkUI.Full 202 * @since 7 203 */ 204 /** 205 * Return the data of index. 206 * 207 * @param { number } index 208 * @returns { any } 209 * @syscap SystemCapability.ArkUI.ArkUI.Full 210 * @crossplatform 211 * @since 10 212 */ 213 getData(index: number): any; 214 215 /** 216 * Register data change listener. 217 * 218 * @param { DataChangeListener } listener 219 * @syscap SystemCapability.ArkUI.ArkUI.Full 220 * @since 7 221 */ 222 /** 223 * Register data change listener. 224 * 225 * @param { DataChangeListener } listener 226 * @syscap SystemCapability.ArkUI.ArkUI.Full 227 * @crossplatform 228 * @since 10 229 */ 230 registerDataChangeListener(listener: DataChangeListener): void; 231 232 /** 233 * Unregister data change listener. 234 * 235 * @param { DataChangeListener } listener 236 * @syscap SystemCapability.ArkUI.ArkUI.Full 237 * @since 7 238 */ 239 /** 240 * Unregister data change listener. 241 * 242 * @param { DataChangeListener } listener 243 * @syscap SystemCapability.ArkUI.ArkUI.Full 244 * @crossplatform 245 * @since 10 246 */ 247 unregisterDataChangeListener(listener: DataChangeListener): void; 248} 249 250/** 251 * Lazy loading. 252 * 253 * @interface LazyForEachInterface 254 * @syscap SystemCapability.ArkUI.ArkUI.Full 255 * @since 7 256 */ 257/** 258 * Lazy loading. 259 * 260 * @interface LazyForEachInterface 261 * @syscap SystemCapability.ArkUI.ArkUI.Full 262 * @crossplatform 263 * @since 10 264 */ 265interface LazyForEachInterface { 266 /** 267 * Enter the value to obtain the LazyForEach. 268 * 269 * @param { IDataSource } dataSource 270 * @param { function } itemGenerator 271 * @param { function } keyGenerator 272 * @returns { LazyForEachInterface } 273 * @syscap SystemCapability.ArkUI.ArkUI.Full 274 * @since 7 275 */ 276 /** 277 * Enter the value to obtain the LazyForEach. 278 * 279 * @param { IDataSource } dataSource 280 * @param { function } itemGenerator 281 * @param { function } keyGenerator 282 * @returns { LazyForEachInterface } 283 * @syscap SystemCapability.ArkUI.ArkUI.Full 284 * @crossplatform 285 * @since 10 286 */ 287 ( 288 dataSource: IDataSource, 289 itemGenerator: (item: any, index: number) => void, 290 keyGenerator?: (item: any, index: number) => string, 291 ): LazyForEachInterface; 292} 293 294/** 295 * Defines LazyForEach Component. 296 * 297 * @syscap SystemCapability.ArkUI.ArkUI.Full 298 * @since 7 299 */ 300/** 301 * Defines LazyForEach Component. 302 * 303 * @syscap SystemCapability.ArkUI.ArkUI.Full 304 * @crossplatform 305 * @since 10 306 */ 307declare const LazyForEach: LazyForEachInterface; 308