1
1
const api = require ( '../../packages/main/dist/api.json' ) ;
2
+ const cssVariables = require ( '../../packages/main/docs/themes/css-vars.json' ) ;
2
3
const template = require ( './templates/template' ) . template ;
3
4
const sinceTemplate = require ( './templates/api-component-since' ) . template ;
4
5
const propertiesTemplate = require ( './templates/api-properties-section' ) . template ;
5
6
const slotsTemplate = require ( './templates/api-slots-section' ) . template ;
6
7
const eventsTemplate = require ( './templates/api-events-section' ) . template ;
7
8
const methodsTemplate = require ( './templates/api-methods-section' ) . template ;
9
+ const cssVariablesTemplate = require ( './templates/api-css-variables-section' ) . template ;
8
10
const Handlebars = require ( 'handlebars/dist/handlebars.min.js' ) ;
9
11
const fs = require ( 'fs' ) ;
10
12
const mkdirp = require ( 'mkdirp' ) ;
@@ -18,7 +20,11 @@ const sinceMarker = "<!--since_tag_marker-->";
18
20
const getComponentByName = name => {
19
21
return entries . find ( element => {
20
22
return element . basename === name ;
21
- } )
23
+ } )
24
+ } ;
25
+
26
+ const getCSSVarsByName = name => {
27
+ return cssVariables [ name ] || [ ] ;
22
28
} ;
23
29
24
30
const capitalize = str => {
@@ -42,23 +48,34 @@ Handlebars.registerPartial('properties', propertiesTemplate);
42
48
Handlebars . registerPartial ( 'slots' , slotsTemplate ) ;
43
49
Handlebars . registerPartial ( 'events' , eventsTemplate ) ;
44
50
Handlebars . registerPartial ( 'methods' , methodsTemplate ) ;
51
+ Handlebars . registerPartial ( 'cssVariables' , cssVariablesTemplate ) ;
45
52
46
53
mkdirp ( `dist/test-resources/sap/ui/webcomponents/main/api` ) ;
47
54
48
55
let entriesAPI = [ ] ;
49
56
50
- const mergeParentAPI = entry => {
57
+ const appendCSSVarsAPI = entry => {
58
+ entry . cssVariables = getCSSVarsByName ( entry . basename ) ;
59
+ return entry ;
60
+ }
61
+
62
+ const calculateAPI = entry => {
51
63
if ( entriesAPI . indexOf ( entry . basename ) !== - 1 ) {
52
64
return entry ;
53
65
}
54
66
55
67
let parent = getComponentByName ( entry . extends ) || { } ;
56
- parent = { ...{ properties : [ ] , events : [ ] , slots : [ ] } , ...parent } ;
68
+
69
+ entry = appendCSSVarsAPI ( entry ) ;
70
+ parent = appendCSSVarsAPI ( parent ) ;
71
+
72
+ parent = { ...{ properties : [ ] , events : [ ] , slots : [ ] , cssVariables : [ ] } , ...parent } ;
57
73
58
74
// extend component documentation
59
75
entry . properties = [ ...( entry . properties || [ ] ) , ...( parent . properties || [ ] ) ] ;
60
76
entry . events = [ ...( entry . events || [ ] ) , ...( parent . events || [ ] ) ] ;
61
77
entry . slots = [ ...( entry . slots || [ ] ) , ...( parent . slots || [ ] ) ] ;
78
+ entry . cssVariables = [ ...( entry . cssVariables || [ ] ) , ...( parent . cssVariables || [ ] ) ] ;
62
79
63
80
entriesAPI . push ( entry . basename ) ;
64
81
@@ -72,7 +89,7 @@ const appendAdditionalEntriesAPI = entry => {
72
89
73
90
additionalEntries . forEach ( entryName => {
74
91
let additionalEntry = getComponentByName ( entryName ) ;
75
- additionalEntry = mergeParentAPI ( additionalEntry ) ;
92
+ additionalEntry = calculateAPI ( additionalEntry ) ;
76
93
entry . additionalDocs . push ( additionalEntry ) ;
77
94
} ) ;
78
95
}
@@ -120,10 +137,10 @@ const generateSamplePage = entry => {
120
137
}
121
138
122
139
const generateComponentAPI = entry => {
123
- // (1) merge parent API
124
- entry = mergeParentAPI ( entry ) ;
140
+ // (1) calculate the API
141
+ entry = calculateAPI ( entry ) ;
125
142
126
- // (2) append additional API for children
143
+ // (2) append additional API for composition components - List -> ListIems, TabContainer -> Tabs, Table -> TableRow/Column/Cell
127
144
entry = appendAdditionalEntriesAPI ( entry ) ;
128
145
129
146
// (3) generate sample page
0 commit comments