1 /*
2  * Copyright (c) 2021 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 #ifndef FOUNDATION_ACE_FRAMEWORKS_BRIDGE_COMMON_DOM_DOM_REFLECT_MAP_H
17 #define FOUNDATION_ACE_FRAMEWORKS_BRIDGE_COMMON_DOM_DOM_REFLECT_MAP_H
18 
19 #include <map>
20 
21 #include "core/components/common/layout/constants.h"
22 #include "core/components/common/layout/grid_layout_info.h"
23 #include "frameworks/bridge/common/dom/dom_type.h"
24 
25 namespace OHOS::Ace::Framework {
26 
27 const std::map<std::string, FlexDirection> FlexDirectionMap = {
28     { DOM_FLEX_COLUMN, FlexDirection::COLUMN },
29     { DOM_FLEX_ROW, FlexDirection::ROW },
30     { DOM_FLEX_COLUMN_REVERSE, FlexDirection::COLUMN_REVERSE },
31     { DOM_FLEX_ROW_REVERSE, FlexDirection::ROW_REVERSE }
32 };
33 
34 const std::map<std::string, FlexAlign> FlexJustifyContentMap = {
35     { DOM_JUSTIFY_CONTENT_START, FlexAlign::FLEX_START },
36     { DOM_JUSTIFY_CONTENT_CENTER, FlexAlign::CENTER },
37     { DOM_JUSTIFY_CONTENT_END, FlexAlign::FLEX_END },
38     { DOM_JUSTIFY_CONTENT_BETWEEN, FlexAlign::SPACE_BETWEEN },
39     { DOM_JUSTIFY_CONTENT_AROUND, FlexAlign::SPACE_AROUND },
40     { DOM_JUSTIFY_CONTENT_EVENLY, FlexAlign::SPACE_EVENLY },
41 };
42 
43 const std::map<std::string, FlexAlign> FlexAlignItemsMap = {
44     { DOM_ALIGN_ITEMS_STRETCH, FlexAlign::STRETCH },
45     { DOM_ALIGN_ITEMS_START, FlexAlign::FLEX_START },
46     { DOM_ALIGN_ITEMS_CENTER, FlexAlign::CENTER },
47     { DOM_ALIGN_ITEMS_END, FlexAlign::FLEX_END },
48     { DOM_ALIGN_ITEMS_BASELINE, FlexAlign::BASELINE },
49 };
50 
51 const std::map<std::string, WrapDirection> WrapDirectionMap = {
52     { DOM_FLEX_ROW, WrapDirection::HORIZONTAL },
53     { DOM_FLEX_COLUMN, WrapDirection::VERTICAL }
54 };
55 
56 const std::map<std::string, WrapAlignment> WrapJustifyContentMap = {
57     { DOM_JUSTIFY_CONTENT_START, WrapAlignment::START },
58     { DOM_JUSTIFY_CONTENT_CENTER, WrapAlignment::CENTER },
59     { DOM_JUSTIFY_CONTENT_END, WrapAlignment::END },
60     { DOM_JUSTIFY_CONTENT_BETWEEN, WrapAlignment::SPACE_BETWEEN },
61     { DOM_JUSTIFY_CONTENT_AROUND, WrapAlignment::SPACE_AROUND }
62 };
63 
64 const std::map<std::string, WrapAlignment> WrapAlignItemsMap = {
65     { DOM_ALIGN_ITEMS_STRETCH, WrapAlignment::STRETCH },
66     { DOM_ALIGN_ITEMS_START,  WrapAlignment::START },
67     { DOM_ALIGN_ITEMS_CENTER, WrapAlignment::CENTER },
68     { DOM_ALIGN_ITEMS_END,  WrapAlignment::END}
69 };
70 
71 const std::map<std::string, WrapAlignment> WrapAlignContentMap = {
72     { DOM_ALIGN_CONTENT_STRETCH, WrapAlignment::STRETCH },
73     { DOM_ALIGN_CONTENT_START, WrapAlignment::START },
74     { DOM_ALIGN_CONTENT_CENTER, WrapAlignment::CENTER },
75     { DOM_ALIGN_CONTENT_END, WrapAlignment::END },
76     { DOM_ALIGN_CONTENT_BETWEEN, WrapAlignment::SPACE_BETWEEN },
77     { DOM_ALIGN_CONTENT_AROUND, WrapAlignment::SPACE_AROUND }
78 };
79 
80 const std::map<std::string, GridSizeType> GridSizeTypeMap = {
81     { DOM_GRID_SIZE_TYPE_XS, GridSizeType::XS },
82     { DOM_GRID_SIZE_TYPE_SM, GridSizeType::SM },
83     { DOM_GRID_SIZE_TYPE_MD, GridSizeType::MD },
84     { DOM_GRID_SIZE_TYPE_LG, GridSizeType::LG }
85 };
86 
87 const std::map<std::string, GridTemplateType> GridTemplateMap = {
88     { DOM_GRID_TEMPLATE_TYPE_NORMAL, GridTemplateType::NORMAL },
89     { DOM_GRID_TEMPLATE_TYPE_GRID, GridTemplateType::GRID },
90 };
91 
92 const std::map<std::string, GridColumnType> GridColumnTypeMap = {
93     { DOM_COLUMN_TYPE_NONE, GridColumnType::NONE },
94     { DOM_COLUMN_TYPE_BUBBLE, GridColumnType::BUBBLE_TYPE },
95     { DOM_COLUMN_TYPE_BUTTON, GridColumnType::BUTTON_TYPE },
96     { DOM_COLUMN_TYPE_CARD, GridColumnType::CARD_TYPE },
97     { DOM_COLUMN_TYPE_CONTENT, GridColumnType::CONTENT_TYPE },
98 };
99 
100 } // namespace OHOS::Ace::Framework
101 
102 #endif // FOUNDATION_ACE_FRAMEWORKS_BRIDGE_COMMON_DOM_DOM_REFLECT_MAP_H
103