@antv/dumi-theme-antv 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (111) hide show
  1. package/README.md +9 -0
  2. package/es/antv/404/index.js +20 -0
  3. package/es/antv/Banner/Banner.module.less +412 -0
  4. package/es/antv/Banner/Notification.js +44 -0
  5. package/es/antv/Banner/Notification.module.less +108 -0
  6. package/es/antv/Banner/index.js +115 -0
  7. package/es/antv/Cases/Cases.js +124 -0
  8. package/es/antv/Cases/Cases.module.less +203 -0
  9. package/es/antv/Features/FeatureCard.js +25 -0
  10. package/es/antv/Features/FeatureCard.module.less +51 -0
  11. package/es/antv/Features/Features.module.less +169 -0
  12. package/es/antv/Features/index.js +102 -0
  13. package/es/antv/Footer/Footer.module.less +36 -0
  14. package/es/antv/Footer/index.js +232 -0
  15. package/es/antv/Header/Logo.js +130 -0
  16. package/es/antv/Products/Product.js +61 -0
  17. package/es/antv/Products/Product.module.less +146 -0
  18. package/es/antv/Products/getNewProducts.js +41 -0
  19. package/es/antv/Products/getProducts.js +466 -0
  20. package/es/antv/Products/index.js +81 -0
  21. package/es/antv/hooks.js +81 -0
  22. package/es/antv/mixins.less +21 -0
  23. package/es/antv/utils.js +49 -0
  24. package/es/builtins/API.js +37 -0
  25. package/es/builtins/Alert.js +9 -0
  26. package/es/builtins/Alert.less +62 -0
  27. package/es/builtins/Badge.js +9 -0
  28. package/es/builtins/Badge.less +31 -0
  29. package/es/builtins/Example.js +48 -0
  30. package/es/builtins/Example.less +47 -0
  31. package/es/builtins/Previewer.js +225 -0
  32. package/es/builtins/Previewer.less +406 -0
  33. package/es/builtins/SourceCode.js +72 -0
  34. package/es/builtins/SourceCode.less +103 -0
  35. package/es/builtins/Table.js +56 -0
  36. package/es/builtins/Table.less +43 -0
  37. package/es/builtins/Tree.js +219 -0
  38. package/es/builtins/Tree.less +159 -0
  39. package/es/components/Dark.js +125 -0
  40. package/es/components/Dark.less +121 -0
  41. package/es/components/LocaleSelect.js +53 -0
  42. package/es/components/LocaleSelect.less +59 -0
  43. package/es/components/Navbar.js +155 -0
  44. package/es/components/Navbar.less +180 -0
  45. package/es/components/SearchBar.js +83 -0
  46. package/es/components/SearchBar.less +165 -0
  47. package/es/components/SideMenu.js +99 -0
  48. package/es/components/SideMenu.less +379 -0
  49. package/es/components/SlugList.js +33 -0
  50. package/es/components/SlugList.less +18 -0
  51. package/es/layout.js +276 -0
  52. package/es/style/layout.less +402 -0
  53. package/es/style/markdown.less +240 -0
  54. package/es/style/variables.less +37 -0
  55. package/package.json +58 -0
  56. package/src/antv/404/index.tsx +25 -0
  57. package/src/antv/Banner/Banner.module.less +412 -0
  58. package/src/antv/Banner/Notification.module.less +108 -0
  59. package/src/antv/Banner/Notification.tsx +45 -0
  60. package/src/antv/Banner/index.tsx +121 -0
  61. package/src/antv/Cases/Cases.module.less +203 -0
  62. package/src/antv/Cases/Cases.tsx +116 -0
  63. package/src/antv/Features/FeatureCard.module.less +51 -0
  64. package/src/antv/Features/FeatureCard.tsx +24 -0
  65. package/src/antv/Features/Features.module.less +169 -0
  66. package/src/antv/Features/index.tsx +86 -0
  67. package/src/antv/Footer/Footer.module.less +36 -0
  68. package/src/antv/Footer/index.tsx +272 -0
  69. package/src/antv/Header/Logo.tsx +85 -0
  70. package/src/antv/Products/Product.module.less +146 -0
  71. package/src/antv/Products/Product.tsx +80 -0
  72. package/src/antv/Products/getNewProducts.tsx +53 -0
  73. package/src/antv/Products/getProducts.tsx +626 -0
  74. package/src/antv/Products/index.tsx +70 -0
  75. package/src/antv/hooks.ts +87 -0
  76. package/src/antv/mixins.less +21 -0
  77. package/src/antv/utils.ts +44 -0
  78. package/src/builtins/API.tsx +57 -0
  79. package/src/builtins/Alert.less +62 -0
  80. package/src/builtins/Alert.tsx +4 -0
  81. package/src/builtins/Badge.less +31 -0
  82. package/src/builtins/Badge.tsx +4 -0
  83. package/src/builtins/Example.less +47 -0
  84. package/src/builtins/Example.tsx +34 -0
  85. package/src/builtins/Previewer.less +406 -0
  86. package/src/builtins/Previewer.tsx +264 -0
  87. package/src/builtins/SourceCode.less +103 -0
  88. package/src/builtins/SourceCode.tsx +55 -0
  89. package/src/builtins/Table.less +43 -0
  90. package/src/builtins/Table.tsx +42 -0
  91. package/src/builtins/Tree.less +159 -0
  92. package/src/builtins/Tree.tsx +130 -0
  93. package/src/components/Dark.less +121 -0
  94. package/src/components/Dark.tsx +78 -0
  95. package/src/components/LocaleSelect.less +59 -0
  96. package/src/components/LocaleSelect.tsx +53 -0
  97. package/src/components/Navbar.less +180 -0
  98. package/src/components/Navbar.tsx +152 -0
  99. package/src/components/SearchBar.less +165 -0
  100. package/src/components/SearchBar.tsx +68 -0
  101. package/src/components/SideMenu.less +379 -0
  102. package/src/components/SideMenu.tsx +148 -0
  103. package/src/components/SlugList.less +18 -0
  104. package/src/components/SlugList.tsx +20 -0
  105. package/src/layout.tsx +225 -0
  106. package/src/style/layout.less +402 -0
  107. package/src/style/markdown.less +240 -0
  108. package/src/style/variables.less +37 -0
  109. package/src/test/SearchBar.test.ts +32 -0
  110. package/src/test/Table.test.tsx +41 -0
  111. package/src/test/index.test.tsx +377 -0
