@abi-software/simulationvuer 3.0.12 → 3.0.14
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/README.md +11 -10
- package/dist/index.html +10 -6
- package/dist/simulationvuer.js +11793 -11663
- package/dist/simulationvuer.umd.cjs +103 -103
- package/dist/style.css +1 -1
- package/package.json +19 -7
- package/public/index.html +10 -6
- package/src/App.vue +161 -46
- package/src/assets/_variables.scss +13 -11
- package/src/assets/styles.scss +2 -2
- package/src/components/SimulationVuer.vue +228 -113
- package/src/components/SimulationVuerInput.vue +2 -1
- package/src/components/common.js +19 -8
- package/src/components/index.js +2 -4
- package/src/components/json.js +144 -73
- package/src/main.js +2 -1
- package/vite.config.js +11 -6
- package/vuese-generator.js +77 -80
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@abi-software/simulationvuer",
|
|
3
|
-
"version": "3.0.
|
|
3
|
+
"version": "3.0.14",
|
|
4
4
|
"private": false,
|
|
5
5
|
"scripts": {
|
|
6
6
|
"serve": "vite serve --host --force",
|
|
@@ -8,6 +8,9 @@
|
|
|
8
8
|
"build-app": "vite build --mode app",
|
|
9
9
|
"vuese-gen": "node vuese-generator.js",
|
|
10
10
|
"vuese-watch": "node vuese-generator.js watch",
|
|
11
|
+
"format": "prettier --write .",
|
|
12
|
+
"format:check": "prettier --check .",
|
|
13
|
+
"lint": "eslint . --ext .js,.vue",
|
|
11
14
|
"release:beta": "npm version prerelease --preid=beta; npm publish --tag beta",
|
|
12
15
|
"release:minor": "npm version minor; npm publish",
|
|
13
16
|
"release:patch": "npm version patch; npm publish",
|
|
@@ -18,7 +21,7 @@
|
|
|
18
21
|
},
|
|
19
22
|
"dependencies": {
|
|
20
23
|
"@abi-software/plotvuer": "1.0.7",
|
|
21
|
-
"@opencor/opencor": "^0.
|
|
24
|
+
"@opencor/opencor": "^0.20260314.0",
|
|
22
25
|
"element-plus": "2.8.4",
|
|
23
26
|
"jsonschema": "^1.4.0",
|
|
24
27
|
"mathjs": "^15.1.0",
|
|
@@ -26,6 +29,7 @@
|
|
|
26
29
|
"vue": "^3.4.21"
|
|
27
30
|
},
|
|
28
31
|
"devDependencies": {
|
|
32
|
+
"@babel/eslint-parser": "^7.28.6",
|
|
29
33
|
"@vitejs/plugin-vue": "^5.0.3",
|
|
30
34
|
"@vuese/markdown-render": "^2.11.3",
|
|
31
35
|
"babel-eslint": "^10.1.0",
|
|
@@ -34,7 +38,10 @@
|
|
|
34
38
|
"chokidar": "^3.6.0",
|
|
35
39
|
"concurrently": "^8.2.2",
|
|
36
40
|
"eslint": "^8.56.0",
|
|
41
|
+
"eslint-config-prettier": "^9.0.0",
|
|
42
|
+
"eslint-plugin-prettier": "^5.0.0",
|
|
37
43
|
"eslint-plugin-vue": "^9.20.1",
|
|
44
|
+
"prettier": "^3.0.0",
|
|
38
45
|
"sass": "^1.70.0",
|
|
39
46
|
"vite": "^5.0.12",
|
|
40
47
|
"vitepress": "^1.0.0-rc.45",
|
|
@@ -44,15 +51,20 @@
|
|
|
44
51
|
},
|
|
45
52
|
"eslintConfig": {
|
|
46
53
|
"root": true,
|
|
54
|
+
"plugins": [
|
|
55
|
+
"prettier"
|
|
56
|
+
],
|
|
57
|
+
"extends": [
|
|
58
|
+
"eslint:recommended",
|
|
59
|
+
"plugin:prettier/recommended",
|
|
60
|
+
"plugin:vue/essential"
|
|
61
|
+
],
|
|
47
62
|
"env": {
|
|
48
63
|
"node": true
|
|
49
64
|
},
|
|
50
|
-
"extends": [
|
|
51
|
-
"plugin:vue/essential",
|
|
52
|
-
"eslint:recommended"
|
|
53
|
-
],
|
|
54
65
|
"parserOptions": {
|
|
55
|
-
"parser": "babel-
|
|
66
|
+
"parser": "@babel/eslint-parser",
|
|
67
|
+
"requireConfigFile": false
|
|
56
68
|
},
|
|
57
69
|
"rules": {}
|
|
58
70
|
},
|
package/public/index.html
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
|
-
<!
|
|
1
|
+
<!doctype html>
|
|
2
2
|
<html lang="en">
|
|
3
3
|
<head>
|
|
4
|
-
<meta charset="utf-8"
|
|
5
|
-
<meta http-equiv="X-UA-Compatible" content="IE=edge"
|
|
6
|
-
<meta name="viewport" content="width=device-width,initial-scale=1.0"
|
|
7
|
-
<link rel="icon" href="<%= BASE_URL %>favicon.ico"
|
|
4
|
+
<meta charset="utf-8" />
|
|
5
|
+
<meta http-equiv="X-UA-Compatible" content="IE=edge" />
|
|
6
|
+
<meta name="viewport" content="width=device-width,initial-scale=1.0" />
|
|
7
|
+
<link rel="icon" href="<%= BASE_URL %>favicon.ico" />
|
|
8
8
|
<title><%= htmlWebpackPlugin.options.title %></title>
|
|
9
9
|
</head>
|
|
10
10
|
<body>
|
|
11
11
|
<noscript>
|
|
12
|
-
<strong
|
|
12
|
+
<strong
|
|
13
|
+
>We're sorry but <%= htmlWebpackPlugin.options.title %> doesn't work
|
|
14
|
+
properly without JavaScript enabled. Please enable it to
|
|
15
|
+
continue.</strong
|
|
16
|
+
>
|
|
13
17
|
</noscript>
|
|
14
18
|
<div id="app"></div>
|
|
15
19
|
<!-- built files will be auto injected -->
|
package/src/App.vue
CHANGED
|
@@ -5,29 +5,57 @@
|
|
|
5
5
|
<div v-if="datasetIds.length !== 0">
|
|
6
6
|
<h3>Dataset IDs (run on o²S²PARC):</h3>
|
|
7
7
|
<el-radio-group v-model="activeResource" size="small">
|
|
8
|
-
<el-radio-button
|
|
8
|
+
<el-radio-button
|
|
9
|
+
:class="className(datasetId.id)"
|
|
10
|
+
v-for="datasetId in datasetIds"
|
|
11
|
+
v-bind:key="datasetId.id"
|
|
12
|
+
:label="datasetId.label"
|
|
13
|
+
:value="datasetId.id"
|
|
14
|
+
/>
|
|
9
15
|
</el-radio-group>
|
|
10
16
|
</div>
|
|
11
17
|
<div v-if="datasetUrls.length !== 0">
|
|
12
18
|
<h3>Dataset URLs (run in the browser):</h3>
|
|
13
19
|
<el-radio-group v-model="activeResource" size="small">
|
|
14
|
-
<el-radio-button
|
|
20
|
+
<el-radio-button
|
|
21
|
+
:class="className(datasetUrl.id)"
|
|
22
|
+
v-for="datasetUrl in datasetUrls"
|
|
23
|
+
v-bind:key="datasetUrl.id"
|
|
24
|
+
:label="datasetUrl.label"
|
|
25
|
+
:value="datasetUrl.id"
|
|
26
|
+
/>
|
|
15
27
|
</el-radio-group>
|
|
16
28
|
</div>
|
|
17
29
|
<div v-if="pmrPaths.length !== 0">
|
|
18
30
|
<h3>PMR paths (run in the browser):</h3>
|
|
19
31
|
<el-radio-group v-model="activeResource" size="small">
|
|
20
|
-
<el-radio-button
|
|
32
|
+
<el-radio-button
|
|
33
|
+
:class="className(pmrPath.id)"
|
|
34
|
+
v-for="pmrPath in pmrPaths"
|
|
35
|
+
v-bind:key="pmrPath.id"
|
|
36
|
+
:label="pmrPath.label"
|
|
37
|
+
:value="pmrPath.id"
|
|
38
|
+
/>
|
|
21
39
|
</el-radio-group>
|
|
22
40
|
</div>
|
|
23
|
-
<div
|
|
41
|
+
<div
|
|
42
|
+
ref="dropArea"
|
|
43
|
+
class="drop-area"
|
|
44
|
+
@dragenter.prevent="onDragEnter"
|
|
45
|
+
@dragover.prevent
|
|
46
|
+
@drop.prevent="onDrop"
|
|
47
|
+
@dragleave.prevent="onDragLeave"
|
|
48
|
+
>
|
|
24
49
|
You can drag and drop a COMBINE archive here.
|
|
25
50
|
</div>
|
|
26
51
|
<el-dialog v-model="dragAndDropWarningVisible" width="352">
|
|
27
52
|
<span>Please only drag and drop one COMBINE archive.</span>
|
|
28
53
|
<template #footer>
|
|
29
54
|
<div class="dialog-footer">
|
|
30
|
-
<el-button
|
|
55
|
+
<el-button
|
|
56
|
+
type="primary"
|
|
57
|
+
@click="dragAndDropWarningVisible = false"
|
|
58
|
+
>
|
|
31
59
|
OK
|
|
32
60
|
</el-button>
|
|
33
61
|
</div>
|
|
@@ -36,19 +64,42 @@
|
|
|
36
64
|
</div>
|
|
37
65
|
<hr />
|
|
38
66
|
<div v-for="resource in resources()" v-bind:key="resource.id">
|
|
39
|
-
<div
|
|
67
|
+
<div
|
|
68
|
+
v-if="isResourceInitialised(resource.id)"
|
|
69
|
+
v-show="resource.id === activeResource"
|
|
70
|
+
>
|
|
40
71
|
<div v-if="typeof resource.id === 'number'">
|
|
41
72
|
<span>
|
|
42
|
-
<strong
|
|
73
|
+
<strong
|
|
74
|
+
>Dataset
|
|
75
|
+
<a
|
|
76
|
+
:href="datasetUrl(resource.id)"
|
|
77
|
+
target="_blank"
|
|
78
|
+
rel="noopener noreferrer"
|
|
79
|
+
>{{ resource.id }}</a
|
|
80
|
+
>:</strong
|
|
81
|
+
>
|
|
82
|
+
{{ resource.description }}
|
|
43
83
|
</span>
|
|
44
84
|
<hr />
|
|
45
85
|
</div>
|
|
46
|
-
<SimulationVuer
|
|
86
|
+
<SimulationVuer
|
|
87
|
+
:apiLocation="apiLocation"
|
|
88
|
+
:id="resource.id"
|
|
89
|
+
style="height: 640px"
|
|
90
|
+
/>
|
|
47
91
|
</div>
|
|
48
92
|
</div>
|
|
49
93
|
<div v-if="activeResource === -1">
|
|
50
|
-
<div
|
|
51
|
-
|
|
94
|
+
<div
|
|
95
|
+
v-for="combineArchive in combineArchives"
|
|
96
|
+
v-bind:key="combineArchive"
|
|
97
|
+
>
|
|
98
|
+
<SimulationVuer
|
|
99
|
+
:apiLocation="apiLocation"
|
|
100
|
+
:id="combineArchive"
|
|
101
|
+
style="height: 640px"
|
|
102
|
+
/>
|
|
52
103
|
</div>
|
|
53
104
|
</div>
|
|
54
105
|
<hr />
|
|
@@ -56,9 +107,10 @@
|
|
|
56
107
|
</template>
|
|
57
108
|
|
|
58
109
|
<script>
|
|
59
|
-
import SimulationVuer from "./components/SimulationVuer.vue";
|
|
60
110
|
import { ElRadioButton, ElRadioGroup } from "element-plus";
|
|
61
111
|
|
|
112
|
+
import SimulationVuer from "./components/SimulationVuer.vue";
|
|
113
|
+
|
|
62
114
|
export default {
|
|
63
115
|
name: "App",
|
|
64
116
|
components: {
|
|
@@ -66,7 +118,7 @@ export default {
|
|
|
66
118
|
ElRadioButton,
|
|
67
119
|
ElRadioGroup,
|
|
68
120
|
},
|
|
69
|
-
data:
|
|
121
|
+
data: () => {
|
|
70
122
|
return {
|
|
71
123
|
apiLocation: import.meta.env.VITE_API_LOCATION,
|
|
72
124
|
dropAreaCounter: 0,
|
|
@@ -74,27 +126,92 @@ export default {
|
|
|
74
126
|
combineArchives: [],
|
|
75
127
|
datasetIds: [
|
|
76
128
|
{ id: 0, label: "Invalid", description: "Non-simulation dataset" },
|
|
77
|
-
{
|
|
78
|
-
|
|
129
|
+
{
|
|
130
|
+
id: 135,
|
|
131
|
+
label: "135",
|
|
132
|
+
description:
|
|
133
|
+
"Computational analysis of the human sinus node action potential - Model development and effects of mutations",
|
|
134
|
+
},
|
|
135
|
+
{
|
|
136
|
+
id: 157,
|
|
137
|
+
label: "157",
|
|
138
|
+
description: "Fabbri-based composite SAN model",
|
|
139
|
+
},
|
|
79
140
|
{ id: 308, label: "308", description: "Kember Cardiac Nerve Model" },
|
|
80
|
-
{
|
|
81
|
-
|
|
141
|
+
{
|
|
142
|
+
id: 318,
|
|
143
|
+
label: "318",
|
|
144
|
+
description: "Multi-scale rabbit cardiac electrophysiology models",
|
|
145
|
+
},
|
|
146
|
+
{
|
|
147
|
+
id: 320,
|
|
148
|
+
label: "320",
|
|
149
|
+
description: "Multi-scale human cardiac electrophysiology models",
|
|
150
|
+
},
|
|
82
151
|
],
|
|
83
152
|
datasetUrls: [
|
|
84
|
-
{
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
{
|
|
153
|
+
{
|
|
154
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/invalid.omex",
|
|
155
|
+
label: "Invalid",
|
|
156
|
+
description: "COMBINE archive",
|
|
157
|
+
},
|
|
158
|
+
{
|
|
159
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/135.omex",
|
|
160
|
+
label: "135",
|
|
161
|
+
description: "COMBINE archive",
|
|
162
|
+
},
|
|
163
|
+
{
|
|
164
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/157.omex",
|
|
165
|
+
label: "157",
|
|
166
|
+
description: "COMBINE archive",
|
|
167
|
+
},
|
|
168
|
+
{
|
|
169
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/lorenz.omex",
|
|
170
|
+
label: "Lorenz",
|
|
171
|
+
description: "COMBINE archive",
|
|
172
|
+
},
|
|
173
|
+
{
|
|
174
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/tt04_with_names.omex",
|
|
175
|
+
label: "TT04",
|
|
176
|
+
description: "COMBINE archive",
|
|
177
|
+
},
|
|
178
|
+
{
|
|
179
|
+
id: "https://raw.githubusercontent.com/opencor/webapp/refs/heads/main/tests/models/ui/cvs.omex",
|
|
180
|
+
label: "CVS",
|
|
181
|
+
description: "COMBINE archive",
|
|
182
|
+
},
|
|
90
183
|
],
|
|
91
184
|
pmrPaths: [
|
|
92
|
-
{
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
{
|
|
185
|
+
{
|
|
186
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/invalid.omex",
|
|
187
|
+
label: "Invalid",
|
|
188
|
+
description: "COMBINE archive from PMR",
|
|
189
|
+
},
|
|
190
|
+
{
|
|
191
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/135.omex",
|
|
192
|
+
label: "135",
|
|
193
|
+
description: "COMBINE archive from PMR",
|
|
194
|
+
},
|
|
195
|
+
{
|
|
196
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/157.omex",
|
|
197
|
+
label: "157",
|
|
198
|
+
description: "COMBINE archive from PMR",
|
|
199
|
+
},
|
|
200
|
+
{
|
|
201
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/lorenz.omex",
|
|
202
|
+
label: "Lorenz",
|
|
203
|
+
description: "COMBINE archive from PMR",
|
|
204
|
+
},
|
|
205
|
+
{
|
|
206
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/tt04.omex",
|
|
207
|
+
label: "TT04",
|
|
208
|
+
description: "COMBINE archive from PMR",
|
|
209
|
+
},
|
|
210
|
+
{
|
|
211
|
+
id: "workspace/b7c/rawfile/e0ae8d2d56aaaa091e23e1ee7e84cacbda1dfb6b/cvs.omex",
|
|
212
|
+
label: "CVS",
|
|
213
|
+
description: "COMBINE archive from PMR",
|
|
214
|
+
},
|
|
98
215
|
],
|
|
99
216
|
activeResource: 0,
|
|
100
217
|
initialisedResources: [],
|
|
@@ -102,11 +219,11 @@ export default {
|
|
|
102
219
|
},
|
|
103
220
|
methods: {
|
|
104
221
|
className(id) {
|
|
105
|
-
return (
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
222
|
+
return (this.datasetIds.length !== 0 && id === this.datasetIds[0].id) ||
|
|
223
|
+
(this.datasetUrls.length !== 0 && id === this.datasetUrls[0].id) ||
|
|
224
|
+
(this.pmrPaths.length !== 0 && id === this.pmrPaths[0].id)
|
|
225
|
+
? "first-resource"
|
|
226
|
+
: "not-first-resource";
|
|
110
227
|
},
|
|
111
228
|
resources() {
|
|
112
229
|
return this.datasetIds.concat(this.datasetUrls).concat(this.pmrPaths);
|
|
@@ -129,34 +246,32 @@ export default {
|
|
|
129
246
|
this.dropAreaCounter += 1;
|
|
130
247
|
|
|
131
248
|
if (this.dropAreaCounter === 1) {
|
|
132
|
-
this.$refs.dropArea.classList.add(
|
|
249
|
+
this.$refs.dropArea.classList.add("drop-area-active");
|
|
133
250
|
}
|
|
134
251
|
},
|
|
135
252
|
onDrop(event) {
|
|
136
253
|
this.dropAreaCounter = 0;
|
|
137
254
|
|
|
138
|
-
this.$refs.dropArea.classList.remove(
|
|
255
|
+
this.$refs.dropArea.classList.remove("drop-area-active");
|
|
139
256
|
|
|
140
257
|
const files = event.dataTransfer.files;
|
|
141
258
|
|
|
142
259
|
if (files.length !== 1) {
|
|
143
260
|
this.dragAndDropWarningVisible = true;
|
|
144
261
|
} else {
|
|
145
|
-
files[0]
|
|
146
|
-
.
|
|
147
|
-
.
|
|
148
|
-
|
|
149
|
-
this.combineArchives = [new Uint8Array(arrayBuffer)];
|
|
150
|
-
})
|
|
262
|
+
files[0].arrayBuffer().then((arrayBuffer) => {
|
|
263
|
+
this.activeResource = -1;
|
|
264
|
+
this.combineArchives = [new Uint8Array(arrayBuffer)];
|
|
265
|
+
});
|
|
151
266
|
}
|
|
152
267
|
},
|
|
153
268
|
onDragLeave() {
|
|
154
269
|
this.dropAreaCounter -= 1;
|
|
155
270
|
|
|
156
271
|
if (this.dropAreaCounter === 0) {
|
|
157
|
-
this.$refs.dropArea.classList.remove(
|
|
272
|
+
this.$refs.dropArea.classList.remove("drop-area-active");
|
|
158
273
|
}
|
|
159
|
-
}
|
|
274
|
+
},
|
|
160
275
|
},
|
|
161
276
|
};
|
|
162
277
|
</script>
|
|
@@ -202,15 +317,15 @@ export default {
|
|
|
202
317
|
color: #8300bf;
|
|
203
318
|
}
|
|
204
319
|
|
|
205
|
-
.first-resource
|
|
320
|
+
.first-resource > .el-radio-button__inner {
|
|
206
321
|
border-left: 1px solid #8300bf !important;
|
|
207
322
|
}
|
|
208
323
|
|
|
209
|
-
.not-first-resource
|
|
324
|
+
.not-first-resource > .el-radio-button__inner {
|
|
210
325
|
border-left: 0 !important;
|
|
211
326
|
}
|
|
212
327
|
|
|
213
|
-
.el-radio-button__original-radio:checked
|
|
328
|
+
.el-radio-button__original-radio:checked + .el-radio-button__inner {
|
|
214
329
|
background-color: #8300bf !important;
|
|
215
330
|
border-color: #8300bf !important;
|
|
216
331
|
color: white;
|
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
// Primary colors
|
|
2
|
-
$purple: #
|
|
3
|
-
$darkBlue: #
|
|
2
|
+
$purple: #8300bf;
|
|
3
|
+
$darkBlue: #24245b;
|
|
4
4
|
$grey: #303133;
|
|
5
5
|
|
|
6
6
|
// Secondary colors
|
|
7
|
-
$lightPurple: #
|
|
8
|
-
$blue: #
|
|
7
|
+
$lightPurple: #bc00fc;
|
|
8
|
+
$blue: #0026ff;
|
|
9
9
|
|
|
10
10
|
// Status colors
|
|
11
11
|
$success: #5e9f69;
|
|
12
|
-
$warning: #
|
|
12
|
+
$warning: #ff8400;
|
|
13
13
|
$danger: #b51d09;
|
|
14
14
|
|
|
15
15
|
// Text colors
|
|
@@ -18,12 +18,12 @@ $mediumGrey: #606266;
|
|
|
18
18
|
$lightGrey: #909399;
|
|
19
19
|
|
|
20
20
|
// Line colors
|
|
21
|
-
$lineColor1: #
|
|
22
|
-
$lineColor2: #
|
|
21
|
+
$lineColor1: #dcdfe6;
|
|
22
|
+
$lineColor2: #e4e7ed;
|
|
23
23
|
|
|
24
24
|
// Background colors
|
|
25
|
-
$background: #
|
|
26
|
-
$cochlear: #
|
|
25
|
+
$background: #f5f7fa;
|
|
26
|
+
$cochlear: #ffffff;
|
|
27
27
|
|
|
28
28
|
//Search box colors
|
|
29
29
|
$darkGrey: #606266;
|
|
@@ -33,8 +33,10 @@ $app-secondary-color: $darkBlue;
|
|
|
33
33
|
$text-color: $grey;
|
|
34
34
|
$input-text: $grey;
|
|
35
35
|
|
|
36
|
-
$system-font:
|
|
37
|
-
|
|
36
|
+
$system-font:
|
|
37
|
+
-apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Oxygen-Sans, Ubuntu,
|
|
38
|
+
Cantarell, "Helvetica Neue", sans-serif !important;
|
|
39
|
+
$font-family: "Asap", sans-serif;
|
|
38
40
|
|
|
39
41
|
// Viewport Sizes
|
|
40
42
|
$viewport-sm: 20rem;
|
package/src/assets/styles.scss
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
@import url(
|
|
1
|
+
@import url("https://fonts.googleapis.com/css?family=Asap:400,400i,500,600,700&display=swap");
|
|
2
2
|
|
|
3
|
-
@import
|
|
3
|
+
@import "_variables";
|
|
4
4
|
|
|
5
5
|
/* icon font path, required */
|
|
6
6
|
$--color-primary: $app-primary-color !default;
|