• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1/*
2* Copyright (C) 2024 Huawei Device Co., Ltd.
3* Licensed under the Apache License, Version 2.0 (the "License");
4* you may not use this file except in compliance with the License.
5* You may obtain a copy of the License at
6*
7* http://www.apache.org/licenses/LICENSE-2.0
8*
9* Unless required by applicable law or agreed to in writing, software
10* distributed under the License is distributed on an "AS IS" BASIS,
11* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12* See the License for the specific language governing permissions and
13* limitations under the License.
14*/
15
16/**
17 * @file
18 * @kit ArkUI
19 */
20
21
22import { ChipSize, ChipSymbolGlyphOptions, CloseOptions, ChipSuffixSymbolGlyphOptions } from '@ohos.arkui.advanced.Chip';
23import { SymbolGlyphModifier } from './@ohos.arkui.modifier';
24
25/**
26 * Defines icon options.
27 *
28 * @interface IconOptions
29 * @syscap SystemCapability.ArkUI.ArkUI.Full
30 * @crossplatform
31 * @atomicservice
32 * @since 12
33 */
34export interface IconOptions {
35
36    /**
37     * Image resource.
38     *
39     * @type { ResourceStr }
40     * @syscap SystemCapability.ArkUI.ArkUI.Full
41     * @crossplatform
42     * @atomicservice
43     * @since 12
44     */
45    src: ResourceStr;
46
47    /**
48     * Image size option.
49     *
50     * @type { ?SizeOptions }
51     * @syscap SystemCapability.ArkUI.ArkUI.Full
52     * @crossplatform
53     * @atomicservice
54     * @since 12
55     */
56    size?: SizeOptions;
57}
58
59/**
60 * Defines suffix icon options.
61 *
62 * @interface SuffixImageIconOptions
63 * @syscap SystemCapability.ArkUI.ArkUI.Full
64 * @crossplatform
65 * @atomicservice
66 * @since 14
67 */
68export interface SuffixImageIconOptions extends IconOptions {
69    /**
70     * Called when the suffix image icon is clicked.
71     *
72     * @type { ?VoidCallback }
73     * @syscap SystemCapability.ArkUI.ArkUI.Full
74     * @crossplatform
75     * @atomicservice
76     * @since 14
77     */
78    action?: VoidCallback;
79
80    /**
81     * Set accessibility text for icon.
82     *
83     * @type { ?ResourceStr }
84     * @syscap SystemCapability.ArkUI.ArkUI.Full
85     * @crossplatform
86     * @atomicservice
87     * @since 14
88     */
89    accessibilityText?: ResourceStr;
90
91    /**
92     * Set accessibility description for icon.
93     *
94     * @type { ?ResourceStr }
95     * @syscap SystemCapability.ArkUI.ArkUI.Full
96     * @crossplatform
97     * @atomicservice
98     * @since 14
99     */
100    accessibilityDescription?: ResourceStr;
101
102    /**
103     * Set accessibility level for icon.
104     *
105     * @type { ?string }
106     * @default "auto"
107     * @syscap SystemCapability.ArkUI.ArkUI.Full
108     * @crossplatform
109     * @atomicservice
110     * @since 14
111     */
112    accessibilityLevel?: string;
113}
114
115/**
116 * Defines label options.
117 *
118 * @interface LabelOptions
119 * @syscap SystemCapability.ArkUI.ArkUI.Full
120 * @crossplatform
121 * @atomicservice
122 * @since 12
123 */
124export interface LabelOptions {
125
126    /**
127     * Text content.
128     *
129     * @type { string }
130     * @syscap SystemCapability.ArkUI.ArkUI.Full
131     * @crossplatform
132     * @atomicservice
133     * @since 12
134     */
135    text: string;
136}
137
138
139/**
140 * Defines chipItem options.
141 *
142 * @interface ChipGroupItemOptions
143 * @syscap SystemCapability.ArkUI.ArkUI.Full
144 * @crossplatform
145 * @atomicservice
146 * @since 12
147 */
148export interface ChipGroupItemOptions {
149
150    /**
151     * Prefix icon.
152     *
153     * @type { ?IconOptions }
154     * @syscap SystemCapability.ArkUI.ArkUI.Full
155     * @crossplatform
156     * @atomicservice
157     * @since 12
158     */
159    prefixIcon?: IconOptions;
160
161    /**
162     * Prefix symbol.
163     *
164     * @type { ?ChipSymbolGlyphOptions }
165     * @syscap SystemCapability.ArkUI.ArkUI.Full
166     * @atomicservice
167     * @since 12
168     */
169    prefixSymbol?: ChipSymbolGlyphOptions;
170
171    /**
172     * Chip label.
173     *
174     * @type { LabelOptions }
175     * @syscap SystemCapability.ArkUI.ArkUI.Full
176     * @crossplatform
177     * @atomicservice
178     * @since 12
179     */
180    label: LabelOptions;
181
182    /**
183     * Suffix icon.
184     *
185     * @type { ?IconOptions }
186     * @syscap SystemCapability.ArkUI.ArkUI.Full
187     * @crossplatform
188     * @atomicservice
189     * @since 12
190     * @deprecated since 14
191     * @useinstead ChipGroupItemOptions#suffixImageIcon
192     */
193    suffixIcon?: IconOptions;
194
195    /**
196     * Suffix icon.
197     *
198     * @type { ?SuffixImageIconOptions }
199     * @syscap SystemCapability.ArkUI.ArkUI.Full
200     * @crossplatform
201     * @atomicservice
202     * @since 14
203     */
204    suffixImageIcon?: SuffixImageIconOptions;
205
206    /**
207     * suffix symbol.
208     *
209     * @type { ?ChipSymbolGlyphOptions }
210     * @syscap SystemCapability.ArkUI.ArkUI.Full
211     * @atomicservice
212     * @since 12
213     */
214    suffixSymbol?: ChipSymbolGlyphOptions;
215
216    /**
217     * Set options for suffix symbol.
218     *
219     * @type { ?ChipSuffixSymbolGlyphOptions }
220     * @syscap SystemCapability.ArkUI.ArkUI.Full
221     * @crossplatform
222     * @atomicservice
223     * @since 14
224     */
225    suffixSymbolOptions?: ChipSuffixSymbolGlyphOptions;
226
227    /**
228     * Allow close.
229     *
230     * @type { ?boolean }
231     * @syscap SystemCapability.ArkUI.ArkUI.Full
232     * @crossplatform
233     * @atomicservice
234     * @since 12
235     */
236    allowClose?: boolean;
237
238    /**
239     * Set options for default close icon when 'allowaClose' is true.
240     *
241     * @type { ?CloseOptions }
242     * @syscap SystemCapability.ArkUI.ArkUI.Full
243     * @crossplatform
244     * @atomicservice
245     * @since 14
246     */
247    closeOptions?: CloseOptions;
248
249    /**
250     * Set accessibility description for ChipGroup item.
251     *
252     * @type { ?ResourceStr }
253     * @syscap SystemCapability.ArkUI.ArkUI.Full
254     * @crossplatform
255     * @atomicservice
256     * @since 14
257     */
258    accessibilityDescription?: ResourceStr;
259
260    /**
261     * Set accessibility level for ChipGroup item.
262     *
263     * @type { ?string }
264     * @default "auto"
265     * @syscap SystemCapability.ArkUI.ArkUI.Full
266     * @crossplatform
267     * @atomicservice
268     * @since 14
269     */
270    accessibilityLevel?: string;
271}
272
273
274/**
275 * Defines ChipItemStyle.
276 *
277 * @interface ChipItemStyle
278 * @syscap SystemCapability.ArkUI.ArkUI.Full
279 * @crossplatform
280 * @atomicservice
281 * @since 12
282 */
283export interface ChipItemStyle {
284
285    /**
286     * Chip size.
287     *
288     * @type { ?(ChipSize | SizeOptions) }
289     * @syscap SystemCapability.ArkUI.ArkUI.Full
290     * @crossplatform
291     * @atomicservice
292     * @since 12
293     */
294    size?: ChipSize | SizeOptions;
295
296    /**
297     * ChipItem background color.
298     *
299     * @type { ?ResourceColor }
300     * @syscap SystemCapability.ArkUI.ArkUI.Full
301     * @crossplatform
302     * @atomicservice
303     * @since 12
304     */
305    backgroundColor?: ResourceColor;
306
307    /**
308     * Text font color.
309     *
310     * @type { ?ResourceColor }
311     * @syscap SystemCapability.ArkUI.ArkUI.Full
312     * @crossplatform
313     * @atomicservice
314     * @since 12
315     */
316    fontColor?: ResourceColor;
317
318    /**
319     * Selected Text font color.
320     *
321     * @type { ?ResourceColor }
322     * @syscap SystemCapability.ArkUI.ArkUI.Full
323     * @crossplatform
324     * @atomicservice
325     * @since 12
326     */
327    selectedFontColor?: ResourceColor;
328
329    /**
330     * Selected chip item background color.
331     *
332     * @type { ?ResourceColor }
333     * @syscap SystemCapability.ArkUI.ArkUI.Full
334     * @crossplatform
335     * @atomicservice
336     * @since 12
337     */
338    selectedBackgroundColor?: ResourceColor;
339}
340
341
342/**
343 * Defines chip group space.
344 *
345 * @interface ChipGroupSpaceOptions
346 * @syscap SystemCapability.ArkUI.ArkUI.Full
347 * @crossplatform
348 * @atomicservice
349 * @since 12
350 */
351export interface ChipGroupSpaceOptions {
352
353    /**
354     * Space between items.
355     *
356     * @type { ?(string | number) }
357     * @syscap SystemCapability.ArkUI.ArkUI.Full
358     * @crossplatform
359     * @atomicservice
360     * @since 12
361     */
362    itemSpace?: string | number;
363
364    /**
365     * Start space.
366     *
367     * @type { ?Length }
368     * @syscap SystemCapability.ArkUI.ArkUI.Full
369     * @crossplatform
370     * @atomicservice
371     * @since 12
372     */
373    startSpace?: Length;
374
375    /**
376     * End space.
377     *
378     * @type { ?Length }
379     * @syscap SystemCapability.ArkUI.ArkUI.Full
380     * @crossplatform
381     * @atomicservice
382     * @since 12
383     */
384    endSpace?: Length;
385}
386
387/**
388 * Defines IconItemOptions.
389 *
390 * @interface IconItemOptions
391 * @syscap SystemCapability.ArkUI.ArkUI.Full
392 * @crossplatform
393 * @atomicservice
394 * @since 12
395 */
396export interface IconItemOptions {
397    /**
398     * IconOptions.
399     *
400     * @type { IconOptions }
401     * @syscap SystemCapability.ArkUI.ArkUI.Full
402     * @crossplatform
403     * @atomicservice
404     * @since 12
405     */
406    icon: IconOptions;
407
408    /**
409     * Icon Action.
410     *
411     * @type { Callback<void> }
412     * @syscap SystemCapability.ArkUI.ArkUI.Full
413     * @crossplatform
414     * @atomicservice
415     * @since 12
416     */
417    action: Callback<void>;
418
419    /**
420     * Set accessibility text for icon.
421     *
422     * @type { ?ResourceStr }
423     * @syscap SystemCapability.ArkUI.ArkUI.Full
424     * @crossplatform
425     * @atomicservice
426     * @since 14
427     */
428    accessibilityText?: ResourceStr;
429
430    /**
431     * Set accessibility description for icon.
432     *
433     * @type { ?ResourceStr }
434     * @syscap SystemCapability.ArkUI.ArkUI.Full
435     * @crossplatform
436     * @atomicservice
437     * @since 14
438     */
439    accessibilityDescription?: ResourceStr;
440
441    /**
442     * Set accessibility level for icon.
443     *
444     * @type { ?string }
445     * @default "auto"
446     * @syscap SystemCapability.ArkUI.ArkUI.Full
447     * @crossplatform
448     * @atomicservice
449     * @since 14
450     */
451    accessibilityLevel?: string;
452}
453
454/**
455 * Defines symbol item options.
456 *
457 * @interface SymbolItemOptions
458 * @syscap SystemCapability.ArkUI.ArkUI.Full
459 * @atomicservice
460 * @since 14
461 */
462export interface SymbolItemOptions {
463    /**
464     * Set symbol.
465     *
466     * @type { ?SymbolGlyphModifier }
467     * @syscap SystemCapability.ArkUI.ArkUI.Full
468     * @atomicservice
469     * @since 14
470     */
471    symbol: SymbolGlyphModifier;
472
473    /**
474     * Called when the symbol item is clicked.
475     *
476     * @type { ?VoidCallback }
477     * @syscap SystemCapability.ArkUI.ArkUI.Full
478     * @crossplatform
479     * @atomicservice
480     * @since 14
481     */
482    action: VoidCallback;
483
484    /**
485     * Set accessibility text for symbol.
486     *
487     * @type { ?ResourceStr }
488     * @syscap SystemCapability.ArkUI.ArkUI.Full
489     * @crossplatform
490     * @atomicservice
491     * @since 14
492     */
493    accessibilityText?: ResourceStr;
494
495    /**
496     * Set accessibility description for symbol.
497     *
498     * @type { ?ResourceStr }
499     * @syscap SystemCapability.ArkUI.ArkUI.Full
500     * @crossplatform
501     * @atomicservice
502     * @since 14
503     */
504    accessibilityDescription?: ResourceStr;
505
506    /**
507     * Set accessibility level for symbol.
508     *
509     * @type { ?string }
510     * @default "auto"
511     * @syscap SystemCapability.ArkUI.ArkUI.Full
512     * @crossplatform
513     * @atomicservice
514     * @since 14
515     */
516    accessibilityLevel?: string;
517}
518
519/**
520 * Defines ChipGroupPaddingOptions.
521 *
522 * @interface ChipGroupPaddingOptions
523 * @syscap SystemCapability.ArkUI.ArkUI.Full
524 * @crossplatform
525 * @atomicservice
526 * @since 12
527 */
528export interface ChipGroupPaddingOptions {
529    /**
530     * Top of chip group padding.
531     *
532     * @type { Length }
533     * @syscap SystemCapability.ArkUI.ArkUI.Full
534     * @crossplatform
535     * @atomicservice
536     * @since 12
537     */
538    top: Length;
539
540    /**
541     * Bottom of chip group padding.
542     *
543     * @type { Length }
544     * @syscap SystemCapability.ArkUI.ArkUI.Full
545     * @crossplatform
546     * @atomicservice
547     * @since 12
548     */
549    bottom: Length;
550}
551
552/**
553 * Defines IconGroupSuffix.
554 *
555 * @interface IconGroupSuffix
556 * @syscap SystemCapability.ArkUI.ArkUI.Full
557 * @crossplatform
558 * @atomicservice
559 * @since 12
560 */
561@Component
562export declare struct IconGroupSuffix {
563    /**
564     * Suffix item.
565     *
566     * @type { Array<IconItemOptions | SymbolGlyphModifier> }
567     * @syscap SystemCapability.ArkUI.ArkUI.Full
568     * @crossplatform
569     * @atomicservice
570     * @since 12
571     */
572    /**
573     * Suffix item.
574     *
575     * @type { Array<IconItemOptions | SymbolGlyphModifier | SymbolItemOptions> }
576     * @syscap SystemCapability.ArkUI.ArkUI.Full
577     * @crossplatform
578     * @atomicservice
579     * @since 14
580     */
581    @Require @Prop
582    items: Array<IconItemOptions | SymbolGlyphModifier | SymbolItemOptions>;
583}
584
585
586/**
587 * Defines chipGroup.
588 *
589 * @struct ChipGroup
590 * @syscap SystemCapability.ArkUI.ArkUI.Full
591 * @crossplatform
592 * @atomicservice
593 * @since 12
594 */
595@Component
596export declare struct ChipGroup {
597
598    /**
599     * Chip item.
600     *
601     * @type { ChipGroupItemOptions[] }
602     * @syscap SystemCapability.ArkUI.ArkUI.Full
603     * @crossplatform
604     * @atomicservice
605     * @since 12
606     */
607    @Require @Prop
608    items: ChipGroupItemOptions[];
609
610    /**
611     * Chip item style.
612     *
613     * @type { ?ChipItemStyle }
614     * @syscap SystemCapability.ArkUI.ArkUI.Full
615     * @crossplatform
616     * @atomicservice
617     * @since 12
618     */
619    @Prop
620    itemStyle?: ChipItemStyle;
621
622    /**
623     * Default selected chip item indexes.
624     *
625     * @type { ?Array<number> }
626     * @syscap SystemCapability.ArkUI.ArkUI.Full
627     * @crossplatform
628     * @atomicservice
629     * @since 12
630     */
631    @Prop
632    selectedIndexes?: Array<number>;
633
634    /**
635     * Support multiple chip item selection.
636     *
637     * @type { ?boolean }
638     * @syscap SystemCapability.ArkUI.ArkUI.Full
639     * @crossplatform
640     * @atomicservice
641     * @since 12
642     */
643    @Prop
644    multiple?: boolean;
645
646    /**
647     * Chip group space.
648     *
649     * @type { ?ChipGroupSpaceOptions }
650     * @syscap SystemCapability.ArkUI.ArkUI.Full
651     * @crossplatform
652     * @atomicservice
653     * @since 12
654     */
655    @Prop
656    chipGroupSpace?: ChipGroupSpaceOptions;
657
658     /**
659     * Chip group padding (only support top and bottom).
660     *
661     * @type { ?ChipGroupPaddingOptions }
662     * @syscap SystemCapability.ArkUI.ArkUI.Full
663     * @crossplatform
664     * @atomicservice
665     * @since 12
666     */
667    @Prop
668    chipGroupPadding?: ChipGroupPaddingOptions;
669
670    /**
671     * Chip group callback. when chip status is changed, this onChange is called.
672     *
673     * @type { ?Callback<Array<number>> }
674     * @syscap SystemCapability.ArkUI.ArkUI.Full
675     * @crossplatform
676     * @atomicservice
677     * @since 12
678     */
679    onChange?: Callback<Array<number>>;
680
681    /**
682     * The builder function which will be rendered in the suffix of ChipGroup.
683     *
684     * @type { ?Callback<void> }
685     * @syscap SystemCapability.ArkUI.ArkUI.Full
686     * @crossplatform
687     * @atomicservice
688     * @since 12
689     */
690    @BuilderParam
691    suffix?: Callback<void>;
692}