• 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
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