@@ -0,0 +1,124 @@
1
+ function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
2
+
3
+ /* eslint-disable @typescript-eslint/no-explicit-any */
4
+ import React from 'react';
5
+ import { ArrowLeftOutlined, ArrowRightOutlined } from '@ant-design/icons';
6
+ import { Link } from 'react-router-dom';
7
+ import Slider from 'react-slick';
8
+ import classNames from 'classnames';
9
+ import 'slick-carousel/slick/slick.css';
10
+ import 'slick-carousel/slick/slick-theme.css'; // @ts-ignore
11
+
12
+ import styles from './Cases.module.less';
13
+
14
+ var Cases = function Cases(_ref) {
15
+ var _ref$cases = _ref.cases,
16
+ cases = _ref$cases === void 0 ? [] : _ref$cases,
17
+ _ref$style = _ref.style,
18
+ style = _ref$style === void 0 ? {} : _ref$style,
19
+ className = _ref.className;
20
+ var slider;
21
+
22
+ var clickPrevious = function clickPrevious() {
23
+ slider.slickPrev();
24
+ };
25
+
26
+ var clickNext = function clickNext() {
27
+ slider.slickNext();
28
+ };
29
+
30
+ var getCases = function getCases() {
31
+ var buttons;
32
+
33
+ if (cases.length > 1) {
34
+ buttons = /*#__PURE__*/React.createElement("div", {
35
+ className: styles.buttons
36
+ }, /*#__PURE__*/React.createElement("div", {
37
+ className: styles.controlButton,
38
+ onClick: clickPrevious
39
+ }, /*#__PURE__*/React.createElement(ArrowLeftOutlined, {
40
+ className: styles.controlButtonIcon,
41
+ style: {
42
+ fontSize: '16px'
43
+ }
44
+ })), /*#__PURE__*/React.createElement("div", {
45
+ className: styles.controlButton,
46
+ onClick: clickNext,
47
+ style: {
48
+ marginLeft: '-1px'
49
+ }
50
+ }, /*#__PURE__*/React.createElement(ArrowRightOutlined, {
51
+ className: styles.controlButtonIcon,
52
+ style: {
53
+ fontSize: '16px'
54
+ }
55
+ })));
56
+ }
57
+
58
+ var children = cases.map(function (app) {
59
+ var linkDiv = /*#__PURE__*/React.createElement("div", {
60
+ className: styles.detailWrapper,
61
+ style: {
62
+ display: app.link ? 'block' : 'none'
63
+ }
64
+ }, app.link && app.link.startsWith('http') ? /*#__PURE__*/React.createElement("a", {
65
+ className: styles.detail,
66
+ href: app.link,
67
+ target: "_blank",
68
+ rel: "noopener noreferrer"
69
+ }, "\u67E5\u770B\u8BE6\u60C5") : /*#__PURE__*/React.createElement(Link, {
70
+ className: styles.detail,
71
+ to: app.link ? app.link : ''
72
+ }, "\u67E5\u770B\u8BE6\u60C5"));
73
+ return /*#__PURE__*/React.createElement("div", {
74
+ className: styles.appWrapper,
75
+ key: app.title
76
+ }, /*#__PURE__*/React.createElement("img", {
77
+ className: styles.appTeaser,
78
+ src: app.image,
79
+ alt: app.title
80
+ }), /*#__PURE__*/React.createElement("div", {
81
+ className: styles.appLeft
82
+ }, /*#__PURE__*/React.createElement("div", {
83
+ className: styles.appContent
84
+ }, /*#__PURE__*/React.createElement("img", {
85
+ className: styles.appLogo,
86
+ src: app.logo,
87
+ alt: "logo",
88
+ style: {
89
+ borderRadius: app.isAppLogo ? '15px' : '0px',
90
+ boxShadow: app.isAppLogo ? '0px 12px 24px #CED4D9' : '0px 0px 0px'
91
+ }
92
+ }), /*#__PURE__*/React.createElement("p", {
93
+ className: styles.appTitle
94
+ }, app.title), /*#__PURE__*/React.createElement("p", {
95
+ className: styles.appDescription
96
+ }, app.description), linkDiv), buttons));
97
+ });
98
+ return children;
99
+ };
100
+
101
+ var sliderSettings = {
102
+ dots: cases.length > 1,
103
+ infinite: true,
104
+ slidesToShow: 1,
105
+ adaptiveHeight: true,
106
+ speed: 500,
107
+ cssEase: 'linear',
108
+ arrows: false,
109
+ autoplay: true,
110
+ autoplaySpeed: 3000,
111
+ fade: true
112
+ };
113
+ return /*#__PURE__*/React.createElement("div", {
114
+ className: classNames(styles.wrapper, className),
115
+ style: style
116
+ }, /*#__PURE__*/React.createElement(Slider, _extends({}, sliderSettings, {
117
+ className: styles.slider,
118
+ ref: function ref(c) {
119
+ slider = c;
120
+ }
121
+ }), getCases()));
122
+ };
123
+
124
+ export default Cases;
@@ -0,0 +1,203 @@
1
+ @import '../mixins';
2
+ .wrapper {
3
+ height: 667px;
4
+ margin: auto;
5
+ position: relative;
6
+ padding: 0;
7
+ overflow: hidden;
8
+ background: rgba(250, 251, 252, 1);
9
+ .slider {
10
+ .container1440;
11
+ }
12
+ .appWrapper {
13
+ margin-left: 5%;
14
+ margin-bottom: 5%;
15
+ width: 83.88%;
16
+ height: 100%;
17
+ overflow-y: hidden;
18
+ display: flex;
19
+ .appLeft {
20
+ margin-left: 3.06%;
21
+ width: 35%;
22
+ margin-top: 8%;
23
+ height: 613px;
24
+ .appContent {
25
+ height: fit-content;
26
+ position: relative;
27
+ .appLogo {
28
+ height: 80px;
29
+ }
30
+ .appTitle {
31
+ font-size: 1.2857em;
32
+ font-weight: 500;
33
+ margin: 48px 0 0 0;
34
+ position: relative;
35
+ height: min-content;
36
+ color: rgba(0, 0, 0, 1);
37
+ user-select: text;
38
+ }
39
+ .appDescription {
40
+ color: rgba(105, 123, 140, 0.6);
41
+ font-size: 1em;
42
+ margin: 16px 0 0 0;
43
+ user-select: text;
44
+ }
45
+ .detailWrapper {
46
+ margin: 20px 0 0 0;
47
+ .detail {
48
+ color: @primary-color;
49
+ font-size: 1em;
50
+ }
51
+ }
52
+ }
53
+ .buttons {
54
+ cursor: pointer;
55
+ position: absolute;
56
+ display: flex;
57
+ bottom: 30%;
58
+ height: 100px;
59
+ .controlButton {
60
+ width: 47px;
61
+ height: 47px;
62
+ line-height: 47px;
63
+ border: 1px solid #a3b1bf;
64
+ transition: all 0.3s;
65
+ &:hover {
66
+ border: 1px solid #ced4d9;
67
+ fill: #000000;
68
+ }
69
+ &:hover :only-child {
70
+ color: #ced4d9;
71
+ }
72
+ .controlButtonIcon {
73
+ width: 100%;
74
+ color: #a3b1bf;
75
+ transition: all 0.3s;
76
+ }
77
+ }
78
+ .nextButton {
79
+ width: 47px;
80
+ margin-left: -1px;
81
+ background-image: url('https://gw.alipayobjects.com/zos/basement_prod/27ce6e21-bbb6-4490-8326-43483ac39e0b.svg');
82
+ background-size: 100% 100%;
83
+ &:hover {
84
+ background-image: url('https://gw.alipayobjects.com/zos/basement_prod/4d1f0d0a-4e56-4f21-a9aa-06b2f8c3e18e.svg');
85
+ }
86
+ }
87
+ }
88
+ }
89
+ }
90
+ }
91
+ .appTeaser {
92
+ position: absolute;
93
+ height: 667px;
94
+ left: 50%;
95
+ right: 0;
96
+ }
97
+
98
+ .slider {
99
+ height: 100%;
100
+ :global {
101
+ .slick-dots {
102
+ display: none;
103
+ }
104
+ }
105
+ }
106
+
107
+ :global {
108
+ .slick-current {
109
+ z-index: 2 !important;
110
+ }
111
+ }
112
+
113
+ @media (max-width: 1200px) {
114
+ .wrapper {
115
+ .appWrapper {
116
+ .appLeft {
117
+ width: 270px;
118
+ }
119
+ }
120
+ }
121
+ .appTeaser {
122
+ position: absolute;
123
+ width: 857px;
124
+ left: 350px;
125
+ }
126
+ }
127
+
128
+ @media (max-width: 768px) {
129
+ .wrapper {
130
+ width: 100%;
131
+ height: fit-content;
132
+ .slider {
133
+ width: 100%;
134
+ max-width: 100%;
135
+ margin-left: 0;
136
+ margin-right: 0;
137
+ }
138
+ .appWrapper {
139
+ width: 100%;
140
+ padding-bottom: 150px;
141
+ margin-left: 0;
142
+ flex-direction: column;
143
+ text-align: center;
144
+ .appLeft {
145
+ height: 286px;
146
+ margin-left: 4.27%;
147
+ width: 91.47%;
148
+ margin-top: 64px;
149
+ .appContent {
150
+ width: 90%;
151
+ margin-left: 5%;
152
+ .appLogo {
153
+ position: absolute;
154
+ top: -36px;
155
+ left: 50%;
156
+ transform: translateX(-40px);
157
+ }
158
+ .appTitle {
159
+ padding-top: 76px;
160
+ }
161
+ .detailWrapper {
162
+ margin-top: 40px;
163
+ .detail {
164
+ font-size: 1em;
165
+ }
166
+ }
167
+ }
168
+ .buttons {
169
+ display: none;
170
+ position: absolute;
171
+ bottom: 60px;
172
+ left: 50%;
173
+ height: 100px;
174
+ transform: translateX(-47px);
175
+ width: 92%;
176
+ }
177
+ }
178
+ .appTeaser {
179
+ left: 0;
180
+ margin-top: 60px;
181
+ margin-bottom: 40px;
182
+ margin-left: 4.06%;
183
+ width: 91.47%;
184
+ height: auto;
185
+ position: relative;
186
+ }
187
+ }
188
+ }
189
+
190
+ .slider {
191
+ height: 100%;
192
+ :global {
193
+ .slick-dots {
194
+ display: block;
195
+ bottom: 100px;
196
+ }
197
+ .slick-dots li.slick-active button:before {
198
+ opacity: 1;
199
+ color: #1890ff;
200
+ }
201
+ }
202
+ }
203
+ }
@@ -0,0 +1,25 @@
1
+ import React from 'react';
2
+ import classNames from 'classnames'; // @ts-ignore
3
+
4
+ import styles from './FeatureCard.module.less';
5
+
6
+ var FeatureCard = function FeatureCard(_ref) {
7
+ var icon = _ref.icon,
8
+ title = _ref.title,
9
+ description = _ref.description;
10
+ return /*#__PURE__*/React.createElement("div", {
11
+ className: styles.card
12
+ }, /*#__PURE__*/React.createElement("div", {
13
+ className: styles.content
14
+ }, /*#__PURE__*/React.createElement("img", {
15
+ className: classNames(styles.icon, 'feature-logo'),
16
+ src: icon,
17
+ alt: "advantage"
18
+ }), /*#__PURE__*/React.createElement("p", {
19
+ className: styles.title
20
+ }, title), /*#__PURE__*/React.createElement("p", {
21
+ className: styles.description
22
+ }, description)));
23
+ };
24
+
25
+ export default FeatureCard;
@@ -0,0 +1,51 @@
1
+ .card {
2
+ background-color: #fff;
3
+ height: auto;
4
+ .content {
5
+ padding-left: 15.9%;
6
+ padding-right: 15.9%;
7
+ .icon {
8
+ height: 60px;
9
+ }
10
+ .title {
11
+ font-size: 1.714em;
12
+ color: #000;
13
+ margin-top: 40px;
14
+ margin-bottom: 0;
15
+ }
16
+ .description {
17
+ opacity: 0.6;
18
+ width: 100%;
19
+ color: rgba(105, 123, 140, 1);
20
+ font-size: 1em;
21
+ line-height: 1.8em;
22
+ margin-top: 24px;
23
+ margin-bottom: 0;
24
+ }
25
+ }
26
+ }
27
+
28
+ @media (max-width: 768px) {
29
+ .cards {
30
+ .cardWrapper {
31
+ .card {
32
+ margin: 84px 19px 80px 19px;
33
+ .content {
34
+ .icon {
35
+ width: 25.6%;
36
+ }
37
+ .title {
38
+ font-size: 1.4em;
39
+ margin-top: 28px;
40
+ }
41
+ .description {
42
+ font-size: 1em;
43
+ padding-bottom: 0px;
44
+ padding-top: 0px;
45
+ margin-top: 12px;
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
51
+ }
@@ -0,0 +1,169 @@
1
+ @import '../mixins';
2
+
3
+ .wrapper {
4
+ display: flex;
5
+ margin: auto;
6
+ position: relative;
7
+ flex-direction: column;
8
+ padding: 0;
9
+ background: rgb(240, 245, 250);
10
+ height: auto;
11
+ overflow-x: hidden;
12
+ .content {
13
+ width: 95.8%;
14
+ height: 100%;
15
+ margin-left: 4.2%;
16
+ margin-bottom: 5%;
17
+ position: relative;
18
+ .container1440;
19
+ }
20
+ .title {
21
+ font-size: 2.8em;
22
+ padding-left: 4.06%;
23
+ font-weight: 500;
24
+ margin: 48px 0 0 0;
25
+ position: relative;
26
+ height: min-content;
27
+ color: #fff;
28
+ }
29
+ .slicerbarv {
30
+ display: none;
31
+ }
32
+ .slicerbarv2 {
33
+ display: none;
34
+ }
35
+ .lefttop {
36
+ background: linear-gradient(130deg, fade(@primary-color, 70%), shade(@primary-color, 20%));
37
+ width: 100%;
38
+ top: 0;
39
+ position: absolute;
40
+ }
41
+ .lefttopWithTitle {
42
+ height: 60%;
43
+ }
44
+ .lefttopWithoutTitle {
45
+ height: 75%;
46
+ }
47
+ .rightbottom {
48
+ position: absolute;
49
+ width: 95.83%;
50
+ left: 4.17%;
51
+ top: 144px;
52
+ background: #fff;
53
+ height: 65%;
54
+ box-shadow: -5px 5px 15px rgba(0, 0, 0, 0.1);
55
+ }
56
+ .rightbottomWithoutTitle {
57
+ top: 48px;
58
+ height: 75%;
59
+ }
60
+ .cardsContainer {
61
+ width: 100%;
62
+ height: 65%;
63
+ margin-top: 48px;
64
+ position: relative;
65
+ .cards {
66
+ display: flex;
67
+ text-align: center;
68
+ position: relative;
69
+ width: -webkit-fill-available;
70
+ flex-wrap: wrap;
71
+ margin-left: 4.06%;
72
+ .cardWrapper {
73
+ margin: 68px 0 93px 0;
74
+ border-right: 1px solid rgba(0, 0, 0, 0.1);
75
+ &:last-child {
76
+ border-right: 0px;
77
+ }
78
+ }
79
+ }
80
+ }
81
+ }
82
+ .dot {
83
+ position: absolute;
84
+ width: 3px;
85
+ height: 3px;
86
+ border-radius: 50%;
87
+ background: #d8d8d8;
88
+ display: none;
89
+ }
90
+
91
+ @media (max-width: 768px) {
92
+ .wrapper {
93
+ width: 100%;
94
+ .lefttop {
95
+ left: 0px;
96
+ height: 100%;
97
+ width: 100%;
98
+ }
99
+ .rightbottom {
100
+ height: 79.5%;
101
+ margin-top: 48px;
102
+ .slicerbarv {
103
+ position: absolute;
104
+ background-color: #f2f4f5;
105
+ width: 1px;
106
+ height: 100%;
107
+ margin-left: 3%;
108
+ display: block;
109
+ z-index: 1;
110
+ }
111
+ .slicerbarv2 {
112
+ margin-left: 92.2%; // 1 - (0.96 * 0.04 + 0.04)
113
+ }
114
+ .slicerbarh {
115
+ position: absolute;
116
+ background-color: #f2f4f5;
117
+ width: 100%;
118
+ height: 1px;
119
+ display: block;
120
+ margin-top: 45px;
121
+ }
122
+ .slicerbarh2 {
123
+ margin-top: 395px;
124
+ }
125
+ .slicerbarh3 {
126
+ margin-top: 745px;
127
+ }
128
+ .slicerbarh4 {
129
+ margin-top: 1095px;
130
+ }
131
+ }
132
+
133
+ .rightbottomWithoutTitle {
134
+ top: 48px;
135
+ height: 86.5%;
136
+ }
137
+ .lefttopWithTitle {
138
+ height: 95.73%;
139
+ }
140
+ .lefttopWithoutTitle {
141
+ height: 95.73%;
142
+ }
143
+ .content {
144
+ .title {
145
+ font-size: 2.143rem;
146
+ margin: 80px 0 60px 0;
147
+ }
148
+ .cardsContainer {
149
+ margin-bottom: 70px;
150
+ .cards {
151
+ margin-top: 60px;
152
+ margin-left: 3.34%;
153
+ padding-top: 45px;
154
+ padding-bottom: 45px;
155
+ .cardWrapper {
156
+ margin: 68px 0 68px 0;
157
+ width: 100%;
158
+ height: 216px;
159
+ border-right: 0px;
160
+ }
161
+ }
162
+ }
163
+ }
164
+ }
165
+ .dot {
166
+ display: block;
167
+ z-index: 2;
168
+ }
169
+ }
@@ -0,0 +1,102 @@
1
+ /* eslint-disable @typescript-eslint/no-explicit-any */
2
+ import React from 'react';
3
+ import { Row, Col } from 'antd';
4
+ import classNames from 'classnames';
5
+ import FeatureCard from './FeatureCard'; // @ts-ignore
6
+
7
+ import styles from './Features.module.less';
8
+
9
+ var Features = function Features(_ref) {
10
+ var title = _ref.title,
11
+ _ref$features = _ref.features,
12
+ features = _ref$features === void 0 ? [] : _ref$features,
13
+ className = _ref.className,
14
+ style = _ref.style,
15
+ id = _ref.id;
16
+
17
+ var getCards = function getCards() {
18
+ var children = features.map(function (card) {
19
+ return /*#__PURE__*/React.createElement(Col, {
20
+ className: styles.cardWrapper,
21
+ key: card.title,
22
+ md: 8,
23
+ xs: 24
24
+ }, /*#__PURE__*/React.createElement(FeatureCard, card));
25
+ });
26
+ return children;
27
+ }; // for small screen
28
+
29
+
30
+ var getDots = function getDots() {
31
+ var dots = [];
32
+ var length = features.length;
33
+ var startTop = 45;
34
+ var cardHeight = 350;
35
+ var startLeftPercent = 0.028;
36
+ var rows = length + 1;
37
+
38
+ for (var i = 0; i < rows; i += 1) {
39
+ var yOffset = 1;
40
+ var top = "".concat(startTop + cardHeight * i - yOffset, "px");
41
+ var leftColLeft = "".concat(startLeftPercent * 100, "%");
42
+ var rigthColLeft = "".concat((startLeftPercent + 0.892) * 100, "%");
43
+ dots.push( /*#__PURE__*/React.createElement("div", {
44
+ key: "".concat(i, "-0"),
45
+ className: styles.dot,
46
+ style: {
47
+ marginLeft: leftColLeft,
48
+ marginTop: top
49
+ }
50
+ }));
51
+ dots.push( /*#__PURE__*/React.createElement("div", {
52
+ key: "".concat(i, "-1"),
53
+ className: styles.dot,
54
+ style: {
55
+ marginLeft: rigthColLeft,
56
+ marginTop: top
57
+ }
58
+ }));
59
+ }
60
+
61
+ return dots;
62
+ };
63
+
64
+ return /*#__PURE__*/React.createElement("div", {
65
+ id: id,
66
+ className: classNames(styles.wrapper, className),
67
+ style: style
68
+ }, title ? /*#__PURE__*/React.createElement("div", {
69
+ className: classNames(styles.lefttopWithTitle, styles.lefttop)
70
+ }) : /*#__PURE__*/React.createElement("div", {
71
+ className: classNames(styles.lefttopWithoutTitle, styles.lefttop)
72
+ }), /*#__PURE__*/React.createElement("div", {
73
+ className: title ? styles.rightbottom : classNames(styles.rightbottomWithoutTitle, styles.rightbottom)
74
+ }, /*#__PURE__*/React.createElement("div", {
75
+ className: classNames(styles.slicerbar, styles.slicerbarv, styles.slicerbarv1)
76
+ }), /*#__PURE__*/React.createElement("div", {
77
+ className: classNames(styles.slicerbar, styles.slicerbarv, styles.slicerbarv2)
78
+ }), /*#__PURE__*/React.createElement("div", {
79
+ className: classNames(styles.slicerbar, styles.slicerbarh, styles.slicerbarh1)
80
+ }), /*#__PURE__*/React.createElement("div", {
81
+ className: classNames(styles.slicerbar, styles.slicerbarh, styles.slicerbarh2)
82
+ }), /*#__PURE__*/React.createElement("div", {
83
+ className: classNames(styles.slicerbar, styles.slicerbarh, styles.slicerbarh3)
84
+ }), /*#__PURE__*/React.createElement("div", {
85
+ className: classNames(styles.slicerbar, styles.slicerbarh, styles.slicerbarh4)
86
+ }), getDots()), /*#__PURE__*/React.createElement("div", {
87
+ className: styles.content
88
+ }, /*#__PURE__*/React.createElement("div", {
89
+ key: "content"
90
+ }, /*#__PURE__*/React.createElement("p", {
91
+ key: "title",
92
+ className: styles.title
93
+ }, title), /*#__PURE__*/React.createElement("div", {
94
+ key: "block",
95
+ className: styles.cardsContainer
96
+ }, /*#__PURE__*/React.createElement(Row, {
97
+ key: "cards",
98
+ className: styles.cards
99
+ }, getCards())))));
100
+ };
101
+
102
+ export default Features;
@@ -0,0 +1,36 @@
1
+ @import '../mixins';
2
+
3
+ .footer {
4
+ font-family: Avenir, @font-family;
5
+
6
+ :global(.rc-footer-container),
7
+ :global(.rc-footer-bottom-container) {
8
+ .container1440;
9
+ }
10
+
11
+ .description {
12
+ opacity: 0.6;
13
+ font-weight: normal;
14
+ margin-left: 0.5em;
15
+ }
16
+
17
+ .bottom {
18
+ display: flex;
19
+ justify-content: space-between;
20
+ font-size: 14px;
21
+
22
+ :global(.anticon),
23
+ a {
24
+ margin-right: 8px;
25
+ color: rgba(255, 255, 255, 0.6);
26
+ }
27
+ }
28
+ }
29
+
30
+ @media only screen and (max-width: 767.99px) {
31
+ .footer {
32
+ .bottom {
33
+ display: block;
34
+ }
35
+ }
36
+ }