• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1 /*
2  * Copyright (c) 2024-2025 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  * @addtogroup ArkUI_NativeModule
18  * @{
19  *
20  * @brief Provides UI capabilities of ArkUI on the native side, such as UI component creation and destruction,
21  * tree node operations, attribute setting, and event listening.
22  *
23  * @since 12
24  */
25 
26 /**
27  * @file native_node.h
28  *
29  * @brief Provides type definitions for <b>NativeNode</b> APIs.
30  *
31  * @library libace_ndk.z.so
32  * @syscap SystemCapability.ArkUI.ArkUI.Full
33  * @kit ArkUI
34  * @since 12
35  */
36 
37 #ifndef ARKUI_NATIVE_NODE_H
38 #define ARKUI_NATIVE_NODE_H
39 
40 #include "native_type.h"
41 #include "ui_input_event.h"
42 
43 #ifdef __cplusplus
44 #include <cstdint>
45 #else
46 #include <stdint.h>
47 #endif
48 
49 #ifdef __cplusplus
50 extern "C" {
51 #endif
52 
53 /**
54  * @brief Define commponents max function size.
55  *
56  * @since 12
57  */
58 #define MAX_NODE_SCOPE_NUM 1000
59 
60 /**
61  * @brief Enumerates ArkUI component types that can be created on the native side.
62  *
63  * @since 12
64  */
65 typedef enum {
66     /** Custom node. */
67     ARKUI_NODE_CUSTOM = 0,
68     /** Text. */
69     ARKUI_NODE_TEXT = 1,
70     /** Text span. */
71     ARKUI_NODE_SPAN = 2,
72     /** Image span. */
73     ARKUI_NODE_IMAGE_SPAN = 3,
74     /** Image. */
75     ARKUI_NODE_IMAGE = 4,
76     /** Toggle. */
77     ARKUI_NODE_TOGGLE = 5,
78     /** Loading icon. */
79     ARKUI_NODE_LOADING_PROGRESS = 6,
80     /** Single-line text input. */
81     ARKUI_NODE_TEXT_INPUT = 7,
82     /** Multi-line text input. */
83     ARKUI_NODE_TEXT_AREA = 8,
84     /** Button. */
85     ARKUI_NODE_BUTTON = 9,
86     /** Progress indicator. */
87     ARKUI_NODE_PROGRESS = 10,
88     /** Check box. */
89     ARKUI_NODE_CHECKBOX = 11,
90     /** XComponent. */
91     ARKUI_NODE_XCOMPONENT = 12,
92     /** Date picker. */
93     ARKUI_NODE_DATE_PICKER = 13,
94     /** Time picker. */
95     ARKUI_NODE_TIME_PICKER = 14,
96     /** Text picker. */
97     ARKUI_NODE_TEXT_PICKER = 15,
98     /** Calendar picker. */
99     ARKUI_NODE_CALENDAR_PICKER = 16,
100     /** Slider. */
101     ARKUI_NODE_SLIDER = 17,
102     /** Radio */
103     ARKUI_NODE_RADIO = 18,
104     /** Image animator. */
105     ARKUI_NODE_IMAGE_ANIMATOR = 19,
106     /** XComponent of type TEXTURE.
107      *  @since 18
108      */
109     ARKUI_NODE_XCOMPONENT_TEXTURE,
110     /** Check box group.
111      *  @since 15
112      */
113     ARKUI_NODE_CHECKBOX_GROUP = 21,
114     /** Stack container. */
115     ARKUI_NODE_STACK = MAX_NODE_SCOPE_NUM,
116     /** Swiper. */
117     ARKUI_NODE_SWIPER,
118     /** Scrolling container. */
119     ARKUI_NODE_SCROLL,
120     /** List. */
121     ARKUI_NODE_LIST,
122     /** List item. */
123     ARKUI_NODE_LIST_ITEM,
124     /** List item group. */
125     ARKUI_NODE_LIST_ITEM_GROUP,
126     /** Column container. */
127     ARKUI_NODE_COLUMN,
128     /** Row container. */
129     ARKUI_NODE_ROW,
130     /** Flex container. */
131     ARKUI_NODE_FLEX,
132     /** Refresh component. */
133     ARKUI_NODE_REFRESH,
134     /** Water flow container. */
135     ARKUI_NODE_WATER_FLOW,
136     /** Water flow item. */
137     ARKUI_NODE_FLOW_ITEM,
138     /** Relative layout component. */
139     ARKUI_NODE_RELATIVE_CONTAINER,
140     /** Grid. */
141     ARKUI_NODE_GRID,
142     /** Grid item. */
143     ARKUI_NODE_GRID_ITEM,
144     /** Custom span. */
145     ARKUI_NODE_CUSTOM_SPAN,
146     /**
147      * EmbeddedComponent.
148      * @since 20
149      */
150     ARKUI_NODE_EMBEDDED_COMPONENT,
151     /**
152      * Undefined.
153      * @since 20
154      */
155     ARKUI_NODE_UNDEFINED,
156 } ArkUI_NodeType;
157 
158 /**
159  * @brief Defines the general input parameter structure of the {@link setAttribute} function.
160  *
161  * @since 12
162  */
163 typedef struct {
164     /** Numeric array. */
165     const ArkUI_NumberValue* value;
166     /** Size of the numeric array. */
167     int32_t size;
168     /** String type. */
169     const char* string;
170     /** Object type. */
171     void* object;
172 } ArkUI_AttributeItem;
173 
174 /**
175  * @brief Defines the ArkUI style attributes that can be set on the native side.
176  *
177  * @since 12
178  */
179 typedef enum {
180     /**
181      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
182      *
183      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
184      * .value[0].f32: width, in vp.\n
185      * \n
186      * Format of the return value {@link ArkUI_AttributeItem}:\n
187      * .value[0].f32: width, in vp.\n
188      *
189      */
190     NODE_WIDTH = 0,
191     /**
192      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
193      *
194      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
195      * .value[0].f32: height, in vp.\n
196      * \n
197      * Format of the return value {@link ArkUI_AttributeItem}:\n
198      * .value[0].f32: height, in vp.\n
199      *
200      */
201     NODE_HEIGHT,
202     /**
203      * @brief Defines the background color attribute, which can be set, reset, and obtained as required through APIs.
204      *
205      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
206      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
207      * \n
208      * Format of the return value {@link ArkUI_AttributeItem}:\n
209      * .value[0].u32: background color. The value is in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
210      *
211      */
212     NODE_BACKGROUND_COLOR,
213     /**
214      * @brief Defines the background image attribute, which can be set, reset, and obtained as required through APIs.
215      *
216      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
217      * .string: image address;\n
218      * .value[0]?.i32: whether to repeat the image. Optional. The parameter type is {@link ArkUI_ImageRepeat}.
219      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
220      * The default value is <b>ARKUI_IMAGE_REPEAT_NONE</b>.\n
221      * \n
222      * Format of the return value {@link ArkUI_AttributeItem}:\n
223      * .string: image address;\n
224      * .value[0].i32: whether to repeat the image. The parameter type is {@link ArkUI_ImageRepeat}.\n
225      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
226      *
227      */
228     NODE_BACKGROUND_IMAGE,
229     /**
230      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
231      *
232      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
233      * 1: Specify the same padding for the four directions. \n
234      * .value[0].f32: padding, in vp.\n
235      * 2: Specify different paddings for different directions. \n
236      * .value[0].f32: top padding, in vp.\n
237      * .value[1].f32: right padding, in vp.\n
238      * .value[2].f32: bottom padding, in vp.\n
239      * .value[3].f32: left padding, in vp.\n
240      * \n
241      * Format of the return value {@link ArkUI_AttributeItem}:\n
242      * .value[0].f32: top padding, in vp.\n
243      * .value[1].f32: right padding, in vp.\n
244      * .value[2].f32: bottom padding, in vp.\n
245      * .value[3].f32: left padding, in vp.\n
246      *
247      */
248     NODE_PADDING,
249     /**
250      * @brief Defines the component ID attribute, which can be set, reset, and obtained as required through APIs.
251      *
252      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
253      * .string: component ID.\n
254      * \n
255      * Format of the return value {@link ArkUI_AttributeItem}:\n
256      * .string: component ID.\n
257      *
258      */
259     NODE_ID,
260     /**
261      * @brief Defines the interactivity attribute, which can be set, reset, and obtained as required through APIs.
262      *
263      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
264      * .value[0].i32: The value <b>true</b> means that the component can interact with users, and <b>false</b> means the opposite.\n
265      * \n
266      * Format of the return value {@link ArkUI_AttributeItem}:\n
267      * .value[0].i32: The value <b>1</b> means that the component can interact with users, and <b>0</b> means the opposite. \n
268      *
269      */
270     NODE_ENABLED,
271     /**
272      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
273      *
274      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
275      * 1: Specify the same margin for the four directions. \n
276      * .value[0].f32: margin, in vp.\n
277      * 2: Specify different margins for different directions. \n
278      * .value[0].f32: top margin, in vp.\n
279      * .value[1].f32: right margin, in vp.\n
280      * .value[2].f32: bottom margin, in vp.\n
281      * .value[3].f32: left margin, in vp.\n
282      * \n
283      * Format of the return value {@link ArkUI_AttributeItem}:\n
284      * .value[0].f32: top margin, in vp.\n
285      * .value[1].f32: right margin, in vp.\n
286      * .value[2].f32: bottom margin, in vp.\n
287      * .value[3].f32: left margin, in vp.\n
288      *
289      */
290     NODE_MARGIN,
291     /**
292      * @brief Defines the translate attribute, which can be set, reset, and obtained as required through APIs.
293      *
294      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
295      * .value[0].f32: distance to translate along the x-axis, in vp. The default value is <b>0</b>.\n
296      * .value[1].f32: distance to translate along the y-axis, in vp. The default value is <b>0</b>.\n
297      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>. \n
298      * \n
299      * Format of the return value {@link ArkUI_AttributeItem}:\n
300      * .value[0].f32: distance to translate along the x-axis, in vp.\n
301      * .value[1].f32: distance to translate along the y-axis, in vp.\n
302      * .value[2].f32: distance to translate along the z-axis, in vp. \n
303      *
304      */
305     NODE_TRANSLATE,
306     /**
307      * @brief Defines the scale attribute, which can be set, reset, and obtained as required through APIs.
308      *
309      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
310      * .value[0].f32: scale factor along the x-axis. The default value is <b>1</b>.\n
311      * .value[1].f32: scale factor along the y-axis. The default value is <b>1</b>. \n
312      * \n
313      * Format of the return value {@link ArkUI_AttributeItem}:\n
314      * .value[0].f32: scale factor along the x-axis.\n
315      * .value[1].f32: scale factor along the y-axis. \n
316      *
317      */
318     NODE_SCALE,
319     /**
320      * @brief Defines the rotate attribute, which can be set, reset, and obtained as required through APIs.
321      *
322      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
323      * .value[0].f32: X coordinate of the rotation axis vector. The default value is <b>0</b>.\n
324      * .value[1].f32: Y coordinate of the rotation axis vector. The default value is <b>0</b>.\n
325      * .value[2].f32: Z coordinate of the rotation axis vector. The default value is <b>0</b>.\n
326      * .value[3].f32: rotation angle. The default value is <b>0</b>.\n
327      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp.
328      * The default value is <b>0</b>. \n
329      * \n
330      * Format of the return value {@link ArkUI_AttributeItem}:\n
331      * .value[0].f32: X coordinate of the rotation axis vector.\n
332      * .value[1].f32: Y coordinate of the rotation axis vector.\n
333      * .value[2].f32: Z coordinate of the rotation axis vector.\n
334      * .value[3].f32: rotation angle.\n
335      * .value[4].f32: line of sight, that is, the distance from the viewpoint to the z=0 plane, in vp. \n
336      *
337      */
338     NODE_ROTATE,
339     /**
340      * @brief Sets the brightness attribute, which can be set, reset, and obtained as required through APIs.
341      *
342      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
343      * .value[0].f32: brightness value. The default value is <b>1.0</b>, and the recommended value range is [0, 2]. \n
344      * \n
345      * Format of the return value {@link ArkUI_AttributeItem}:\n
346      * .value[0].f32: brightness value. \n
347      *
348      */
349     NODE_BRIGHTNESS,
350     /**
351      * @brief Sets the saturation attribute, which can be set, reset, and obtained as required through APIs.
352      *
353      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
354      * .value[0].f32: saturation value. The default value is <b>1.0</b>, and the recommended value range is [0, 50). \n
355      * \n
356      * Format of the return value {@link ArkUI_AttributeItem}: \n
357      * .value[0].f32: saturation value. \n
358      *
359      */
360     NODE_SATURATION,
361     /**
362      * @brief Sets the blur attribute, which can be set, reset, and obtained as required through APIs.
363      *
364      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
365      * .value[0].f32: blur radius. A larger value indicates a higher blur degree. If the value is <b>0</b>,
366      * the component is not blurred. The unit is vp. The default value is <b>0.0</b>. \n
367      * \n
368      * Format of the return value {@link ArkUI_AttributeItem}:\n
369      * .value[0].f32: blur radius. The larger the fuzzy radius, the more blurred the image. If the value is <b>0</b>,
370      * the image is not blurred. The unit is vp. \n
371      *
372      */
373     NODE_BLUR,
374     /**
375      * @brief Sets the gradient attribute, which can be set, reset, and obtained as required through APIs.
376      *
377      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
378      * .value[0].f32: start angle of the linear gradient. This attribute takes effect only when
379      * {@link ArkUI_LinearGradientDirection} is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
380      * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
381      * .value[1].i32: direction of the linear gradient. When it is set, the <b>angle</b> attribute does not take effect.
382      * The parameter type is {@link ArkUI_LinearGradientDirection}: \n
383      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>. \n
384      * .object: array of color stops, each of which consists of a color and its stop position.
385      * Invalid colors are automatically skipped. \n
386      * colors: colors of the color stops. \n
387      * stops: stop positions of the color stops. \n
388      * size: number of colors. \n
389      * \n
390      * Format of the return value {@link ArkUI_AttributeItem}: \n
391      * .value[0].f32: start angle of the linear gradient. \n
392      * .value[1].i32: direction of the linear gradient. It does not take effect when <b>angle</b> is set. \n
393      * .value[2].i32: whether the colors are repeated. \n
394      * .object: array of color stops, each of which consists of a color and its stop position.
395      * Invalid colors are automatically skipped. \n
396      * colors: colors of the color stops. \n
397      * stops: stop positions of the color stops. \n
398      * size: number of colors. \n
399      *
400      */
401     NODE_LINEAR_GRADIENT,
402     /**
403      * @brief Sets the alignment attribute, which can be set, reset, and obtained as required through APIs.
404      *
405      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
406      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
407      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
408      * \n
409      * Format of the return value {@link ArkUI_AttributeItem}:\n
410      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
411      *
412      */
413     NODE_ALIGNMENT,
414     /**
415      * @brief Defines the opacity attribute, which can be set, reset, and obtained as required through APIs.
416      *
417      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
418      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
419      * \n
420      * Format of the return value {@link ArkUI_AttributeItem}:\n
421      * .value[0].f32: opacity value. The value ranges from 0 to 1. \n
422      *
423      */
424     NODE_OPACITY,
425     /**
426      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
427      *
428      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
429      * 1: .value[0].f32: width of the four borders. \n
430      * 2: .value[0].f32: width of the top border. \n
431      * .value[1].f32: width of the right border. \n
432      * .value[2].f32: width of the bottom border. \n
433      * .value[3].f32: width of the left border. \n
434      * \n
435      * Format of the return value {@link ArkUI_AttributeItem}:\n
436      * .value[0].f32: width of the top border. \n
437      * .value[1].f32: width of the right border. \n
438      * .value[2].f32: width of the bottom border. \n
439      * .value[3].f32: width of the left border. \n
440      *
441      */
442     NODE_BORDER_WIDTH,
443     /**
444      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
445      *
446      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
447      * 1: .value[0].f32: radius of the four corners. \n
448      * 2: .value[0].f32: radius of the upper left corner. \n
449      * .value[1].f32: radius of the upper right corner. \n
450      * .value[2].f32: radius of the lower left corner. \n
451      * .value[3].f32: radius of the lower right corner. \n
452      * \n
453      * Format of the return value {@link ArkUI_AttributeItem}:\n
454      * .value[0].f32: radius of the upper left corner. \n
455      * .value[1].f32: radius of the upper right corner. \n
456      * .value[2].f32: radius of the lower left corner. \n
457      * .value[3].f32: radius of the lower right corner. \n
458      *
459      */
460     NODE_BORDER_RADIUS,
461     /**
462      * @brief Defines the border color attribute, which can be set, reset, and obtained as required through APIs.
463      *
464      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
465      * 1: .value[0].u32: color of the four borders, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
466      * 2: .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
467      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
468      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
469      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
470      * \n
471      * Format of the return value {@link ArkUI_AttributeItem}:\n
472      * .value[0].u32: color of the top border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
473      * .value[1].u32: color of the right border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
474      * .value[2].u32: color of the lower border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
475      * .value[3].u32: color of the left border, in 0xARGB format, for example, <b>0xFFFF11FF</b>. \n
476      *
477      */
478     NODE_BORDER_COLOR,
479     /**
480      * @brief Defines the border line style attribute, which can be set, reset, and obtained as required through APIs.
481      *
482      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
483      * 1: .value[0].i32: line style of the four borders. The parameter type is {@link ArkUI_BorderStyle}.
484      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
485      * 2: .value[0].i32: line style of the top border. The parameter type is {@link ArkUI_BorderStyle}.
486      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
487      * .value[1].i32: line style of the right border. The parameter type is {@link ArkUI_BorderStyle}.
488      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
489      * .value[2].i32: line style of the bottom border. The parameter type is {@link ArkUI_BorderStyle}.
490      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
491      * .value[3].i32: line style of the left border. The parameter type is {@link ArkUI_BorderStyle}.
492      * The default value is <b>ARKUI_BORDER_STYLE_SOLID</b>. \n
493      * \n
494      * Format of the return value {@link ArkUI_AttributeItem}:\n
495      * .value[0].i32: line style of the top border. \n
496      * .value[1].i32: line style of the right border. \n
497      * .value[2].i32: line style of the bottom border. \n
498      * .value[3].i32: line style of the left border. \n
499      *
500      */
501     NODE_BORDER_STYLE,
502     /**
503      * @brief Defines the z-index attribute for the stack sequence.
504      * This attribute can be set, reset, and obtained as required through APIs.
505      *
506      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
507      * .value[0].i32: z-index value. \n
508      * \n
509      * Format of the return value {@link ArkUI_AttributeItem}:\n
510      * .value[0].i32: z-index value. \n
511      *
512      */
513     NODE_Z_INDEX,
514     /**
515      * @brief Defines the visibility attribute, which can be set, reset, and obtained as required through APIs.
516      *
517      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
518      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
519      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
520      * \n
521      * Format of the return value {@link ArkUI_AttributeItem}:\n
522      * .value[0].i32: whether to show or hide the component. The parameter type is {@link ArkUI_Visibility}.
523      * The default value is <b>ARKUI_VISIBILITY_VISIBLE</b>. \n
524      *
525      */
526     NODE_VISIBILITY,
527     /**
528      * @brief Defines the clipping and masking attribute, which can be set, reset, and obtained as required through
529      * APIs.
530      *
531      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
532      * .value[0].i32: whether to clip the component based on the parent container bounds.
533      * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
534      * \n
535      * Format of the return value {@link ArkUI_AttributeItem}:\n
536      * .value[0].i32: whether to clip the component based on the parent container bounds.
537      * The value <b>1</b> means to clip the component, and <b>0</b> means the opposite. \n
538      *
539      */
540     NODE_CLIP,
541     /**
542      * @brief Defines the clipping region on the component.
543      * This attribute can be set and obtained as required through APIs.
544      *
545      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute,
546      * which supports five types of shapes:\n
547      * 1. Rectangle:\n
548      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
549      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
550      * .value[1].f32: width of the rectangle.\n
551      * .value[2].f32: height of rectangle.\n
552      * .value[3].f32: width of the rounded corner of the rectangle.\n
553      * .value[4].f32: height of the rounded corner of the rectangle.\n
554      * .value[5]?.f32: radius of the top left corner of the rectangular shape.\n
555      * .value[6]?.f32: radius of the bottom left corner of the rectangular shape.\n
556      * .value[7]?.f32: radius of the top right corner of the rectangular shape.\n
557      * .value[8]?.f32: radius of the bottom right corner of the rectangular shape.\n
558      * 2. Circle:\n
559      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
560      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
561      * .value[1].f32: width of the circle.\n
562      * .value[2].f32: height of the circle.\n
563      * 3.Ellipse:\n
564      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
565      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
566      * .value[1].f32: width of the ellipse.\n
567      * .value[2].f32: height of the ellipse.\n
568      * 4. Path:\n
569      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
570      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
571      * .value[1].f32: width of the path.\n
572      * .value[2].f32: height of the path.\n
573      * .string: command for drawing the path.\n
574      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
575      * 1. Rectangle:\n
576      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
577      * The value is <b>ARKUI_CLIP_TYPE_RECTANGLE</b> for the rectangle shape.\n
578      * .value[1].f32: width of the rectangle.\n
579      * .value[2].f32: height of rectangle.\n
580      * .value[3].f32: width of the rounded corner of the rectangle.\n
581      * .value[4].f32: height of the rounded corner of the rectangle.\n
582      * .value[5].f32: radius of the top left corner of the rectangular shape; \n
583      * .value[6].f32: radius of the bottom left corner of the rectangular shape; \n
584      * .value[7].f32: radius of the top right corner of the rectangular shape; \n
585      * .value[8].f32: radius of the bottom right corner of the rectangular shape; \n
586      * 2. Circle:\n
587      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
588      * The value is <b>ARKUI_CLIP_TYPE_CIRCLE</b> for the circle shape.\n
589      * .value[1].f32: width of the circle.\n
590      * .value[2].f32: height of the circle.\n
591      * 3.Ellipse:\n
592      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
593      * The value is <b>ARKUI_CLIP_TYPE_ELLIPSE</b> for the ellipse shape.\n
594      * .value[1].f32: width of the ellipse.\n
595      * .value[2].f32: height of the ellipse.\n
596      * 4. Path:\n
597      * .value[0].i32: type of shape. The parameter type is {@link ArkUI_ClipType}.
598      * The value is <b>ARKUI_CLIP_TYPE_PATH</b> for the path shape.\n
599      * .value[1].f32: width of the path.\n
600      * .value[2].f32: height of the path.\n
601      * .string: command for drawing the path.\n
602      *
603      */
604     NODE_CLIP_SHAPE,
605     /**
606      * @brief Defines the transform attribute, which can be used to translate, rotate, and scale images.
607      * This attribute can be set, reset, and obtained as required through APIs.
608      *
609      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
610      * .value[0...15].f32: 16 floating-point numbers. \n
611      * \n
612      * Format of the return value {@link ArkUI_AttributeItem}:\n
613      * .value[0...15].f32: 16 floating-point numbers. \n
614      *
615      */
616     NODE_TRANSFORM,
617     /**
618      * @brief Defines the hit test behavior attribute, which can be set, reset, and obtained as required through APIs.
619      *
620      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
621      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
622      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
623      * \n
624      * Format of the return value {@link ArkUI_AttributeItem}:\n
625      * .value[0].i32: hit test mode. The parameter type is {@link ArkUI_HitTestMode}.
626      * The default value is <b>ARKUI_HIT_TEST_MODE_DEFAULT</b>. \n
627      *
628      */
629     NODE_HIT_TEST_BEHAVIOR,
630     /**
631      * @brief Defines the offset attribute, which specifies the offset of the component's upper left corner relative
632      * to the parent container's. This attribute can be set, reset, and obtained as required through APIs.
633      *
634      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
635      * .value[0].f32: X coordinate. \n
636      * .value[1].f32: Y coordinate. \n
637      * \n
638      * Format of the return value {@link ArkUI_AttributeItem}:\n
639      * .value[0].f32: X coordinate. \n
640      * .value[1].f32: Y coordinate. \n
641      *
642      */
643     NODE_POSITION,
644     /**
645      * @brief Defines the shadow attribute, which can be set, reset, and obtained as required through APIs.
646      *
647      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
648      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
649      * \n
650      * Format of the return value {@link ArkUI_AttributeItem}:\n
651      * .value[0].i32: shadow effect. The parameter type is {@link ArkUI_ShadowStyle}. \n
652      *
653      */
654     NODE_SHADOW,
655     /**
656      * @brief Defines the custom shadow effect. This attribute can be set, reset, and obtained as required through APIs.
657      *
658      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
659      * .value[0]?.f32: blur radius of the shadow, in vp.\n
660      * .value[1]?.i32: whether to enable the coloring strategy. The value <b>1</b> means to enable the coloring
661      * strategy, and <b>0</b> (default value) means the opposite.\n
662      * .value[2]?.f32: offset of the shadow along the x-axis, in px.\n
663      * .value[3]?.f32: offset of the shadow along the y-axis, in px.\n
664      * .value[4]?.i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
665      * .value[5]?.u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
666      * .value[6]?.u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
667      * means the opposite.\n
668      *
669      * \n
670      * Format of the return value {@link ArkUI_AttributeItem}:\n
671      * .value[0].f32: blur radius of the shadow, in vp.\n
672      * .value[1].i32: whether to enable the coloring strategy. \n
673      * .value[2].f32: offset of the shadow along the x-axis, in px.\n
674      * .value[3].f32: offset of the shadow along the y-axis, in px.\n
675      * .value[4].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
676      * .value[5].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
677      * .value[6].u32: whether to fill the shadow. The value <b>1</b> means to fill the shadow, and <b>0</b>
678      * means the opposite.\n
679      *
680      */
681     NODE_CUSTOM_SHADOW,
682     /**
683      * @brief Defines the background image width and height.
684      * This attribute can be set, reset, and obtained as required through APIs.
685      *
686      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
687      * .value[0].f32: width of the image. The value range is [0, +∞), and the unit is vp. \n
688      * .value[1].f32: height of the image. The value range is [0, +∞), and the unit is vp. \n
689      * \n
690      * Format of the return value {@link ArkUI_AttributeItem}:\n
691      * .value[0].f32: width of the image, in vp. \n
692      * .value[1].f32: height of the image, in vp. \n
693      *
694      */
695     NODE_BACKGROUND_IMAGE_SIZE,
696     /**
697      * @brief Defines the background image size.
698      * This attribute can be set, reset, and obtained as required through APIs.
699      *
700      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
701      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
702      * \n
703      * Format of the return value {@link ArkUI_AttributeItem}:\n
704      * .value[0].i32: size of the background image. The value is an enum of {@link ArkUI_ImageSize}. \n
705      *
706      */
707     NODE_BACKGROUND_IMAGE_SIZE_WITH_STYLE,
708     /**
709      * @brief Defines the background blur attribute, which can be set, reset, and obtained as required through APIs.
710      *
711      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
712      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
713      * .value[1]?.i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
714      * .value[2]?.i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
715      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
716      * .value[4]?.f32: start boundary of grayscale blur. \n
717      * .value[5]?.f32: end boundary of grayscale blur. \n
718      * \n
719      * Format of the return value {@link ArkUI_AttributeItem}:\n
720      * .value[0].i32: blue type. The value is an enum of {@link ArkUI_BlurStyle}. \n
721      * .value[1].i32: color mode. The value is an enum of {@link ArkUI_ColorMode}. \n
722      * .value[2].i32: adaptive color mode. The value is an enum of {@link ArkUI_AdaptiveColor}. \n
723      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
724      * .value[4].f32: start boundary of grayscale blur. \n
725      * .value[5].f32: end boundary of grayscale blur. \n
726      *
727      */
728     NODE_BACKGROUND_BLUR_STYLE,
729     /**
730      * @brief Defines the transform center attribute, which can be set, reset, and obtained as required through APIs.
731      *
732      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
733      * .value[0]?.f32: X coordinate of the center point, in vp.\n
734      * .value[1]?.f32: Y coordinate of the center point, in vp.\n
735      * .value[2]?.f32: Z coordinate of the center point, in vp.\n
736      * .value[3]?.f32 : X coordinate of the center point, expressed in a number that represents a percentage.
737      * For example, 0.2 indicates 20%. This attribute overwrites value[0].f32. The default value is <b>0.5f</b>. \n
738      * .value[4]?.f32 : Y coordinate of the center point, expressed in a number that represents a percentage.
739      * For example, 0.2 indicates 20%. This attribute overwrites value[1].f32. The default value is <b>0.5f</b>. \n
740      * .value[5]?.f32 : Z coordinate of the center point, expressed in a number that represents a percentage.
741      * For example, 0.2 indicates 20%. This attribute overwrites value[2].f32. The default value is <b>0.0f</b>. \n
742      * \n
743      * Format of the return value {@link ArkUI_AttributeItem}:\n
744      * .value[0].f32: X coordinate of the center point, in vp.\n
745      * .value[1].f32: Y coordinate of the center point, in vp.\n
746      * .value[2].f32: Z coordinate of the center point, in vp.\n
747      * Note: If the coordinate is expressed in a number that represents a percentage, the attribute obtaining API
748      * returns the calculated value in vp.
749      *
750      */
751     NODE_TRANSFORM_CENTER,
752     /**
753      * @brief Defines the transition opacity attribute, which can be set, reset, and obtained as required through APIs.
754      *
755      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
756      * .value[0].f32: opacity values of the start and end points.\n
757      * .value[1].i32: animation duration, in milliseconds.\n
758      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
759      * .value[3]?.i32: animation delay duration, in milliseconds.\n
760      * .value[4]?.i32: number of times that the animation is played.\n
761      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
762      * .value[6]?.f32: animation playback speed.\n
763      * \n
764      * Format of the return value {@link ArkUI_AttributeItem}:\n
765      * .value[0].f32: opacity values of the start and end points.\n
766      * .value[1].i32: animation duration, in milliseconds.\n
767      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
768      * .value[3].i32: animation delay duration, in milliseconds. \n
769      * .value[4].i32: number of times that the animation is played. \n
770      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
771      * .value[6].f32: animation playback speed. \n
772      *
773      */
774     NODE_OPACITY_TRANSITION,
775     /**
776      * @brief Defines the transition rotation attribute, which can be set, reset, and obtained as required through APIs.
777      *
778      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
779      * .value[0].f32: X-component of the rotation vector. \n
780      * .value[1].f32: Y-component of the rotation vector. \n
781      * .value[2].f32: Z-component of the rotation vector \n
782      * .value[3].f32: angle. \n
783      * .value[4].f32: line of sight. The default value is <b>0.0f</b>. \n
784      * .value[5].i32: animation duration, in milliseconds. \n
785      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
786      * .value[7]?.i32: animation delay duration, in milliseconds. \n
787      * .value[8]?.i32: number of times that the animation is played. \n
788      * .value[9]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
789      * .value[10]?.f32: animation playback speed. \n
790      * \n
791      * Format of the return value {@link ArkUI_AttributeItem}:\n
792      * .value[0].f32: X-component of the rotation vector. \n
793      * .value[1].f32: Y-component of the rotation vector. \n
794      * .value[2].f32: Z-component of the rotation vector \n
795      * .value[3].f32: angle. \n
796      * .value[4].f32: line of sight. \n
797      * .value[5].i32: animation duration, in milliseconds. \n
798      * .value[6].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
799      * .value[7].i32: animation delay duration, in milliseconds. \n
800      * .value[8].i32: number of times that the animation is played. \n
801      * .value[9].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
802      * .value[10].f32: animation playback speed. \n
803      *
804      */
805     NODE_ROTATE_TRANSITION,
806     /**
807      * @brief Defines the transition scaling attribute, which can be set, reset, and obtained as required through APIs.
808      *
809      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
810      * .value[0].f32: scale factor along the x-axis. \n
811      * .value[1].f32: scale factor along the y-axis. \n
812      * .value[2].f32: scale factor along the z-axis. \n
813      * .value[3].i32: animation duration, in milliseconds. \n
814      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
815      * .value[5]?.i32: animation delay duration, in milliseconds. \n
816      * .value[6]?.i32: number of times that the animation is played. \n
817      * .value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
818      * .value[8]?.f32: animation playback speed. \n
819      * \n
820      * Format of the return value {@link ArkUI_AttributeItem}:\n
821      * .value[0].f32: scale factor along the x-axis. \n
822      * .value[1].f32: scale factor along the y-axis. \n
823      * .value[2].f32: scale factor along the z-axis. \n
824      * .value[3].i32: animation duration, in milliseconds. \n
825      * .value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
826      * .value[5].i32: animation delay duration, in milliseconds. \n
827      * .value[6].i32: number of times that the animation is played. \n
828      * .value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
829      * .value[8].f32: animation playback speed. \n
830      *
831      */
832     NODE_SCALE_TRANSITION,
833     /**
834      * @brief Defines the transition translation attribute.
835      * This attribute can be set, reset, and obtained as required through APIs.
836      *
837      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
838      * value[0].f32: translation distance along the x-axis, in vp.\n
839      * value[1].f32: translation distance along the y-axis, in vp.\n
840      * value[2].f32: translation distance along the z-axis, in vp.\n
841      * value[3].i32: animation duration, in milliseconds. \n
842      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
843      * value[5]?.i32: animation delay duration, in milliseconds. \n
844      * value[6]?.i32: number of times that the animation is played. \n
845      * value[7]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
846      * value[8]?.f32: animation playback speed. \n
847      * \n
848      * Format of the return value {@link ArkUI_AttributeItem}:\n
849      * value[0].f32: translation distance along the x-axis, in vp.\n
850      * value[1].f32: translation distance along the y-axis, in vp.\n
851      * value[2].f32: translation distance along the z-axis, in vp.\n
852      * value[3].i32: animation duration, in milliseconds. \n
853      * value[4].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n \n
854      * value[5].i32: animation delay duration, in milliseconds. \n
855      * value[6].i32: number of times that the animation is played. \n
856      * value[7].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
857      * value[8].f32: animation playback speed. \n
858      *
859      */
860     NODE_TRANSLATE_TRANSITION,
861     /**
862      * @brief Defines the slide-in and slide-out of the component from the screen edge during transition.
863      * This attribute can be set, reset, and obtained as required through APIs.
864      *
865      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
866      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
867      * .value[1].i32: animation duration, in milliseconds.\n
868      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
869      * .value[3]?.i32: animation delay duration, in milliseconds.\n
870      * .value[4]?.i32: number of times that the animation is played.\n
871      * .value[5]?.i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}.\n
872      * .value[6]?.f32: animation playback speed.\n
873      * \n
874      * Format of the return value {@link ArkUI_AttributeItem}:\n
875      * .value[0].i32: The parameter type is {@link ArkUI_TransitionEdge}. \n
876      * .value[1].i32: animation duration, in milliseconds.\n
877      * .value[2].i32: animation curve type. The value is an enum of {@link ArkUI_AnimationCurve}.\n
878      * .value[3].i32: animation delay duration, in milliseconds. \n
879      * .value[4].i32: number of times that the animation is played. \n
880      * .value[5].i32: animation playback mode. The value is an enum of {@link ArkUI_AnimationPlayMode}. \n
881      * .value[6].f32: animation playback speed. \n
882      *
883      */
884     NODE_MOVE_TRANSITION,
885 
886     /**
887      * @brief Defines the focus attribute, which can be set, reset, and obtained as required through APIs.
888      *
889      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
890      * .value[0].i32: The parameter type is 1 or 0.
891      * \n
892      * Format of the return value {@link ArkUI_AttributeItem}:\n
893      * .value[0].i32: The parameter type is 1 or 0.
894      *
895      */
896     NODE_FOCUSABLE,
897 
898     /**
899      * @brief Defines the default focus attribute, which can be set, reset, and obtained as required through APIs.
900      *
901      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
902      * value[0].i32: The parameter type is 1 or 0.
903      * \n
904      * Format of the return value {@link ArkUI_AttributeItem}:\n
905      * value[0].i32: The parameter type is 1 or 0.
906      *
907      */
908     NODE_DEFAULT_FOCUS,
909 
910     /**
911      * @brief Defines the touch target attribute, which can be set, reset, and obtained as required through APIs.
912      *
913      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
914      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
915      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
916      * .data[2].f32: width of the touch target, in %. \n
917      * .data[3].f32: height of the touch target, in %. \n
918      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
919      * \n
920      * Format of the return value {@link ArkUI_AttributeItem}:\n
921      * .data[0].f32: X coordinate of the touch point relative to the upper left corner of the component, in vp. \n
922      * .data[1].f32: Y coordinate of the touch point relative to the upper left corner of the component, in vp. \n
923      * .data[2].f32: width of the touch target, in %. \n
924      * .data[3].f32: height of the touch target, in %. \n
925      * .data[4...].f32: Multiple touch targets can be set. The sequence of the parameters is the same as the preceding.
926      *
927      */
928     NODE_RESPONSE_REGION,
929 
930     /**
931      * @brief Defines the overlay attribute, which can be set, reset, and obtained as required through APIs.
932      *
933      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
934      * .string: mask text.\n
935      * .value[0]?.i32: position of the overlay relative to the component. Optional.
936      * The parameter type is {@link ArkUI_Alignment}.
937      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
938      * .value[1]?.f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. Optional. \n
939      * .value[2]?.f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp. Optional.
940      * \n
941      * Format of the return value {@link ArkUI_AttributeItem}:\n
942      * .string: mask text.\n
943      * .value[0].i32: position of the overlay relative to the component.
944      * The parameter type is {@link ArkUI_Alignment}.
945      * The default value is <b>ARKUI_ALIGNMENT_TOP_START.</b> \n
946      * .value[1].f32: offset of the overlay relative to the upper left corner of itself on the x-axis, in vp. \n
947      * .value[2].f32: offset of the overlay relative to the upper left corner of itself on the y-axis, in vp.
948      *
949      */
950     NODE_OVERLAY,
951     /**
952      * @brief Defines the sweep gradient effect.
953      * This attribute can be set, reset, and obtained as required through APIs.
954      *
955      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
956      * .value[0]?.f32: X coordinate of the sweep gradient center relative to the upper left corner of the component.\n
957      * .value[1]?.f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component.\n
958      * .value[2]?.f32: start point of the sweep gradient. The default value is <b>0</b>. \n
959      * .value[3]?.f32: end point of the sweep gradient. The default value is <b>0</b>. \n
960      * .value[4]?.f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
961      * .value[5]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
962      * and <b>0</b> means the opposite.\n
963      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
964      * automatically skipped.\n
965      * colors: colors of the color stops. \n
966      * stops: stop positions of the color stops. \n
967      * size: number of colors. \n
968      * \n
969      * Format of the return value {@link ArkUI_AttributeItem}:\n
970      * .value[0].f32: X coordinate of the sweep gradient center relative to the upper left corner of the component. \n
971      * .value[1].f32: Y coordinate of the sweep gradient center relative to the upper left corner of the component. \n
972      * .value[2].f32: start point of the sweep gradient. The default value is <b>0</b>. \n
973      * .value[3].f32: end point of the sweep gradient. The default value is <b>0</b>. \n
974      * .value[4].f32: rotation angle of the sweep gradient. The default value is <b>0</b>. \n
975      * .value[5].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
976      * and <b>0</b> means the opposite.\n
977      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
978      * automatically skipped.\n
979      * colors: colors of the color stops. \n
980      * stops: stop positions of the color stops. \n
981      * size: number of colors. \n
982      *
983      */
984     NODE_SWEEP_GRADIENT,
985     /**
986      * @brief Defines the radial gradient effect.
987      * This attribute can be set, reset, and obtained as required through APIs.
988      *
989      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
990      * .value[0]?.f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
991      * .value[1]?.f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
992      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
993      * .value[3]?.i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
994      * and <b>0</b> means the opposite. \n
995      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
996      * automatically skipped. \n
997      * colors: colors of the color stops. \n
998      * stops: stop positions of the color stops. \n
999      * size: number of colors. \n
1000      * \n
1001      * Format of the return value {@link ArkUI_AttributeItem}:\n
1002      * .value[0].f32: X coordinate of the radial gradient center relative to the upper left corner of the component. \n
1003      * .value[1].f32: Y coordinate of the radial gradient center relative to the upper left corner of the component. \n
1004      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
1005      * .value[3].i32: whether the colors are repeated. The value <b>1</b> means that the colors are repeated,
1006      * and <b>0</b> means the opposite.\n
1007      * .object: array of color stops, each of which consists of a color and its stop position. Invalid colors are
1008      * automatically skipped. \n
1009      * colors: colors of the color stops. \n
1010      * stops: stop positions of the color stops. \n
1011      * size: number of colors. \n
1012      *
1013      */
1014     NODE_RADIAL_GRADIENT,
1015     /**
1016      * @brief Adds a mask of the specified shape to the component.
1017      * This attribute can be set, reset, and obtained as required through APIs.
1018      *
1019      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute, which supports five types of
1020      * shapes:\n
1021      * 1. Rectangle:\n
1022      * .value[0].u32 fill color, in 0xARGB format. \n
1023      * .value[1].u32: stroke color, in 0xARGB format. \n
1024      * .value[2].f32: stroke width, in vp. \n
1025      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1026      * The value is <b>ARKUI_MASK_TYPE_RECTANGLE</b> for the rectangle shape.\n
1027      * .value[4].f32: width of the rectangle.\n
1028      * .value[5].f32: height of the rectangle.\n
1029      * .value[6].f32: width of the rounded corner of the rectangle.\n
1030      * .value[7].f32: height of the rounded corner of the rectangle.\n
1031      * .value[8]?.f32: radius of the top left corner of the rectangular shape.\n
1032      * .value[9]?.f32: radius of the bottom left corner of the rectangular shape.\n
1033      * .value[10]?.f32: radius of the top right corner of the rectangular shape.\n
1034      * .value[11]?.f32: radius of the bottom right corner of the rectangular shape.\n
1035      * 2. Circle:\n
1036      * .value[0].u32 fill color, in 0xARGB format. \n
1037      * .value[1].u32: stroke color, in 0xARGB format. \n
1038      * .value[2].f32: stroke width, in vp. \n
1039      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1040      * The value is <b>ARKUI_MASK_TYPE_CIRCLE</b> for the circle shape.\n
1041      * .value[4].f32: width of the circle.\n
1042      * .value[5].f32: height of the circle.\n
1043      * 3. Ellipse:\n
1044      * .value[0].u32 fill color, in 0xARGB format. \n
1045      * .value[1].u32: stroke color, in 0xARGB format. \n
1046      * .value[2].f32: stroke width, in vp. \n
1047       * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1048       * The value is <b>ARKUI_MASK_TYPE_ELLIPSE</b> for the ellipse shape.\n
1049      * .value[4].f32: width of the ellipse.\n
1050      * .value[5].f32: height of the ellipse.\n
1051      * 4. Path:\n
1052      * .value[0].u32 fill color, in 0xARGB format. \n
1053      * .value[1].u32: stroke color, in 0xARGB format. \n
1054      * .value[2].f32: stroke width, in vp. \n
1055      * .value[3].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1056      * The value is <b>ARKUI_MASK_TYPE_PATH</b> for the path shape.\n
1057      * .value[4].f32: width of the path.\n
1058      * .value[5].f32: height of the path.\n
1059      * .string: command for drawing the path.\n
1060      * 5. Progress:\n
1061      * .value[0].i32: mask type. The parameter type is {@link ArkUI_MaskType}.
1062      * The value is <b>ARKUI_MASK_TYPE_PROGRESS</b> for the progress shape.\n
1063      * .value[1].f32: current value of the progress indicator.\n
1064      * .value[2].f32: maximum value of the progress indicator.\n
1065      * .value[3].u32: color of the progress indicator, in 0xARGB format.\n
1066      * \n
1067      * Format of the return value {@link ArkUI_AttributeItem}, which supports five types of shapes:\n
1068      * 1. Rectangle:\n
1069      * .value[0].u32 fill color, in 0xARGB format. \n
1070      * .value[1].u32: stroke color, in 0xARGB format. \n
1071      * .value[2].f32: stroke width, in vp. \n
1072      * .value[3].i32: mask type.\n
1073      * .value[4].f32: width of the rectangle.\n
1074      * .value[5].f32: height of the rectangle.\n
1075      * .value[6].f32: width of the rounded corner of the rectangle.\n
1076      * .value[7].f32: height of the rounded corner of the rectangle.\n
1077      * .value[8].f32: radius of the top left corner of the rectangular shape.\n
1078      * .value[9].f32: radius of the bottom left corner of the rectangular shape.\n
1079      * .value[10].f32: radius of the top right corner of the rectangular shape.\n
1080      * .value[11].f32: radius of the bottom right corner of the rectangular shape.\n
1081      * 2. Circle:\n
1082      * .value[0].u32 fill color, in 0xARGB format. \n
1083      * .value[1].u32: stroke color, in 0xARGB format. \n
1084      * .value[2].f32: stroke width, in vp. \n
1085      * .value[3].i32: mask type.\n
1086      * .value[4].f32: width of the circle.\n
1087      * .value[5].f32: height of the circle.\n
1088      * 3. Ellipse:\n
1089      * .value[0].u32 fill color, in 0xARGB format. \n
1090      * .value[1].u32: stroke color, in 0xARGB format. \n
1091      * .value[2].f32: stroke width, in vp. \n
1092      * .value[3].i32: mask type.\n
1093      * .value[4].f32: width of the ellipse.\n
1094      * .value[5].f32: height of the ellipse.\n
1095      * 4. Path:\n
1096      * .value[0].u32 fill color, in 0xARGB format. \n
1097      * .value[1].u32: stroke color, in 0xARGB format. \n
1098      * .value[2].f32: stroke width, in vp. \n
1099      * .value[3].i32: mask type.\n
1100      * .value[4].f32: width of the path.\n
1101      * .value[5].f32: height of the path.\n
1102      * .string: command for drawing the path.\n
1103      * 5. Progress:\n
1104      * .value[0].i32: mask type.\n
1105      * .value[1].f32: current value of the progress indicator.\n
1106      * .value[2].f32: maximum value of the progress indicator.\n
1107      * .value[3].u32: color of the progress indicator.\n
1108      *
1109      */
1110     NODE_MASK,
1111     /**
1112      * @brief Blends the component's background with the content of the component's child node.
1113      * This attribute can be set, reset, and obtained as required through APIs.
1114      *
1115      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1116      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1117      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1118      * .value[1].?i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1119      * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
1120      * \n
1121      * Format of the return value {@link ArkUI_AttributeItem}:\n
1122      * .value[0].i32: blend mode. The parameter type is {@link ArkUI_BlendMode}. The default value is
1123      * <b>ARKUI_BLEND_MODE_NONE</b>. \n
1124      * .value[1].i32: how the specified blend mode is applied. The parameter type is {@link ArkUI_BlendApplyType}.
1125      * The default value is <b>BLEND_APPLY_TYPE_FAST</b>. \n
1126      *
1127      */
1128     NODE_BLEND_MODE,
1129     /**
1130      * @brief Sets the direction of the main axis.
1131      * This attribute can be set, reset, and obtained as required through APIs.
1132      *
1133      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1134      * .value[0].i32: direction of the main axis.\n
1135      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1136      * \n
1137      * Format of the return value {@link ArkUI_AttributeItem}:\n
1138      * .value[0].i32: direction of the main axis.\n
1139      * The parameter type is {@link ArkUI_Direction}. The default value is <b>ARKUI_DIRECTION_AUTO</b>. \n
1140      *
1141      */
1142     NODE_DIRECTION,
1143     /**
1144      * @brief Defines the size constraints.
1145      * This attribute can be set, reset, and obtained as required through APIs.
1146      *
1147      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1148      * .value[0].f32: minimum width, in vp.\n
1149      * .value[1].f32: maximum width, in vp.\n
1150      * .value[2].f32: minimum height, in vp.\n
1151      * .value[3].f32: maximum height, in vp.\n
1152      * \n
1153      * Format of the return value {@link ArkUI_AttributeItem}:\n
1154      * .value[0].f32: minimum width, in vp.\n
1155      * .value[1].f32: maximum width, in vp.\n
1156      * .value[2].f32: minimum height, in vp.\n
1157      * .value[3].f32: maximum height, in vp.\n
1158      *
1159      */
1160     NODE_CONSTRAINT_SIZE,
1161     /**
1162      * @brief Defines the grayscale effect.
1163      * This attribute can be set, reset, and obtained as required through APIs.
1164      *
1165      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1166      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.
1167      * For example, 0.5 indicates a 50% grayscale conversion ratio. \n
1168      * \n
1169      * Format of the return value {@link ArkUI_AttributeItem}:\n
1170      * .value[0].f32: grayscale conversion ratio. The value ranges from 0 to 1.\n
1171      *
1172      */
1173     NODE_GRAY_SCALE,
1174     /**
1175      * @brief Inverts the image.
1176      * This attribute can be set, reset, and obtained as required through APIs.
1177      *
1178      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1179      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.
1180      * For example, 0.5 indicates a 50% image inversion ratio.\n
1181      * \n
1182      * Format of the return value {@link ArkUI_AttributeItem}:\n
1183      * .value[0].f32: image inversion ratio. The value ranges from 0 to 1.\n
1184      *
1185      */
1186     NODE_INVERT,
1187     /**
1188      * @brief Defines the sepia conversion ratio.
1189      * This attribute can be set, reset, and obtained as required through APIs.
1190      *
1191      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1192      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.
1193      * For example, 0.5 indicates that a 50% sepia conversion ratio.\n
1194      * \n
1195      * Format of the return value {@link ArkUI_AttributeItem}:\n
1196      * .value[0].f32: sepia conversion ratio. The value ranges from 0 to 1.\n
1197      *
1198      */
1199     NODE_SEPIA,
1200     /**
1201      * @brief Defines the contrast attribute, which can be set, reset, and obtained as required through APIs.
1202      *
1203      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1204      * .value[0].f32: contrast. If the value is <b>1</b>, the source image is displayed.
1205      * A larger value indicates a higher contrast. Value range: [0, 10).\n
1206      * \n
1207      * Format of the return value {@link ArkUI_AttributeItem}:\n
1208      * .value[0].f32: contrast. Value range: [0, 10).\n
1209      *
1210      */
1211     NODE_CONTRAST,
1212     /**
1213      * @brief Defines the foreground color attribute, which can be set, reset, and obtained as required through APIs.
1214      *
1215      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1216      * 1: .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
1217      * 2: .value[0].i32: color enum {@link ArkUI_ColoringStrategy}.\n
1218      * \n
1219      * Format of the return value {@link ArkUI_AttributeItem}:\n
1220      * .value[0].u32: color value, in 0xARGB format.\n
1221      *
1222      */
1223     NODE_FOREGROUND_COLOR,
1224 
1225     /**
1226      * @brief Defines the offset of the component's child relative to the component.
1227      * This attribute can be set, reset, and obtained as required through APIs.
1228      *
1229      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1230      * .value[0].f32 : offset along the x-axis, in vp. \n
1231      * .value[1].f32 : offset along the y-axis, in vp. \n
1232      * \n
1233      * Format of the return value {@link ArkUI_AttributeItem}:\n
1234      * .value[0].f32 : offset along the x-axis, in vp. \n
1235      * .value[1].f32 : offset along the y-axis, in vp. \n
1236      *
1237      */
1238     NODE_OFFSET,
1239     /**
1240      * @brief Sets the anchor for locating the component's child.
1241      * This attribute can be set, reset, and obtained as required through APIs.
1242      *
1243      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1244      * .value[0].f32: X coordinate of the anchor, in vp.\n
1245      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1246      * \n
1247      * Format of the return value {@link ArkUI_AttributeItem}:\n
1248      * .value[0].f32: X coordinate of the anchor, in vp.\n
1249      * .value[1].f32: Y coordinate of the anchor, in vp.\n
1250      *
1251      */
1252     NODE_MARK_ANCHOR,
1253     /**
1254      * @brief Defines the position of the background image in the component, that is, the coordinates relative to
1255      * the upper left corner of the component. This attribute can be set, reset, and obtained as required through APIs.
1256      *
1257      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1258      * .value[0].f32: position along the x-axis, in px. \n
1259      * .value[1].f32: position along the y-axis, in px. \n
1260      * \n
1261      * Format of the return value {@link ArkUI_AttributeItem}:\n
1262      * .value[0].f32: position along the x-axis, in px. \n
1263      * .value[1].f32: position along the y-axis, in px. \n
1264      *
1265      */
1266     NODE_BACKGROUND_IMAGE_POSITION,
1267     /**
1268      * @brief Sets the alignment rules in the relative container.
1269      * This attribute can be set, reset, and obtained as required through APIs.
1270      *
1271      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1272      * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
1273      * \n
1274      * Format of the return value {@link ArkUI_AttributeItem}:\n
1275      * .object: Use the {@link ArkUI_AlignmentRuleOption} object as the component’s alignment rule. \n
1276      *
1277      */
1278     NODE_ALIGN_RULES,
1279     /**
1280      * @brief Sets the alignment mode of the child components along the cross axis of the parent container.
1281      * This attribute can be set, reset, and obtained as required through APIs.
1282      *
1283      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1284      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1285      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1286      * \n
1287      * Format of the return value {@link ArkUI_AttributeItem}:\n
1288      * .value[0].i32: alignment mode of the child components along the cross axis of the parent container.\n
1289      * The parameter type is {@link ArkUI_ItemAlignment}. The default value is <b>ARKUI_ITEM_ALIGNMENT_AUTO</b>. \n
1290      *
1291      */
1292     NODE_ALIGN_SELF,
1293     /**
1294      * @brief Sets the percentage of the parent container's remaining space that is allocated to the component.
1295      * This attribute can be set, reset, and obtained as required through APIs.
1296      *
1297      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1298      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1299      * \n
1300      * Format of the return value {@link ArkUI_AttributeItem}:\n
1301      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1302      *
1303      */
1304     NODE_FLEX_GROW,
1305     /**
1306      * @brief Sets the percentage of the parent container's shrink size that is allocated to the component.
1307      * This attribute can be set, reset, and obtained as required through APIs.
1308      *
1309      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1310      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1311      * \n
1312      * Format of the return value {@link ArkUI_AttributeItem}:\n
1313      * .value[0].f32: percentage of the parent container's shrink size that is allocated to the component. \n
1314      *
1315      */
1316     NODE_FLEX_SHRINK,
1317     /**
1318      * @brief Sets the base size of the component.
1319      * This attribute can be set, reset, and obtained as required through APIs.
1320      *
1321      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1322      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1323      * \n
1324      * Format of the return value {@link ArkUI_AttributeItem}:\n
1325      * .value[0].f32: percentage of the parent container's remaining space that is allocated to the component. \n
1326      *
1327      */
1328     NODE_FLEX_BASIS,
1329     /**
1330      * @brief Sets the accessibility group. This attribute can be set, reset, and obtained as required through APIs.
1331      *
1332      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1333      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1334      * form an entire selectable component.
1335      * In this case, the accessibility service will no longer be available for the content of its child components.
1336      * The value is <b>1</b> or <b>0</b>.
1337      * \n
1338      * Format of the return value {@link ArkUI_AttributeItem}:\n
1339      * .value[0].i32: Accessibility group. The value <b>1</b> means that the component and all its child components
1340      * form an entire selectable component.
1341      * In this case, the accessibility service will no longer be available for the content of its child components.
1342      * The value is <b>1</b> or <b>0</b>.
1343      *
1344      */
1345     NODE_ACCESSIBILITY_GROUP,
1346 
1347     /**
1348      * @brief Sets the accessibility text. This attribute can be set, reset, and obtained as required through APIs.
1349      *
1350      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1351      * .string: accessibility text.
1352      * \n
1353      * Format of the return value {@link ArkUI_AttributeItem}:\n
1354      * .string: accessibility text.
1355      *
1356      */
1357     NODE_ACCESSIBILITY_TEXT,
1358 
1359     /**
1360      * @brief Sets the accessibility service model. This attribute can be set, reset, and obtained as required through APIs.
1361      *
1362      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1363      * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
1364      * \n
1365      * Format of the return value {@link ArkUI_AttributeItem}:\n
1366      * .value[0].i32: accessibility service model. The parameter type is {@link ArkUI_AccessibilityMode}.
1367      *
1368      */
1369     NODE_ACCESSIBILITY_MODE,
1370 
1371     /**
1372      * @brief Sets the accessibility description.
1373      * This attribute can be set, reset, and obtained as required through APIs.
1374      *
1375      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1376      * .string: accessibility description.
1377      * \n
1378      * Format of the return value {@link ArkUI_AttributeItem}:\n
1379      * .string: accessibility description.
1380      *
1381      */
1382     NODE_ACCESSIBILITY_DESCRIPTION,
1383 
1384     /**
1385      * @brief Defines the focused state. This attribute can be set and obtained as required through APIs.
1386      * @note Setting the parameter to <b>0</b> shifts focus from the currently focused component on the current level
1387      * of the page to the root container.
1388      *
1389      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1390      * .value[0].i32: The parameter type is 1 or 0.
1391      * \n
1392      * Format of the return value {@link ArkUI_AttributeItem}:\n
1393      * .value[0].i32: The parameter type is 1 or 0.
1394      *
1395      */
1396     NODE_FOCUS_STATUS,
1397     /**
1398      * @brief Defines the aspect ratio attribute, which can be set, reset, and obtained as required through APIs.
1399      *
1400      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1401      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1402      * \n
1403      * Format of the return value {@link ArkUI_AttributeItem}:\n
1404      * .value[0].f32: aspect ratio of the component, in width/height format. \n
1405      *
1406      */
1407     NODE_ASPECT_RATIO,
1408     /**
1409      * @brief Defines the weight of the component within its row, column, or flex container for proportional
1410      * distribution of available space within the container.
1411      * This attribute can be set, reset, and obtained as required through APIs.
1412      *
1413      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1414      * .value[0].u32: weight of the component along the main axis. \n
1415      * \n
1416      * Format of the return value {@link ArkUI_AttributeItem}:\n
1417      * .value[0].u32: weight of the component along the main axis. \n
1418      *
1419      */
1420     NODE_LAYOUT_WEIGHT,
1421     /**
1422      * @brief Sets the display priority for the component in the row, column, or flex  (single-line) container.
1423      * This attribute can be set, reset, and obtained as required through APIs.
1424      *
1425      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1426      * .value[0].u32: display priority of the component in the container. \n
1427      * \n
1428      * Format of the return value {@link ArkUI_AttributeItem}:\n
1429      * .value[0].u32: display priority of the component in the container. \n
1430      *
1431      */
1432     NODE_DISPLAY_PRIORITY,
1433     /**
1434      * @brief Sets the thickness of an element's outline.
1435      *
1436      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1437      * .value[0].f32: thickness of the left outline. \n
1438      * .value[1].f32: thickness of the top outline. \n
1439      * .value[2].f32: thickness of the right outline. \n
1440      * .value[3].f32: thickness of the bottom outline. \n
1441      * \n
1442      * Format of the return value {@link ArkUI_AttributeItem}:\n
1443      * .value[0].f32: thickness of the left outline. \n
1444      * .value[1].f32: thickness of the top outline. \n
1445      * .value[2].f32: thickness of the right outline. \n
1446      * .value[3].f32: thickness of the bottom outline. \n
1447      *
1448      */
1449     NODE_OUTLINE_WIDTH,
1450     /**
1451      * @brief Defines the width attribute, which can be set, reset, and obtained as required through APIs.
1452      *
1453      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1454      * .value[0].f32: width, in percentage.\n
1455      * \n
1456      * Format of the return value {@link ArkUI_AttributeItem}:\n
1457      * .value[0].f32: width, in percentage.\n
1458      *
1459      */
1460     NODE_WIDTH_PERCENT,
1461     /**
1462      * @brief Defines the height attribute, which can be set, reset, and obtained as required through APIs.
1463      *
1464      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1465      * .value[0].f32: height, in percentage.\n
1466      * \n
1467      * Format of the return value {@link ArkUI_AttributeItem}:\n
1468      * .value[0].f32: height, in percentage.\n
1469      *
1470      */
1471     NODE_HEIGHT_PERCENT,
1472     /**
1473      * @brief Defines the padding attribute, which can be set, reset, and obtained as required through APIs.
1474      *
1475      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1476      * 1: Specify the same padding for the four directions. \n
1477      * .value[0].f32: padding, in percentage.\n
1478      * 2: Specify different paddings for different directions. \n
1479      * .value[0].f32: top padding, in percentage.\n
1480      * .value[1].f32: right padding, in percentage.\n
1481      * .value[2].f32: bottom padding, in percentage.\n
1482      * .value[3].f32: left padding, in percentage.\n
1483      * \n
1484      * Format of the return value {@link ArkUI_AttributeItem}:\n
1485      * .value[0].f32: top padding, in percentage.\n
1486      * .value[1].f32: right padding, in percentage.\n
1487      * .value[2].f32: bottom padding, in percentage.\n
1488      * .value[3].f32: left padding, in percentage.\n
1489      *
1490      */
1491     NODE_PADDING_PERCENT,
1492     /**
1493      * @brief Defines the margin attribute, which can be set, reset, and obtained as required through APIs.
1494      *
1495      * There are two formats of {@link ArkUI_AttributeItem} for setting the attribute value:\n
1496      * 1: Specify the same margin for the four directions. \n
1497      * .value[0].f32: margin, in percentage.\n
1498      * 2: Specify different margins for different directions. \n
1499      * .value[0].f32: top margin, in percentage.\n
1500      * .value[1].f32: right margin, in percentage.\n
1501      * .value[2].f32: bottom margin, in percentage.\n
1502      * .value[3].f32: left margin, in percentage.\n
1503      * \n
1504      * Format of the return value {@link ArkUI_AttributeItem}:\n
1505      * .value[0].f32: top margin, in percentage.\n
1506      * .value[1].f32: right margin, in percentage.\n
1507      * .value[2].f32: bottom margin, in percentage.\n
1508      * .value[3].f32: left margin, in percentage.\n
1509      *
1510      */
1511     NODE_MARGIN_PERCENT,
1512 
1513     /**
1514       * @brief The implicit shared element transition within the component supports attribute setting,
1515       * attribute reset, and attribute acquisition interfaces.
1516       *
1517       * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1518       * .value[0]?.i32: The parameter type is 1 or 0. 2 components that share element bindings,
1519       * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1520       * the default is false, and the original position will remain unchanged if not involved. \n
1521       * .string is used to set the binding relationship. Set the id to "" to
1522       * clear the binding relationship to avoid participating in sharing behavior. \n
1523       * The id can be changed and the binding relationship re-established.
1524       * The same ID can only be bound to two components and they are in/out roles of different types.
1525       * Multiple components cannot be bound to the same id. \n
1526       *\n
1527       * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
1528       * .value[0].i32: The parameter type is 1 or 0. 2 components that share element bindings,
1529       * Whether to continue to participate in the shared element animation when the appearance element is not deleted,
1530       * the default is not false, if not involved, the original position will remain unchanged. \n
1531       * .string is used to set the binding relationship. Set the id to "" to
1532       * clear the binding relationship to avoid participating in sharing behavior. \n
1533       * The id can be changed and the binding relationship re-established.
1534       * The same ID can only be bound to two components and they are in/out roles of different types.
1535       * Multiple components cannot be bound to the same id. \n
1536       */
1537     NODE_GEOMETRY_TRANSITION,
1538 
1539     /**
1540       * @brief specifies the parameters of the chain formed by this component as the chain head,
1541       * and supports attribute setting, attribute reset and attribute acquisition interfaces.
1542       *
1543       * Only takes effect when the parent container is RelativeContainer
1544       *
1545       * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
1546       * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1547       * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1548       *\n
1549       * .value[0].i32: The direction of the chain. Enum {@link ArkUI_Axis}. \n
1550       * .value[1].i32: Chain style. Enum {@link ArkUI_RelativeLayoutChainStyle}. \n
1551       */
1552     NODE_RELATIVE_LAYOUT_CHAIN_MODE,
1553 
1554     /**
1555      * @brief Set the component content filling method in the process of width and height animation,
1556      * support property setting, property reset, property acquisition interface.
1557      *
1558      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1559      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1560      * \n
1561      * Format of the return value {@link ArkUI_AttributeItem}:\n
1562      * .value[0].i32 Content filling mode {@link ArkUI_RenderFit}.\n
1563      *
1564      */
1565     NODE_RENDER_FIT,
1566 
1567     /**
1568      * @brief External stroke color properties, support property setting,
1569      * property reset and property acquisition interface.
1570      *
1571      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1572      * 1: .value[0].u32: Set the border color of the four sides uniformly, using 0xargb, such as 0xFFFF11FF. \n
1573      * 2: .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1574      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1575      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1576      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1577      * \n
1578      * Format of the return value {@link ArkUI_AttributeItem}:\n
1579      * .value[0].u32: Set the top border color, represented by 0xargb, such as 0xFFFF11FF. \n
1580      * .value[1].u32: Set the right border color, represented by 0xargb, such as 0xFFFF11FF. \n
1581      * .value[2].u32: Set the lower side box color, denoted by 0xargb, such as 0xFFFF11FF. \n
1582      * .value[3].u32: Set the left border color, denoted by 0xargb, such as 0xFFFF11FF. \n
1583      *
1584      */
1585     NODE_OUTLINE_COLOR,
1586 
1587     /**
1588      * @brief Set the height and width dimensions, support property setting,
1589      * property reset and property acquisition interface.
1590      *
1591      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1592      * .value[0].f32: Width value, unit is vp;\n
1593      * .value[1].f32: Height value, unit is vp;\n
1594      * \n
1595      * Format of the return value {@link ArkUI_AttributeItem}:\n
1596      * .value[0].f32: Width value, unit is vp;\n
1597      * .value[1].f32: Height value, unit is vp;\n
1598      *
1599      */
1600     NODE_SIZE,
1601 
1602     /**
1603      * @brief Set whether the current component and child component are
1604      * rendered off the screen first and then fused with the parent control,
1605      * supporting property setting, property reset and property acquisition.
1606      *
1607      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1608      * .value[0].i32: The parameter type is 1 or 0.
1609      * \n
1610      * Format of the return value {@link ArkUI_AttributeItem}:\n
1611      * .value[0].i32: The parameter type is 1 or 0.
1612      *
1613      */
1614     NODE_RENDER_GROUP,
1615 
1616     /**
1617      * @brief Add color overlay effect to components, support property setting,
1618      * property reset and property acquisition interface.
1619      *
1620      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1621      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1622      * \n
1623      * Format of the return value {@link ArkUI_AttributeItem}:\n
1624      * .value[0].u32: The color of the overlay is represented by 0xargb, such as 0xFFFF11FF. \n
1625      *
1626      */
1627     NODE_COLOR_BLEND,
1628 
1629     /**
1630      * @brief Provide content ambiguity capability for the current component,
1631      * support property setting, property reset, property acquisition interface.
1632      *
1633      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1634      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1635      * .value[1]?.i32 Represents the dark and light mode used by the content blur effect,\n
1636      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1637      * .value[2]?.i32 The color extraction mode used to represent the content blur effect takes\n
1638      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1639      * .value[3]?.f32: blur degree. The value range is [0.0, 1.0]. \n
1640      * .value[4]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1641      * .value[5]?.f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1642      * \n
1643      * Format of the return value {@link ArkUI_AttributeItem}:\n
1644      * .value[0].i32 Represents the content blurring style, and uses the {@link ArkUI_BlurStyle} enumeration value.\n
1645      * .value[1].i32 Represents the dark and light mode used by the content blur effect,\n
1646      * with the {@link ArkUI_ThemeColorMode} enumeration value.\n
1647      * .value[2].i32 The color extraction mode used to represent the content blur effect takes\n
1648      * the {@link ArkUI_AdaptiveColor} enumeration value.\n
1649      * .value[3].f32: blur degree. The value range is [0.0, 1.0]. \n
1650      * .value[4].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1651      * .value[5].f32 It is a gray-level fuzzy parameter. The value range is [0,127].\n
1652      *
1653      */
1654     NODE_FOREGROUND_BLUR_STYLE,
1655 
1656     /**
1657      * @brief Defines the component size and position for layout.
1658      * This attribute can be set, reset, and obtained as required through APIs.
1659      *
1660      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1661      * .value[0].i32: X coordinate of the component, in px. \n
1662      * .value[1].i32: Y coordinate of the component, in px. \n
1663      * .value[2].i32: width of the component, in px. \n
1664      * .value[3].i32: height of the component, in px. \n
1665      * \n
1666      * Format of the return value {@link ArkUI_AttributeItem}:\n
1667      * .value[0].i32: X coordinate of the component, in px. \n
1668      * .value[1].i32: Y coordinate of the component, in px. \n
1669      * .value[2].i32: width of the component, in px. \n
1670      * .value[3].i32: height of the component, in px. \n
1671      *
1672      */
1673     NODE_LAYOUT_RECT,
1674 
1675     /**
1676      * @brief Whether the current component supports click-to-focus capability,
1677      * which can be set, reset, and obtained as required through APIs.
1678      *
1679      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1680      * .value[0].i32: The parameter type is 1 or 0.
1681      * \n
1682      * Format of the return value {@link ArkUI_AttributeItem}:\n
1683      * .value[0].i32: The parameter type is 1 or 0.
1684      *
1685      */
1686     NODE_FOCUS_ON_TOUCH,
1687 
1688     /**
1689      * @brief Defines the border width attribute, which can be set, reset, and obtained as required through APIs.
1690      *
1691      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1692      * 1: .value[0].f32: width of the four borders, in percentage. \n
1693      * 2: .value[0].f32: width of the top border, in percentage. \n
1694      * .value[1].f32: width of the right border, in percentage. \n
1695      * .value[2].f32: width of the bottom border, in percentage. \n
1696      * .value[3].f32: width of the left border, in percentage. \n
1697      * \n
1698      * Format of the return value {@link ArkUI_AttributeItem}:\n
1699      * .value[0].f32: width of the top border, in percentage. \n
1700      * .value[1].f32: width of the right border, in percentage. \n
1701      * .value[2].f32: width of the bottom border, in percentage. \n
1702      * .value[3].f32: width of the left border, in percentage. \n
1703      *
1704      */
1705     NODE_BORDER_WIDTH_PERCENT = 85,
1706     /**
1707      * @brief Defines the border corner radius attribute, which can be set, reset, and obtained as required through APIs.
1708      *
1709      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1710      * 1: .value[0].f32: radius of the four corners, in percentage. \n
1711      * 2: .value[0].f32: radius of the upper left corner, in percentage. \n
1712      * .value[1].f32: radius of the upper right corner, in percentage. \n
1713      * .value[2].f32: radius of the lower left corner, in percentage. \n
1714      * .value[3].f32: radius of the lower right corner, in percentage. \n
1715      * \n
1716      * Format of the return value {@link ArkUI_AttributeItem}:\n
1717      * .value[0].f32: radius of the upper left corner, in percentage. \n
1718      * .value[1].f32: radius of the upper right corner, in percentage. \n
1719      * .value[2].f32: radius of the lower left corner, in percentage. \n
1720      * .value[3].f32: radius of the lower right corner, in percentage. \n
1721      *
1722      */
1723     NODE_BORDER_RADIUS_PERCENT = 86,
1724 
1725     /**
1726      * @brief Accessible ID, which can be obtained as required through APIs.
1727      *
1728      * Format of the return value {@link ArkUI_AttributeItem}:\n
1729      * .value[0].i32:Accessible ID。\n
1730      *
1731      */
1732     NODE_ACCESSIBILITY_ID = 87,
1733 
1734     /**
1735      * @brief Define accessible actions, which can be set, reset, and obtained as required through APIs.
1736      *
1737      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1738      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1739      * \n
1740      * Format of the return value {@link ArkUI_AttributeItem}:\n
1741      * .value[0].u32:accessible action types,and uses the {@link ArkUI_AccessibilityActionType} enumeration value.\n
1742      *
1743      */
1744     NODE_ACCESSIBILITY_ACTIONS = 88,
1745 
1746     /**
1747      * @brief Define accessible role, which can be set, reset, and obtained as required through APIs.
1748      *
1749      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1750      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1751      * \n
1752      * Format of the return value {@link ArkUI_AttributeItem}:\n
1753      * .value[0].u32:accessible role type,and uses the {@link ArkUI_NodeType} enumeration value.\n
1754      *
1755      */
1756     NODE_ACCESSIBILITY_ROLE = 89,
1757 
1758     /**
1759      * @brief Define accessible state, which can be set, reset, and obtained as required through APIs.
1760      *
1761      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1762      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1763      * \n
1764      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1765      * .object:the parameter type is {@link ArkUI_AccessibilityState}.\n
1766      *
1767      */
1768     NODE_ACCESSIBILITY_STATE = 90,
1769 
1770     /**
1771      * @brief Define accessible value, which can be set, reset, and obtained as required through APIs.
1772      *
1773      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1774      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1775      * \n
1776      * Format of the return value {@link ArkUI_AttributeItem}:\n
1777      * .object:the parameter type is {@link ArkUI_AccessibilityValue}.\n
1778      *
1779      */
1780     NODE_ACCESSIBILITY_VALUE = 91,
1781     /**
1782      * @brief defines control components to extend their security zones,
1783      * supporting property setting, property reset, and property fetching.
1784      *
1785      * Attribute setting method {@link ArkUI_AttributeItem} Parameter format: \n
1786      * .value[0]? .u32: Set of extended security zone enumerated values {@link ArkUI_SafeAreaType},
1787      * For example, ARKUI_SAFE_AREA_TYPE_SYSTEM | ARKUI_SAFE_AREA_TYPE_CUTOUT; \n
1788      * .value[1]? .u32: set of directional enum values for extended security zones {@link ArkUI_SafeAreaEdge}; \n
1789      * For example: ARKUI_SAFE_AREA_EDGE_TOP | ARKUI_SAFE_AREA_EDGE_BOTTOM; \n
1790      * \n
1791      * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
1792      *.value[0].u32: extends the security zone. \n. \n
1793      *.value[1].u32: indicates the direction to extend the security zone. \n. \n
1794      *
1795      */
1796     NODE_EXPAND_SAFE_AREA = 92,
1797 
1798     /**
1799      * @brief Defines the visible area ratio (visible area/total area of the component) threshold for invoking the
1800      * visible area change event of the component.
1801      *
1802      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1803      * .value[...].f32: threshold array. The value range is 0 to 1.
1804      * \n
1805      * Format of the return value {@link ArkUI_AttributeItem}:\n
1806      * .value[...].f32: threshold array. \n
1807      *
1808      */
1809     NODE_VISIBLE_AREA_CHANGE_RATIO = 93,
1810 
1811      /**
1812      * @brief Sets the transition effect when the component is inserted or deleted.
1813      * This attribute can be set, and obtained as required through APIs.
1814      *
1815      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1816      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1817      * \n
1818      * Format of the return value {@link ArkUI_AttributeItem}:\n
1819      * .object: transition effect. The parameter type is {@link ArkUI_TransitionEffect}. \n
1820      *
1821      */
1822     NODE_TRANSITION = 94,
1823 
1824     /**
1825      * @brief Defines the component ID.
1826      * This attribute can be obtained through APIs.
1827      *
1828      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:\n
1829      * .value[0].i32: component ID. \n
1830      *
1831      * @deprecated since 20
1832      * @useinstead OH_ArkUI_NodeUtils_GetNodeUniqueId
1833      */
1834     NODE_UNIQUE_ID = 95,
1835 
1836     /**
1837      * @brief Set the current component system focus box style.
1838      *
1839      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1840      * .value[0].f32: The distance between the focus box and the edge of the component. \n
1841      * Positive numbers represent the outer side, negative numbers represent the inner side. \n
1842      * Percentage is not supported. \n
1843      * .value[1].f32: Focus box width. Negative numbers and percentages are not supported. \n
1844      * .value[2].u32: Focus box color. \n
1845      * \n
1846      *
1847      */
1848     NODE_FOCUS_BOX = 96,
1849 
1850     /**
1851      * @brief Defines the moving distance limit for the component-bound tap gesture.
1852      * This attribute can be set as required through APIs.
1853      *
1854      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1855      * .value[0].f32: allowed moving distance of a finger, in vp. \n
1856      *
1857      */
1858     NODE_CLICK_DISTANCE = 97,
1859 
1860     /**
1861      * @brief Sets whether the focus can be placed on this component.
1862      * This attribute can be set, reset, and obtained as required through APIs.
1863      *
1864      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1865      * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
1866      * \n
1867      * Format of the return value {@link ArkUI_AttributeItem}:\n
1868      * .value[0].i32: whether the focus can be placed on the current component. The parameter type is 1 or 0.
1869      *
1870      * @since 14
1871      */
1872     NODE_TAB_STOP = 98,
1873 
1874     /**
1875      * @brief Defines the backdrop blur attribute, which can be set, reset, and obtained as required through APIs.
1876      *
1877      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1878      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1879      * .value[1]?.f32:grayscale blur settings that control the brightness of the black color.\n
1880      * The value range is [0, 127].\n
1881      * .value[2]?.f32:grayscale blur settings that control the darkness of the white color.\n
1882      * The value range is [0, 127].\n
1883      * \n
1884      * Format of the return value {@link ArkUI_AttributeItem}:\n
1885      * .value[0].f32:backdrop blur radius, in px. The value range is [0, +∞).\n
1886      * .value[1].f32:grayscale blur settings that control the brightness of the black color.\n
1887      * The value range is [0, 127].\n
1888      * .value[2].f32:grayscale blur settings that control the darkness of the white color.\n
1889      * The value range is [0, 127].\n
1890      *
1891      * @since 15
1892      */
1893     NODE_BACKDROP_BLUR = 99,
1894 
1895     /**
1896      * @brief Defines the background image resizable attribute, which can be set, reset,
1897      * and obtained as required through APIs.
1898      *
1899      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1900      * .value[0].f32: width of the left edge. The unit is vp. \n
1901      * .value[1].f32: width of the top edge. The unit is vp. \n
1902      * .value[2].f32: width of the right edge. The unit is vp. \n
1903      * .value[3].f32: width of the bottom edge. The unit is vp. \n
1904      * \n
1905      * Format of the return value {@link ArkUI_AttributeItem}:\n
1906      * .value[0].f32: width of the left edge. The unit is vp. \n
1907      * .value[1].f32: width of the top edge. The unit is vp. \n
1908      * .value[2].f32: width of the right edge. The unit is vp. \n
1909      * .value[3].f32: width of the bottom edge. The unit is vp. \n
1910      *
1911      * @since 19
1912      */
1913     NODE_BACKGROUND_IMAGE_RESIZABLE_WITH_SLICE = 100,
1914 
1915     /**
1916      * @brief Sets the next focus node.
1917      *
1918      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
1919      * .value[0].i32: focus movement direction, as defined in {@link ArkUI_FocusMove}.
1920      * .object: next focus node. The parameter type is {@link ArkUI_NodeHandle}.\n
1921      * \n
1922      *
1923      * @since 18
1924      */
1925     NODE_NEXT_FOCUS = 101,
1926 
1927     /**
1928      * @brief Sets the parameters for visible area change events.
1929      *
1930      * @note The visible area change callback is not a real-time callback. The actual callback interval may differ from
1931      * the expected interval due to system load and other factors.
1932      * The interval between two visible area change callbacks will not be less than the expected update interval. If the
1933      * provided expected interval is too short, the actual callback interval will be determined by the system load.
1934      * By default, the interval threshold of the visible area change callback includes 0. This means that,
1935      * if the provided threshold is [0.5], the effective threshold will be [0.0, 0.5].
1936      *
1937      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1938      * .object: parameters for visible area change events.
1939      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1940      * \n
1941      * Format of the return value {@link ArkUI_AttributeItem}:\n
1942      * .object: parameters for visible area change events.
1943      * The parameter type is {@link ArkUI_VisibleAreaEventOptions}. \n
1944      *
1945      * @since 17
1946      */
1947     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO = 102,
1948 
1949     /**
1950      * @brief Defines the translate attribute, which supports for percentile translation input, and can be set, reset,
1951      * and obtained as required through APIs.\n
1952      *
1953      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1954      * .value[0].f32: distance to translate along the x-axis. The default unit is percentage.
1955      * The unit is vp only if value[3] exists and value[3] is 0. The default value of value[0] is <b>0</b>.\n
1956      * .value[1].f32: distance to translate along the y-axis. The default unit is percentage.
1957      * The unit is vp only if value[4] exists and value[4] is 0. The default value of value[1] is <b>0</b>.\n
1958      * .value[2].f32: distance to translate along the z-axis, in vp. The default value is <b>0</b>.\n
1959      * .value[3]?.i32: Whether the translation distance along the x-axis is specified as a percentage.
1960      *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
1961      *  For example, value[0].f32=0.1 and value[3].i32=1 indicates a 10% shift in the x direction.
1962      *  The default value is <b>1</b>.\n
1963      * .value[4]?.i32: Whether the translation distance along the y-axis is specified as a percentage.
1964      *  The value can be 0 or 1. When the value is 1, it is specified as a percentage.
1965      *  For example, value[1].f32=0.1 and value[4].i32=1 indicates a 10% shift in the y direction.
1966      *  The default value is <b>1</b>.\n
1967      * \n
1968      * Format of the return value {@link ArkUI_AttributeItem}:\n
1969      * .value[0].f32: distance to translate along the x-axis. The unit depends on value[3].\n
1970      * .value[1].f32: distance to translate along the y-axis. The unit depends on value[4].\n
1971      * .value[2].f32: distance to translate along the z-axis. The unit is vp.\n
1972      * .value[3].i32: Whether the unit of the X-axis translation distance is in percentage. When value[3].i32 is 0,
1973      *  the unit of the X-axis translation distance is vp; when value[3].i32 is 1, the unit of the X-axis translation
1974      *  distance is percentage;\n
1975      * .value[4].i32: Whether the unit of the Y-axis translation distance is in percentage. When value[4].i32 is 0,
1976      *  the unit of the Y-axis translation distance is vp; when value[4].i32 is 1, the unit of the Y-axis translation
1977      *  distance is percentage;\n
1978      *
1979      * @since 20
1980      */
1981     NODE_TRANSLATE_WITH_PERCENT = 103,
1982 
1983     /**
1984      * @brief Sets component rotation with multi-axis angle control. This attribute can be set, reset,
1985      * and obtained as required through APIs.
1986      *
1987      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
1988      * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>. \n
1989      * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
1990      * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
1991      * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
1992      * \n
1993      * Format of the return value {@link ArkUI_AttributeItem}:\n
1994      * .value[0].f32: x-axis rotation angle. The default value is <b>0</b>.
1995      * .value[1].f32: y-axis rotation angle. The default value is <b>0</b>. \n
1996      * .value[2].f32: z-axis rotation angle. The default value is <b>0</b>. \n
1997      * .value[3].f32: perspective distance from the viewpoint to the z=0 plane, in px. The default value is <b>0</b>. \n
1998      *
1999      * @since 20
2000      */
2001     NODE_ROTATE_ANGLE = 104,
2002 
2003     /**
2004      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2005      *
2006      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2007      * .string: text content.\n
2008      * \n
2009      * Format of the return value {@link ArkUI_AttributeItem}:\n
2010      * .string: text content.\n
2011      *
2012      */
2013     NODE_TEXT_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
2014     /**
2015      * @brief Defines the font color attribute, which can be set, reset, and obtained as required through APIs.
2016      *
2017      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2018      * .value[0].u32: font color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2019      * \n
2020      * Format of the return value {@link ArkUI_AttributeItem}:\n
2021       * .value[0].u32: font color value, in 0xARGB format.\n
2022      *
2023      */
2024     NODE_FONT_COLOR,
2025     /**
2026      * @brief Defines the font size attribute, which can be set, reset, and obtained as required through APIs.
2027      *
2028      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2029      * .value[0].f32: font size, in fp.\n
2030      * \n
2031      * Format of the return value {@link ArkUI_AttributeItem}:\n
2032      * .value[0].f32: font size, in fp.\n
2033      *
2034      */
2035     NODE_FONT_SIZE,
2036     /**
2037      * @brief Defines the font style attribute, which can be set, reset, and obtained as required through APIs.
2038      *
2039      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2040      * .value[0].i32: font style {@link ArkUI_FontStyle}. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
2041      * \n
2042      * Format of the return value {@link ArkUI_AttributeItem}:\n
2043      * .value[0].i32: font style {@link ArkUI_FontStyle}.\n
2044      *
2045      */
2046     NODE_FONT_STYLE,
2047     /**
2048      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2049      *
2050      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2051      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2052      * \n
2053      * Format of the return value {@link ArkUI_AttributeItem}:\n
2054      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2055      *
2056      */
2057     NODE_FONT_WEIGHT,
2058     /**
2059      * @brief Defines the text line height attribute, which can be set, reset, and obtained as required through APIs.
2060      *
2061      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2062      * .value[0].f32: line height, in fp.\n
2063      * \n
2064      * Format of the return value {@link ArkUI_AttributeItem}:\n
2065      * .value[0].f32: line height, in fp.\n
2066      *
2067      */
2068     NODE_TEXT_LINE_HEIGHT,
2069     /**
2070      * @brief Defines the text decoration style and color.
2071      * This attribute can be set, reset, and obtained as required through APIs.
2072      *
2073      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2074      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.
2075      * The default value is <b>ARKUI_TEXT_DECORATION_TYPE_NONE</b>.\n
2076      * .value[1]?.u32: text decoration color, in 0xARGB format. For example, 0xFFFF0000 indicates red. Optional.\n
2077      * .value[2]?.i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2078      * \n
2079      * Format of the return value {@link ArkUI_AttributeItem}:\n
2080      * .value[0].i32: text decoration type {@link ArkUI_TextDecorationType}.\n
2081      * .value[1].u32: text decoration color, in 0xARGB format. \n
2082      * .value[2].i32: text decoration style {@link ArkUI_TextDecorationStyle}. \n
2083      *
2084      */
2085     NODE_TEXT_DECORATION,
2086     /**
2087      * @brief Defines the text case attribute, which can be set, reset, and obtained as required through APIs.
2088      *
2089      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2090      * .value[0].i32: text case.\n
2091      * \n
2092      * Format of the return value {@link ArkUI_AttributeItem}:\n
2093      * .value[0].i32: text case.\n
2094      *
2095      */
2096     NODE_TEXT_CASE,
2097     /**
2098      * @brief Defines the letter spacing attribute, which can be set, reset, and obtained as required through APIs.
2099      *
2100      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2101      * .value[0].f32: letter spacing, in fp.\n
2102      * \n
2103      * Format of the return value {@link ArkUI_AttributeItem}:\n
2104      * .value[0].f32: letter spacing, in fp.\n
2105      *
2106      */
2107     NODE_TEXT_LETTER_SPACING,
2108     /**
2109      * @brief Sets the maximum number of lines in the text.
2110      * This attribute can be set, reset, and obtained as required through APIs.
2111      *
2112      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2113      * .value[0].i32: maximum number of lines in the text.\n
2114      * \n
2115      * Format of the return value {@link ArkUI_AttributeItem}:\n
2116      * .value[0].i32: maximum number of lines in the text.\n
2117      *
2118      */
2119     NODE_TEXT_MAX_LINES,
2120     /**
2121      * @brief Horizontal alignment mode of the text.
2122      * This attribute can be set, reset, and obtained as required through APIs.
2123      *
2124      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2125      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2126      * \n
2127      * Format of the return value {@link ArkUI_AttributeItem}:\n
2128      * .value[0].i32: horizontal alignment mode of the text. The value is an enum of {@link ArkUI_TextAlignment}. \n
2129      *
2130      */
2131     NODE_TEXT_ALIGN,
2132     /**
2133      * @brief Defines the text overflow attribute, which can be set, reset, and obtained as required through APIs.
2134      *
2135      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2136      * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
2137      * \n
2138      * Format of the return value {@link ArkUI_AttributeItem}:\n
2139      * .value[0].i32: display mode when the text is too long. {@ArkUI_TextOverflow}\n
2140      *
2141      */
2142     NODE_TEXT_OVERFLOW,
2143     /**
2144      * @brief Defines the font family attribute, which can be set, reset, and obtained as required through APIs.
2145      *
2146      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2147      * .string: fonts, separated by commas (,).
2148      * \n
2149      * Format of the return value {@link ArkUI_AttributeItem}:\n
2150      * .string: fonts, separated by commas (,).
2151      *
2152      */
2153     NODE_FONT_FAMILY,
2154     /**
2155      * @brief Defines the copy option attribute, which can be set, reset, and obtained as required through APIs.
2156      *
2157      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2158      * .value[0].i32: copy option {@link ArkUI_CopyOptions}. The default value is <b>ARKUI_COPY_OPTIONS_NONE</b>.\n
2159      * \n
2160      * Format of the return value {@link ArkUI_AttributeItem}:\n
2161      * .value[0].i32: copy option {@link ArkUI_CopyOptions. \n
2162      *
2163      */
2164     NODE_TEXT_COPY_OPTION,
2165     /**
2166      * @brief Defines the text baseline offset attribute
2167      * This attribute can be set, reset, and obtained as required through APIs.
2168      *
2169      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2170      * .value[0].f32: baseline offset, in fp.\n
2171      * \n
2172      * Format of the return value {@link ArkUI_AttributeItem}:\n
2173      * .value[0].f32: baseline offset, in fp. \n
2174      *
2175      */
2176     NODE_TEXT_BASELINE_OFFSET,
2177     /**
2178      * @brief Defines the text shadow attribute, which can be set, reset, and obtained as required through APIs.
2179      *
2180      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2181      * .value[0].f32: blur radius of the shadow, in vp.\n
2182      * .value[1].i32: shadow type {@link ArkUI_ShadowType}. The default value is <b>ARKUI_SHADOW_TYPE_COLOR</b>.\n
2183      * .value[2].u32: shadow color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2184      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2185      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2186      * \n
2187      * Format of the return value {@link ArkUI_AttributeItem}:\n
2188      * .value[0].f32: blur radius of the shadow, in vp.\n
2189      * .value[1].i32: shadow type {@link ArkUI_ShadowType}.\n
2190      * .value[2].u32: shadow color, in 0xARGB format.\n
2191      * .value[3].f32: offset of the shadow along the x-axis, in vp.\n
2192      * .value[4].f32: offset of the shadow along the y-axis, in vp.\n
2193      *
2194      */
2195     NODE_TEXT_TEXT_SHADOW,
2196     /**
2197      * @brief Defines the minimum font size attribute, which can be set, reset, and obtained as required through APIs.
2198      *
2199      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2200      * .value[0].f32: minimum font size, in fp.
2201      * \n
2202      * Format of the return value {@link ArkUI_AttributeItem}:\n
2203      * .value[0].f32: minimum font size, in fp.
2204      *
2205      */
2206     NODE_TEXT_MIN_FONT_SIZE,
2207 
2208     /**
2209      * @brief Defines the maximum font size attribute, which can be set, reset, and obtained as required through APIs.
2210      *
2211      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2212      * .value[0].f32: maximum font size, in fp.
2213      * \n
2214      * Format of the return value {@link ArkUI_AttributeItem}:\n
2215      * .value[0].f32: maximum font size, in fp.
2216      *
2217      */
2218     NODE_TEXT_MAX_FONT_SIZE,
2219 
2220     /**
2221      * @brief Defines the text style attribute, which can be set, reset, and obtained as required through APIs.
2222      *
2223      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2224      * .string?: font family. Optional. Use commas (,) to separate multiple fonts. \n
2225      * .value[0].f32: font size, in fp. \n
2226      * .value[1]?.i32: font weight. Optional. The parameter type is {@link ArkUI_FontWeight}.
2227      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2228      * .value[2]?.i32: font style. Optional. The parameter type is {@link ArkUI_FontStyle}.
2229      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2230      * \n
2231      * Format of the return value {@link ArkUI_AttributeItem}:\n
2232      * .string: font family. Use commas (,) to separate multiple fonts. \n
2233      * .value[0].f32: font size, in fp. \n
2234      * .value[1].i32: font weight. The parameter type is {@link ArkUI_FontWeight}.
2235      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2236      * .value[2].i32: font style. The parameter type is {@link ArkUI_FontStyle}.
2237      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.
2238      *
2239      */
2240     NODE_TEXT_FONT,
2241 
2242     /**
2243      * @brief Defines how the adaptive height is determined for the text.
2244      * This attribute can be set, reset, and obtained as required through APIs.
2245      *
2246      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2247      * .value[0].i32: how the adaptive height is determined for the text.
2248      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}.
2249      * \n
2250      * Format of the return value {@link ArkUI_AttributeItem}:\n
2251      * .value[0].i32: how the adaptive height is determined for the text.
2252      * The parameter type is {@link ArkUI_TextHeightAdaptivePolicy}
2253      *
2254      */
2255     NODE_TEXT_HEIGHT_ADAPTIVE_POLICY,
2256     /**
2257      * @brief Defines the indentation of the first line.
2258      * This attribute can be set, reset, and obtained as required through APIs.
2259      *
2260      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2261      * .value[0].f32: indentation of the first line. \n
2262      * \n
2263      * Format of the return value {@link ArkUI_AttributeItem}:\n
2264      * .value[0].f32: indentation of the first line. \n
2265      *
2266      */
2267     NODE_TEXT_INDENT,
2268     /**
2269      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
2270      *
2271      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2272      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2273      * \n
2274      * Format of the return value {@link ArkUI_AttributeItem}:\n
2275      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
2276      *
2277      */
2278     NODE_TEXT_WORD_BREAK,
2279     /**
2280      * @brief Defines the ellipsis position. This attribute can be set, reset, and obtained as required through APIs.
2281      *
2282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2283      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2284      * \n
2285      * Format of the return value {@link ArkUI_AttributeItem}:\n
2286      * .value[0].i32: The parameter type is {@link ArkUI_EllipsisMode}. \n
2287      *
2288      */
2289     NODE_TEXT_ELLIPSIS_MODE,
2290     /**
2291      * @brief Defines the text line spacing attribute, which can be set, reset, and obtained as required through APIs.
2292      *
2293      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2294      * .value[0].f32: line spacing, in fp.\n
2295      * \n
2296      * Format of the return value {@link ArkUI_AttributeItem}:\n
2297      * .value[0].f32: line spacing, in fp.\n
2298      *
2299      */
2300     NODE_TEXT_LINE_SPACING,
2301     /**
2302      * @brief  Set the text feature effect and the NODE_FONT_FEATURE attribute,
2303      * NODE_FONT_FEATURE is the advanced typesetting capability of OpenType
2304      * Features such as ligatures and equal-width digits are generally used in customized fonts. \n
2305      * The capabilities need to be supported by the fonts, \n
2306      * Interfaces for setting, resetting, and obtaining attributes are supported. \n
2307      * Attribute setting method parameter {@Link ArkUI_AttributeItem} format: \n
2308      * .string: complies with the text feature format. The format is normal | \n
2309      * is in the format of [ | on | off],\n.
2310      * There can be multiple values separated by commas (,). \n
2311      * For example, the input format of a number with the same width is ss01 on. \n
2312      * \n
2313      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
2314      * .string indicates the content of the text feature. Multiple text features are separated by commas (,). \n
2315      */
2316     NODE_FONT_FEATURE,
2317     /**
2318      * @brief Setting Enable Text Recognition.
2319      *
2320      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2321      * .value[0].i32:Enable text recognition, default value false.\n
2322      * \n
2323      * Format of the return value {@link ArkUI_AttributeItem}:\n
2324      * .value[0].i32:Enable Text Recognition\n
2325      *
2326      */
2327     NODE_TEXT_ENABLE_DATA_DETECTOR,
2328     /**
2329      * @brief Set the text recognition configuration.
2330      *
2331      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2332      * .value[0...].i32: Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
2333      * \n
2334      * Format of the return value {@link ArkUI_AttributeItem}:\n
2335      * .value[0...].i32:Array of entity types, parameter types{@link ArkUI_TextDataDetectorType}。\n
2336      *
2337      */
2338     NODE_TEXT_ENABLE_DATA_DETECTOR_CONFIG,
2339     /**
2340      * @brief Defines the background color of the selected text.
2341      * This attribute can be set, reset, and obtained as required through APIs.
2342      *
2343      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2344      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2345      * \n
2346      * Format of the return value {@link ArkUI_AttributeItem}:\n
2347      * .value[0].u32: color value, in 0xARGB format. \n
2348      *
2349      */
2350     NODE_TEXT_SELECTED_BACKGROUND_COLOR,
2351 
2352     /**
2353      * @brief The text component uses a formatted string object to set text content properties,
2354      * and supports property setting, property reset, and property acquisition interfaces.
2355      *
2356      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2357      * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2358      * \n
2359      * Format of the return value {@link ArkUI_AttributeItem}:\n
2360      * .object indicates ArkUI_StyledString formatted string data. The parameter type is {@link ArkUI_StyledString}. \n
2361      */
2362     NODE_TEXT_CONTENT_WITH_STYLED_STRING,
2363 
2364     /**
2365      * @brief Sets whether to center text vertically in the text component.
2366      *
2367      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2368      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
2369      * \n
2370      * Format of the return value {@link ArkUI_AttributeItem}:\n
2371      * .value[0].i32: whether to center text vertically. \n
2372      *
2373      */
2374     NODE_TEXT_HALF_LEADING = 1029,
2375 
2376     /**
2377      * @brief Defines the font weight attribute, which can be set, reset, and obtained as required through APIs.
2378      * The font weight specified by this API is not affected by any changes in the system font weight settings.
2379      *
2380      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2381      * .value[0].i32: font weight {@link ArkUI_FontWeight}. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
2382      * \n
2383      * Format of the return value {@link ArkUI_AttributeItem}:\n
2384      * .value[0].i32: font weight {@link ArkUI_FontWeight}.\n
2385      *
2386      * @since 15
2387      */
2388     NODE_IMMUTABLE_FONT_WEIGHT = 1030,
2389 
2390     /**
2391      * @brief Sets whether to optimize the trailing spaces at the end of each line during text layout.
2392      * This attribute can be set, reset, and obtained as required through APIs.
2393      *
2394      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2395      * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout.
2396      *               The default value is <b>false</b>. \n
2397      * \n
2398      * Format of the return value {@link ArkUI_AttributeItem}:\n
2399      * value[0].i32: whether to optimize trailing spaces at the end of each line during text layout. \n
2400      *
2401      * @since 20
2402      */
2403     NODE_TEXT_OPTIMIZE_TRAILING_SPACE = 1032,
2404 
2405     /**
2406      * @brief Defines the text line count attribute, which can only be obtained as required through APIs.
2407      *
2408      * Format of the return value {@link ArkUI_AttributeItem}:\n
2409      * .value[0].i32: line count of the node.
2410      *
2411      * @since 20
2412      */
2413     NODE_TEXT_LINE_COUNT = 1031,
2414 
2415     /**
2416      * @brief Sets a linear gradient effect for text.
2417      * This attribute can be set, reset, and obtained as required through APIs.
2418      *
2419      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2420      * .value[0].f32: start angle of the linear gradient.
2421      * The setting takes effect only when <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>.
2422      * A positive value indicates a clockwise rotation from the origin, (0, 0). The default value is <b>180</b>. \n
2423      * .value[1].i32: direction of the linear gradient. When a direction other than
2424      * <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b> is set, the <b>angle</b> property is ignored.
2425      * The parameter type is {@link ArkUI_LinearGradientDirection}. \n
2426      * .value[2].i32: whether the colors are repeated. The default value is <b>false</b>.
2427      * .object: array of color stops, each of which consists of a color and its stop position.
2428      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
2429      * colors: colors of the color stops. \n
2430      * stops: stop positions of the color stops. \n
2431      * size: number of colors. \n
2432      * \n
2433      * Format of the return value {@link ArkUI_AttributeItem}:\n
2434      * .value[0].f32: start angle of the linear gradient.
2435      * When <b>direction</b> is set to <b>ARKUI_LINEAR_GRADIENT_DIRECTION_CUSTOM</b>, <b>angle</b> at the set value;
2436      * otherwise, it is at default value. \n
2437      * .value[1].i32: direction of the linear gradient. \n
2438      * .value[2].i32: whether the colors are repeated. \n
2439      * .object: array of color stops, each of which consists of a color and its stop position.
2440      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n \n
2441      * colors: colors of the color stops. \n
2442      * stops: stop positions of the color stops. \n
2443      * size: number of colors. \n
2444      *
2445      * @since 20
2446      */
2447     NODE_TEXT_LINEAR_GRADIENT = 1033,
2448 
2449     /**
2450      * @brief Sets a radial gradient effect for text.
2451      * This attribute can be set, reset, and obtained as required through APIs.
2452      *
2453      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2454      * .value[0]?.f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2455      * .value[1]?.f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2456      * .value[2]?.f32: radius of the radial gradient. The default value is <b>0</b>. \n
2457      * .value[3]?.i32: whether the colors are repeated.
2458      * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.\n \n
2459      * .object: array of color stops, each of which consists of a color and its stop position.
2460      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
2461      * colors: colors of the color stops. \n
2462      * stops: stop positions of the color stops. \n
2463      * size: number of colors. \n
2464      * \n
2465      * Format of the return value {@link ArkUI_AttributeItem}:\n
2466      * .value[0].f32: X-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2467      * .value[1].f32: Y-coordinate of the radial gradient center relative to the upper left corner of the text. \n
2468      * .value[2].f32: radius of the radial gradient. The default value is <b>0</b>. \n
2469      * .value[3].i32: whether the colors are repeated.
2470      * The value <b>1</b> means that the colors are repeated, and <b>0</b> means the opposite.  \n
2471      * .object: array of color stops, each of which consists of a color and its stop position.
2472      * The parameter type is {@link ArkUI_ColorStop}. Invalid colors are automatically skipped. \n
2473      * colors: colors of the color stops. \n
2474      * stops: stop positions of the color stops. \n
2475      * size: number of colors. \n
2476      *
2477      * @since 20
2478      */
2479     NODE_TEXT_RADIAL_GRADIENT = 1034,
2480 
2481     /**
2482      * @brief Sets the vertical alignment of the text content.
2483      * This attribute can be set, reset, and obtained as required through APIs.
2484      *
2485      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2486      * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUI_TextVerticalAlignment}
2487      * enum. The default value is <b>ARKUI_TEXT_VERTICAL_ALIGNMENT_BASELINE</b>. \n
2488      * \n
2489      * Format of the return value {@link ArkUI_AttributeItem}:\n
2490      * .value[0].i32: vertical alignment of the text content, specified using the {@link ArkUI_TextVerticalAlignment}
2491      * enum. \n
2492      *
2493      * @since 20
2494      */
2495     NODE_TEXT_VERTICAL_ALIGN = 1035,
2496 
2497     /**
2498      * @brief Defines the text content attribute, which can be set, reset, and obtained as required through APIs.
2499      *
2500      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2501      * .string: content of the text span. \n
2502      * \n
2503      * Format of the return value {@link ArkUI_AttributeItem}:\n
2504      * .string: content of the text span. \n
2505      *
2506      */
2507     NODE_SPAN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SPAN,
2508     /**
2509      * @brief Defines the text background style.
2510      * This attribute can be set, reset, and obtained as required through APIs.
2511      *
2512      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2513      * .value[0].u32: color of the text background, in 0xARGB format, for example, <b>0xFFFF0000</b> indicating red. \n
2514      * The second parameter indicates the rounded corners of the text background. Two setting modes are available: \n
2515      * 1: .value[1].f32: radius of the four corners, in vp. \n
2516      * 2: .value[1].f32: radius of the upper left corner, in vp. \n
2517      * .value[2].f32: radius of the upper right corner, in vp. \n
2518      * .value[3].f32: radius of the lower left corner, in vp. \n
2519      * .value[4].f32: radius of the lower right corner, in vp. \n
2520      * \n
2521      * Format of the return value {@link ArkUI_AttributeItem}:\n
2522      * .value[0].u32: color of the text background, in 0xARGB format. \n
2523      * .value[1].f32: radius of the upper left corner, in vp. \n
2524      * .value[2].f32: radius of the upper right corner, in vp. \n
2525      * .value[3].f32: radius of the lower left corner, in vp. \n
2526      * .value[4].f32: radius of the lower right corner, in vp. \n
2527      *
2528      */
2529     NODE_SPAN_TEXT_BACKGROUND_STYLE,
2530     /**
2531      * @brief Defines the text baseline offset attribute
2532      * This attribute can be set, reset, and obtained as required through APIs.
2533      *
2534      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2535      * .value[0].f32: baseline offset, in fp.\n
2536      * \n
2537      * Format of the return value {@link ArkUI_AttributeItem}:\n
2538      * .value[0].f32: baseline offset, in fp. \n
2539      *
2540      */
2541     NODE_SPAN_BASELINE_OFFSET,
2542     /**
2543      * @brief Defines the image source of the image span.
2544      * This attribute can be set, reset, and obtained as required through APIs.
2545      *
2546      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2547      * .string: image address of the image span.\n
2548      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2549      * \n
2550      * Format of the return value {@link ArkUI_AttributeItem}:\n
2551      * .string: image address of the image span.\n
2552      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2553      *
2554      */
2555     NODE_IMAGE_SPAN_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_SPAN,
2556     /**
2557      * @brief Defines the alignment mode of the image with the text.
2558      * This attribute can be set, reset, and obtained as required through APIs.
2559      *
2560      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2561      * .value[0].i32: alignment mode of the image with the text.
2562      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2563      * \n
2564      * Format of the return value {@link ArkUI_AttributeItem}:\n
2565      * .value[0].i32: alignment mode of the image with the text.
2566      * The value is an enum of {@link ArkUI_ImageSpanAlignment}. \n
2567      *
2568      */
2569     NODE_IMAGE_SPAN_VERTICAL_ALIGNMENT,
2570     /**
2571      * @brief Defines the placeholder image source.
2572      * This attribute can be set, reset, and obtained as required through APIs.
2573      *
2574      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2575      * .string: placeholder image source. \n
2576      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2577      * \n
2578      * Format of the return value {@link ArkUI_AttributeItem}:\n
2579      * .string: placeholder image source. \n
2580      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2581      *
2582      */
2583     NODE_IMAGE_SPAN_ALT,
2584     /**
2585      * @brief Defines the baseline offset attribute of the <b>ImageSpan</b> component.
2586      * This attribute can be set, reset, and obtained as required through APIs.
2587      * A positive value means an upward offset, while a negative value means a downward offset.
2588      * The default value is <b>0</b>, and the unit is fp. \n
2589      *
2590      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2591      * .value[0].f32: baseline offset, in fp.\n
2592      * \n
2593      * Format of the return value {@link ArkUI_AttributeItem}:\n
2594      * .value[0].f32: baseline offset, in fp. \n
2595      *
2596      * @since 13
2597      */
2598     NODE_IMAGE_SPAN_BASELINE_OFFSET = 3003,
2599     /**
2600      * @brief Defines the image source of the <Image> component.
2601      * This attribute can be set, reset, and obtained as required through APIs.
2602      *
2603      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2604      * .string: image source.\n
2605      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2606      * \n
2607      * Format of the return value {@link ArkUI_AttributeItem}:\n
2608      * .string: image source.\n
2609      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2610      *
2611      */
2612     NODE_IMAGE_SRC = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
2613     /**
2614      * @brief Defines how the image is resized to fit its container.
2615      * This attribute can be set, reset, and obtained as required through APIs.
2616      *
2617      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2618      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2619      * \n
2620      * Format of the return value {@link ArkUI_AttributeItem}:\n
2621      * .value[0].i32: how the image is resized to fit its container. The value is an enum of {@link ArkUI_ObjectFit}. \n
2622      *
2623      */
2624     NODE_IMAGE_OBJECT_FIT,
2625     /**
2626      * @brief Defines the interpolation effect of the image.
2627      * This attribute can be set, reset, and obtained as required through APIs.
2628      *
2629      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2630      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2631      * \n
2632      * Format of the return value {@link ArkUI_AttributeItem}:\n
2633      * .value[0].i32: interpolation effect of the image. The value is an enum of {@link ArkUI_ImageInterpolation}. \n
2634      *
2635      */
2636     NODE_IMAGE_INTERPOLATION,
2637     /**
2638      * @brief Defines how the image is repeated.
2639      * This attribute can be set, reset, and obtained as required through APIs.
2640      *
2641      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2642      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2643      * \n
2644      * Format of the return value {@link ArkUI_AttributeItem}:\n
2645      * .value[0].i32: how the image is repeated. The value is an enum of {@link ArkUI_ImageRepeat}. \n
2646      *
2647      */
2648     NODE_IMAGE_OBJECT_REPEAT,
2649     /**
2650      * @brief Defines the color filter of the image.
2651      * This attribute can be set, reset, and obtained as required through APIs.
2652      *
2653      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2654      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2655      * .size: 5 x 4 filter array size. \n
2656      * .object: the pointer to OH_Drawing_ColorFilter. Either .value or .object is set. \n
2657      * \n
2658      * Format of the return value {@link ArkUI_AttributeItem}:\n
2659      * .value[0].f32 to .value[19].f32: filter matrix array. \n
2660      * .size: 5 x 4 filter array size. \n
2661      * .object: the pointer to OH_Drawing_ColorFilter. \n
2662      *
2663      */
2664     NODE_IMAGE_COLOR_FILTER,
2665     /**
2666      * @brief Defines the auto resize attribute, which can be set, reset, and obtained as required through APIs.
2667      *
2668      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2669      * .value[0].i32 : whether to resize the image source. \n
2670      * \n
2671      * Format of the return value {@link ArkUI_AttributeItem}:\n
2672      * .value[0].i32 : whether to resize the image source. \n
2673      *
2674      */
2675     NODE_IMAGE_AUTO_RESIZE,
2676     /**
2677      * @brief Defines the placeholder image source.
2678      * This attribute can be set, reset, and obtained as required through APIs.
2679      *
2680      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2681      * .string: placeholder image source. \n
2682      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}. Either .string or .object must be set.\n
2683      * \n
2684      * Format of the return value {@link ArkUI_AttributeItem}:\n
2685      * .string: placeholder image source. \n
2686      * .object: The parameter type is {@link ArkUI_DrawableDescriptor}.\n
2687      *
2688      */
2689     NODE_IMAGE_ALT,
2690     /**
2691      * @brief Defines whether the image is draggable.
2692      * This attribute can be set, reset, and obtained as required through APIs.
2693      *
2694      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2695      * .value[0].i32: whether the image is draggable. The value <b>true</b> means that the image is draggable. \n
2696      * \n
2697      * Format of the return value {@link ArkUI_AttributeItem}:\n
2698      * .value[0].i32: whether the image is draggable. \n
2699      *
2700      */
2701     NODE_IMAGE_DRAGGABLE,
2702     /**
2703      * @brief Defines the image rendering mode. This attribute can be set, reset, and obtained as required through APIs.
2704      *
2705      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2706      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2707      * \n
2708      * Format of the return value {@link ArkUI_AttributeItem}:\n
2709      * .value[0].i32: The parameter type is {@link ArkUI_ImageRenderMode}. \n
2710      *
2711      */
2712     NODE_IMAGE_RENDER_MODE,
2713     /**
2714      * @brief Defines whether the image display size follows the image source size.
2715      * This attribute can be set, reset, and obtained as required through APIs.
2716      *
2717      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2718      * .value[0].i32: wheter to follow, true means to follow.\n
2719      * \n
2720      * Format of the return value {@link ArkUI_AttributeItem}:\n
2721      * .value[0].i32: wheter to follow, true means to follow.\n
2722      *
2723      */
2724     NODE_IMAGE_FIT_ORIGINAL_SIZE,
2725     /**
2726      * @brief Defines the fill color of the swiper.
2727      * This attribute can be set, reset, and obtained as required through APIs.
2728      *
2729      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2730      * .value[0].u32: fill color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2731      * \n
2732      * Format of the return value {@link ArkUI_AttributeItem}:\n
2733      * .value[0].u32: fill color, in 0xARGB format. \n
2734      *
2735      */
2736     NODE_IMAGE_FILL_COLOR,
2737     /**
2738      * @brief Sets the resizable image options.
2739      *
2740      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2741      * .value[0].f32: width of the left edge. The unit is vp. \n
2742      * .value[1].f32: width of the top edge. The unit is vp. \n
2743      * .value[2].f32: width of the right edge. The unit is vp. \n
2744      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2745      * \n
2746      * Format of the return value {@link ArkUI_AttributeItem}:\n
2747      * .value[0].f32: width of the left edge. The unit is vp. \n
2748      * .value[1].f32: width of the top edge. The unit is vp. \n
2749      * .value[2].f32: width of the right edge. The unit is vp. \n
2750      * .value[3].f32: width of the bottom edge. The unit is vp. \n
2751      *
2752      */
2753     NODE_IMAGE_RESIZABLE,
2754     /**
2755      * @brief Defines the synchronous image loading attribute.
2756      * This attribute can be set, reset, and obtained as required through APIs.
2757      *
2758      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2759      * .value[0].i32: whether to load the image synchronously. \n
2760      * \n
2761      * Format of the return value {@link ArkUI_AttributeItem}:\n
2762      * .value[0].i32: whether to load the image synchronously. \n
2763      *
2764      * @since 20
2765      */
2766     NODE_IMAGE_SYNC_LOAD = 4012,
2767     /**
2768      * @brief Defines the color of the component when it is selected.
2769      * This attribute can be set, reset, and obtained as required through APIs.
2770      *
2771      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2772      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2773      * \n
2774      * Format of the return value {@link ArkUI_AttributeItem}:\n
2775      * .value[0].u32: background color, in 0xARGB format. \n
2776      *
2777      */
2778     NODE_TOGGLE_SELECTED_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
2779     /**
2780      * @brief Defines the color of the circular slider for the component of the switch type.
2781      * This attribute can be set, reset, and obtained as required through APIs.
2782      *
2783      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2784      * .value[0].u32: color of the circular slider, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2785      * \n
2786      * Format of the return value {@link ArkUI_AttributeItem}:\n
2787      * .value[0].u32: color of the circular slider, in 0xARGB format. \n
2788      *
2789      */
2790     NODE_TOGGLE_SWITCH_POINT_COLOR,
2791     /**
2792      * @brief Defines the toggle switch value. This attribute can be set, reset, and obtained as required through APIs.
2793      *
2794      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2795      * .value[0].i32: whether to enable the toggle. The value <b>true</b> means to enable the toggle. \n
2796      * \n
2797      * Format of the return value {@link ArkUI_AttributeItem}:\n
2798      * .value[0].i32: whether to enable the toggle. \n
2799      *
2800      */
2801     NODE_TOGGLE_VALUE,
2802 
2803     /**
2804      * @brief Defines the color of the component when it is deselected.
2805      * This attribute can be set, reset, and obtained as required through APIs.
2806      *
2807      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2808      *.value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2809      * \n
2810      * Format of the return value {@link ArkUI_AttributeItem}:\n
2811      * .value[0].u32: background color, in 0xARGB format. \n
2812      *
2813      */
2814     NODE_TOGGLE_UNSELECTED_COLOR,
2815 
2816     /**
2817      * @brief Defines the foreground color of the loading progress bar.
2818      * This attribute can be set, reset, and obtained as required through APIs.
2819      *
2820      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2821      * .value[0].u32: foreground color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2822      * \n
2823      * Format of the return value {@link ArkUI_AttributeItem}:\n
2824      * .value[0].u32: foreground color, in 0xARGB format. \n
2825      *
2826      */
2827     NODE_LOADING_PROGRESS_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LOADING_PROGRESS,
2828     /**
2829      * @brief Defines whether to show the loading animation for the <LoadingProgress> component.
2830      * This attribute can be set, reset, and obtained as required through APIs.
2831      *
2832      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2833      * .value[0].i32: whether to show the loading animation.
2834      * The value <b>true</b> means to show the loading animation, and <b>false</b> means the opposite.\n
2835      * \n
2836      * Format of the return value {@link ArkUI_AttributeItem}:\n
2837      * .value[0].i32: The value <b>1</b> means to show the loading animation, and <b>0</b> means the opposite. \n
2838      *
2839      */
2840     NODE_LOADING_PROGRESS_ENABLE_LOADING,
2841 
2842     /**
2843      * @brief Defines the default placeholder text of the single-line text box.
2844      * This attribute can be set, reset, and obtained as required through APIs.
2845      *
2846      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2847      * .string: default placeholder text. \n
2848      * \n
2849      * Format of the return value {@link ArkUI_AttributeItem}:\n
2850      * .string: default placeholder text. \n
2851      *
2852      */
2853     NODE_TEXT_INPUT_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
2854     /**
2855      * @brief Defines the default text content of the single-line text box.
2856      * This attribute can be set, reset, and obtained as required through APIs.
2857      *
2858      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2859      * .string: default text content. \n
2860      * \n
2861      * Format of the return value {@link ArkUI_AttributeItem}:\n
2862      * .string: default text content. \n
2863      *
2864      */
2865     NODE_TEXT_INPUT_TEXT,
2866     /**
2867      * @brief Defines the caret color attribute.
2868      * This attribute can be set, reset, and obtained as required through APIs.
2869      *
2870      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2871      * .value[0].u32: caret color, in 0xARGB format. For example, 0xFFFF0000 indicates red.\n
2872      * \n
2873      * Format of the return value {@link ArkUI_AttributeItem}:\n
2874      * .value[0].u32: caret color, in 0xARGB format. \n
2875      *
2876      */
2877     NODE_TEXT_INPUT_CARET_COLOR,
2878     /**
2879      * @brief Defines the caret style attribute.
2880      * This attribute can be set, reset, and obtained as required through APIs.
2881      *
2882      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2883      * .value[0].f32: caret width, in vp.\n
2884      * \n
2885      * Format of the return value {@link ArkUI_AttributeItem}:\n
2886      * .value[0].f32: caret width, in vp. \n
2887      *
2888      */
2889     NODE_TEXT_INPUT_CARET_STYLE,
2890     /**
2891      * @brief Defines the underline attribute of the single-line text box.
2892      * This attribute can be set, reset, and obtained as required through APIs.
2893      *
2894      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2895      * .value[0].i32: whether to show an underline.
2896      * The value <b>true</b> means to show an underline, and <b>false</b> means the opposite.\n
2897      * \n
2898      * Format of the return value {@link ArkUI_AttributeItem}:\n
2899      * .value[0].i32: The value <b>1</b> means to show an underline, and <b>0</b> means the opposite. \n
2900      *
2901      */
2902     NODE_TEXT_INPUT_SHOW_UNDERLINE,
2903     /**
2904      * @brief Defines the maximum number of characters in the text input.
2905      * This attribute can be set, reset, and obtained as required through APIs.
2906      *
2907      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2908      * .value[0].i32: maximum number of characters in the text input, without a unit. \n
2909      * \n
2910      * Format of the return value {@link ArkUI_AttributeItem}:\n
2911      * .value[0].i32: maximum number of characters in the text input. \n
2912      *
2913      */
2914     NODE_TEXT_INPUT_MAX_LENGTH,
2915     /**
2916      * @brief Defines the type of the Enter key.
2917      * This attribute can be set, reset, and obtained as required through APIs.
2918      *
2919      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2920      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
2921      * \n
2922      * Format of the return value {@link ArkUI_AttributeItem}:\n
2923      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
2924      *
2925      */
2926     NODE_TEXT_INPUT_ENTER_KEY_TYPE,
2927     /**
2928      * @brief Defines the placeholder text color.
2929      * This attribute can be set, reset, and obtained as required through APIs.
2930      *
2931      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2932      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2933      * \n
2934      * Format of the return value {@link ArkUI_AttributeItem}:\n
2935      * .value[0].u32: color value, in 0xARGB format. \n
2936      *
2937      */
2938     NODE_TEXT_INPUT_PLACEHOLDER_COLOR,
2939     /**
2940      * @brief Defines the placeholder text font.
2941      * This attribute can be set, reset, and obtained as required through APIs.
2942      *
2943      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2944      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
2945      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional.
2946      * The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>. \n
2947      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional.
2948      * The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>. \n
2949      * ?.string: font family. Multiple font families are separated by commas (,).
2950      * Example: "font weight; font family 1, font family 2". \n
2951      * \n
2952      * Format of the return value {@link ArkUI_AttributeItem}:\n
2953      * .value[0].f32: font size, in fp.\n
2954      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
2955      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
2956      * .string: font family. Multiple font families are separated by commas (,). \n
2957      *
2958      */
2959     NODE_TEXT_INPUT_PLACEHOLDER_FONT,
2960     /**
2961      * @brief Defines whether to enable the input method when the component obtains focus.
2962      * This attribute can be set, reset, and obtained as required through APIs.
2963      *
2964      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2965      * .value[0].i32: whether to enable the input method when the component obtains focus.
2966      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
2967      * \n
2968      * Format of the return value {@link ArkUI_AttributeItem}:\n
2969       * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
2970       * and <b>0</b> means the opposite. \n
2971      *
2972      */
2973     NODE_TEXT_INPUT_ENABLE_KEYBOARD_ON_FOCUS,
2974     /**
2975      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
2976      *
2977      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2978      * .value[0].i32: text box type {@link ArkUI_TextInputType}.
2979      * The default value is <b>ARKUI_TEXTINPUT_TYPE_NORMAL</b>. \n
2980      * \n
2981      * Format of the return value {@link ArkUI_AttributeItem}:\n
2982      * .value[0].i32: text box type {@link ArkUI_TextInputType}. \n
2983      *
2984      */
2985     NODE_TEXT_INPUT_TYPE,
2986     /**
2987      * @brief Defines the background color of the selected text.
2988      * This attribute can be set, reset, and obtained as required through APIs.
2989      *
2990      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
2991      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
2992      * \n
2993      * Format of the return value {@link ArkUI_AttributeItem}:\n
2994      * .value[0].u32: color value, in 0xARGB format. \n
2995      *
2996      */
2997     NODE_TEXT_INPUT_SELECTED_BACKGROUND_COLOR,
2998     /**
2999      * @brief Defines whether to display the password icon at the end of the password text box.
3000      * This attribute can be set, reset, and obtained as required through APIs.
3001      *
3002      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3003      * .value[0].i32: whether to display the password icon at the end of the password text box.
3004      * The value <b>true</b> means to display the password icon, and <b>false</b> means the opposite.\n
3005      * \n
3006      * Format of the return value {@link ArkUI_AttributeItem}:\n
3007      * .value[0].i32: The value <b>1</b> means to display the password icon at the end of the password text box,
3008      * and <b>0</b> means the opposite. \n
3009      *
3010      */
3011     NODE_TEXT_INPUT_SHOW_PASSWORD_ICON,
3012     /**
3013      * @brief Defines the editable state for the single-line text box.
3014      * This attribute can be set as required through APIs.
3015      *
3016      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
3017      * .value[0].i32: whether to remain in the editable state. The value
3018      * <b>true</b> means to remain in the editable state, and <b>false</b> means to exit the editable state. \n
3019      * \n
3020      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3021      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3022      * state, and <b>false</b> means to exit the editable state. \n
3023      *
3024      */
3025     NODE_TEXT_INPUT_EDITING,
3026     /**
3027      * @brief Defines the style of the cancel button on the right of the single-line text box.
3028      * This attribute can be set, reset, and obtained as required through APIs.
3029      *
3030      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
3031      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.
3032      * The default value is <b>ARKUI_CANCELBUTTON_STYLE_INPUT</b>.\n
3033      * .value[1]?.f32: button icon size, in vp.\n
3034      * .value[2]?.u32: button icon color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3035      * ?.string: button icon image source. The value is the local address of the image, for example, /pages/icon.png. \n
3036      * \n
3037      * Format of the return value {@link ArkUI_AttributeItem}:\n
3038      * .value[0].i32: button style {@link ArkUI_CancelButtonStyle}.\n
3039      * .value[1].f32: icon size, in vp.\n
3040      * .value[2].u32: button icon color, in 0xARGB format.\n
3041      * .string: button icon image source. \n
3042      *
3043      */
3044     NODE_TEXT_INPUT_CANCEL_BUTTON,
3045     /**
3046      * @brief Sets the text selection area, which will be highlighted.
3047      * This attribute can be set, reset, and obtained as required through APIs.
3048      *
3049      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3050      * .value[0].i32: start position of the text selection. \n
3051      * .value[1].i32: end position of the text selection. \n
3052      * \n
3053      * Format of the return value {@link ArkUI_AttributeItem}:\n
3054      * .value[0].i32: start position of the text selection. \n
3055      * .value[1].i32: end position of the text selection. \n
3056      *
3057      */
3058     NODE_TEXT_INPUT_TEXT_SELECTION,
3059     /**
3060     * @brief Sets the color of the text underline when it is enabled.
3061     *
3062     * The default underline color configured for the theme is <b>'0x33182431'</b>.
3063     *
3064     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3065     * .value[0].u32: color of the underline applied to the text being typed in.
3066     * The value is in 0xARGB format. \n
3067     * .value[1].u32: color of the underline applied to the text in the normal state.
3068     * The value is in 0xARGB format. \n
3069     * .value[2].u32: color of the underline applied to the text when an error is detected.
3070     * The value is in 0xARGB format. \n
3071     * .value[3].u32: color of the underline applied to the text when it is disabled.
3072     * The value is in 0xARGB format. \n
3073     * \n
3074     * Format of the return value {@link ArkUI_AttributeItem}:\n
3075     * .value[0].u32: color of the underline applied to the text being typed in. The value is in 0xARGB format. \n
3076     * .value[1].u32: color of the underline applied to the text in the normal state. The value is in 0xARGB format. \n
3077     * .value[2].u32: color of the underline applied to the text when an error is detected.
3078     * The value is in 0xARGB format. \n
3079     * .value[3].u32: color of the underline applied to the text when it is disabled. The value is in 0xARGB format. \n
3080     *
3081     */
3082     NODE_TEXT_INPUT_UNDERLINE_COLOR,
3083     /**
3084     * @brief Sets whether to enable autofill.
3085     *
3086     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3087     * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3088     * \n
3089     * Format of the return value {@link ArkUI_AttributeItem}:\n
3090     * .value[0].i32: whether to enable autofill. \n
3091     *
3092     */
3093     NODE_TEXT_INPUT_ENABLE_AUTO_FILL,
3094     /**
3095     * @brief Sets the autofill type.
3096     *
3097     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3098     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3099     * \n
3100     * Format of the return value {@link ArkUI_AttributeItem}:\n
3101     * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3102     *
3103     */
3104     NODE_TEXT_INPUT_CONTENT_TYPE,
3105     /**
3106     * @brief Defines the rules for generating passwords. When autofill is used, these rules are transparently
3107     * transmitted to Password Vault for generating a new password.
3108     *
3109     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3110     * .string: rules for generating passwords. \n
3111     * \n
3112     * Format of the return value {@link ArkUI_AttributeItem}:\n
3113     * .string: rules for generating passwords. \n
3114     *
3115     */
3116     NODE_TEXT_INPUT_PASSWORD_RULES,
3117     /**
3118     * @brief Sets whether to select all text in the initial state. The inline mode is not supported.
3119     *
3120     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3121     * .value[0].i32: whether to select all text in the initial state. The default value is b>false</b>. \n
3122     * \n
3123     * Format of the return value {@link ArkUI_AttributeItem}:\n
3124     * .value[0].i32: whether to select all text in the initial state. \n
3125     *
3126     */
3127     NODE_TEXT_INPUT_SELECT_ALL,
3128     /**
3129     * @brief Sets the regular expression for input filtering.
3130     * Only inputs that comply with the regular expression can be displayed.
3131     * Other inputs are filtered out. The specified regular expression can match single characters,
3132     * but not strings.
3133     *
3134     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3135     * .string: regular expression. \n
3136     * \n
3137     * Format of the return value {@link ArkUI_AttributeItem}:\n
3138     * .string: regular expression. \n
3139     *
3140     */
3141     NODE_TEXT_INPUT_INPUT_FILTER,
3142     /**
3143     * @brief Sets the text box to the default style or inline input style.
3144     *
3145     * For the inline input style, only <b>InputType.Normal</b> is supported.
3146     *
3147     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3148     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
3149     * \n
3150     * Format of the return value {@link ArkUI_AttributeItem}:\n
3151     * .value[0].i32: text input style. The parameter type is {@link ArkUI_TextInputStyle}. \n
3152     *
3153     */
3154     NODE_TEXT_INPUT_STYLE,
3155     /**
3156     * @brief Sets or obtains the caret position.
3157     *
3158     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3159     * In the case of setting the caret position:
3160     * .value[0].i32: character count from the beginning of a string to the caret position. \n
3161     *
3162     * Format of the return value {@link ArkUI_AttributeItem}:\n
3163     * In the case of obtaining the caret position: If this API is called when the caret position is updated in the
3164     * current frame, it will not take effect.
3165     * .value[0].i32: index of the caret position. \n
3166     * .value[1].f32: X coordinate of the caret relative to the text box. \n
3167     * .value[2].f32: Y coordinate of the caret relative to the text box. \n
3168     */
3169     NODE_TEXT_INPUT_CARET_OFFSET,
3170     /**
3171     * @brief Obtains the position of the edited text area relative to the component and its size.
3172     *
3173     * Format of the return value {@link ArkUI_AttributeItem}:\n
3174     * .value[0].f32: horizontal coordinate. \n
3175     * .value[1].f32: vertical coordinate. \n
3176     * .value[2].f32: content width. \n
3177     * .value[3].f32: content height. \n
3178     *
3179     */
3180     NODE_TEXT_INPUT_CONTENT_RECT,
3181     /**
3182     * @brief Obtains the number of lines of the edited text.
3183     *
3184     * Format of the return value {@link ArkUI_AttributeItem}:\n
3185     * .value[0].i32: number of lines of the edited text. \n
3186     *
3187     */
3188     NODE_TEXT_INPUT_CONTENT_LINE_COUNT,
3189     /**
3190      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click, or
3191      * right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3192      *
3193      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3194      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3195      * right-clicked. The default value is <b>false</b>. \n
3196      * \n
3197      * Format of the return value {@link ArkUI_AttributeItem}:\n
3198      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click, or
3199      * right-clicked. \n
3200      *
3201      */
3202     NODE_TEXT_INPUT_SELECTION_MENU_HIDDEN,
3203     /**
3204      * @brief Sets whether the text box loses focus after the Enter key is pressed to submit information.
3205      *
3206      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3207      * .value[0].i32: whether the text box loses focus. \n
3208      * \n
3209      * Format of the return value {@link ArkUI_AttributeItem}:\n
3210      * .value[0].i32: whether the text box loses focus. \n
3211      *
3212      */
3213     NODE_TEXT_INPUT_BLUR_ON_SUBMIT,
3214     /**
3215      * @brief Set up a custom keyboard.
3216      *
3217      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3218      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
3219      * .value[0]?.i32:Sets whether the custom keyboard supports the avoidance feature, default value false.\n
3220      * \n
3221      * Format of the return value {@link ArkUI_AttributeItem}:\n
3222      * .object:custom keyboard,The parameter type is{@Link ArkUI_NodeHandle}。\n
3223      * .value[0].i32:Set whether the custom keyboard supports the avoidance function.\n
3224      *
3225      */
3226     NODE_TEXT_INPUT_CUSTOM_KEYBOARD,
3227     /**
3228      * @brief Defines the line break rule. This attribute can be set, reset, and obtained as required through APIs.
3229      *
3230      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3231      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3232      * \n
3233      * Format of the return value {@link ArkUI_AttributeItem}:\n
3234      * .value[0].i32: The parameter type is {@link ArkUI_WordBreak}. \n
3235      *
3236      */
3237     NODE_TEXT_INPUT_WORD_BREAK,
3238 
3239     /**
3240      * @brief Sets whether the keyboard pops up when the input box gains focus.
3241      * It supports property setting, property reset and property acquisition interfaces.
3242      *
3243      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3244      * .value[0].i32: Whether to pop up the keyboard. \n
3245      * \n
3246      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
3247      * .value[0].i32: Whether to pop up the keyboard. \n
3248      *
3249      */
3250     NODE_TEXT_INPUT_SHOW_KEYBOARD_ON_FOCUS,
3251 
3252     /**
3253      * @brief When this property is set, the height of the textInput component is calculated using this property.
3254      *
3255      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3256      * .value[0].i32: set the value of numberOfLines.\n
3257      * \n
3258      * Format of the return value {@link ArkUI_AttributeItem}:\n
3259      * .value[0].i32: the value of numberOfLines.\n
3260      *
3261      */
3262     NODE_TEXT_INPUT_NUMBER_OF_LINES,
3263 
3264     /**
3265      * @brief Sets the letter spacing of the <b>TextInput</b> component.
3266      * This attribute can be set, reset, and obtained as required through APIs.
3267      *
3268      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3269      * .value[0].f32: letter spacing. The default unit is fp. \n
3270      * \n
3271      * Format of the return value {@link ArkUI_AttributeItem}:\n
3272      * .value[0].f32: letter spacing. The default unit is fp. \n
3273      *
3274      * @since 15
3275      */
3276     NODE_TEXT_INPUT_LETTER_SPACING = 7032,
3277 
3278     /**
3279      * @brief Sets whether to enable preview text for the <b>TextInput</b> component.
3280      * This attribute can be set, reset, and obtained as required through APIs.
3281      *
3282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3283      * .value[0].i32: whether to enable preview tex. \n
3284      * \n
3285      * Format of the return value {@link ArkUI_AttributeItem}:\n
3286      * .value[0].i32: whether to enable preview tex. \n
3287      *
3288      * @since 15
3289      */
3290     NODE_TEXT_INPUT_ENABLE_PREVIEW_TEXT = 7033,
3291 
3292     /**
3293      * @brief Sets whether to center text vertically in the textInput component.
3294      *
3295      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3296      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3297      * \n
3298      * Format of the return value {@link ArkUI_AttributeItem}:\n
3299      * .value[0].i32: whether to center text vertically. \n
3300      *
3301      * @since 18
3302      */
3303     NODE_TEXT_INPUT_HALF_LEADING = 7034,
3304 
3305     /**
3306     * @brief Set the keyboard style of textInput
3307     *
3308     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3309     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3310     * \n
3311     * Format of the return value {@link ArkUI_AttributeItem}:\n
3312     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3313     *
3314     * @since 15
3315     */
3316     NODE_TEXT_INPUT_KEYBOARD_APPEARANCE = 7035,
3317 
3318     /**
3319      * @brief Set whether to enable the auto fill animation or not.
3320      *
3321      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3322      * .value[0].i32: Whether to enable the auto fill animation.\n
3323      * \n
3324      * Format of the return value {@link ArkUI_AttributeItem}: \n
3325      * .value[0].i32: Get the flag of whether the auto fill animation is enabled.\n
3326      *
3327      * @since 20
3328      */
3329     NODE_TEXT_INPUT_ENABLE_FILL_ANIMATION = 7036,
3330 
3331     /**
3332      * @brief Set the line height of the input node.
3333      * This attribute can be set, reset, and obtained as required through APIs.
3334      *
3335      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3336      * .value[0].i32: line height value.
3337      * \n
3338      * Format of the return value {@link ArkUI_AttributeItem}: \n
3339      * .value[0].i32: line height value
3340      *
3341      * @since 20
3342      */
3343     NODE_TEXT_INPUT_LINE_HEIGHT = 7037,
3344 
3345     /**
3346      * @brief Defines the default placeholder text for the multi-line text box.
3347      * This attribute can be set, reset, and obtained as required through APIs.
3348      *
3349      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3350      * .string: default placeholder text. \n
3351      * \n
3352      * Format of the return value {@link ArkUI_AttributeItem}:\n
3353      * .string: default placeholder text. \n
3354      *
3355      */
3356     NODE_TEXT_AREA_PLACEHOLDER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
3357     /**
3358      * @brief Defines the default text content for the multi-line text box.
3359      * This attribute can be set, reset, and obtained as required through APIs.
3360      *
3361      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3362      * .string: default text content. \n
3363      * \n
3364      * Format of the return value {@link ArkUI_AttributeItem}:\n
3365      * .string: default text content. \n
3366      *
3367      */
3368     NODE_TEXT_AREA_TEXT,
3369     /**
3370      * @brief Defines the maximum number of characters in the text input.
3371      * This attribute can be set, reset, and obtained as required through APIs.
3372      *
3373      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3374      * .value[0].i32: maximum number of characters in the text input. \n
3375      * \n
3376      * Format of the return value {@link ArkUI_AttributeItem}:\n
3377      * .value[0].i32: maximum number of characters in the text input. \n
3378      *
3379      */
3380     NODE_TEXT_AREA_MAX_LENGTH,
3381     /**
3382      * @brief Defines the placeholder text color.
3383      * This attribute can be set, reset, and obtained as required through APIs.
3384      *
3385      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3386      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3387      * \n
3388      * Format of the return value {@link ArkUI_AttributeItem}:\n
3389      * .value[0].u32: color value, in 0xARGB format. \n
3390      *
3391      */
3392     NODE_TEXT_AREA_PLACEHOLDER_COLOR,
3393     /**
3394      * @brief Defines the placeholder text font.
3395      * This attribute can be set, reset, and obtained as required through APIs.
3396      *
3397      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3398      * .value[0]?.f32: font size, in fp. Optional. The default value is <b>16.0</b>.\n
3399      * .value[1]?.i32: font style {@link ArkUI_FontStyle}. Optional. The default value is <b>ARKUI_FONT_STYLE_NORMAL</b>.\n
3400      * .value[2]?.i32: font weight {@link ArkUI_FontWeight}. Optional. The default value is <b>ARKUI_FONT_WEIGHT_NORMAL</b>.\n
3401      * ?.string: font family. Multiple font families are separated by commas (,). For example, "font weight; font family 1, font family 2". \n
3402      * \n
3403      * Format of the return value {@link ArkUI_AttributeItem}:\n
3404      * .value[0].f32: font size, in fp.\n
3405      * .value[1].i32: font style {@link ArkUI_FontStyle}.\n
3406      * .value[2].i32: font weight {@link ArkUI_FontWeight}.\n
3407      * .string: font family. Multiple font families are separated by commas (,). \n
3408      *
3409      */
3410     NODE_TEXT_AREA_PLACEHOLDER_FONT,
3411     /**
3412      * @brief Defines the caret color attribute.
3413      * This attribute can be set, reset, and obtained as required through APIs.
3414      *
3415      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3416      * .value[0].u32: background color, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3417      * \n
3418      * Format of the return value {@link ArkUI_AttributeItem}:\n
3419      * .value[0].u32: background color, in 0xARGB format. \n
3420      *
3421      */
3422     NODE_TEXT_AREA_CARET_COLOR,
3423     /**
3424      * @brief Defines the editable state for the multi-line text box.
3425      * This attribute can be set as required through APIs.
3426      *
3427      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3428      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the
3429      * editable state, and <b>false</b> means to exit the editable state.\n \n
3430      * \n
3431      * Format of the {@link ArkUI_AttributeItem} parameter for obtaining the attribute:
3432      * .value[0].i32: whether to remain in the editable state. The value <b>true</b> means to remain in the editable
3433      * state, and <b>false</b> means to exit the editable state.\n \n
3434      *
3435      */
3436     NODE_TEXT_AREA_EDITING,
3437     /**
3438      * @brief Defines the text box type. This attribute can be set, reset, and obtained as required through APIs.
3439      *
3440      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3441      * .value[0].i32: text box type {@link ArkUI_TextAreaType}.
3442      * The default value is <b>ARKUI_TEXTAREA_TYPE_NORMAL</b>. \n
3443      * \n
3444      * Format of the return value {@link ArkUI_AttributeItem}:\n
3445      * .value[0].i32: text box type {@link ArkUI_TextAreaType}. \n
3446      *
3447      */
3448     NODE_TEXT_AREA_TYPE,
3449     /**
3450      * @brief Defines the counter settings. This attribute can be set, reset, and obtained as required through APIs.
3451      *
3452      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3453      * .value[0].i32: whether to show a character counter. The value <b>true</b> means to show a character counter. \n
3454      * .value[1]?.f32: threshold percentage for displaying the character counter. The character counter is displayed
3455      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3456      * by the threshold percentage value. The value range is 1 to 100. If the value is a decimal, it is rounded down. \n
3457      * .value[2]?.i32: whether to highlight the border when the number of entered characters reaches the maximum. \n
3458      * \n
3459      * Format of the return value {@link ArkUI_AttributeItem}:\n
3460      * .value[0].i32: whether to show a character counter. \n
3461      * .value[1].f32: threshold percentage for displaying the character counter. The character counter is displayed
3462      * when the number of characters that have been entered is greater than the maximum number of characters multiplied
3463      * by the threshold percentage value. The value range is 1 to 100. \n
3464      * .value[2].i32: whether to highlight the border when the number of entered characters reaches the maximum.
3465      * The default value is <b>true</b>. \n
3466      *
3467      */
3468     NODE_TEXT_AREA_SHOW_COUNTER,
3469     /**
3470      * @brief Sets whether to hide the text selection menu when the text box is long-pressed, double-click,
3471      * or right-clicked. This attribute can be set, reset, and obtained as required through APIs.
3472      *
3473      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3474      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3475      * or right-clicked. The default value is <b>false</b>. \n
3476      * \n
3477      * Format of the return value {@link ArkUI_AttributeItem}:\n
3478      * .value[0].i32: whether to hide the text selection menu when the text box is long-pressed, double-click,
3479      * or right-clicked. \n
3480      *
3481      */
3482     NODE_TEXT_AREA_SELECTION_MENU_HIDDEN,
3483     /**
3484      * @brief Sets whether the multi-line text box loses focus after the Enter key is pressed to submit information.
3485      *
3486      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3487      * .value[0].i32: whether the text box loses focus. \n
3488      * \n
3489      * Format of the return value {@link ArkUI_AttributeItem}:\n
3490      * .value[0].i32: whether the text box loses focus. \n
3491      *
3492      */
3493     NODE_TEXT_AREA_BLUR_ON_SUBMIT,
3494     /**
3495      * @brief Sets the regular expression for input filtering.
3496      * Only inputs that comply with the regular expression can be displayed.
3497      * Other inputs are filtered out. The specified regular expression can match single characters,
3498      * but not strings.
3499      *
3500      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3501      * .string: regular expression. \n
3502      * \n
3503      * Format of the return value {@link ArkUI_AttributeItem}:\n
3504      * .string: regular expression. \n
3505      *
3506      */
3507     NODE_TEXT_AREA_INPUT_FILTER,
3508     /**
3509      * @brief Defines the background color of the selected text.
3510      * This attribute can be set, reset, and obtained as required through APIs.
3511      *
3512      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3513      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3514      * \n
3515      * Format of the return value {@link ArkUI_AttributeItem}:\n
3516      * .value[0].u32: color value, in 0xARGB format. \n
3517      *
3518      */
3519     NODE_TEXT_AREA_SELECTED_BACKGROUND_COLOR,
3520     /**
3521      * @brief Defines the type of the Enter key.
3522      * This attribute can be set, reset, and obtained as required through APIs.
3523      *
3524      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3525      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. The default value is <b>ARKUI_ENTER_KEY_TYPE_DONE</b>. \n
3526      * \n
3527      * Format of the return value {@link ArkUI_AttributeItem}:\n
3528      * .value[0].i32: type of the Enter key{@link ArkUI_EnterKeyType}. \n
3529      *
3530      */
3531     NODE_TEXT_AREA_ENTER_KEY_TYPE,
3532     /**
3533      * @brief Defines whether to enable the input method when the component obtains focus.
3534      * This attribute can be set, reset, and obtained as required through APIs.
3535      *
3536      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3537      * .value[0].i32: whether to enable the input method when the component obtains focus.
3538      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3539      * \n
3540      * Format of the return value {@link ArkUI_AttributeItem}:\n
3541      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3542      * and <b>0</b> means the opposite. \n
3543      *
3544      */
3545     NODE_TEXT_AREA_ENABLE_KEYBOARD_ON_FOCUS,
3546     /**
3547      * @brief Defines whether to enable the input method when the component obtains focus.
3548      * This attribute can be set, reset, and obtained as required through APIs.
3549      *
3550      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3551      * .value[0].i32: whether to enable the input method when the component obtains focus.
3552      * The value <b>true</b> means to enable the input method, and <b>false</b> means the opposite.\n \n
3553      * \n
3554      * Format of the return value {@link ArkUI_AttributeItem}:\n
3555      * .value[0].i32: The value <b>1</b> means to enable the input method when the component obtains focus,
3556      * and <b>0</b> means the opposite. \n
3557      *
3558      */
3559     NODE_TEXT_AREA_CARET_OFFSET,
3560     /**
3561      * @brief Obtains the position of the edited text area relative to the component and its size.
3562      *
3563      * Format of the return value {@link ArkUI_AttributeItem}:\n
3564      * .value[0].f32: horizontal coordinate. \n
3565      * .value[1].f32: vertical coordinate. \n
3566      * .value[2].f32: content width. \n
3567      * .value[3].f32: content height. \n
3568      *
3569      */
3570     NODE_TEXT_AREA_CONTENT_RECT,
3571     /**
3572      * @brief Obtains the number of lines of the edited text.
3573      *
3574      * Format of the return value {@link ArkUI_AttributeItem}:\n
3575      * .value[0].i32: number of lines of the edited text. \n
3576      *
3577      */
3578     NODE_TEXT_AREA_CONTENT_LINE_COUNT,
3579     /**
3580      * @brief Sets the text selection area, which will be highlighted.
3581      * This attribute can be set, reset, and obtained as required through APIs.
3582      *
3583      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3584      * .value[0].i32: start position of the text selection. \n
3585      * .value[1].i32: end position of the text selection. \n
3586      * \n
3587      * Format of the return value {@link ArkUI_AttributeItem}:\n
3588      * .value[0].i32: start position of the text selection. \n
3589      * .value[1].i32: end position of the text selection. \n
3590      *
3591      */
3592     NODE_TEXT_AREA_TEXT_SELECTION,
3593     /**
3594      * @brief Sets whether to enable autofill.
3595      *
3596      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3597      * .value[0].i32: whether to enable autofill. The default value is <b>true</b>. \n
3598      * \n
3599      * Format of the return value {@link ArkUI_AttributeItem}:\n
3600      * .value[0].i32: whether to enable autofill. \n
3601      *
3602      */
3603     NODE_TEXT_AREA_ENABLE_AUTO_FILL,
3604     /**
3605      * @brief Sets the autofill type.
3606      *
3607      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3608      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3609      * \n
3610      * Format of the return value {@link ArkUI_AttributeItem}:\n
3611      * .value[0].i32: autofill type. The parameter type is {@link ArkUI_TextInputContentType}. \n
3612      *
3613      */
3614     NODE_TEXT_AREA_CONTENT_TYPE,
3615 
3616     /**
3617      * @brief Sets whether the keyboard pops up when the input box gains focus.
3618      * It supports property setting, property reset and property acquisition interfaces.
3619      *
3620      * Attribute setting method parameter {@link ArkUI_AttributeItem} format:\n
3621      * .value[0].i32: Whether to pop up the keyboard. \n
3622      * \n
3623      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
3624      * .value[0].i32: Whether to pop up the keyboard. \n
3625      *
3626      */
3627     NODE_TEXT_AREA_SHOW_KEYBOARD_ON_FOCUS,
3628 
3629     /**
3630      * @brief When this property is set, the height of the textArea component is calculated using this property.
3631      *
3632      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3633      * .value[0].i32: set the value of numberOfLines.\n
3634      * \n
3635      * Format of the return value {@link ArkUI_AttributeItem}:\n
3636      * .value[0].i32: Set the value of numberOfLines\n
3637      *
3638      */
3639     NODE_TEXT_AREA_NUMBER_OF_LINES,
3640 
3641     /**
3642      * @brief Sets the letter spacing of the <b>TextArea</b> component.
3643      * This attribute can be set, reset, and obtained as required through APIs.
3644      *
3645      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3646      * .value[0].f32: letter spacing. The default unit is fp. \n
3647      * \n
3648      * Format of the return value {@link ArkUI_AttributeItem}:\n
3649      * .value[0].f32: letter spacing. The default unit is fp. \n
3650      *
3651      * @since 15
3652      */
3653     NODE_TEXT_AREA_LETTER_SPACING = 8023,
3654     /**
3655      * @brief Sets whether to enable preview text for the <b>TextArea</b> component.
3656      * This attribute can be set, reset, and obtained as required through APIs.
3657      *
3658      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3659      * .value[0].i32: whether to enable preview tex. \n
3660      * \n
3661      * Format of the return value {@link ArkUI_AttributeItem}:\n
3662      * .value[0].i32: whether to enable preview tex. \n
3663      *
3664      * @since 15
3665      */
3666     NODE_TEXT_AREA_ENABLE_PREVIEW_TEXT = 8024,
3667 
3668     /**
3669      * @brief Sets whether to center text vertically in the textArea component.
3670      *
3671      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3672      * .value[0].i32: whether to center text vertically. The default value is <b>false</b>. \n
3673      * \n
3674      * Format of the return value {@link ArkUI_AttributeItem}:\n
3675      * .value[0].i32: whether to center text vertically. \n
3676      *
3677      * @since 18
3678      */
3679     NODE_TEXT_AREA_HALF_LEADING = 8025,
3680 
3681     /**
3682     * @brief Set the keyboard style of textArea
3683     *
3684     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3685     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3686     * \n
3687     * Format of the return value {@link ArkUI_AttributeItem}:\n
3688     * .value[0].i32:keyboard style,the parameter type is {@link ArkUI_KeyboardAppearanceType}。\n
3689     *
3690     * @since 15
3691     */
3692     NODE_TEXT_AREA_KEYBOARD_APPEARANCE = 8026,
3693 
3694     /**
3695      * @brief Set the max lines of the node. This attribute can be set, reset, and obtained as required through APIs.
3696      *
3697      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3698      * .value[0].i32: max lines count.
3699      * \n
3700      * Format of the return value {@link ArkUI_AttributeItem}:\n
3701      * .value[0].i32: max lines count.\n
3702      *
3703      * @since 20
3704      */
3705     NODE_TEXT_AREA_MAX_LINES = 8027,
3706 
3707     /**
3708      * @brief Set line spacing of the node. This attribute can be set, reset, and obtained as required through APIs.
3709      *
3710      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3711      * .value[0].i32: line spacing value. \n
3712      * \n
3713      * Format of the return value {@link ArkUI_AttributeItem}:\n
3714      * .value[0].i32: line spacing value. \n
3715      *
3716      * @since 20
3717      */
3718     NODE_TEXT_AREA_LINE_SPACING = 8028,
3719 
3720     /**
3721      * @brief Set the min lines of the node. This attribute can be set, reset, and obtained as required through APIs.
3722      *
3723      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3724      * .value[0].i32: min lines count.
3725      * \n
3726      * Format of the return value {@link ArkUI_AttributeItem}: \n
3727      * .value[0].i32: min line count.\n
3728      *
3729      * @since 20
3730      *
3731      */
3732     NODE_TEXT_AREA_MIN_LINES = 8029,
3733 
3734     /**
3735      * @brief Set the max lines of the node with scroll.
3736      * This attribute can be set, reset, and obtained as required through APIs.
3737      *
3738      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3739      * .value[0].i32: max lines count with scroll.
3740      * \n
3741      * Format of the return value {@link ArkUI_AttributeItem}: \n
3742      * .value[0].i32: max line count with scroll.\n
3743      *
3744      * @since 20
3745      */
3746     NODE_TEXT_AREA_MAX_LINES_WITH_SCROLL = 8030,
3747 
3748     /**
3749      * @brief Set the line height of the node. This attribute can be set, reset, and obtained as required through APIs.
3750      *
3751      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3752      * .value[0].i32: line height value.
3753      * \n
3754      * Format of the return value {@link ArkUI_AttributeItem}: \n
3755      * .value[0].i32: line height value
3756      *
3757      * @since 20
3758      */
3759     NODE_TEXT_AREA_LINE_HEIGHT = 8031,
3760 
3761     /**
3762      * @brief Defines the button text content. This attribute can be set, reset, and obtained as required through APIs.
3763      *
3764      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3765      * .string: default text content. \n
3766      * \n
3767      * Format of the return value {@link ArkUI_AttributeItem}:\n
3768      * .string: default text content. \n
3769      *
3770      */
3771     NODE_BUTTON_LABEL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_BUTTON,
3772 
3773     /**
3774      * @brief Sets the button type. This attribute can be set, reset, and obtained as required through APIs.
3775      *
3776      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3777      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3778      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3779      * \n
3780      * Format of the return value {@link ArkUI_AttributeItem}:\n
3781      * .value[0].i32: button type. The parameter type is {@link ArkUI_ButtonType}.
3782      * The default value is <b>ARKUI_BUTTON_TYPE_CAPSULE</b>. \n
3783      *
3784      */
3785     NODE_BUTTON_TYPE,
3786 
3787     /**
3788     * @brief Defines the minimum font scale attribute, which can be set, reset, and obtained as required through APIs.
3789     *
3790     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3791     * .value[0].f32: minimum font scale, in fp.
3792     * \n
3793     * Format of the return value {@link ArkUI_AttributeItem}:\n
3794     * .value[0].f32: minimum font scale, in fp.
3795     *
3796     * @since 18
3797     */
3798     NODE_BUTTON_MIN_FONT_SCALE,
3799 
3800     /**
3801     * @brief Defines the maximum font scale attribute, which can be set, reset, and obtained as required through APIs.
3802     *
3803     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3804     * .value[0].f32: maximum font scale, in fp.
3805     * \n
3806     * Format of the return value {@link ArkUI_AttributeItem}:\n
3807     * .value[0].f32: maximum font scale, in fp.
3808     *
3809     * @since 18
3810     */
3811     NODE_BUTTON_MAX_FONT_SCALE,
3812 
3813     /**
3814      * @brief Defines the current value of the progress indicator.
3815      * This attribute can be set, reset, and obtained as required through APIs.
3816      *
3817      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3818      * .value[0].f32: current value of the progress indicator. \n
3819      * \n
3820      * Format of the return value {@link ArkUI_AttributeItem}:\n
3821      * .value[0].f32: current value of the progress indicator. \n
3822      *
3823      */
3824     NODE_PROGRESS_VALUE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_PROGRESS,
3825     /**
3826      * @brief Defines the total value of the progress indicator.
3827      * This attribute can be set, reset, and obtained as required through APIs.
3828      *
3829      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3830      * .value[0].f32: total value of the progress indicator. \n
3831      * \n
3832      * Format of the return value {@link ArkUI_AttributeItem}:\n
3833      * .value[0].f32: total value of the progress indicator. \n
3834      *
3835      */
3836     NODE_PROGRESS_TOTAL,
3837     /**
3838      * @brief Defines the color for the progress value on the progress indicator.
3839      * This attribute can be set, reset, and obtained as required through APIs.
3840      *
3841      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3842      * .value[0].u32: color value, in 0xARGB format. For example, 0xFFFF0000 indicates red. \n
3843      * \n
3844      * Format of the return value {@link ArkUI_AttributeItem}:\n
3845      * .value[0].u32: color value, in 0xARGB format. \n
3846      *
3847      */
3848     NODE_PROGRESS_COLOR,
3849     /**
3850      * @brief Defines the type of the progress indicator.
3851      * This attribute can be set, reset, and obtained as required through APIs.
3852      *
3853      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3854      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}.
3855      * The default value is <b>ARKUI_PROGRESS_TYPE_LINEAR</b>. \n
3856      * \n
3857      * Format of the return value {@link ArkUI_AttributeItem}:\n
3858      * .value[0].i32: type of the progress indicator {@link ArkUI_ProgressType}. \n
3859      *
3860      */
3861     NODE_PROGRESS_TYPE,
3862     /**
3863      * @brief Sets the style of the linear progress indicator.
3864      * This attribute can be set, reset, and obtained as required through APIs.
3865      * If the progress indicator type is not linear, it will not take effect.
3866      *
3867      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3868      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to set the style. \n
3869      * \n
3870      * Format of the return value {@link ArkUI_AttributeItem}:\n
3871      * .object: Use the {@link ArkUI_ProgressLinearStyleOption} object to get the style. \n
3872      *
3873      * @since 15
3874      */
3875     NODE_PROGRESS_LINEAR_STYLE,
3876 
3877     /**
3878      * @brief Defines whether the check box is selected.
3879      * This attribute can be set, reset, and obtained as required through APIs.
3880      *
3881      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3882      * .value[0].i32: whether the check box is selected.
3883      * The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3884      * \n
3885      * Format of the return value {@link ArkUI_AttributeItem}:\n
3886      * .value[0].i32: The value <b>1</b> means that the check box is selected, and <b>0</b> means the opposite. \n
3887      *
3888      */
3889     NODE_CHECKBOX_SELECT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
3890 
3891     /**
3892      * @brief Defines the color of the check box when it is selected.
3893      * This attribute can be set, reset, and obtained as required through APIs.
3894      *
3895      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3896      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3897      * \n
3898      * Format of the return value {@link ArkUI_AttributeItem}:\n
3899      * .value[0].u32: color of the check box when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3900      *
3901      */
3902     NODE_CHECKBOX_SELECT_COLOR,
3903 
3904     /**
3905      * @brief Defines the border color of the check box when it is not selected.
3906      * This attribute can be set, reset, and obtained as required through APIs.
3907      *
3908      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3909      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
3910      * \n
3911      * Format of the return value {@link ArkUI_AttributeItem}:\n
3912      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
3913      *
3914      */
3915     NODE_CHECKBOX_UNSELECT_COLOR,
3916 
3917     /**
3918      * @brief Defines the internal icon style of the check box.
3919      * This attribute can be set, reset, and obtained as required through APIs.
3920      *
3921      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3922      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3923      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
3924      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
3925      * \n
3926      * Format of the return value {@link ArkUI_AttributeItem}:\n
3927      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
3928      * .value[1].f32: size of the internal mark, in vp. \n
3929      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
3930      *
3931      */
3932     NODE_CHECKBOX_MARK,
3933 
3934     /**
3935      * @brief Defines the shape of the check box.
3936      * This attribute can be set, reset, and obtained as required through APIs.
3937      *
3938      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3939      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
3940      * \n
3941      * Format of the return value {@link ArkUI_AttributeItem}:\n
3942      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
3943      *
3944      */
3945     NODE_CHECKBOX_SHAPE,
3946 
3947     /**
3948      * @brief Defines the name of the checkbox.
3949      * This attribute can be set, reset, and obtained as required through APIs.
3950      *
3951      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3952      * .string: component name. \n
3953      * \n
3954      * Format of the return value {@link ArkUI_AttributeItem}:\n
3955      * .string: component name. \n
3956      *
3957      * @since 15
3958      */
3959     NODE_CHECKBOX_NAME,
3960 
3961     /**
3962      * @brief Defines the name of the checkbox.
3963      * This attribute can be set, reset, and obtained as required through APIs.
3964      *
3965      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3966      * .string: component name. \n
3967      * \n
3968      * Format of the return value {@link ArkUI_AttributeItem}:\n
3969      * .string: component name. \n
3970      *
3971      * @since 15
3972      */
3973     NODE_CHECKBOX_GROUP,
3974 
3975     /**
3976      * @brief Defines the ID of the <b><XComponent></b> component.
3977      * This attribute can be set and obtained as required through APIs.
3978      *
3979      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
3980      * .string: component ID. \n
3981      * \n
3982      * Format of the return value {@link ArkUI_AttributeItem}:\n
3983      * .string: component ID. \n
3984      *
3985      */
3986     NODE_XCOMPONENT_ID = MAX_NODE_SCOPE_NUM * ARKUI_NODE_XCOMPONENT,
3987     /**
3988      * @brief Specifies the type of the <b>XComponent</b> component. This attribute is read-only. \n
3989      * The type of the <b>XComponent</b> component must be explicitly set during creation using {@link ARKUI_NODE_XCOMPONENT} or {@link ARKUI_NODE_XCOMPONENT_TEXTURE}, and cannot be modified afterward. \n
3990      * Attempting to change the type through {@link setAttribute} will cause rendering exceptions.
3991      *
3992      * Format of the return value {@link ArkUI_AttributeItem}:\n
3993      * .value[0].i32: type {@link ArkUI_XComponentType}. \n
3994      *
3995      */
3996     NODE_XCOMPONENT_TYPE,
3997     /**
3998      * @brief Specifies the size of the <b>XComponent</b> component. This attribute is read-only. \n
3999      * Attempting to modify the size through {@link setAttribute} will have no effect.
4000      *
4001      * Format of the return value {@link ArkUI_AttributeItem}:\n
4002      * .value[0].u32: width, in px. \n
4003      * .value[1].u32: height, in px. \n
4004      *
4005      */
4006     NODE_XCOMPONENT_SURFACE_SIZE,
4007     /**
4008      * @brief Defines the rectangle information of surface created by the <b><XComponent></b> component.
4009      * This attribute can be set and obtained as required through APIs.
4010      *
4011      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4012      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
4013      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
4014      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
4015      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
4016      * \n
4017      * Format of the return value {@link ArkUI_AttributeItem}:\n
4018      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4019      * .value[0].i32: The horizontal offset of the surface relative to XComponent, in pixels. \n
4020      * .value[1].i32: The vertical offset of the surface relative to XComponent, in pixels. \n
4021      * .value[2].i32: The width of the surface created by XComponent, in pixels. \n
4022      * .value[3].i32: The height of the surface created by XComponent, in pixels. \n
4023      * @since 18
4024      */
4025     NODE_XCOMPONENT_SURFACE_RECT,
4026     /**
4027      * @brief Defines whether to enable the AI analyzer for the <b><XComponent></b> component.
4028      * This attribute can be set and obtained as required through APIs.
4029      *
4030      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4031      * value[0].i32: The parameter type is 1 or 0.
4032      * \n
4033      * Format of the return value {@link ArkUI_AttributeItem}:\n
4034      * value[0].i32: The parameter type is 1 or 0.
4035      * @since 18
4036      */
4037     NODE_XCOMPONENT_ENABLE_ANALYZER,
4038 
4039     /**
4040      * @brief Defines whether to display the lunar calendar in the date picker.
4041      * This attribute can be set, reset, and obtained as required through APIs.
4042      *
4043      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4044      * .value[0].i32: whether to display the lunar calendar in the date picker. The default value is <b>false</b>. \n
4045      * \n
4046      * Format of the return value {@link ArkUI_AttributeItem}:\n
4047      * .value[0].i32: whether to display the lunar calendar in the date picker.
4048      *
4049      */
4050     NODE_DATE_PICKER_LUNAR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
4051     /**
4052      * @brief Defines the start date of the date picker.
4053      * This attribute can be set, reset, and obtained as required through APIs.
4054      *
4055      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4056      * .string: date. The default value is <b>"1970-1-1"</b>. \n
4057      * \n
4058      * Format of the return value {@link ArkUI_AttributeItem}:\n
4059      * .string: date. \n
4060      *
4061      */
4062     NODE_DATE_PICKER_START,
4063     /**
4064      * @brief Defines the end date of the date picker.
4065      * This attribute can be set, reset, and obtained as required through APIs.
4066      *
4067      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4068      * .string: date. The default value is <b>"2100-12-31"</b>. \n
4069      * \n
4070      * Format of the return value {@link ArkUI_AttributeItem}:\n
4071      * .string: date. \n
4072      *
4073      */
4074     NODE_DATE_PICKER_END,
4075     /**
4076      * @brief Defines the selected date of the date picker.
4077      * This attribute can be set, reset, and obtained as required through APIs.
4078      *
4079      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4080      * .string: date. The default value is <b>"2024-01-22"</b>. \n
4081      * \n
4082      * Format of the return value {@link ArkUI_AttributeItem}:\n
4083      * .string: date.
4084      *
4085      */
4086     NODE_DATE_PICKER_SELECTED,
4087     /**
4088      * @brief Defines the font color, font size, and font weight for the top and bottom items in the date picker.
4089      * This attribute can be set, reset, and obtained as required through APIs.
4090      *
4091      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4092      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4093      * Parameter 1: font color, in #ARGB format.\n
4094      * Parameter 2: font size, in fp. The value is a number.\n
4095      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4096      * Parameter 4: fonts, separated by commas (,).\n
4097      * Parameter 5: font style. Available options are ("normal", "italic").\n
4098      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4099      * \n
4100      * Format of the return value {@link ArkUI_AttributeItem}:\n
4101      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4102      * Parameter 1: font color, in #ARGB format.\n
4103      * Parameter 2: font size, in fp. The value is a number.\n
4104      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4105      * Parameter 4: fonts, separated by commas (,).\n
4106      * Parameter 5: font style. Available options are ("normal", "italic").\n
4107      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4108      *
4109      */
4110     NODE_DATE_PICKER_DISAPPEAR_TEXT_STYLE,
4111     /**
4112      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected
4113      * items in the date picker. This attribute can be set, reset, and obtained as required through APIs.
4114      *
4115      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4116      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4117      * Parameter 1: font color, in #ARGB format.\n
4118      * Parameter 2: font size, in fp. The value is a number.\n
4119      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4120      * Parameter 4: fonts, separated by commas (,).\n
4121      * Parameter 5: font style. Available options are ("normal", "italic").\n
4122      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4123      * \n
4124      * Format of the return value {@link ArkUI_AttributeItem}:\n
4125      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4126      * Parameter 1: font color, in #ARGB format.\n
4127      * Parameter 2: font size, in fp. The value is a number.\n
4128      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4129      * Parameter 4: fonts, separated by commas (,).\n
4130      * Parameter 5: font style. Available options are ("normal", "italic").\n
4131      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4132      *
4133      */
4134     NODE_DATE_PICKER_TEXT_STYLE,
4135     /**
4136      * @brief Defines the font color, font size, and font weight of the selected item in the date picker.
4137      * This attribute can be set, reset, and obtained as required through APIs.
4138      *
4139      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4140      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4141      * Parameter 1: font color, in #ARGB format.\n
4142      * Parameter 2: font size, in fp. The value is a number.\n
4143      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4144      * Parameter 4: fonts, separated by commas (,).\n
4145      * Parameter 5: font style. Available options are ("normal", "italic").\n
4146      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4147      * \n
4148      * Format of the return value {@link ArkUI_AttributeItem}:\n
4149      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4150      * Parameter 1: font color, in #ARGB format.\n
4151      * Parameter 2: font size, in fp. The value is a number.\n
4152      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4153      * Parameter 4: fonts, separated by commas (,).\n
4154      * Parameter 5: font style. Available options are ("normal", "italic").\n
4155      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4156      *
4157      */
4158     NODE_DATE_PICKER_SELECTED_TEXT_STYLE,
4159     /**
4160      * @brief Defines the mode of the date picker.
4161      * This attribute can be set, reset, and obtained as required through APIs.
4162      *
4163      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4164      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
4165      * \n
4166      * Format of the return value {@link ArkUI_AttributeItem}:\n
4167      * value[0].i32: the mode. The value is and enum of {@link ArkUI_DatePickerMode}.\n.
4168      *
4169      * @since 18
4170      */
4171     NODE_DATE_PICKER_MODE = 13007,
4172     /**
4173      * @brief Defines whether haptic feedback.
4174      * This attribute can be set, reset, and obtained as required through APIs.
4175      *
4176      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4177      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4178      * <b>false</b> means the opposite.\n
4179      * \n
4180      * Format of the return value {@link ArkUI_AttributeItem}:\n
4181      * value[0].i32: whether to feedback.\n
4182      *
4183      * @since 18
4184      */
4185     NODE_DATE_PICKER_ENABLE_HAPTIC_FEEDBACK = 13008,
4186     /**
4187      * @brief Defines whether to support scroll looping for the date picker.
4188      * This attribute can be set, reset, and obtained as required through APIs.
4189      *
4190      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4191      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4192      * <b>false</b> means the opposite.\n
4193      * \n
4194      * Format of the return value {@link ArkUI_AttributeItem}:\n
4195      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4196      *
4197      * @since 20
4198      */
4199      NODE_DATE_PICKER_CAN_LOOP = 13009,
4200     /**
4201      * @brief Defines the time of the selected item. in the timer picker.
4202      * This attribute can be set, reset, and obtained as required through APIs.
4203      *
4204      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4205      * .string: time. The default value is the current system time. \n
4206      * \n
4207      * Format of the return value {@link ArkUI_AttributeItem}:\n
4208      * .string: time.
4209      *
4210      */
4211 
4212     NODE_TIME_PICKER_SELECTED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
4213     /**
4214      * @brief Defines whether the display time is in 24-hour format.
4215      * This attribute can be set, reset, and obtained as required through APIs.
4216      *
4217      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4218      * .value[0].i32: whether the display time is in 24-hour format. The default value is <b>false</b>. \n
4219      * \n
4220      * Format of the return value {@link ArkUI_AttributeItem}:\n
4221      * .value[0].i32: whether the display time is in 24-hour format.
4222      *
4223      */
4224     NODE_TIME_PICKER_USE_MILITARY_TIME,
4225     /**
4226      * @brief Defines the font color, font size, and font weight for the top and bottom items in the time picker.
4227      * This attribute can be set, reset, and obtained as required through APIs.
4228      *
4229      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4230      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4231      * Parameter 1: font color, in #ARGB format.\n
4232      * Parameter 2: font size, in fp. The value is a number.\n
4233      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4234      * Parameter 4: fonts, separated by commas (,).\n
4235      * Parameter 5: font style. Available options are ("normal", "italic").\n
4236      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4237      * \n
4238      * Format of the return value {@link ArkUI_AttributeItem}:\n
4239      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4240      * Parameter 1: font color, in #ARGB format.\n
4241      * Parameter 2: font size, in fp. The value is a number.\n
4242      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4243      * Parameter 4: fonts, separated by commas (,).\n
4244      * Parameter 5: font style. Available options are ("normal", "italic").\n
4245      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4246      *
4247      */
4248     NODE_TIME_PICKER_DISAPPEAR_TEXT_STYLE,
4249     /**
4250      * @brief Defines the font color, font size, and font weight of all items except the top, bottom, and selected items
4251      * in the time picker. This attribute can be set, reset, and obtained as required through APIs.
4252      *
4253      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4254      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4255      * Parameter 1: font color, in #ARGB format.\n
4256      * Parameter 2: font size, in fp. The value is a number.\n
4257      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4258      * Parameter 4: fonts, separated by commas (,).\n
4259      * Parameter 5: font style. Available options are ("normal", "italic").\n
4260      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4261      * \n
4262      * Format of the return value {@link ArkUI_AttributeItem}:\n
4263      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4264      * Parameter 1: font color, in #ARGB format.\n
4265      * Parameter 2: font size, in fp. The value is a number.\n
4266      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4267      * Parameter 4: fonts, separated by commas (,).\n
4268      * Parameter 5: font style. Available options are ("normal", "italic").\n
4269      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4270      *
4271      */
4272     NODE_TIME_PICKER_TEXT_STYLE,
4273     /**
4274      * @brief Defines the font color, font size, and font weight of the selected item in the time picker.
4275      * This attribute can be set, reset, and obtained as required through APIs.
4276      *
4277      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4278      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4279      * Parameter 1: font color, in #ARGB format.\n
4280      * Parameter 2: font size, in fp. The value is a number.\n
4281      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4282      * Parameter 4: fonts, separated by commas (,).\n
4283      * Parameter 5: font style. Available options are ("normal", "italic").\n
4284      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4285      * \n
4286      * Format of the return value {@link ArkUI_AttributeItem}:\n
4287      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4288      * Parameter 1: font color, in #ARGB format.\n
4289      * Parameter 2: font size, in fp. The value is a number.\n
4290      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4291      * Parameter 4: fonts, separated by commas (,).\n
4292      * Parameter 5: font style. Available options are ("normal", "italic").\n
4293      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4294      *
4295      */
4296     NODE_TIME_PICKER_SELECTED_TEXT_STYLE,
4297     /**
4298      * @brief Defines the start time of the time picker.
4299      * This attribute can be set, reset, and obtained as required through APIs.
4300      *
4301      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4302      * .string: time. The default value is <b>"00:00:00"</b>.\n
4303      * \n
4304      * Format of the return value {@link ArkUI_AttributeItem}:\n
4305      * .string: time. The default value is <b>"00:00:00"</b>.\n
4306      *
4307      * @since 18
4308      */
4309     NODE_TIME_PICKER_START = 14005,
4310     /**
4311      * @brief Defines the end time of the time picker.
4312      * This attribute can be set, reset, and obtained as required through APIs.
4313      *
4314      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4315      * .string: time. The default value is <b>"23:59:59"</b>.\n
4316      * \n
4317      * Format of the return value {@link ArkUI_AttributeItem}:\n
4318      * .string: time. The default value is <b>"23:59:59"</b>.\n
4319      *
4320      * @since 18
4321      */
4322     NODE_TIME_PICKER_END = 14006,
4323     /**
4324      * @brief Defines whether the AM/PM option is cascaded with the time in 12-hour mode.
4325      * This attribute can be set, reset, and obtained as required through APIs.
4326      *
4327      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4328      * .value[0].i32: whether to enable cascade. The default value is <b>false</b>.\n
4329      * \n
4330      * Format of the return value {@link ArkUI_AttributeItem}:\n
4331      * .value[0].i32: whether to enable cascade.\n
4332      *
4333      * @since 18
4334      */
4335     NODE_TIME_PICKER_ENABLE_CASCADE = 14007,
4336 
4337     /**
4338      * @brief Defines the data selection range of the text picker.
4339      * This attribute can be set, reset, and obtained as required through APIs.
4340      *
4341      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4342      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.
4343      * The default value is <b>ARKUI_TEXTPICKER_RANGETYPE_SINGLE</b>. \n
4344      * ?.string: string input, whose format varies by picker type.\n
4345      * 1: single-column picker. The input format is a group of strings separated by semicolons (;).\n
4346      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4347      * semicolons (;), and strings within each pair are separated by commas (,). \n
4348      * ?.object: Object input, whose format varies by picker type.\n
4349      * 1: single-column picker with image support. The input structure is {@link ARKUI_TextPickerRangeContent}.\n
4350      * 2: multi-column interconnected picker. The input structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4351      * \n
4352      * Format of the return value {@link ArkUI_AttributeItem}:\n
4353      * .value[0].i32: type of the text picker {@link ArkUI_TextPickerRangeType}.\n
4354      * ?.string: string output, whose format varies by picker type.\n
4355      * 1: single-column picker. The output format is a group of strings separated by semicolons (;).\n
4356      * 2: multi-column picker. Multiple pairs of plain text strings are supported. The pairs are separated by
4357      * semicolons (;), and strings within each pair are separated by commas (,). \n
4358      * ?.string: Object output, whose format varies by picker type.\n
4359      * 1: single-column picker with image support. The output structure is {@link ARKUI_TextPickerRangeContent}.\n
4360      * 2: multi-column interconnected picker. The output structure is {@link ARKUI_TextPickerCascadeRangeContent}.\n
4361      *
4362      */
4363     NODE_TEXT_PICKER_OPTION_RANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
4364     /**
4365      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4366      * This attribute can be set, reset, and obtained as required through APIs.
4367      *
4368      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4369      * .value[0].u32: index. If there are multiple index values, add them one by one. \n
4370      * \n
4371      * Format of the return value {@link ArkUI_AttributeItem}:\n
4372      * .value[0].u32: index. If there are multiple index values, add them one by one.\n
4373      *
4374      */
4375     NODE_TEXT_PICKER_OPTION_SELECTED,
4376     /**
4377      * @brief Defines the value of the default selected item in the text picker.
4378      * This attribute can be set, reset, and obtained as required through APIs.
4379      *
4380      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4381      * .string: value of the selected item. If there are multiple values, add them one by one and
4382      * separate them with semicolons (;). \n
4383      * \n
4384      * Format of the return value {@link ArkUI_AttributeItem}:\n
4385      * .string: value of the selected item. If there are multiple values, add them one by one and
4386      * separate them with semicolons (;).\n
4387      *
4388      */
4389     NODE_TEXT_PICKER_OPTION_VALUE,
4390     /**
4391      * @brief Defines the font color, font size, and font weight for the top and bottom items in the text picker.
4392      * This attribute can be set, reset, and obtained as required through APIs.
4393      *
4394      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4395      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4396      * Parameter 1: font color, in #ARGB format.\n
4397      * Parameter 2: font size, in fp. The value is a number.\n
4398      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4399      * Parameter 4: fonts, separated by commas (,).\n
4400      * Parameter 5: font style. Available options are ("normal", "italic").\n
4401      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4402      * \n
4403      * Format of the return value {@link ArkUI_AttributeItem}:\n
4404      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4405      * Parameter 1: font color, in #ARGB format.\n
4406      * Parameter 2: font size, in fp. The value is a number.\n
4407      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4408      * Parameter 4: fonts, separated by commas (,).\n
4409      * Parameter 5: font style. Available options are ("normal", "italic").\n
4410      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4411      *
4412      */
4413     NODE_TEXT_PICKER_DISAPPEAR_TEXT_STYLE,
4414     /**
4415      * @brief Defines the font color, font size, and font weight for all items except the top, bottom, and selected
4416      * items in the text picker. This attribute can be set, reset, and obtained as required through APIs.
4417      *
4418      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4419      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4420      * Parameter 1: font color, in #ARGB format.\n
4421      * Parameter 2: font size, in fp. The value is a number.\n
4422      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4423      * Parameter 4: fonts, separated by commas (,).\n
4424      * Parameter 5: font style. Available options are ("normal", "italic").\n
4425      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4426      * \n
4427      * Format of the return value {@link ArkUI_AttributeItem}:\n
4428      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4429      * Parameter 1: font color, in #ARGB format.\n
4430      * Parameter 2: font size, in fp. The value is a number.\n
4431      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4432      * Parameter 4: fonts, separated by commas (,).\n
4433      * Parameter 5: font style. Available options are ("normal", "italic").\n
4434      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4435      *
4436      */
4437     NODE_TEXT_PICKER_TEXT_STYLE,
4438     /**
4439      * @brief Defines the font color, font size, and font weight for the selected item in the text picker.
4440      * This attribute can be set, reset, and obtained as required through APIs.
4441      *
4442      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4443      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4444      * Parameter 1: font color, in #ARGB format.\n
4445      * Parameter 2: font size, in fp. The value is a number.\n
4446      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4447      * Parameter 4: fonts, separated by commas (,).\n
4448      * Parameter 5: font style. Available options are ("normal", "italic").\n
4449      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4450      * \n
4451      * Format of the return value {@link ArkUI_AttributeItem}:\n
4452      * .string: array of five parameters of the string type, separated by semicolons (;).\n
4453      * Parameter 1: font color, in #ARGB format.\n
4454      * Parameter 2: font size, in fp. The value is a number.\n
4455      * Parameter 3: font weight. Available options are ("bold", "normal", "bolder", "lighter", "medium", "regular").\n.
4456      * Parameter 4: fonts, separated by commas (,).\n
4457      * Parameter 5: font style. Available options are ("normal", "italic").\n
4458      * Example: "#ff182431;14;normal;Arial,HarmonyOS Sans;normal". \n
4459      *
4460      */
4461     NODE_TEXT_PICKER_SELECTED_TEXT_STYLE,
4462     /**
4463      * @brief Defines the index of the default selected item in the data selection range of the text picker.
4464      * This attribute can be set, reset, and obtained as required through APIs.
4465      *
4466      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4467      * .value[0...].i32: index of the default item in the data selection range.
4468      *
4469      */
4470     NODE_TEXT_PICKER_SELECTED_INDEX,
4471     /**
4472      * @brief Defines whether to support scroll looping for the text picker.
4473      * This attribute can be set, reset, and obtained as required through APIs.
4474      *
4475      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4476      * .value[0].i32: whether to support scroll looping. The value <b>true</b> means to support scroll looping, and
4477      * <b>false</b> means the opposite.\n \n
4478      * \n
4479      * Format of the return value {@link ArkUI_AttributeItem}:\n
4480      * value[0].i32: The value <b>1</b> means to support scroll looping, and <b>0</b> means the opposite. \n
4481      *
4482      */
4483     NODE_TEXT_PICKER_CAN_LOOP,
4484     /**
4485      * @brief Defines the height of each item in the picker. This attribute can be set, reset, and obtained as required
4486      * through APIs.
4487      *
4488      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4489      * .value[0].f32: item height, in vp. \n
4490      * \n
4491      * Format of the return value {@link ArkUI_AttributeItem}:\n
4492      * value[0].f32: item height, in vp. \n
4493      *
4494      */
4495     NODE_TEXT_PICKER_DEFAULT_PICKER_ITEM_HEIGHT,
4496     /**
4497      * @brief Defines whether haptic feedback.
4498      * This attribute can be set, reset, and obtained as required through APIs.
4499      *
4500      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4501      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4502      * <b>false</b> means the opposite.\n
4503      * \n
4504      * Format of the return value {@link ArkUI_AttributeItem}:\n
4505      * value[0].i32: whether to feedback.\n
4506      *
4507      * @since 18
4508      */
4509     NODE_TEXT_PICKER_ENABLE_HAPTIC_FEEDBACK = 15010,
4510     /**
4511      * @brief Defines the background color and border radius of the selected items.
4512      * This attribute can be set, reset, and obtained as required through APIs.
4513      *
4514      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4515      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4516      * 1: .value[1].f32: radius of the four corners. \n
4517      * 2: .value[1].f32: radius of the upper left corner. \n
4518      * .value[2].f32: radius of the upper right corner. \n
4519      * .value[3].f32: radius of the lower left corner. \n
4520      * .value[4].f32: radius of the lower right corner. \n
4521      * \n
4522      * Format of the return value {@link ArkUI_AttributeItem}:\n
4523      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n     *
4524      * .value[1].f32: radius of the upper left corner. \n
4525      * .value[2].f32: radius of the upper right corner. \n
4526      * .value[3].f32: radius of the lower left corner. \n
4527      * .value[4].f32: radius of the lower right corner. \n
4528      *
4529      * @since 20
4530      */
4531     NODE_TEXT_PICKER_SELECTED_BACKGROUND_STYLE = 15011,
4532     /**
4533      * @brief Defines the style of the background in the selected state of the calendar picker.
4534      * This attribute can be set, reset, and obtained as required through APIs.
4535      *
4536      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4537      * .value[0].f32: style of the background in the selected state of the calendar picker.
4538      * The value range is [0, +∞). If the value is <b>0</b>, the background is a rectangle with square corners.
4539      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to
4540      * or greater than 16, the background is a circle. \n
4541      * \n
4542      * Format of the return value {@link ArkUI_AttributeItem}:\n
4543      * .value[0].f32: style of the background in the selected state of the calendar picker. The value range is [0, +∞).
4544      * If the value is <b>0</b>, the background is a rectangle with square corners.
4545      If the value is in the 0–16 range, the background is a rectangle with rounded corners. If the value is equal to or
4546      * greater than 16, the background is a circle. \n
4547      *
4548      */
4549     NODE_CALENDAR_PICKER_HINT_RADIUS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
4550     /**
4551      * @brief Defines the date of the selected item in the calendar picker.
4552      * This attribute can be set, reset, and obtained as required through APIs.
4553      *
4554      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4555      * .value[0].u32: year of the selected date. \n
4556      * .value[1].u32: month of the selected date. \n
4557      * .value[2].u32: day of the selected date. \n
4558      * \n
4559      * Format of the return value {@link ArkUI_AttributeItem}:\n
4560      * .value[0].u32: year of the selected date. \n
4561      * .value[1].u32: month of the selected date. \n
4562      * .value[2].u32: day of the selected date. \n
4563      *
4564      */
4565     NODE_CALENDAR_PICKER_SELECTED_DATE,
4566     /**
4567      * @brief Defines how the calendar picker is aligned with the entry component.
4568      * This attribute can be set, reset, and obtained as required through APIs.
4569      *
4570      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4571      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4572      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4573      * the specified alignment mode. \n
4574      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4575      * the specified alignment mode. \n
4576      * \n
4577      * Format of the return value {@link ArkUI_AttributeItem}:\n
4578      * .value[0].i32: alignment mode. The parameter type is {@link ArkUI_CalendarAlignment}. \n
4579      * .value[1]?.f32: offset of the picker relative to the entry component along the x-axis after alignment based on
4580      * the specified alignment mode. \n
4581      * .value[2]?.f32: offset of the picker relative to the entry component along the y-axis after alignment based on
4582      * the specified alignment mode. \n
4583      *
4584      */
4585     NODE_CALENDAR_PICKER_EDGE_ALIGNMENT,
4586     /**
4587      * @brief Defines the font color, font size, and font weight in the entry area of the calendar picker.
4588      *
4589      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4590      * .value[0]?.u32: font color of the entry area. \n
4591      * .value[1]?.f32: font size of the entry area, in fp. \n
4592      * .value[2]?.i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4593      * \n
4594      * Format of the return value {@link ArkUI_AttributeItem}:\n
4595      * .value[0].u32: font color of the entry area. \n
4596      * .value[1].f32: font size of the entry area, in fp. \n
4597      * .value[2].i32: font weight of the entry area. The parameter type is {@link ArkUI_FontWeight}. \n
4598      *
4599      */
4600     NODE_CALENDAR_PICKER_TEXT_STYLE,
4601     /**
4602      * @brief Defines the start date of the calendar picker.
4603      * This attribute can be set, reset, and obtained as required through APIs.
4604      *
4605      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4606      * .string: date. The value like <b>"1970-1-1"</b>. \n
4607      * \n
4608      * Format of the return value {@link ArkUI_AttributeItem}:\n
4609      * .string: date. \n
4610      *
4611      * @since 18
4612      */
4613     NODE_CALENDAR_PICKER_START = 16004,
4614     /**
4615      * @brief Defines the end date of the calendar picker.
4616      * This attribute can be set, reset, and obtained as required through APIs.
4617      *
4618      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4619      * .string: date. The value like <b>"2100-12-31"</b>. \n
4620      * \n
4621      * Format of the return value {@link ArkUI_AttributeItem}:\n
4622      * .string: date. \n
4623      *
4624      * @since 18
4625      */
4626     NODE_CALENDAR_PICKER_END = 16005,
4627     /**
4628      * @brief Defines the color of the slider. This attribute can be set, reset, and obtained as required through APIs.
4629      *
4630      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4631      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4632      * \n
4633      * Format of the return value {@link ArkUI_AttributeItem}:\n
4634      * .value[0].u32: color of the slider, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4635      *
4636      */
4637     NODE_SLIDER_BLOCK_COLOR = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
4638 
4639     /**
4640      * @brief Defines the background color of the slider. This attribute can be set, reset, and obtained as required
4641      * through APIs.
4642      *
4643      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4644      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4645      * \n
4646      * Format of the return value {@link ArkUI_AttributeItem}:\n
4647      * .value[0].u32: background color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4648      *
4649      */
4650     NODE_SLIDER_TRACK_COLOR,
4651 
4652     /**
4653      * @brief Defines the color of the selected part of the slider track. This attribute can be set, reset, and obtained
4654      * as required through APIs.
4655      *
4656      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4657      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
4658      * \n
4659      * Format of the return value {@link ArkUI_AttributeItem}:\n
4660      * .value[0].u32: color of the selected part of the slider track, in 0xARGB format, for example, <b>0xFF1122FF</b>.
4661      *
4662      */
4663     NODE_SLIDER_SELECTED_COLOR,
4664 
4665     /**
4666      * @brief Sets whether to display the stepping value. This attribute can be set, reset, and obtained as required
4667      * through APIs.
4668      *
4669      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4670      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4671      * and <b>0</b> (default value) means the opposite. \n
4672      * \n
4673      * Format of the return value {@link ArkUI_AttributeItem}:\n
4674      * .value[0].i32: whether to display the stepping value. The value <b>1</b> means to display the stepping value,
4675      * and <b>0</b> (default value) means the opposite. \n
4676      *
4677      */
4678     NODE_SLIDER_SHOW_STEPS,
4679 
4680     /**
4681      * @brief Defines the slider shape, which can be set, reset, and obtained as required through APIs.
4682      *
4683      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4684      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4685      * .string?: depending on the shape. Optional. \n
4686      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4687      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4688      * There are five types:\n
4689      * 1. Rectangle:\n
4690      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4691      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4692      * .value[2].f32: width of the rectangle.\n
4693      * .value[3].f32: height of the rectangle.\n
4694      * .value[4].f32: width of the rounded corner of the rectangle.\n
4695      * .value[5].f32: height of the rounded corner of the rectangle.\n
4696      * 2. Circle:\n
4697      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4698      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4699      * .value[2].f32: width of the circle.\n
4700      * .value[3].f32: height of the circle.\n
4701      * 3.Ellipse:\n
4702      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4703      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4704      * .value[2].f32: width of the ellipse.\n
4705      * .value[3].f32: height of the ellipse;\n
4706      * 4. Path:\n
4707      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4708      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4709      * .value[2].f32: width of the path.\n
4710      * .value[3].f32: height of the path.\n
4711      * .string: command for drawing the path.\n
4712      * \n
4713      * Format of the return value {@link ArkUI_AttributeItem}:\n
4714      * .value[0].i32: shape. The parameter type is {@link ArkUI_SliderBlockStyle}. \n
4715      * .string?: depending on the shape. Optional. \n
4716      * ARKUI_SLIDER_BLOCK_STYLE_IMAGE: image resource of the slider. Example: /pages/common/icon.png. \n
4717      * ARKUI_SLIDER_BLOCK_STYLE_SHAPE: custom shape of the slider. \n
4718       * There are five types:\n
4719      * 1. Rectangle:\n
4720      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4721      * The value is <b>ARKUI_SHAPE_TYPE_RECTANGLE</b> for the rectangle shape.\n
4722      * .value[2].f32: width of the rectangle.\n
4723      * .value[3].f32: height of the rectangle.\n
4724      * .value[4].f32: width of the rounded corner of the rectangle.\n
4725      * .value[5].f32: height of the rounded corner of the rectangle.\n
4726      * 2. Circle:\n
4727      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4728      * The value is <b>ARKUI_SHAPE_TYPE_CIRCLE</b> for the circle shape.\n
4729      * .value[2].f32: width of the circle.\n
4730      * .value[3].f32: height of the circle.\n
4731      * 3.Ellipse:\n
4732      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4733      * The value is <b>ARKUI_SHAPE_TYPE_ELLIPSE</b> for the ellipse shape.\n
4734      * .value[2].f32: width of the ellipse.\n
4735      * .value[3].f32: height of the ellipse;\n
4736      * 4. Path:\n
4737      * .value[1].i32: type of shape. The parameter type is {@link ArkUI_ShapeType}.
4738      * The value is <b>ARKUI_SHAPE_TYPE_PATH</b> for the path shape.\n
4739      * .value[2].f32: width of the path.\n
4740      * .value[3].f32: height of the path.\n
4741      * .string: command for drawing the path.\n
4742      *
4743      */
4744     NODE_SLIDER_BLOCK_STYLE,
4745 
4746     /**
4747      * @brief Defines the current value of the slider. This attribute can be set, reset, and obtained as required
4748      * through APIs.
4749      *
4750      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4751      * .value[0].f32: current value. \n
4752      * \n
4753      * Format of the return value {@link ArkUI_AttributeItem}:\n
4754      * .value[0].f32: current value.
4755      *
4756      */
4757     NODE_SLIDER_VALUE,
4758 
4759     /**
4760      * @brief Defines the minimum value of the slider. This attribute can be set, reset, and obtained as required
4761      * through APIs.
4762      *
4763      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4764      * .value[0].f32: minimum value. \n
4765      * \n
4766      * Format of the return value {@link ArkUI_AttributeItem}:\n
4767      * .value[0].f32: minimum value.
4768      *
4769      */
4770     NODE_SLIDER_MIN_VALUE,
4771 
4772     /**
4773      * @brief Defines the maximum value of the slider. This attribute can be set, reset, and obtained as required
4774      * through APIs.
4775      *
4776      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4777      * .value[0].f32: maximum value. \n
4778      * \n
4779      * Format of the return value {@link ArkUI_AttributeItem}:\n
4780      * .value[0].f32: maximum value.
4781      *
4782      */
4783     NODE_SLIDER_MAX_VALUE,
4784 
4785     /**
4786      * @brief Defines the step of the slider. This attribute can be set, reset, and obtained as required through APIs.
4787      *
4788      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4789      * .value[0].f32: step. The value range is [0.01, 100]. \n
4790      * \n
4791      * Format of the return value {@link ArkUI_AttributeItem}:\n
4792      * .value[0].f32: step. The value range is [0.01, 100].
4793      *
4794      */
4795     NODE_SLIDER_STEP,
4796 
4797     /**
4798      * @brief Defines whether the slider moves horizontally or vertically. This attribute can be set, reset, and
4799      * obtained as required through APIs.
4800      *
4801      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4802      * .value[0].i32: whether the slider moves horizontally or vertically.
4803      * The parameter type is {@link ArkUI_SliderDirection}. \n
4804      * \n
4805      * Format of the return value {@link ArkUI_AttributeItem}:\n
4806      * .value[0].i32: whether the slider moves horizontally or vertically.
4807      *
4808      */
4809     NODE_SLIDER_DIRECTION,
4810 
4811     /**
4812      * @brief Defines whether the slider values are reversed. This attribute can be set, reset, and obtained as required
4813      * through APIs.
4814      *
4815      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4816      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4817      * reversed, and <b>0</b> means the opposite. \n
4818      * \n
4819      * Format of the return value {@link ArkUI_AttributeItem}:\n
4820      * .value[0].i32: whether the slider values are reversed. The value <b>1</b> means that the slider values are
4821      * reversed, and <b>0</b> means the opposite.
4822      *
4823      */
4824     NODE_SLIDER_REVERSE,
4825 
4826     /**
4827      * @brief Defines the style of the slider thumb and track. This attribute can be set, reset, and obtained
4828      * as required through APIs.
4829      *
4830      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4831      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}. \n
4832      * \n
4833      * Format of the return value {@link ArkUI_AttributeItem}:\n
4834      * .value[0].i32: style of the slider thumb and track. The parameter type is {@link ArkUI_SliderStyle}.
4835      *
4836      */
4837     NODE_SLIDER_STYLE,
4838 
4839     /**
4840      * @brief Sets the track thickness of the slider.
4841      * This attribute can be set, reset, and obtained as required through APIs.
4842      *
4843      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4844      * .value[0].f32: track thickness of the slider, in vp. The default value is 4.0 vp when <b>NODE_SLIDER_STYLE</b>
4845      * is set to <b>ARKUI_SLIDER_STYLE_OUT_SET</b> and 20.0 vp when <b>NODE_SLIDER_STYLE</b> is set to
4846      * <b>ARKUI_SLIDER_STYLE_IN_SET</b>. \n
4847      * \n
4848      * Format of the return value {@link ArkUI_AttributeItem}:\n
4849      * .value[0].f32: track thickness of the slider, in vp. \n
4850      *
4851      */
4852     NODE_SLIDER_TRACK_THICKNESS,
4853 
4854     /**
4855      * @brief Defines whether haptic feedback.
4856      * This attribute can be set, reset, and obtained as required through APIs.
4857      *
4858      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
4859      * .value[0].i32: whether to feedback. The value <b>true</b> means to feedback, and
4860      * <b>false</b> means the opposite.\n
4861      * \n
4862      * Format of the return value {@link ArkUI_AttributeItem}:\n
4863      * value[0].i32: whether to feedback.\n
4864      * When enabling haptic feedback, you need to add "ohos.permission.VIBRATE" in the
4865      * requestPermissions field of the module.json5 file to enable vibration permission.\n
4866      *
4867      * @since 18
4868      */
4869     NODE_SLIDER_ENABLE_HAPTIC_FEEDBACK = 17013,
4870 
4871     /**
4872      * @brief Sets a custom component on the leading side of the Slider component.
4873      *
4874      * Attribute setting method {@link ArkUI_AttributeItem} parameter format:\n
4875      * .object: Parameter type {@link ArkUI_NodeHandle}.
4876      *
4877      * The prefix component will be placed at the start position of the Slider,
4878      * typically on the left side in LTR layouts.
4879 	 *
4880 	 * @since 20
4881      */
4882     NODE_SLIDER_PREFIX,
4883 
4884     /**
4885      * @brief Sets a custom component on the trailing side of the Slider component.
4886      *
4887      * Attribute setting method {@link link ArkUI_AttributeItem} parameter format:\n
4888      * .object: Parameter type {@link ArkUI_NodeHandle}.
4889      *
4890      * The suffix component will be placed at the end position of the Slider,
4891      * typically on the right side in LTR layouts.
4892 	 *
4893 	 * @since 20
4894      */
4895     NODE_SLIDER_SUFFIX,
4896 
4897     /**
4898      * @brief Set the selection status of an option button. Attribute setting,
4899      * attribute resetting, and attribute obtaining are supported.
4900      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4901      * .value[0].i32: check status of an option button. The default value is false.
4902      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4903      * .value[0].i32: selection status of an option button.
4904      */
4905     NODE_RADIO_CHECKED = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
4906     /**
4907      * @brief Set the styles of the selected and deselected states of the option button.
4908      * The attribute setting, attribute resetting, and attribute obtaining are supported.
4909      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4910      * .value[0]?. u32: color of the mother board in enabled state. \n
4911      * The type is 0xARGB, and the default value is 0xFF007DFF. \n
4912      * .value[1]?. u32: stroke color in the close state. The type is 0xARGB, \n
4913      * and the default value is 0xFF182431. \n
4914      * .value[2]?. u32: color of the internal round pie in the enabled state. \n
4915      * The type is 0xARGB, and the default value is 0xFFFFFFFF. \n
4916      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4917      * .value[0]. u32: color of the mother board in enabled state. \n
4918      * The type is 0xARGB, and the default value is 0xFF007DFF. \n
4919      * .value[1]. u32: stroke color in the close state. The type is 0xARGB, \n
4920      * and the default value is 0xFF182431. \n
4921      * .value[2]. u32: color of the internal round pie in the enabled state. \n
4922      * The type is 0xARGB, and the default value is 0xFFFFFFF. \n
4923      */
4924     NODE_RADIO_STYLE,
4925     /**
4926      * @brief Sets the value of the current radio.
4927      * This attribute can be set, reset, and obtained as required through APIs.
4928      *
4929      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4930      * .string: radio value.\n
4931      * \n
4932      * Format of the return value {@link ArkUI_AttributeItem}:\n
4933      * .string: radio value.\n
4934      *
4935      */
4936     NODE_RADIO_VALUE,
4937     /**
4938      * @brief Set the group name of the current Radio group, only one radio of the same group can be selected.
4939      * This attribute can be set, reset, and obtained as required through APIs.
4940      *
4941      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4942      * .string: name of the group to which the current option box belongs.\n
4943      * \n
4944      * Format of the return value {@link ArkUI_AttributeItem}:\n
4945      * .string: name of the group to which the current option box belongs.\n
4946      *
4947      */
4948     NODE_RADIO_GROUP,
4949 
4950     /**
4951      * @brief Set the image frames for the image animator. Dynamic updates is not supported.
4952      * This attribute can be set, reset, and obtained as required through APIs.
4953      *
4954      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4955      * .size: number of the images.\n
4956      * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
4957      * \n
4958      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4959      * .size: number of the images.\n
4960      * .object: array of the images, the type is {@ArkUI_ImageAnimatorFrameInfo} array.\n
4961      *
4962     */
4963     NODE_IMAGE_ANIMATOR_IMAGES = ARKUI_NODE_IMAGE_ANIMATOR * MAX_NODE_SCOPE_NUM,
4964     /**
4965      * @brief Set the playback status of the animation for the image animator.
4966      * This attribute can be set, reset, and obtained as required through APIs.
4967      *
4968      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4969      * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus},
4970      * and the default value is ARKUI_ANIMATION_STATUS_INITIAL.
4971      *
4972      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4973      * .value[0].i32: the playback status of the animation, the type is {@link ArkUI_AnimationStatus}.\n
4974      *
4975     */
4976     NODE_IMAGE_ANIMATOR_STATE = 19001,
4977     /**
4978      * @brief Set the playback duration for the image animator. When the duration is 0, no image is played.
4979      * The value change takes effect only at the beginning of the next cycle.
4980      * When a separate duration is set in images, the setting of this attribute is invalid.
4981      * This attribute can be set, reset, and obtained as required through APIs.
4982      *
4983      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4984      * .value[0].i32: the playback duration, the unit is ms and the default value is 1000.\n
4985      *
4986      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
4987      * .value[0].i32: the playback duration, the unit is ms.\n
4988      *
4989     */
4990     NODE_IMAGE_ANIMATOR_DURATION = 19002,
4991     /**
4992      * @brief Set the playback direction for the image animator.
4993      * This attribute can be set, reset, and obtained as required through APIs.
4994      *
4995      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
4996      * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
4997      * and 1 indicates that images are played from the last one to the first one.\n
4998      *
4999      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
5000      * .value[0].i32: the playback direction. 0 indicates that images are played from the first one to the last one,
5001      * and 1 indicates that images are played from the last one to the first one.\n
5002      *
5003     */
5004     NODE_IMAGE_ANIMATOR_REVERSE = 19003,
5005     /**
5006      * @brief Set whether the image size is the same as the component size.
5007      * This attribute can be set, reset, and obtained as required through APIs.
5008      *
5009      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
5010      * .value[0].i32: whether the image size is the same as the component size.
5011      * 1 indicates the image size is the same as the component size.
5012      * In this case, the width, height, top, and left attributes of the image are invalid.
5013      * 0 indicates the image size is customized.
5014      * The width, height, top, and left attributes of each image must be set separately.
5015      *
5016      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
5017      * .value[0].i32: whether the image size is the same as the component size.
5018      * 1 indicates the image size is the same as the component size.
5019      * 0 indicates the image size is customized.
5020      *
5021     */
5022     NODE_IMAGE_ANIMATOR_FIXED_SIZE = 19004,
5023     /**
5024      * @brief Set the status before and after execution of the animation in the current playback direction.
5025      * This attribute can be set, reset, and obtained as required through APIs.
5026      *
5027      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
5028      * .value[0].i32: the status before and after execution of the animation in the current playback direction,
5029      * the type is {ArkUI_AnimationFillMode} and the default value is ARKUI_ANIMATION_FILL_MODE_FORWARDS.\n
5030      *
5031      * Attribute obtaining method return value {@Link ArkUI_AttributeItem} format:\n
5032      * .value[0].i32: the status before and after execution of the animation in the current playback direction,
5033      * the type is {ArkUI_AnimationFillMode}.
5034      *
5035     */
5036     NODE_IMAGE_ANIMATOR_FILL_MODE = 19005,
5037     /**
5038      * @brief Set the number of times that the animation is played.
5039      * This attribute can be set, reset, and obtained as required through APIs.
5040      *
5041      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
5042      * .value[0].i32: the number of times that the animation is played.\n
5043      *
5044      * Attribute setting method {@Link ArkUI_AttributeItem} Parameter format:\n
5045      * .value[0].i32: the number of times that the animation is played.\n
5046      *
5047     */
5048     NODE_IMAGE_ANIMATOR_ITERATION = 19006,
5049 
5050     /**
5051      * @brief Defines the name of the checkboxgroup.
5052      * This attribute can be set, reset, and obtained as required through APIs.
5053      *
5054      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5055      * .string: component name. \n
5056      * \n
5057      * Format of the return value {@link ArkUI_AttributeItem}:\n
5058      * .string: component name. \n
5059      *
5060      * @since 15
5061      */
5062     NODE_CHECKBOX_GROUP_NAME  = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
5063 
5064     /**
5065      * @brief Defines whether the checkboxgroup is selected.
5066      * This attribute can be set, reset, and obtained as required through APIs.
5067      *
5068      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5069      * .value[0].i32: whether the checkboxgroup is selected.
5070      * The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
5071      * \n
5072      * Format of the return value {@link ArkUI_AttributeItem}:\n
5073      * .value[0].i32: The value <b>1</b> means that the checkboxgroup is selected, and <b>0</b> means the opposite. \n
5074      *
5075      * @since 15
5076      */
5077     NODE_CHECKBOX_GROUP_SELECT_ALL,
5078 
5079     /**
5080      * @brief Defines the color of the checkboxgroup when it is selected.
5081      * This attribute can be set, reset, and obtained as required through APIs.
5082      *
5083      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5084      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format,
5085      * for example, <b>0xFF1122FF</b>. \n
5086      * \n
5087      * Format of the return value {@link ArkUI_AttributeItem}:\n
5088      * .value[0].u32: color of the checkboxgroup when it is selected, in 0xARGB format, for example, <b>0xFF1122FF</b>.
5089      *
5090      * @since 15
5091      */
5092     NODE_CHECKBOX_GROUP_SELECTED_COLOR,
5093     /**
5094      * @brief Defines the border color of the checkboxgroup when it is not selected.
5095      * This attribute can be set, reset, and obtained as required through APIs.
5096      *
5097      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5098      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>. \n
5099      * \n
5100      * Format of the return value {@link ArkUI_AttributeItem}:\n
5101      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.
5102      *
5103      * @since 15
5104      */
5105     NODE_CHECKBOX_GROUP_UNSELECTED_COLOR,
5106 
5107     /**
5108      * @brief Defines the internal icon style of the checkboxgroup.
5109      * This attribute can be set, reset, and obtained as required through APIs.
5110      *
5111      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5112      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
5113      * .value[1]?.f32: size of the internal mark, in vp. Optional.\n
5114      * .value[2]?.f32: stroke width of the internal mark, in vp. Optional. The default value is <b>2</b>. \n
5115      * \n
5116      * Format of the return value {@link ArkUI_AttributeItem}:\n
5117      * .value[0].u32: border color, in 0xARGB format, for example, <b>0xFF1122FF</b>.\n
5118      * .value[1].f32: size of the internal mark, in vp. \n
5119      * .value[2].f32: stroke width of the internal mark, in vp. The default value is <b>2</b>. \n
5120      *
5121      * @since 15
5122      */
5123     NODE_CHECKBOX_GROUP_MARK,
5124 
5125     /**
5126      * @brief Defines the shape of the checkboxgroup.
5127      * This attribute can be set, reset, and obtained as required through APIs.
5128      *
5129      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5130      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}. \n
5131      * \n
5132      * Format of the return value {@link ArkUI_AttributeItem}:\n
5133      * .value[0].i32: component shape. The parameter type is {@link ArkUI_CheckboxShape}.
5134      *
5135      * @since 15
5136      */
5137     NODE_CHECKBOX_GROUP_SHAPE,
5138 
5139     /**
5140      * @brief Defines the alignment mode of the child components in the container. This attribute can be set, reset,
5141      * and obtained as required through APIs.
5142      *
5143      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5144      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}.
5145      * The default value is <b>ARKUI_ALIGNMENT_CENTER</b>. \n
5146      * \n
5147      * Format of the return value {@link ArkUI_AttributeItem}:\n
5148      * .value[0].i32: alignment mode. The data type is {@link ArkUI_Alignment}. \n
5149      *
5150      */
5151     NODE_STACK_ALIGN_CONTENT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_STACK,
5152 
5153     /**
5154      * @brief Defines the scrollbar status. This attribute can be set, reset, and obtained as required through APIs.
5155      *
5156      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5157      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. The default value is
5158      * <b>ARKUI_SCROLL_BAR_DISPLAY_MODE_AUTO</b>. \n
5159      * \n
5160      * Format of the return value {@link ArkUI_AttributeItem}:\n
5161      * .value[0].i32: scrollbar status. The parameter type is {@link ArkUI_ScrollBarDisplayMode}. \n
5162      *
5163      */
5164     NODE_SCROLL_BAR_DISPLAY_MODE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
5165     /**
5166      * @brief Defines the width of the scrollbar. This attribute can be set, reset, and obtained as required
5167      * through APIs.
5168      *
5169      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5170      * .value[0].f32: width of the scrollbar, in vp. The default value is <b>4</b>. \n
5171      * \n
5172      * Format of the return value {@link ArkUI_AttributeItem}:\n
5173      * .value[0].f32: width of the scrollbar, in vp. \n
5174      *
5175      */
5176     NODE_SCROLL_BAR_WIDTH,
5177     /**
5178      * @brief Defines the color of the scrollbar. This attribute can be set, reset, and obtained as required
5179      * through APIs.
5180      *
5181      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5182      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
5183      * \n
5184      * Format of the return value {@link ArkUI_AttributeItem}:\n
5185      * .data[0].u32: color of the scrollbar, in 0xARGB format. \n
5186      *
5187      */
5188     NODE_SCROLL_BAR_COLOR,
5189     /**
5190      * @brief Defines the scroll direction. This attribute can be set, reset, and obtained as required through APIs.
5191      *
5192      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5193      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}.
5194      * The default value is <b>ARKUI_SCROLL_DIRECTION_VERTICAL</b>. \n
5195      * \n
5196      * Format of the return value {@link ArkUI_AttributeItem}:\n
5197      * .value[0].i32: scroll direction. The parameter type is {@link ArkUI_ScrollDirection}. \n
5198      *
5199      */
5200     NODE_SCROLL_SCROLL_DIRECTION,
5201     /**
5202      * @brief Defines the effect used at the edges of the component when the boundary of the scrollable content is
5203      * reached. This attribute can be set, reset, and obtained as required through APIs.
5204      *
5205      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5206      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
5207      * The parameter type is {@link ArkUI_EdgeEffect}. The default value is <b>ARKUI_EDGE_EFFECT_NONE</b>.\n
5208      * .value[1]?.i32: whether to enable the scroll effect when the component content size is smaller than the
5209      * component itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the
5210      * opposite. The default value for the List/Grid/WaterFlow component is <b>0</b>, and the default value for the
5211      * Scroll component is <b>1</b>. \n
5212      * .value[2]?.i32: direction in which the effect takes effect. The parameter type is {@link ArkUI_EffectEdge}.
5213      * The default value is <b>ARKUI_EFFECT_EDGE_START | ARKUI_EFFECT_EDGE_END</b>. This parameter is supported since
5214      * API version 16. \n
5215      * \n
5216      * Format of the return value {@link ArkUI_AttributeItem}:\n
5217      * .value[0].i32: effect used at the edges of the component when the boundary of the scrollable content is reached.
5218      * The parameter type is {@link ArkUI_EdgeEffect}. \n
5219      * .value[1].i32: whether to enable the scroll effect when the component content size is smaller than the component
5220      * itself. Optional. The value <b>1</b> means to enable the scroll effect, and <b>0</b> means the opposite. \n
5221      * .value[2].i32: edge for which the effect takes effect when the boundary of the scrollable content is reached.
5222      * The parameter type is {@link ArkUI_EffectEdge}. This parameter is supported since API version 16. \n
5223      *
5224      */
5225     NODE_SCROLL_EDGE_EFFECT,
5226     /**
5227      * @brief Defines whether to support scroll gestures. When this attribute is set to <b>false</b>, scrolling by
5228      * finger or mouse is not supported, but the scroll controller API is not affected.
5229      *
5230      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5231      * .value[0].i32: whether to support scroll gestures. The default value is <b>true</b>. \n
5232      * \n
5233      * Format of the return value {@link ArkUI_AttributeItem}:\n
5234      * .value[0].i32: whether to support scroll gestures. \n
5235      *
5236      */
5237     NODE_SCROLL_ENABLE_SCROLL_INTERACTION,
5238     /**
5239      * @brief Defines the friction coefficient. It applies only to gestures in the scrolling area, and it affects only
5240      * indirectly the scroll chaining during the inertial scrolling process.
5241      *
5242      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5243      * .value[0].f32: friction coefficient. The default value is <b>0.6</b> for non-wearable devices and <b>0.9</b>
5244      * for wearable devices. \n
5245      * \n
5246      * Format of the return value {@link ArkUI_AttributeItem}:\n
5247      * .value[0].f32: friction coefficient.
5248      *
5249      */
5250     NODE_SCROLL_FRICTION,
5251     /**
5252      * @brief Defines the scroll snapping mode. This attribute can be set, reset, and obtained as required through APIs.
5253      *
5254      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5255      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5256      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5257      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
5258      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5259      * start edge and the first snap point. The default value is <b>true</b>. It is valid only when there are multiple
5260      * snap points.\n
5261      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
5262      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5263      * end edge and the last snap point. The default value is <b>true</b>. It is valid only when there are multiple
5264      * snap points.\n
5265      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an
5266      * edge to which the <b><Scroll></b> component can scroll.  \n
5267      * \n
5268      * Format of the return value {@link ArkUI_AttributeItem}:\n
5269      * .value[0].i32: alignment mode for the scroll snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5270      * .value[1].i32: whether to enable the snap to start feature. When scroll snapping is defined for the
5271      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5272      * start edge and the first snap point.\n
5273      * .value[2].i32: Whether to enable the snap to end feature. When scroll snapping is defined for the
5274      * <b><Scroll></b> component, setting this attribute to <b>false</b> enables the component to scroll between the
5275      * end edge and the last snap point.\n
5276      * .value[3...].f32: snap points for the <b><Scroll></b> component. Each snap point defines the offset from an edge
5277      * to which the <b><Scroll></b> component can scroll. \n
5278      *
5279      */
5280     NODE_SCROLL_SNAP,
5281 
5282     /**
5283      * @brief Defines the nested scrolling options. This attribute can be set, reset, and obtained as required
5284      * through APIs.
5285      *
5286      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5287      * .value[0].i32: nested scrolling option when the component scrolls forward.
5288      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5289      * .value[1].i32: nested scrolling option when the component scrolls backward.
5290      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5291      * \n
5292      * Format of the return value {@link ArkUI_AttributeItem}:\n
5293      * .value[0].i32: nested scrolling option when the component scrolls forward.
5294      * The parameter type is {@link ArkUI_ScrollNestedMode}. \n
5295      * .value[1].i32: nested scrolling option when the component scrolls backward.
5296      * The parameter type is {@link ArkUI_ScrollNestedMode}.
5297      *
5298      */
5299     NODE_SCROLL_NESTED_SCROLL,
5300     /**
5301      * @brief Defines the specified position to scroll to. This attribute can be set, reset, and obtained as required
5302      * through APIs.
5303      *
5304      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5305      * .value[0].f32: horizontal scrolling offset, in vp. \n
5306      * .value[1].f32: vertical scrolling offset, in vp. \n
5307      * .value[2]?.i32: scrolling duration, in milliseconds. Optional. \n
5308      * .value[3]?.i32: scrolling curve. Optional. The parameter type is {@link ArkUI_AnimationCurve}.
5309      *                 The default value is <b>ARKUI_CURVE_EASE</b>. \n
5310      * .value[4]?.i32: whether to enable the default spring animation. Optional.
5311      *                 The default value <b>0</b> means not to enable the default spring animation. \n
5312      * .value[5]?.i32: whether to convert the scroll animation to an overshoot animation when the boundary is reached.
5313      *                 Optional. \n
5314      * .value[6]?.i32: whether the component can stop at an overscrolled position.
5315      *                 This parameter is supported since API version 20. \n
5316      * \n
5317      * Format of the return value {@link ArkUI_AttributeItem}:\n
5318      * .value[0].f32: horizontal scrolling offset, in vp. \n
5319      * .value[1].f32: vertical scrolling offset, in vp. \n
5320      *
5321      */
5322     NODE_SCROLL_OFFSET,
5323 
5324     /**
5325      * @brief Defines the edge position to scroll to. This attribute can be set and obtained as required through APIs.
5326      *
5327      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5328      * .value[0].i32: edge position to scroll to. The parameter type is {@link ArkUI_ScrollEdge}. \n
5329      * \n
5330      * Format of the return value {@link ArkUI_AttributeItem}:\n
5331      * .value[0].i32: whether the container at the edge position. The value <b>-1</b> means that the container is not
5332      * at the edge position. If the container is at the edge position, the parameter type is {@link ArkUI_ScrollEdge}.
5333      *
5334      */
5335     NODE_SCROLL_EDGE,
5336 
5337     /**
5338      * @brief Defines whether to enable the swipe-to-turn-pages feature. This attribute can be set, reset, and obtained
5339      * as required through APIs.
5340      *
5341      * If both <b>enablePaging</b> and <b>scrollSnap</b> are set, <b>scrollSnap</b> takes effect, but
5342      * <b>enablePaging</b> does not. \n
5343      * \n
5344      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5345      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. The default value is <b>false</b>. \n
5346      * \n
5347      * Format of the return value {@link ArkUI_AttributeItem}:\n
5348      * .value[0].i32: whether to enable the swipe-to-turn-pages feature. \n
5349      *
5350      */
5351     NODE_SCROLL_ENABLE_PAGING,
5352 
5353     /**
5354      * @brief Scroll to the next or previous page.
5355      *
5356      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5357      * .value[0].i32 Indicates whether to scroll to next page. Value 0 indicates scroll to next page and value 1
5358      * indicates scroll to previous page. \n
5359      * .value[1]?.i32 Indicates whether to enable animation. Value 1 indicates enable and 0 indicates disable. \n
5360      *
5361      */
5362     NODE_SCROLL_PAGE,
5363 
5364     /**
5365      * @brief Scroll a specified distance.
5366      *
5367      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5368      * .value[0].f32:Horizontal scrolling distance in vp; \n
5369      * .value[1].f32: Vertical scrolling distance in vp; \n
5370      *
5371      */
5372     NODE_SCROLL_BY,
5373 
5374     /**
5375      * @brief Performs inertial scrolling based on the initial velocity passed in.
5376      *
5377      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5378      * .value[0].f32: Initial velocity of inertial scrolling. Unit: vp/s. If the value specified is 0, it is
5379      * considered as invalid, and the scrolling for this instance will not take effect. If the value is positive,
5380      * the scroll will move downward; if the value is negative, the scroll will move upward. \n
5381      *
5382      * @since 13
5383      */
5384     NODE_SCROLL_FLING,
5385 
5386     /**
5387     * @brief Sets the fading effect for the edges of scrollable components.
5388     *
5389     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:
5390     * .value[0].i32: whether to enable the fading effect on edges. The value 0 means to disable the fading effect,
5391     * and 1 means to enable it.
5392     * .value[1]?.f32: length of the fading effect on edges, in vp. Default value: 32.
5393     *
5394     * Format of the return value {@link ArkUI_AttributeItem}:
5395     * .value[0].i32: whether the fading effect on edges is enabled. The value 0 means that the fading effect is
5396     * disabled, and 1 means that it is enabled.
5397     * .value[1].f32: length of the fading effect on edges, in vp.
5398     *
5399     * @since 14
5400     */
5401     NODE_SCROLL_FADING_EDGE,
5402 
5403     /**
5404      * @brief Obtains the total size of all child components when fully expanded in the scrollable component.
5405      *
5406      * Format of the return value {@link ArkUI_AttributeItem}:\n
5407      * .value[0].f32: total width of all child components when fully expanded in the scrollable component.
5408      *                The default unit is vp. \n
5409      * .value[1].f32: total height of all child components when fully expanded in the scrollable component.
5410      *                The default unit is vp. \n
5411      * When <b>NODE_PADDING</b>, <b>NODE_MARGIN</b>, or <b>NODE_BORDER_WIDTH</b> is set, the values are rounded to the
5412      * nearest pixel when being converted from vp to px.
5413      * The returned values are calculated based on these rounded pixel values. \n
5414      *
5415      * @since 14
5416      */
5417     NODE_SCROLL_SIZE,
5418 
5419     /**
5420      * @brief Sets the offset from the start of the scrollable components content.
5421      *
5422      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5423      * .value[0].f32: offset from the start of the content, in vp. \n
5424      * \n
5425      * Format of the return value {@link ArkUI_AttributeItem}:\n
5426      * .value[0].f32: offset from the start of the content, in vp. \n
5427      *
5428      * @since 15
5429      */
5430     NODE_SCROLL_CONTENT_START_OFFSET,
5431 
5432     /**
5433      * @brief Sets the offset from the end of the scrollable components content.
5434      *
5435      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5436      * .value[0].f32: offset from the end of the content, in vp. \n
5437      * \n
5438      * Format of the return value {@link ArkUI_AttributeItem}:\n
5439      * .value[0].f32: offset from the end of the content, in vp. \n
5440      *
5441      * @since 15
5442      */
5443     NODE_SCROLL_CONTENT_END_OFFSET,
5444 
5445     /**
5446      * @brief Defines the maximum starting fling speed of the scrollable when the fling animation starts.
5447      * This attribute can be set, reset, and obtained as required through APIs.
5448      *
5449      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5450      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5451      * \n
5452      * Format of the return value {@link ArkUI_AttributeItem}: \n
5453      * .value[0].f32: maximum starting fling speed, Unit: vp/s \n
5454      *
5455      * @since 18
5456      */
5457     NODE_SCROLL_FLING_SPEED_LIMIT = 1002019,
5458 
5459     /**
5460      * @brief Defines the clip mode of the scrollable.
5461      * This attribute can be set, reset, and obtained as required through APIs.
5462      *
5463      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5464      * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
5465      * \n
5466      * Format of the return value {@link ArkUI_AttributeItem}: \n
5467      * .value[0].i32: clip content mode, The parameter type is {@link ArkUI_ContentClipMode}. \n
5468      *
5469      * @since 18
5470      */
5471     NODE_SCROLL_CLIP_CONTENT = 1002020,
5472 
5473     /**
5474      * @brief Defines whether the scrollable scrolls back to top when status bar is clicked.
5475      * This attribute can be set, reset, and obtained as required through APIs.
5476      *
5477      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute: \n
5478      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked.
5479      * The value <b>1</b> means to scroll back to top, and <b>0</b> means the opposite. The default value is <b>0/b>. \n
5480      * \n
5481      * Format of the return value {@link ArkUI_AttributeItem}: \n
5482      * .value[0].i32: whether the scrollable scrolls back to top when status bar is clicked. \n
5483      *
5484      * @since 15
5485      */
5486     NODE_SCROLL_BACK_TO_TOP = 1002021,
5487 
5488     /**
5489      * @brief Defines the margin of the scrollbar.
5490      * This attribute can be set, reset, and obtained as required through APIs.
5491      *
5492      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5493      * .value[0].f32: start margin of the scrollbar, in vp. The default value is <b>0</b>. \n
5494      * .value[1].f32: end margin of the scrollbar, in vp. The default value is <b>0</b>. \n
5495      * \n
5496      * Format of the return value {@link ArkUI_AttributeItem}:\n
5497      * .value[0].f32: start margin of the scrollbar, in vp. \n
5498      * .value[1].f32: end margin of the scrollbar, in vp. \n
5499      *
5500      * @since 20
5501      */
5502     NODE_SCROLL_BAR_MARGIN = 1002022,
5503 
5504     /**
5505      * @brief Sets the maximum zoom scale for scrollable content.
5506      *
5507      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5508      * .value[0].f32: maximum zoom scale to set. \n
5509      * \n
5510      * Format of the return value {@link ArkUI_AttributeItem}:\n
5511      * .value[0].f32: current maximum zoom scale. \n
5512      *
5513      * @since 20
5514      */
5515     NODE_SCROLL_MAX_ZOOM_SCALE = 1002023,
5516 
5517     /**
5518      * @brief Sets the minimum zoom scale for scrollable content.
5519      *
5520      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5521      * .value[0].f32: minimum zoom scale to set. \n
5522      * \n
5523      * Format of the return value {@link ArkUI_AttributeItem}:\n
5524      * .value[0].f32: current minimum zoom scale. \n
5525      *
5526      * @since 20
5527      */
5528     NODE_SCROLL_MIN_ZOOM_SCALE = 1002024,
5529 
5530     /**
5531      * @brief Sets the zoom scale for scrollable content.
5532      *
5533      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5534      * .value[0].f32: zoom scale to set. \n
5535      * \n
5536      * Format of the return value {@link ArkUI_AttributeItem}:\n
5537      * .value[0].f32: current zoom scale. \n
5538      *
5539      * @since 20
5540      */
5541     NODE_SCROLL_ZOOM_SCALE = 1002025,
5542 
5543     /**
5544      * @brief Sets whether to enable the zoom bounce effect when the scaling exceeds the limits.
5545      *
5546      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5547      * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
5548      * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
5549      * \n
5550      * Format of the return value {@link ArkUI_AttributeItem}:\n
5551      * .value[0].i32: whether to enable the zoom bounce effect when the scaling exceeds the limits.
5552      * The value <b>1</b> means to enable the effect, and <b>0</b> means the opposite. \n
5553      *
5554      * @since 20
5555      */
5556     NODE_SCROLL_ENABLE_BOUNCES_ZOOM = 1002026,
5557 
5558     /**
5559      * @brief Sets the direction in which the list items are arranged.
5560      * This attribute can be set, reset, and obtained as required through APIs.
5561      *
5562      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5563      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}.
5564      * The default value is <b>ARKUI_AXIS_VERTICAL</b>. \n
5565      * \n
5566      * Format of the return value {@link ArkUI_AttributeItem}:\n
5567      * .value[0].i32: direction in which the list items are arranged. The parameter type is {@link ArkUI_Axis}. \n
5568      *
5569      */
5570     NODE_LIST_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
5571     /**
5572      * @brief Defines whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5573      * component. This attribute can be set, reset, and obtained as required through APIs.
5574      *
5575      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5576      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5577      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5578      * {@link ArkUI_StickyStyle}. The default value is <b>ARKUI_STICKY_STYLE_NONE</b>. \n
5579      * \n
5580      * Format of the return value {@link ArkUI_AttributeItem}:\n
5581      * .value[0].i32: whether to pin the header to the top or the footer to the bottom in the <b><ListItemGroup></b>
5582      * component. It is used together with the <b><ListItemGroup></b> component. The parameter type is
5583      * {@link ArkUI_StickyStyle}.
5584      *
5585      */
5586     NODE_LIST_STICKY,
5587     /**
5588      * @brief Defines the spacing between list items. This attribute can be set, reset, and obtained as required
5589      * through APIs.
5590      *
5591      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5592      * .value[0].f32: spacing between list items along the main axis. The default value is <b>0</b>. \n
5593      * \n
5594      * Format of the return value {@link ArkUI_AttributeItem}:\n
5595      * .value[0].f32: spacing between list items along the main axis. \n
5596      *
5597      */
5598     NODE_LIST_SPACE,
5599     /**
5600     * @brief Defines the list adapter. The attribute can be set, reset, and obtained as required through APIs.
5601     *
5602     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5603     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
5604     */
5605     NODE_LIST_NODE_ADAPTER,
5606 
5607     /**
5608      * @brief Sets the number of cached items in the list adapter.
5609      * This attribute can be set, reset, and obtained as required through APIs.
5610      *
5611      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5612      * .value[0].i32: number of cached items in the list adapter. \n
5613      * .value[1]?.i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5614      * to show cached items. The default value is <b>0</b>. This parameter is supported since API version 15. \n
5615      * \n
5616      * Format of the return value {@link ArkUI_AttributeItem}:\n
5617      * .value[0].i32: number of cached items in the list adapter. \n
5618      * .value[1].i32: whether to show cached items. The value <b>0</b> means to hide cached items, and <b>0</b> means
5619      * to show cached items. This parameter is supported since API version 15. \n
5620      *
5621      */
5622     NODE_LIST_CACHED_COUNT,
5623 
5624     /**
5625      * @brief Scroll to the specified index.
5626      *
5627      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
5628      * lead to performance issues when loading a large number of items.\n
5629      * \n
5630      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5631      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
5632      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
5633      * 1 indicates an action and 0 indicates no action. Default value: 0。\n
5634      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
5635      * {@link ArkUI_ScrollAlignment}, default value is ARKUI_SCROLL_ALIGNMENT_START. \n
5636      * .value[3]?.f32: extra offset, in vp. The default value is <b>0</b>.
5637      * This parameter is supported since API version 15. \n
5638      *
5639      */
5640     NODE_LIST_SCROLL_TO_INDEX,
5641     /**
5642      * @brief Sets the alignment mode of list items along the cross axis when the cross-axis width of the list is
5643      * greater than the cross-axis width of list items multiplied by the value of lanes.
5644      * This attribute can be set, reset, and obtained as required through APIs.
5645      *
5646      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5647      * .value[0].i32: alignment mode of list items along the cross axis.
5648      * The parameter type is {@link ArkUI_ListItemAlignment}. \n
5649      * \n
5650      * Format of the return value {@link ArkUI_AttributeItem}:\n
5651      * .value[0].i32: alignment mode of list items along the cross axis.
5652      * The parameter type is {@link ArkUI_ListItemAlignment}. \n
5653     */
5654     NODE_LIST_ALIGN_LIST_ITEM,
5655 
5656     /**
5657      * @brief Set the default spindle size for the List subcomponent.
5658      *
5659      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5660      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5661      * \n
5662      * Format of the return value {@link ArkUI_AttributeItem}:\n
5663      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
5664      */
5665     NODE_LIST_CHILDREN_MAIN_SIZE = 1003007,
5666 
5667     /**
5668      * @brief Set the index value of the item displayed at the start of the viewport
5669      * when the current List is first loaded.This attribute can be set, reset, and obtained as required through APIs.
5670      *
5671      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5672      * .value[0].i32: index value of the item displayed at
5673      * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
5674      * \n
5675      * Format of the return value {@link ArkUI_AttributeItem}:\n
5676      * .value[0].i32: index value of the item displayed at
5677      * the start of the viewport when the current List is loaded for the first time. Default value: 0.\n
5678      */
5679     NODE_LIST_INITIAL_INDEX = 1003008,
5680     /**
5681      * @brief sets the ListItem splitter style. By default, there is no splitter.
5682      * This attribute can be set, reset, and obtained as required through APIs.
5683      *
5684      * Attribute setting method parameter {@link ArkUI_AttributeItem} Format: \n
5685      *.value[0].u32: divider color, type 0xargb; \n
5686      *.value[1].f32: dividing line width; \n
5687      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5688      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5689      * \n
5690      * Attribute fetch method return value {@link ArkUI_AttributeItem} format: \n
5691      *.value[0].u32: divider color, type 0xargb; \n
5692      *.value[1].f32: dividing line width; \n
5693      *.value[2].f32: the distance between the divider and the beginning of the side of the list, unit vp; \n
5694      *.value[3].f32: the distance between the divider and the end of the side of the list (unit: vp). \n
5695      *
5696      */
5697     NODE_LIST_DIVIDER = 1003009,
5698 
5699     /**
5700      * @brief Scrolls to the item with the specified index in the specified list item group.
5701      *
5702      * When <b>smooth</b> is set to <b>true</b>, all passed items are loaded and counted in layout calculation.
5703      * This may result in performance issues if a large number of items are involved. \n
5704      * \n
5705      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5706      * .value[0].i32: index of the target list item group in the current list. \n
5707      *.value[1].i32: index of the target list item in the list item group. \n
5708      * .value[2]?.i32: whether to enable the smooth animation for scrolling to the item with the specified index.
5709      * The value <b>1</b> means to enable the animation, and <b>0</b> means the opposite.
5710      * The default value is <b>0</b>. \n
5711      * .value[3]?.i32: how the item to scroll to is aligned with the container. The parameter type is
5712      * {@link ArkUI_ScrollAlignment}. The default value is <b>ARKUI_SCROLL_ALIGNMENT_START</b>. \n
5713      *
5714      * @since 15
5715      */
5716     NODE_LIST_SCROLL_TO_INDEX_IN_GROUP = 1003010,
5717 
5718     /**
5719      * @brief Sets the number of lanes in the list.
5720      * This attribute can be set, reset, and obtained as required through APIs.
5721      *
5722      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5723      * .value[0].u32: number of lanes in the list. If the maximum and minimum lane widths are set, setting the number
5724      * of lanes will not take effect. \n
5725      * .value[1]?.f32: minimum lane width, in vp. \n
5726      * .value[2]?.f32: maximum column width, in vp. \n
5727      * .value[3]?.f32: lane spacing, in vp. \n
5728      * \n
5729      * Format of the return value {@link ArkUI_AttributeItem}:\n
5730      * .value[0].u32: number of lanes in the list. \n
5731      * .value[1].f32: minimum lane width, in vp. \n
5732      * .value[2].f32: maximum column width, in vp. \n
5733      * .value[3].f32: lane spacing, in vp. \n \n
5734      *
5735      * @since 15
5736      */
5737     NODE_LIST_LANES = 1003011,
5738 
5739     /**
5740      * @brief Sets the list snap alignment mode.
5741      *
5742      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5743      * .value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.
5744      * The default value is <b>ARKUI_SCROLL_SNAP_ALIGN_NONE</b>.\n
5745      * \n
5746      * Format of the return value {@link ArkUI_AttributeItem}:\n
5747      *.value[0].i32: alignment mode for the list snap position. The parameter type is {@link ArkUI_ScrollSnapAlign}.\n
5748      *
5749      * @since 15
5750      */
5751     NODE_LIST_SCROLL_SNAP_ALIGN = 1003012,
5752 
5753     /**
5754      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside the
5755      * display area of the <b>List</b> component.
5756      *
5757      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5758      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5759      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5760      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5761      * \n
5762      * Format of the return value {@link ArkUI_AttributeItem}:\n
5763      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside the
5764      * display area of the <b>List</b> component. The value <b>0</b> means not to maintain the visible content's
5765      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
5766      *
5767      * @since 15
5768      */
5769     NODE_LIST_MAINTAIN_VISIBLE_CONTENT_POSITION = 1003013,
5770 
5771     /**
5772      * @brief Sets whether the <b>List</b> component starts layout from the end.
5773      *
5774      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5775      * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
5776      * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
5777      * \n
5778      * Format of the return value {@link ArkUI_AttributeItem}:\n
5779      * .value[0].i32: whether the <b>List</b> component starts layout from the end. The value <b>0</b> means layout
5780      * starts from the top, and <b>1</b> means layout starts from the end. The default value is <b>0</b>. \n
5781      *
5782      * @since 19
5783      */
5784     NODE_LIST_STACK_FROM_END = 1003014,
5785 
5786     /**
5787      * @brief Defines the focus wrap mode for the <b>List</b> component.
5788      * This attribute can be set, reset, and obtained as required through APIs.
5789      *
5790      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5791      * .value[0].i32: focus wrap mode of the <b>List</b> component.
5792      *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
5793      * \n
5794      * Format of the return value {@link ArkUI_AttributeItem}:\n
5795      * .value[0].i32: focus wrap mode of the <b>List</b> component.
5796      *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
5797      *
5798      * @since 20
5799      */
5800     NODE_LIST_FOCUS_WRAP_MODE = 1003015,
5801 
5802     /**
5803      * @brief Defines whether the <b>List</b> component loads child nodes synchronously.
5804      * This attribute can be set, reset, and obtained as required through APIs.
5805      *
5806      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5807      * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
5808      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
5809      * \n
5810      * Format of the return value {@link ArkUI_AttributeItem}:\n
5811      * .value[0].i32: whether the <b>List</b> component synchronously loads child nodes.
5812      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
5813      *
5814      * @since 20
5815      */
5816     NODE_LIST_SYNC_LOAD = 1003016,
5817 
5818     /**
5819      * @brief Defines whether to enable loop playback for the swiper.
5820      * This attribute can be set, reset, and obtained as required through APIs.
5821      *
5822      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5823      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5824      * means the opposite. The default value is <b>1/b>. \n
5825      * \n
5826      * Format of the return value {@link ArkUI_AttributeItem}:\n
5827      * .value[0].i32: whether to enable loop playback. The value <b>1</b> means to enable loop playback, and <b>0</b>
5828      * means the opposite. The default value is <b>1</b>. \n
5829      *
5830      */
5831     NODE_SWIPER_LOOP = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
5832     /**
5833      * @brief Defines whether to enable automatic playback for child component switching in the swiper.
5834      * This attribute can be set, reset, and obtained as required through APIs.
5835      *
5836      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5837      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b>
5838      * means to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5839      * \n
5840      * .value[1]?.i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means
5841      * to stop automatic playback, and <b>0</b> means the opposite. The default value is <b>1</b>. This parameter is
5842      * supported since API version 16. \n
5843      * \n
5844      * Format of the return value {@link ArkUI_AttributeItem}:\n
5845      * .value[0].i32: whether to enable automatic playback for child component switching. The value <b>1</b> means
5846      * to enable automatic playback, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5847      * .value[1].i32: whether to stop automatic playback when the user touches the screen. The value <b>1</b> means to
5848      * stop automatic playback, and <b>0</b> means the opposite. This parameter is supported since API version 16. \n
5849      *
5850      */
5851     NODE_SWIPER_AUTO_PLAY,
5852     /**
5853      * @brief Defines whether to enable the navigation point indicator for the swiper. This attribute can be set,
5854      * reset, and obtained as required through APIs.
5855      *
5856      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5857      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5858      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5859      * \n
5860      * Format of the return value {@link ArkUI_AttributeItem}:\n
5861      * .value[0].i32: whether to enable the navigation point indicator. The value <b>1</b> means to enable the
5862      * navigation point indicator, and <b>0</b> means the opposite. The default value is <b>1</b>. \n
5863      *
5864      */
5865     NODE_SWIPER_SHOW_INDICATOR,
5866     /**
5867      * @brief Defines the interval for automatic playback. This attribute can be set, reset, and obtained as required
5868      * through APIs.
5869      *
5870      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5871      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5872      * \n
5873      * Format of the return value {@link ArkUI_AttributeItem}:\n
5874      * .value[0].f32: interval for automatic playback, in milliseconds. \n
5875      *
5876      */
5877     NODE_SWIPER_INTERVAL,
5878     /**
5879      * @brief Defines whether vertical swiping is used for the swiper. This attribute can be set, reset, and obtained
5880      * as required through APIs.
5881      *
5882      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5883      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5884      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5885      * \n
5886      * Format of the return value {@link ArkUI_AttributeItem}:\n
5887      * .value[0].i32: whether vertical swiping is used. The value <b>1</b> means that vertical swiping is used, and
5888      * <b>0</b> means the opposite. The default value is <b>0</b>. \n
5889      *
5890      */
5891     NODE_SWIPER_VERTICAL,
5892 
5893     /**
5894      * @brief Defines the duration of the animation for switching child components. This attribute can be set, reset,
5895      * and obtained as required through APIs.
5896      *
5897      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5898      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5899      * <b>400</b>. \n
5900      * \n
5901      * Format of the return value {@link ArkUI_AttributeItem}:\n
5902      * .value[0].f32: duration of the animation for switching child components, in milliseconds. The default value is
5903      * <b>400</b>. \n
5904      *
5905      */
5906     NODE_SWIPER_DURATION,
5907 
5908     /**
5909      * @brief Defines the animation curve for the swiper. This attribute can be set, reset, and obtained as required
5910      * through APIs.
5911      *
5912      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5913      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5914      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5915      * \n
5916      * Format of the return value {@link ArkUI_AttributeItem}:\n
5917      * .value[0].i32: animation curve. The parameter type is {@link ArkUI_AnimationCurve}.
5918      * The default value is <b>ARKUI_CURVE_LINEAR</b>. \n
5919      *
5920      */
5921     NODE_SWIPER_CURVE,
5922 
5923     /**
5924      * @brief Defines the spacing between child components in the swiper.
5925      * This attribute can be set, reset, and obtained as required through APIs.
5926      *
5927      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5928      * .value[0].f32: spacing between child components. \n
5929      * \n
5930      * Format of the return value {@link ArkUI_AttributeItem}:\n
5931      * .value[0].f32: spacing between child components. \n
5932      *
5933      */
5934     NODE_SWIPER_ITEM_SPACE,
5935 
5936     /**
5937      * @brief Defines the index of the child component currently displayed in the swiper.
5938      * This attribute can be set, reset, and obtained as required through APIs.
5939      *
5940      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5941      * .value[0].i32: index value of the child component. \n
5942      * .value[1]?.i32: animation mode, the parameter type is {@link ArkUI_SwiperAnimationMode}. \n
5943      * The default value is ARKUI_SWIPER_NO_ANIMATION. This parameter is valid only for the current call. \n
5944      * This parameter is supported since API version 15. \n
5945      * \n
5946      * Format of the return value {@link ArkUI_AttributeItem}:\n
5947      * .value[0].i32: index value of the child component. \n
5948      *
5949      */
5950     NODE_SWIPER_INDEX,
5951 
5952     /**
5953     * @brief Defines the number of elements to display per page.
5954     * This attribute can be set, reset, and obtained as required through APIs.
5955     *
5956     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5957     * .value[0].i32: number of elements to display per page. \n
5958     * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
5959     * and <b>1</b> means to turn pages by group. This parameter is supported since API version 19. \n
5960     * .string?: this parameter can only be set to 'auto'. When 'auto' is set, the value[] parameters are ignored.
5961     * This parameter is supported since API version 19. \n
5962     * \n
5963     * Format of the return value {@link ArkUI_AttributeItem}:\n
5964     * .value[0].i32: number of elements to display per page. \n
5965     * .value[1].i32: whether to turn pages by group. This parameter is supported since API version 19. \n
5966     * .string: 'auto' or empty string.
5967     *
5968     */
5969     NODE_SWIPER_DISPLAY_COUNT,
5970 
5971     /**
5972      * @brief Defines whether to disable the swipe feature.
5973      * This attribute can be set, reset, and obtained as required through APIs.
5974      *
5975      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5976      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable
5977      * the swipe feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5978      * \n
5979      * Format of the return value {@link ArkUI_AttributeItem}:\n
5980      * .value[0].i32: whether to disable the swipe feature. The value <b>1</b> means to disable the swipe
5981      * feature, and <b>0</b> means the opposite. The default value is <b>0</b>. \n
5982      *
5983      */
5984     NODE_SWIPER_DISABLE_SWIPE,
5985 
5986     /**
5987     * @brief Defines whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5988     * This attribute can be set, reset, and obtained as required through APIs.
5989     *
5990     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
5991     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5992     * The parameter type is {@link ArkUI_SwiperArrow}.\n
5993     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
5994     * .?object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
5995     * This parameter is supported since API version 19. \n
5996     * \n
5997     * Format of the return value {@link ArkUI_AttributeItem}:\n
5998     * .value[0].i32: whether to show the arrow when the mouse pointer hovers over the navigation point indicator.
5999     * The parameter type is {@link ArkUI_SwiperArrow}.\n
6000     * The default value is <b>ARKUI_SWIPER_ARROW_HIDE</b>. \n
6001     * .object: arrow style. The parameter type is {@link ArkUI_SwiperArrowStyle}. \n
6002     * This parameter is supported since API version 19. \n
6003     *
6004     */
6005     NODE_SWIPER_SHOW_DISPLAY_ARROW,
6006 
6007     /**
6008      * @brief Defines the effect used at the edges of the swiper when the boundary of the scrollable content is reached.
6009      * This attribute can be set, reset, and obtained as required through APIs.
6010      *
6011      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6012      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
6013      * The parameter type is {@link ArkUI_EdgeEffect}.\n
6014      * The default value is <b>ARKUI_EDGE_EFFECT_SPRING</b>. \n
6015      * \n
6016      * Format of the return value {@link ArkUI_AttributeItem}:\n
6017      * .value[0].i32: effect used at the edges of the swiper when the boundary of the scrollable content is reached.
6018      * The parameter type is {@link ArkUI_EdgeEffect}. \n
6019      *
6020      */
6021     NODE_SWIPER_EDGE_EFFECT_MODE,
6022 
6023     /**
6024     * @brief Defines the swiper adapter. The attribute can be set, reset, and obtained as required through APIs.
6025     *
6026     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6027     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6028     */
6029     NODE_SWIPER_NODE_ADAPTER,
6030 
6031     /**
6032     * @brief Sets the number of cached items in the swiper adapter.
6033     * This attribute can be set, reset, and obtained as required through APIs.
6034     *
6035     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6036     * .value[0].i32: number of cached items in the swiper adapter. \n
6037     * .value[1]?.i32: whether the cached items will be displayed. \n
6038     * The value <b>0</b> indicates that cached items will not be displayed, \n
6039     * and <b>1</b> indicates that cached nodes will be displayed. The default value is <b>0</b>. \n
6040     * This parameter is supported from API version 19. \n
6041     * \n
6042     * Format of the return value {@link ArkUI_AttributeItem}:\n
6043     * .value[0].i32: number of cached items in the swiper adapter. \n
6044     * .value[1].i32: whether the cached items will be displayed. This parameter is supported from API version 19. \n
6045     */
6046     NODE_SWIPER_CACHED_COUNT,
6047 
6048     /**
6049      * @brief Defines the front margin of the wiper.
6050      * The attribute can be set, reset, and obtained as required through APIs.
6051      *
6052      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6053      * .value[0].f32: the front margin. The unit is vp. The default value is <b>0.0</b>\n
6054      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
6055      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
6056      * Format of the return value {@link ArkUI_AttributeItem}:\n
6057      * .value[0].f32: the front margin, the unit is vp. \n
6058      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
6059      * the opposite. \n
6060      */
6061     NODE_SWIPER_PREV_MARGIN,
6062 
6063     /**
6064      * @brief Defines the back margin of the wiper.
6065      * The attribute can be set, reset, and obtained as required through APIs.
6066      *
6067      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6068      * .value[0].f32: the back margin. The unit is vp. The default value is <b>0.0</b>\n
6069      * .value[1]?.i32: whether to ignore blanks, the default value is 0.
6070      * The value <b>1</b> means to ignore blank areas, and <b>0</b> means the opposite. \n
6071      * Format of the return value {@link ArkUI_AttributeItem}:\n
6072      * .value[0].f32: the back margin, the unit is vp. \n
6073      * .value[1].i32: whether to ignore blank areas. The value <b>1</b> means to ignore blank areas, and <b>0</b> means
6074      * the opposite. \n
6075      */
6076     NODE_SWIPER_NEXT_MARGIN,
6077 
6078     /**
6079     * @brief Defines the navigation indicator type of the swiper.
6080     * The attribute can be set, reset, and obtained as required through APIs.
6081     *
6082     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6083     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
6084     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
6085     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
6086     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
6087     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
6088     * \n
6089     * Format of the return value {@link ArkUI_AttributeItem}:\n
6090     * .value[0].i32: navigation indicator type, the parameter type is {@link ArkUI_SwiperIndicatorType}.\n
6091     * .object: The parameter type is {@link ArkUI_SwiperIndicator} when the indicator type \n
6092     * is <b>ARKUI_SWIPER_INDICATOR_TYPE_DOT</b>. The parameter type is {@link ArkUI_SwiperDigitIndicator}
6093     * when the indicator type is <b>ARKUI_SWIPER_INDICATOR_TYPE_DIGIT</b>. \n
6094     * {@link ArkUI_SwiperDigitIndicator} is supported since API version 19. \n
6095     *
6096     */
6097     NODE_SWIPER_INDICATOR,
6098 
6099     /**
6100      * @brief Set the nested scrolling mode for the Swiper component and parent component.
6101      *
6102      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6103      * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
6104      * {@link ArkUI_SwiperNestedScrollMode} \n
6105      * The default value is <b>ARKUI_SWIPER_NESTED_SRCOLL_SELF_ONLY<b> \n
6106      * \n
6107      * Format of the return value {@link ArkUI_AttributeItem}:\n
6108      * .value[0].i32:Nested scrolling patterns for Swiper components and parent components. The parameter type is
6109      * {@link ArkUI_SwiperNestedScrollMode} \n
6110      */
6111     NODE_SWIPER_NESTED_SCROLL,
6112 
6113     /**
6114      * @brief Set the switcher component to flip to the specified page.
6115      *
6116      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6117      * .value[0].i32:Specify the index value of the page in Swiper.\n
6118      * .value[1]?.i32:Set whether there is an animation effect when flipping to the specified page. 1 indicates active
6119      * effect, 0 indicates no active effect, default value is 0。\n
6120      */
6121     NODE_SWIPER_SWIPE_TO_INDEX,
6122 
6123     /**
6124     * @brief Set to disable component navigation point interaction function。
6125     *
6126     * Property setting method parameter {@link ArkUI-AttributeItem} format: \n
6127     * .value[0].i32:Set to disable the interaction function of component navigation points. When set to true, it
6128     * indicates that the navigation points are interactive. The default value is true. \n
6129     * The return value of the attribute acquisition method is in the format of {@ link ArkUI-AttributeItem}: \n
6130     * .value[0].i32:Set to disable component navigation point interaction. \n
6131     */
6132     NODE_SWIPER_INDICATOR_INTERACTIVE,
6133 
6134     /**
6135      * @brief Sets the page flipping mode using the mouse wheel.
6136      *
6137      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6138      * .value[0].i32: page flipping mode using the mouse wheel. The parameter type is {@link ArkUI_PageFlipMode}. \n
6139      * \n
6140      * Format of the return value {@link ArkUI_PageFlipMode}:\n
6141      * .value[0].i32: page flipping mode using the mouse wheel. \n
6142      *
6143      * @since 15
6144      */
6145     NODE_SWIPER_PAGE_FLIP_MODE,
6146 
6147     /**
6148      * @brief Defines the minimum main axis size of child element for swiper to works out the display count.
6149      * This attribute can be set, reset, and obtained as required through APIs.
6150      *
6151      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6152      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
6153      * .value[1]?.i32: whether to turn pages by group. The value <b>0</b> means to turn pages by child element,
6154      * and <b>1</b> means to turn pages by group. The default value is <b>0</b>. \n
6155      * \n
6156      * Format of the return value {@link ArkUI_AttributeItem}:\n
6157      * .value[0].f32: minimum main axis size of the child element, Unit: vp. \n
6158      * .value[1].i32: whether to turn pages by group. \n
6159      *
6160      * @since 19
6161      */
6162     NODE_SWIPER_AUTO_FILL,
6163 
6164     /**
6165      * @brief Sets whether to maintain the visible content's position when data is inserted or deleted outside
6166      * the display area of the <b>Swiper</b> component.
6167      *
6168      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6169      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
6170      * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
6171      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
6172      * \n
6173      * Format of the return value {@link ArkUI_AttributeItem}:\n
6174      * .value[0].i32: whether to maintain the visible content's position when data is inserted or deleted outside
6175      * the display area of the <b>Swiper</b> component. The value <b>0</b> means not to maintain the visible content's
6176      * position, and <b>1</b> means the opposite. The default value is <b>0</b>. \n
6177      *
6178      * @since 20
6179      */
6180     NODE_SWIPER_MAINTAIN_VISIBLE_CONTENT_POSITION = 1001023,
6181 
6182     /**
6183      * @brief: Set the delineation component of the ListItem, supporting property settings, property resets, and
6184      * property acquisition interfaces.
6185      *
6186      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
6187      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
6188      * \n
6189      * The return value of the attribute acquisition method {@link ArkUI_AttributeItem} format: \n
6190      * .object: Construct using the {@link ArkUI_ListitemSwipeActionOption} object. \n
6191      *
6192      */
6193     NODE_LIST_ITEM_SWIPE_ACTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM,
6194 
6195     /**
6196      * @brief Defines the header of the list item group.
6197      * This attribute can be set, reset, and obtained as required through APIs.
6198      *
6199      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6200      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
6201      * \n
6202      * Format of the return value {@link ArkUI_AttributeItem}:\n
6203      * .object: {@link ArkUI_NodeHandle} object to be used as the header of the list item group. \n
6204      *
6205      */
6206     NODE_LIST_ITEM_GROUP_SET_HEADER = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST_ITEM_GROUP,
6207     /**
6208      * @brief Defines the footer of the list item group. This attribute can be set, reset, and obtained as
6209      * required through APIs.
6210      *
6211      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6212      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
6213      * \n
6214      * Format of the return value {@link ArkUI_AttributeItem}:\n
6215      * .object: {@link ArkUI_NodeHandle} object to be used as the footer of the list item group. \n
6216      *
6217      */
6218     NODE_LIST_ITEM_GROUP_SET_FOOTER,
6219     /**
6220      * @brief Defines the style of the divider for the list items. This attribute can be set, reset, and obtained
6221      * as required through APIs.
6222      *
6223      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6224      * .value[0].u32: color of the divider, in 0xARGB format.\n
6225      * .value[1].f32: stroke width of the divider, in vp.\n
6226      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
6227      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
6228      * \n
6229      * Format of the return value {@link ArkUI_AttributeItem}:\n
6230      * .value[0].u32: color of the divider, in 0xARGB format.\n
6231      * .value[1].f32: stroke width of the divider, in vp.\n
6232      * .value[2].f32: distance between the divider and the start of the list, in vp.\n
6233      * .value[3].f32: distance between the divider and the end of the list, in vp.\n \n
6234      *
6235      */
6236     NODE_LIST_ITEM_GROUP_SET_DIVIDER,
6237 
6238     /**
6239      * @brief Set the default spindle size for the ListItem Group subcomponent.
6240      *
6241      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6242      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
6243      * \n
6244      * Format of the return value {@link ArkUI_AttributeItem}:\n
6245      * .object: The parameter format is {@ ArkUI-ListChildrenMainSize} \n
6246      */
6247     NODE_LIST_ITEM_GROUP_CHILDREN_MAIN_SIZE = 1005003,
6248 
6249     /**
6250     * @brief Defines the list item group adapter.
6251     * This attribute can be set, reset, and obtained as required through APIs.
6252     *
6253     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6254     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6255     * \n
6256     * Format of the return value {@link ArkUI_AttributeItem}:\n
6257     * .object: {@link ArkUI_NodeAdapter} object. \n
6258     *
6259     * @since 15
6260     */
6261     NODE_LIST_ITEM_GROUP_NODE_ADAPTER = 1005004,
6262 
6263     /**
6264      * @brief Defines the horizontal alignment mode of child components in the column.
6265      * This attribute can be set, reset, and obtained as required through APIs.
6266      *
6267      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6268      * .value[0].i32: horizontal alignment mode of child components.
6269      * The parameter type is {@link ArkUI_HorizontalAlignment}.\n
6270      * Default value: <b>ARKUI_HORIZONTAL_ALIGNMENT_CENTER</b>. \n
6271      * \n
6272      * Format of the return value {@link ArkUI_AttributeItem}:\n
6273      * .value[0].i32: horizontal alignment mode of child components.
6274      * The parameter type is {@link ArkUI_HorizontalAlignment}. \n
6275      *
6276      */
6277     NODE_COLUMN_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_COLUMN,
6278     /**
6279      * @brief Defines the vertical alignment mode of child components in the column.
6280      * This attribute can be set, reset, and obtained as required through APIs.
6281      *
6282      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6283      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}.\n
6284      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
6285      * \n
6286      * Format of the return value {@link ArkUI_AttributeItem}:\n
6287      * .value[0].i32: vertical alignment mode of child components. The parameter type is {@link ArkUI_FlexAlignment}. \n
6288      *
6289      */
6290     NODE_COLUMN_JUSTIFY_CONTENT,
6291 
6292     /**
6293      * @brief Defines the vertical alignment mode of child components in the row.
6294      * This attribute can be set, reset, and obtained as required through APIs.
6295      *
6296      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6297      * .value[0].i32: vertical alignment mode of child components.
6298      * The parameter type is {@link ArkUI_VerticalAlignment}.\n
6299      * Default value: <b>ARKUI_VERTICAL_ALIGNMENT_CENTER</b>. \n
6300      * \n
6301      * Format of the return value {@link ArkUI_AttributeItem}:\n
6302      * .value[0].i32: vertical alignment mode of child components.
6303      * The parameter type is {@link ArkUI_VerticalAlignment}. \n
6304      *
6305      */
6306     NODE_ROW_ALIGN_ITEMS = MAX_NODE_SCOPE_NUM * ARKUI_NODE_ROW,
6307     /**
6308      * @brief Defines the horizontal alignment mode of child components in the row.
6309      * This attribute can be set, reset, and obtained as required through APIs.
6310      *
6311      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6312      * .value[0].i32: horizontal alignment mode of child components.
6313      * The parameter type is {@link ArkUI_FlexAlignment}.\n
6314      * Default value: <b>ARKUI_FLEX_ALIGNMENT_START</b>. \n
6315      * \n
6316      * Format of the return value {@link ArkUI_AttributeItem}:\n
6317      * .value[0].i32: horizontal alignment mode of child components.
6318      * The parameter type is {@link ArkUI_FlexAlignment}. \n
6319      *
6320      */
6321     NODE_ROW_JUSTIFY_CONTENT,
6322 
6323     /**
6324      * @brief Defines the flex attribute. This attribute can be set, reset, and obtained as required through APIs.
6325      *
6326      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6327      * .value[0]?.i32: direction in which flex items are arranged. The parameter type is {@link ArkUI_FlexDirection}.
6328      * The default value is <b>ARKUI_FLEX_DIRECTION_ROW</b>.\n
6329      * .value[1]?.i32: how the flex items are wrapped. The parameter type is {@link ArkUI_FlexWrap}.
6330      * The default value is <b>ARKUI_FLEX_WRAP_NO_WRAP</b>.\n
6331      * .value[2]?.i32: alignment mode along the main axis. The parameter type is {@link ArkUI_FlexAlignment}.
6332      * The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
6333      * .value[3]?.i32: alignment mode along the cross axis. The parameter type is {@link ArkUI_ItemAlignment}.
6334      * The default value is <b>ARKUI_ITEM_ALIGNMENT_START</b>.\n
6335      * .value[4]?.i32: alignment mode along the cross axis for multi-line content. The parameter type is
6336      * {@link ArkUI_FlexAlignment}. The default value is <b>ARKUI_FLEX_ALIGNMENT_START</b>.\n
6337      * \n
6338      * Format of the return value {@link ArkUI_AttributeItem}:\n
6339      * .value[0].i32: direction in which flex items are arranged. \n
6340      * .value[1].i32: how the flex items are wrapped. \n
6341      * .value[2].i32: alignment mode along the main axis. \n
6342      * .value[3].i32: alignment mode along the cross axis. \n
6343      * .value[4].i32: alignment mode along the cross axis for multi-line content.\n
6344      *
6345      */
6346     NODE_FLEX_OPTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_FLEX,
6347 
6348     /**
6349      * @brief Sets whether the component is being refreshed.
6350      * This attribute can be set and obtained as required through APIs.
6351      *
6352      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6353      * .value[0].i32: The parameter type is 1 or 0.
6354      * \n
6355      * Format of the return value {@link ArkUI_AttributeItem}:\n
6356      * .value[0].i32: The parameter type is 1 or 0.
6357      *
6358      */
6359     NODE_REFRESH_REFRESHING = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
6360     /**
6361      * @brief Sets the custom content in the pull-down area.
6362      * This attribute can be set, reset, and obtained as required through APIs.
6363      *
6364      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6365      * .object: The parameter type is {@Link ArkUI_NodeHandle}.
6366      *
6367      */
6368     NODE_REFRESH_CONTENT,
6369     /**
6370      * @brief Set the pull-down hand coefficient.
6371      * This attribute can be set, reset, and obtained as required through APIs.
6372      *
6373      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6374      * .value[0].f32:Pull-down hand coefficient, valid value between 0 and 1.
6375      * \n
6376      * Format of the return value {@link ArkUI_AttributeItem}:\n
6377      * .value[0].f32:Pull-down hand coefficient, valid value between 0 and 1.
6378      *
6379      */
6380     NODE_REFRESH_PULL_DOWN_RATIO = 1009002,
6381     /**
6382      * @brief Sets the pull-down offset that initiates a refresh.
6383      * This attribute can be set, reset, and obtained as required through APIs.
6384      *
6385      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6386      * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
6387      * \n
6388      * Format of the return value {@link ArkUI_AttributeItem}:\n
6389      * .value[0].f32: pull-down offset, in vp. The default value is <b>64vp</b>.
6390      *
6391      */
6392     NODE_REFRESH_OFFSET = 1009003,
6393     /**
6394      * @brief Sets whether to initiate a refresh when the pull-down distance exceeds the value of <b>refreshOffset</b>.
6395      * This attribute can be set, reset, and obtained as required through APIs.
6396      *
6397      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6398      * .value[0].i32: whether to initiate a refresh. The value <b>true</b> means to initiate a refresh, and
6399      * <b>false</b> means the opposite.
6400      * \n
6401      * Format of the return value {@link ArkUI_AttributeItem}:\n
6402      * .value[0].i32: whether to initiate a refresh. The value <b>1</b> means to initiate a refresh, and
6403      * <b>0</b> means the opposite.
6404      *
6405      */
6406     NODE_REFRESH_PULL_TO_REFRESH = 1009004,
6407     /**
6408      * @brief Sets the maximum pull-down distance for refreshing.
6409      * This attribute can be set, reset, and obtained through the API as required.
6410      *
6411      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6412      * .value[0].f32: maximum pull-down distance, in vp.
6413      * \n
6414      * Format of the return value {@link ArkUI_AttributeItem}:\n
6415      * .value[0].f32: maximum pull-down distance, in vp.
6416      *
6417      * @since 20
6418      */
6419     NODE_REFRESH_MAX_PULL_DOWN_DISTANCE = 1009005,
6420 
6421     /**
6422      * @brief Defines the main axis direction of the <b><WaterFlow></b> component layout.
6423      * This attribute can be set, reset, and obtained as required through APIs.
6424      *
6425      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6426      * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
6427      * \n
6428      * Format of the return value {@link ArkUI_AttributeItem}:\n
6429      * .value[0].i32: main axis direction. The parameter type is {@Link ArkUI_FlexDirection}.
6430      *
6431      */
6432     NODE_WATER_FLOW_LAYOUT_DIRECTION = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
6433 
6434     /**
6435      * @brief Sets the number of columns in the water flow layout. If this parameter is not set, one column is used
6436      * by default. This attribute can be set, reset, and obtained as required through APIs.
6437      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6438      * component's full width, the second column 1/4, and the third column 2/4.
6439      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6440      * columns based on the specified column width <b>track-size</b>.
6441      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6442      * or a valid number.
6443      *
6444      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6445      * .string: number of columns in the layout.\n
6446      * \n
6447      * Format of the return value {@link ArkUI_AttributeItem}:\n
6448      * .string: number of columns in the layout.\n
6449      *
6450      */
6451     NODE_WATER_FLOW_COLUMN_TEMPLATE,
6452 
6453     /**
6454      * @brief Sets the number of rows in the water flow layout. If this parameter is not set, one row is used
6455      * by default. This attribute can be set, reset, and obtained as required through APIs.
6456      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6457      * component's full height, the second row 1/4, and the third row 2/4.
6458      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6459      * based on the specified row height <b>track-size</b>.
6460      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6461      * or a valid number.
6462      *
6463      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6464      * .string: number of rows in the layout. \n
6465      * \n
6466      * Format of the return value {@link ArkUI_AttributeItem}:\n
6467      * .string: number of rows in the layout. \n
6468      *
6469      */
6470     NODE_WATER_FLOW_ROW_TEMPLATE,
6471 
6472     /**
6473      * @brief Sets the gap between columns.
6474      * This attribute can be set, reset, and obtained as required through APIs.
6475      *
6476      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6477      * .value[0].f32: gap between columns, in vp.\n
6478      * \n
6479      * Format of the return value {@link ArkUI_AttributeItem}:\n
6480      * .value[0].f32: gap between columns, in vp.\n
6481      *
6482      */
6483     NODE_WATER_FLOW_COLUMN_GAP,
6484 
6485     /**
6486      * @brief Sets the gap between rows.
6487      * This attribute can be set, reset, and obtained as required through APIs.
6488      *
6489      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6490      * .value[0].f32: gap between lines, in vp.\n
6491      * \n
6492      * Format of the return value {@link ArkUI_AttributeItem}:\n
6493      * .value[0].f32: gap between lines, in vp.\n
6494      *
6495      */
6496     NODE_WATER_FLOW_ROW_GAP,
6497 
6498     /**
6499      * @brief Defines the water flow section configuration.
6500      * This attribute can be set, reset, and obtained as required through APIs.
6501      *
6502      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6503      * .value[0].i32: An index calculated from 0 is converted to an integer,
6504      * indicating that you want to start changing the position of the group.
6505      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
6506      * \n
6507      * Format of the return value {@link ArkUI_AttributeItem}:\n
6508      * .object: {@ArkUI_WaterFlowSectionOption} object.\n
6509      *
6510      */
6511     NODE_WATER_FLOW_SECTION_OPTION,
6512 
6513     /**
6514     * @brief Defines the water flow adapter. The attribute can be set, reset, and obtained as required through APIs.
6515     *
6516     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6517     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6518     */
6519     NODE_WATER_FLOW_NODE_ADAPTER,
6520 
6521     /**
6522     * @brief Sets the number of cached items in the water flow adapter.
6523     * This attribute can be set, reset, and obtained as required through APIs.
6524     *
6525     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6526     * value[0].i32:number of cached items in the water flow adapter. \n
6527     * .value[1]?.i32:whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
6528     * This parameter is supported since API version 16. \n
6529     * \n
6530     * Format of the return value {@link ArkUI_AttributeItem}:\n
6531     * .value[0].i32: number of cached items in the water flow adapter. \n
6532     * .value[1].i32: whether to the cached items will be displayed, 0: not displayed, 1: displayed, default value: 0.
6533     * This parameter is supported since API version 16. \n
6534     */
6535     NODE_WATER_FLOW_CACHED_COUNT,
6536 
6537     /**
6538      * @brief Set the custom display component at the end of the waterfall flow component.
6539      *
6540      * Attribute setting method {@link ArkUI_AttributeItem} parameter format: \n
6541      * .object: Parameter type {@link ArkUI_NodeHandle}.
6542      *
6543      */
6544     NODE_WATER_FLOW_FOOTER,
6545 
6546     /**
6547      * @brief Scroll to the specified index.
6548      *
6549      * When activating the smooth animation, all items passed through will be loaded and layout calculated, which can
6550      * lead to performance issues when loading a large number of items.\n
6551      * \n
6552      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6553      * .value[0].i32:The index value of the target element to be slid to in the current container.\n
6554      * .value[1]?.i32:Set whether there is an action when sliding to the index value of a list item in the list, where
6555      * 1 indicates an action and 0 indicates no action. Default value is 0。\n
6556      * .value[2]?.i32:Specify the alignment of the sliding element with the current container,The parameter type is
6557      * {@link ArkUI_ScrollAlignment}. Default value is </b>ARKUI_SCROLL_ALIGNMENT_START</b>。\n
6558      *
6559      */
6560     NODE_WATER_FLOW_SCROLL_TO_INDEX,
6561 
6562     /**
6563      * @brief Defines the size constraints to apply to water flow items.
6564      * This attribute can be set, reset, and obtained as required through APIs.
6565      *
6566      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6567      * .value[0].f32: minimum width, in vp.\n
6568      * .value[1].f32: maximum width, in vp.\n
6569      * .value[2].f32: minimum height, in vp.\n
6570      * .value[3].f32: maximum height, in vp.\n
6571      * \n
6572      * Format of the return value {@link ArkUI_AttributeItem}:\n
6573      * .value[0].f32: minimum width, in vp.\n
6574      * .value[1].f32: maximum width, in vp.\n
6575      * .value[2].f32: minimum height, in vp.\n
6576      * .value[3].f32: maximum height, in vp.\n
6577      *
6578      */
6579     NODE_WATER_FLOW_ITEM_CONSTRAINT_SIZE,
6580 
6581     /**
6582      * @brief Defines the layout mode of the <b><WaterFlow></b> component.
6583      * This attribute can be set, reset, and obtained as required through APIs.
6584      *
6585      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6586      * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
6587      * \n
6588      * Format of the return value {@link ArkUI_AttributeItem}:\n
6589      * .value[0].i32: waterflow layout mode. The parameter type is {@Link ArkUI_WaterFlowLayoutMode}.
6590      * @since 18
6591      */
6592     NODE_WATER_FLOW_LAYOUT_MODE,
6593 
6594     /**
6595      * @brief Defines whether the <b>WaterFlow</b> component loads child nodes synchronously.
6596      * This attribute can be set, reset, and obtained as required through APIs.
6597      *
6598      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6599      * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
6600      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6601      * \n
6602      * Format of the return value {@link ArkUI_AttributeItem}:\n
6603      * .value[0].i32: whether the <b>WaterFlow</b> component synchronously loads child nodes.
6604      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6605      *
6606      * @since 20
6607      */
6608     NODE_WATER_FLOW_SYNC_LOAD = 1010012,
6609 
6610     /**
6611      * @brief Set the auxiliary line in the RelativeContaine container, supporting property setting,
6612      * property reset and property acquisition interfaces.
6613      *
6614      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
6615      * .object: Auxiliary lines within the RelativeContaine container: \n
6616      *\n
6617      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
6618      * .object: Auxiliary lines within the RelativeContaine container: \n
6619      *
6620      */
6621     NODE_RELATIVE_CONTAINER_GUIDE_LINE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RELATIVE_CONTAINER,
6622 
6623     /**
6624      * @brief Sets the barrier within the RelativeContaine container and supports property setting,
6625      * property reset and property acquisition interfaces.
6626      *
6627      * Attribute setting method parameter {@link ArkUI_AttributeItem} format: \n
6628      * .object: Auxiliary lines within the RelativeContaine container: \n
6629      *\n
6630      * Attribute acquisition method return value {@link ArkUI_AttributeItem} format: \n
6631      * .object: Barrier within the RelativeContaine container: \n
6632      *
6633      */
6634     NODE_RELATIVE_CONTAINER_BARRIER,
6635 
6636     /**
6637      * @brief Sets the number of columns in the grid layout. If this parameter is not set, one column is used
6638      * by default. This attribute can be set, reset, and obtained as required through APIs.
6639      * For example, <b>'1fr 1fr 2fr'</b> indicates three columns, with the first column taking up 1/4 of the parent
6640      * component's full width, the second column 1/4, and the third column 2/4.
6641      * You can use <b>columnsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of
6642      * columns based on the specified column width <b>track-size</b>.
6643      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6644      * or a valid number.
6645      *
6646      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6647      * .string: number of columns in the layout.\n
6648      * \n
6649      * Format of the return value {@link ArkUI_AttributeItem}:\n
6650      * .string: number of columns in the layout.\n
6651      *
6652      */
6653     NODE_GRID_COLUMN_TEMPLATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_GRID,
6654 
6655     /**
6656      * @brief Sets the number of rows in the grid layout. If this parameter is not set, one row is used
6657      * by default. This attribute can be set, reset, and obtained as required through APIs.
6658      * For example, <b>'1fr 1fr 2fr'</b> indicates three rows, with the first row taking up 1/4 of the parent
6659      * component's full height, the second row 1/4, and the third row 2/4.
6660      * You can use <b>rowsTemplate('repeat(auto-fill,track-size)')</b> to automatically calculate the number of rows
6661      * based on the specified row height <b>track-size</b>.
6662      * <b>repeat</b> and <b>auto-fill</b> are keywords. The units for <b>track-size</b> can be px, vp (default), %,
6663      * or a valid number.
6664      *
6665      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6666      * .string: number of rows in the layout. \n
6667      * \n
6668      * Format of the return value {@link ArkUI_AttributeItem}:\n
6669      * .string: number of rows in the layout. \n
6670      *
6671      */
6672     NODE_GRID_ROW_TEMPLATE,
6673 
6674     /**
6675      * @brief Sets the gap between columns. This attribute can be set, reset, and obtained as required through APIs.
6676      *
6677      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6678      * .value[0].f32: gap between columns, in vp.\n
6679      * \n
6680      * Format of the return value {@link ArkUI_AttributeItem}:\n
6681      * .value[0].f32: gap between columns, in vp.\n
6682      *
6683      */
6684     NODE_GRID_COLUMN_GAP,
6685 
6686     /**
6687      * @brief Sets the gap between rows. This attribute can be set, reset, and obtained as required through APIs.
6688      *
6689      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6690      * .value[0].f32: gap between lines, in vp.\n
6691      * \n
6692      * Format of the return value {@link ArkUI_AttributeItem}:\n
6693      * .value[0].f32: gap between lines, in vp.\n
6694      *
6695      */
6696     NODE_GRID_ROW_GAP,
6697 
6698     /**
6699     * @brief Defines the grid adapter. The attribute can be set, reset, and obtained as required through APIs.
6700     *
6701     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6702     * .object: {@link ArkUI_NodeAdapter} object as the adapter. \n
6703     */
6704     NODE_GRID_NODE_ADAPTER,
6705 
6706     /**
6707     * @brief Sets the number of cached items in the grid adapter.
6708     * This attribute can be set, reset, and obtained as required through APIs.
6709     *
6710     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6711     * .value[0].i32: number of cached items in the grid adapter. \n
6712     */
6713     NODE_GRID_CACHED_COUNT,
6714 
6715     /**
6716     * @brief Defines the focus wrap mode for the <b>Grid</b> component.
6717     * This attribute can be set, reset, and obtained as required through APIs.
6718     *
6719     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6720     * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
6721     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
6722     * \n
6723     * Format of the return value {@link ArkUI_AttributeItem}:\n
6724     * .value[0].i32: focus wrap mode of the <b>Grid</b> component.
6725     *                The parameter type is {@link ArkUI_FocusWrapMode}. \n
6726     *
6727     * @since 20
6728     */
6729     NODE_GRID_FOCUS_WRAP_MODE = 1013006,
6730 
6731     /**
6732      * @brief Defines whether the <b>Grid</b> component loads child nodes synchronously.
6733      * This attribute can be set, reset, and obtained as required through APIs.
6734      *
6735      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6736      * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
6737      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6738      * \n
6739      * Format of the return value {@link ArkUI_AttributeItem}:\n
6740      * .value[0].i32: whether the <b>Grid</b> component synchronously loads child nodes.
6741      * The value <b>0</b> means loading by frames, and <b>1</b> means synchronous loading. \n
6742      *
6743      * @since 20
6744      */
6745     NODE_GRID_SYNC_LOAD = 1013007,
6746 
6747     /**
6748     * @brief Defines the column width of the text picker.
6749     * This attribute can be set, reset, and obtained as required through APIs.
6750     *
6751     * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6752     * .value[0].f32: percentage of total width. The default value is that all colulmns are equal width.\n
6753     * .value[1]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6754     * .value[2]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6755     * ...\n
6756     * .value[n]?.f32: percentage of total width. The default value is that all colulmns are equal width.\n
6757     * \n
6758     * Format of the return value {@link ArkUI_AttributeItem}:\n
6759     * value[0].f32: percentage of total width.\n
6760     * value[1].f32: percentage of total width.\n
6761     * value[2].f32: percentage of total width.\n
6762     * ...\n
6763     * value[n].f32: percentage of total width.\n
6764     *
6765     * @since 18
6766     */
6767     NODE_TEXT_PICKER_COLUMN_WIDTHS = 15009,
6768     /**
6769      * @brief Defines the disabled date range of the calendar picker.
6770      * This attribute can be set, reset, and obtained as required through APIs.
6771      *
6772      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6773      * .string: A string of dates. The `1st start date`,`1st end date`,`2nd start date`,`2nd end date`,
6774      * ...,`nth start date`,`nth end date` of the disabled date range.\n
6775      *  Example: 1910-01-01,1910-12-31,2020-01-01,2020-12-31\n
6776      * \n
6777      * Format of the return value {@link ArkUI_AttributeItem}:\n
6778      * .string: A string of dates.\n
6779      *
6780      * @since 19
6781      */
6782     NODE_CALENDAR_PICKER_DISABLED_DATE_RANGE = 16006,
6783 
6784     /**
6785      * @brief Defines whether the calendar picker marks today.
6786      * This attribute can be set, reset, and obtained as required through APIs.
6787      *
6788      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6789      * value[0].i32: whether the calendar picker marks today. The default value is <b>false</b>.\n
6790      * \n
6791      * Format of the return value {@link ArkUI_AttributeItem}:\n
6792      * value[0].i32: whether the calendar picker marks today.\n
6793      *
6794      * @since 19
6795      */
6796     NODE_CALENDAR_PICKER_MARK_TODAY = 16007,
6797 
6798     /**
6799      * @brief Defines the want used to start EmbeddedAbility.
6800      * This attribute can be set as required through APIs.
6801      *
6802      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6803      * .object: The want of EmbeddedComponent, with parameter type {@AbilityBase_Want}.
6804      * The default value is <b>nullptr</b>.\n
6805      *
6806      * @since 20
6807      */
6808     NODE_EMBEDDED_COMPONENT_WANT = MAX_NODE_SCOPE_NUM * ARKUI_NODE_EMBEDDED_COMPONENT,
6809 
6810     /**
6811      * @brief Set onError and onTerminated callbacks for EMBEDDED_COMPONENT.
6812      * This attribute can be set as required through APIs.
6813      *
6814      * Format of the {@link ArkUI_AttributeItem} parameter for setting the attribute:\n
6815      * .object: The option for EmbeddedComponent, with parameter type {@ArkUI_EmbeddedComponentOption}.\n
6816      *
6817      * @since 20
6818      */
6819     NODE_EMBEDDED_COMPONENT_OPTION,
6820 } ArkUI_NodeAttributeType;
6821 
6822 /**
6823  * @brief Define commponent event max args size.
6824  *
6825  * @since 12
6826  */
6827 #define MAX_COMPONENT_EVENT_ARG_NUM 12
6828 /**
6829  * @brief Defines the parameter type of the component callback event.
6830  *
6831  * @since 12
6832  */
6833 typedef struct {
6834     /** Data array object. */
6835     ArkUI_NumberValue data[MAX_COMPONENT_EVENT_ARG_NUM];
6836 } ArkUI_NodeComponentEvent;
6837 
6838 /**
6839  * @brief Defines the string type parameter used by the component callback event.
6840  *
6841  * @since 12
6842  */
6843 typedef struct {
6844     /** String. */
6845     const char* pStr;
6846 } ArkUI_StringAsyncEvent;
6847 
6848 /**
6849  * @brief Defines a hybrid data structure for component events.
6850  *
6851  * @since 15
6852  */
6853 typedef struct {
6854     /** String data */
6855     const char* pStr;
6856     /** Extended string data */
6857     const char* pExtendStr;
6858     /** Numeric data */
6859     int32_t number;
6860 } ArkUI_TextChangeEvent;
6861 
6862 /**
6863  * @brief Enumerates the event types supported by the NativeNode component.
6864  *
6865  * @since 12
6866  */
6867 typedef enum {
6868     /**
6869      * @brief Defines the gesture event type.
6870      *
6871      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6872      * {@link ArkUI_UIInputEvent}.
6873      */
6874     NODE_TOUCH_EVENT = 0,
6875 
6876     /**
6877      * @brief Defines the mount event.
6878      *
6879      * This event is triggered when the component is mounted and displayed. \n
6880      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6881      * {@link ArkUI_NodeComponentEvent}. \n
6882      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6883      */
6884     NODE_EVENT_ON_APPEAR,
6885     /**
6886      * @brief Defines the unmount event.
6887      *
6888      * This event is triggered when the component is unmounted and hidden. \n
6889      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6890      * {@link ArkUI_NodeComponentEvent}. \n
6891      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6892      */
6893     NODE_EVENT_ON_DISAPPEAR,
6894 
6895     /**
6896      * @brief Defines the area change event.
6897      *
6898      * This event is triggered when the component's size, position, or any other attribute that may
6899      * affect its display area changes. \n
6900      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6901      *  {@link ArkUI_NodeComponentEvent}. \n
6902      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6903      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: original width of the target element, in vp.
6904      * The value type is number. \n
6905      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: original height of the target element, in vp.
6906      * The value type is number. \n
6907      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: original X coordinate of the target element's upper left corner
6908      * relative to the parent element's, in vp. The value type is number. \n
6909      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: original Y coordinate of the target element's upper left corner
6910      * relative to the parent element's, in vp. The value type is number. \n
6911      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: original X coordinate of the target element's upper left corner
6912      * relative to the page's, in vp. The value type is number. \n
6913      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: original Y coordinate of the target element's upper left corner
6914      * relative to the page's, in vp. The value type is number. \n
6915      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: new width of the target element, in vp. The value is a number. \n
6916      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: new height of the target element, in vp. The value is a number. \n
6917      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: new X coordinate of the target element's upper left corner relative
6918      * to the parent element's, in vp. The value type is number. \n
6919      * <b>ArkUI_NodeComponentEvent.data[9].f32</b>: new Y coordinate of the target element's upper left corner relative
6920      * to the parent element's, in vp. The value type is number. \n
6921      * <b>ArkUI_NodeComponentEvent.data[10].f32</b>: new X coordinate of the target element's upper left corner relative
6922      * to the page's, in vp. The value type is number. \n
6923      * <b>ArkUI_NodeComponentEvent.data[11].f32</b>: new Y coordinate of the target element's upper left corner relative
6924      * to the page's, in vp. The value type is number. \n
6925      */
6926     NODE_EVENT_ON_AREA_CHANGE,
6927     /**
6928      * @brief Defines the focus event.
6929      *
6930      * This event is triggered when the component obtains the focus. \n
6931      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6932      * {@link ArkUI_NodeComponentEvent}. \n
6933      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6934      */
6935     NODE_ON_FOCUS,
6936     /**
6937      * @brief Defines the blur event.
6938      *
6939      * This event is triggered when the component loses the focus. \n
6940      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6941      * {@link ArkUI_NodeComponentEvent}. \n
6942      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
6943      */
6944     NODE_ON_BLUR,
6945     /**
6946      * @brief Defines the click event.
6947      *
6948      * This event is triggered when the component is clicked. \n
6949      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6950      * {@link ArkUI_NodeComponentEvent}. \n
6951      * {@link ArkUI_NodeComponentEvent} contains 12 parameters:\n
6952      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: X coordinate of the click relative to the upper left corner of the
6953      * clicked component's original area, in vp. \n
6954      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Y coordinate of the click relative to the upper left corner of the
6955      * clicked component's original area, in vp. \n
6956      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: event timestamp. It is the interval between the time when the event
6957      * is triggered and the time when the system starts, in microseconds. \n
6958      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: event input device. The value <b>1</b> indicates the mouse,
6959      * <b>2</b> indicates the touchscreen, and <b>4</b> indicates the key. \n
6960      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: X coordinate of the click relative to the upper left corner of the
6961      * application window, in vp. \n
6962      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: Y coordinate of the click relative to the upper left corner of the
6963      * application window, in vp. \n
6964      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: X coordinate of the click relative to the upper left corner of the
6965      * application screen, in vp. \n
6966      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: Y coordinate of the click relative to the upper left corner of the
6967      * application screen, in vp. \n
6968      */
6969     NODE_ON_CLICK,
6970     /**
6971      * @brief Defines event interception.
6972      *
6973      * This event is triggered when the component is touched. \n
6974      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6975      * {@link ArkUI_UIInputEvent}. \n
6976      */
6977     NODE_ON_TOUCH_INTERCEPT,
6978     /**
6979      * @brief Defines the visible area change event.
6980      *
6981      * This event is triggered when the ratio of the component's visible area to its total area is greater than or less
6982      * than the threshold.
6983      * Before registering this event, you must set <b>NODE_VISIBLE_AREA_CHANGE_RATIO</b>. \n
6984      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6985      * {@link ArkUI_NodeComponentEvent}. \n
6986      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
6987      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
6988      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates a
6989      * decrease. \n
6990      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area when this
6991      * callback is invoked. \n
6992      */
6993     NODE_EVENT_ON_VISIBLE_AREA_CHANGE,
6994     /**
6995      * @brief Defines the event triggered when the mouse pointer is moved over or away from the component.
6996      *
6997       \n
6998      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
6999      * {@link ArkUI_NodeComponentEvent}. \n
7000      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7001      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: whether the mouse pointer is hovered over the component.
7002      * The value <b>1</b> indicates that the mouse pointer is hovered over the component, and <b>0</b> indicates that
7003      * the mouse pointer is moved away from the component. \n
7004      */
7005     NODE_ON_HOVER,
7006     /**
7007      * @brief Defines the click event.
7008      *
7009      * This event is triggered when the component is clicked by a mouse device button or when the mouse pointer moves
7010      * within the component. \n
7011      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7012      * {@link ArkUI_UIInputEvent}. \n
7013      */
7014     NODE_ON_MOUSE,
7015     /**
7016      * @brief Defines the attach event.
7017      *
7018      * This event is triggered when the component is attached. \n
7019      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7020      * {@link ArkUI_NodeComponentEvent}. \n
7021      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7022      */
7023     NODE_EVENT_ON_ATTACH,
7024     /**
7025      * @brief Defines the detach event.
7026      *
7027      * This event is triggered when the component is detached. \n
7028      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7029      * {@link ArkUI_NodeComponentEvent}. \n
7030      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7031      */
7032     NODE_EVENT_ON_DETACH,
7033 
7034     /**
7035      * @brief Defines the accessibility action event.
7036      *
7037      * This event is triggered when The accessibility operation type has been set and
7038      * corresponding operations have been carried out. \n
7039      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7040      * {@link ArkUI_NodeComponentEvent}. \n
7041      * {@link ArkUI_NodeComponentEvent} contains one parameters:\n
7042      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: accessibility action type,the union type is
7043      * {@link ArkUI_AccessibilityActionType} \n
7044      *
7045      */
7046     NODE_ON_ACCESSIBILITY_ACTIONS = 13,
7047 
7048     /**
7049      * @brief Notifies the listener of the interaction state prior to a drop and drop operation.
7050      *
7051      * This event is triggered when a drag operation is about to start on a draggable item. \n
7052      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7053      * {@link ArkUI_NodeComponentEvent}. \n
7054      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7055      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: corresponds to {@link ArkUI_PreDragStatus}. \n
7056      */
7057     NODE_ON_PRE_DRAG = 14,
7058     /**
7059      * @brief Called when the user starts to drag an ite
7060      *
7061      * A drag operation is recognized only when the dragged item is moved far enough. \n
7062      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7063      * {@link ArkUI_NodeEvent} object. \n
7064      */
7065     NODE_ON_DRAG_START = 15,
7066     /**
7067      * @brief Called when a dragged item enters the boundaries of the current component.
7068      *
7069      * The current component refers to the component that listens for this event. \n
7070      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7071      * {@link ArkUI_NodeEvent} object. \n
7072      */
7073     NODE_ON_DRAG_ENTER = 16,
7074     /**
7075      * @brief Called  when a dragged item moves in the current component.
7076      *
7077      * The current component refers to the component that listens for this event. \n
7078      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7079      * {@link ArkUI_NodeEvent} object. \n
7080      */
7081     NODE_ON_DRAG_MOVE = 17,
7082     /**
7083      * @brief Called when a dragged item leaves the boundaries of the current component.
7084      *
7085      * The current component refers to the component that listens for this event. \n
7086      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7087      * {@link ArkUI_NodeEvent} object. \n
7088      */
7089     NODE_ON_DRAG_LEAVE = 18,
7090     /**
7091      * @brief Called when a dragged item is dropped on the current component.
7092      * The component can obtain the drag data for processing through the callback.
7093      *
7094      * The current component refers to the component that listens for this event. \n
7095      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7096      * {@link ArkUI_NodeEvent} object. \n
7097      */
7098     NODE_ON_DROP = 19,
7099     /**
7100      * @brief Called when a drag operation ends.
7101      * The drag source can obtain the drag result by registering this callback.
7102      *
7103      * A drag operation ends when the dragged item is released.
7104      * When the event callback occurs, the {@link ArkUI_DragEvent} object can be obtained from the
7105      * {@link ArkUI_NodeEvent} object. \n
7106      */
7107     NODE_ON_DRAG_END = 20,
7108     /**
7109      * @brief Defines the event triggered when a key event occurs.
7110      *
7111      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
7112      * device. \n
7113      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7114      * {@link ArkUI_NodeComponentEvent}. \n
7115      *
7116      * @since 14
7117      */
7118     NODE_ON_KEY_EVENT = 21,
7119     /**
7120      * @brief Defines the event triggered before the input method responds to the key action.
7121      *
7122      * If the return value of this callback is <b>true</b>, it is considered that the key event has been consumed, and
7123      * subsequent event callbacks (<b>keyboardShortcut</b>, input method events, <b>onKeyEvent</b>) will be intercepted
7124      * and no longer triggered.
7125      * The callback can be triggered during interactions with a focused window using an external keyboard or other input
7126      * device. \n
7127      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7128      * {@link ArkUI_NodeComponentEvent}. \n
7129      *
7130      * @since 14
7131      */
7132     NODE_ON_KEY_PRE_IME = 22,
7133     /**
7134      * @brief Defines the event triggered when the bound component receives a focus axis event after gaining focus.
7135      *
7136      * The event callback is triggered by interactions with a joystick and a focused component. \n
7137      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7138      * {@link ArkUI_UIInputEvent}. \n
7139      *
7140      * @since 15
7141      */
7142     NODE_ON_FOCUS_AXIS = 23,
7143 
7144     /**
7145      * @brief Dispatch key event on the component node.
7146      *
7147      * When the component node receives a key event, this callback will be triggered instead of dispatching event to its
7148      * children. \n
7149      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7150      * {@link ArkUI_NodeComponentEvent}. \n
7151      *
7152      * @since 15
7153      */
7154     NODE_DISPATCH_KEY_EVENT = 24,
7155 
7156     /**
7157      * @brief Defines the event triggered when the bound component receives an axis event.
7158      *
7159      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7160      * {@link ArkUI_UIInputEvent}. \n
7161      *
7162      * @since 17
7163      */
7164     NODE_ON_AXIS = 25,
7165 
7166     /**
7167      * @brief Defines the event triggered when the bound component is clicked.
7168      *
7169      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7170      * {@link ArkUI_UIInputEvent}.  \n
7171      *
7172      * @since 18
7173      */
7174     NODE_ON_CLICK_EVENT = 26,
7175 
7176     /**
7177      * @brief Defines the event triggered when the mouse pointer hovers over or moves away from a component.
7178      *
7179      * This event is triggered when the mouse pointer enters or leaves the component's bounding box. \n
7180      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7181      * {@link ArkUI_UIInputEvent}. \n
7182      *
7183      *@since 17
7184      */
7185     NODE_ON_HOVER_EVENT = 27,
7186 
7187     /**
7188      * @brief Sets the callback for the NODE_EVENT_ON_VISIBLE_AREA_CHANGE event, which limits the callback interval.
7189      *
7190      * The callback is triggered when the ratio of the component's visible area to its total area is greater than or
7191      * less than the threshold. Before registering the callback, you must configure the threshold and update interval
7192      * using <b>NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_RATIO</b>. \n
7193      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7194      * {@link ArkUI_NodeComponentEvent}. \n
7195      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7196      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: how the ratio of the component's visible area to its total area
7197      * changes compared to the previous one. The value <b>1</b> indicates an increase, and <b>0</b> indicates
7198      * a decrease. \n
7199      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: ratio of the component's visible area to its total area
7200      * when this callback is invoked. \n
7201      *
7202      * @since 17
7203      */
7204     NODE_VISIBLE_AREA_APPROXIMATE_CHANGE_EVENT = 28,
7205 
7206     /**
7207      * @brief Defines the hover event.
7208      *
7209      * The event is triggered when the pointer is hovered by a pen device.
7210      * within the component. \n
7211      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
7212      * {@link ArkUI_UIInputEvent} object. \n
7213      * @since 15
7214     */
7215     NODE_ON_HOVER_MOVE = 29,
7216 
7217     /**
7218      * @brief Triggers onDetectResultUpdate callback
7219      * when the text is set to TextDataDetectorConfig and recognized successfully.
7220      *
7221      * Trigger this event when TextDataDetectorConfig is set and recognized successfully.\n
7222      * When the event callback occurs, the event parameter{@link ArkUI_NodeEvent}The union type in the object is
7223      * {@link ArkUI_StringAsyncEvent}.\n
7224      * {@link ArkUI_StringAsyncEvent}contains 1 parameter\n
7225      * <b>ArkUI_StringAsyncEvent.pStr</b>:Indicates the result of text recognition, in Json format.\n
7226      *
7227      */
7228     NODE_TEXT_ON_DETECT_RESULT_UPDATE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT,
7229     /**
7230      * @brief Defines the long press event for span.
7231      *
7232      * The event is triggered when the span is long pressed.
7233      * When the event callback occurs, the {@link ArkUI_NodeEvent} object can be obtained from the
7234      * {@link ArkUI_UIInputEvent} object. \n
7235      * @since 20
7236      */
7237     NODE_TEXT_SPAN_ON_LONG_PRESS = 1001,
7238     /**
7239      * @brief Defines the image loading success event.
7240      *
7241      * This event is triggered when an image is successfully loaded or decoded. \n
7242      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7243      * {@link ArkUI_NodeComponentEvent}. \n
7244      * {@link ArkUI_NodeComponentEvent} contains nine parameters:\n
7245      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: loading status. The value <b>0</b> indicates that the image is
7246      * loaded successfully, and the value <b>1</b> indicates that the image is decoded successfully. \n
7247      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: width of the image, in px. \n
7248      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: height of the image, in px. \n
7249      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: width of the component, in px. \n
7250      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: height of the component, in px. \n
7251      * <b>ArkUI_NodeComponentEvent.data[5].f32</b>: offset of the rendered content relative to the component on the
7252      * x-axis, in px. \n
7253      * <b>ArkUI_NodeComponentEvent.data[6].f32</b>: offset of the rendered content relative to the component on the
7254      * y-axis, in px. \n
7255      * <b>ArkUI_NodeComponentEvent.data[7].f32</b>: actual rendered width of the image, in px. \n
7256      * <b>ArkUI_NodeComponentEvent.data[8].f32</b>: actual rendered height of the image, in px. \n
7257      */
7258     NODE_IMAGE_ON_COMPLETE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE,
7259     /**
7260      * @brief Defines the image loading failure event.
7261      *
7262      * This event is triggered when an error occurs during image loading. \n
7263      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7264      * {@link ArkUI_NodeComponentEvent}. \n
7265      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7266      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>error code:\n
7267      * 401: The image could not be obtained because the image path is invalid. \n
7268      * 103101: The image format is not supported. \n
7269      */
7270     NODE_IMAGE_ON_ERROR,
7271     /**
7272      * @brief Defines the SVG animation playback completion event.
7273      *
7274      * This event is triggered when the animation playback in the loaded SVG image is complete. \n
7275      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7276      * {@link ArkUI_NodeComponentEvent}. \n
7277      * {@link ArkUI_NodeComponentEvent} does not contain parameters.
7278      */
7279     NODE_IMAGE_ON_SVG_PLAY_FINISH,
7280     /**
7281      * @brief Defines image download process event.
7282      *
7283      * This event is triggered when downloading webpage images from page components.\n
7284      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7285      * {@link ArkUI_NodeComponentEvent}. \n
7286      * {@link ArkUI_NodeComponentEvent} contains two parameter:\n
7287      * <b>ArkUI_NodeComponentEvent.data[0].u32</b>: the num of bytes downloaded. \n
7288      * <b>ArkUI_NodeComponentEvent.data[1].u32</b>: the total number of bytes to download. \n
7289      */
7290     NODE_IMAGE_ON_DOWNLOAD_PROGRESS,
7291     /**
7292      * @brief Defines the event triggered when the toggle status changes.
7293      *
7294       \n
7295      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7296      * {@link ArkUI_NodeComponentEvent}. \n
7297      * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
7298      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: toggle status. <b>1</b>: on; <b>0</b>: off.
7299      *
7300      */
7301     NODE_TOGGLE_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TOGGLE,
7302     /**
7303      * @brief Defines the event triggered when the text input content changes.
7304      *
7305       \n
7306      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7307      * {@link ArkUI_StringAsyncEvent}. \n
7308      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7309      * <b>ArkUI_StringAsyncEvent.pStr</b>: text input.
7310      *
7311      */
7312     NODE_TEXT_INPUT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_INPUT,
7313     /**
7314      * @brief Defines the event triggered when the Enter key of the text input method is pressed.
7315      *
7316       \n
7317      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7318      * {@link ArkUI_NodeComponentEvent}. \n
7319      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7320      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Enter key type of the input method.
7321      *
7322      */
7323     NODE_TEXT_INPUT_ON_SUBMIT,
7324     /**
7325      * @brief Defines the event triggered when the cut button on the pasteboard, which displays when the text box
7326      * is long pressed, is clicked.
7327      *
7328       \n
7329      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7330      * {@link ArkUI_StringAsyncEvent}. \n
7331      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7332      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is cut.
7333      *
7334      */
7335     NODE_TEXT_INPUT_ON_CUT,
7336     /**
7337      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box
7338      * is long pressed, is clicked.
7339      *
7340       \n
7341      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7342      * {@link ArkUI_StringAsyncEvent}. \n
7343      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7344      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
7345      *
7346      */
7347     NODE_TEXT_INPUT_ON_PASTE,
7348     /**
7349      * @brief Defines the event triggered when the text selection position changes.
7350      *
7351       \n
7352      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7353      * {@link ArkUI_NodeComponentEvent}. \n
7354      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7355      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
7356      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
7357      *
7358      */
7359     NODE_TEXT_INPUT_ON_TEXT_SELECTION_CHANGE,
7360 
7361     /**
7362      * @brief Defines the event triggered when the input status changes.
7363      *
7364       \n
7365      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7366      * {@link ArkUI_NodeComponentEvent}. \n
7367      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7368      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
7369      *
7370      */
7371     NODE_TEXT_INPUT_ON_EDIT_CHANGE,
7372 
7373     /**
7374       * @brief textInput This event is triggered when the input content changes.
7375       *
7376       * Conditions for triggering this event: When the input content changes. \n
7377       * When the event callback occurs, the union type in the event parameter
7378       * {@link ArkUI_NodeEvent} object is {@link ArkUI_NodeComponentEvent}. \n
7379       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
7380       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
7381       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
7382       *
7383       */
7384     NODE_TEXT_INPUT_ON_CONTENT_SIZE_CHANGE,
7385 
7386     /**
7387      * @brief Defines the event triggered when matching with the regular expression specified by
7388      * <b>NODE_TEXT_INPUT_INPUT_FILTER</b> fails.
7389      *
7390       \n
7391      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7392      * {@link ArkUI_StringAsyncEvent}. \n
7393      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7394      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
7395      *
7396      */
7397     NODE_TEXT_INPUT_ON_INPUT_FILTER_ERROR,
7398 
7399     /**
7400      * @brief This callback is triggered when the text content is scrolled.
7401      *
7402       \n
7403      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7404      * {@link ArkUI_NodeComponentEvent}. \n
7405      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7406      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
7407      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
7408      * the text in the content area. \n
7409      *
7410      */
7411     NODE_TEXT_INPUT_ON_CONTENT_SCROLL,
7412 
7413     /**
7414      * @brief Defines the event triggered when text is about to be entered.
7415      *
7416      * The event parameter is {@link ArkUI_NodeEvent}. \n
7417      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7418      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7419      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7420      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7421      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
7422      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7423      */
7424     NODE_TEXT_INPUT_ON_WILL_INSERT = 7009,
7425 
7426     /**
7427      * @brief Defines the event triggered when text is entered.
7428      *
7429      * The event parameter is {@link ArkUI_NodeEvent}. \n
7430      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7431      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7432      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7433      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7434      */
7435     NODE_TEXT_INPUT_ON_DID_INSERT = 7010,
7436 
7437     /**
7438      * @brief Defines the event triggered when text is about to be deleted.
7439      *
7440      * The event parameter is {@link ArkUI_NodeEvent}. \n
7441      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
7442      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7443      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7444      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7445      * forward-delete. \n
7446      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7447      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7448      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
7449      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7450      */
7451     NODE_TEXT_INPUT_ON_WILL_DELETE = 7011,
7452 
7453     /**
7454      * @brief Defines the event triggered when text is deleted.
7455      *
7456      * The event parameter is {@link ArkUI_NodeEvent}. \n
7457      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
7458      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7459      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7460      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7461      * forward-delete. \n
7462      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7463      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7464      */
7465     NODE_TEXT_INPUT_ON_DID_DELETE = 7012,
7466 
7467     /**
7468      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextInput</b>
7469      * component.
7470      *
7471      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7472      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7473      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
7474      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
7475      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
7476      *
7477      * @since 15
7478      */
7479     NODE_TEXT_INPUT_ON_CHANGE_WITH_PREVIEW_TEXT = 7013,
7480 
7481     /**
7482      * @brief Defines the event triggered before content changes
7483      *
7484      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7485      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7486      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextInput</b> component.
7487      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextInput</b> component.
7488      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextInput</b> component.
7489      *
7490      * @since 20
7491      */
7492     NODE_TEXT_INPUT_ON_WILL_CHANGE = 7014,
7493 
7494     /**
7495      * @brief Defines the event triggered when the input in the text box changes.
7496      *
7497       \n
7498      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7499      * {@link ArkUI_StringAsyncEvent}. \n
7500      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7501      * <b>ArkUI_StringAsyncEvent.pStr</b>: text entered.
7502      *
7503      */
7504     NODE_TEXT_AREA_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_AREA,
7505     /**
7506      * @brief Defines the event triggered when the paste button on the pasteboard, which displays when the text box is
7507      * long pressed, is clicked.
7508      *
7509       \n
7510      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7511      * {@link ArkUI_StringAsyncEvent}. \n
7512      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7513      * <b>ArkUI_StringAsyncEvent.pStr</b>: text that is pasted
7514      *
7515      */
7516     NODE_TEXT_AREA_ON_PASTE,
7517     /**
7518      * @brief Defines the event triggered when the text selection position changes.
7519      *
7520       \n
7521      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7522      * {@link ArkUI_NodeComponentEvent}. \n
7523      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7524      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: start position of the text selection area. \n
7525      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: end position of the text selection area. \n
7526      *
7527      */
7528     NODE_TEXT_AREA_ON_TEXT_SELECTION_CHANGE,
7529     /**
7530      * @brief Defines the event triggered when matching with the regular expression specified by
7531      * <b>NODE_TEXT_AREA_INPUT_FILTER</b> fails.
7532      *
7533       \n
7534      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7535      * {@link ArkUI_StringAsyncEvent}. \n
7536      * {@link ArkUI_StringAsyncEvent} contains one parameter:\n
7537      * <b>ArkUI_StringAsyncEvent.pStr</b>: content that is filtered out when regular expression matching fails. \n
7538      *
7539      */
7540     NODE_TEXT_AREA_ON_INPUT_FILTER_ERROR,
7541     /**
7542      * @brief This callback is triggered when the text content is scrolled.
7543      *
7544       \n
7545      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7546      * {@link ArkUI_NodeComponentEvent}. \n
7547      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7548      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: Indicates the horizontal offset of the text in the content area. \n
7549      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: Indicates the vertical coordinate offset of \n
7550      * the text in the content area. \n
7551      *
7552      */
7553     NODE_TEXT_AREA_ON_CONTENT_SCROLL,
7554 
7555     /**
7556      * @brief Defines the event triggered when the input status changes.
7557      *
7558       \n
7559      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
7560      * {@link ArkUI_NodeComponentEvent}. \n
7561      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7562      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: <b>true</b> indicates that text input is in progress. \n
7563      *
7564      */
7565     NODE_TEXT_AREA_ON_EDIT_CHANGE,
7566 
7567     /**
7568      * @brief Defines the event triggered when the Enter key on the keyboard is pressed for the multi-line text box.
7569      *
7570      * This event is not triggered when <b>keyType</b> is <b>ARKUI_ENTER_KEY_TYPE_NEW_LINE</b>. \n
7571      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is \n
7572      * {@link ArkUI_NodeComponentEvent}. \n
7573      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7574      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: type of the Enter key.
7575      *
7576      */
7577     NODE_TEXT_AREA_ON_SUBMIT,
7578 
7579     /**
7580       * @brief textArea This event is triggered when the input content changes.
7581       *
7582       * Conditions for triggering this event: When the input content changes. \n
7583       * When the event callback occurs, the union type in the event parameter {@link ArkUI_NodeEvent} object is \n
7584       * {@link ArkUI_NodeComponentEvent}.\n
7585       * {@link ArkUI_NodeComponentEvent} contains 2 parameters:\n
7586       * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Indicates the width of the text. \n
7587       * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: Indicates the height of the text. \n
7588       *
7589       */
7590     NODE_TEXT_AREA_ON_CONTENT_SIZE_CHANGE,
7591 
7592     /**
7593      * @brief Defines the event triggered when text is about to be entered.
7594      *
7595      * The event parameter is {@link ArkUI_NodeEvent}. \n
7596      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7597      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7598      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7599      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7600      * @return Returns <b>true</b> if the text is entered; returns <b>false</b> otherwise.
7601      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7602      */
7603     NODE_TEXT_AREA_ON_WILL_INSERT = 8008,
7604 
7605     /**
7606      * @brief Defines the event triggered when text is entered.
7607      *
7608      * The event parameter is {@link ArkUI_NodeEvent}. \n
7609      * value.f32: position of the text, with the index of <b>0</b>; obtained using
7610      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7611      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7612      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7613      */
7614     NODE_TEXT_AREA_ON_DID_INSERT = 8009,
7615 
7616     /**
7617      * @brief Defines the event triggered when text is about to be deleted.
7618      *
7619      * The event parameter is {@link ArkUI_NodeEvent}. \n
7620      * value.f32: position of the text to delete, with the index of <b>0</b>; obtained using
7621      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7622      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7623      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7624      * forward-delete. \n
7625      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7626      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7627      * @return Returns <b>true</b> if the text is deleted; returns <b>false</b> otherwise. \n
7628      * You can set the return value using <b>OH_ArkUI_NodeEvent_SetReturnNumberValue</b>. \n
7629      */
7630     NODE_TEXT_AREA_ON_WILL_DELETE = 8010,
7631 
7632     /**
7633      * @brief Defines the event triggered when text is deleted.
7634      *
7635      * The event parameter is {@link ArkUI_NodeEvent}. \n
7636      * value.f32: position of the text deleted, with the index of <b>0</b>; obtained using
7637      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. \n
7638      * value.i32: direction for deleting the text, with the index of <b>1</b>; obtained using
7639      * <b>OH_ArkUI_NodeEvent_GetNumberValue</b>. The value <b>0</b> indicates backward-delete, and <b>1</b> indicates
7640      * forward-delete. \n
7641      * buffer: string value of the text, with the index of <b>0</b>; obtained using
7642      * <b>OH_ArkUI_NodeEvent_GetStringValue</b>.
7643      */
7644     NODE_TEXT_AREA_ON_DID_DELETE = 8011,
7645 
7646     /**
7647      * @brief Defines the event triggered when content (including preview text) changes in the <b>TextArea</b>
7648      * component.
7649      *
7650      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7651      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7652      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
7653      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
7654      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
7655      *
7656      * @since 15
7657      */
7658     NODE_TEXT_AREA_ON_CHANGE_WITH_PREVIEW_TEXT = 8012,
7659 
7660     /**
7661      * @brief Defines the event triggered before content changes.
7662      *
7663      * When the event callback occurs, the union type {@link ArkUI_NodeEvent} is {@link ArkUI_TextChangeEvent}. \n
7664      * {@link ArkUI_TextChangeEvent} contains the following parameters: \n
7665      * <b>ArkUI_TextChangeEvent.pStr</b>: content in the <b>TextArea</b> component.
7666      * <b>ArkUI_TextChangeEvent.pExtendStr</b>: content of the preview text in the <b>TextArea</b> component.
7667      * <b>ArkUI_TextChangeEvent.number</b>: start position of the preview text in the <b>TextArea</b> component.
7668      *
7669      * @since 20
7670      */
7671     NODE_TEXT_AREA_ON_WILL_CHANGE = 8013,
7672 
7673     /**
7674      * @brief Defines the event triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX</b> component changes.
7675      *
7676      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7677      * {@link ArkUI_NodeComponentEvent}. \n
7678      * <b>ArkUI_NodeComponentEvent.data[0].i32</b><b>1</b>: selected; <b>0</b>: not selected.\n
7679      */
7680     NODE_CHECKBOX_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX,
7681 
7682     /**
7683      * @brief Defines the event triggered when a date is selected in the <b>ARKUI_NODE_DATE_PICKER</b> component.
7684      *
7685       \n
7686      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7687      * {@link ArkUI_NodeComponentEvent}. \n
7688      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7689      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: year of the selected date. \n
7690      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: month of the selected date. Value range: [0-11]. \n
7691      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: day of the selected date. \n
7692      */
7693     NODE_DATE_PICKER_EVENT_ON_DATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_DATE_PICKER,
7694 
7695     /**
7696      * @brief Defines the event triggered when a time is selected in the <b>ARKUI_NODE_TIME_PICKER</b> component.
7697      *
7698       \n
7699      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7700      * {@link ArkUI_NodeComponentEvent}. \n
7701      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7702      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: hour of the selected time. Value range: [0-23]. \n
7703      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: minute of the selected time. Value range: [0-59]. \n
7704      */
7705     NODE_TIME_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TIME_PICKER,
7706 
7707     /**
7708      * @brief Defines the event triggered when an item is selected in the <b>ARKUI_NODE_TEXT_PICKER</b> component.
7709      *
7710       \n
7711      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7712      * {@link ArkUI_NodeComponentEvent}. \n
7713      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7714      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7715      */
7716     NODE_TEXT_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_TEXT_PICKER,
7717 
7718     /**
7719      * @brief Defines the event triggered when an item is selected and scrolling has stopped in the
7720      * <b>ARKUI_NODE_TEXT_PICKER</b> component.
7721      *
7722      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7723      * {@link ArkUI_NodeComponentEvent}. \n
7724      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7725      * <b>ArkUI_NodeComponentEvent.data[0...11].i32</b>: value of the selected item. \n
7726      *
7727      * @since 14
7728      */
7729     NODE_TEXT_PICKER_EVENT_ON_SCROLL_STOP = 15001,
7730 
7731     /**
7732      * @brief Defines the event triggered when a date is selected in the <b>NODE_CALENDAR_PICKER</b>.
7733      *
7734      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7735      * {@link ArkUI_NodeComponentEvent}. \n
7736      * <b>ArkUI_NodeComponent.data[0].u32</b>: year of the selected date. \n
7737      * <b>ArkUI_NodeComponent.data[1].u32</b>: month of the selected date. \n
7738      * <b>ArkUI_NodeComponent.data[2].u32</b>: day of the selected date. \n
7739      */
7740     NODE_CALENDAR_PICKER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CALENDAR_PICKER,
7741 
7742     /**
7743      * @brief Defines the event triggered when the <b>ARKUI_NODE_SLIDER</b> component is dragged or clicked.
7744      *
7745      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7746      * {@link ArkUI_NodeComponentEvent}. \n
7747      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7748      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current slider value. \n
7749      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: state triggered by the event.\n
7750      */
7751     NODE_SLIDER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SLIDER,
7752 
7753     /**
7754      * @brief Defines the event callback function triggered when an object is dragged or clicked by ARKUI_NODE_RADIO.
7755      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7756      * {@Link ArkUI_NodeComponentEvent}. \n
7757      * {@Link ArkUI_NodeComponentEvent} contains one parameter:\n
7758      * ArkUI_NodeComponentEvent.data[0].i32: option button status. \n
7759      */
7760     NODE_RADIO_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_RADIO,
7761 
7762     /**
7763      * @brief Defines the event callback function triggered when the animation starts to play.
7764      *
7765      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7766      * {@Link ArkUI_NodeComponentEvent}. \n
7767      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7768      *
7769     */
7770     NODE_IMAGE_ANIMATOR_EVENT_ON_START = MAX_NODE_SCOPE_NUM * ARKUI_NODE_IMAGE_ANIMATOR,
7771     /**
7772      * @brief Defines the event callback function triggered when the animation playback is paused.
7773      *
7774      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7775      * {@Link ArkUI_NodeComponentEvent}. \n
7776      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7777      *
7778     */
7779     NODE_IMAGE_ANIMATOR_EVENT_ON_PAUSE = 19001,
7780     /**
7781      * @brief Defines the event callback function triggered when the animation playback is repeated.
7782      *
7783      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7784      * {@Link ArkUI_NodeComponentEvent}. \n
7785      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7786      *
7787     */
7788     NODE_IMAGE_ANIMATOR_EVENT_ON_REPEAT = 19002,
7789     /**
7790      * @brief Defines the event callback function when the animation playback returns to the initial state.
7791      *
7792      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7793      * {@Link ArkUI_NodeComponentEvent}. \n
7794      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7795      *
7796     */
7797     NODE_IMAGE_ANIMATOR_EVENT_ON_CANCEL = 19003,
7798     /**
7799      * @brief Defines the event callback function triggered when the animation playback is complete or stopped.
7800      *
7801      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
7802      * {@Link ArkUI_NodeComponentEvent}. \n
7803      * {@Link ArkUI_NodeComponentEvent} contains no parameter:\n
7804      *
7805     */
7806     NODE_IMAGE_ANIMATOR_EVENT_ON_FINISH = 19004,
7807 
7808     /**
7809      * @brief Defines the callback triggered when the selected status of the <b>ARKUI_NODE_CHECKBOX_GROOUP</b>
7810      * or checkbox changes.
7811      *
7812      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7813      * {@link ArkUI_StringAsyncEvent}. \n
7814      * <b>ArkUI_StringAsyncEvent.pStr</b>
7815      * Name: The names of the selected checkboxes;
7816      * Status:
7817      * 0: All checkboxes are selected.
7818      * 1: Some checkboxes are selected.
7819      * 2: No checkboxes are selected. \n
7820      *
7821      * @since 15
7822      */
7823     NODE_CHECKBOX_GROUP_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_CHECKBOX_GROUP,
7824 
7825     /**
7826      * @brief Defines the event triggered when the index of the currently displayed element of this
7827      * <b>ARKUI_NODE_SWIPER</b> instance changes.
7828      *
7829      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7830      * {@link ArkUI_NodeComponentEvent}. \n
7831      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7832      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7833      */
7834     NODE_SWIPER_EVENT_ON_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SWIPER,
7835 
7836     /**
7837      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance starts.
7838      *
7839      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7840      * {@link ArkUI_NodeComponentEvent}. \n
7841      * {@link ArkUI_NodeComponentEvent} contains five parameters: \n
7842      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7843      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: index of the target element to switch to. \n
7844      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: offset of the currently displayed element relative to the
7845      * start position of the swiper along the main axis. \n
7846      * <b>ArkUI_NodeComponentEvent.data[3].f32</b>: offset of the target element relative to the start position
7847      * of the swiper along the main axis. \n
7848      * <b>ArkUI_NodeComponentEvent.data[4].f32</b>: hands-off velocity. \n
7849      */
7850     NODE_SWIPER_EVENT_ON_ANIMATION_START,
7851 
7852     /**
7853      * @brief Defines the event triggered when the switching animation of this <b>ARKUI_NODE_SWIPER</b> instance ends.
7854      *
7855      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7856      * {@link ArkUI_NodeComponentEvent}. \n
7857      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7858      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7859      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7860      * start position of the swiper along the main axis. \n
7861      */
7862     NODE_SWIPER_EVENT_ON_ANIMATION_END,
7863 
7864     /**
7865      * @brief Defines the event triggered on a frame-by-frame basis when the page is turned by a swipe in this
7866      * <b>ARKUI_NODE_SWIPER</b> instance.
7867      *
7868      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7869      * {@link ArkUI_NodeComponentEvent}. \n
7870      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7871      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently displayed element. \n
7872      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: offset of the currently displayed element relative to the
7873      * start position of the swiper along the main axis. \n
7874      */
7875     NODE_SWIPER_EVENT_ON_GESTURE_SWIPE,
7876 
7877     /**
7878      * @brief Define the <b>ARKUI_NODE_SWIPER</b> to listen for Swiper page slide events.
7879      * Instruction: \n
7880      * 1. If the {@link ArkUI_SwiperDisplayModeType} attribute is set to \n
7881      * ARKUI_SWIPER_DISPLAY_MODE_AUTO_LINEAR, the interface does not take effect. \n
7882      * 2, circular scenario, set prevMargin and nextMargin attributes, \n
7883      * so that Swiper front and back end display the same page, the interface does not take effect. \n
7884      * 3. During page sliding, the ContentDidScrollCallback callback is \n
7885      * triggered frame-by-frame for all pages in the window. \n
7886      * For example, when there are two pages in the window with subscripts 0 and 1, \n
7887      * callbacks with index values 0 and 1 are triggered twice per frame. \n
7888      * 4, set the swipeByGroup parameter of the displayCount property to \n
7889      * true if at least one page in the same group is in the window, \n
7890      * A callback is triggered for all pages in the group. \n
7891      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7892      * {@link ArkUI_NodeComponentEvent}. \n
7893      * {@link ArkUI_NodeComponentEvent} contains four parameters:\n
7894      * <b>ArkUI_NodeComponentEvent.data[0].i32</b> : indicates the index of the Swiper component, \n
7895      * which is consistent with the index change in the onChange event. \n
7896      * <b>ArkUI_NodeComponentEvent.data[1].i32</b> : The index of a page in the window. \n
7897      * <b>ArkUI_NodeComponentEvent.data[2].f32</b> : The proportion of page movement relative to \n
7898      * the start position of the Swiper spindle (selectedIndex corresponds to the start position of the page). \n
7899      * <b>ArkUI_NodeComponentEvent.data[3].f32</b> : The length of the page in the axis direction. \n
7900      */
7901     NODE_SWIPER_EVENT_ON_CONTENT_DID_SCROLL,
7902 
7903     /**
7904      * @brief Defines the event triggered when content in the swiper component will scroll.
7905      * Instructions: Before page scrolling, the </b>ContentWillScrollCallback</b> callback is invoked. \n \n
7906      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7907      * {@link ArkUI_NodeComponentEvent}. \n
7908      * {@link ArkUI_NodeComponentEvent} contains three parameters:\n
7909      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index value of the current child page. \n
7910      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: the index value of the child page that will display. \n
7911      * <b>ArkUI_NodeComponentEvent.data[2].f32</b>: the sliding offset of each frame.
7912      * Positive numbers indicating slide backward(e.g. from index=1 to index=0), negative numbers indicating
7913      * slide forward(e.g. from index=0 to index=1). \n
7914      *
7915      * @since 15
7916      */
7917     NODE_SWIPER_EVENT_ON_CONTENT_WILL_SCROLL = 1001007,
7918 
7919     /**
7920      * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
7921      *
7922      * This event is triggered under the following scenarios: \n
7923      * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
7924      * the threshold for page turning. \n
7925      * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
7926      * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
7927      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7928      * {@link ArkUI_NodeComponentEvent}. \n
7929      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7930      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the currently selected element. \n
7931      *
7932      * @since 18
7933      */
7934     NODE_SWIPER_EVENT_ON_SELECTED = 1001005,
7935 
7936     /**
7937      * @brief Defines the event triggered when the selected index of the <b>ARKUI_NODE_SWIPER</b> changed.
7938      *
7939      * This event is triggered under the following scenarios: \n
7940      * 1. When the page switching animation starts after the user lifts their finger after swiping and the swipe meets
7941      * the threshold for page turning. \n
7942      * 2. When the page is changed programmatically using either <b>NODE_SWIPER_INDEX</b> or
7943      * <b>NODE_SWIPER_SWIPE_TO_INDEX</b>. \n
7944      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7945      * {@link ArkUI_NodeComponentEvent}. \n
7946      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7947      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: the index of the element becomes unselected. \n
7948      *
7949      * @since 18
7950      */
7951     NODE_SWIPER_EVENT_ON_UNSELECTED = 1001006,
7952 
7953     /**
7954      * @brief Defines the <b>ARKUI_NODE_SWIPER</b> scroll state change event.
7955      * This event is triggered when the scroll state of the <b>Swiper</b> component changes during user dragging,
7956      * during the animation phase after the user lifts their finger, or upon stopping of scrolling.
7957      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7958      * {@link ArkUI_NodeComponentEvent}. \n
7959      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
7960      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: current scroll state. The parameter type is
7961      * {@link ArkUI_ScrollState}. \n
7962      *
7963      * @since 20
7964      */
7965     NODE_SWIPER_EVENT_ON_SCROLL_STATE_CHANGED = 1001008,
7966 
7967     /**
7968      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component scrolls.
7969      *
7970      * Notes for triggering the event:\n
7971      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7972      * settings, such as keyboard and mouse operations. \n
7973      * 2. Scrolling can be initiated by calling the controller API. \n
7974      * 3. The out-of-bounds bounce effect is supported. \n
7975      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7976      * {@link ArkUI_NodeComponentEvent}. \n
7977      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7978      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: horizontal scrolling offset. \n
7979      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: vertical scrolling offset. \n
7980      */
7981     NODE_SCROLL_EVENT_ON_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_SCROLL,
7982     /**
7983      * @brief Defines the event triggered when each frame scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
7984      *
7985      * Notes for triggering the event:\n
7986      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other input
7987      * settings, such as keyboard and mouse operations. \n
7988      * 2. This event is not triggered when the controller API is called. \n
7989      * 3. This event does not support the out-of-bounds bounce effect. \n
7990      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
7991      * {@link ArkUI_NodeComponentEvent}. \n
7992      * {@link ArkUI_NodeComponentEvent} contains two parameters:\n
7993      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: amount to scroll by. \n
7994      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: current scrolling state. \n
7995      * <b>::ArkUI_NodeComponentEvent</b> contains one return value:\n
7996      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The event handler can work out the amount by which the component
7997      * needs to scroll based on the real-world situation and return the result in this parameter. \n
7998      */
7999     NODE_SCROLL_EVENT_ON_SCROLL_FRAME_BEGIN,
8000 
8001     /**
8002      * @brief Define the enumeration value of the pre sliding trigger event for the scrolling container component.
8003      *
8004      * The conditions that trigger this event: \n
8005      * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
8006      * operations that trigger scrolling.\n
8007      * 2. Called through the rolling controller API interface.\n
8008      * 3. Cross boundary rebound.\n
8009      * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
8010      * {@link ArkUI_NodeComponentEvent}. \n
8011      * {@link ArkUI_NodeComponentEvent} contains four parameters: \n
8012      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
8013      * the left and negative when scrolling to the right, measured in vp. \n
8014      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
8015      * scrolling up and a negative offset when scrolling down, measured in vp. \n
8016      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
8017      * parameter type is {@link ArkUI_ScrollState}. \n
8018      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: Current scroll source, \n
8019      * parameter type is {@link ArkUI_ScrollSource}. \n
8020      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component.
8021      */
8022     NODE_SCROLL_EVENT_ON_WILL_SCROLL,
8023     /**
8024      * @brief Define the event enumeration value triggered when sliding a scrolling container component.
8025      *
8026      * The conditions that trigger this event: \n
8027      * 1. When the scrolling component triggers scrolling, it supports input settings such as keyboard and mouse
8028      * operations that trigger scrolling.\n
8029      * 2. Called through the rolling controller API interface.\n
8030      * 3. Cross boundary rebound.\n
8031      * When an event callback occurs, the union type in the event parameter {@ link ArkUI_NodeEvent} object is
8032      * {@link ArkUI_NodeComponentEvent}. \n
8033      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
8034      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: The offset for each frame of scrolling is positive when scrolling to
8035      * the left and negative when scrolling to the right, measured in vp. \n
8036      * <b>ArkUI_NodeComponentEvent.data[1].f32</b>: The offset of each frame scrolling, with a positive offset when
8037      * scrolling up and a negative offset when scrolling down, measured in vp. \n
8038      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current sliding state, \n
8039      parameter type is {@link ArkUI_ScrollState}. \n
8040      */
8041     NODE_SCROLL_EVENT_ON_DID_SCROLL,
8042 
8043     /**
8044      * @brief Defines the event triggered when scrolling starts in the <b>ARKUI_NODE_SCROLL</b> component.
8045      *
8046      * Notes for triggering the event:\n
8047      * 1. This event is triggered when scrolling is started, with support for other input settings, such as keyboard
8048      * and mouse operations. \n
8049      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
8050      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8051      * {@link ArkUI_NodeComponentEvent}. \n
8052      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8053      */
8054     NODE_SCROLL_EVENT_ON_SCROLL_START,
8055     /**
8056      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component stops.
8057      *
8058      * Notes for triggering the event:\n
8059      * 1. This event is triggered when scrolling is stopped by the <b>ARKUI_NODE_SCROLL</b> component or other input
8060      * settings, such as keyboard and mouse operations. \n
8061      * 2. This event is triggered when the controller API is called, accompanied by a transition animation. \n
8062      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8063      * {@link ArkUI_NodeComponentEvent}. \n
8064      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8065      */
8066     NODE_SCROLL_EVENT_ON_SCROLL_STOP,
8067     /**
8068      * @brief Defines the event triggered when scrolling of the <b>ARKUI_NODE_SCROLL</b> component reaches
8069      * one of the edges.
8070      *
8071      * Notes for triggering the event:\n
8072      * 1. This event is triggered when scrolling reaches the edge after being started by the <b>ARKUI_NODE_SCROLL</b>
8073      * component or other input settings, such as keyboard and mouse operations. \n
8074      * 2. Scrolling can be initiated by calling the controller API. \n
8075      * 3. The out-of-bounds bounce effect is supported. \n
8076      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8077      * {@link ArkUI_NodeComponentEvent}. \n
8078      * {@link ArkUI_NodeComponentEvent} contains one parameter. \n
8079      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: edge (top, bottom, left, or right) that the scrolling reaches. \n
8080      */
8081     NODE_SCROLL_EVENT_ON_SCROLL_EDGE,
8082     /**
8083      * @brief Define that a callback is triggered when the scrolling container component reaches the start position.
8084      * Condition for triggering the event: \n
8085      * Triggered when the component reaches the start position. \n
8086      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
8087      * {@Link ArkUI_NodeComponentEvent}. \n
8088      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
8089      */
8090     NODE_SCROLL_EVENT_ON_REACH_START,
8091     /**
8092      * @brief Define that a callback is triggered when the scrolling container component ends. \n
8093      * Condition for triggering the event: \n
8094      * Triggered when the component reaches the end. \n
8095      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
8096      * {@Link ArkUI_NodeComponentEvent}. \n
8097      * {@Link ArkUI_NodeComponentEvent} contains no parameters. \n
8098      */
8099     NODE_SCROLL_EVENT_ON_REACH_END,
8100     /**
8101      * @brief Defines the callback for when the user is about to release the drag on the scrollable container component.
8102      *
8103      * This event is triggered when the user is about to release the drag on the scrollable container component. \n
8104      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8105      * {@link ArkUI_NodeComponentEvent}. \n
8106      * {@link ArkUI_NodeComponentEvent} contains one parameter: \n
8107      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: speed at which the user releases the drag, in vp. \n
8108      *
8109      * @since 20
8110      */
8111     NODE_SCROLL_EVENT_ON_WILL_STOP_DRAGGING,
8112     /**
8113      * @brief Defines the callback for the <b>Scroll</b> component's zoom event,
8114      * triggered at the end of each frame during zooming. \n
8115      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8116      * is {@link ArkUI_NodeComponentEvent}. \n
8117      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8118      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: current zoom scale. \n
8119      *
8120      * @since 20
8121      */
8122     NODE_SCROLL_EVENT_ON_DID_ZOOM,
8123     /**
8124      * @brief Defines the callback for the <b>Scroll</b> component's zoom start event,
8125      * triggered when zooming begins. \n
8126      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8127      * is {@link ArkUI_NodeComponentEvent}. \n
8128      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8129      *
8130      * @since 20
8131      */
8132     NODE_SCROLL_EVENT_ON_ZOOM_START,
8133     /**
8134      * @brief Defines the callback for the <b>Scroll</b> component's zoom end event,
8135      * triggered when zooming ends. \n
8136      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object
8137      * is {@link ArkUI_NodeComponentEvent}. \n
8138      * {@link ArkUI_NodeComponentEvent} does not contain parameters. \n
8139      *
8140      * @since 20
8141      */
8142     NODE_SCROLL_EVENT_ON_ZOOM_STOP,
8143     /**
8144      * @brief Defines the enumerated values of the event triggered, \n
8145      * when a subcomponent of ARKUI_NODE_LIST is moved into or out of the list display area. \n
8146      * Condition for triggering the event: \n
8147      * This method is triggered once during list initialization. \n
8148      * It is triggered when the index value of the first or last subcomponent in the list display area changes. \n
8149      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is
8150      * {@Link ArkUI_NodeComponentEvent}. \n
8151      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
8152      * ArkUI_NodeComponentEvent.data[0].i32: List Displays the index value of \n
8153      * the first child component in the region. \n
8154      * ArkUI_NodeComponentEvent.data[1].i32: List Displays the index value of \n
8155      * the last child component in the region. \n
8156      * ArkUI_NodeComponentEvent.data[2].i32: List Displays the index value of \n
8157      * the subcomponent in the middle of the area. \n
8158      */
8159     NODE_LIST_ON_SCROLL_INDEX = MAX_NODE_SCOPE_NUM * ARKUI_NODE_LIST,
8160     /**
8161      * @brief Defines the enumerated values of the event triggered
8162      * before the sliding of the ARKUI_NODE_LIST component. \n
8163      * Condition for triggering the event: \n
8164      * This event is triggered when the scrolling component triggers scrolling. \n
8165      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
8166      * Called through the scroll controller API. \n
8167      * Out-of-bounds rebound. \n
8168      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8169      * {@Link ArkUI_NodeComponentEvent}. \n
8170      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
8171      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
8172      * The offset is positive when the list content is scrolled up and \n
8173      * is negative when the list content is scrolled down. \n
8174      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
8175      * parameter type is {@link ArkUI_ScrollState}. \n
8176      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
8177      * parameter type is {@link ArkUI_ScrollSource}. \n
8178      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
8179      */
8180     NODE_LIST_ON_WILL_SCROLL,
8181     /**
8182      * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_LIST component is flicked.
8183      * Condition for triggering the event: \n
8184      * This event is triggered when the scrolling component triggers scrolling. \n
8185      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
8186      * Called through the scroll controller API. \n
8187      * Out-of-bounds rebound. \n
8188      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8189      * {@Link ArkUI_NodeComponentEvent}. \n
8190      * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
8191      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
8192      * The offset is positive when the list content is scrolled up and \n
8193      * is negative when the list content is scrolled down. \n
8194      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
8195      */
8196     NODE_LIST_ON_DID_SCROLL,
8197 
8198     /**
8199      * @brief Defines the event triggered when the currently displayed content of the <b>ARKUI_NODE_LIST</b> changes.
8200      *
8201      * Notes for triggering the event:\n
8202      * This event is triggered once when the list is initialized and when the index of the first child component or the
8203      * next child component in the list display area changes.
8204      * During index calculation, the list item, header of the list item group, and footer of the list item group each
8205      * are counted as a child component. \n
8206      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8207      * {@link ArkUI_NodeComponentEvent}. \n
8208      * {@link ArkUI_NodeComponentEvent} contains three parameters: \n
8209      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: index of the first child component in the list display area. \n
8210      * <b>ArkUI_NodeComponentEvent.data[1].i32</b>: area in the list item group where the list display area starts.
8211      * The type is {@link ArkUI_ListItemGroupArea}. \n
8212      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: index of the list item at the start of the list display area
8213      * in the list item group.
8214      * If the start of the list display area is not on a list item, the value is <b>-1</b>. \n
8215      * <b>ArkUI_NodeComponentEvent.data[3].i32</b>: index of the last child component in the list display area. \n
8216      * <b>ArkUI_NodeComponentEvent.data[4].i32</b>: area in the list item group where the list display area ends.
8217      * The type is {@link ArkUI_ListItemGroupArea}. \n
8218      * <b>ArkUI_NodeComponentEvent.data[5].i32</b>: index of the list item at the end of the list display area in the
8219      * list item group.
8220      * If the end of the list display area is not on a list item, the value is <b>-1</b>. \n
8221      *
8222      * @since 15
8223      */
8224     NODE_LIST_ON_SCROLL_VISIBLE_CONTENT_CHANGE,
8225 
8226     /**
8227      * @brief Defines the event triggered when the refresh state of the <b>ARKUI_NODE_REFRESH</b> object changes.
8228      *
8229      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8230      * {@link ArkUI_NodeComponentEvent}. \n
8231      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8232      * <b>ArkUI_NodeComponentEvent.data[0].i32</b>: refresh state. \n
8233      */
8234     NODE_REFRESH_STATE_CHANGE = MAX_NODE_SCOPE_NUM * ARKUI_NODE_REFRESH,
8235     /**
8236      * @brief Defines the event triggered when the <b>ARKUI_NODE_REFRESH</b> object enters the refresh state.
8237      *
8238      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8239      * {@link ArkUI_NodeComponentEvent}. \n
8240      * {@link ArkUI_NodeComponentEvent} does not contain parameters:\n
8241      */
8242     NODE_REFRESH_ON_REFRESH,
8243 
8244     /**
8245      * @brief Defines the event that is triggered when the <b>ARKUI_NODE_REFRESH</b> drop-down distance changes.
8246      *
8247      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8248      * {@link ArkUI_NodeComponentEvent}. \n
8249      * {@link ArkUI_NodeComponentEvent} contains one parameter:\n
8250      * <b>ArkUI_NodeComponentEvent.data[0].f32</b>: Pull-down distance. \n
8251      */
8252     NODE_REFRESH_ON_OFFSET_CHANGE,
8253 
8254     /**
8255      * @brief Defines the event triggered when the <b>ARKUI_NODE_SCROLL</b> component is about to scroll.
8256      *
8257      * Notes for triggering the event:\n
8258      * 1. This event is triggered when scrolling is started by the <b>ARKUI_NODE_SCROLL</b> component or other
8259      * input settings, such as keyboard and mouse operations. \n
8260      * 2. Scrolling can be initiated by calling the controller API. \n
8261      * 3. The out-of-bounds bounce effect is supported. \n
8262      * When the event callback occurs, the union type in the {@link ArkUI_NodeEvent} object is
8263      * {@link ArkUI_NodeComponentEvent}. \n
8264      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
8265      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
8266      * The offset is positive when the list content is scrolled up and \n
8267      * is negative when the list content is scrolled down. \n
8268      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
8269      * parameter type is {@link ArkUI_ScrollState}. \n
8270      * <b>ArkUI_NodeComponentEvent.data[2].i32</b>: Current scroll source, \n
8271      * parameter type is {@link ArkUI_ScrollSource}. \n
8272      * @return Does not return or returns a number that sets the actual scroll distance of the scroll component. \n
8273      */
8274     NODE_ON_WILL_SCROLL = MAX_NODE_SCOPE_NUM * ARKUI_NODE_WATER_FLOW,
8275     /**
8276      * @brief Define the enumerated values of the event triggered when the ARKUI_NODE_WATER_FLOW component slides.
8277      * Condition for triggering the event: \n
8278      * This event is triggered when the scrolling component triggers scrolling.
8279      * Other inputs that trigger scrolling, such as keyboard and mouse operations, can be set. \n
8280      * Called through the scroll controller API. \n
8281      * Out-of-bounds rebound. \n
8282      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8283      * {@Link ArkUI_NodeComponentEvent}. \n
8284      * {@Link ArkUI_NodeComponentEvent} contains two parameters:\n
8285      * ArkUI_NodeComponentEvent.data[0].f32: offset of each frame scrolling. \n
8286      * The offset is positive when the content is scrolled up and is negative when the content is scrolled down. \n
8287      * ArkUI_NodeComponentEvent.data[1].i32: Current sliding state. \n
8288      */
8289     NODE_WATER_FLOW_ON_DID_SCROLL,
8290     /**
8291      * @brief Defines the enumerated values of the event triggered,
8292      * when the subcomponent of the start position or end position displayed in the current waterfall changes.
8293      * Condition for triggering the event: \n
8294      * This event is triggered when the index value of the \n
8295      * first or last subcomponent in the waterfall display area changes. \n
8296      * When the event callback occurs, the union type in the {@Link ArkUI_NodeEvent} object is \n
8297      * {@Link ArkUI_NodeComponentEvent}. \n
8298      * {@Link ArkUI_NodeComponentEvent} contains three parameters: \n
8299      * ArkUI_NodeComponentEvent.data[0].i32: The index value of the \n
8300      * start position of the currently displayed WaterFlow. \n
8301      * ArkUI_NodeComponentEvent.data[1].i32: The index value of \n
8302      * the end position of the currently displayed waterfall. \n
8303      */
8304     NODE_WATER_FLOW_ON_SCROLL_INDEX,
8305 } ArkUI_NodeEventType;
8306 
8307 /**
8308  * @brief Defines the common structure type of a component event.
8309  *
8310  * @since 12
8311  */
8312 typedef struct ArkUI_NodeEvent ArkUI_NodeEvent;
8313 
8314 /**
8315  * @brief Obtains the type of a component event.
8316  *
8317  * @param event Indicates the pointer to the component event.
8318  * @return Returns the type of the component event.
8319  * @since 12
8320  */
8321 ArkUI_NodeEventType OH_ArkUI_NodeEvent_GetEventType(ArkUI_NodeEvent* event);
8322 
8323 /**
8324  * @brief Obtains the custom ID of a component event.
8325  *
8326  * The event ID is passed in as a parameter when the {@link registerNodeEvent} function is called and can be applied
8327  * to the dispatch logic of the same event entry function {@link registerNodeEventReceiver}.
8328  *
8329  * @param event Indicates the pointer to the component event.
8330  * @return Returns the custom ID of the component event.
8331  * @since 12
8332  */
8333 int32_t OH_ArkUI_NodeEvent_GetTargetId(ArkUI_NodeEvent* event);
8334 
8335 /**
8336  * @brief Obtains the component object that triggers a component event.
8337  *
8338  * @param event Indicates the pointer to the component event.
8339  * @return Returns the component object that triggers the component event.
8340  * @since 12
8341  */
8342 ArkUI_NodeHandle OH_ArkUI_NodeEvent_GetNodeHandle(ArkUI_NodeEvent* event);
8343 
8344 /**
8345  * @brief Obtains input event (for example, touch event) data for a component event.
8346  *
8347  * @param event Indicates the pointer to the component event.
8348  * @return Returns the pointer to the input event data.
8349  * @since 12
8350  */
8351 ArkUI_UIInputEvent* OH_ArkUI_NodeEvent_GetInputEvent(ArkUI_NodeEvent* event);
8352 
8353 /**
8354  * @brief Obtains the numerical data in a component event.
8355  *
8356  * @param event Indicates the pointer to the component event.
8357  * @return Returns the pointer to the numerical data.
8358  * @since 12
8359  */
8360 ArkUI_NodeComponentEvent* OH_ArkUI_NodeEvent_GetNodeComponentEvent(ArkUI_NodeEvent* event);
8361 
8362 /**
8363  * @brief Obtains the string data in a component event.
8364  *
8365  * @param event Indicates the pointer to the component event.
8366  * @return Returns the pointer to the string data.
8367  * @since 12
8368  */
8369 ArkUI_StringAsyncEvent* OH_ArkUI_NodeEvent_GetStringAsyncEvent(ArkUI_NodeEvent* event);
8370 
8371 /**
8372  * @brief Obtains the ArkUI_TextChangeEvent data from a component event.
8373  *
8374  * @param event Pointer to a component event. It cannot be null.
8375  * @return Returns the pointer to the <b>ArkUI_TextChangeEvent</b> object.
8376  * @since 15
8377  */
8378 ArkUI_TextChangeEvent* OH_ArkUI_NodeEvent_GetTextChangeEvent(ArkUI_NodeEvent* event);
8379 
8380 /**
8381  * @brief Obtains the custom data in a component event.
8382  *
8383  * This parameter is passed in {@link registerNodeEvent} and can be applied to the service logic when the event
8384  * is triggered.
8385  *
8386  * @param event Indicates the pointer to the component event.
8387  * @return Returns the pointer to the custom data.
8388  * @since 12
8389  */
8390 void* OH_ArkUI_NodeEvent_GetUserData(ArkUI_NodeEvent* event);
8391 
8392 /**
8393  * @brief Obtains the numeric-type parameter of a component event.
8394  *
8395  * @param event Indicates the pointer to the component event.
8396  * @param index Indicates the index of the return value.
8397  * @param value Indicates the return value.
8398  * @return Returns the error code.
8399  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8400  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
8401  *         the limit.
8402  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
8403  * @since 12
8404  */
8405 int32_t OH_ArkUI_NodeEvent_GetNumberValue(ArkUI_NodeEvent* event, int32_t index, ArkUI_NumberValue* value);
8406 
8407 /**
8408  * @brief Obtains the string-type parameter of a component event. The string data is valid only during an event
8409  * callback. To use it outside an event callback, you are advised to copy the string data.
8410  *
8411  * @param event Indicates the pointer to the component event.
8412  * @param index Indicates the index of the return value.
8413  * @param string Indicates the pointer to the string array.
8414  * @param stringSize Indicates the length of the string array.
8415  * @return Returns the error code.
8416  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8417  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INDEX_OUT_OF_RANGE} if the parameter length exceeds
8418  *         the limit.
8419  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if the data does not exist in the component event.
8420  * @since 12
8421  */
8422 int32_t OH_ArkUI_NodeEvent_GetStringValue(ArkUI_NodeEvent* event, int32_t index, char** string, int32_t* stringSize);
8423 
8424 /**
8425  * @brief Sets the return value for a component event.
8426  *
8427  * @param event Indicates the pointer to the component event.
8428  * @param value Indicates the numeric-type array.
8429  * @param size Indicates the array length.
8430  * @return Returns the error code.
8431  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8432  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_NO_RETURN} if the component event does not support return values.
8433  *         Returns {@link ARKUI_ERROR_CODE_NODE_EVENT_PARAM_INVALID} if data does not exist in the component event.
8434  * @since 12
8435  */
8436 int32_t OH_ArkUI_NodeEvent_SetReturnNumberValue(ArkUI_NodeEvent* event, ArkUI_NumberValue* value, int32_t size);
8437 
8438 /**
8439  * @brief Defines the dirty area flag passed in the <b>::markDirty</b> API.
8440  *
8441  * @since 12
8442  */
8443 typedef enum {
8444     /**
8445      * @brief Remeasure.
8446      *
8447      * When this type of flag is specified, re-layout is triggered by default.
8448      */
8449     NODE_NEED_MEASURE = 1,
8450 
8451     /** Re-layout. */
8452     NODE_NEED_LAYOUT,
8453     /** Re-rendering. */
8454     NODE_NEED_RENDER,
8455 } ArkUI_NodeDirtyFlag;
8456 
8457 /**
8458  * @brief Defines the custom component event type.
8459  *
8460  * @since 12
8461  */
8462 typedef enum {
8463     /** Measure type. */
8464     ARKUI_NODE_CUSTOM_EVENT_ON_MEASURE = 1 << 0,
8465     /** Layout type. */
8466     ARKUI_NODE_CUSTOM_EVENT_ON_LAYOUT = 1 << 1,
8467     /** Draw type. */
8468     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW = 1 << 2,
8469     /** Foreground type. */
8470     ARKUI_NODE_CUSTOM_EVENT_ON_FOREGROUND_DRAW = 1 << 3,
8471     /** Overlay type. */
8472     ARKUI_NODE_CUSTOM_EVENT_ON_OVERLAY_DRAW = 1 << 4,
8473     /**
8474      * Draw front type.
8475      * @since 20
8476      */
8477     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_FRONT = 1 << 5,
8478     /**
8479      * Draw behind type.
8480      * @since 20
8481      */
8482     ARKUI_NODE_CUSTOM_EVENT_ON_DRAW_BEHIND = 1 << 6,
8483 } ArkUI_NodeCustomEventType;
8484 
8485 /**
8486  * @brief Defines the general structure of a custom component event.
8487  *
8488  * @since 12
8489  */
8490 typedef struct ArkUI_NodeCustomEvent ArkUI_NodeCustomEvent;
8491 
8492 /**
8493  * @brief Defines the component adapter, which is used for lazy loading of elements of scrollable components.
8494  *
8495  * @since 12
8496  */
8497 typedef struct ArkUI_NodeAdapter* ArkUI_NodeAdapterHandle;
8498 
8499 /**
8500  * @brief Defines the component adapter event.
8501  *
8502  * @since 12
8503  */
8504 typedef struct ArkUI_NodeAdapterEvent ArkUI_NodeAdapterEvent;
8505 
8506 /**
8507  * @brief Enumerates component adapter events.
8508  *
8509  * @since 12
8510  */
8511 typedef enum {
8512     /** This event occurs when the component is attached to the adapter. */
8513     NODE_ADAPTER_EVENT_WILL_ATTACH_TO_NODE = 1,
8514     /** This event occurs when the component is detached from the adapter. */
8515     NODE_ADAPTER_EVENT_WILL_DETACH_FROM_NODE = 2,
8516     /** This event occurs when the adapter obtains the unique ID of the new element to add. */
8517     NODE_ADAPTER_EVENT_ON_GET_NODE_ID = 3,
8518     /** This event occurs when the adapter obtains the content of the new element to add. */
8519     NODE_ADAPTER_EVENT_ON_ADD_NODE_TO_ADAPTER = 4,
8520     /** This event occurs when the adapter removes an element. */
8521     NODE_ADAPTER_EVENT_ON_REMOVE_NODE_FROM_ADAPTER = 5,
8522 } ArkUI_NodeAdapterEventType;
8523 
8524 /**
8525 * @brief Creates a component adapter.
8526 *
8527 * @since 12
8528 */
8529 ArkUI_NodeAdapterHandle OH_ArkUI_NodeAdapter_Create();
8530 
8531 /**
8532 * @brief Destroys a component adapter.
8533 *
8534 * @param handle Indicates the target component adapter.
8535 * @since 12
8536 */
8537 void OH_ArkUI_NodeAdapter_Dispose(ArkUI_NodeAdapterHandle handle);
8538 
8539 /**
8540 * @brief Sets the total number of elements in the specified adapter.
8541 *
8542 * @param handle Indicates the target component adapter.
8543 * @param size Indicates the number of elements.
8544 * @return Returns the error code.
8545 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8546 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8547 * @since 12
8548 */
8549 int32_t OH_ArkUI_NodeAdapter_SetTotalNodeCount(ArkUI_NodeAdapterHandle handle, uint32_t size);
8550 
8551 /**
8552 * @brief Obtains the total number of elements in the specified adapter.
8553 *
8554 * @param handle Indicates the target component adapter.
8555 * @return Returns the total number of elements in the adapter.
8556 * @since 12
8557 */
8558 uint32_t OH_ArkUI_NodeAdapter_GetTotalNodeCount(ArkUI_NodeAdapterHandle handle);
8559 
8560 /**
8561 * @brief Registers an event callback for the adapter.
8562 *
8563 * @param handle Indicates the target component adapter.
8564 * @param userData Indicates custom data.
8565 * @param receiver Indicates the event receiver callback.
8566 * @return Returns the error code.
8567 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8568 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8569 * @since 12
8570 */
8571 int32_t OH_ArkUI_NodeAdapter_RegisterEventReceiver(
8572 ArkUI_NodeAdapterHandle handle, void* userData, void (*receiver)(ArkUI_NodeAdapterEvent* event));
8573 
8574 /**
8575 * @brief Deregisters an event callback for the adapter.
8576 *
8577 * @param handle Indicates the target component adapter.
8578 * @since 12
8579 */
8580 void OH_ArkUI_NodeAdapter_UnregisterEventReceiver(ArkUI_NodeAdapterHandle handle);
8581 
8582 /**
8583 * @brief Instructs the specified adapter to reload all elements.
8584 *
8585 * @param handle Indicates the target component adapter.
8586 * @return Returns the error code.
8587 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8588 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8589 * @since 12
8590 */
8591 int32_t OH_ArkUI_NodeAdapter_ReloadAllItems(ArkUI_NodeAdapterHandle handle);
8592 
8593 /**
8594 * @brief Instructs the specified adapter to reload certain elements.
8595 *
8596 * @param handle Indicates the target component adapter.
8597 * @param startPosition Indicates the start position of the elements to reload.
8598 * @param itemCount Indicates the number of the elements to reload.
8599 *  @return Returns the error code.
8600 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8601 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8602 * @since 12
8603 */
8604 int32_t OH_ArkUI_NodeAdapter_ReloadItem(
8605 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8606 
8607 /**
8608 * @brief Instructs the specified adapter to remove certain elements.
8609 *
8610 * @param handle Indicates the target component adapter.
8611 * @param startPosition Indicates the start position of the elements to remove.
8612 * @param itemCount Indicates the number of the elements to remove.
8613 * @return Returns the error code.
8614 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8615 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8616 * @since 12
8617 */
8618 int32_t OH_ArkUI_NodeAdapter_RemoveItem(
8619 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8620 
8621 /**
8622 * @brief Instructs the specified adapter to insert certain elements.
8623 *
8624 * @param handle Indicates the target component adapter.
8625 * @param startPosition Indicates the start position of the elements to insert.
8626 * @param itemCount Indicates the number of the elements to insert.
8627 * @return Returns the error code.
8628 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8629 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8630 * @since 12
8631 */
8632 int32_t OH_ArkUI_NodeAdapter_InsertItem(
8633 ArkUI_NodeAdapterHandle handle, uint32_t startPosition, uint32_t itemCount);
8634 
8635 /**
8636 * @brief Instructs the specified adapter to move certain elements.
8637 *
8638 * @param handle Indicates the target component adapter.
8639 * @param from Indicates the start position of the elements to move.
8640 * @param to  Indicates the end position of the elements to move.
8641 * @return Returns the error code.
8642 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8643 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8644 * @since 12
8645 */
8646 int32_t OH_ArkUI_NodeAdapter_MoveItem(ArkUI_NodeAdapterHandle handle, uint32_t from, uint32_t to);
8647 
8648 /**
8649 * @brief Obtains all elements stored in the specified adapter.
8650 *
8651 * This API returns the pointer to the array of the elements. You need to manually release the memory data
8652 * to which the pointer points.
8653 *
8654 * @param handle Indicates the target component adapter.
8655 * @param items Indicates the pointer to the array of the elements in the adapter.
8656 * @param size Indicates the number of elements.
8657 * @return Returns the error code.
8658 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8659 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8660 * @since 12
8661 */
8662 int32_t OH_ArkUI_NodeAdapter_GetAllItems(ArkUI_NodeAdapterHandle handle, ArkUI_NodeHandle** items, uint32_t* size);
8663 
8664 /**
8665 * @brief Obtains the custom data passed in during registration of the specified event.
8666 *
8667 * @param event Indicates the target adapter event.
8668 * @since 12
8669 */
8670 void* OH_ArkUI_NodeAdapterEvent_GetUserData(ArkUI_NodeAdapterEvent* event);
8671 
8672 /**
8673 * @brief Obtains the event type.
8674 *
8675 * @param event Indicates the target adapter event.
8676 * @return Returns the event type.
8677 * @since 12
8678 */
8679 ArkUI_NodeAdapterEventType OH_ArkUI_NodeAdapterEvent_GetType(ArkUI_NodeAdapterEvent* event);
8680 
8681 /**
8682 * @brief Obtains the element to be removed for the event to be destroyed.
8683 *
8684 * @param event Indicates the target adapter event.
8685 * @return Returns the element to be removed.
8686 * @since 12
8687 */
8688 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetRemovedNode(ArkUI_NodeAdapterEvent* event);
8689 
8690 /**
8691 * @brief Obtains the index of the element to be operated for the specified adapter event.
8692 *
8693 * @param event Indicates the target adapter event.
8694 * @return Returns the index of the element.
8695 * @since 12
8696 */
8697 uint32_t OH_ArkUI_NodeAdapterEvent_GetItemIndex(ArkUI_NodeAdapterEvent* event);
8698 
8699 /**
8700 * @brief Obtains the scrollable container node that uses the specified adapter.
8701 *
8702 * @param event Indicates the target adapter event.
8703 * @return Returns the scrollable container node that uses the specified adapter.
8704 * @since 12
8705 */
8706 ArkUI_NodeHandle OH_ArkUI_NodeAdapterEvent_GetHostNode(ArkUI_NodeAdapterEvent* event);
8707 
8708 /**
8709 * @brief Sets the component to be added to the specified adapter.
8710 *
8711 * @param event Indicates the target adapter event.
8712 * @param node Indicates the component to be added.
8713 * @return Returns the error code.
8714 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8715 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8716 * @since 12
8717 */
8718 int32_t OH_ArkUI_NodeAdapterEvent_SetItem(ArkUI_NodeAdapterEvent* event, ArkUI_NodeHandle node);
8719 
8720 /**
8721 * @brief Sets the component ID to be generated.
8722 *
8723 * @param event Indicates the target adapter event.
8724 * @param id Indicates the component ID to set.
8725 * @return Returns the error code.
8726 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8727 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8728 * @since 12
8729 */
8730 int32_t OH_ArkUI_NodeAdapterEvent_SetNodeId(ArkUI_NodeAdapterEvent* event, int32_t id);
8731 
8732 /**
8733  * @brief Declares a collection of native node APIs provided by ArkUI.
8734  *
8735  * The APIs related to the native node must be called in the main thread.
8736  *
8737  * @version 1
8738  * @since 12
8739  */
8740 typedef struct {
8741     /** Struct version. */
8742     int32_t version;
8743 
8744     /**
8745      * @brief Creates a component based on {@link ArkUI_NodeType} and returns the pointer to the created component.
8746      *
8747      * @param type Indicates the type of component to create.
8748      * @return Returns the pointer to the created component. If the component fails to be created, NULL is returned.
8749      */
8750     ArkUI_NodeHandle (*createNode)(ArkUI_NodeType type);
8751 
8752     /**
8753      * @brief Destroys the component to which the specified pointer points.
8754      *
8755      * @param node Indicates the pointer.
8756      */
8757     void (*disposeNode)(ArkUI_NodeHandle node);
8758 
8759     /**
8760      * @brief Adds a component to a parent node.
8761      *
8762      * @param parent Indicates the pointer to the parent node.
8763      * @param child Indicates the pointer to the child node.
8764      * @return Returns the error code.
8765      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8766      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8767      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8768      * on BuilderNode generated nodes:
8769      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8770      */
8771     int32_t (*addChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8772 
8773     /**
8774      * @brief Removes a component from its parent node.
8775      *
8776      * @param parent Indicates the pointer to the parent node.
8777      * @param child Indicates the pointer to the child node.
8778      * @return Returns the error code.
8779      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8780      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8781      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8782      * on BuilderNode generated nodes:
8783      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8784      */
8785     int32_t (*removeChild)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child);
8786 
8787     /**
8788      * @brief Inserts a component to a parent node after the specified <b>sibling</b> node.
8789      *
8790      * @param parent Indicates the pointer to the parent node.
8791      * @param child Indicates the pointer to the child node.
8792      * @param sibling Indicates the pointer to the sibling node after which the target node is to be inserted.
8793      * If the value is null, the node is inserted at the start of the parent node.
8794      * @return Returns the error code.
8795      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8796      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8797      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8798      * on BuilderNode generated nodes:
8799      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8800      */
8801     int32_t (*insertChildAfter)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8802 
8803     /**
8804      * @brief Inserts a component to a parent node before the specified <b>sibling</b> node.
8805      *
8806      * @param parent Indicates the pointer to the parent node.
8807      * @param child Indicates the pointer to the child node.
8808      * @param sibling Indicates the pointer to the sibling node before which the target node is to be inserted.
8809      * If the value is null, the node is inserted at the end of the parent node.
8810      * @return Returns the error code.
8811      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8812      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8813      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8814      * on BuilderNode generated nodes:
8815      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8816      */
8817     int32_t (*insertChildBefore)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, ArkUI_NodeHandle sibling);
8818 
8819     /**
8820      * @brief Inserts a component to the specified position in a parent node.
8821      *
8822      * @param parent Indicates the pointer to the parent node.
8823      * @param child Indicates the pointer to the child node.
8824      * @param position Indicates the position to which the target child node is to be inserted. If the value is a
8825      * negative number or invalid, the node is inserted at the end of the parent node.
8826      * @return Returns the error code.
8827      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8828      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8829      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8830      * on BuilderNode generated nodes:
8831      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8832      */
8833     int32_t (*insertChildAt)(ArkUI_NodeHandle parent, ArkUI_NodeHandle child, int32_t position);
8834 
8835     /**
8836      * @brief Sets the attribute of a node.
8837      *
8838      * @param node Indicates the node whose attribute needs to be set.
8839      * @param attribute Indicates the type of attribute to set.
8840      * @param value Indicates the attribute value.
8841      * @return Returns the error code.
8842      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8843      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8844      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8845      *         of the native API was not found.
8846      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8847      *         on BuilderNode generated nodes:
8848      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8849      */
8850     int32_t (*setAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute, const ArkUI_AttributeItem* item);
8851 
8852     /**
8853      * @brief Obtains an attribute.
8854      *
8855      * The pointer returned by this API is an internal buffer pointer of the ArkUI framework. As such, you do not need
8856      * to call <b>delete</b> to release the memory. However, the pointer must be used before this API is called next
8857      * time. Otherwise, the pointer may be overwritten by other values.
8858      * @param node Indicates the node whose attribute needs to be obtained.
8859      * @param attribute Indicates the type of attribute to obtain.
8860      * @return Returns the attribute value. If the operation fails, a null pointer is returned.
8861      */
8862     const ArkUI_AttributeItem* (*getAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8863 
8864     /**
8865      * @brief Resets an attribute.
8866      *
8867      * @param node Indicates the node whose attribute needs to be reset.
8868      * @param attribute Indicates the type of attribute to reset.
8869      * @return Returns the error code.
8870      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8871      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8872      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8873      *         of the native API was not found.
8874      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8875      *         on BuilderNode generated nodes:
8876      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8877      */
8878     int32_t (*resetAttribute)(ArkUI_NodeHandle node, ArkUI_NodeAttributeType attribute);
8879 
8880     /**
8881      * @brief Registers an event for the specified node.
8882      *
8883      * When the component is being displayed, this API must be called in the main thread.
8884      *
8885      * @param node Indicates the target node.
8886      * @param eventType Indicates the type of event to register.
8887      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeEvent}
8888      * when the event is triggered.
8889      * @param userData Indicates the custom event parameter, which is passed in the callback of {@link ArkUI_NodeEvent}
8890      * @return Returns the error code.
8891      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
8892      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
8893      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
8894      *         of the native API was not found.
8895      *         Returns {@link ARKUI_ERROR_CODE_NOT_SUPPROTED_FOR_ARKTS_NODE} if the following operations are not allowed
8896      *         on BuilderNode generated nodes:
8897      *         setting or resetting attributes, setting events, or adding or editing subnodes.
8898      */
8899     int32_t (*registerNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType,
8900         int32_t targetId, void* userData);
8901 
8902     /**
8903      * @brief Unregisters an event for the specified node.
8904      *
8905      * When the component is being displayed, this API must be called in the main thread.
8906      *
8907      * @param node Indicates the target node.
8908      * @param eventType Indicates the type of event to unregister.
8909      */
8910     void (*unregisterNodeEvent)(ArkUI_NodeHandle node, ArkUI_NodeEventType eventType);
8911 
8912     /**
8913      * @brief Registers an event receiver.
8914      *
8915      * The ArkUI framework collects component events generated during the process and calls back the events through
8916      * the registered event receiver. \n
8917      * A new call to this API will overwrite the previously registered event receiver. \n
8918      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer. The data will be destroyed after the
8919      * callback is complete. \n
8920      * To bind with a component instance, you can use the <b>addNodeEventReceiver</b> function. \n
8921      *
8922      * @param eventReceiver Indicates the event receiver to register.
8923      */
8924     void (*registerNodeEventReceiver)(void (*eventReceiver)(ArkUI_NodeEvent* event));
8925 
8926     /**
8927      * @brief Unregisters the event receiver.
8928      *
8929      */
8930     void (*unregisterNodeEventReceiver)();
8931 
8932     /**
8933      * @brief Forcibly marks the current node that needs to be measured, laid out, or rendered again.
8934      *
8935      * Regarding updates to system attributes, the ArkUI framework automatically marks the dirty area and performs
8936      * measuring, layout, or rendering again. In this case, you do not need to call this API.
8937      * @param node Indicates the node for which you want to mark as dirty area.
8938      * @param dirtyFlag Indicates type of dirty area.
8939      */
8940     void (*markDirty)(ArkUI_NodeHandle node, ArkUI_NodeDirtyFlag dirtyFlag);
8941 
8942     /**
8943      * @brief Obtains the number of subnodes.
8944      *
8945      * @param node Indicates the target node.
8946      * @return the number of subnodes. If not, returns 0.
8947      */
8948     uint32_t (*getTotalChildCount)(ArkUI_NodeHandle node);
8949 
8950     /**
8951      * @brief Obtains a subnode.
8952      *
8953      * @param node Indicates the target node.
8954      * @param position Indicates the position of the subnode.
8955      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8956      */
8957     ArkUI_NodeHandle (*getChildAt)(ArkUI_NodeHandle node, int32_t position);
8958 
8959     /**
8960      * @brief Obtains the first subnode.
8961      *
8962      * @param node Indicates the target node.
8963      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8964      */
8965     ArkUI_NodeHandle (*getFirstChild)(ArkUI_NodeHandle node);
8966 
8967     /**
8968      * @brief Obtains the last subnode.
8969      *
8970      * @param node Indicates the target node.
8971      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8972      */
8973     ArkUI_NodeHandle (*getLastChild)(ArkUI_NodeHandle node);
8974 
8975     /**
8976      * @brief Obtains the previous sibling node.
8977      *
8978      * @param node Indicates the target node.
8979      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8980      */
8981     ArkUI_NodeHandle (*getPreviousSibling)(ArkUI_NodeHandle node);
8982 
8983     /**
8984      * @brief Obtains the next sibling node.
8985      *
8986      * @param node Indicates the target node.
8987      * @return Returns the pointer to the subnode if the subnode exists; returns <b>NULL</b> otherwise.
8988      */
8989     ArkUI_NodeHandle (*getNextSibling)(ArkUI_NodeHandle node);
8990 
8991     /**
8992      * @brief Registers a custom event for a node. When the event is triggered, the value is returned through the entry
8993      * point function registered by <b>registerNodeCustomEventReceiver</b>.
8994      *
8995      * @param node Indicates the target node.
8996      * @param eventType Indicates the type of event to register.
8997      * @param targetId Indicates the custom event ID, which is passed in the callback of {@link ArkUI_NodeCustomEvent}
8998      * when the event is triggered.
8999      * @param userData Indicates the custom event parameter, which is passed in the callback of
9000      * {@link ArkUI_NodeCustomEvent} when the event is triggered.
9001      * @return Returns the error code.
9002      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9003      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9004      *         Returns {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} if the dynamic implementation library
9005      *         of the native API was not found.
9006      */
9007     int32_t (*registerNodeCustomEvent)(
9008         ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType, int32_t targetId, void* userData);
9009 
9010     /**
9011      * @brief Unregisters a custom event for a node.
9012      *
9013      * @param node Indicates the target node.
9014      * @param eventType Indicates the type of event to unregister.
9015      */
9016     void (*unregisterNodeCustomEvent)(ArkUI_NodeHandle node, ArkUI_NodeCustomEventType eventType);
9017 
9018     /**
9019      * @brief Registers a unified entry point function for custom node event callbacks.
9020      *
9021      * The ArkUI framework collects custom component events generated during the process and calls back the events
9022      * through the registered <b>registerNodeCustomEventReceiver</b>. \n
9023      * A new call to this API will overwrite the previously registered event receiver.
9024      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
9025      * The data will be destroyed after the callback is complete. \n
9026      * To bind with a component instance, you can use the <b>addNodeCustomEventReceiver</b> function. \n
9027      *
9028      * @param eventReceiver Indicates the event receiver to register.
9029      */
9030     void (*registerNodeCustomEventReceiver)(void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9031 
9032     /**
9033      * @brief Unregisters the unified entry point function for custom node event callbacks.
9034      *
9035      */
9036     void (*unregisterNodeCustomEventReceiver)();
9037 
9038     /**
9039      * @brief Sets the width and height for a component after the measurement.
9040      *
9041      * @param node Indicates the target node.
9042      * @param width Indicates the width.
9043      * @param height Indicates the height.
9044      * @return Returns the error code.
9045      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9046      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9047      */
9048     int32_t (*setMeasuredSize)(ArkUI_NodeHandle node, int32_t width, int32_t height);
9049 
9050     /**
9051      * @brief Sets the position for a component.
9052      *
9053      * @param node Indicates the target node.
9054      * @param positionX Indicates the X coordinate.
9055      * @param positionY Indicates the Y coordinate.
9056      * @return Returns the error code.
9057      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9058      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9059      */
9060     int32_t (*setLayoutPosition)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
9061 
9062     /**
9063      * @brief Obtains the width and height of a component after measurement.
9064      *
9065      * @param node Indicates the target node.
9066      * @return Returns the width and height of the component.
9067      */
9068     ArkUI_IntSize (*getMeasuredSize)(ArkUI_NodeHandle node);
9069 
9070     /**
9071      * @brief Obtains the position of a component after the layout is complete.
9072      *
9073      * @param node Indicates the target node.
9074      * @return Returns the position of the component.
9075      */
9076     ArkUI_IntOffset (*getLayoutPosition)(ArkUI_NodeHandle node);
9077 
9078     /**
9079      * @brief Measures a node. You can use the <b>getMeasuredSize</b> API to obtain the size after the measurement.
9080      *
9081      * @param node Indicates the target node.
9082      * @param Constraint Indicates the size constraint.
9083      * @return Returns the error code.
9084      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9085      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9086      */
9087     int32_t (*measureNode)(ArkUI_NodeHandle node, ArkUI_LayoutConstraint* Constraint);
9088 
9089     /**
9090      * @brief Lays outs a component and passes the expected position of the component relative to its parent component.
9091      *
9092      * When the component is being displayed, this API must be called in the main thread.
9093      *
9094      * @param node Indicates the target node.
9095      * @param positionX Indicates the X coordinate.
9096      * @param positionY Indicates the Y coordinate.
9097      * @return Returns the error code.
9098      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9099      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9100      */
9101     int32_t (*layoutNode)(ArkUI_NodeHandle node, int32_t positionX, int32_t positionY);
9102 
9103     /**
9104      * @brief Adds a component event callback function to a component to receive component events generated
9105      * by the component.
9106      *
9107      * Unlike the global registration function <b>registerNodeEventReceiver</b>, this API allows multiple event
9108      * receivers to be added to the same component. \n
9109      * The callback added by this API is triggered before the global callback registered by
9110      * <b>registerNodeEventReceiver</b>. \n
9111      * Do not directly save the <b>ArkUI_NodeEvent</b> object pointer.
9112      * The data will be destroyed after the callback is complete. \n
9113      *
9114      * @param node Indicates the component for which you want to add the event callback function.
9115      * @param eventReceiver Indicates the component event callback function to add.
9116      * @return Returns the error code.
9117      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9118      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9119      */
9120     int32_t (*addNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
9121 
9122     /**
9123      * @brief Removes the registered component event callback function from a component.
9124      *
9125      * @param node Indicates the component from which you want to remove the event callback function.
9126      * @param eventReceiver Indicates the component event callback function to remove.
9127      * @return Returns the error code.
9128      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9129      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9130      */
9131     int32_t (*removeNodeEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeEvent* event));
9132 
9133     /**
9134      * @brief Adds a custom event callback function to a component to receive custom events
9135      * (such as layout and drawing events) generated by the component.
9136      *
9137      * Unlike the global registration function <b>registerNodeCustomEventReceiver</b>, this API allows
9138      * multiple event receivers to be added to the same component. \n
9139      * The callback added by this API is triggered before the global callback registered by
9140      * <b>registerNodeCustomEventReceiver</b>. \n
9141      * Do not directly save the <b>ArkUI_NodeCustomEvent</b> object pointer.
9142      * The data will be destroyed after the callback is complete. \n
9143      *
9144      * @param node Indicates the component for which you want to add the custom event callback function.
9145      * @param eventReceiver Indicates the custom event callback function to add.
9146      * @return Returns the error code.
9147      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9148      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9149      */
9150     int32_t (*addNodeCustomEventReceiver)(ArkUI_NodeHandle node, void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9151 
9152     /**
9153      * @brief Removes a registered custom event callback function from a component.
9154      *
9155      * @param node Indicates the component from which you want to remove the custom event callback function.
9156      * @param eventReceiver Indicates the custom event callback function to remove.
9157      * @return Returns the error code.
9158      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9159      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9160      */
9161     int32_t (*removeNodeCustomEventReceiver)(ArkUI_NodeHandle node,
9162         void (*eventReceiver)(ArkUI_NodeCustomEvent* event));
9163 
9164     /**
9165      * @brief Saves custom data on the specified component.
9166      *
9167      * @param node Indicates the component on which the custom data will be saved.
9168      * @param userData Indicates the custom data to be saved.
9169      * @return Returns the error code.
9170      *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9171      *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs..
9172      */
9173     int32_t (*setUserData)(ArkUI_NodeHandle node, void* userData);
9174 
9175     /**
9176      * @brief Obtains the custom data saved on the specified component.
9177      *
9178      * @param node Indicates the target component.
9179      * @return Returns the custom data.
9180      */
9181     void* (*getUserData)(ArkUI_NodeHandle node);
9182 
9183     /**
9184      * @brief Sets the unit for a component.
9185      *
9186      * @param node Indicates the component for which you want to set the unit.
9187      * @param unit Indicates the unit, which is an enumerated value of {@link ArkUI_LengthMetricUnit}.
9188      * The default value is <b>ARKUI_LENGTH_METRIC_UNIT_DEFAULT</b>.
9189      * @return Returns the error code.
9190     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9191     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9192      */
9193     int32_t (*setLengthMetricUnit)(ArkUI_NodeHandle node, ArkUI_LengthMetricUnit unit);
9194 
9195     /**
9196       * @brief Get the parent node.
9197       *
9198       * @param node target node object.
9199       * @return Returns the pointer of the component, if not return NULL
9200       */
9201     ArkUI_NodeHandle (*getParent)(ArkUI_NodeHandle node);
9202 
9203     /**
9204     * @brief Uninstall all child nodes from the parent component.
9205     *
9206     * @param parent target node object.
9207     * @return Returns the error code.
9208     *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9209     *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9210     * @since 12
9211     */
9212     int32_t (*removeAllChildren)(ArkUI_NodeHandle parent);
9213 } ArkUI_NativeNodeAPI_1;
9214 
9215 /**
9216 * @brief Obtains the size constraint for measurement through a custom component event.
9217 *
9218 * @param event Indicates the pointer to the custom component event.
9219 * @return Returns the pointer to the size constraint.
9220 * @since 12
9221 */
9222 ArkUI_LayoutConstraint* OH_ArkUI_NodeCustomEvent_GetLayoutConstraintInMeasure(ArkUI_NodeCustomEvent* event);
9223 
9224 /**
9225 * @brief Obtains the expected position of a component relative to its parent component in the layout phase through a
9226 * custom component event.
9227 *
9228 * @param event Indicates the pointer to the custom component event.
9229 * @return Returns the expected position relative to the parent component.
9230 * @since 12
9231 */
9232 ArkUI_IntOffset OH_ArkUI_NodeCustomEvent_GetPositionInLayout(ArkUI_NodeCustomEvent* event);
9233 
9234 /**
9235 * @brief Obtains the drawing context through a custom component event.
9236 *
9237 * @param event Indicates the pointer to the custom component event.
9238 * @return Returns the drawing context.
9239 * @since 12
9240 */
9241 ArkUI_DrawContext* OH_ArkUI_NodeCustomEvent_GetDrawContextInDraw(ArkUI_NodeCustomEvent* event);
9242 
9243 /**
9244 * @brief Obtains the ID of a custom component event.
9245 *
9246 * @param event Indicates the pointer to the custom component event.
9247 * @return Returns the ID of the custom component event.
9248 * @since 12
9249 */
9250 int32_t OH_ArkUI_NodeCustomEvent_GetEventTargetId(ArkUI_NodeCustomEvent* event);
9251 
9252 /**
9253 * @brief Obtains custom event parameters through a custom component event.
9254 *
9255 * @param event Indicates the pointer to the custom component event.
9256 * @return Returns the custom event parameters.
9257 * @since 12
9258 */
9259 void* OH_ArkUI_NodeCustomEvent_GetUserData(ArkUI_NodeCustomEvent* event);
9260 
9261 /**
9262 * @brief Obtains a component object through a custom component event.
9263 *
9264 * @param event Indicates the pointer to the custom component event.
9265 * @return Returns the component object.
9266 * @since 12
9267 */
9268 ArkUI_NodeHandle OH_ArkUI_NodeCustomEvent_GetNodeHandle(ArkUI_NodeCustomEvent* event);
9269 
9270 /**
9271 * @brief Obtains the event type through a custom component event.
9272 *
9273 * @param event Indicates the pointer to the custom component event.
9274 * @return Returns the type of the custom component event.
9275 * @since 12
9276 */
9277 ArkUI_NodeCustomEventType OH_ArkUI_NodeCustomEvent_GetEventType(ArkUI_NodeCustomEvent* event);
9278 
9279 /**
9280 * @brief Obtains the measurement information of a custom span through a custom component event.
9281 *
9282 * @param event Indicates the pointer to the custom component event.
9283 * @param info Indicates the measurement information to be obtained.
9284 * @return Returns the result code.
9285 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9286 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9287 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
9288 * @since 12
9289 */
9290 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanMeasureInfo(
9291     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMeasureInfo* info);
9292 
9293 /**
9294 * @brief Sets the measurement metrics of a custom span through a custom component event.
9295 *
9296 * @param event Indicates the pointer to the custom component event.
9297 * @param metrics Indicates the measurement metrics to set.
9298 * @return Returns the result code.
9299 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9300 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9301 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
9302 * @since 12
9303 */
9304 int32_t OH_ArkUI_NodeCustomEvent_SetCustomSpanMetrics(
9305     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanMetrics* metrics);
9306 
9307 /**
9308 * @brief Obtains the drawing information of a custom span through a custom component event.
9309 *
9310 * @param event Indicates the pointer to the custom component event.
9311 * @param info Indicates the drawing information to obtain.
9312 * @return Returns the result code.
9313 *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9314 *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9315 *         <br> Possible causes: Parameter verification failed, the parameter should not be nullptr.
9316 * @since 12
9317 */
9318 int32_t OH_ArkUI_NodeCustomEvent_GetCustomSpanDrawInfo(
9319     ArkUI_NodeCustomEvent* event, ArkUI_CustomSpanDrawInfo* info);
9320 
9321 /**
9322  * @brief Defines the node content event type.
9323  *
9324  * @since 12
9325  */
9326 typedef enum {
9327     /** Defines the attach event. */
9328     NODE_CONTENT_EVENT_ON_ATTACH_TO_WINDOW = 0,
9329     /** Defines the detach event. */
9330     NODE_CONTENT_EVENT_ON_DETACH_FROM_WINDOW = 1,
9331 } ArkUI_NodeContentEventType;
9332 
9333 /**
9334  * @brief Enumerates the inspector error codes.
9335  * @since 15
9336  */
9337 typedef enum {
9338     /**
9339      * @error Success.
9340      */
9341     ARKUI_INSPECTOR_NATIVE_RESULT_SUCCESSFUL = 0,
9342     /**
9343      * @error Invalid parameter.
9344      */
9345     ARKUI_INSPECTOR_NATIVE_RESULT_BAD_PARAMETER = -1,
9346 } ArkUI_InspectorErrorCode;
9347 
9348 /**
9349  * @brief Defines the general structure of a node content event.
9350  * @since 12
9351  */
9352 typedef struct ArkUI_NodeContentEvent ArkUI_NodeContentEvent;
9353 
9354 /**
9355  * @brief Defines the callback function of a node content event.
9356  * @since 12
9357  */
9358 typedef void (*ArkUI_NodeContentCallback)(ArkUI_NodeContentEvent* event);
9359 
9360 /**
9361  * @brief register a callback function to a node content.
9362  *
9363  * @param content Indicates the pointer to the node content instance.
9364  * @param callback Indicates the callback function.
9365  * @return Returns the error code.
9366  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9367  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9368  * @since 12
9369  */
9370 int32_t OH_ArkUI_NodeContent_RegisterCallback(ArkUI_NodeContentHandle content, ArkUI_NodeContentCallback callback);
9371 
9372 /**
9373  * @brief Obtains the type of a node content event.
9374  *
9375  * @param event Indicates the pointer to the node content event.
9376  * @return Returns the type of the node content event.
9377  * @since 12
9378  */
9379 ArkUI_NodeContentEventType OH_ArkUI_NodeContentEvent_GetEventType(ArkUI_NodeContentEvent* event);
9380 
9381 /**
9382  * @brief Obtains the node content object that triggers a node content event.
9383  *
9384  * @param event Indicates the pointer to the node content event.
9385  * @return Returns the node content object that triggers the node content event.
9386  * @since 12
9387  */
9388 ArkUI_NodeContentHandle OH_ArkUI_NodeContentEvent_GetNodeContentHandle(ArkUI_NodeContentEvent* event);
9389 
9390 /**
9391  * @brief Saves custom data on the specified node content.
9392  *
9393  * @param content Indicates the node content on which the custom data will be saved.
9394  * @param userData Indicates the custom data to be saved.
9395  * @return Returns the error code.
9396  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9397  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9398  * @since 12
9399  */
9400 int32_t OH_ArkUI_NodeContent_SetUserData(ArkUI_NodeContentHandle content, void* userData);
9401 
9402 /**
9403  * @brief Obtains the custom data saved on the specified node content.
9404  *
9405  * @param content Indicates the target node content.
9406  * @return Returns the custom data.
9407  * @since 12
9408  */
9409 void* OH_ArkUI_NodeContent_GetUserData(ArkUI_NodeContentHandle content);
9410 
9411 /**
9412  * @brief Add a node to a node content.
9413  *
9414  * @param content Indicates the pointer to the node content instance.
9415  * @param node Indicates the pointer to the node
9416  * @return Returns the error code.
9417  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9418  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9419  * @since 12
9420  */
9421 int32_t OH_ArkUI_NodeContent_AddNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
9422 
9423 /**
9424  * @brief remove a node from a node content.
9425  *
9426  * @param content Indicates the pointer to the node content instance.
9427  * @param node Indicates the pointer to the node
9428  * @return Returns the error code.
9429  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9430  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9431  * @since 12
9432  */
9433 int32_t OH_ArkUI_NodeContent_RemoveNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node);
9434 
9435 /**
9436  * @brief insert a node into a node content at a given position.
9437  *
9438  * @param content Indicates the pointer to the node content instance.
9439  * @param node Indicates the pointer to the node
9440  * @param position Indicates the position for inserting the node
9441  * @return Returns the error code.
9442  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9443  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9444  * @since 12
9445  */
9446 int32_t OH_ArkUI_NodeContent_InsertNode(ArkUI_NodeContentHandle content, ArkUI_NodeHandle node, int32_t position);
9447 
9448 /**
9449  * @brief Get the size of the component layout area.
9450  * The layout area size does not include graphic variation attributes such as scaling.
9451  *
9452  * @param node ArkUI_NodeHandle pointer.
9453  * @param size The drawing area size of the component handle, in px.
9454  * @return Returns the error code.
9455  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9456  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9457  * @since 12
9458  */
9459 int32_t OH_ArkUI_NodeUtils_GetLayoutSize(ArkUI_NodeHandle node, ArkUI_IntSize* size);
9460 
9461 /**
9462  * @brief Obtain the position of the component layout area relative to the parent component.
9463  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9464  *
9465  * @param node ArkUI_NodeHandle pointer.
9466  * @param localOffset The offset value of the component handle relative to the parent component, in px.
9467  * @return Returns the error code.
9468  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9469  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9470  * @since 12
9471  */
9472 int32_t OH_ArkUI_NodeUtils_GetLayoutPosition(ArkUI_NodeHandle node, ArkUI_IntOffset* localOffset);
9473 
9474 /**
9475  * @brief Obtain the position of the component layout area relative to the window.
9476  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9477  *
9478  * @param node ArkUI_NodeHandle pointer.
9479  * @param globalOffset The offset value of the component handle relative to the window, in px.
9480  * @return Returns the error code.
9481  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9482  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9483  * @since 12
9484  */
9485 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9486 
9487 /**
9488  * @brief Obtain the position of the component layout area relative to the screen.
9489  * The relative position of the layout area does not include graphic variation attributes, such as translation.
9490  *
9491  * @param node ArkUI_NodeHandle pointer.
9492  * @param screenOffset The offset value of the component handle relative to the screen, in px.
9493  * @return Returns the error code.
9494  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9495  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9496  * @since 12
9497  */
9498 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* screenOffset);
9499 
9500 /**
9501  * @brief Obtains the offset of a component relative to the global display.
9502  * The relative position does not count in transformation attributes, such as translate.
9503  *
9504  * @param node Pointer to the <b>ArkUI_NodeHandle</b> representing the component.
9505  * @param offset Offset of the component relative to the global display, in px.
9506  * @return Result code.
9507  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9508  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9509  * @since 20
9510  */
9511 int32_t OH_ArkUI_NodeUtils_GetLayoutPositionInGlobalDisplay(ArkUI_NodeHandle node, ArkUI_IntOffset* offset);
9512 
9513 /**
9514  * @brief Obtain the position of the component in the window, including the properties of graphic translation changes.
9515  *
9516  * @param node ArkUI_NodeHandle pointer.
9517  * @param translateOffset The cumulative offset value of the component handle itself,
9518  * parent components, and ancestor nodes, in px.
9519  * @return Returns the error code.
9520  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9521  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9522  * @since 12
9523  */
9524 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInWindow(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
9525 
9526 /**
9527  * @brief Obtain the position of the component on the screen, including the attributes of graphic translation changes.
9528  *
9529  * @param node ArkUI_NodeHandle pointer.
9530  * @param translateOffset The cumulative offset value of the component handle itself,
9531  * parent components, and ancestor nodes, in px.
9532  * @return Returns the error code.
9533  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9534  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9535  * @since 12
9536  */
9537 int32_t OH_ArkUI_NodeUtils_GetPositionWithTranslateInScreen(ArkUI_NodeHandle node, ArkUI_IntOffset* translateOffset);
9538 
9539 /**
9540  * @brief Add the custom property of the component. This interface only works on the main thread.
9541  *
9542  * @param node ArkUI_NodeHandle pointer.
9543  * @param name The name of the custom property. Passing null pointers is not allowed.
9544  * @param value The value of the custom property. Passing null pointers is not allowed.
9545  * @since 13
9546  */
9547 void OH_ArkUI_NodeUtils_AddCustomProperty(ArkUI_NodeHandle node, const char* name, const char* value);
9548 
9549 /**
9550  * @brief Remove the custom property of the component.
9551  *
9552  * @param node ArkUI_NodeHandle pointer.
9553  * @param name The name of the custom property.
9554  * @since 13
9555  */
9556 void OH_ArkUI_NodeUtils_RemoveCustomProperty(ArkUI_NodeHandle node, const char* name);
9557 
9558 /**
9559  * @brief Get the value of the custom property of the component.
9560  *
9561  * @param node ArkUI-NodeHandle pointer.
9562  * @param name The name of the custom attribute.
9563  * @param handle The structure of the custom attribute corresponding to the key parameter name obtained.
9564  * @return Error code.
9565  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9566  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9567  * @since 14
9568  */
9569 int32_t OH_ArkUI_NodeUtils_GetCustomProperty(ArkUI_NodeHandle node, const char* name, ArkUI_CustomProperty** handle);
9570 
9571 /**
9572  * @brief Get the parent node to obtain the component nodes created by ArkTs.
9573  *
9574  * @param node Target node object.
9575  * @return Return the pointer of the component.
9576  * @since 14
9577  */
9578 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetParentInPageTree(ArkUI_NodeHandle node);
9579 
9580 /**
9581  * @brief Retrieve all active child nodes of a node. Span will not be counted in the children.
9582  *
9583  * @param head Pass in the node that needs to be obtained.
9584  * @param handle The structure corresponding to the sub node information of the head node.
9585  * @return Error code.
9586  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9587  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9588  * @since 14
9589  */
9590 int32_t OH_ArkUI_NodeUtils_GetActiveChildrenInfo(ArkUI_NodeHandle head, ArkUI_ActiveChildrenInfo** handle);
9591 
9592 /**
9593  * @brief Retrieve the root node of the current page.
9594  *
9595  * @param node Target node object.
9596  * @return Return the pointer of the component.
9597  * @since 14
9598  */
9599 ArkUI_NodeHandle OH_ArkUI_NodeUtils_GetCurrentPageRootNode(ArkUI_NodeHandle node);
9600 
9601 /**
9602  * @brief Retrieve whether the component is labeled by C-API.
9603  *
9604  * @param node Target node object.
9605  * @return Return whether the node is a Tag created by C-API,
9606  *         true represents created by C-API, false represents not created by C-API.
9607  * @since 14
9608  */
9609 bool OH_ArkUI_NodeUtils_IsCreatedByNDK(ArkUI_NodeHandle node);
9610 
9611 /**
9612  * @brief Get the type of node.
9613  *
9614  * @param node Target node object.
9615  * @return Return the type of the node.
9616  *         For specific open types, refer to {@link ArkUI_NodeType}. For unopened nodes, return -1.
9617  * @since 14
9618  */
9619 int32_t OH_ArkUI_NodeUtils_GetNodeType(ArkUI_NodeHandle node);
9620 
9621 /**
9622  * @brief Get info of the window to which the node belongs.
9623  *
9624  * @param node Target node object.
9625  * @param info Window info. Use {@link OH_ArkUI_HostWindowInfo_Destroy} to release memory.
9626  * @return Error code.
9627  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9628  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9629  *         {@link ARKUI_ERROR_CODE_NODE_NOT_ON_MAIN_TREE} The node is not mounted.
9630  * @since 15
9631  */
9632 int32_t OH_ArkUI_NodeUtils_GetWindowInfo(ArkUI_NodeHandle node, ArkUI_HostWindowInfo** info);
9633 
9634 /**
9635  * @brief Obtains the index of the current FrameNode's first child node which is on the tree.
9636  *
9637  * @param node Indicates the target node.
9638  * @param index The index of the subnode.
9639  * @return Error code.
9640  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9641  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9642  * @since 15
9643  */
9644 int32_t OH_ArkUI_NodeUtils_GetFirstChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9645 
9646 /**
9647  * @brief Obtains the index of the current FrameNode's last child node which is on the tree.
9648  *
9649  * @param node Indicates the target node.
9650  * @param index the index of the subnode.
9651  * @return Error code.
9652  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9653  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9654  * @since 15
9655  */
9656 int32_t OH_ArkUI_NodeUtils_GetLastChildIndexWithoutExpand(ArkUI_NodeHandle node, uint32_t* index);
9657 
9658 /**
9659  * @brief Obtains a subnode by position with the expand mode.
9660  *
9661  * @param node Indicates the target node.
9662  * @param position Indicates the position of the subnode.
9663  * @param subnode The pointer to the subnode.
9664  * @param expandMode Indicates the expand mode. {@link ArkUI_ExpandMode}.
9665  * @return Error code.
9666  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9667  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9668  * @since 15
9669  */
9670 int32_t OH_ArkUI_NodeUtils_GetChildWithExpandMode(ArkUI_NodeHandle node, int32_t position,
9671     ArkUI_NodeHandle* subnode, uint32_t expandMode);
9672 
9673 /**
9674  * @brief Collapse the ListItem in its expanded state.
9675  *
9676  * @param node Node objects that need to be registered for events.
9677  * @param userData Custom event parameters are carried back in the callback parameter when the event is triggered.
9678  * @param onFinish The callback triggered after the completion of the folding animation.
9679  * @return Error code.
9680  *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9681  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9682  *         {@link ARKUI_ERROR_CODE_ATTRIBUTE_OR_EVENT_NOT_SUPPORTED} The component does not support this event.
9683  * @since 12
9684  */
9685 int32_t OH_ArkUI_List_CloseAllSwipeActions(ArkUI_NodeHandle node, void* userData, void (*onFinish)(void* userData));
9686 
9687 /**
9688 * @brief Obtain the UIContext pointer to the page where the node is located.
9689 *
9690 * @param node The node.
9691 * @return The UIContext pointer.
9692 *         If a null pointer is returned, it may be because the node is empty.
9693 * @since 12
9694 */
9695 ArkUI_ContextHandle OH_ArkUI_GetContextByNode(ArkUI_NodeHandle node);
9696 
9697 /**
9698 * @brief The event called when the system color mode changes.
9699 *        Only one system color change callback can be registered for the same component.
9700 *
9701 * @param node Indicates the target node.
9702 * @param userData Indicates the custom data to be saved.
9703 * @param onColorModeChange Callback Events.
9704 * @return Error code.
9705 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9706 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9707 * @since 12
9708 */
9709 int32_t OH_ArkUI_RegisterSystemColorModeChangeEvent(ArkUI_NodeHandle node,
9710     void* userData, void (*onColorModeChange)(ArkUI_SystemColorMode colorMode, void* userData));
9711 
9712 /**
9713 * @brief Unregister the event callback when the system color mode changes.
9714 *
9715 * @param node Indicates the target node.
9716 * @since 12
9717 */
9718 void OH_ArkUI_UnregisterSystemColorModeChangeEvent(ArkUI_NodeHandle node);
9719 
9720 /**
9721 * @brief The event called when the system font style changes.
9722 *        Only one system font change callback can be registered for the same component.
9723 *
9724 * @param node Indicates the target node.
9725 * @param userData Indicates the custom data to be saved.
9726 * @param onFontStyleChange Callback Events.
9727 * @return Error code.
9728 *         {@link ARKUI_ERROR_CODE_NO_ERROR} Success.
9729 *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9730 * @since 12
9731 */
9732 int32_t OH_ArkUI_RegisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node,
9733     void* userData, void (*onFontStyleChange)(ArkUI_SystemFontStyleEvent* event, void* userData));
9734 
9735 /**
9736 * @brief Unregister the event callback when the system font style changes.
9737 *
9738 * @param node Indicates the target node.
9739 * @since 12
9740 */
9741 void OH_ArkUI_UnregisterSystemFontStyleChangeEvent(ArkUI_NodeHandle node);
9742 
9743 /**
9744  * @brief Retrieve the font size value for system font change events.
9745  *
9746  * @param event Indicates a pointer to the current system font change event.
9747  * @return Updated system font size scaling factor. Default value: 1.0.
9748  * @since 12
9749  */
9750 float OH_ArkUI_SystemFontStyleEvent_GetFontSizeScale(const ArkUI_SystemFontStyleEvent* event);
9751 
9752 /**
9753  * @brief Retrieve the font thickness values for system font change events.
9754  *
9755  * @param event Indicates a pointer to the current system font change event.
9756  * @return The updated system font thickness scaling factor. Default value: 1.0.
9757  * @since 12
9758  */
9759 float OH_ArkUI_SystemFontStyleEvent_GetFontWeightScale(const ArkUI_SystemFontStyleEvent* event);
9760 
9761 /**
9762  * @brief Move the node handle to target parent node as child.
9763  *
9764  * @param node The node handle of the node to move.
9765  * @param target_parent The node handle of target parent.
9766  * @param index Indicates the index which the node is moved to. If the value is a nagative number of invalid, the
9767  *              node is moved to the end of the target parent node.
9768  * @return Error code.
9769  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9770  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9771  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9772  * @since 18
9773  */
9774 int32_t OH_ArkUI_NodeUtils_MoveTo(ArkUI_NodeHandle node, ArkUI_NodeHandle target_parent, int32_t index);
9775 
9776 /**
9777  * @brief Set the cross-language option of the target node handle.
9778  *
9779  * @param node The target node handle.
9780  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9781  * @return Error code.
9782  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9783  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9784  * @since 15
9785  */
9786 int32_t OH_ArkUI_NodeUtils_SetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9787 
9788 /**
9789  * @brief Get the cross-language option of the target node handle.
9790  *
9791  * @param node The target node handle.
9792  * @param option The cross-language option {@link ArkUI_CrossLanguageOption}.
9793  * @return Error code.
9794  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9795  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9796  * @since 15
9797  */
9798 int32_t OH_ArkUI_NodeUtils_GetCrossLanguageOption(ArkUI_NodeHandle node, ArkUI_CrossLanguageOption* option);
9799 
9800 /**
9801  * @brief Registers a callback for node when layout is completed.
9802  *
9803  * @param node Indicates the target node.
9804  * @param userData Indicates the custom data used in onLayoutCompleted callback function.
9805  * @param onLayoutCompleted Indicates the function when layout completed is callback.
9806  * @return error code
9807  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9808  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9809  * @since 15
9810  */
9811 int32_t OH_ArkUI_RegisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node,
9812     void* userData, void (*onLayoutCompleted)(void* userData));
9813 
9814 /**
9815  * @brief Registers a callback for node when draw is completed.
9816  *
9817  * @param node Indicates the target node.
9818  * @param userData Indicates the custom data used in onDrawCompleted callback function.
9819  * @param onDrawCompleted Indicates the function when draw completed is callback.
9820  * @return error code
9821  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9822  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9823  * @since 15
9824  */
9825 int32_t OH_ArkUI_RegisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node,
9826     void* userData, void (*onDrawCompleted)(void* userData));
9827 
9828 /**
9829  * @brief Unregisters the layout completed callback for node.
9830  *
9831  * @param node Indicates the target node.
9832  * @return error code
9833  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9834  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9835  * @since 15
9836  */
9837 int32_t OH_ArkUI_UnregisterLayoutCallbackOnNodeHandle(ArkUI_NodeHandle node);
9838 
9839 /**
9840  * @brief Unregisters the draw completed callback for node.
9841  *
9842  * @param node Indicates the target node.
9843  * @return error code
9844  *         {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9845  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter is incorrect.
9846  * @since 15
9847  */
9848 int32_t OH_ArkUI_UnregisterDrawCallbackOnNodeHandle(ArkUI_NodeHandle node);
9849 
9850 /**
9851  * @brief Get the node handle by id.
9852  *
9853  * @param id The id of the target node handle.
9854  * @param node The handle of target node handle.
9855  * @return Error code.
9856  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9857  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9858  * @since 15
9859  */
9860 int32_t OH_ArkUI_NodeUtils_GetAttachedNodeHandleById(const char* id, ArkUI_NodeHandle* node);
9861 
9862 /**
9863  * @brief Get the snapshot pixelmap for the given node synchronously, will get error if the node is not on the
9864  * tree or is not rendered yet.
9865  * Note: the pixelmap should be released through OH_PixelmapNative_Release when it's not used any more.
9866  *
9867  * @param node Indicates the target node.
9868  * @param snapshotOptions the given configuration for taking snapshot, can be null for using default.
9869  * @param pixelmap Pixelmap pointer created by system, it's the out result.
9870  * @return Returns the result code.
9871  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9872  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9873  *         Returns {@link ARKUI_ERROR_CODE_INTERNAL_ERROR} if the snapshot taking failed will null pixelmap returned.
9874  *         Returns {@link ARKUI_ERROR_CODE_COMPONENT_SNAPSHOT_TIMEOUT} if the snapshot taking is timeout.
9875  * @since 15
9876  */
9877 int32_t OH_ArkUI_GetNodeSnapshot(ArkUI_NodeHandle node, ArkUI_SnapshotOptions* snapshotOptions,
9878     OH_PixelmapNative** pixelmap);
9879 
9880 /**
9881  * @brief Obtains the offset of a specific node relative to its parent node.
9882  *
9883  * @param node Target node.
9884  * @param globalOffset Offset of the target node relative to its parent node, in px.
9885  * @return Returns the result code.
9886  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9887  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9888  * @since 15
9889  */
9890 int32_t OH_ArkUI_NodeUtils_GetPositionToParent(ArkUI_NodeHandle node, ArkUI_IntOffset* globalOffset);
9891 
9892 /**
9893  * @brief Adds the UI state style supported by the component. To handle states change efficiently, need to specify the
9894  * states of interest and the corresponding handler. When a state of interest occurs, the handler will be executed.
9895  *  - You can adjust the UI style based on the current state within the callback. If this API is called multiple
9896  * times on the same node, the last set of states and handler will take precedence.
9897  *  - Some component types have default system handling for certain states. For example, the <b>Button</b>
9898  * component has a default style effect for the PRESSED state. When custom state handling is implemented on such
9899  * components, the default style effect will be applied first, followed by the custom style changes, resulting in
9900  * a combined effect. To disable the default style effects, set <b>excludeInner</b> to <b>true</b>, if this is allowed
9901  * by the system implementation.
9902  *  - And when this API is called, the provided handler function will be executed immediately.
9903  *  - There is no need to explicitly register a listener for the NORMAL state. Once a non-NORMAL state is registered,
9904  * the system will automatically notify your application when the state changes back to NORMAL.
9905  *
9906  * @param node Target node.
9907  * @param uiStates Target UI states to be handled on the node.
9908  *        The combined result of all target UI states can be calculated using the <b>|</b> operator.
9909  *        Example: <b>targetUIStates = ArkUI_UIState::PRESSED | ArkUI_UIState::FOCUSED</b>.
9910  * @param statesChangeHandler Handler for UI state changes.
9911  *        It rturns the current UI status. The value is the result of combining all current state enum values using the
9912  *        <b>|</b> operator. You can determine the state using the <b>&</b> operator.
9913  *        Example: <b>if (currentStates & ArkUI_UIState::PRESSED == ArkUI_UIState::PRESSED)</b>.
9914  *        However, for checking the normal state, use the equality operator directly.
9915  *        Example: <b>if (currentStates == ArkUI_UIState::NORMAL)</b>.
9916  * @param excludeInner Whether to disable the default state styles.
9917  * @param userData Custom data used in the <b>statesChangeHandler</b> callback.
9918  * @return Returns the result code.
9919  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9920  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9921  * @since 20
9922  */
9923 ArkUI_ErrorCode OH_ArkUI_AddSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates,
9924     void (statesChangeHandler)(int32_t currentStates, void* userData), bool excludeInner, void* userData);
9925 
9926 /**
9927  * @brief Removes registered UI states. When all states registered using <b>OH_ArkUI_AddSupportedUIStates</b>
9928  * are removed, the registered <b>stateChangeHandler</b> will no longer be executed.
9929  *
9930  * @param node Target node.
9931  * @param uiStates Target UI states to be removed.
9932  * @return Returns the result code.
9933  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9934  *         Returns {@link ARKUI_ERROR_CODE_PARAM_INVALID} if a parameter error occurs.
9935  * @since 20
9936  */
9937 ArkUI_ErrorCode OH_ArkUI_RemoveSupportedUIStates(ArkUI_NodeHandle node, int32_t uiStates);
9938 
9939 /**
9940  * @brief Run a custom function inside the UIContext scope.
9941  *
9942  * @param uiContext ArkUI_ContextHandle.
9943  * @param userData Indicates the pointer to the custom data.
9944  * @param callback The custom function.
9945  * @return Returns the result code.
9946  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9947  *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9948  *         Returns {@link ARKUI_ERROR_CODE_UI_CONTEXT_INVALID} if the uiContext is invalid.
9949  *         Returns {@link ARKUI_ERROR_CODE_CALLBACK_INVALID} if the callback function is invalid.
9950  * @since 20
9951  */
9952 int32_t OH_ArkUI_RunTaskInScope(ArkUI_ContextHandle uiContext, void* userData, void(*callback)(void* userData));
9953 
9954 /**
9955  * @brief Get the node handle by uniqueId.
9956  *
9957  * @param uniqueId The uniqueId of the target node handle.
9958  * @param node The handle of target node handle.
9959  * @return Error code.
9960  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9961  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9962  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9963  * @since 20
9964  */
9965 int32_t OH_ArkUI_NodeUtils_GetNodeHandleByUniqueId(const uint32_t uniqueId, ArkUI_NodeHandle* node);
9966 
9967 /**
9968  * @brief Get the uniqueId of the target node handle.
9969  *
9970  * @param node The ArkUI-NodeHandle pointer.
9971  * @param uniqueId The uniqueId of the target node handle, default value is -1.
9972  * @return Error code.
9973  *         {@link ARKUI_ERROR_CODE_NO_ERROR} success.
9974  *         {@link ARKUI_ERROR_CODE_PARAM_INVALID} Function parameter exception.
9975  *         {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if the CAPI init error.
9976  * @since 20
9977  */
9978 int32_t OH_ArkUI_NodeUtils_GetNodeUniqueId(ArkUI_NodeHandle node, int32_t* uniqueId);
9979 
9980 /**
9981  * @brief Sets the inverse color algorithm for components and instances.
9982  *
9983  * @param uiContext Indicates the context in which the inverse color feature should take effect.
9984  *     If the value is null, the feature applies to the entire application process.
9985  * @param forceDark Indicates whether the inverse color feature is enabled.
9986  * @param nodeType Indicates the component type for which to enable the inverse color feature.
9987  *     If the value is ARKUI_NODE_UNDEFINED, enabling the feature for all components.
9988  * @param colorInvertFunc Indicates the user-defined inverse color algorithm.
9989  * @return Returns the error code.
9990  *         Returns {@link ARKUI_ERROR_CODE_NO_ERROR} if the operation is successful.
9991  *         Returns {@link ARKUI_ERROR_CODE_CAPI_INIT_ERROR} if CAPI init error.
9992  *         Returns {@link ARKUI_ERROR_CODE_FORCE_DARK_CONFIG_INVALID} if force dark config is invalid.
9993  * @since 20
9994  */
9995 int32_t OH_ArkUI_SetForceDarkConfig(ArkUI_ContextHandle uiContext, bool forceDark, ArkUI_NodeType nodeType,
9996     uint32_t (*colorInvertFunc)(uint32_t color));
9997 
9998 #ifdef __cplusplus
9999 };
10000 #endif
10001 
10002 #endif // ARKUI_NATIVE_NODE_H
10003 /** @} */
10004