• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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