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 16export const ETS_COMPILER_OPTIONS = { 17 ets: { 18 emitDecorators: [ 19 { 20 name: 'Entry', 21 emitParameters: true, 22 }, 23 { 24 name: 'Component', 25 emitParameters: false, 26 }, 27 { 28 name: 'Reusable', 29 emitParameters: false, 30 }, 31 { 32 name: 'CustomDialog', 33 emitParameters: false, 34 }, 35 { 36 name: 'Consume', 37 emitParameters: true, 38 }, 39 { 40 name: 'Link', 41 emitParameters: false, 42 }, 43 { 44 name: 'LocalStorageLink', 45 emitParameters: true, 46 }, 47 { 48 name: 'LocalStorageProp', 49 emitParameters: true, 50 }, 51 { 52 name: 'ObjectLink', 53 emitParameters: false, 54 }, 55 { 56 name: 'Prop', 57 emitParameters: false, 58 }, 59 { 60 name: 'Provide', 61 emitParameters: true, 62 }, 63 { 64 name: 'State', 65 emitParameters: false, 66 }, 67 { 68 name: 'StorageLink', 69 emitParameters: true, 70 }, 71 { 72 name: 'StorageProp', 73 emitParameters: true, 74 }, 75 { 76 name: 'Builder', 77 emitParameters: false, 78 }, 79 { 80 name: 'LocalBuilder', 81 emitParameters: false, 82 }, 83 { 84 name: 'BuilderParam', 85 emitParameters: false, 86 }, 87 { 88 name: 'Observed', 89 emitParameters: false, 90 }, 91 { 92 name: 'Require', 93 emitParameters: false, 94 }, 95 { 96 name: 'Sendable', 97 emitParameters: false, 98 }, 99 { 100 name: 'Track', 101 emitParameters: false, 102 }, 103 { 104 name: 'ComponentV2', 105 emitParameters: true, 106 }, 107 { 108 name: 'ObservedV2', 109 emitParameters: false, 110 }, 111 { 112 name: 'Trace', 113 emitParameters: false, 114 }, 115 { 116 name: 'Local', 117 emitParameters: false, 118 }, 119 { 120 name: 'Param', 121 emitParameters: false, 122 }, 123 { 124 name: 'Once', 125 emitParameters: false, 126 }, 127 { 128 name: 'Event', 129 emitParameters: false, 130 }, 131 { 132 name: 'Monitor', 133 emitParameters: true, 134 }, 135 { 136 name: 'Provider', 137 emitParameters: true, 138 }, 139 { 140 name: 'Consumer', 141 emitParameters: true, 142 }, 143 { 144 name: 'Computed', 145 emitParameters: false, 146 }, 147 { 148 name: 'Type', 149 emitParameters: true, 150 }, 151 ], 152 propertyDecorators: [ 153 { 154 name: 'Link', 155 needInitialization: false, 156 }, 157 { 158 name: 'Prop', 159 needInitialization: false, 160 }, 161 { 162 name: 'ObjectLink', 163 needInitialization: false, 164 }, 165 { 166 name: 'Consume', 167 needInitialization: false, 168 }, 169 ], 170 render: { 171 method: ['build', 'pageTransition'], 172 decorator: ['LocalBuilder', 'Builder'], 173 }, 174 components: [ 175 'AbilityComponent', 176 'AlphabetIndexer', 177 'Animator', 178 'Badge', 179 'Blank', 180 'Button', 181 'Calendar', 182 'CalendarPicker', 183 'Camera', 184 'Canvas', 185 'Checkbox', 186 'CheckboxGroup', 187 'Circle', 188 'ColorPicker', 189 'ColorPickerDialog', 190 'Column', 191 'ColumnSplit', 192 'ContentSlot', 193 'Counter', 194 'DataPanel', 195 'DatePicker', 196 'Divider', 197 'EffectComponent', 198 'Ellipse', 199 'EmbeddedComponent', 200 'Flex', 201 'FolderStack', 202 'FormComponent', 203 'FormLink', 204 'Gauge', 205 'GeometryView', 206 'Grid', 207 'GridItem', 208 'GridContainer', 209 'Hyperlink', 210 'Image', 211 'ImageAnimator', 212 'Line', 213 'List', 214 'ListItem', 215 'ListItemGroup', 216 'LoadingProgress', 217 'Marquee', 218 'MediaCachedImage', 219 'Menu', 220 'MenuItem', 221 'MenuItemGroup', 222 'MovingPhotoView', 223 'NavDestination', 224 'NavRouter', 225 'Navigation', 226 'Navigator', 227 'NodeContainer', 228 'Option', 229 'PageTransitionEnter', 230 'PageTransitionExit', 231 'Panel', 232 'Particle', 233 'Path', 234 'PatternLock', 235 'Piece', 236 'PluginComponent', 237 'Polygon', 238 'Polyline', 239 'Progress', 240 'QRCode', 241 'Radio', 242 'Rating', 243 'Rect', 244 'Refresh', 245 'RelativeContainer', 246 'RemoteWindow', 247 'RootScene', 248 'Row', 249 'RowSplit', 250 'RichText', 251 'Screen', 252 'Scroll', 253 'ScrollBar', 254 'Search', 255 'Section', 256 'Select', 257 'Shape', 258 'Sheet', 259 'SideBarContainer', 260 'Slider', 261 'Span', 262 'Stack', 263 'Stepper', 264 'StepperItem', 265 'Swiper', 266 'SymbolGlyph', 267 'SymbolSpan', 268 'TabContent', 269 'Tabs', 270 'Text', 271 'TextPicker', 272 'TextClock', 273 'TextArea', 274 'TextInput', 275 'TextTimer', 276 'TimePicker', 277 'Toggle', 278 'Video', 279 'Web', 280 'WindowScene', 281 'WithTheme', 282 'XComponent', 283 'GridRow', 284 'GridCol', 285 'WaterFlow', 286 'FlowItem', 287 'ImageSpan', 288 'LocationButton', 289 'PasteButton', 290 'SaveButton', 291 'UIExtensionComponent', 292 'IsolatedComponent', 293 'RichEditor', 294 'Component3D', 295 'ContainerSpan', 296 ], 297 extend: { 298 decorator: ['Extend', 'AnimatableExtend'], 299 components: [ 300 { 301 name: 'AbilityComponent', 302 type: 'AbilityComponentAttribute', 303 instance: 'AbilityComponentInstance', 304 }, 305 { 306 name: 'AlphabetIndexer', 307 type: 'AlphabetIndexerAttribute', 308 instance: 'AlphabetIndexerInstance', 309 }, 310 { 311 name: 'Animator', 312 type: 'AnimatorAttribute', 313 instance: 'AnimatorInstance', 314 }, 315 { 316 name: 'Badge', 317 type: 'BadgeAttribute', 318 instance: 'BadgeInstance', 319 }, 320 { 321 name: 'Blank', 322 type: 'BlankAttribute', 323 instance: 'BlankInstance', 324 }, 325 { 326 name: 'Button', 327 type: 'ButtonAttribute', 328 instance: 'ButtonInstance', 329 }, 330 { 331 name: 'Calendar', 332 type: 'CalendarAttribute', 333 instance: 'CalendarInstance', 334 }, 335 { 336 name: 'CalendarPicker', 337 type: 'CalendarPickerAttribute', 338 instance: 'CalendarPickerInstance', 339 }, 340 { 341 name: 'Camera', 342 type: 'CameraAttribute', 343 instance: 'CameraInstance', 344 }, 345 { 346 name: 'Canvas', 347 type: 'CanvasAttribute', 348 instance: 'CanvasInstance', 349 }, 350 { 351 name: 'Checkbox', 352 type: 'CheckboxAttribute', 353 instance: 'CheckboxInstance', 354 }, 355 { 356 name: 'CheckboxGroup', 357 type: 'CheckboxGroupAttribute', 358 instance: 'CheckboxGroupInstance', 359 }, 360 { 361 name: 'Circle', 362 type: 'CircleAttribute', 363 instance: 'CircleInstance', 364 }, 365 { 366 name: 'ColorPicker', 367 type: 'ColorPickerAttribute', 368 instance: 'ColorPickerInstance', 369 }, 370 { 371 name: 'ColorPickerDialog', 372 type: 'ColorPickerDialogAttribute', 373 instance: 'ColorPickerDialogInstance', 374 }, 375 { 376 name: 'Column', 377 type: 'ColumnAttribute', 378 instance: 'ColumnInstance', 379 }, 380 { 381 name: 'ColumnSplit', 382 type: 'ColumnSplitAttribute', 383 instance: 'ColumnSplitInstance', 384 }, 385 { 386 name: 'Counter', 387 type: 'CounterAttribute', 388 instance: 'CounterInstance', 389 }, 390 { 391 name: 'DataPanel', 392 type: 'DataPanelAttribute', 393 instance: 'DataPanelInstance', 394 }, 395 { 396 name: 'DatePicker', 397 type: 'DatePickerAttribute', 398 instance: 'DatePickerInstance', 399 }, 400 { 401 name: 'Divider', 402 type: 'DividerAttribute', 403 instance: 'DividerInstance', 404 }, 405 { 406 name: 'EffectComponent', 407 type: 'EffectComponentAttribute', 408 instance: 'EffectComponentInstance', 409 }, 410 { 411 name: 'Ellipse', 412 type: 'EllipseAttribute', 413 instance: 'EllipseInstance', 414 }, 415 { 416 name: 'EmbeddedComponent', 417 type: 'EmbeddedComponentAttribute', 418 instance: 'EmbeddedComponentInstance', 419 }, 420 { 421 name: 'Flex', 422 type: 'FlexAttribute', 423 instance: 'FlexInstance', 424 }, 425 { 426 name: 'FolderStack', 427 type: 'FolderStackAttribute', 428 instance: 'FolderStackInstance', 429 }, 430 { 431 name: 'FormComponent', 432 type: 'FormComponentAttribute', 433 instance: 'FormComponentInstance', 434 }, 435 { 436 name: 'FormLink', 437 type: 'FormLinkAttribute', 438 instance: 'FormLinkInstance', 439 }, 440 { 441 name: 'Gauge', 442 type: 'GaugeAttribute', 443 instance: 'GaugeInstance', 444 }, 445 { 446 name: 'GeometryView', 447 type: 'GeometryViewAttribute', 448 instance: 'GeometryViewInstance', 449 }, 450 { 451 name: 'Grid', 452 type: 'GridAttribute', 453 instance: 'GridInstance', 454 }, 455 { 456 name: 'GridItem', 457 type: 'GridItemAttribute', 458 instance: 'GridItemInstance', 459 }, 460 { 461 name: 'GridContainer', 462 type: 'GridContainerAttribute', 463 instance: 'GridContainerInstance', 464 }, 465 { 466 name: 'Hyperlink', 467 type: 'HyperlinkAttribute', 468 instance: 'HyperlinkInstance', 469 }, 470 { 471 name: 'Image', 472 type: 'ImageAttribute', 473 instance: 'ImageInstance', 474 }, 475 { 476 name: 'ImageAnimator', 477 type: 'ImageAnimatorAttribute', 478 instance: 'ImageAnimatorInstance', 479 }, 480 { 481 name: 'Line', 482 type: 'LineAttribute', 483 instance: 'LineInstance', 484 }, 485 { 486 name: 'List', 487 type: 'ListAttribute', 488 instance: 'ListInstance', 489 }, 490 { 491 name: 'ListItem', 492 type: 'ListItemAttribute', 493 instance: 'ListItemInstance', 494 }, 495 { 496 name: 'ListItemGroup', 497 type: 'ListItemGroupAttribute', 498 instance: 'ListItemGroupInstance', 499 }, 500 { 501 name: 'LoadingProgress', 502 type: 'LoadingProgressAttribute', 503 instance: 'LoadingProgressInstance', 504 }, 505 { 506 name: 'Marquee', 507 type: 'MarqueeAttribute', 508 instance: 'MarqueeInstance', 509 }, 510 { 511 name: 'MediaCachedImage', 512 type: 'MediaCachedImageAttribute', 513 instance: 'MediaCachedImageInstance', 514 }, 515 { 516 name: 'Menu', 517 type: 'MenuAttribute', 518 instance: 'MenuInstance', 519 }, 520 { 521 name: 'MenuItem', 522 type: 'MenuItemAttribute', 523 instance: 'MenuItemInstance', 524 }, 525 { 526 name: 'MenuItemGroup', 527 type: 'MenuItemGroupAttribute', 528 instance: 'MenuItemGroupInstance', 529 }, 530 { 531 name: 'MovingPhotoView', 532 type: 'MovingPhotoViewAttribute', 533 instance: 'MovingPhotoViewInstance', 534 }, 535 { 536 name: 'NavDestination', 537 type: 'NavDestinationAttribute', 538 instance: 'NavDestinationInstance', 539 }, 540 { 541 name: 'NavRouter', 542 type: 'NavRouterAttribute', 543 instance: 'NavRouterInstance', 544 }, 545 { 546 name: 'Navigation', 547 type: 'NavigationAttribute', 548 instance: 'NavigationInstance', 549 }, 550 { 551 name: 'Navigator', 552 type: 'NavigatorAttribute', 553 instance: 'NavigatorInstance', 554 }, 555 { 556 name: 'NodeContainer', 557 type: 'NodeContainerAttribute', 558 instance: 'NodeContainerInstance', 559 }, 560 { 561 name: 'Option', 562 type: 'OptionAttribute', 563 instance: 'OptionInstance', 564 }, 565 { 566 name: 'PageTransitionEnter', 567 type: 'PageTransitionEnterAttribute', 568 instance: 'PageTransitionEnterInstance', 569 }, 570 { 571 name: 'PageTransitionExit', 572 type: 'PageTransitionExitAttribute', 573 instance: 'PageTransitionExitInstance', 574 }, 575 { 576 name: 'Panel', 577 type: 'PanelAttribute', 578 instance: 'PanelInstance', 579 }, 580 { 581 name: 'Particle', 582 type: 'ParticleAttribute', 583 instance: 'ParticleInstance', 584 }, 585 { 586 name: 'Path', 587 type: 'PathAttribute', 588 instance: 'PathInstance', 589 }, 590 { 591 name: 'PatternLock', 592 type: 'PatternLockAttribute', 593 instance: 'PatternLockInstance', 594 }, 595 { 596 name: 'Piece', 597 type: 'PieceAttribute', 598 instance: 'PieceInstance', 599 }, 600 { 601 name: 'PluginComponent', 602 type: 'PluginComponentAttribute', 603 instance: 'PluginComponentInstance', 604 }, 605 { 606 name: 'Polygon', 607 type: 'PolygonAttribute', 608 instance: 'PolygonInstance', 609 }, 610 { 611 name: 'Polyline', 612 type: 'PolylineAttribute', 613 instance: 'PolylineInstance', 614 }, 615 { 616 name: 'Progress', 617 type: 'ProgressAttribute', 618 instance: 'ProgressInstance', 619 }, 620 { 621 name: 'QRCode', 622 type: 'QRCodeAttribute', 623 instance: 'QRCodeInstance', 624 }, 625 { 626 name: 'Radio', 627 type: 'RadioAttribute', 628 instance: 'RadioInstance', 629 }, 630 { 631 name: 'Rating', 632 type: 'RatingAttribute', 633 instance: 'RatingInstance', 634 }, 635 { 636 name: 'Rect', 637 type: 'RectAttribute', 638 instance: 'RectInstance', 639 }, 640 { 641 name: 'RelativeContainer', 642 type: 'RelativeContainerAttribute', 643 instance: 'RelativeContainerInstance', 644 }, 645 { 646 name: 'Refresh', 647 type: 'RefreshAttribute', 648 instance: 'RefreshInstance', 649 }, 650 { 651 name: 'RemoteWindow', 652 type: 'RemoteWindowAttribute', 653 instance: 'RemoteWindowInstance', 654 }, 655 { 656 name: 'RootScene', 657 type: 'RootSceneAttribute', 658 instance: 'RootSceneInstance', 659 }, 660 { 661 name: 'Row', 662 type: 'RowAttribute', 663 instance: 'RowInstance', 664 }, 665 { 666 name: 'RowSplit', 667 type: 'RowSplitAttribute', 668 instance: 'RowSplitInstance', 669 }, 670 { 671 name: 'RichText', 672 type: 'RichTextAttribute', 673 instance: 'RichTextInstance', 674 }, 675 { 676 name: 'Screen', 677 type: 'ScreenAttribute', 678 instance: 'ScreenInstance', 679 }, 680 { 681 name: 'Scroll', 682 type: 'ScrollAttribute', 683 instance: 'ScrollInstance', 684 }, 685 { 686 name: 'ScrollBar', 687 type: 'ScrollBarAttribute', 688 instance: 'ScrollBarInstance', 689 }, 690 { 691 name: 'Search', 692 type: 'SearchAttribute', 693 instance: 'SearchInstance', 694 }, 695 { 696 name: 'Section', 697 type: 'SectionAttribute', 698 instance: 'SectionInstance', 699 }, 700 { 701 name: 'Select', 702 type: 'SelectAttribute', 703 instance: 'SelectInstance', 704 }, 705 { 706 name: 'Shape', 707 type: 'ShapeAttribute', 708 instance: 'ShapeInstance', 709 }, 710 { 711 name: 'Sheet', 712 type: 'SheetAttribute', 713 instance: 'SheetInstance', 714 }, 715 { 716 name: 'SideBarContainer', 717 type: 'SideBarContainerAttribute', 718 instance: 'SideBarContainerInstance', 719 }, 720 { 721 name: 'Slider', 722 type: 'SliderAttribute', 723 instance: 'SliderInstance', 724 }, 725 { 726 name: 'Span', 727 type: 'SpanAttribute', 728 instance: 'SpanInstance', 729 }, 730 { 731 name: 'Stack', 732 type: 'StackAttribute', 733 instance: 'StackInstance', 734 }, 735 { 736 name: 'Stepper', 737 type: 'StepperAttribute', 738 instance: 'StepperInstance', 739 }, 740 { 741 name: 'StepperItem', 742 type: 'StepperItemAttribute', 743 instance: 'StepperItemInstance', 744 }, 745 { 746 name: 'Swiper', 747 type: 'SwiperAttribute', 748 instance: 'SwiperInstance', 749 }, 750 { 751 name: 'SymbolGlyph', 752 type: 'SymbolGlyphAttribute', 753 instance: 'SymbolGlyphInstance', 754 }, 755 { 756 name: 'SymbolSpan', 757 type: 'SymbolSpanAttribute', 758 instance: 'SymbolSpanInstance', 759 }, 760 { 761 name: 'TabContent', 762 type: 'TabContentAttribute', 763 instance: 'TabContentInstance', 764 }, 765 { 766 name: 'Tabs', 767 type: 'TabsAttribute', 768 instance: 'TabsInstance', 769 }, 770 { 771 name: 'Text', 772 type: 'TextAttribute', 773 instance: 'TextInstance', 774 }, 775 { 776 name: 'TextPicker', 777 type: 'TextPickerAttribute', 778 instance: 'TextPickerInstance', 779 }, 780 { 781 name: 'TextClock', 782 type: 'TextClockAttribute', 783 instance: 'TextClockInstance', 784 }, 785 { 786 name: 'TextArea', 787 type: 'TextAreaAttribute', 788 instance: 'TextAreaInstance', 789 }, 790 { 791 name: 'TextInput', 792 type: 'TextInputAttribute', 793 instance: 'TextInputInstance', 794 }, 795 { 796 name: 'TextTimer', 797 type: 'TextTimerAttribute', 798 instance: 'TextTimerInstance', 799 }, 800 { 801 name: 'TimePicker', 802 type: 'TimePickerAttribute', 803 instance: 'TimePickerInstance', 804 }, 805 { 806 name: 'Toggle', 807 type: 'ToggleAttribute', 808 instance: 'ToggleInstance', 809 }, 810 { 811 name: 'Video', 812 type: 'VideoAttribute', 813 instance: 'VideoInstance', 814 }, 815 { 816 name: 'Web', 817 type: 'WebAttribute', 818 instance: 'WebInstance', 819 }, 820 { 821 name: 'WindowScene', 822 type: 'WindowSceneAttribute', 823 instance: 'WindowSceneInstance', 824 }, 825 { 826 name: 'XComponent', 827 type: 'XComponentAttribute', 828 instance: 'XComponentInstance', 829 }, 830 { 831 name: 'GridRow', 832 type: 'GridRowAttribute', 833 instance: 'GridRowInstance', 834 }, 835 { 836 name: 'GridCol', 837 type: 'GridColAttribute', 838 instance: 'GridColInstance', 839 }, 840 { 841 name: 'WaterFlow', 842 type: 'WaterFlowAttribute', 843 instance: 'WaterFlowInstance', 844 }, 845 { 846 name: 'FlowItem', 847 type: 'FlowItemAttribute', 848 instance: 'FlowItemInstance', 849 }, 850 { 851 name: 'ImageSpan', 852 type: 'ImageSpanAttribute', 853 instance: 'ImageSpanInstance', 854 }, 855 { 856 name: 'LocationButton', 857 type: 'LocationButtonAttribute', 858 instance: 'LocationButtonInstance', 859 }, 860 { 861 name: 'PasteButton', 862 type: 'PasteButtonAttribute', 863 instance: 'PasteButtonInstance', 864 }, 865 { 866 name: 'SaveButton', 867 type: 'SaveButtonAttribute', 868 instance: 'SaveButtonInstance', 869 }, 870 { 871 name: 'UIExtensionComponent', 872 type: 'UIExtensionComponentAttribute', 873 instance: 'UIExtensionComponentInstance', 874 }, 875 { 876 name: 'IsolatedComponent', 877 type: 'IsolatedComponentAttribute', 878 instance: 'IsolatedComponentInstance', 879 }, 880 { 881 name: 'RichEditor', 882 type: 'RichEditorAttribute', 883 instance: 'RichEditorInstance', 884 }, 885 { 886 name: 'Component3D', 887 type: 'Component3DAttribute', 888 instance: 'Component3DInstance', 889 }, 890 { 891 name: 'ContainerSpan', 892 type: 'ContainerSpanAttribute', 893 instance: 'ContainerSpanInstance', 894 }, 895 ], 896 }, 897 styles: { 898 decorator: 'Styles', 899 component: { 900 name: 'Common', 901 type: 'T', 902 instance: 'CommonInstance', 903 }, 904 property: 'stateStyles', 905 }, 906 concurrent: { 907 decorator: 'Concurrent', 908 }, 909 customComponent: 'CustomComponent', 910 syntaxComponents: { 911 paramsUICallback: ['ForEach', 'LazyForEach'], 912 attrUICallback: [ 913 { 914 name: 'Repeat', 915 attributes: ['each', 'template'], 916 }, 917 ], 918 }, 919 libs: [], 920 }, 921}; 922 923export const COMPONENT_FOR_EACH: string = 'ForEach'; 924export const COMPONENT_LAZY_FOR_EACH: string = 'LazyForEach'; 925 926export const BUILDIN_SYSTEM_COMPONENT: Set<string> = new Set([...ETS_COMPILER_OPTIONS.ets.components, COMPONENT_FOR_EACH, COMPONENT_LAZY_FOR_EACH]); 927 928export const BUILDIN_ATOMIC_COMPONENT: Set<string> = new Set([ 929 'AbilityComponent', 930 'AlphabetIndexer', 931 'Animator', 932 'Blank', 933 'CalendarPicker', 934 'Camera', 935 'Circle', 936 'Component3D', 937 'ContentSlot', 938 'Divider', 939 'Ellipse', 940 'EmbeddedComponent', 941 'FormComponent', 942 'FrictionMotion', 943 'GeometryView', 944 'Image', 945 'ImageAnimator', 946 'ImageSpan', 947 'Line', 948 'LoadingProgress', 949 'LocationButton', 950 'Marquee', 951 'MediaCachedImage', 952 'NodeContainer', 953 'PageTransitionEnter', 954 'PageTransitionExit', 955 'Particle', 956 'PasteButton', 957 'Path', 958 'PatternLock', 959 'Polygon', 960 'Polyline', 961 'Progress', 962 'Radio', 963 'Rect', 964 'RemoteWindow', 965 'RichEditor', 966 'RichText', 967 'SaveButton', 968 'ScrollMotion', 969 'Search', 970 'Slider', 971 'Span', 972 'SpringMotion', 973 'SpringProp', 974 'SymbolSpan', 975 'SymbolGlyph', 976 'TextArea', 977 'TextInput', 978 'UIExtensionComponent', 979 'Video', 980 'Web', 981]); 982 983export const COMPONENT_DECORATOR: Set<string> = new Set(['Reusable', 'Component', 'ComponentV2', 'CustomDialog']); 984export const ENTRY_DECORATOR: string = 'Entry'; 985export const BUILDER_DECORATOR: string = 'Builder'; 986export const BUILDER_PARAM_DECORATOR: string = 'BuilderParam'; 987 988export function isEtsAtomicComponent(name: string): boolean { 989 return BUILDIN_ATOMIC_COMPONENT.has(name); 990} 991 992export function isEtsSystemComponent(name: string): boolean { 993 return BUILDIN_SYSTEM_COMPONENT.has(name); 994} 995 996export function isEtsContainerComponent(name: string): boolean { 997 return isEtsSystemComponent(name) && !isEtsAtomicComponent(name); 998} 999 1000export const COMPONENT_CREATE_FUNCTION: string = 'create'; 1001export const COMPONENT_POP_FUNCTION: string = 'pop'; 1002export const COMPONENT_CUSTOMVIEW: string = 'View'; 1003export const COMPONENT_REPEAT: string = 'Repeat'; 1004 1005export const COMPONENT_IF: string = 'If'; 1006export const COMPONENT_IF_BRANCH: string = 'IfBranch'; 1007export const COMPONENT_BRANCH_FUNCTION: string = 'branch'; 1008export const COMPONENT_BUILD_FUNCTION: string = 'build'; 1009 1010export const SPECIAL_CONTAINER_COMPONENT: Set<string> = new Set([COMPONENT_IF, COMPONENT_IF_BRANCH, COMPONENT_CUSTOMVIEW, COMPONENT_REPEAT]); 1011 1012export const COMPONENT_COMMON: string = 'Common'; 1013export const COMPONENT_INSTANCE: string = 'Instance'; 1014 1015export const COMPONENT_ATTRIBUTE: string = 'Attribute'; 1016export const CALL_BACK: string = 'Callback'; 1017export const ON_OFF: Set<string> = new Set(['on', 'off']); 1018 1019export const OH_PACKAGE_JSON5 = 'oh-package.json5'; 1020export const BUILD_PROFILE_JSON5 = 'build-profile.json5'; 1021