@lmjs/cli 1.0.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.
@@ -0,0 +1,66 @@
1
+ const axios = require('axios').default;
2
+ const path = require("path")
3
+ const express = require('express');
4
+ var compression = require('compression');
5
+ const app = express();
6
+ const server = require('http').createServer(app);
7
+ const io = require('socket.io')(server);
8
+ var cookieParser = require('cookie-parser');
9
+ var expressSession = require('express-session');
10
+ const bodyParser = require('body-parser');
11
+ var multer = require('multer');
12
+ const config = require('./config').config;
13
+ var upload = multer();
14
+ let session = expressSession({
15
+ secret: 'beajs',
16
+ resave: true,
17
+ saveUninitialized: true,
18
+ cookie: { maxAge: 9999000 }
19
+ });
20
+
21
+ function validURL(str) {
22
+ var pattern = new RegExp('^(https?:\\/\\/)?' +
23
+ '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' +
24
+ '((\\d{1,3}\\.){3}\\d{1,3}))' +
25
+ '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' +
26
+ '(\\?[;&a-z\\d%_.~+=-]*)?' +
27
+ '(\\#[-a-z\\d_]*)?$', 'i');
28
+ return !!pattern.test(str);
29
+ }
30
+
31
+ exports.config = config;
32
+ exports.server = function () {
33
+ return server;
34
+ };
35
+ exports.app = function () {
36
+ app.use(cookieParser());
37
+ app.use(session);
38
+ app.use(compression());
39
+ app.use(express.static(path.join(__dirname, './src')));
40
+ app.set('etag', false);
41
+ app.use(bodyParser.urlencoded({ extended: true }));
42
+ app.use(bodyParser.json());
43
+ app.use(bodyParser.raw());
44
+ app.use(upload.array());
45
+
46
+ io.use(function (socket, next) {
47
+ session(socket.request, socket.request.res, next);
48
+ });
49
+
50
+ io.on('connection', function (socket) {
51
+ socket.on("request", async function (_data, _body, cb) {
52
+ try {
53
+ let res = await axios({
54
+ method: _data['method'].toString().toLowerCase(),
55
+ url: validURL(_data['path']) ? _data['path'] : (config.apis[_data['api'] ?? 0].baseURL + _data['path']),
56
+ data: _body ?? {},
57
+ headers: _data['headers'] ?? config.apis[_data['api'] ?? 0].headers
58
+ });
59
+ cb(res.data);
60
+ } catch (e) {
61
+ cb({ "code": 108, "error": e.message, "type": "RequestError" });
62
+ }
63
+ });
64
+ });
65
+ return app;
66
+ }
@@ -0,0 +1,31 @@
1
+ {
2
+ "name": "beajs-client",
3
+ "version": "1.0.1",
4
+ "description": "Client server for BEA's reactive Javascript Library",
5
+ "main": "./server.js",
6
+ "files": [
7
+ "src/",
8
+ "server.js"
9
+ ],
10
+ "keywords": [
11
+ "beajs",
12
+ "BEAJS Client",
13
+ "devkit",
14
+ "sdk",
15
+ "BEAJS DevKit",
16
+ "bea-client",
17
+ "bea.com.lb"
18
+ ],
19
+ "dependencies": {
20
+ "axios": "^0.27.2",
21
+ "cookie-parser": "^1.4.6",
22
+ "express": "^4.18.1",
23
+ "express-session": "^1.17.3",
24
+ "compression": "^1.7.4",
25
+ "multer": "^1.4.5-lts.1",
26
+ "socket.io": "^4.5.1"
27
+ },
28
+ "engines": {
29
+ "node": ">=12.0.0"
30
+ }
31
+ }
@@ -0,0 +1,27 @@
1
+ const path = require('path');
2
+ const func = require('./func');
3
+ const app = func.app();
4
+ const server = func.server();
5
+ var config = func.config;
6
+
7
+ app.get('/', (req, res) => {
8
+ res.sendFile(path.join(__dirname, './src/index.html'));
9
+ });
10
+
11
+ app.get('*', function (req, res) {
12
+ let nodes = req.params[0].split("/");
13
+ if (nodes.length) nodes.shift();
14
+ res.sendFile(path.join(__dirname, './src/index.html'));
15
+ });
16
+ app.post('*', function (req, res) {
17
+ let nodes = req.params[0].split("/");
18
+ if (nodes.length) nodes.shift();
19
+ // console.log(req.body);
20
+ res.writeHead(200, { 'Content-Type': 'text/html' });
21
+ res.write("");
22
+ return res.end();
23
+ });
24
+
25
+ server.listen(config.server.port, function () {
26
+ console.log(`BEAJS client server running at http://${config.server.host}:${config.server.port}/`);
27
+ });
Binary file
@@ -0,0 +1,4 @@
1
+ Sitemap: https://bea.com.lb/sitemap.xml
2
+
3
+ User-agent: *
4
+ Disallow:
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
3
+ <url>
4
+ <loc>https://bea.com.lb/</loc>
5
+ <lastmod>2022-06-16T08:42:57+00:00</lastmod>
6
+ <changefreq>always</changefreq>
7
+ <priority>1.00</priority>
8
+ </url>
9
+ </urlset>
@@ -0,0 +1,15 @@
1
+ indexignore *
2
+ <IfModule mod_rewrite.c>
3
+ RewriteEngine On
4
+
5
+ RewriteCond %{HTTPS} off
6
+ RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
7
+
8
+ #RewriteCond %{HTTP_HOST} !^www\. [NC]
9
+ #RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
10
+
11
+ RewriteCond %{REQUEST_FILENAME} !-f
12
+ RewriteCond %{REQUEST_FILENAME} !-d
13
+ RewriteCond %{REQUEST_URI} !index
14
+ RewriteRule ^(.*)$ ./index.html [QSA,L]
15
+ </IfModule>
@@ -0,0 +1,4 @@
1
+ Sitemap: https://bea.com.lb/sitemap.xml
2
+
3
+ User-agent: *
4
+ Disallow:
@@ -0,0 +1,9 @@
1
+ <?xml version="1.0" encoding="UTF-8"?>
2
+ <urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd">
3
+ <url>
4
+ <loc>https://bea.com.lb/</loc>
5
+ <lastmod>2022-06-16T08:42:57+00:00</lastmod>
6
+ <changefreq>always</changefreq>
7
+ <priority>1.00</priority>
8
+ </url>
9
+ </urlset>
@@ -0,0 +1 @@
1
+ [ComponentName]
@@ -0,0 +1,51 @@
1
+ {
2
+ "version": "1.0.0.1",
3
+ "server": {
4
+ "host": "127.0.0.1",
5
+ "port": "3000",
6
+ "ssl": {
7
+ "enabled": false,
8
+ "key": "/key.pem",
9
+ "cert": "/certificate.cer"
10
+ }
11
+ },
12
+ "project_info": {
13
+ "Title": "PROJECT_TITLE",
14
+ "Description": "PROJECT_DESCRIPTION",
15
+ "Keywords": "website,search,tags,goes,here",
16
+ "WebsiteURL": "https://www.example.com/",
17
+ "Favicon": "/images/favicon.ico",
18
+ "SocialMedia": {
19
+ "LI": "https://www.linkedin.com/",
20
+ "IG": "https://www.instagram.com/",
21
+ "FB": "https://www.facebook.com/"
22
+ },
23
+ "MetaTags": {
24
+ "og:url": "https://www.example.com/",
25
+ "og:title": "PROJECT_TITLE",
26
+ "og:type": "business.business",
27
+ "og:site_name": "PROJECT_TITLE",
28
+ "fb:admins": "592515154",
29
+ "fb:app_id": "138025696270006",
30
+ "og:description": "PROJECT_TITLE",
31
+ "og:image": "/images/example.png",
32
+ "business:contact_data:street_address": "Street Address.",
33
+ "business:contact_data:locality": "Tripoli",
34
+ "business:contact_data:postal_code": "1300",
35
+ "business:contact_data:country_name": "Lebanon",
36
+ "business:contact_data:email": "info@example.com",
37
+ "business:contact_data:phone_number": "+96171299411",
38
+ "business:contact_data:fax_number": "+96171299411",
39
+ "business:contact_data:website": "https://www.example.com/"
40
+ }
41
+ },
42
+ "apis": [
43
+ {
44
+ "baseURL": "https://api.backendadmin.com/1",
45
+ "headers": {
46
+ "X-BEA-Application-ID": "YOUR_APPLICATION_ID",
47
+ "X-BEA-Authorization": "YOUR_REST_API_KEY"
48
+ }
49
+ }
50
+ ]
51
+ }
@@ -0,0 +1,250 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <meta charset="utf-8">
6
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1">
8
+
9
+ <title>404 HTML Template by Colorlib</title>
10
+
11
+ <style id="" media="all">
12
+ * {
13
+ -webkit-box-sizing: border-box;
14
+ box-sizing: border-box;
15
+ }
16
+
17
+ body {
18
+ padding: 0;
19
+ margin: 0;
20
+ }
21
+
22
+ #notfound {
23
+ position: relative;
24
+ height: 100vh;
25
+ }
26
+
27
+ #notfound .notfound {
28
+ position: absolute;
29
+ left: 50%;
30
+ top: 50%;
31
+ -webkit-transform: translate(-50%, -50%);
32
+ -ms-transform: translate(-50%, -50%);
33
+ transform: translate(-50%, -50%);
34
+ }
35
+
36
+ .notfound {
37
+ max-width: 520px;
38
+ width: 100%;
39
+ line-height: 1.4;
40
+ text-align: center;
41
+ }
42
+
43
+ .notfound .notfound-404 {
44
+ position: relative;
45
+ height: 240px;
46
+ }
47
+
48
+ .notfound .notfound-404 h1 {
49
+ font-family: 'Montserrat', sans-serif;
50
+ position: absolute;
51
+ left: 50%;
52
+ top: 50%;
53
+ -webkit-transform: translate(-50%, -50%);
54
+ -ms-transform: translate(-50%, -50%);
55
+ transform: translate(-50%, -50%);
56
+ font-size: 252px;
57
+ font-weight: 900;
58
+ margin: 0px;
59
+ color: #262626;
60
+ text-transform: uppercase;
61
+ letter-spacing: -40px;
62
+ margin-left: -20px;
63
+ }
64
+
65
+ .notfound .notfound-404 h1>span {
66
+ text-shadow: -8px 0px 0px #fff;
67
+ }
68
+
69
+ .notfound .notfound-404 h3 {
70
+ font-family: 'Cabin', sans-serif;
71
+ position: relative;
72
+ font-size: 16px;
73
+ font-weight: 700;
74
+ text-transform: uppercase;
75
+ color: #262626;
76
+ margin: 0px;
77
+ letter-spacing: 3px;
78
+ padding-left: 6px;
79
+ }
80
+
81
+ .notfound h2 {
82
+ font-family: 'Cabin', sans-serif;
83
+ font-size: 20px;
84
+ font-weight: 400;
85
+ text-transform: uppercase;
86
+ color: #000;
87
+ margin-top: 0px;
88
+ margin-bottom: 25px;
89
+ }
90
+
91
+ @media only screen and (max-width: 767px) {
92
+ .notfound .notfound-404 {
93
+ height: 200px;
94
+ }
95
+
96
+ .notfound .notfound-404 h1 {
97
+ font-size: 200px;
98
+ }
99
+ }
100
+
101
+ @media only screen and (max-width: 480px) {
102
+ .notfound .notfound-404 {
103
+ height: 162px;
104
+ }
105
+
106
+ .notfound .notfound-404 h1 {
107
+ font-size: 162px;
108
+ height: 150px;
109
+ line-height: 162px;
110
+ }
111
+
112
+ .notfound h2 {
113
+ font-size: 16px;
114
+ }
115
+ }
116
+
117
+ /* vietnamese */
118
+ @font-face {
119
+ font-family: 'Cabin';
120
+ font-style: normal;
121
+ font-weight: 400;
122
+ font-stretch: 100%;
123
+ font-display: swap;
124
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6XvptnsF3-OA6Fw.woff2) format('woff2');
125
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
126
+ }
127
+
128
+ /* latin-ext */
129
+ @font-face {
130
+ font-family: 'Cabin';
131
+ font-style: normal;
132
+ font-weight: 400;
133
+ font-stretch: 100%;
134
+ font-display: swap;
135
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6Xvp9nsF3-OA6Fw.woff2) format('woff2');
136
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
137
+ }
138
+
139
+ /* latin */
140
+ @font-face {
141
+ font-family: 'Cabin';
142
+ font-style: normal;
143
+ font-weight: 400;
144
+ font-stretch: 100%;
145
+ font-display: swap;
146
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6XvqdnsF3-OAw.woff2) format('woff2');
147
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
148
+ }
149
+
150
+ /* vietnamese */
151
+ @font-face {
152
+ font-family: 'Cabin';
153
+ font-style: normal;
154
+ font-weight: 700;
155
+ font-stretch: 100%;
156
+ font-display: swap;
157
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6XvptnsF3-OA6Fw.woff2) format('woff2');
158
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
159
+ }
160
+
161
+ /* latin-ext */
162
+ @font-face {
163
+ font-family: 'Cabin';
164
+ font-style: normal;
165
+ font-weight: 700;
166
+ font-stretch: 100%;
167
+ font-display: swap;
168
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6Xvp9nsF3-OA6Fw.woff2) format('woff2');
169
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
170
+ }
171
+
172
+ /* latin */
173
+ @font-face {
174
+ font-family: 'Cabin';
175
+ font-style: normal;
176
+ font-weight: 700;
177
+ font-stretch: 100%;
178
+ font-display: swap;
179
+ src: url(/fonts.gstatic.com/s/cabin/v26/u-4i0qWljRw-PfU81xCKCpdpbgZJl6XvqdnsF3-OAw.woff2) format('woff2');
180
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
181
+ }
182
+ </style>
183
+ <style id="" media="all">
184
+ /* cyrillic-ext */
185
+ @font-face {
186
+ font-family: 'Montserrat';
187
+ font-style: normal;
188
+ font-weight: 900;
189
+ font-display: swap;
190
+ src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w0aXp-p7K4KLjztg.woff2) format('woff2');
191
+ unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
192
+ }
193
+
194
+ /* cyrillic */
195
+ @font-face {
196
+ font-family: 'Montserrat';
197
+ font-style: normal;
198
+ font-weight: 900;
199
+ font-display: swap;
200
+ src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w9aXp-p7K4KLjztg.woff2) format('woff2');
201
+ unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
202
+ }
203
+
204
+ /* vietnamese */
205
+ @font-face {
206
+ font-family: 'Montserrat';
207
+ font-style: normal;
208
+ font-weight: 900;
209
+ font-display: swap;
210
+ src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w2aXp-p7K4KLjztg.woff2) format('woff2');
211
+ unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+1EA0-1EF9, U+20AB;
212
+ }
213
+
214
+ /* latin-ext */
215
+ @font-face {
216
+ font-family: 'Montserrat';
217
+ font-style: normal;
218
+ font-weight: 900;
219
+ font-display: swap;
220
+ src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w3aXp-p7K4KLjztg.woff2) format('woff2');
221
+ unicode-range: U+0100-024F, U+0259, U+1E00-1EFF, U+2020, U+20A0-20AB, U+20AD-20CF, U+2113, U+2C60-2C7F, U+A720-A7FF;
222
+ }
223
+
224
+ /* latin */
225
+ @font-face {
226
+ font-family: 'Montserrat';
227
+ font-style: normal;
228
+ font-weight: 900;
229
+ font-display: swap;
230
+ src: url(/fonts.gstatic.com/s/montserrat/v25/JTUHjIg1_i6t8kCHKm4532VJOt5-QNFgpCvC73w5aXp-p7K4KLg.woff2) format('woff2');
231
+ unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+2000-206F, U+2074, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;
232
+ }
233
+ </style>
234
+
235
+ <meta name="robots" content="noindex, follow">
236
+ </head>
237
+
238
+ <body>
239
+ <div id="notfound">
240
+ <div class="notfound">
241
+ <div class="notfound-404">
242
+ <h3>Oops! Page not found</h3>
243
+ <h1><span>4</span><span>0</span><span>4</span></h1>
244
+ </div>
245
+ <h2>we are sorry, but the page you requested was not found</h2>
246
+ </div>
247
+ </div>
248
+ </body>
249
+
250
+ </html>
@@ -0,0 +1 @@
1
+ Component 1
@@ -0,0 +1,48 @@
1
+ <!DOCTYPE html>
2
+ <html lang="en">
3
+
4
+ <head>
5
+ <title>[ProjectName]</title>
6
+ <meta charset="UTF-8">
7
+ <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=5.0, minimum-scale=1.0" />
8
+ <meta name="language" content="En">
9
+ <meta rel="publisher" content="BEAJS" />
10
+ <meta rel="author" content="BEAJS" />
11
+ <meta name="title" content="[ProjectName] Official Site" />
12
+ <meta name="description" content="[ProjectName] Official Site." />
13
+ <meta name="Keywords" content="" />
14
+ <meta name="theme-color" content="#3367D6" />
15
+
16
+ <meta http-equiv="X-UA-Compatible" content="IE=edge">
17
+ <link href="/css/bea.css" rel="stylesheet" type="text/css" />
18
+ <link href="/css/styles.css" rel="stylesheet" type="text/css" />
19
+ <link href="https://cdnjs.cloudflare.com/ajax/libs/MaterialDesign-Webfont/6.6.96/css/materialdesignicons.min.css"
20
+ rel="stylesheet" />
21
+ <link rel="icon" type="image/x-icon" href="/favicon.ico" />
22
+ <!-- <link rel="icon" type="image/png" href="/favicon.png" /> -->
23
+
24
+ <meta property="og:url" content="https://www.example.com/" />
25
+ <meta property="og:title" content="[ProjectName] Official Site" />
26
+ <meta property="og:type" content="business.business" />
27
+ <meta property="og:site_name" content="[ProjectName]" />
28
+ <meta property="fb:admins" content="592515154" />
29
+ <meta property="fb:app_id" content="138025696270006" />
30
+ <meta property="og:description" content="[ProjectName] Official Site." />
31
+ <meta property="og:image" content="/images/example.png" />
32
+ <meta property="business:contact_data:street_address" content="Street Address." />
33
+ <meta property="business:contact_data:locality" content="Tripoli" />
34
+ <meta property="business:contact_data:postal_code" content="1300" />
35
+ <meta property="business:contact_data:country_name" content="Lebanon" />
36
+ <meta property="business:contact_data:email" content="info@example.com" />
37
+ <meta property="business:contact_data:phone_number" content="+96171299411" />
38
+ <meta property="business:contact_data:fax_number" content="" />
39
+ <meta property="business:contact_data:website" content="https://www.example.com/" />
40
+ </head>
41
+
42
+ <body>
43
+ <div main></div>
44
+ <script src="/js/bea.js" type="text/javascript"></script>
45
+ <script src="/index.js" type="text/javascript"></script>
46
+ </body>
47
+
48
+ </html>
@@ -0,0 +1,15 @@
1
+ Reactor({
2
+ "App": "[main]",
3
+ "defaultView": "home",
4
+ "authView": "login",
5
+ "init": function(){
6
+
7
+ },
8
+ "tick": function(){
9
+
10
+ },
11
+ "auth": function(){
12
+
13
+ return true;
14
+ }
15
+ });
@@ -0,0 +1,14 @@
1
+ <div>
2
+ About View
3
+ </div>
4
+ <script>
5
+
6
+ </script>
7
+
8
+ <settings>
9
+ {
10
+ hasFooter: true,
11
+ hasHeader: true,
12
+ hasNav: true
13
+ }
14
+ </settings>
@@ -0,0 +1,14 @@
1
+ <div>
2
+ Contact View
3
+ </div>
4
+ <script>
5
+
6
+ </script>
7
+
8
+ <settings>
9
+ {
10
+ hasFooter: true,
11
+ hasHeader: true,
12
+ hasNav: true
13
+ }
14
+ </settings>
@@ -0,0 +1,13 @@
1
+ <div>
2
+ Home View
3
+ </div>
4
+ <script>
5
+ </script>
6
+
7
+ <settings>
8
+ {
9
+ hasFooter: true,
10
+ hasHeader: true,
11
+ hasNav: true
12
+ }
13
+ </settings>
@@ -0,0 +1,13 @@
1
+ <style>
2
+ a.active {
3
+ font-weight: 900;
4
+ color: black;
5
+ }
6
+ </style>
7
+ <div class="oh pv40 upper cb70">
8
+ <grid_nm gap40>
9
+ <div><a href="/" n0="home">Home</a></div>
10
+ <div><a href="/about" n0="about">About Us</a></div>
11
+ <div><a href="/contact" n0="contact">Contact Us</a></div>
12
+ </grid_nm>
13
+ </div>
File without changes
@@ -0,0 +1,8 @@
1
+ <div>
2
+ [SubViewName] Sub View
3
+ </div>
4
+ <script>
5
+ view.scope(function (view, props) {
6
+
7
+ });
8
+ </script>
@@ -0,0 +1,14 @@
1
+ <div>
2
+ [ViewName] View
3
+ </div>
4
+ <script>
5
+
6
+ </script>
7
+
8
+ <settings>
9
+ {
10
+ hasFooter: true,
11
+ hasHeader: true,
12
+ hasNav: true
13
+ }
14
+ </settings>