cob-cli 2.8.0 → 2.11.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.
- package/customizations/dashboard.dash.js +11 -0
- package/customizations/dashboard.js +1 -0
- package/customizations/dashboard.simple.js +1 -1
- package/customizations/dashboard.vue.empty.js +1 -1
- package/customizations/frontend.easy.js +16 -0
- package/lib/task_lists/customize_copy.js +7 -6
- package/package.json +1 -1
- package/templates/{cob-dashboard-html → dashboards/cob-dashboard-html}/demoDashboard.html +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/package-lock.json +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/package.json +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/src/App.vue +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/src/dashboard.html +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/src/main.js +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/src/plugins/cobUiVueComponents.js +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/src/plugins/vuetify.js +0 -0
- package/templates/{cob-dashboard-vue → dashboards/cob-dashboard-vue}/vue.config.js +0 -0
- package/templates/dashboards/dash/dist/css/app.3140d0d1.css +8 -0
- package/templates/dashboards/dash/dist/dashboard.html +20 -0
- package/templates/dashboards/dash/dist/fonts/fa-brands-400.a78ffbbe.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-brands-400.cd2b4095.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-regular-400.b1a1bebb.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-regular-400.e8a1ba41.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-solid-900.55b416a8.woff2 +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-solid-900.73820155.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.0d6f5f18.ttf +0 -0
- package/templates/dashboards/dash/dist/fonts/fa-v4compatibility.786e6b33.woff2 +0 -0
- package/templates/dashboards/dash/dist/js/app.a65a4c2c.js +188 -0
- package/templates/dashboards/dash/dist/js/app.a65a4c2c.js.map +1 -0
- package/templates/dashboards/dash/package-lock.json +24340 -0
- package/templates/dashboards/dash/package.json +19 -0
- package/templates/dashboards/dash/src/App.vue +257 -0
- package/templates/dashboards/dash/src/Dashboard.vue +46 -0
- package/templates/dashboards/dash/src/assets/css/all.min.css +6 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-brands-400.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-regular-400.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-solid-900.woff2 +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.ttf +0 -0
- package/templates/dashboards/dash/src/assets/webfonts/fa-v4compatibility.woff2 +0 -0
- package/templates/dashboards/dash/src/collector.js +3782 -0
- package/templates/dashboards/dash/src/components/Board.vue +61 -0
- package/templates/dashboards/dash/src/components/BoardsNav.vue +23 -0
- package/templates/dashboards/dash/src/components/BoardsPage.vue +36 -0
- package/templates/dashboards/dash/src/components/Menu.vue +19 -0
- package/templates/dashboards/dash/src/components/Title.vue +13 -0
- package/templates/dashboards/dash/src/components/Totals.vue +53 -0
- package/templates/dashboards/dash/src/components/TotalsBadge.vue +69 -0
- package/templates/dashboards/dash/src/dashboard.html +34 -0
- package/templates/dashboards/dash/src/input.css +9 -0
- package/templates/dashboards/dash/src/main.js +11 -0
- package/templates/dashboards/dash/src/output.css +45836 -0
- package/templates/dashboards/dash/tailwind.config.js +18 -0
- package/templates/dashboards/dash/vue.config.js +104 -0
- package/templates/frontend/common/css/_dashboard.css +7 -0
- package/templates/frontend/common/css/_global.css +3 -1
- package/templates/frontend/easy/css/_easy/googlefonts.css +360 -0
- package/templates/frontend/easy/css/_easy/vuetify.cob-scoped.css +10488 -0
- package/templates/frontend/easy/js/_easy/lib/axios.min.js +9 -0
- package/templates/frontend/easy/js/_easy/lib/marked.min.js +6 -0
- package/templates/frontend/easy/js/_easy/lib/vue.js +11912 -0
- package/templates/frontend/easy/js/_easy/lib/vue.min.js +6 -0
- package/templates/frontend/easy/js/_easy/lib/vuetify.min.js +6 -0
- package/templates/frontend/easy/js/customizations2.__MERGE__.js +22 -0
- package/templates/frontend/easy/webapp/.browserslistrc +2 -0
- package/templates/frontend/easy/webapp/.eslintrc.js +17 -0
- package/templates/frontend/easy/webapp/README.md +60 -0
- package/templates/frontend/easy/webapp/babel.config.js +5 -0
- package/templates/frontend/easy/webapp/dist/css/app.a4fb91f8.css +1 -0
- package/templates/frontend/easy/webapp/dist/dashboard.html +13 -0
- package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js +2 -0
- package/templates/frontend/easy/webapp/dist/js/app.63a57dcd.js.map +1 -0
- package/templates/frontend/easy/webapp/package-lock.json +32986 -0
- package/templates/frontend/easy/webapp/package.json +32 -0
- package/templates/frontend/easy/webapp/postcss.config.js +5 -0
- package/templates/frontend/easy/webapp/public/dashboard.html +13 -0
- package/templates/frontend/easy/webapp/src/App.vue +181 -0
- package/templates/frontend/easy/webapp/src/assets/logo.png +0 -0
- package/templates/frontend/easy/webapp/src/components/HelloWorld.vue +59 -0
- package/templates/frontend/easy/webapp/src/components/PermBuilder.vue +163 -0
- package/templates/frontend/easy/webapp/src/components/PlanExecutor.vue +225 -0
- package/templates/frontend/easy/webapp/src/components/ProductPermBuilder.vue +95 -0
- package/templates/frontend/easy/webapp/src/components/RmDefinitionChooser.vue +59 -0
- package/templates/frontend/easy/webapp/src/components/RmDomainChooser.vue +60 -0
- package/templates/frontend/easy/webapp/src/components/RoleBuilder.vue +73 -0
- package/templates/frontend/easy/webapp/src/main.js +19 -0
- package/templates/frontend/easy/webapp/src/perm-templates.js +189 -0
- package/templates/frontend/easy/webapp/src/perms.js +197 -0
- package/templates/frontend/easy/webapp/vue.config.js +66 -0
- package/templates/keywords/audit/frontend/js/cob/_audit.js +4 -1
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
module.exports = {
|
|
2
|
+
content: ["./src/**/*.{html,js,vue}", "./src/*.{html,js,vue}"],
|
|
3
|
+
theme: {
|
|
4
|
+
extend: {
|
|
5
|
+
colors: {
|
|
6
|
+
'cobbg': '#fda1e004',
|
|
7
|
+
'cobline': '#cdcac4',
|
|
8
|
+
'error': 'rgb(239 68 68)'
|
|
9
|
+
},
|
|
10
|
+
},
|
|
11
|
+
},
|
|
12
|
+
safelist: [
|
|
13
|
+
{
|
|
14
|
+
pattern: /.*/,
|
|
15
|
+
},
|
|
16
|
+
],
|
|
17
|
+
plugins: [],
|
|
18
|
+
}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
let DASH_DIR = process.env.dash_dir
|
|
2
|
+
let SERVER = process.env.server
|
|
3
|
+
|
|
4
|
+
if(!process.env.dash_dir || !SERVER) {
|
|
5
|
+
// Provavelmente corrido via 'npm run serve' e não tenha variáveis de ambiente definidas
|
|
6
|
+
console.log("LOCAL 'npm run serve' ON OWN DIRECTORY ASSUMPTION")
|
|
7
|
+
|
|
8
|
+
let pwd = process.env.PWD
|
|
9
|
+
DASH_DIR = pwd.substring(pwd.lastIndexOf("/")+1)
|
|
10
|
+
|
|
11
|
+
let localSubPosition = pwd.indexOf("/recordm/customUI")
|
|
12
|
+
let serverFile = (localSubPosition > 0 ? pwd.substring(0,localSubPosition) : ".") + "/.server"
|
|
13
|
+
try {
|
|
14
|
+
// Se estivermos dentro de um repo cob-cli então vamos conseguir obter o servidor a partir do '.server' na raiz do repo
|
|
15
|
+
SERVER = "https://" + require('fs').readFileSync(serverFile, 'utf8') + ".cultofbits.com";
|
|
16
|
+
} catch {
|
|
17
|
+
// se não conseguirmos usamos a máquina de formação como default
|
|
18
|
+
SERVER = "https://learning.cultofbits.com";
|
|
19
|
+
console.warn("Warning: file '.server' not found. Using " + SERVER + " as backend" )
|
|
20
|
+
}
|
|
21
|
+
}
|
|
22
|
+
|
|
23
|
+
module.exports = {
|
|
24
|
+
// temos que fixar o directorio onde colocamos o build,
|
|
25
|
+
// para podermos usar o dashboard.html que é gerado sem o editar
|
|
26
|
+
// NOTA: o path relativo não funciona bem com o npm run serve
|
|
27
|
+
// mas queremos que o build seja relativo, para ser mais fléxivel
|
|
28
|
+
publicPath: process.env.NODE_ENV === 'production'
|
|
29
|
+
? './localresource/' + DASH_DIR + '/dist/'
|
|
30
|
+
: '/' + DASH_DIR,
|
|
31
|
+
|
|
32
|
+
// seguindo https://cli.vuejs.org/guide/webpack.html
|
|
33
|
+
chainWebpack: config => {
|
|
34
|
+
// para não termos chunks
|
|
35
|
+
config.optimization.delete('splitChunks');
|
|
36
|
+
|
|
37
|
+
// fazemos assim em vez de usar o pages, que confunde o publicPath
|
|
38
|
+
config
|
|
39
|
+
.plugin('html')
|
|
40
|
+
.tap(args => {
|
|
41
|
+
args[0].template = 'src/dashboard.html' // Isto permite ler o ficheiro daqui em vez do default public/index.html
|
|
42
|
+
args[0].filename = 'dashboard.html' // Isto indica que o nome no url será dashboard.html em vez de index.html
|
|
43
|
+
args[0].inject = false // Não queremos inject automático pois o nosso src/dashboard.html sabe lidar com página isolado ou integrado no recordm. TODO: considerar permitir ainda shared vue e vuetify em vez de embebido (o actual). Ver NOTA abaixo.
|
|
44
|
+
args[0].minify = true
|
|
45
|
+
args[0].rmIntegrated = process.env.dash_dir || process.env.NODE_ENV === 'production' // Esta é a variável utilizada dentro do src/dashboard.html para saber qual o render a utilizar (isolado ou integrado). Deve ser integrado quer quando corrido via cob-cli test -d <dashboard> quer quando é feito o build.
|
|
46
|
+
return args
|
|
47
|
+
})
|
|
48
|
+
},
|
|
49
|
+
|
|
50
|
+
// NOTA: Código comentado porque abandonamos a opção de usar ficheiros partilhados. Se quisermos reverter isto é necessário:
|
|
51
|
+
// configureWebpack: {
|
|
52
|
+
// // deve ser igual ao que é usado no afterDeps do public/dashboard.html
|
|
53
|
+
// // Se for LOCAL temos de usar os locais
|
|
54
|
+
// externals: LOCAL ? {} : {
|
|
55
|
+
// vue: 'Vue',
|
|
56
|
+
// vuetify: 'Vuetify',
|
|
57
|
+
// axios: 'axios',
|
|
58
|
+
// marked: 'marked'
|
|
59
|
+
// },
|
|
60
|
+
// },
|
|
61
|
+
|
|
62
|
+
devServer: {
|
|
63
|
+
port: 8041,
|
|
64
|
+
before: function(app) {
|
|
65
|
+
app.get('/*', function(req, res, next) {
|
|
66
|
+
// Permite usar / ou /DASH_BOARD/ quando acedido directamente
|
|
67
|
+
if(req.url != "/" && req.url != '/'+DASH_DIR+'/') {
|
|
68
|
+
return next();
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
res.redirect(`/${DASH_DIR}/dashboard.html`);
|
|
72
|
+
});
|
|
73
|
+
},
|
|
74
|
+
proxy: {
|
|
75
|
+
[ "/recordm/localresource/" + DASH_DIR + "/dist"]: {
|
|
76
|
+
// Isto serve o propósito de rescrever os pedidos feitos via url final para o url local.
|
|
77
|
+
// Tem o defeito de apenas funcionar quando o devserver está a funcionar no 8041.
|
|
78
|
+
// Ou seja, não suporta mais que um vue-cli-service a funcionar ao mesmo tempo (apenas 1 estará a funcionar correctamente)
|
|
79
|
+
// TODO: idealmente seria feito sem ser via proxy (talvez via url-loader rewrite ??)
|
|
80
|
+
target: "http://localhost:8041",
|
|
81
|
+
pathRewrite: path => path.replace("/recordm/localresource/" + DASH_DIR + "/dist","/" + DASH_DIR ),
|
|
82
|
+
bypass: function(req, res, proxyOptions) {
|
|
83
|
+
if(req.path.indexOf(DASH_DIR) > 0) {
|
|
84
|
+
console.log("[CoB] Serving DASHBOARD: " + req.path)
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
},
|
|
88
|
+
"^/userm|^/recordm|^/es|^/logm|^/kibana": {
|
|
89
|
+
target: SERVER,
|
|
90
|
+
ws: true,
|
|
91
|
+
changeOrigin: true,
|
|
92
|
+
bypass: function(req, res, proxyOptions) {
|
|
93
|
+
console.log("[CoB] Serving " + SERVER + ": " + req.path)
|
|
94
|
+
}
|
|
95
|
+
},
|
|
96
|
+
"/get_user_lang|/security|/localresource|/recordm|/user|/reportm|/cas": {
|
|
97
|
+
target: SERVER,
|
|
98
|
+
ws: true,
|
|
99
|
+
changeOrigin: true,
|
|
100
|
+
pathRewrite: path => path.replace("/recordm/recordm", "/recordm")
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
}
|
|
@@ -5,8 +5,10 @@
|
|
|
5
5
|
.cob-app .instance-detail-container div.instance-container ol.fields > li > table > tbody > tr > td:nth-child(2) {
|
|
6
6
|
min-width: 160px;
|
|
7
7
|
}
|
|
8
|
+
/*
|
|
9
|
+
* Removido porque estraga, pelo menos, os $radio
|
|
8
10
|
.cob-app .instance-detail-container div.instance-container ol.fields li > table > tbody > tr > td:nth-child(3),
|
|
9
11
|
.cob-app .instance-detail-container div.instance-container ol.fields li > table > tbody > tr > td:nth-child(3) input {
|
|
10
12
|
max-width: 230px;
|
|
11
13
|
width: -webkit-fill-available;
|
|
12
|
-
}
|
|
14
|
+
} */
|
|
@@ -0,0 +1,360 @@
|
|
|
1
|
+
/* fallback */
|
|
2
|
+
@font-face {
|
|
3
|
+
font-family: 'Material Icons';
|
|
4
|
+
font-style: normal;
|
|
5
|
+
font-weight: 400;
|
|
6
|
+
src: url(https://fonts.gstatic.com/s/materialicons/v47/flUhRq6tzZclQEJ-Vdg-IuiaDsNcIhQ8tQ.woff2) format('woff2');
|
|
7
|
+
}
|
|
8
|
+
/* cyrillic-ext */
|
|
9
|
+
@font-face {
|
|
10
|
+
font-family: 'Roboto';
|
|
11
|
+
font-style: normal;
|
|
12
|
+
font-weight: 100;
|
|
13
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxFIzIXKMnyrYk.woff2) format('woff2');
|
|
14
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
15
|
+
}
|
|
16
|
+
/* cyrillic */
|
|
17
|
+
@font-face {
|
|
18
|
+
font-family: 'Roboto';
|
|
19
|
+
font-style: normal;
|
|
20
|
+
font-weight: 100;
|
|
21
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxMIzIXKMnyrYk.woff2) format('woff2');
|
|
22
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
23
|
+
}
|
|
24
|
+
/* greek-ext */
|
|
25
|
+
@font-face {
|
|
26
|
+
font-family: 'Roboto';
|
|
27
|
+
font-style: normal;
|
|
28
|
+
font-weight: 100;
|
|
29
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxEIzIXKMnyrYk.woff2) format('woff2');
|
|
30
|
+
unicode-range: U+1F00-1FFF;
|
|
31
|
+
}
|
|
32
|
+
/* greek */
|
|
33
|
+
@font-face {
|
|
34
|
+
font-family: 'Roboto';
|
|
35
|
+
font-style: normal;
|
|
36
|
+
font-weight: 100;
|
|
37
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxLIzIXKMnyrYk.woff2) format('woff2');
|
|
38
|
+
unicode-range: U+0370-03FF;
|
|
39
|
+
}
|
|
40
|
+
/* vietnamese */
|
|
41
|
+
@font-face {
|
|
42
|
+
font-family: 'Roboto';
|
|
43
|
+
font-style: normal;
|
|
44
|
+
font-weight: 100;
|
|
45
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxHIzIXKMnyrYk.woff2) format('woff2');
|
|
46
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
47
|
+
}
|
|
48
|
+
/* latin-ext */
|
|
49
|
+
@font-face {
|
|
50
|
+
font-family: 'Roboto';
|
|
51
|
+
font-style: normal;
|
|
52
|
+
font-weight: 100;
|
|
53
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxGIzIXKMnyrYk.woff2) format('woff2');
|
|
54
|
+
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;
|
|
55
|
+
}
|
|
56
|
+
/* latin */
|
|
57
|
+
@font-face {
|
|
58
|
+
font-family: 'Roboto';
|
|
59
|
+
font-style: normal;
|
|
60
|
+
font-weight: 100;
|
|
61
|
+
src: local('Roboto Thin'), local('Roboto-Thin'), url(https://fonts.gstatic.com/s/roboto/v19/KFOkCnqEu92Fr1MmgVxIIzIXKMny.woff2) format('woff2');
|
|
62
|
+
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;
|
|
63
|
+
}
|
|
64
|
+
/* cyrillic-ext */
|
|
65
|
+
@font-face {
|
|
66
|
+
font-family: 'Roboto';
|
|
67
|
+
font-style: normal;
|
|
68
|
+
font-weight: 300;
|
|
69
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCRc4AMP6lbBP.woff2) format('woff2');
|
|
70
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
71
|
+
}
|
|
72
|
+
/* cyrillic */
|
|
73
|
+
@font-face {
|
|
74
|
+
font-family: 'Roboto';
|
|
75
|
+
font-style: normal;
|
|
76
|
+
font-weight: 300;
|
|
77
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fABc4AMP6lbBP.woff2) format('woff2');
|
|
78
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
79
|
+
}
|
|
80
|
+
/* greek-ext */
|
|
81
|
+
@font-face {
|
|
82
|
+
font-family: 'Roboto';
|
|
83
|
+
font-style: normal;
|
|
84
|
+
font-weight: 300;
|
|
85
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCBc4AMP6lbBP.woff2) format('woff2');
|
|
86
|
+
unicode-range: U+1F00-1FFF;
|
|
87
|
+
}
|
|
88
|
+
/* greek */
|
|
89
|
+
@font-face {
|
|
90
|
+
font-family: 'Roboto';
|
|
91
|
+
font-style: normal;
|
|
92
|
+
font-weight: 300;
|
|
93
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fBxc4AMP6lbBP.woff2) format('woff2');
|
|
94
|
+
unicode-range: U+0370-03FF;
|
|
95
|
+
}
|
|
96
|
+
/* vietnamese */
|
|
97
|
+
@font-face {
|
|
98
|
+
font-family: 'Roboto';
|
|
99
|
+
font-style: normal;
|
|
100
|
+
font-weight: 300;
|
|
101
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fCxc4AMP6lbBP.woff2) format('woff2');
|
|
102
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
103
|
+
}
|
|
104
|
+
/* latin-ext */
|
|
105
|
+
@font-face {
|
|
106
|
+
font-family: 'Roboto';
|
|
107
|
+
font-style: normal;
|
|
108
|
+
font-weight: 300;
|
|
109
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fChc4AMP6lbBP.woff2) format('woff2');
|
|
110
|
+
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;
|
|
111
|
+
}
|
|
112
|
+
/* latin */
|
|
113
|
+
@font-face {
|
|
114
|
+
font-family: 'Roboto';
|
|
115
|
+
font-style: normal;
|
|
116
|
+
font-weight: 300;
|
|
117
|
+
src: local('Roboto Light'), local('Roboto-Light'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmSU5fBBc4AMP6lQ.woff2) format('woff2');
|
|
118
|
+
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;
|
|
119
|
+
}
|
|
120
|
+
/* cyrillic-ext */
|
|
121
|
+
@font-face {
|
|
122
|
+
font-family: 'Roboto';
|
|
123
|
+
font-style: normal;
|
|
124
|
+
font-weight: 400;
|
|
125
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu72xKKTU1Kvnz.woff2) format('woff2');
|
|
126
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
127
|
+
}
|
|
128
|
+
/* cyrillic */
|
|
129
|
+
@font-face {
|
|
130
|
+
font-family: 'Roboto';
|
|
131
|
+
font-style: normal;
|
|
132
|
+
font-weight: 400;
|
|
133
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu5mxKKTU1Kvnz.woff2) format('woff2');
|
|
134
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
135
|
+
}
|
|
136
|
+
/* greek-ext */
|
|
137
|
+
@font-face {
|
|
138
|
+
font-family: 'Roboto';
|
|
139
|
+
font-style: normal;
|
|
140
|
+
font-weight: 400;
|
|
141
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7mxKKTU1Kvnz.woff2) format('woff2');
|
|
142
|
+
unicode-range: U+1F00-1FFF;
|
|
143
|
+
}
|
|
144
|
+
/* greek */
|
|
145
|
+
@font-face {
|
|
146
|
+
font-family: 'Roboto';
|
|
147
|
+
font-style: normal;
|
|
148
|
+
font-weight: 400;
|
|
149
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4WxKKTU1Kvnz.woff2) format('woff2');
|
|
150
|
+
unicode-range: U+0370-03FF;
|
|
151
|
+
}
|
|
152
|
+
/* vietnamese */
|
|
153
|
+
@font-face {
|
|
154
|
+
font-family: 'Roboto';
|
|
155
|
+
font-style: normal;
|
|
156
|
+
font-weight: 400;
|
|
157
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7WxKKTU1Kvnz.woff2) format('woff2');
|
|
158
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
159
|
+
}
|
|
160
|
+
/* latin-ext */
|
|
161
|
+
@font-face {
|
|
162
|
+
font-family: 'Roboto';
|
|
163
|
+
font-style: normal;
|
|
164
|
+
font-weight: 400;
|
|
165
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu7GxKKTU1Kvnz.woff2) format('woff2');
|
|
166
|
+
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;
|
|
167
|
+
}
|
|
168
|
+
/* latin */
|
|
169
|
+
@font-face {
|
|
170
|
+
font-family: 'Roboto';
|
|
171
|
+
font-style: normal;
|
|
172
|
+
font-weight: 400;
|
|
173
|
+
src: local('Roboto'), local('Roboto-Regular'), url(https://fonts.gstatic.com/s/roboto/v19/KFOmCnqEu92Fr1Mu4mxKKTU1Kg.woff2) format('woff2');
|
|
174
|
+
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;
|
|
175
|
+
}
|
|
176
|
+
/* cyrillic-ext */
|
|
177
|
+
@font-face {
|
|
178
|
+
font-family: 'Roboto';
|
|
179
|
+
font-style: normal;
|
|
180
|
+
font-weight: 500;
|
|
181
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCRc4AMP6lbBP.woff2) format('woff2');
|
|
182
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
183
|
+
}
|
|
184
|
+
/* cyrillic */
|
|
185
|
+
@font-face {
|
|
186
|
+
font-family: 'Roboto';
|
|
187
|
+
font-style: normal;
|
|
188
|
+
font-weight: 500;
|
|
189
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fABc4AMP6lbBP.woff2) format('woff2');
|
|
190
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
191
|
+
}
|
|
192
|
+
/* greek-ext */
|
|
193
|
+
@font-face {
|
|
194
|
+
font-family: 'Roboto';
|
|
195
|
+
font-style: normal;
|
|
196
|
+
font-weight: 500;
|
|
197
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCBc4AMP6lbBP.woff2) format('woff2');
|
|
198
|
+
unicode-range: U+1F00-1FFF;
|
|
199
|
+
}
|
|
200
|
+
/* greek */
|
|
201
|
+
@font-face {
|
|
202
|
+
font-family: 'Roboto';
|
|
203
|
+
font-style: normal;
|
|
204
|
+
font-weight: 500;
|
|
205
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fBxc4AMP6lbBP.woff2) format('woff2');
|
|
206
|
+
unicode-range: U+0370-03FF;
|
|
207
|
+
}
|
|
208
|
+
/* vietnamese */
|
|
209
|
+
@font-face {
|
|
210
|
+
font-family: 'Roboto';
|
|
211
|
+
font-style: normal;
|
|
212
|
+
font-weight: 500;
|
|
213
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fCxc4AMP6lbBP.woff2) format('woff2');
|
|
214
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
215
|
+
}
|
|
216
|
+
/* latin-ext */
|
|
217
|
+
@font-face {
|
|
218
|
+
font-family: 'Roboto';
|
|
219
|
+
font-style: normal;
|
|
220
|
+
font-weight: 500;
|
|
221
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fChc4AMP6lbBP.woff2) format('woff2');
|
|
222
|
+
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;
|
|
223
|
+
}
|
|
224
|
+
/* latin */
|
|
225
|
+
@font-face {
|
|
226
|
+
font-family: 'Roboto';
|
|
227
|
+
font-style: normal;
|
|
228
|
+
font-weight: 500;
|
|
229
|
+
src: local('Roboto Medium'), local('Roboto-Medium'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmEU9fBBc4AMP6lQ.woff2) format('woff2');
|
|
230
|
+
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;
|
|
231
|
+
}
|
|
232
|
+
/* cyrillic-ext */
|
|
233
|
+
@font-face {
|
|
234
|
+
font-family: 'Roboto';
|
|
235
|
+
font-style: normal;
|
|
236
|
+
font-weight: 700;
|
|
237
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCRc4AMP6lbBP.woff2) format('woff2');
|
|
238
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
239
|
+
}
|
|
240
|
+
/* cyrillic */
|
|
241
|
+
@font-face {
|
|
242
|
+
font-family: 'Roboto';
|
|
243
|
+
font-style: normal;
|
|
244
|
+
font-weight: 700;
|
|
245
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfABc4AMP6lbBP.woff2) format('woff2');
|
|
246
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
247
|
+
}
|
|
248
|
+
/* greek-ext */
|
|
249
|
+
@font-face {
|
|
250
|
+
font-family: 'Roboto';
|
|
251
|
+
font-style: normal;
|
|
252
|
+
font-weight: 700;
|
|
253
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCBc4AMP6lbBP.woff2) format('woff2');
|
|
254
|
+
unicode-range: U+1F00-1FFF;
|
|
255
|
+
}
|
|
256
|
+
/* greek */
|
|
257
|
+
@font-face {
|
|
258
|
+
font-family: 'Roboto';
|
|
259
|
+
font-style: normal;
|
|
260
|
+
font-weight: 700;
|
|
261
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfBxc4AMP6lbBP.woff2) format('woff2');
|
|
262
|
+
unicode-range: U+0370-03FF;
|
|
263
|
+
}
|
|
264
|
+
/* vietnamese */
|
|
265
|
+
@font-face {
|
|
266
|
+
font-family: 'Roboto';
|
|
267
|
+
font-style: normal;
|
|
268
|
+
font-weight: 700;
|
|
269
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfCxc4AMP6lbBP.woff2) format('woff2');
|
|
270
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
271
|
+
}
|
|
272
|
+
/* latin-ext */
|
|
273
|
+
@font-face {
|
|
274
|
+
font-family: 'Roboto';
|
|
275
|
+
font-style: normal;
|
|
276
|
+
font-weight: 700;
|
|
277
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfChc4AMP6lbBP.woff2) format('woff2');
|
|
278
|
+
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;
|
|
279
|
+
}
|
|
280
|
+
/* latin */
|
|
281
|
+
@font-face {
|
|
282
|
+
font-family: 'Roboto';
|
|
283
|
+
font-style: normal;
|
|
284
|
+
font-weight: 700;
|
|
285
|
+
src: local('Roboto Bold'), local('Roboto-Bold'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmWUlfBBc4AMP6lQ.woff2) format('woff2');
|
|
286
|
+
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;
|
|
287
|
+
}
|
|
288
|
+
/* cyrillic-ext */
|
|
289
|
+
@font-face {
|
|
290
|
+
font-family: 'Roboto';
|
|
291
|
+
font-style: normal;
|
|
292
|
+
font-weight: 900;
|
|
293
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCRc4AMP6lbBP.woff2) format('woff2');
|
|
294
|
+
unicode-range: U+0460-052F, U+1C80-1C88, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
|
|
295
|
+
}
|
|
296
|
+
/* cyrillic */
|
|
297
|
+
@font-face {
|
|
298
|
+
font-family: 'Roboto';
|
|
299
|
+
font-style: normal;
|
|
300
|
+
font-weight: 900;
|
|
301
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfABc4AMP6lbBP.woff2) format('woff2');
|
|
302
|
+
unicode-range: U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
|
|
303
|
+
}
|
|
304
|
+
/* greek-ext */
|
|
305
|
+
@font-face {
|
|
306
|
+
font-family: 'Roboto';
|
|
307
|
+
font-style: normal;
|
|
308
|
+
font-weight: 900;
|
|
309
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCBc4AMP6lbBP.woff2) format('woff2');
|
|
310
|
+
unicode-range: U+1F00-1FFF;
|
|
311
|
+
}
|
|
312
|
+
/* greek */
|
|
313
|
+
@font-face {
|
|
314
|
+
font-family: 'Roboto';
|
|
315
|
+
font-style: normal;
|
|
316
|
+
font-weight: 900;
|
|
317
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfBxc4AMP6lbBP.woff2) format('woff2');
|
|
318
|
+
unicode-range: U+0370-03FF;
|
|
319
|
+
}
|
|
320
|
+
/* vietnamese */
|
|
321
|
+
@font-face {
|
|
322
|
+
font-family: 'Roboto';
|
|
323
|
+
font-style: normal;
|
|
324
|
+
font-weight: 900;
|
|
325
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfCxc4AMP6lbBP.woff2) format('woff2');
|
|
326
|
+
unicode-range: U+0102-0103, U+0110-0111, U+1EA0-1EF9, U+20AB;
|
|
327
|
+
}
|
|
328
|
+
/* latin-ext */
|
|
329
|
+
@font-face {
|
|
330
|
+
font-family: 'Roboto';
|
|
331
|
+
font-style: normal;
|
|
332
|
+
font-weight: 900;
|
|
333
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfChc4AMP6lbBP.woff2) format('woff2');
|
|
334
|
+
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;
|
|
335
|
+
}
|
|
336
|
+
/* latin */
|
|
337
|
+
@font-face {
|
|
338
|
+
font-family: 'Roboto';
|
|
339
|
+
font-style: normal;
|
|
340
|
+
font-weight: 900;
|
|
341
|
+
src: local('Roboto Black'), local('Roboto-Black'), url(https://fonts.gstatic.com/s/roboto/v19/KFOlCnqEu92Fr1MmYUtfBBc4AMP6lQ.woff2) format('woff2');
|
|
342
|
+
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;
|
|
343
|
+
}
|
|
344
|
+
|
|
345
|
+
.material-icons {
|
|
346
|
+
font-family: 'Material Icons';
|
|
347
|
+
font-weight: normal;
|
|
348
|
+
font-style: normal;
|
|
349
|
+
font-size: 24px;
|
|
350
|
+
line-height: 1;
|
|
351
|
+
letter-spacing: normal;
|
|
352
|
+
text-transform: none;
|
|
353
|
+
display: inline-block;
|
|
354
|
+
white-space: nowrap;
|
|
355
|
+
word-wrap: normal;
|
|
356
|
+
direction: ltr;
|
|
357
|
+
-moz-font-feature-settings: 'liga';
|
|
358
|
+
-moz-osx-font-smoothing: grayscale;
|
|
359
|
+
}
|
|
360
|
+
|