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}