@zohodesk/react-cli 1.1.7 → 1.1.8-exp.2
Sign up to get free protection for your applications and to get access to all the features.
- package/.eslintignore +7 -7
- package/.eslintrc.js +180 -180
- package/.prettierrc +6 -6
- package/Changelog.md +1019 -1019
- package/README.md +1293 -1251
- package/bin/cli.js +497 -497
- package/docs/ComposeMinification.md +13 -13
- package/docs/CustomChunks.md +29 -26
- package/docs/DevServerPort.md +39 -39
- package/docs/DevStart.md +18 -18
- package/docs/HoverActive.md +12 -12
- package/docs/InstallNode.md +28 -28
- package/docs/MarkdownParser.md +17 -17
- package/docs/ReactLive.md +13 -13
- package/docs/SelectorWeight.md +8 -8
- package/docs/TODOS.md +10 -10
- package/docs/ValueReplacer.md +60 -60
- package/docs/VariableConversion.md +729 -729
- package/docs/patternFiltering.md +56 -56
- package/docs/warnings_while_install.txt +35 -35
- package/files/eslintrc.js +62 -62
- package/files/prettierrc.js +3 -3
- package/lib/common/splitChunks.js +65 -45
- package/lib/common/testPattern.js +9 -9
- package/lib/configs/webpack.css.umd.config.js +4 -4
- package/lib/configs/webpack.dev.config.js +24 -3
- package/lib/configs/webpack.docs.config.js +22 -3
- package/lib/configs/webpack.impact.config.js +4 -2
- package/lib/configs/webpack.prod.config.js +6 -3
- package/lib/deprecationLogger.js +41 -0
- package/lib/loaderUtils/configsAssetsLoaders.js +33 -33
- package/lib/loaderUtils/getCSSLoaders.js +77 -56
- package/lib/loaders/workerLoader.js +9 -9
- package/lib/pluginUtils/getDevPlugins.js +8 -7
- package/lib/pluginUtils/getProdPlugins.js +6 -6
- package/lib/plugins/CustomAttributePlugin.md +35 -35
- package/lib/plugins/EFCPlugin.md +6 -6
- package/lib/plugins/I18NInjectIntoIndexPlugin.js +4 -4
- package/lib/plugins/I18nSplitPlugin/I18nDownlodLogic.js +38 -38
- package/lib/plugins/I18nSplitPlugin/I18nFilesEmitter.js +30 -30
- package/lib/plugins/I18nSplitPlugin/I18nKeysIdentifer.js +8 -8
- package/lib/plugins/I18nSplitPlugin/I18nSplit.md +95 -95
- package/lib/plugins/I18nSplitPlugin/README.md +25 -25
- package/lib/plugins/I18nSplitPlugin/index.js +57 -57
- package/lib/plugins/ResourceHintsPlugin.js +30 -20
- package/lib/plugins/RtlSplitPlugin/RtlCssPlugin.js +6 -6
- package/lib/plugins/RtlSplitPlugin/RtrSplit.md +30 -30
- package/lib/plugins/SelectorPlugin.js +29 -29
- package/lib/plugins/ServiceWorkerPlugin.js +9 -9
- package/lib/plugins/TPHashMappingPlugin.js +4 -4
- package/lib/plugins/VariableConversionCollector.js +59 -59
- package/lib/plugins/utils/fileHandling.js +35 -42
- package/lib/plugins/variableConvertorUtils.js +9 -9
- package/lib/postcss-plugins/RTLSplitPlugin.js +10 -10
- package/lib/postcss-plugins/__test__/test1Input.css +38 -38
- package/lib/postcss-plugins/__test__/test1Output.css +38 -38
- package/lib/postcss-plugins/hoverActivePlugin.js +3 -3
- package/lib/schemas/index.js +19 -36
- package/lib/sh/pre-commit.sh +34 -34
- package/lib/sh/reportPublish.sh +45 -45
- package/lib/utils/buildstats.html +148 -148
- package/lib/utils/cssClassNameGenerate.js +13 -13
- package/lib/utils/deprecationSupport.js +123 -0
- package/lib/utils/getOptions.js +18 -78
- package/lib/utils/resultSchema.json +73 -73
- package/npm-shrinkwrap.json +14454 -33393
- package/npm8.md +9 -9
- package/package.json +123 -123
- package/postpublish.js +8 -8
- package/result.json +1 -0
- package/templates/app/.eslintrc.js +140 -140
- package/templates/app/README.md +12 -12
- package/templates/app/app/index.html +24 -24
- package/templates/app/app/properties/ApplicationResources_en_US.properties +1 -1
- package/templates/app/app/properties/i18nkeys.json +3 -3
- package/templates/app/docs/all.html +69 -69
- package/templates/app/mockapi/index.js +18 -18
- package/templates/app/package.json +37 -37
- package/templates/app/src/actions/SampleActions/index.js +37 -37
- package/templates/app/src/actions/index.js +65 -65
- package/templates/app/src/appUrls.js +19 -19
- package/templates/app/src/components/Alert/Alert.js +134 -134
- package/templates/app/src/components/Alert/Alert.module.css +79 -79
- package/templates/app/src/components/FreezeLayer/FreezeLayer.css +37 -37
- package/templates/app/src/components/FreezeLayer/FreezeLayer.js +84 -84
- package/templates/app/src/components/Sample/Sample.module.css +11 -11
- package/templates/app/src/components/Sample/SampleList.js +61 -61
- package/templates/app/src/components/Slider/Slider.css +41 -41
- package/templates/app/src/components/Slider/Slider.js +55 -55
- package/templates/app/src/containers/AlertContainer/index.js +15 -15
- package/templates/app/src/containers/AppContainer/index.js +96 -96
- package/templates/app/src/containers/AppContainer/index.module.css +27 -27
- package/templates/app/src/containers/CustomMatch/index.js +65 -65
- package/templates/app/src/containers/DevTools/index.js +10 -10
- package/templates/app/src/containers/Header/index.js +67 -67
- package/templates/app/src/containers/Header/index.module.css +43 -43
- package/templates/app/src/containers/Redirect/index.js +63 -63
- package/templates/app/src/containers/Redirector/index.js +47 -47
- package/templates/app/src/containers/SampleListContainer/ListContainer.js +42 -42
- package/templates/app/src/containers/SampleListContainer/ListContainer.module.css +3 -3
- package/templates/app/src/historyChange.js +5 -5
- package/templates/app/src/index.html +10 -10
- package/templates/app/src/index.js +24 -24
- package/templates/app/src/middleware/PromiseMiddleware.js +59 -59
- package/templates/app/src/reducers/alertData.js +11 -11
- package/templates/app/src/reducers/index.js +6 -6
- package/templates/app/src/reducers/samples.js +19 -19
- package/templates/app/src/store/configureStore.dev.js +51 -51
- package/templates/app/src/store/configureStore.js +5 -5
- package/templates/app/src/store/configureStore.prod.js +26 -26
- package/templates/app/src/util/Common.js +5 -5
- package/templates/app/src/util/RequestAPI.js +132 -132
- package/templates/docs/all.html +250 -250
- package/templates/docs/component.html +179 -179
- package/templates/docs/components.html +222 -222
- package/templates/docs/css/b.min.css +6 -6
- package/templates/docs/css/component.css +42 -42
- package/templates/docs/css/componentTest.css +6 -6
- package/templates/docs/css/hopscotch.css +585 -585
- package/templates/docs/css/markdown.css +202 -202
- package/templates/docs/css/style.css +1022 -1022
- package/templates/docs/impactReportTemplate.html +154 -154
- package/templates/docs/index.html +1502 -1502
- package/templates/docs/js/active-line.js +72 -72
- package/templates/docs/js/b.min.js +7 -7
- package/templates/docs/js/codemirror.js +9680 -9680
- package/templates/docs/js/designTokens.js +334 -334
- package/templates/docs/js/j.min.js +4 -4
- package/templates/docs/js/javascript.js +874 -874
- package/templates/docs/js/matchbrackets.js +145 -145
- package/unittest/index.html +37 -0
package/templates/docs/all.html
CHANGED
@@ -1,250 +1,250 @@
|
|
1
|
-
<!DOCTYPE html>
|
2
|
-
<html dir="ltr">
|
3
|
-
<head>
|
4
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
5
|
-
<link rel="stylesheet" href="./css/markdown.css">
|
6
|
-
<link rel="stylesheet" href="./css/b.min.css">
|
7
|
-
<style>
|
8
|
-
body {
|
9
|
-
position: relative;
|
10
|
-
}
|
11
|
-
ul.nav-pills {
|
12
|
-
top: 20px;
|
13
|
-
position: fixed;
|
14
|
-
}
|
15
|
-
p{
|
16
|
-
font-size: 18px;
|
17
|
-
}
|
18
|
-
.container{
|
19
|
-
width:100%;
|
20
|
-
background-color: #473425;
|
21
|
-
}
|
22
|
-
.source,.html{
|
23
|
-
cursor:pointer;
|
24
|
-
margin:10px;
|
25
|
-
color:blue;
|
26
|
-
font-size:15px;
|
27
|
-
}
|
28
|
-
#componentInfo{
|
29
|
-
background:white;
|
30
|
-
}
|
31
|
-
.component{
|
32
|
-
padding:30px 15px;
|
33
|
-
border-bottom: 2px solid #dddbda;
|
34
|
-
}
|
35
|
-
</style>
|
36
|
-
<script src="./js/j.min.js"></script>
|
37
|
-
<script src="./js/b.min.js"></script>
|
38
|
-
</head>
|
39
|
-
<body data-spy="scroll" data-target="#myScrollspy" data-offset="20">
|
40
|
-
|
41
|
-
<div class="container">
|
42
|
-
<div class="row">
|
43
|
-
<nav class="col-sm-2" id="myScrollspy">
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
<ul class="nav nav-pills nav-stacked" id="componentMenu">
|
48
|
-
|
49
|
-
</ul>
|
50
|
-
|
51
|
-
</nav>
|
52
|
-
<div class="col-sm-10" id="componentInfo">
|
53
|
-
|
54
|
-
</div>
|
55
|
-
</div>
|
56
|
-
</div>
|
57
|
-
|
58
|
-
|
59
|
-
|
60
|
-
|
61
|
-
<script src="/docs/js/vendor.js" ></script>
|
62
|
-
<script src="/docs/js/main.js" ></script>
|
63
|
-
|
64
|
-
<script>
|
65
|
-
function toggle(id, type) {
|
66
|
-
if (type == 'source') {
|
67
|
-
document.getElementById(id + '_html').style.display = 'none';
|
68
|
-
} else {
|
69
|
-
document.getElementById(id + '_source').style.display = 'none';
|
70
|
-
}
|
71
|
-
var x = document.getElementById(id + '_' + type);
|
72
|
-
if (x.style.display === 'none') {
|
73
|
-
x.style.display = 'block';
|
74
|
-
} else {
|
75
|
-
x.style.display = 'none';
|
76
|
-
}
|
77
|
-
}
|
78
|
-
function process(str) {
|
79
|
-
var div = document.createElement('div');
|
80
|
-
div.innerHTML = str.trim();
|
81
|
-
|
82
|
-
return format(div, 0).innerHTML;
|
83
|
-
}
|
84
|
-
|
85
|
-
function format(node, level) {
|
86
|
-
var indentBefore = new Array(level++ + 1).join(' '),
|
87
|
-
indentAfter = new Array(level - 1).join(' '),
|
88
|
-
textNode;
|
89
|
-
|
90
|
-
for (var i = 0; i < node.children.length; i++) {
|
91
|
-
textNode = document.createTextNode('\n' + indentBefore);
|
92
|
-
node.insertBefore(textNode, node.children[i]);
|
93
|
-
|
94
|
-
format(node.children[i], level);
|
95
|
-
|
96
|
-
if (node.lastElementChild == node.children[i]) {
|
97
|
-
textNode = document.createTextNode('\n' + indentAfter);
|
98
|
-
node.appendChild(textNode);
|
99
|
-
}
|
100
|
-
}
|
101
|
-
|
102
|
-
return node;
|
103
|
-
}
|
104
|
-
var test = 'test';
|
105
|
-
var ReactDOM = Component.ReactDOM;
|
106
|
-
var React = Component.React;
|
107
|
-
var renderToStaticMarkup = Component.renderToStaticMarkup;
|
108
|
-
|
109
|
-
// class RenderComponent extends React.Component {
|
110
|
-
// constructor(props) {
|
111
|
-
// super(props);
|
112
|
-
// }
|
113
|
-
// render() {
|
114
|
-
// var { Components } = this.props;
|
115
|
-
//
|
116
|
-
// return (
|
117
|
-
// <div>
|
118
|
-
// {Object.keys(Components).map(ComponentName => {
|
119
|
-
// if (
|
120
|
-
// ComponentName == 'React' ||
|
121
|
-
// ComponentName == 'ReactDOM' ||
|
122
|
-
// ComponentName.indexOf('__') == -1
|
123
|
-
// ) {
|
124
|
-
// return 'test';
|
125
|
-
// }
|
126
|
-
//
|
127
|
-
// var Component = Components[ComponentName];
|
128
|
-
// console.dir(Component);
|
129
|
-
//
|
130
|
-
// return (
|
131
|
-
// <div>
|
132
|
-
// <div><Component /></div>
|
133
|
-
// <div>{ComponentName}</div>
|
134
|
-
// </div>
|
135
|
-
// );
|
136
|
-
// })}
|
137
|
-
// </div>
|
138
|
-
// );
|
139
|
-
// }
|
140
|
-
// }
|
141
|
-
|
142
|
-
var baseComponent = {};
|
143
|
-
var baseComponentState = {};
|
144
|
-
Object.keys(Component).forEach(c => {
|
145
|
-
var componentObj = Component[c];
|
146
|
-
if (c.indexOf('__') != -1) {
|
147
|
-
if (baseComponentState[c.split('__')[0]]) {
|
148
|
-
baseComponentState[c.split('__')[0]].push(c);
|
149
|
-
} else {
|
150
|
-
baseComponentState[c.split('__')[0]] = [c];
|
151
|
-
}
|
152
|
-
} else if (
|
153
|
-
componentObj.docs &&
|
154
|
-
componentObj.docs.external &&
|
155
|
-
(componentObj.docs.componentGroup == 'Atom' ||
|
156
|
-
componentObj.docs.componentGroup == 'Molecule' ||
|
157
|
-
componentObj.docs.componentGroup == 'Organism')
|
158
|
-
) {
|
159
|
-
baseComponent[c] = componentObj;
|
160
|
-
}
|
161
|
-
});
|
162
|
-
console.log(baseComponent);
|
163
|
-
console.log(baseComponentState);
|
164
|
-
var str = Object.keys(baseComponent)
|
165
|
-
.sort()
|
166
|
-
.reduce((result, componentKey) => {
|
167
|
-
return `${result}<li><a href="#${componentKey}" class="menuItem">${componentKey}</a></li>`;
|
168
|
-
}, '');
|
169
|
-
|
170
|
-
var getComponentState = componentKey => {
|
171
|
-
var result = '';
|
172
|
-
baseComponentState[componentKey].forEach(ckey => {
|
173
|
-
result += `<div><span onClick="toggle('${ckey}','source')" class="source">Source</span><span onClick="toggle('${ckey}',
|
174
|
-
'html')" class="html">html</span><pre id="${ckey +
|
175
|
-
'_source'}" style="display:none"></pre><pre id="${ckey +
|
176
|
-
'_html'}" style="display:none"></pre><div id="${ckey}"></div></div>`;
|
177
|
-
setTimeout(() => {
|
178
|
-
ReactDOM.render(
|
179
|
-
React.createElement(Component[ckey]),
|
180
|
-
document.getElementById(ckey)
|
181
|
-
);
|
182
|
-
document.getElementById(ckey + '_source').innerText =
|
183
|
-
Component[ckey].docs.source;
|
184
|
-
document.getElementById(ckey + '_html').innerText = process(
|
185
|
-
renderToStaticMarkup(React.createElement(Component[ckey]))
|
186
|
-
);
|
187
|
-
}, 100);
|
188
|
-
});
|
189
|
-
return result;
|
190
|
-
};
|
191
|
-
var componentInfo = Object.keys(baseComponent)
|
192
|
-
.sort()
|
193
|
-
.reduce((result, componentKey) => {
|
194
|
-
return `${result}<div id="${componentKey}" class="component">
|
195
|
-
<h1>${componentKey}</h1>
|
196
|
-
<p>
|
197
|
-
${baseComponent[componentKey].docs.description || 'No description'}
|
198
|
-
</p>
|
199
|
-
<h4>PropTypes</h4>
|
200
|
-
<table class="table table-striped">
|
201
|
-
<tr><th>PropsName</th><th>type</th><th>isRequired</th></th>
|
202
|
-
${Object.keys(baseComponent[componentKey].propTypes).sort()
|
203
|
-
.map(pKey => {
|
204
|
-
var pObj = baseComponent[componentKey].propTypes[pKey];
|
205
|
-
return `<tr>
|
206
|
-
<td>
|
207
|
-
${pKey}
|
208
|
-
</td>
|
209
|
-
|
210
|
-
<td>
|
211
|
-
|
212
|
-
${pObj.hookType}
|
213
|
-
|
214
|
-
</td><td>
|
215
|
-
|
216
|
-
${pObj.isRequired ? '' : 'true'}
|
217
|
-
|
218
|
-
</td></tr>`;
|
219
|
-
})
|
220
|
-
.join('')}
|
221
|
-
</table>
|
222
|
-
<h4>State</h4>
|
223
|
-
${getComponentState(componentKey)}
|
224
|
-
${baseComponent[componentKey].docs.additionDescription ? `<h4>More Information about component</h4><p>${baseComponent[componentKey].docs.additionDescription}</p>`:""}
|
225
|
-
|
226
|
-
</div>`;
|
227
|
-
}, '');
|
228
|
-
|
229
|
-
document.getElementById('componentMenu').innerHTML = str;
|
230
|
-
document.getElementById('componentInfo').innerHTML = componentInfo;
|
231
|
-
// var html = Object.keys(Component).reduce((res, cName) => {
|
232
|
-
// return `${res} <div><div id="${cName}"></div><div>${cName}</div></div>`;
|
233
|
-
// });
|
234
|
-
// document.getElementById('react').innerHTML = html;
|
235
|
-
// Object.keys(Component).forEach(cName => {
|
236
|
-
// if (cName == 'React' || cName == 'ReactDOM') {
|
237
|
-
// return;
|
238
|
-
// }
|
239
|
-
// var C = Component[cName];
|
240
|
-
// try {
|
241
|
-
// ReactDOM.render(<C />, document.getElementById(cName));
|
242
|
-
// } catch (e) {
|
243
|
-
// console.log('Error render', cName);
|
244
|
-
// }
|
245
|
-
// });
|
246
|
-
</script>
|
247
|
-
|
248
|
-
|
249
|
-
</body>
|
250
|
-
</html>
|
1
|
+
<!DOCTYPE html>
|
2
|
+
<html dir="ltr">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
5
|
+
<link rel="stylesheet" href="./css/markdown.css">
|
6
|
+
<link rel="stylesheet" href="./css/b.min.css">
|
7
|
+
<style>
|
8
|
+
body {
|
9
|
+
position: relative;
|
10
|
+
}
|
11
|
+
ul.nav-pills {
|
12
|
+
top: 20px;
|
13
|
+
position: fixed;
|
14
|
+
}
|
15
|
+
p{
|
16
|
+
font-size: 18px;
|
17
|
+
}
|
18
|
+
.container{
|
19
|
+
width:100%;
|
20
|
+
background-color: #473425;
|
21
|
+
}
|
22
|
+
.source,.html{
|
23
|
+
cursor:pointer;
|
24
|
+
margin:10px;
|
25
|
+
color:blue;
|
26
|
+
font-size:15px;
|
27
|
+
}
|
28
|
+
#componentInfo{
|
29
|
+
background:white;
|
30
|
+
}
|
31
|
+
.component{
|
32
|
+
padding:30px 15px;
|
33
|
+
border-bottom: 2px solid #dddbda;
|
34
|
+
}
|
35
|
+
</style>
|
36
|
+
<script src="./js/j.min.js"></script>
|
37
|
+
<script src="./js/b.min.js"></script>
|
38
|
+
</head>
|
39
|
+
<body data-spy="scroll" data-target="#myScrollspy" data-offset="20">
|
40
|
+
|
41
|
+
<div class="container">
|
42
|
+
<div class="row">
|
43
|
+
<nav class="col-sm-2" id="myScrollspy">
|
44
|
+
|
45
|
+
|
46
|
+
|
47
|
+
<ul class="nav nav-pills nav-stacked" id="componentMenu">
|
48
|
+
|
49
|
+
</ul>
|
50
|
+
|
51
|
+
</nav>
|
52
|
+
<div class="col-sm-10" id="componentInfo">
|
53
|
+
|
54
|
+
</div>
|
55
|
+
</div>
|
56
|
+
</div>
|
57
|
+
|
58
|
+
|
59
|
+
|
60
|
+
|
61
|
+
<script src="/docs/js/vendor.js" ></script>
|
62
|
+
<script src="/docs/js/main.js" ></script>
|
63
|
+
|
64
|
+
<script>
|
65
|
+
function toggle(id, type) {
|
66
|
+
if (type == 'source') {
|
67
|
+
document.getElementById(id + '_html').style.display = 'none';
|
68
|
+
} else {
|
69
|
+
document.getElementById(id + '_source').style.display = 'none';
|
70
|
+
}
|
71
|
+
var x = document.getElementById(id + '_' + type);
|
72
|
+
if (x.style.display === 'none') {
|
73
|
+
x.style.display = 'block';
|
74
|
+
} else {
|
75
|
+
x.style.display = 'none';
|
76
|
+
}
|
77
|
+
}
|
78
|
+
function process(str) {
|
79
|
+
var div = document.createElement('div');
|
80
|
+
div.innerHTML = str.trim();
|
81
|
+
|
82
|
+
return format(div, 0).innerHTML;
|
83
|
+
}
|
84
|
+
|
85
|
+
function format(node, level) {
|
86
|
+
var indentBefore = new Array(level++ + 1).join(' '),
|
87
|
+
indentAfter = new Array(level - 1).join(' '),
|
88
|
+
textNode;
|
89
|
+
|
90
|
+
for (var i = 0; i < node.children.length; i++) {
|
91
|
+
textNode = document.createTextNode('\n' + indentBefore);
|
92
|
+
node.insertBefore(textNode, node.children[i]);
|
93
|
+
|
94
|
+
format(node.children[i], level);
|
95
|
+
|
96
|
+
if (node.lastElementChild == node.children[i]) {
|
97
|
+
textNode = document.createTextNode('\n' + indentAfter);
|
98
|
+
node.appendChild(textNode);
|
99
|
+
}
|
100
|
+
}
|
101
|
+
|
102
|
+
return node;
|
103
|
+
}
|
104
|
+
var test = 'test';
|
105
|
+
var ReactDOM = Component.ReactDOM;
|
106
|
+
var React = Component.React;
|
107
|
+
var renderToStaticMarkup = Component.renderToStaticMarkup;
|
108
|
+
|
109
|
+
// class RenderComponent extends React.Component {
|
110
|
+
// constructor(props) {
|
111
|
+
// super(props);
|
112
|
+
// }
|
113
|
+
// render() {
|
114
|
+
// var { Components } = this.props;
|
115
|
+
//
|
116
|
+
// return (
|
117
|
+
// <div>
|
118
|
+
// {Object.keys(Components).map(ComponentName => {
|
119
|
+
// if (
|
120
|
+
// ComponentName == 'React' ||
|
121
|
+
// ComponentName == 'ReactDOM' ||
|
122
|
+
// ComponentName.indexOf('__') == -1
|
123
|
+
// ) {
|
124
|
+
// return 'test';
|
125
|
+
// }
|
126
|
+
//
|
127
|
+
// var Component = Components[ComponentName];
|
128
|
+
// console.dir(Component);
|
129
|
+
//
|
130
|
+
// return (
|
131
|
+
// <div>
|
132
|
+
// <div><Component /></div>
|
133
|
+
// <div>{ComponentName}</div>
|
134
|
+
// </div>
|
135
|
+
// );
|
136
|
+
// })}
|
137
|
+
// </div>
|
138
|
+
// );
|
139
|
+
// }
|
140
|
+
// }
|
141
|
+
|
142
|
+
var baseComponent = {};
|
143
|
+
var baseComponentState = {};
|
144
|
+
Object.keys(Component).forEach(c => {
|
145
|
+
var componentObj = Component[c];
|
146
|
+
if (c.indexOf('__') != -1) {
|
147
|
+
if (baseComponentState[c.split('__')[0]]) {
|
148
|
+
baseComponentState[c.split('__')[0]].push(c);
|
149
|
+
} else {
|
150
|
+
baseComponentState[c.split('__')[0]] = [c];
|
151
|
+
}
|
152
|
+
} else if (
|
153
|
+
componentObj.docs &&
|
154
|
+
componentObj.docs.external &&
|
155
|
+
(componentObj.docs.componentGroup == 'Atom' ||
|
156
|
+
componentObj.docs.componentGroup == 'Molecule' ||
|
157
|
+
componentObj.docs.componentGroup == 'Organism')
|
158
|
+
) {
|
159
|
+
baseComponent[c] = componentObj;
|
160
|
+
}
|
161
|
+
});
|
162
|
+
console.log(baseComponent);
|
163
|
+
console.log(baseComponentState);
|
164
|
+
var str = Object.keys(baseComponent)
|
165
|
+
.sort()
|
166
|
+
.reduce((result, componentKey) => {
|
167
|
+
return `${result}<li><a href="#${componentKey}" class="menuItem">${componentKey}</a></li>`;
|
168
|
+
}, '');
|
169
|
+
|
170
|
+
var getComponentState = componentKey => {
|
171
|
+
var result = '';
|
172
|
+
baseComponentState[componentKey].forEach(ckey => {
|
173
|
+
result += `<div><span onClick="toggle('${ckey}','source')" class="source">Source</span><span onClick="toggle('${ckey}',
|
174
|
+
'html')" class="html">html</span><pre id="${ckey +
|
175
|
+
'_source'}" style="display:none"></pre><pre id="${ckey +
|
176
|
+
'_html'}" style="display:none"></pre><div id="${ckey}"></div></div>`;
|
177
|
+
setTimeout(() => {
|
178
|
+
ReactDOM.render(
|
179
|
+
React.createElement(Component[ckey]),
|
180
|
+
document.getElementById(ckey)
|
181
|
+
);
|
182
|
+
document.getElementById(ckey + '_source').innerText =
|
183
|
+
Component[ckey].docs.source;
|
184
|
+
document.getElementById(ckey + '_html').innerText = process(
|
185
|
+
renderToStaticMarkup(React.createElement(Component[ckey]))
|
186
|
+
);
|
187
|
+
}, 100);
|
188
|
+
});
|
189
|
+
return result;
|
190
|
+
};
|
191
|
+
var componentInfo = Object.keys(baseComponent)
|
192
|
+
.sort()
|
193
|
+
.reduce((result, componentKey) => {
|
194
|
+
return `${result}<div id="${componentKey}" class="component">
|
195
|
+
<h1>${componentKey}</h1>
|
196
|
+
<p>
|
197
|
+
${baseComponent[componentKey].docs.description || 'No description'}
|
198
|
+
</p>
|
199
|
+
<h4>PropTypes</h4>
|
200
|
+
<table class="table table-striped">
|
201
|
+
<tr><th>PropsName</th><th>type</th><th>isRequired</th></th>
|
202
|
+
${Object.keys(baseComponent[componentKey].propTypes).sort()
|
203
|
+
.map(pKey => {
|
204
|
+
var pObj = baseComponent[componentKey].propTypes[pKey];
|
205
|
+
return `<tr>
|
206
|
+
<td>
|
207
|
+
${pKey}
|
208
|
+
</td>
|
209
|
+
|
210
|
+
<td>
|
211
|
+
|
212
|
+
${pObj.hookType}
|
213
|
+
|
214
|
+
</td><td>
|
215
|
+
|
216
|
+
${pObj.isRequired ? '' : 'true'}
|
217
|
+
|
218
|
+
</td></tr>`;
|
219
|
+
})
|
220
|
+
.join('')}
|
221
|
+
</table>
|
222
|
+
<h4>State</h4>
|
223
|
+
${getComponentState(componentKey)}
|
224
|
+
${baseComponent[componentKey].docs.additionDescription ? `<h4>More Information about component</h4><p>${baseComponent[componentKey].docs.additionDescription}</p>`:""}
|
225
|
+
|
226
|
+
</div>`;
|
227
|
+
}, '');
|
228
|
+
|
229
|
+
document.getElementById('componentMenu').innerHTML = str;
|
230
|
+
document.getElementById('componentInfo').innerHTML = componentInfo;
|
231
|
+
// var html = Object.keys(Component).reduce((res, cName) => {
|
232
|
+
// return `${res} <div><div id="${cName}"></div><div>${cName}</div></div>`;
|
233
|
+
// });
|
234
|
+
// document.getElementById('react').innerHTML = html;
|
235
|
+
// Object.keys(Component).forEach(cName => {
|
236
|
+
// if (cName == 'React' || cName == 'ReactDOM') {
|
237
|
+
// return;
|
238
|
+
// }
|
239
|
+
// var C = Component[cName];
|
240
|
+
// try {
|
241
|
+
// ReactDOM.render(<C />, document.getElementById(cName));
|
242
|
+
// } catch (e) {
|
243
|
+
// console.log('Error render', cName);
|
244
|
+
// }
|
245
|
+
// });
|
246
|
+
</script>
|
247
|
+
|
248
|
+
|
249
|
+
</body>
|
250
|
+
</html>
|