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