1
1
var fs = require ( 'fs' ) ;
2
2
var glob = require ( 'glob' ) ;
3
+ var runSequence = require ( 'run-sequence' ) ;
4
+ var build = require ( "@syncfusion/ej2-build" ) ;
3
5
var gulp = require ( "gulp" ) ;
6
+ var webpack = require ( "webpack" ) ;
7
+ // var webpackConfig = require("./webpack.config.js");
8
+ // var clean = require("gulp-clean");
4
9
var shelljs = global . shelljs = global . shelljs || require ( 'shelljs' ) ;
10
+ var common = require ( "./node_modules/@syncfusion/ej2-build/src/utils/common.js" ) ;
11
+ var isReleaseBranch = / ^ ( ( r e l e a s e \/ | h o t f i x \/ ) ) / g. test ( process . env . BRANCH_NAME ) ;
5
12
6
- gulp . task ( 'copy-source' , function ( done ) {
13
+ gulp . task ( 'create-locale' , function ( ) {
14
+ var localeJson = glob . sync ( __dirname + '/src/app/**/locale.json' , {
15
+ silent : true
16
+ } ) ;
17
+ if ( localeJson . length ) {
18
+ // baseUtil;
19
+ var obj = { } ;
20
+ for ( var i = 0 ; i < localeJson . length ; i ++ ) {
21
+ var compentLocale = JSON . parse ( fs . readFileSync ( localeJson [ i ] ) ) ;
22
+ obj = common . extend ( { } , obj , compentLocale , true ) ;
23
+ }
24
+ fs . writeFileSync ( __dirname + '/src/app/common/locale-string.ts' , 'export let Locale: Object=' + JSON . stringify ( obj ) + ';' ) ;
25
+ } else {
26
+ fs . writeFileSync ( __dirname + '/src/app/common/locale-string.ts' , 'export let Locale: Object={};' ) ;
27
+ }
28
+ } ) ;
29
+
30
+ gulp . task ( 'copy-source' , function ( ) {
7
31
var localeJson = glob . sync ( __dirname + '/src/app/**/*' , {
8
32
silent : true ,
9
33
ignore : [ '/src/app/common/**/*.*' , '/src/app/common' ]
@@ -16,14 +40,13 @@ gulp.task('copy-source', function (done) {
16
40
}
17
41
}
18
42
}
19
- done ( ) ;
20
43
} ) ;
21
44
22
45
gulp . task ( 'build' , function ( done ) {
23
46
shelljs . exec ( 'npm run build:prod' , function ( exitCode , error ) {
24
47
console . log ( error ) ;
25
48
done ( exitCode ) ;
26
- } )
49
+ } ) ;
27
50
// runSequence('create-locale');
28
51
} ) ;
29
52
@@ -35,7 +58,7 @@ gulp.task('serve', ['copy-source', 'styles-all'], function () {
35
58
gulp . task ( 'clear-all' , function ( ) {
36
59
return gulp . src ( [ 'src/**/*.js.map' , 'src/**/*.json' , 'src/**/*.js' , 'src/**/*.d.ts' , 'src/**/*.ngfactory.ts' , 'src/**/*.ngstyle.ts' ] ) . pipe ( clean ( {
37
60
force : true
38
- } ) )
61
+ } ) ) ;
39
62
} ) ;
40
63
41
64
gulp . task ( 'move' , function ( done ) {
@@ -49,8 +72,80 @@ gulp.task('move', function (done) {
49
72
gulp . task ( 'styles-replace' , function ( done ) {
50
73
var nos = glob . sync ( 'node_modules/@syncfusion/ej2/*.css' ) ;
51
74
for ( var j = 0 ; j < nos . length ; j ++ ) {
52
- var htmlfile = fs . readFileSync ( nos [ j ] , 'utf8' ) ;
53
- fs . writeFileSync ( './src/styles/' + nos [ j ] . split ( '/' ) [ 3 ] , htmlfile , 'utf8' ) ;
75
+ var htmlfile = fs . readFileSync ( nos [ j ] , 'utf8' ) ;
76
+ fs . writeFileSync ( './src/styles/' + nos [ j ] . split ( '/' ) [ 3 ] , htmlfile , 'utf8' ) ;
54
77
}
55
78
done ( ) ;
56
79
} ) ;
80
+
81
+ gulp . task ( 'SEO-changes' , function ( ) {
82
+ var newWindowSamples = glob . sync ( './OpenNewSamples/**/**/index.html' ) ;
83
+ var samplsListJson = JSON . parse ( fs . readFileSync ( './sampleOrder.json' ) ) ;
84
+ var localCss = `<link href="../../styles/OpenNew.css" rel="stylesheet">` ;
85
+ var localCssRegex = / ( .* ) s t y l e s \/ O p e n N e w .c s s \" r e l \= \" s t y l e s h e e t ( .* ) / g;
86
+
87
+ for ( var i = 0 ; i < newWindowSamples . length ; i ++ ) {
88
+
89
+ var indexFile = fs . readFileSync ( newWindowSamples [ i ] , 'utf8' ) ;
90
+ if ( samplsListJson [ newWindowSamples [ i ] . split ( '/' ) [ 2 ] ] === undefined ) {
91
+ console . log ( `${ i } ------${ newWindowSamples [ i ] } ` ) ;
92
+ }
93
+ var ControlName = samplsListJson [ newWindowSamples [ i ] . split ( '/' ) [ 2 ] ] . ControlName ;
94
+ var sampleName = samplsListJson [ newWindowSamples [ i ] . split ( '/' ) [ 2 ] ] . Samples [ newWindowSamples [ i ] . split ( '/' ) [ 3 ] ] ;
95
+
96
+ indexFile = indexFile . replace ( / < m e t a n a m e = " d e s c r i p t i o n " ( .* ) / g, '' ) ;
97
+ indexFile = indexFile . replace ( / < h 1 c l a s s = " s b - b r e a d - c r u m b - t e x t " > ( .* ) / g, '' ) ;
98
+
99
+ var metaTagTemplate = `<meta name="description" content="This example demonstrates the ${ sampleName } in Angular ${ ControlName } Component. Explore here for more details." />` ;
100
+ indexFile = indexFile . replace ( / < t i t l e > ( .* ) / g, '<title>' + 'Angular ' + ControlName + ' ' + sampleName + ' Example - Syncfusion Demos</title>\n\t' + metaTagTemplate ) ;
101
+
102
+ var headerDesc = '' ;
103
+ if ( newWindowSamples [ i ] . indexOf ( 'sidebar' ) >= 0 ) {
104
+ headerDesc = '' ;
105
+ } else {
106
+ headerDesc = `<h1 class="sb-bread-crumb-text">Example of ${ sampleName } in Angular ${ ControlName } Component</h1>` ;
107
+ }
108
+
109
+ indexFile = indexFile . replace ( `<app-root></app-root>` , headerDesc + `\n\t<app-root></app-root>` ) ;
110
+
111
+ if ( ! ( localCssRegex . test ( indexFile ) ) ) {
112
+ indexFile = indexFile . replace ( / ( .* ) s t y l e s \/ m a t e r i a l .c s s \" r e l \= \" s t y l e s h e e t ( .* ) / g, '<link href="../../styles/material.css" rel="stylesheet">\n' + localCss )
113
+ }
114
+
115
+ fs . writeFileSync ( newWindowSamples [ i ] , indexFile . replace ( 'Essential JS 2' , 'Essential Studio' ) , 'utf8' ) ;
116
+ }
117
+ }
118
+ ) ;
119
+
120
+ function camelCase ( str ) {
121
+ return str . replace ( / (?: ^ \w | [ A - Z ] | \b \w ) / g, function ( word , index )
122
+ {
123
+ return index === 0 ?word . toUpperCase ( ) : word . toUpperCase ( ) ;
124
+ } ) . replace ( / \s + / g, '' ) . replace ( / \- / g, ' ' ) ;
125
+ }
126
+
127
+
128
+ gulp . task ( 'create-sampleList' , function ( ) {
129
+
130
+ var newWindowSamples = glob . sync ( './src/app/**/**.module.ts' , {
131
+ silent : true ,
132
+ ignore : [ './src/app/app.module.ts' , './src/app/common/shared.module.ts' ]
133
+ } ) ;
134
+
135
+ var temp = `{{path}}:{{name}}`
136
+ for ( var i = 0 ; i < newWindowSamples . length ; i ++ ) {
137
+ var sampleJson = '' ;
138
+ var indexFile = fs . readFileSync ( newWindowSamples [ i ] , 'utf8' ) ;
139
+ paths = indexFile . match ( / p a t h ( | ) \: [ ^ , ] + / g) ;
140
+ names = indexFile . match ( / n a m e ( | | ' | ' ) \: [ ^ , ] + / g) ;
141
+ for ( var j = 0 ; j < paths . length ; j ++ ) {
142
+ var template = temp ;
143
+ template = template . replace ( `{{path}}` , `"${ paths [ j ] . replace ( / p a t h ( | ) \: [ ^ t h e m e ] + t h e m e / g, '' ) . replace ( '\'' , '' ) } "` ) ;
144
+ template = template . replace ( `{{name}}` , `"${ names [ j ] . replace ( / n a m e ( | | ' | ' ) \: [ ^ ' ] + \' / g, '' ) . replace ( '\'' , '' ) } "` ) ;
145
+ sampleJson += template + `,\n` ;
146
+ }
147
+ console . log ( i + `----------` + newWindowSamples [ i ] . replace ( `.module.ts` , '' ) . replace ( `./src/app/` , '' ) ) ;
148
+ fs . writeFileSync ( newWindowSamples [ i ] . replace ( `.module.ts` , 'sampleList' ) , sampleJson , 'utf8' ) ;
149
+ }
150
+ }
151
+ ) ;
0 commit comments