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