• 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 * @file
18 * @kit ArkUI
19 */
20
21/**
22 * Defines type to operation data source.
23 *
24 * @enum { string }
25 * @syscap SystemCapability.ArkUI.ArkUI.Full
26 * @crossplatform
27 * @since 12
28 */
29declare enum DataOperationType {
30  /**
31   * Add data.
32   *
33   * @syscap SystemCapability.ArkUI.ArkUI.Full
34   * @crossplatform
35   * @since 12
36   */
37  ADD = 'add',
38
39  /**
40   * Delete data.
41   *
42   * @syscap SystemCapability.ArkUI.ArkUI.Full
43   * @crossplatform
44   * @since 12
45   */
46  DELETE = 'delete',
47
48  /**
49   * Exchange data.
50   *
51   * @syscap SystemCapability.ArkUI.ArkUI.Full
52   * @crossplatform
53   * @since 12
54   */
55  EXCHANGE = 'exchange',
56
57  /**
58   * Move data.
59   *
60   * @syscap SystemCapability.ArkUI.ArkUI.Full
61   * @crossplatform
62   * @since 12
63   */
64  MOVE = 'move',
65
66  /**
67   * Change data.
68   *
69   * @syscap SystemCapability.ArkUI.ArkUI.Full
70   * @crossplatform
71   * @since 12
72   */
73  CHANGE = 'change',
74
75  /**
76   * Reload data.
77   *
78   * @syscap SystemCapability.ArkUI.ArkUI.Full
79   * @crossplatform
80   * @since 12
81   */
82  RELOAD = 'reload'
83}
84
85/**
86 * Defines add operation.
87 *
88 * @interface DataAddOperation
89 * @syscap SystemCapability.ArkUI.ArkUI.Full
90 * @crossplatform
91 * @since 12
92 */
93interface DataAddOperation {
94  /**
95   * How to operate added data.
96   *
97   * @type { DataOperationType.ADD }
98   * @syscap SystemCapability.ArkUI.ArkUI.Full
99   * @crossplatform
100   * @since 12
101   */
102  type: DataOperationType.ADD,
103
104  /**
105   * Index of added data.
106   *
107   * @type { number }
108   * @syscap SystemCapability.ArkUI.ArkUI.Full
109   * @crossplatform
110   * @since 12
111   */
112  index: number,
113
114  /**
115   * Count of added data in one operation
116   * Only validate for ADD and DELETE.
117   *
118   * @type { ?number }
119   * @default 1
120   * @syscap SystemCapability.ArkUI.ArkUI.Full
121   * @crossplatform
122   * @since 12
123   */
124  count?: number,
125
126  /**
127   * Key of added data.
128   *
129   * @type { ?(string | Array<string>) }
130   * @syscap SystemCapability.ArkUI.ArkUI.Full
131   * @crossplatform
132   * @since 12
133   */
134  key?: string | Array<string>
135}
136
137/**
138 * Defines delete operation.
139 *
140 * @interface DataDeleteOperation
141 * @syscap SystemCapability.ArkUI.ArkUI.Full
142 * @crossplatform
143 * @since 12
144 */
145interface DataDeleteOperation {
146  /**
147   * How to operate deleted data.
148   *
149   * @type { DataOperationType.DELETE }
150   * @syscap SystemCapability.ArkUI.ArkUI.Full
151   * @crossplatform
152   * @since 12
153   */
154  type: DataOperationType.DELETE,
155
156  /**
157   * Index of deleted data.
158   *
159   * @type { number }
160   * @syscap SystemCapability.ArkUI.ArkUI.Full
161   * @crossplatform
162   * @since 12
163   */
164  index: number,
165
166  /**
167   * Count of deleted data in one operation
168   * Only validate for ADD and DELETE.
169   *
170   * @type { ?number }
171   * @default 1
172   * @syscap SystemCapability.ArkUI.ArkUI.Full
173   * @crossplatform
174   * @since 12
175   */
176  count?: number
177}
178
179/**
180 * Defines change operation.
181 *
182 * @interface DataChangeOperation
183 * @syscap SystemCapability.ArkUI.ArkUI.Full
184 * @crossplatform
185 * @since 12
186 */
187interface DataChangeOperation {
188  /**
189   * How to operate changed data.
190   *
191   * @type { DataOperationType.CHANGE }
192   * @syscap SystemCapability.ArkUI.ArkUI.Full
193   * @crossplatform
194   * @since 12
195   */
196  type: DataOperationType.CHANGE,
197
198  /**
199   * Index of changed data.
200   *
201   * @type { number }
202   * @syscap SystemCapability.ArkUI.ArkUI.Full
203   * @crossplatform
204   * @since 12
205   */
206  index: number,
207
208  /**
209   * Key of changed data.
210   *
211   * @type { ?string }
212   * @syscap SystemCapability.ArkUI.ArkUI.Full
213   * @crossplatform
214   * @since 12
215   */
216  key?: string
217}
218
219/**
220 * Defines position of moved data.
221 *
222 * @interface MoveIndex
223 * @syscap SystemCapability.ArkUI.ArkUI.Full
224 * @crossplatform
225 * @since 12
226 */
227interface MoveIndex {
228  /**
229   * Index of moved data.
230   *
231   * @type { number }
232   * @syscap SystemCapability.ArkUI.ArkUI.Full
233   * @crossplatform
234   * @since 12
235   */
236  from: number;
237  /**
238   * Destination of moved data.
239   *
240   * @type { number }
241   * @syscap SystemCapability.ArkUI.ArkUI.Full
242   * @crossplatform
243   * @since 12
244   */
245  to: number;
246}
247
248/**
249 * Defines position of exchange data.
250 *
251 * @interface ExchangeIndex
252 * @syscap SystemCapability.ArkUI.ArkUI.Full
253 * @crossplatform
254 * @since 12
255 */
256interface ExchangeIndex {
257  /**
258   * Index of the first exchange data.
259   *
260   * @type { number }
261   * @syscap SystemCapability.ArkUI.ArkUI.Full
262   * @crossplatform
263   * @since 12
264   */
265  start: number;
266  /**
267   * Index of the second exchange data.
268   *
269   * @type { number }
270   * @syscap SystemCapability.ArkUI.ArkUI.Full
271   * @crossplatform
272   * @since 12
273   */
274  end: number;
275}
276
277/**
278 * Defines new key of exchange data.
279 *
280 * @interface ExchangeKey
281 * @syscap SystemCapability.ArkUI.ArkUI.Full
282 * @crossplatform
283 * @since 12
284 */
285interface ExchangeKey {
286  /**
287   * Key of the first exchange data.
288   *
289   * @type { string }
290   * @syscap SystemCapability.ArkUI.ArkUI.Full
291   * @crossplatform
292   * @since 12
293   */
294  start: string;
295  /**
296   * Key of the second exchange data.
297   *
298   * @type { string }
299   * @syscap SystemCapability.ArkUI.ArkUI.Full
300   * @crossplatform
301   * @since 12
302   */
303  end: string;
304}
305
306/**
307 * Defines move&exchange operation.
308 *
309 * @interface DataMoveOperation
310 * @syscap SystemCapability.ArkUI.ArkUI.Full
311 * @crossplatform
312 * @since 12
313 */
314interface DataMoveOperation {
315  /**
316   * How to operate moved data.
317   *
318   * @type { DataOperationType.MOVE }
319   * @syscap SystemCapability.ArkUI.ArkUI.Full
320   * @crossplatform
321   * @since 12
322   */
323  type: DataOperationType.MOVE,
324
325  /**
326   * Index of moved data.
327   *
328   * @type { MoveIndex }
329   * @syscap SystemCapability.ArkUI.ArkUI.Full
330   * @crossplatform
331   * @since 12
332   */
333  index: MoveIndex,
334
335  /**
336   * Key of moved data.
337   *
338   * @type { ?string }
339   * @syscap SystemCapability.ArkUI.ArkUI.Full
340   * @crossplatform
341   * @since 12
342   */
343  key?: string
344}
345
346/**
347 * Defines exchange operation.
348 *
349 * @interface DataExchangeOperation
350 * @syscap SystemCapability.ArkUI.ArkUI.Full
351 * @crossplatform
352 * @since 12
353 */
354 interface DataExchangeOperation {
355  /**
356   * How to operate exchange data.
357   *
358   * @type { DataOperationType.EXCHANGE }
359   * @syscap SystemCapability.ArkUI.ArkUI.Full
360   * @crossplatform
361   * @since 12
362   */
363  type: DataOperationType.EXCHANGE,
364
365  /**
366   * Index of exchange data.
367   *
368   * @type { ExchangeIndex }
369   * @syscap SystemCapability.ArkUI.ArkUI.Full
370   * @crossplatform
371   * @since 12
372   */
373  index: ExchangeIndex,
374
375  /**
376   * Key of exchange data.
377   *
378   * @type { ?ExchangeKey }
379   * @syscap SystemCapability.ArkUI.ArkUI.Full
380   * @crossplatform
381   * @since 12
382   */
383  key?: ExchangeKey
384}
385
386/**
387 * Defines reload operation.
388 *
389 * @interface DataReloadOperation
390 * @syscap SystemCapability.ArkUI.ArkUI.Full
391 * @crossplatform
392 * @since 12
393 */
394interface DataReloadOperation {
395  /**
396   * How to operate reload data.
397   *
398   * @type { DataOperationType.RELOAD }
399   * @syscap SystemCapability.ArkUI.ArkUI.Full
400   * @crossplatform
401   * @since 12
402   */
403  type: DataOperationType.RELOAD
404}
405
406/**
407 * All data operation type
408 *
409 * @typedef DataOperation
410 * @syscap SystemCapability.ArkUI.ArkUI.Full
411 * @crossplatform
412 * @since 12
413 */
414declare type DataOperation =
415  DataAddOperation | DataDeleteOperation | DataChangeOperation | DataMoveOperation | DataExchangeOperation | DataReloadOperation;
416
417/**
418 * Data Change Listener.
419 *
420 * @interface DataChangeListener
421 * @syscap SystemCapability.ArkUI.ArkUI.Full
422 * @since 7
423 */
424/**
425 * Data Change Listener.
426 *
427 * @interface DataChangeListener
428 * @syscap SystemCapability.ArkUI.ArkUI.Full
429 * @crossplatform
430 * @since 10
431 */
432/**
433 * Data Change Listener.
434 *
435 * @interface DataChangeListener
436 * @syscap SystemCapability.ArkUI.ArkUI.Full
437 * @crossplatform
438 * @atomicservice
439 * @since 11
440 */
441declare interface DataChangeListener {
442  /**
443   * Data ready.
444   *
445   * @syscap SystemCapability.ArkUI.ArkUI.Full
446   * @since 7
447   */
448  /**
449   * Data ready.
450   *
451   * @syscap SystemCapability.ArkUI.ArkUI.Full
452   * @crossplatform
453   * @since 10
454   */
455  /**
456   * Data ready.
457   *
458   * @syscap SystemCapability.ArkUI.ArkUI.Full
459   * @crossplatform
460   * @atomicservice
461   * @since 11
462   */
463  onDataReloaded(): void;
464
465  /**
466   * Data added.
467   *
468   * @param { number } index
469   * @syscap SystemCapability.ArkUI.ArkUI.Full
470   * @since 7
471   * @deprecated since 8
472   * @useinstead onDataAdd
473   */
474  onDataAdded(index: number): void;
475
476  /**
477   * Data added.
478   *
479   * @param { number } index
480   * @syscap SystemCapability.ArkUI.ArkUI.Full
481   * @since 8
482   */
483  /**
484   * Data added.
485   *
486   * @param { number } index
487   * @syscap SystemCapability.ArkUI.ArkUI.Full
488   * @crossplatform
489   * @since 10
490   */
491  /**
492   * Data added.
493   *
494   * @param { number } index
495   * @syscap SystemCapability.ArkUI.ArkUI.Full
496   * @crossplatform
497   * @atomicservice
498   * @since 11
499   */
500  onDataAdd(index: number): void;
501
502  /**
503   * Data moved.
504   *
505   * @param { number } from
506   * @param { number } to
507   * @syscap SystemCapability.ArkUI.ArkUI.Full
508   * @since 7
509   * @deprecated since 8
510   * @useinstead onDataMove
511   */
512  onDataMoved(from: number, to: number): void;
513
514  /**
515   * Data moved.
516   *
517   * @param { number } from
518   * @param { number } to
519   * @syscap SystemCapability.ArkUI.ArkUI.Full
520   * @since 8
521   */
522  /**
523   * Data moved.
524   *
525   * @param { number } from
526   * @param { number } to
527   * @syscap SystemCapability.ArkUI.ArkUI.Full
528   * @crossplatform
529   * @since 10
530   */
531  /**
532   * Data moved.
533   *
534   * @param { number } from
535   * @param { number } to
536   * @syscap SystemCapability.ArkUI.ArkUI.Full
537   * @crossplatform
538   * @atomicservice
539   * @since 11
540   */
541  onDataMove(from: number, to: number): void;
542
543  /**
544   * Data deleted.
545   *
546   * @param { number } index
547   * @syscap SystemCapability.ArkUI.ArkUI.Full
548   * @since 7
549   * @deprecated since 8
550   * @useinstead onDataDelete
551   */
552  onDataDeleted(index: number): void;
553
554  /**
555   * Data deleted.
556   *
557   * @param { number } index
558   * @syscap SystemCapability.ArkUI.ArkUI.Full
559   * @since 8
560   */
561  /**
562   * Data deleted.
563   *
564   * @param { number } index
565   * @syscap SystemCapability.ArkUI.ArkUI.Full
566   * @crossplatform
567   * @since 10
568   */
569  /**
570   * Data deleted.
571   *
572   * @param { number } index
573   * @syscap SystemCapability.ArkUI.ArkUI.Full
574   * @crossplatform
575   * @atomicservice
576   * @since 11
577   */
578  onDataDelete(index: number): void;
579
580  /**
581   * Call when has data change.
582   *
583   * @param { number } index
584   * @syscap SystemCapability.ArkUI.ArkUI.Full
585   * @since 7
586   * @deprecated since 8
587   * @useinstead onDataChange
588   */
589  onDataChanged(index: number): void;
590
591  /**
592   * Call when has data change.
593   *
594   * @param { number } index
595   * @syscap SystemCapability.ArkUI.ArkUI.Full
596   * @since 8
597   */
598  /**
599   * Call when has data change.
600   *
601   * @param { number } index
602   * @syscap SystemCapability.ArkUI.ArkUI.Full
603   * @crossplatform
604   * @since 10
605   */
606  /**
607   * Call when has data change.
608   *
609   * @param { number } index
610   * @syscap SystemCapability.ArkUI.ArkUI.Full
611   * @crossplatform
612   * @atomicservice
613   * @since 11
614   */
615  onDataChange(index: number): void;
616
617  /**
618   * Call when multiple data change.
619   *
620   * @param { DataOperation[] } dataOperations
621   * @syscap SystemCapability.ArkUI.ArkUI.Full
622   * @crossplatform
623   * @since 12
624   */
625  onDatasetChange(dataOperations: DataOperation[]): void;
626}
627
628/**
629 * Developers need to implement this interface to provide data to LazyForEach component.
630 *
631 * @interface IDataSource
632 * @syscap SystemCapability.ArkUI.ArkUI.Full
633 * @since 7
634 */
635/**
636 * Developers need to implement this interface to provide data to LazyForEach component.
637 *
638 * @interface IDataSource
639 * @syscap SystemCapability.ArkUI.ArkUI.Full
640 * @crossplatform
641 * @since 10
642 */
643/**
644 * Developers need to implement this interface to provide data to LazyForEach component.
645 *
646 * @interface IDataSource
647 * @syscap SystemCapability.ArkUI.ArkUI.Full
648 * @crossplatform
649 * @atomicservice
650 * @since 11
651 */
652declare interface IDataSource {
653  /**
654   * Total data count.
655   *
656   * @returns { number }
657   * @syscap SystemCapability.ArkUI.ArkUI.Full
658   * @since 7
659   */
660  /**
661   * Total data count.
662   *
663   * @returns { number }
664   * @syscap SystemCapability.ArkUI.ArkUI.Full
665   * @crossplatform
666   * @since 10
667   */
668  /**
669   * Total data count.
670   *
671   * @returns { number }
672   * @syscap SystemCapability.ArkUI.ArkUI.Full
673   * @crossplatform
674   * @atomicservice
675   * @since 11
676   */
677  totalCount(): number;
678
679  /**
680   * Return the data of index.
681   *
682   * @param { number } index
683   * @returns { any }
684   * @syscap SystemCapability.ArkUI.ArkUI.Full
685   * @since 7
686   */
687  /**
688   * Return the data of index.
689   *
690   * @param { number } index
691   * @returns { any }
692   * @syscap SystemCapability.ArkUI.ArkUI.Full
693   * @crossplatform
694   * @since 10
695   */
696  /**
697   * Return the data of index.
698   *
699   * @param { number } index
700   * @returns { any }
701   * @syscap SystemCapability.ArkUI.ArkUI.Full
702   * @crossplatform
703   * @atomicservice
704   * @since 11
705   */
706  getData(index: number): any;
707
708  /**
709   * Register data change listener.
710   *
711   * @param { DataChangeListener } listener
712   * @syscap SystemCapability.ArkUI.ArkUI.Full
713   * @since 7
714   */
715  /**
716   * Register data change listener.
717   *
718   * @param { DataChangeListener } listener
719   * @syscap SystemCapability.ArkUI.ArkUI.Full
720   * @crossplatform
721   * @since 10
722   */
723  /**
724   * Register data change listener.
725   *
726   * @param { DataChangeListener } listener
727   * @syscap SystemCapability.ArkUI.ArkUI.Full
728   * @crossplatform
729   * @atomicservice
730   * @since 11
731   */
732  registerDataChangeListener(listener: DataChangeListener): void;
733
734  /**
735   * Unregister data change listener.
736   *
737   * @param { DataChangeListener } listener
738   * @syscap SystemCapability.ArkUI.ArkUI.Full
739   * @since 7
740   */
741  /**
742   * Unregister data change listener.
743   *
744   * @param { DataChangeListener } listener
745   * @syscap SystemCapability.ArkUI.ArkUI.Full
746   * @crossplatform
747   * @since 10
748   */
749  /**
750   * Unregister data change listener.
751   *
752   * @param { DataChangeListener } listener
753   * @syscap SystemCapability.ArkUI.ArkUI.Full
754   * @crossplatform
755   * @atomicservice
756   * @since 11
757   */
758  unregisterDataChangeListener(listener: DataChangeListener): void;
759}
760
761/**
762 * Lazy loading.
763 *
764 * @interface LazyForEachInterface
765 * @syscap SystemCapability.ArkUI.ArkUI.Full
766 * @since 7
767 */
768/**
769 * Lazy loading.
770 *
771 * @interface LazyForEachInterface
772 * @syscap SystemCapability.ArkUI.ArkUI.Full
773 * @crossplatform
774 * @since 10
775 */
776/**
777 * Lazy loading.
778 *
779 * @interface LazyForEachInterface
780 * @syscap SystemCapability.ArkUI.ArkUI.Full
781 * @crossplatform
782 * @atomicservice
783 * @since 11
784 */
785interface LazyForEachInterface {
786  /**
787   * Enter the value to obtain the LazyForEach.
788   *
789   * @param { IDataSource } dataSource
790   * @param { function } itemGenerator
791   * @param { function } keyGenerator
792   * @returns { LazyForEachInterface }
793   * @syscap SystemCapability.ArkUI.ArkUI.Full
794   * @since 7
795   */
796  /**
797   * Enter the value to obtain the LazyForEach.
798   *
799   * @param { IDataSource } dataSource
800   * @param { function } itemGenerator
801   * @param { function } keyGenerator
802   * @returns { LazyForEachInterface }
803   * @syscap SystemCapability.ArkUI.ArkUI.Full
804   * @crossplatform
805   * @since 10
806   */
807  /**
808   * Enter the value to obtain the LazyForEach.
809   *
810   * @param { IDataSource } dataSource
811   * @param { function } itemGenerator
812   * @param { function } keyGenerator
813   * @returns { LazyForEachInterface }
814   * @syscap SystemCapability.ArkUI.ArkUI.Full
815   * @crossplatform
816   * @atomicservice
817   * @since 11
818   */
819  (
820    dataSource: IDataSource,
821    itemGenerator: (item: any, index: number) => void,
822    keyGenerator?: (item: any, index: number) => string,
823  ): LazyForEachInterface;
824}
825
826/**
827 * Defines LazyForEach Component.
828 *
829 * @syscap SystemCapability.ArkUI.ArkUI.Full
830 * @since 7
831 */
832/**
833 * Defines LazyForEach Component.
834 *
835 * @syscap SystemCapability.ArkUI.ArkUI.Full
836 * @crossplatform
837 * @since 10
838 */
839/**
840 * Defines LazyForEach Component.
841 *
842 * @syscap SystemCapability.ArkUI.ArkUI.Full
843 * @crossplatform
844 * @atomicservice
845 * @since 11
846 */
847declare const LazyForEach: LazyForEachInterface;
848