Merge branch 'master' into 'production'
Production testing cookies for the static.sika.sik.party login See merge request sahkoinsinoorikilta/vtmk/web2.0-frontend!8
This commit is contained in:
@@ -70,6 +70,7 @@
|
|||||||
"import/no-extraneous-dependencies": "off",
|
"import/no-extraneous-dependencies": "off",
|
||||||
"import/newline-after-import": "off",
|
"import/newline-after-import": "off",
|
||||||
"import/prefer-default-export": "off",
|
"import/prefer-default-export": "off",
|
||||||
|
"indent": ["error", 2],
|
||||||
"jsx-a11y/anchor-is-valid": "off",
|
"jsx-a11y/anchor-is-valid": "off",
|
||||||
"jsx-a11y/alt-text": "off",
|
"jsx-a11y/alt-text": "off",
|
||||||
"jsx-a11y/click-events-have-key-events": "off",
|
"jsx-a11y/click-events-have-key-events": "off",
|
||||||
|
|||||||
+28
-16
@@ -1,56 +1,68 @@
|
|||||||
stages:
|
stages:
|
||||||
- setup
|
- setup
|
||||||
- qa
|
- lint
|
||||||
|
- build
|
||||||
- test
|
- test
|
||||||
- publish
|
- publish
|
||||||
- deploy
|
- deploy
|
||||||
|
|
||||||
cache:
|
install:
|
||||||
paths:
|
|
||||||
- node_modules/
|
|
||||||
- dist/
|
|
||||||
|
|
||||||
setup:
|
|
||||||
image: node:12
|
image: node:12
|
||||||
stage: setup
|
stage: setup
|
||||||
script:
|
script:
|
||||||
- npm ci
|
- npm ci
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- node_modules
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
|
|
||||||
es:lint:
|
es:lint:
|
||||||
image: node:12
|
image: node:12
|
||||||
stage: qa
|
needs: ["install"]
|
||||||
|
stage: lint
|
||||||
script:
|
script:
|
||||||
- npm run lint:es
|
- npm run lint:es
|
||||||
|
|
||||||
sass:lint:
|
sass:lint:
|
||||||
image: node:12
|
image: node:12
|
||||||
stage: qa
|
needs: ["install"]
|
||||||
|
stage: lint
|
||||||
script:
|
script:
|
||||||
- npm run lint:sass
|
- npm run lint:sass
|
||||||
|
|
||||||
build:
|
|
||||||
image: node:12
|
|
||||||
stage: qa
|
|
||||||
script:
|
|
||||||
- API_URL=http://web.sik.party:8000/api npm run build
|
|
||||||
|
|
||||||
# test:unit:
|
# test:unit:
|
||||||
# image: node:12
|
# image: node:12
|
||||||
# stage: test
|
# stage: test
|
||||||
# script:
|
# script:
|
||||||
# - npm run test:unit
|
# - npm run test:unit
|
||||||
|
|
||||||
|
build:
|
||||||
|
image: node:12
|
||||||
|
needs: ["install"]
|
||||||
|
stage: build
|
||||||
|
script:
|
||||||
|
- API_URL=http://web.sik.party:8000/api npm run build
|
||||||
|
dependencies:
|
||||||
|
- install
|
||||||
|
artifacts:
|
||||||
|
paths:
|
||||||
|
- dist
|
||||||
|
expire_in: 1 week
|
||||||
|
|
||||||
test:e2e:
|
test:e2e:
|
||||||
image: circleci/node:12-browsers
|
image: circleci/node:12-browsers
|
||||||
|
needs: ["install", "build"]
|
||||||
stage: test
|
stage: test
|
||||||
only:
|
only:
|
||||||
- master
|
- master
|
||||||
script:
|
script:
|
||||||
- API_URL=http://web.sik.party:8000/api npm run test:e2e
|
- npm run test:e2e
|
||||||
|
|
||||||
publish:dev:
|
publish:dev:
|
||||||
stage: publish
|
stage: publish
|
||||||
image: docker:stable
|
image: docker:stable
|
||||||
|
needs: ["build", "test:e2e", "es:lint", "sass:lint"]
|
||||||
services:
|
services:
|
||||||
- docker:stable-dind
|
- docker:stable-dind
|
||||||
only:
|
only:
|
||||||
|
|||||||
@@ -58,7 +58,13 @@ module.exports = function (env, argv) {
|
|||||||
"style-loader",
|
"style-loader",
|
||||||
{loader: "css-loader", options: {importLoaders: 1}},
|
{loader: "css-loader", options: {importLoaders: 1}},
|
||||||
"postcss-loader",
|
"postcss-loader",
|
||||||
"sass-loader"
|
{
|
||||||
|
loader: 'sass-loader',
|
||||||
|
options: {
|
||||||
|
// Prefer `dart-sass`
|
||||||
|
implementation: require('sass'),
|
||||||
|
},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
+14
-2
@@ -53,7 +53,13 @@ module.exports = function (env, argv) {
|
|||||||
MiniCssExtractPlugin.loader,
|
MiniCssExtractPlugin.loader,
|
||||||
{loader: "css-loader", options: {importLoaders: 1}},
|
{loader: "css-loader", options: {importLoaders: 1}},
|
||||||
"postcss-loader",
|
"postcss-loader",
|
||||||
"sass-loader"
|
{
|
||||||
|
loader: 'sass-loader',
|
||||||
|
options: {
|
||||||
|
// Prefer `dart-sass`
|
||||||
|
implementation: require('sass'),
|
||||||
|
},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
@@ -78,7 +84,13 @@ module.exports = function (env, argv) {
|
|||||||
MiniCssExtractPlugin.loader,
|
MiniCssExtractPlugin.loader,
|
||||||
{loader: "css-loader", options: {importLoaders: 1}},
|
{loader: "css-loader", options: {importLoaders: 1}},
|
||||||
"postcss-loader",
|
"postcss-loader",
|
||||||
"sass-loader"
|
{
|
||||||
|
loader: 'sass-loader',
|
||||||
|
options: {
|
||||||
|
// Prefer `dart-sass`
|
||||||
|
implementation: require('sass'),
|
||||||
|
},
|
||||||
|
},
|
||||||
]
|
]
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
Generated
+143
-434
@@ -724,6 +724,12 @@
|
|||||||
"integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==",
|
"integrity": "sha512-yALhelO3i0hqZwhjtcr6dYyaLoCHbAMshwtj6cGxTvHZAKXHsYGdff6E8EPw3xLKY0ELUTQ69Q1rQiJENnccMA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
|
"@types/js-cookie": {
|
||||||
|
"version": "2.2.4",
|
||||||
|
"resolved": "https://registry.npmjs.org/@types/js-cookie/-/js-cookie-2.2.4.tgz",
|
||||||
|
"integrity": "sha512-WTfSE1Eauak/Nrg6cA9FgPTFvVawejsai6zXoq0QYTQ3mxONeRtGhKxa7wMlUzWWmzrmTeV+rwLjHgsCntdrsA==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
"@types/json-schema": {
|
"@types/json-schema": {
|
||||||
"version": "7.0.3",
|
"version": "7.0.3",
|
||||||
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz",
|
"resolved": "https://registry.npmjs.org/@types/json-schema/-/json-schema-7.0.3.tgz",
|
||||||
@@ -1201,12 +1207,6 @@
|
|||||||
"integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==",
|
"integrity": "sha512-uUrgZ8AxS+Lio0fZKAipJjAh415JyrOZowliZAzmnJSsf7piVL5w+G0+gFJ0KSu3QRhvui/7zuvpLz03YjXAhg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"abbrev": {
|
|
||||||
"version": "1.1.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz",
|
|
||||||
"integrity": "sha512-nne9/IiQ/hzIhY6pdDnbBtz7DjPTKrY00P/zvPSm5pOFkl6xuGrGnXn/VtTNNfNtAfZ9/1RtehkszU9qcTii0Q==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"accepts": {
|
"accepts": {
|
||||||
"version": "1.3.5",
|
"version": "1.3.5",
|
||||||
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
"resolved": "https://registry.npmjs.org/accepts/-/accepts-1.3.5.tgz",
|
||||||
@@ -1729,12 +1729,6 @@
|
|||||||
"integrity": "sha1-gJXXXkiMKazuBVH+hyUhadeJz7o=",
|
"integrity": "sha1-gJXXXkiMKazuBVH+hyUhadeJz7o=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"async-foreach": {
|
|
||||||
"version": "0.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/async-foreach/-/async-foreach-0.1.3.tgz",
|
|
||||||
"integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"async-limiter": {
|
"async-limiter": {
|
||||||
"version": "1.0.1",
|
"version": "1.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.1.tgz",
|
||||||
@@ -3479,15 +3473,6 @@
|
|||||||
"safe-buffer": "^5.1.1"
|
"safe-buffer": "^5.1.1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"block-stream": {
|
|
||||||
"version": "0.0.9",
|
|
||||||
"resolved": "https://registry.npmjs.org/block-stream/-/block-stream-0.0.9.tgz",
|
|
||||||
"integrity": "sha1-E+v+d4oDIFz+A3UUgeu0szAMEmo=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"inherits": "~2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"bluebird": {
|
"bluebird": {
|
||||||
"version": "3.5.4",
|
"version": "3.5.4",
|
||||||
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz",
|
"resolved": "https://registry.npmjs.org/bluebird/-/bluebird-3.5.4.tgz",
|
||||||
@@ -4157,13 +4142,15 @@
|
|||||||
"version": "2.1.1",
|
"version": "2.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-2.1.1.tgz",
|
||||||
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
|
"integrity": "sha1-fB0W1nmhu+WcoCys7PsBHiAfWh8=",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"camelcase-keys": {
|
"camelcase-keys": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-2.1.0.tgz",
|
||||||
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
|
"integrity": "sha1-MIvur/3ygRkFHvodkyITyRuPkuc=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase": "^2.0.0",
|
"camelcase": "^2.0.0",
|
||||||
"map-obj": "^1.0.0"
|
"map-obj": "^1.0.0"
|
||||||
@@ -8828,18 +8815,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"fstream": {
|
|
||||||
"version": "1.0.12",
|
|
||||||
"resolved": "https://registry.npmjs.org/fstream/-/fstream-1.0.12.tgz",
|
|
||||||
"integrity": "sha512-WvJ193OHa0GHPEL+AycEJgxvBEwyfRkN1vhjca23OaPVMCaLCXTd5qAu82AjTcgP1UJmytkOKb63Ypde7raDIg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"graceful-fs": "^4.1.2",
|
|
||||||
"inherits": "~2.0.0",
|
|
||||||
"mkdirp": ">=0.5 0",
|
|
||||||
"rimraf": "2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"function-bind": {
|
"function-bind": {
|
||||||
"version": "1.1.1",
|
"version": "1.1.1",
|
||||||
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
"resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz",
|
||||||
@@ -8890,15 +8865,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"gaze": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/gaze/-/gaze-1.1.3.tgz",
|
|
||||||
"integrity": "sha512-BRdNm8hbWzFzWHERTrejLqwHDfS4GibPoq5wjTPIoJHoBtKGPg3xAFfxmM+9ztbXelxcf2hwQcaz1PtmFeue8g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"globule": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"get-caller-file": {
|
"get-caller-file": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-1.0.2.tgz",
|
||||||
@@ -9084,17 +9050,6 @@
|
|||||||
"integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
|
"integrity": "sha1-L0SUrIkZ43Z8XLtpHp9GMyQoXUM=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"globule": {
|
|
||||||
"version": "1.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/globule/-/globule-1.2.1.tgz",
|
|
||||||
"integrity": "sha512-g7QtgWF4uYSL5/dn71WxubOrS7JVGCnFPEnoeChJmBnyR9Mw8nGoEwOgJL/RC2Te0WhbsEUCejfH8SZNJ+adYQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"glob": "~7.1.1",
|
|
||||||
"lodash": "~4.17.10",
|
|
||||||
"minimatch": "~3.0.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"gonzales-pe": {
|
"gonzales-pe": {
|
||||||
"version": "4.2.4",
|
"version": "4.2.4",
|
||||||
"resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/gonzales-pe/-/gonzales-pe-4.2.4.tgz",
|
||||||
@@ -10348,17 +10303,12 @@
|
|||||||
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
|
"integrity": "sha1-khi5srkoojixPcT7a21XbyMUU+o=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"in-publish": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/in-publish/-/in-publish-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-4g/146KvwmkDILbcVSaCqcf631E=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"indent-string": {
|
"indent-string": {
|
||||||
"version": "2.1.0",
|
"version": "2.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/indent-string/-/indent-string-2.1.0.tgz",
|
||||||
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
|
"integrity": "sha1-ji1INIdCEhtKghi3oTfppSBJ3IA=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"repeating": "^2.0.0"
|
"repeating": "^2.0.0"
|
||||||
}
|
}
|
||||||
@@ -10498,12 +10448,6 @@
|
|||||||
"loose-envify": "^1.0.0"
|
"loose-envify": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"invert-kv": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"ip": {
|
"ip": {
|
||||||
"version": "1.1.5",
|
"version": "1.1.5",
|
||||||
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
"resolved": "https://registry.npmjs.org/ip/-/ip-1.1.5.tgz",
|
||||||
@@ -11145,12 +11089,6 @@
|
|||||||
"integrity": "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==",
|
"integrity": "sha512-MUj2XlMB8kpe+8DJUGH/3UJm4XpI8XEgZQ+CiHDeyrGoKPdW/8FJv6ku+3UiYm5Fz3CWaL+iXmD8Q4Ap6aC1Jw==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"js-base64": {
|
|
||||||
"version": "2.5.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz",
|
|
||||||
"integrity": "sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"js-cookie": {
|
"js-cookie": {
|
||||||
"version": "2.2.0",
|
"version": "2.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/js-cookie/-/js-cookie-2.2.0.tgz",
|
||||||
@@ -11562,15 +11500,6 @@
|
|||||||
"package-json": "^4.0.0"
|
"package-json": "^4.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"lcid": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"invert-kv": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"leven": {
|
"leven": {
|
||||||
"version": "3.1.0",
|
"version": "3.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/leven/-/leven-3.1.0.tgz",
|
||||||
@@ -12045,6 +11974,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
|
"resolved": "https://registry.npmjs.org/meow/-/meow-3.7.0.tgz",
|
||||||
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
|
"integrity": "sha1-cstmi0JSKCkKu/qFaJJYcwioAfs=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"camelcase-keys": "^2.0.0",
|
"camelcase-keys": "^2.0.0",
|
||||||
"decamelize": "^1.1.2",
|
"decamelize": "^1.1.2",
|
||||||
@@ -12062,7 +11992,8 @@
|
|||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
|
||||||
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -12571,34 +12502,6 @@
|
|||||||
"integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
|
"integrity": "sha512-7ASaDa3pD+lJ3WvXFsxekJQelBKRpne+GOVbLbtHYdd7pFspyeuJHnWfLplGf3SwKGbfs/aYl5V/JCIaHVUKKQ==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"node-gyp": {
|
|
||||||
"version": "3.8.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz",
|
|
||||||
"integrity": "sha512-3g8lYefrRRzvGeSowdJKAKyks8oUpLEd/DyPV4eMhVlhJ0aNaZqIrNUIPuEWWTAoPqyFkfGrM67MC69baqn6vA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"fstream": "^1.0.0",
|
|
||||||
"glob": "^7.0.3",
|
|
||||||
"graceful-fs": "^4.1.2",
|
|
||||||
"mkdirp": "^0.5.0",
|
|
||||||
"nopt": "2 || 3",
|
|
||||||
"npmlog": "0 || 1 || 2 || 3 || 4",
|
|
||||||
"osenv": "0",
|
|
||||||
"request": "^2.87.0",
|
|
||||||
"rimraf": "2",
|
|
||||||
"semver": "~5.3.0",
|
|
||||||
"tar": "^2.0.0",
|
|
||||||
"which": "1"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"semver": {
|
|
||||||
"version": "5.3.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/semver/-/semver-5.3.0.tgz",
|
|
||||||
"integrity": "sha1-myzl094C0XxgEq0yaqa00M9U+U8=",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node-libs-browser": {
|
"node-libs-browser": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.1.tgz",
|
||||||
@@ -12723,179 +12626,6 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node-sass": {
|
|
||||||
"version": "4.13.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.13.0.tgz",
|
|
||||||
"integrity": "sha512-W1XBrvoJ1dy7VsvTAS5q1V45lREbTlZQqFbiHb3R3OTTCma0XBtuG6xZ6Z4506nR4lmHPTqVRwxT6KgtWC97CA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"async-foreach": "^0.1.3",
|
|
||||||
"chalk": "^1.1.1",
|
|
||||||
"cross-spawn": "^3.0.0",
|
|
||||||
"gaze": "^1.0.0",
|
|
||||||
"get-stdin": "^4.0.1",
|
|
||||||
"glob": "^7.0.3",
|
|
||||||
"in-publish": "^2.0.0",
|
|
||||||
"lodash": "^4.17.15",
|
|
||||||
"meow": "^3.7.0",
|
|
||||||
"mkdirp": "^0.5.1",
|
|
||||||
"nan": "^2.13.2",
|
|
||||||
"node-gyp": "^3.8.0",
|
|
||||||
"npmlog": "^4.0.0",
|
|
||||||
"request": "^2.88.0",
|
|
||||||
"sass-graph": "^2.2.4",
|
|
||||||
"stdout-stream": "^1.4.0",
|
|
||||||
"true-case-path": "^1.0.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"ajv": {
|
|
||||||
"version": "6.10.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz",
|
|
||||||
"integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"fast-deep-equal": "^2.0.1",
|
|
||||||
"fast-json-stable-stringify": "^2.0.0",
|
|
||||||
"json-schema-traverse": "^0.4.1",
|
|
||||||
"uri-js": "^4.2.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"ansi-styles": {
|
|
||||||
"version": "2.2.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-2.2.1.tgz",
|
|
||||||
"integrity": "sha1-tDLdM1i2NM914eRmQ2gkBTPB3b4=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"aws4": {
|
|
||||||
"version": "1.8.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/aws4/-/aws4-1.8.0.tgz",
|
|
||||||
"integrity": "sha512-ReZxvNHIOv88FlT7rxcXIIC0fPt4KZqZbOlivyWtXLt8ESx84zd3kMC6iK5jVeS2qt+g7ftS7ye4fi06X5rtRQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"chalk": {
|
|
||||||
"version": "1.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/chalk/-/chalk-1.1.3.tgz",
|
|
||||||
"integrity": "sha1-qBFcVeSnAv5NFQq9OHKCKn4J/Jg=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"ansi-styles": "^2.2.1",
|
|
||||||
"escape-string-regexp": "^1.0.2",
|
|
||||||
"has-ansi": "^2.0.0",
|
|
||||||
"strip-ansi": "^3.0.0",
|
|
||||||
"supports-color": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"cross-spawn": {
|
|
||||||
"version": "3.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-3.0.1.tgz",
|
|
||||||
"integrity": "sha1-ElYDfsufDF9549bvE14wdwGEuYI=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lru-cache": "^4.0.1",
|
|
||||||
"which": "^1.2.9"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"get-stdin": {
|
|
||||||
"version": "4.0.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
|
||||||
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"har-validator": {
|
|
||||||
"version": "5.1.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/har-validator/-/har-validator-5.1.3.tgz",
|
|
||||||
"integrity": "sha512-sNvOCzEQNr/qrvJgc3UG/kD4QtlHycrzwS+6mfTrrSq97BvaYcPZZI1ZSqGSPR73Cxn4LKTD4PttRwfU7jWq5g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"ajv": "^6.5.5",
|
|
||||||
"har-schema": "^2.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"mime-db": {
|
|
||||||
"version": "1.40.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime-db/-/mime-db-1.40.0.tgz",
|
|
||||||
"integrity": "sha512-jYdeOMPy9vnxEqFRRo6ZvTZ8d9oPb+k18PKoYNYUe2stVEBPPwsln/qWzdbmaIvnhZ9v2P+CuecK+fpUfsV2mA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"mime-types": {
|
|
||||||
"version": "2.1.24",
|
|
||||||
"resolved": "https://registry.npmjs.org/mime-types/-/mime-types-2.1.24.tgz",
|
|
||||||
"integrity": "sha512-WaFHS3MCl5fapm3oLxU4eYDw77IQM2ACcxQ9RIxfaC3ooc6PFuBMGZZsYpvoXS5D5QTWPieo1jjLdAm3TBP3cQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"mime-db": "1.40.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"oauth-sign": {
|
|
||||||
"version": "0.9.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz",
|
|
||||||
"integrity": "sha512-fexhUFFPTGV8ybAtSIGbV6gOkSv8UtRbDBnAyLQw4QPKkgNlsH2ByPGtMUqdWkos6YCRmAqViwgZrJc/mRDzZQ==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"punycode": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/punycode/-/punycode-1.4.1.tgz",
|
|
||||||
"integrity": "sha1-wNWmOycYgArY4esPpSachN1BhF4=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"qs": {
|
|
||||||
"version": "6.5.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/qs/-/qs-6.5.2.tgz",
|
|
||||||
"integrity": "sha512-N5ZAX4/LxJmF+7wN74pUD6qAh9/wnvdQcjq9TZjevvXzSUo7bfmw91saqMjzGS2xq91/odN2dW/WOl7qQHNDGA==",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"request": {
|
|
||||||
"version": "2.88.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/request/-/request-2.88.0.tgz",
|
|
||||||
"integrity": "sha512-NAqBSrijGLZdM0WZNsInLJpkJokL72XYjUpnB0iwsRgxh7dB6COrHnTBNwN0E+lHDAJzu7kLAkDeY08z2/A0hg==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"aws-sign2": "~0.7.0",
|
|
||||||
"aws4": "^1.8.0",
|
|
||||||
"caseless": "~0.12.0",
|
|
||||||
"combined-stream": "~1.0.6",
|
|
||||||
"extend": "~3.0.2",
|
|
||||||
"forever-agent": "~0.6.1",
|
|
||||||
"form-data": "~2.3.2",
|
|
||||||
"har-validator": "~5.1.0",
|
|
||||||
"http-signature": "~1.2.0",
|
|
||||||
"is-typedarray": "~1.0.0",
|
|
||||||
"isstream": "~0.1.2",
|
|
||||||
"json-stringify-safe": "~5.0.1",
|
|
||||||
"mime-types": "~2.1.19",
|
|
||||||
"oauth-sign": "~0.9.0",
|
|
||||||
"performance-now": "^2.1.0",
|
|
||||||
"qs": "~6.5.2",
|
|
||||||
"safe-buffer": "^5.1.2",
|
|
||||||
"tough-cookie": "~2.4.3",
|
|
||||||
"tunnel-agent": "^0.6.0",
|
|
||||||
"uuid": "^3.3.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"supports-color": {
|
|
||||||
"version": "2.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/supports-color/-/supports-color-2.0.0.tgz",
|
|
||||||
"integrity": "sha1-U10EXOa2Nj+kARcIRimZXp3zJMc=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"tough-cookie": {
|
|
||||||
"version": "2.4.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/tough-cookie/-/tough-cookie-2.4.3.tgz",
|
|
||||||
"integrity": "sha512-Q5srk/4vDM54WJsJio3XNn6K2sCG+CQ8G5Wz6bZhRZoAe/+TxjWB/GlFAnYEbkYVlON9FMk/fE3h2RLpPXo4lQ==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"psl": "^1.1.24",
|
|
||||||
"punycode": "^1.4.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"uuid": {
|
|
||||||
"version": "3.3.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/uuid/-/uuid-3.3.3.tgz",
|
|
||||||
"integrity": "sha512-pW0No1RGHgzlpHJO1nsVrHKpOEIxkGg1xB+v0ZmdNH5OAeAwzAVrCnI2/6Mtx+Uys6iaylxa+D3g4j63IKKjSQ==",
|
|
||||||
"dev": true
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"node-version": {
|
"node-version": {
|
||||||
"version": "1.2.0",
|
"version": "1.2.0",
|
||||||
"resolved": "https://registry.npmjs.org/node-version/-/node-version-1.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/node-version/-/node-version-1.2.0.tgz",
|
||||||
@@ -12908,15 +12638,6 @@
|
|||||||
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
|
"integrity": "sha1-lKKxYzxPExdVMAfYlm/Q6EG2pMI=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"nopt": {
|
|
||||||
"version": "3.0.6",
|
|
||||||
"resolved": "https://registry.npmjs.org/nopt/-/nopt-3.0.6.tgz",
|
|
||||||
"integrity": "sha1-xkZdvwirzU2zWTF/eaxopkayj/k=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"abbrev": "1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"normalize-package-data": {
|
"normalize-package-data": {
|
||||||
"version": "2.4.0",
|
"version": "2.4.0",
|
||||||
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-package-data/-/normalize-package-data-2.4.0.tgz",
|
||||||
@@ -13536,31 +13257,12 @@
|
|||||||
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
|
"integrity": "sha1-/7xJiDNuDoM94MFox+8VISGqf7M=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"os-locale": {
|
|
||||||
"version": "1.4.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz",
|
|
||||||
"integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"lcid": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"os-tmpdir": {
|
"os-tmpdir": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/os-tmpdir/-/os-tmpdir-1.0.2.tgz",
|
||||||
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
"integrity": "sha1-u+Z0BseaqFxc/sdm/lc0VV36EnQ=",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"osenv": {
|
|
||||||
"version": "0.1.5",
|
|
||||||
"resolved": "https://registry.npmjs.org/osenv/-/osenv-0.1.5.tgz",
|
|
||||||
"integrity": "sha512-0CWcCECdMVc2Rw3U5w9ZjqX6ga6ubk1xDVKxtBQPK7wis/0F2r9T6k4ydGYhecl7YUBxBVxhL5oisPsNxAPe2g==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"os-homedir": "^1.0.0",
|
|
||||||
"os-tmpdir": "^1.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"output-file-sync": {
|
"output-file-sync": {
|
||||||
"version": "1.1.2",
|
"version": "1.1.2",
|
||||||
"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/output-file-sync/-/output-file-sync-1.1.2.tgz",
|
||||||
@@ -15163,6 +14865,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz",
|
||||||
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
|
"integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"find-up": "^1.0.0",
|
"find-up": "^1.0.0",
|
||||||
"read-pkg": "^1.0.0"
|
"read-pkg": "^1.0.0"
|
||||||
@@ -15173,6 +14876,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
|
"resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz",
|
||||||
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
|
"integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"path-exists": "^2.0.0",
|
"path-exists": "^2.0.0",
|
||||||
"pinkie-promise": "^2.0.0"
|
"pinkie-promise": "^2.0.0"
|
||||||
@@ -15183,6 +14887,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz",
|
||||||
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
|
"integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"parse-json": "^2.2.0",
|
"parse-json": "^2.2.0",
|
||||||
@@ -15196,6 +14901,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz",
|
||||||
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
|
"integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"error-ex": "^1.2.0"
|
"error-ex": "^1.2.0"
|
||||||
}
|
}
|
||||||
@@ -15205,6 +14911,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz",
|
||||||
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
|
"integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"pinkie-promise": "^2.0.0"
|
"pinkie-promise": "^2.0.0"
|
||||||
}
|
}
|
||||||
@@ -15214,6 +14921,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz",
|
||||||
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
|
"integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"graceful-fs": "^4.1.2",
|
"graceful-fs": "^4.1.2",
|
||||||
"pify": "^2.0.0",
|
"pify": "^2.0.0",
|
||||||
@@ -15224,13 +14932,15 @@
|
|||||||
"version": "2.3.0",
|
"version": "2.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
"resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
|
||||||
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
|
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"read-pkg": {
|
"read-pkg": {
|
||||||
"version": "1.1.0",
|
"version": "1.1.0",
|
||||||
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
"resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz",
|
||||||
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
|
"integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"load-json-file": "^1.0.0",
|
"load-json-file": "^1.0.0",
|
||||||
"normalize-package-data": "^2.3.2",
|
"normalize-package-data": "^2.3.2",
|
||||||
@@ -15242,6 +14952,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz",
|
||||||
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
|
"integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"is-utf8": "^0.2.0"
|
"is-utf8": "^0.2.0"
|
||||||
}
|
}
|
||||||
@@ -15290,6 +15001,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/redent/-/redent-1.0.0.tgz",
|
||||||
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
|
"integrity": "sha1-z5Fqsf1fHxbfsggi3W7H9zDCr94=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"indent-string": "^2.1.0",
|
"indent-string": "^2.1.0",
|
||||||
"strip-indent": "^1.0.1"
|
"strip-indent": "^1.0.1"
|
||||||
@@ -15877,89 +15589,133 @@
|
|||||||
"truncate-utf8-bytes": "^1.0.0"
|
"truncate-utf8-bytes": "^1.0.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"sass-graph": {
|
"sass": {
|
||||||
"version": "2.2.4",
|
"version": "1.25.0",
|
||||||
"resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz",
|
"resolved": "https://registry.npmjs.org/sass/-/sass-1.25.0.tgz",
|
||||||
"integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=",
|
"integrity": "sha512-uQMjye0Y70SEDGO56n0j91tauqS9E1BmpKHtiYNQScXDHeaE9uHwNEqQNFf4Bes/3DHMNinB6u79JsG10XWNyw==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"glob": "^7.0.0",
|
"chokidar": ">=2.0.0 <4.0.0"
|
||||||
"lodash": "^4.0.0",
|
|
||||||
"scss-tokenizer": "^0.2.3",
|
|
||||||
"yargs": "^7.0.0"
|
|
||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"camelcase": {
|
"anymatch": {
|
||||||
|
"version": "3.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/anymatch/-/anymatch-3.1.1.tgz",
|
||||||
|
"integrity": "sha512-mM8522psRCqzV+6LhomX5wgp25YVibjh8Wj23I5RPkPppSVSjyKD2A2mBJmWGa+KN7f2D6LNh9jkBCeyLktzjg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"normalize-path": "^3.0.0",
|
||||||
|
"picomatch": "^2.0.4"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"binary-extensions": {
|
||||||
|
"version": "2.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/binary-extensions/-/binary-extensions-2.0.0.tgz",
|
||||||
|
"integrity": "sha512-Phlt0plgpIIBOGTT/ehfFnbNlfsDEiqmzE2KRXoX1bLIlir4X/MR+zSyBEkL05ffWgnRSf/DXv+WrUAVr93/ow==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"braces": {
|
||||||
|
"version": "3.0.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/braces/-/braces-3.0.2.tgz",
|
||||||
|
"integrity": "sha512-b8um+L1RzM3WDSzvhm6gIz1yfTbBt6YTlcEKAvsmqCZZFw46z626lVj9j1yEPW33H5H+lBQpZMP1k8l+78Ha0A==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"fill-range": "^7.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"chokidar": {
|
||||||
|
"version": "3.3.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/chokidar/-/chokidar-3.3.1.tgz",
|
||||||
|
"integrity": "sha512-4QYCEWOcK3OJrxwvyyAOxFuhpvOVCYkr33LPfFNBjAD/w3sEzWsp2BUOkI4l9bHvWioAd0rc6NlHUOEaWkTeqg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"anymatch": "~3.1.1",
|
||||||
|
"braces": "~3.0.2",
|
||||||
|
"fsevents": "~2.1.2",
|
||||||
|
"glob-parent": "~5.1.0",
|
||||||
|
"is-binary-path": "~2.1.0",
|
||||||
|
"is-glob": "~4.0.1",
|
||||||
|
"normalize-path": "~3.0.0",
|
||||||
|
"readdirp": "~3.3.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fill-range": {
|
||||||
|
"version": "7.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/fill-range/-/fill-range-7.0.1.tgz",
|
||||||
|
"integrity": "sha512-qOo9F+dMUmC2Lcb4BbVvnKJxTPjCm+RRpe4gDuGrzkL7mEVl/djYSu2OdQ2Pa302N4oqkSg9ir6jaLWJ2USVpQ==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"to-regex-range": "^5.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"fsevents": {
|
||||||
|
"version": "2.1.2",
|
||||||
|
"resolved": "https://registry.npmjs.org/fsevents/-/fsevents-2.1.2.tgz",
|
||||||
|
"integrity": "sha512-R4wDiBwZ0KzpgOWetKDug1FZcYhqYnUYKtfZYt4mD5SBz76q0KR4Q9o7GIPamsVPGmW3EYPPJ0dOOjvx32ldZA==",
|
||||||
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
|
},
|
||||||
|
"glob-parent": {
|
||||||
|
"version": "5.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-5.1.0.tgz",
|
||||||
|
"integrity": "sha512-qjtRgnIVmOfnKUE3NJAQEdk+lKrxfw8t5ke7SXtfMTHcjsBfOfWXCQfdb30zfDoZQ2IRSIiidmjtbHZPZ++Ihw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-glob": "^4.0.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-binary-path": {
|
||||||
|
"version": "2.1.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-binary-path/-/is-binary-path-2.1.0.tgz",
|
||||||
|
"integrity": "sha512-ZMERYes6pDydyuGidse7OsHxtbI7WVeUEozgR/g7rd0xUimYNlvZRE/K2MgZTjWy725IfelLeVcEM97mmtRGXw==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"binary-extensions": "^2.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-extglob": {
|
||||||
|
"version": "2.1.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-extglob/-/is-extglob-2.1.1.tgz",
|
||||||
|
"integrity": "sha1-qIwCU1eR8C7TfHahueqXc8gz+MI=",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"is-glob": {
|
||||||
|
"version": "4.0.1",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.1.tgz",
|
||||||
|
"integrity": "sha512-5G0tKtBTFImOqDnLB2hG6Bp2qcKEFduo4tZu9MT/H6NQv/ghhy30o55ufafxJ/LdH79LLs2Kfrn85TLKyA7BUg==",
|
||||||
|
"dev": true,
|
||||||
|
"requires": {
|
||||||
|
"is-extglob": "^2.1.1"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"is-number": {
|
||||||
|
"version": "7.0.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/is-number/-/is-number-7.0.0.tgz",
|
||||||
|
"integrity": "sha512-41Cifkg6e8TylSpdtTpeLVMqvSBEVzTttHvERD741+pnZ8ANv0004MRL43QKPDlK9cGvNp6NZWZUBlbGXYxxng==",
|
||||||
|
"dev": true
|
||||||
|
},
|
||||||
|
"normalize-path": {
|
||||||
"version": "3.0.0",
|
"version": "3.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/normalize-path/-/normalize-path-3.0.0.tgz",
|
||||||
"integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=",
|
"integrity": "sha512-6eZs5Ls3WtCisHWp9S2GUy8dqkpGi4BVSz3GaqiE6ezub0512ESztXUwUB6C6IKbQkY2Pnb/mD4WYojCRwcwLA==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"cliui": {
|
"readdirp": {
|
||||||
"version": "3.2.0",
|
"version": "3.3.0",
|
||||||
"resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/readdirp/-/readdirp-3.3.0.tgz",
|
||||||
"integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=",
|
"integrity": "sha512-zz0pAkSPOXXm1viEwygWIPSPkcBYjW1xU5j/JBh5t9bGCJwa6f9+BJa6VaB2g+b55yVrmXzqkyLf4xaWYM0IkQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"string-width": "^1.0.1",
|
"picomatch": "^2.0.7"
|
||||||
"strip-ansi": "^3.0.1",
|
|
||||||
"wrap-ansi": "^2.0.0"
|
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"is-fullwidth-code-point": {
|
"to-regex-range": {
|
||||||
"version": "1.0.0",
|
"version": "5.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/to-regex-range/-/to-regex-range-5.0.1.tgz",
|
||||||
"integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=",
|
"integrity": "sha512-65P7iz6X5yEr1cwcgvQxbbIw7Uk3gOy5dIdtZ4rDveLqhrdJP+Li/Hx6tyK0NEb+2GCyneCMJiGqrADCSNk8sQ==",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"number-is-nan": "^1.0.0"
|
"is-number": "^7.0.0"
|
||||||
}
|
|
||||||
},
|
|
||||||
"string-width": {
|
|
||||||
"version": "1.0.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz",
|
|
||||||
"integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"code-point-at": "^1.0.0",
|
|
||||||
"is-fullwidth-code-point": "^1.0.0",
|
|
||||||
"strip-ansi": "^3.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"which-module": {
|
|
||||||
"version": "1.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz",
|
|
||||||
"integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=",
|
|
||||||
"dev": true
|
|
||||||
},
|
|
||||||
"yargs": {
|
|
||||||
"version": "7.1.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz",
|
|
||||||
"integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"camelcase": "^3.0.0",
|
|
||||||
"cliui": "^3.2.0",
|
|
||||||
"decamelize": "^1.1.1",
|
|
||||||
"get-caller-file": "^1.0.1",
|
|
||||||
"os-locale": "^1.4.0",
|
|
||||||
"read-pkg-up": "^1.0.1",
|
|
||||||
"require-directory": "^2.1.1",
|
|
||||||
"require-main-filename": "^1.0.1",
|
|
||||||
"set-blocking": "^2.0.0",
|
|
||||||
"string-width": "^1.0.2",
|
|
||||||
"which-module": "^1.0.0",
|
|
||||||
"y18n": "^3.2.1",
|
|
||||||
"yargs-parser": "^5.0.0"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"yargs-parser": {
|
|
||||||
"version": "5.0.0",
|
|
||||||
"resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz",
|
|
||||||
"integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"camelcase": "^3.0.0"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -16004,27 +15760,6 @@
|
|||||||
"ajv-keywords": "^3.1.0"
|
"ajv-keywords": "^3.1.0"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"scss-tokenizer": {
|
|
||||||
"version": "0.2.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/scss-tokenizer/-/scss-tokenizer-0.2.3.tgz",
|
|
||||||
"integrity": "sha1-jrBtualyMzOCTT9VMGQRSYR85dE=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"js-base64": "^2.1.8",
|
|
||||||
"source-map": "^0.4.2"
|
|
||||||
},
|
|
||||||
"dependencies": {
|
|
||||||
"source-map": {
|
|
||||||
"version": "0.4.4",
|
|
||||||
"resolved": "https://registry.npmjs.org/source-map/-/source-map-0.4.4.tgz",
|
|
||||||
"integrity": "sha1-66T12pwNyZneaAMti092FzZSA2s=",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"amdefine": ">=0.0.4"
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"seek-bzip": {
|
"seek-bzip": {
|
||||||
"version": "1.0.5",
|
"version": "1.0.5",
|
||||||
"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
|
"resolved": "https://registry.npmjs.org/seek-bzip/-/seek-bzip-1.0.5.tgz",
|
||||||
@@ -17020,15 +16755,6 @@
|
|||||||
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
"integrity": "sha512-zhSCtt8v2NDrRlPQpCNtw/heZLtfUDqxBM1udqikb/Hbk52LK4nQSwr10u77iopCW5LsyHpuXS0GnEc48mLeew==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"stdout-stream": {
|
|
||||||
"version": "1.4.1",
|
|
||||||
"resolved": "https://registry.npmjs.org/stdout-stream/-/stdout-stream-1.4.1.tgz",
|
|
||||||
"integrity": "sha512-j4emi03KXqJWcIeF8eIXkjMFN1Cmb8gUlDYGeBALLPo5qdyTfA9bOtl8m33lRoC+vFMkP3gl0WsDr6+gzxbbTA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"readable-stream": "^2.0.1"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"steno": {
|
"steno": {
|
||||||
"version": "0.4.4",
|
"version": "0.4.4",
|
||||||
"resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz",
|
"resolved": "https://registry.npmjs.org/steno/-/steno-0.4.4.tgz",
|
||||||
@@ -17308,6 +17034,7 @@
|
|||||||
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-1.0.1.tgz",
|
||||||
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
|
"integrity": "sha1-DHlipq3vp7vUrDZkYKY4VSrhoKI=",
|
||||||
"dev": true,
|
"dev": true,
|
||||||
|
"optional": true,
|
||||||
"requires": {
|
"requires": {
|
||||||
"get-stdin": "^4.0.1"
|
"get-stdin": "^4.0.1"
|
||||||
},
|
},
|
||||||
@@ -17316,7 +17043,8 @@
|
|||||||
"version": "4.0.1",
|
"version": "4.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/get-stdin/-/get-stdin-4.0.1.tgz",
|
||||||
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
|
"integrity": "sha1-uWjGsKBDhDJJAui/Gl3zJXmkUP4=",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -18050,17 +17778,6 @@
|
|||||||
"integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
|
"integrity": "sha512-dQRhbNQkRnaqauC7WqSJ21EEksgT0fYZX2lqXzGkpo8JNig9zGZTYoMGvyI2nWmXlE2VSVXVDu7wLVGu/mQEsg==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"tar": {
|
|
||||||
"version": "2.2.2",
|
|
||||||
"resolved": "https://registry.npmjs.org/tar/-/tar-2.2.2.tgz",
|
|
||||||
"integrity": "sha512-FCEhQ/4rE1zYv9rYXJw/msRqsnmlje5jHP6huWeBZ704jUTy02c5AZyWujpMR1ax6mVw9NyJMfuK2CMDWVIfgA==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"block-stream": "*",
|
|
||||||
"fstream": "^1.0.12",
|
|
||||||
"inherits": "2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"tar-fs": {
|
"tar-fs": {
|
||||||
"version": "2.0.0",
|
"version": "2.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/tar-fs/-/tar-fs-2.0.0.tgz",
|
||||||
@@ -19385,7 +19102,8 @@
|
|||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
"resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-1.0.0.tgz",
|
||||||
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
|
"integrity": "sha1-WIeWa7WCpFA6QetST301ARgVphM=",
|
||||||
"dev": true
|
"dev": true,
|
||||||
|
"optional": true
|
||||||
},
|
},
|
||||||
"trim-repeated": {
|
"trim-repeated": {
|
||||||
"version": "1.0.0",
|
"version": "1.0.0",
|
||||||
@@ -19415,15 +19133,6 @@
|
|||||||
"integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==",
|
"integrity": "sha512-tdzBRDGWcI1OpPVmChbdSKhvSVurznZ8X36AYURAcl+0o2ldlCY2XPzyXNNxwJwwyIU+rIglTCG4kxtNKBQH7Q==",
|
||||||
"dev": true
|
"dev": true
|
||||||
},
|
},
|
||||||
"true-case-path": {
|
|
||||||
"version": "1.0.3",
|
|
||||||
"resolved": "https://registry.npmjs.org/true-case-path/-/true-case-path-1.0.3.tgz",
|
|
||||||
"integrity": "sha512-m6s2OdQe5wgpFMC+pAJ+q9djG82O2jcHPOI6RNg1yy9rCYR+WD6Nbpl32fDpfC56nirdRy+opFa/Vk7HYhqaew==",
|
|
||||||
"dev": true,
|
|
||||||
"requires": {
|
|
||||||
"glob": "^7.1.2"
|
|
||||||
}
|
|
||||||
},
|
|
||||||
"truncate-utf8-bytes": {
|
"truncate-utf8-bytes": {
|
||||||
"version": "1.0.2",
|
"version": "1.0.2",
|
||||||
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
"resolved": "https://registry.npmjs.org/truncate-utf8-bytes/-/truncate-utf8-bytes-1.0.2.tgz",
|
||||||
|
|||||||
+2
-1
@@ -46,6 +46,7 @@
|
|||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@types/jest": "24.0.22",
|
"@types/jest": "24.0.22",
|
||||||
|
"@types/js-cookie": "2.2.4",
|
||||||
"@types/node": "10.14.7",
|
"@types/node": "10.14.7",
|
||||||
"@types/react": "16.8.18",
|
"@types/react": "16.8.18",
|
||||||
"@types/react-dom": "16.8.4",
|
"@types/react-dom": "16.8.4",
|
||||||
@@ -82,7 +83,6 @@
|
|||||||
"mini-css-extract-plugin": "0.4.5",
|
"mini-css-extract-plugin": "0.4.5",
|
||||||
"module-to-cdn": "3.1.2",
|
"module-to-cdn": "3.1.2",
|
||||||
"morgan": "1.9.1",
|
"morgan": "1.9.1",
|
||||||
"node-sass": "4.13.0",
|
|
||||||
"npm-run-all": "4.1.5",
|
"npm-run-all": "4.1.5",
|
||||||
"plop": "2.3.0",
|
"plop": "2.3.0",
|
||||||
"postcss-loader": "2.1.6",
|
"postcss-loader": "2.1.6",
|
||||||
@@ -90,6 +90,7 @@
|
|||||||
"react-addons-test-utils": "15.6.2",
|
"react-addons-test-utils": "15.6.2",
|
||||||
"react-dom": "16.8.6",
|
"react-dom": "16.8.6",
|
||||||
"react-hot-loader": "4.8.8",
|
"react-hot-loader": "4.8.8",
|
||||||
|
"sass": "^1.25.0",
|
||||||
"sass-loader": "7.1.0",
|
"sass-loader": "7.1.0",
|
||||||
"serve": "11.2.0",
|
"serve": "11.2.0",
|
||||||
"style-loader": "0.21.0",
|
"style-loader": "0.21.0",
|
||||||
|
|||||||
@@ -4,15 +4,15 @@ $colors: (
|
|||||||
// Name Color ?Hover?
|
// Name Color ?Hover?
|
||||||
dark-blue: 'dark-blue' #002d3a,
|
dark-blue: 'dark-blue' #002d3a,
|
||||||
light-blue: 'light-blue' #bfdbd9,
|
light-blue: 'light-blue' #bfdbd9,
|
||||||
white: 'white' #fff,
|
white1: 'white1' #fff,
|
||||||
black: 'black' #000,
|
black1: 'black1' #000,
|
||||||
grey1: 'grey1' #d4d0c7,
|
grey1: 'grey1' #d4d0c7,
|
||||||
grey2: 'grey2' #efece4,
|
grey2: 'grey2' #efece4,
|
||||||
orange1: 'orange1' #d57a2d,
|
orange1: 'orange1' #d57a2d,
|
||||||
orange2: 'orange2' #dd934e,
|
orange2: 'orange2' #dd934e,
|
||||||
blue: 'blue' #57b2df,
|
blue1: 'blue1' #57b2df,
|
||||||
light-turquoise: 'light-turquoise' #beddeb,
|
light-turquoise: 'light-turquoise' #beddeb,
|
||||||
green: 'green' #c0dcd9,
|
green1: 'green1' #c0dcd9,
|
||||||
sand: 'sand' #fdf9d7
|
sand: 'sand' #fdf9d7
|
||||||
);
|
);
|
||||||
|
|
||||||
|
|||||||
+1
-1
@@ -25,7 +25,7 @@ export function getTokenCookie(): string {
|
|||||||
return Cookies.get("jwt");
|
return Cookies.get("jwt");
|
||||||
}
|
}
|
||||||
|
|
||||||
export function deleteTokenCookie(): string {
|
export function deleteTokenCookie(): void {
|
||||||
return Cookies.remove("jwt");
|
return Cookies.remove("jwt");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -39,7 +39,7 @@
|
|||||||
button {
|
button {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row nowrap;
|
flex-flow: row nowrap;
|
||||||
background-color: color(white);
|
background-color: color(white1);
|
||||||
width: 100%;
|
width: 100%;
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0;
|
padding: 0;
|
||||||
@@ -52,7 +52,7 @@
|
|||||||
flex: 1;
|
flex: 1;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
padding-left: 1em;
|
padding-left: 1em;
|
||||||
color: color(blue);
|
color: color(blue1);
|
||||||
font-size: 1.125rem;
|
font-size: 1.125rem;
|
||||||
margin: auto;
|
margin: auto;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,8 +3,8 @@
|
|||||||
|
|
||||||
.accordion-icon {
|
.accordion-icon {
|
||||||
display: flex;
|
display: flex;
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
align-items: center;
|
align-items: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
min-width: 40px;
|
min-width: 40px;
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class AdminSidebar extends React.Component<AdminSidebarProps, AdminSidebarState>
|
|||||||
<AdminSidebarLink to="/admin/events" path={path}>Events</AdminSidebarLink>
|
<AdminSidebarLink to="/admin/events" path={path}>Events</AdminSidebarLink>
|
||||||
<AdminSidebarLink to="/admin/feed" path={path}>Feed</AdminSidebarLink>
|
<AdminSidebarLink to="/admin/feed" path={path}>Feed</AdminSidebarLink>
|
||||||
<AdminSidebarLink to="/admin/signups" path={path}>Signup forms</AdminSidebarLink>
|
<AdminSidebarLink to="/admin/signups" path={path}>Signup forms</AdminSidebarLink>
|
||||||
|
<AdminSidebarLink to="https://static.sika.sik.party/admin" path={path}>Files</AdminSidebarLink>
|
||||||
<AdminSidebarLink id="admin-sidebar-logout" to="/admin/logout" path={path}>Logout</AdminSidebarLink>
|
<AdminSidebarLink id="admin-sidebar-logout" to="/admin/logout" path={path}>Logout</AdminSidebarLink>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -3,12 +3,12 @@
|
|||||||
|
|
||||||
.admin-sidebar-link {
|
.admin-sidebar-link {
|
||||||
padding: 1rem 3rem 1rem 1rem;
|
padding: 1rem 3rem 1rem 1rem;
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
letter-spacing: 3px;
|
letter-spacing: 3px;
|
||||||
text-transform: uppercase;
|
text-transform: uppercase;
|
||||||
line-height: 20px;
|
line-height: 20px;
|
||||||
font-weight: bold;
|
font-weight: bold;
|
||||||
border-left: 4px solid color(blue);
|
border-left: 4px solid color(blue1);
|
||||||
white-space: nowrap;
|
white-space: nowrap;
|
||||||
|
|
||||||
@media screen and (max-width: 800px - 1px) {
|
@media screen and (max-width: 800px - 1px) {
|
||||||
@@ -17,7 +17,7 @@
|
|||||||
|
|
||||||
&:hover,
|
&:hover,
|
||||||
&.active {
|
&.active {
|
||||||
border-left: 4px solid color(white);
|
border-left: 4px solid color(white1);
|
||||||
}
|
}
|
||||||
|
|
||||||
&::after {
|
&::after {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
|
|
||||||
&.hero {
|
&.hero {
|
||||||
background-color: color(dark-blue);
|
background-color: color(dark-blue);
|
||||||
color: color(blue);
|
color: color(blue1);
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
letter-spacing: 1.5px;
|
letter-spacing: 1.5px;
|
||||||
border: 1px solid color(light-turquoise);
|
border: 1px solid color(light-turquoise);
|
||||||
@@ -24,8 +24,8 @@
|
|||||||
|
|
||||||
&.filled {
|
&.filled {
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
font-weight: 800;
|
font-weight: 800;
|
||||||
letter-spacing: 1.5px;
|
letter-spacing: 1.5px;
|
||||||
border: none;
|
border: none;
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
.card {
|
.card {
|
||||||
background-color: color(white);
|
background-color: color(white1);
|
||||||
color: color(dark-blue);
|
color: color(dark-blue);
|
||||||
white-space: wrap;
|
white-space: wrap;
|
||||||
margin: 1rem 1rem;
|
margin: 1rem 1rem;
|
||||||
@@ -31,7 +31,7 @@
|
|||||||
font-size: 1.5rem;
|
font-size: 1.5rem;
|
||||||
text-align: center;
|
text-align: center;
|
||||||
font-weight: 300;
|
font-weight: 300;
|
||||||
color: color(black);
|
color: color(black1);
|
||||||
}
|
}
|
||||||
|
|
||||||
&__image {
|
&__image {
|
||||||
@@ -69,7 +69,7 @@
|
|||||||
margin: 0 0 0.5rem;
|
margin: 0 0 0.5rem;
|
||||||
font-weight: 200;
|
font-weight: 200;
|
||||||
line-height: 22px;
|
line-height: 22px;
|
||||||
color: color(black);
|
color: color(black1);
|
||||||
|
|
||||||
@media screen and (max-width: 1200px - 1px) {
|
@media screen and (max-width: 1200px - 1px) {
|
||||||
margin: 0.5rem 0;
|
margin: 0.5rem 0;
|
||||||
|
|||||||
@@ -1,5 +1,4 @@
|
|||||||
import * as React from "react";
|
import * as React from "react";
|
||||||
import Button, { ButtonType } from "../Button/Button";
|
|
||||||
import "./Card.scss";
|
import "./Card.scss";
|
||||||
import Anchor from "../Anchor";
|
import Anchor from "../Anchor";
|
||||||
|
|
||||||
@@ -25,7 +24,7 @@ class Card extends React.Component<CardProps, CardState> {
|
|||||||
};
|
};
|
||||||
const datetime = new Date(this.props.start_time).toLocaleString("fi-FI", options);
|
const datetime = new Date(this.props.start_time).toLocaleString("fi-FI", options);
|
||||||
|
|
||||||
const imageElem = !!image ? (
|
const imageElem = image ? (
|
||||||
<div style={{ backgroundImage: `url(${image})`, }} className="card__image" />
|
<div style={{ backgroundImage: `url(${image})`, }} className="card__image" />
|
||||||
) : null;
|
) : null;
|
||||||
if (link) {
|
if (link) {
|
||||||
|
|||||||
@@ -34,15 +34,15 @@
|
|||||||
|
|
||||||
@include backgroundAndHoverableColor(dark-blue);
|
@include backgroundAndHoverableColor(dark-blue);
|
||||||
@include backgroundAndHoverableColor(light-blue);
|
@include backgroundAndHoverableColor(light-blue);
|
||||||
@include backgroundAndHoverableColor(white);
|
@include backgroundAndHoverableColor(white1);
|
||||||
@include backgroundAndHoverableColor(black);
|
@include backgroundAndHoverableColor(black1);
|
||||||
@include backgroundAndHoverableColor(grey1);
|
@include backgroundAndHoverableColor(grey1);
|
||||||
@include backgroundAndHoverableColor(grey2);
|
@include backgroundAndHoverableColor(grey2);
|
||||||
@include backgroundAndHoverableColor(orange1);
|
@include backgroundAndHoverableColor(orange1);
|
||||||
@include backgroundAndHoverableColor(orange2);
|
@include backgroundAndHoverableColor(orange2);
|
||||||
@include backgroundAndHoverableColor(blue);
|
@include backgroundAndHoverableColor(blue1);
|
||||||
@include backgroundAndHoverableColor(light-turquoise);
|
@include backgroundAndHoverableColor(light-turquoise);
|
||||||
@include backgroundAndHoverableColor(green);
|
@include backgroundAndHoverableColor(green1);
|
||||||
@include backgroundAndHoverableColor(sand);
|
@include backgroundAndHoverableColor(sand);
|
||||||
|
|
||||||
&__inherit {
|
&__inherit {
|
||||||
|
|||||||
@@ -21,15 +21,15 @@ export enum ColorEnum {
|
|||||||
const colors = new Map<ColorEnum, string>([
|
const colors = new Map<ColorEnum, string>([
|
||||||
[ColorEnum.DarkBlue, "dark-blue"],
|
[ColorEnum.DarkBlue, "dark-blue"],
|
||||||
[ColorEnum.LightBlue, "light-blue"],
|
[ColorEnum.LightBlue, "light-blue"],
|
||||||
[ColorEnum.White, "white"],
|
[ColorEnum.White, "white1"],
|
||||||
[ColorEnum.Black, "black"],
|
[ColorEnum.Black, "black1"],
|
||||||
[ColorEnum.Grey1, "grey1"],
|
[ColorEnum.Grey1, "grey1"],
|
||||||
[ColorEnum.Grey2, "grey2"],
|
[ColorEnum.Grey2, "grey2"],
|
||||||
[ColorEnum.Orange1, "orange1"],
|
[ColorEnum.Orange1, "orange1"],
|
||||||
[ColorEnum.Orange2, "orange2"],
|
[ColorEnum.Orange2, "orange2"],
|
||||||
[ColorEnum.Blue, "blue"],
|
[ColorEnum.Blue, "blue1"],
|
||||||
[ColorEnum.LightTurquoise, "light-turquoise"],
|
[ColorEnum.LightTurquoise, "light-turquoise"],
|
||||||
[ColorEnum.Green, "green"],
|
[ColorEnum.Green, "green1"],
|
||||||
[ColorEnum.Sand, "sand"],
|
[ColorEnum.Sand, "sand"],
|
||||||
[ColorEnum.Transparent, "transparent"],
|
[ColorEnum.Transparent, "transparent"],
|
||||||
[ColorEnum.Inherit, "inherit"]
|
[ColorEnum.Inherit, "inherit"]
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
.drop-down-box {
|
.drop-down-box {
|
||||||
background-color: color(white);
|
background-color: color(white1);
|
||||||
margin-top: 0.8rem;
|
margin-top: 0.8rem;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
left: 0;
|
left: 0;
|
||||||
|
|||||||
@@ -16,14 +16,14 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
& a {
|
& a {
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
padding: 0.4rem 0;
|
padding: 0.4rem 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
}
|
}
|
||||||
|
|
||||||
& p {
|
& p {
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
margin: 0;
|
margin: 0;
|
||||||
padding: 0.4rem 0;
|
padding: 0.4rem 0;
|
||||||
font-size: 14px;
|
font-size: 14px;
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
&__copyright {
|
&__copyright {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-flow: row nowrap;
|
flex-flow: row nowrap;
|
||||||
background-color: color(black);
|
background-color: color(black1);
|
||||||
text-align: center;
|
text-align: center;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
font-size: 12px;
|
font-size: 12px;
|
||||||
|
|||||||
@@ -26,11 +26,11 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
h6 {
|
h6 {
|
||||||
color: color(blue);
|
color: color(blue1);
|
||||||
font-weight: 600;
|
font-weight: 600;
|
||||||
}
|
}
|
||||||
|
|
||||||
h6:hover {
|
h6:hover {
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -24,7 +24,7 @@
|
|||||||
|
|
||||||
p {
|
p {
|
||||||
font-weight: 100;
|
font-weight: 100;
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,7 +5,9 @@ export enum IconType {
|
|||||||
Facebook,
|
Facebook,
|
||||||
Instagram,
|
Instagram,
|
||||||
LinkedIn,
|
LinkedIn,
|
||||||
HamburgerMenu
|
HamburgerMenu,
|
||||||
|
FinlandFlag,
|
||||||
|
GBFlag,
|
||||||
}
|
}
|
||||||
|
|
||||||
export interface IconProps {
|
export interface IconProps {
|
||||||
@@ -15,7 +17,7 @@ export interface IconProps {
|
|||||||
}
|
}
|
||||||
export interface IconState { }
|
export interface IconState { }
|
||||||
|
|
||||||
const nameToIcon = (name: IconType): JSX.Element => {
|
const nameToIcon = (name: IconType): JSX.Element | string => {
|
||||||
if (name === IconType.Facebook) {
|
if (name === IconType.Facebook) {
|
||||||
return (
|
return (
|
||||||
<svg role="img"
|
<svg role="img"
|
||||||
@@ -57,6 +59,13 @@ const nameToIcon = (name: IconType): JSX.Element => {
|
|||||||
</svg>
|
</svg>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
if (name == IconType.FinlandFlag) {
|
||||||
|
return "🇫🇮";
|
||||||
|
}
|
||||||
|
if (name == IconType.GBFlag) {
|
||||||
|
return "🇬🇧";
|
||||||
|
}
|
||||||
|
return null;
|
||||||
};
|
};
|
||||||
|
|
||||||
class Icon extends React.Component<IconProps, IconState> {
|
class Icon extends React.Component<IconProps, IconState> {
|
||||||
@@ -75,7 +84,7 @@ class Icon extends React.Component<IconProps, IconState> {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
return (
|
return (
|
||||||
<span onClick={onClick}>
|
<span className="icon" onClick={onClick}>
|
||||||
{elem}
|
{elem}
|
||||||
</span>
|
</span>
|
||||||
);
|
);
|
||||||
|
|||||||
@@ -43,8 +43,8 @@ $border-width: 2px;
|
|||||||
|
|
||||||
a,
|
a,
|
||||||
a:-webkit-any-link {
|
a:-webkit-any-link {
|
||||||
fill: color(white);
|
fill: color(white1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -68,8 +68,8 @@ $border-width: 2px;
|
|||||||
svg {
|
svg {
|
||||||
width: 26px;
|
width: 26px;
|
||||||
height: 26px;
|
height: 26px;
|
||||||
fill: color(white);
|
fill: color(white1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -2,7 +2,7 @@
|
|||||||
|
|
||||||
|
|
||||||
.page-link {
|
.page-link {
|
||||||
border-left-color: color(blue);
|
border-left-color: color(blue1);
|
||||||
border-left-width: 0.8rem;
|
border-left-width: 0.8rem;
|
||||||
border-left-style: solid;
|
border-left-style: solid;
|
||||||
margin: 0 1rem 1rem 0;
|
margin: 0 1rem 1rem 0;
|
||||||
|
|||||||
@@ -34,7 +34,7 @@
|
|||||||
bottom: 0;
|
bottom: 0;
|
||||||
width: 98%;
|
width: 98%;
|
||||||
left: 1%;
|
left: 1%;
|
||||||
border-bottom: 1px solid rgba(color(blue), 0.4);
|
border-bottom: 1px solid rgba(color(blue1), 0.4);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,8 @@
|
|||||||
|
.section-divider-widget {
|
||||||
|
display: flex;
|
||||||
|
margin-top: 12px;
|
||||||
|
|
||||||
|
> span.icon {
|
||||||
|
margin-top: 4px;
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,34 @@
|
|||||||
|
import * as React from "react";
|
||||||
|
import "./SectionDividerWidget.scss";
|
||||||
|
import Icon from "../Icon";
|
||||||
|
import { IconType } from "../Icon/Icon";
|
||||||
|
|
||||||
|
export interface SectionDividerWidgetProps {
|
||||||
|
label: string;
|
||||||
|
}
|
||||||
|
export interface SectionDividerWidgetState { }
|
||||||
|
|
||||||
|
const getIconByLabel = (label: string) => {
|
||||||
|
if (label === "Finnish") {
|
||||||
|
return <Icon name={IconType.FinlandFlag} />
|
||||||
|
}
|
||||||
|
if (label === "English") {
|
||||||
|
return <Icon name={IconType.GBFlag} />
|
||||||
|
}
|
||||||
|
console.error(`No icon found for label: ${label}`);
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
|
||||||
|
class SectionDividerWidget extends React.Component<SectionDividerWidgetProps, SectionDividerWidgetState> {
|
||||||
|
render() {
|
||||||
|
const { label } = this.props;
|
||||||
|
|
||||||
|
return (
|
||||||
|
<h3 className="section-divider-widget">
|
||||||
|
{label} {getIconByLabel(label)}
|
||||||
|
</h3>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default SectionDividerWidget;
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
import SectionDividerWidget from "./SectionDividerWidget";
|
||||||
|
export default SectionDividerWidget;
|
||||||
@@ -18,7 +18,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
a {
|
a {
|
||||||
color: color(blue);
|
color: color(blue1);
|
||||||
text-decoration: underline;
|
text-decoration: underline;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
+2
-2
@@ -11,7 +11,7 @@ body {
|
|||||||
background-color: color(dark-blue);
|
background-color: color(dark-blue);
|
||||||
height: 100%;
|
height: 100%;
|
||||||
font-family: $font;
|
font-family: $font;
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
overflow: auto;
|
overflow: auto;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -112,5 +112,5 @@ p {
|
|||||||
a,
|
a,
|
||||||
a:hover {
|
a:hover {
|
||||||
text-decoration: none;
|
text-decoration: none;
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
|
|||||||
+12
-5
@@ -1,18 +1,25 @@
|
|||||||
import axios from "axios";
|
import axios from "axios";
|
||||||
import { getAuthHeader } from "../auth";
|
import { getAuthHeader } from "../auth";
|
||||||
|
import { Tag } from "./Tag";
|
||||||
import * as qs from "query-string";
|
import * as qs from "query-string";
|
||||||
|
import { SignupForm } from "./SignupForm";
|
||||||
const url = `${process.env.API_URL}/events/`;
|
const url = `${process.env.API_URL}/events/`;
|
||||||
|
|
||||||
export interface Event {
|
export interface Event {
|
||||||
id: number;
|
id: number;
|
||||||
title: string;
|
title_fi: string;
|
||||||
description: string;
|
title_en: string;
|
||||||
content: string;
|
description_fi: string;
|
||||||
|
description_en: string;
|
||||||
|
content_fi: string;
|
||||||
|
content_en: string;
|
||||||
start_time: string;
|
start_time: string;
|
||||||
end_time: string;
|
end_time: string;
|
||||||
tags: number[];
|
tags: Tag[];
|
||||||
tag_id: number[];
|
tag_id?: number[];
|
||||||
visible: boolean;
|
visible: boolean;
|
||||||
|
signup_id: number[];
|
||||||
|
signupForm: SignupForm[];
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getEvents(options: any = {}): Promise<Event[]> {
|
export async function getEvents(options: any = {}): Promise<Event[]> {
|
||||||
|
|||||||
+6
-3
@@ -5,9 +5,12 @@ const url = `${process.env.API_URL}/feed/`;
|
|||||||
|
|
||||||
export interface Post {
|
export interface Post {
|
||||||
id: number;
|
id: number;
|
||||||
title: string;
|
title_fi: string;
|
||||||
description: string;
|
title_en: string;
|
||||||
content: string;
|
description_fi: string;
|
||||||
|
description_en: string;
|
||||||
|
content_fi: string;
|
||||||
|
content_en: string;
|
||||||
publish_time: string;
|
publish_time: string;
|
||||||
autohide: string;
|
autohide: string;
|
||||||
tag_id: number[];
|
tag_id: number[];
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ export interface SignupForm {
|
|||||||
start_time: string;
|
start_time: string;
|
||||||
end_time: string;
|
end_time: string;
|
||||||
questions: string;
|
questions: string;
|
||||||
visible: boolean;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
export async function getForms(): Promise<SignupForm[]> {
|
export async function getForms(): Promise<SignupForm[]> {
|
||||||
|
|||||||
+2
-1
@@ -4,7 +4,8 @@ const url = `${process.env.API_URL}/tags/`;
|
|||||||
|
|
||||||
export interface Tag {
|
export interface Tag {
|
||||||
id: number;
|
id: number;
|
||||||
name: string;
|
name_fi: string;
|
||||||
|
name_en: string;
|
||||||
slug: string;
|
slug: string;
|
||||||
icon: string;
|
icon: string;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -36,7 +36,7 @@
|
|||||||
outline: none;
|
outline: none;
|
||||||
background-color: color(orange2);
|
background-color: color(orange2);
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
}
|
}
|
||||||
|
|
||||||
h1 {
|
h1 {
|
||||||
@@ -53,9 +53,9 @@
|
|||||||
|
|
||||||
.success {
|
.success {
|
||||||
margin-bottom: 0.5rem;
|
margin-bottom: 0.5rem;
|
||||||
border: 1px solid color(green);
|
border: 1px solid color(green1);
|
||||||
padding: 8px 16px;
|
padding: 8px 16px;
|
||||||
color: color(green);
|
color: color(green1);
|
||||||
display: inline-block;
|
display: inline-block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
table,
|
table,
|
||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
border: 1px solid color(white);
|
border: 1px solid color(white1);
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|||||||
@@ -91,7 +91,7 @@ class AdminEventPage extends React.Component<AdminEventPageProps, AdminEventPage
|
|||||||
<tbody>
|
<tbody>
|
||||||
{events.map(event => (
|
{events.map(event => (
|
||||||
<tr key={event.id}>
|
<tr key={event.id}>
|
||||||
<td><Anchor to={`/admin/events/${event.id}`}>{event.title}</Anchor></td>
|
<td><Anchor to={`/admin/events/${event.id}`}>{event.title_fi}</Anchor></td>
|
||||||
<td>{formatRelative(new Date(event.start_time), new Date())}</td>
|
<td>{formatRelative(new Date(event.start_time), new Date())}</td>
|
||||||
<td>{formatRelative(new Date(event.end_time), new Date())}</td>
|
<td>{formatRelative(new Date(event.end_time), new Date())}</td>
|
||||||
</tr>
|
</tr>
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
table,
|
table,
|
||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
border: 1px solid color(white);
|
border: 1px solid color(white1);
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|||||||
@@ -91,8 +91,8 @@ class AdminFeedPage extends React.Component<AdminFeedPageProps, AdminFeedPageSta
|
|||||||
<tbody>
|
<tbody>
|
||||||
{feed.map(post => (
|
{feed.map(post => (
|
||||||
<tr key={post.id}>
|
<tr key={post.id}>
|
||||||
<td><Anchor to={`/admin/feed/${post.id}`}>{post.title}</Anchor></td>
|
<td><Anchor to={`/admin/feed/${post.id}`}>{post.title_fi}</Anchor></td>
|
||||||
<td>{post.description}</td>
|
<td>{post.description_fi}</td>
|
||||||
<td>{formatRelative(new Date(post.publish_time), new Date())}</td>
|
<td>{formatRelative(new Date(post.publish_time), new Date())}</td>
|
||||||
</tr>
|
</tr>
|
||||||
))}
|
))}
|
||||||
|
|||||||
@@ -16,6 +16,7 @@ class AdminFrontPage extends React.Component<AdminFrontPageProps, AdminFrontPage
|
|||||||
<h1>SIK Admin</h1>
|
<h1>SIK Admin</h1>
|
||||||
<Anchor to="/admin/events">Events</Anchor>
|
<Anchor to="/admin/events">Events</Anchor>
|
||||||
<Anchor to="/admin/feed">Feed</Anchor>
|
<Anchor to="/admin/feed">Feed</Anchor>
|
||||||
|
<Anchor to="https://static.sika.sik.party/admin">Files</Anchor>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
table,
|
table,
|
||||||
th,
|
th,
|
||||||
td {
|
td {
|
||||||
border: 1px solid color(white);
|
border: 1px solid color(white1);
|
||||||
padding: 0.5rem;
|
padding: 0.5rem;
|
||||||
|
|
||||||
a {
|
a {
|
||||||
|
|||||||
@@ -96,7 +96,7 @@ class ContactsPage extends React.Component<ContactsPageProps, ContactsPageState>
|
|||||||
className={`${getColor(ColorEnum.Blue)} ${getHoverColor(ColorEnum.LightBlue)}`}
|
className={`${getColor(ColorEnum.Blue)} ${getHoverColor(ColorEnum.LightBlue)}`}
|
||||||
to="mailto:sik-hallitus@list.ayy.fi">
|
to="mailto:sik-hallitus@list.ayy.fi">
|
||||||
sik-hallitus@list.ayy.fi
|
sik-hallitus@list.ayy.fi
|
||||||
</Anchor>
|
</Anchor>
|
||||||
</p>
|
</p>
|
||||||
</div>
|
</div>
|
||||||
</PageSection>
|
</PageSection>
|
||||||
|
|||||||
@@ -26,7 +26,7 @@
|
|||||||
input[type="text"],
|
input[type="text"],
|
||||||
textarea,
|
textarea,
|
||||||
select {
|
select {
|
||||||
width: 100%;
|
width: 100% !important;
|
||||||
}
|
}
|
||||||
|
|
||||||
legend {
|
legend {
|
||||||
@@ -35,8 +35,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border: none;
|
border: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
|||||||
@@ -4,11 +4,15 @@ import "./EventCreatePage.scss";
|
|||||||
import { isAuthenticated } from "../../auth";
|
import { isAuthenticated } from "../../auth";
|
||||||
import Form from "react-jsonschema-form";
|
import Form from "react-jsonschema-form";
|
||||||
import { Tag, getTags } from "../../models/Tag";
|
import { Tag, getTags } from "../../models/Tag";
|
||||||
import { createEvent, getEvent, updateEvent } from "../../models/Event";
|
import { createEvent, getEvent, updateEvent, Event } from "../../models/Event";
|
||||||
import DatetimeWidget from "../../components/DatetimeWidget";
|
import DatetimeWidget from "../../components/DatetimeWidget";
|
||||||
|
import SectionDividerWidget from "../../components/SectionDividerWidget";
|
||||||
|
import Icon from "../../components/Icon";
|
||||||
|
import { IconType } from "../../components/Icon/Icon";
|
||||||
|
|
||||||
const widgets = {
|
const widgets = {
|
||||||
datetime: DatetimeWidget,
|
datetime: DatetimeWidget,
|
||||||
|
section_divider: SectionDividerWidget,
|
||||||
};
|
};
|
||||||
|
|
||||||
export interface EventCreatePageProps {
|
export interface EventCreatePageProps {
|
||||||
@@ -47,7 +51,7 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
fetchInitialFormData = async (id) => {
|
fetchInitialFormData = async (id) => {
|
||||||
try {
|
try {
|
||||||
const data = await getEvent(id);
|
const data = await getEvent(id);
|
||||||
data.tags = data.tag_id;
|
data.tags = data.tag_id as any;
|
||||||
this.setState({
|
this.setState({
|
||||||
formData: data,
|
formData: data,
|
||||||
});
|
});
|
||||||
@@ -85,14 +89,14 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
payload.tag_id = payload.tags;
|
payload.tag_id = payload.tags;
|
||||||
if (payload.id === undefined) {
|
if (payload.id === undefined) {
|
||||||
const resp = await createEvent(payload);
|
const resp = await createEvent(payload);
|
||||||
resp.tags = resp.tag_id;
|
resp.tags = resp.tag_id as any;
|
||||||
this.setState({
|
this.setState({
|
||||||
formData: resp,
|
formData: resp,
|
||||||
statusMessage: "Event created successfully",
|
statusMessage: "Event created successfully",
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
const resp = await updateEvent(payload);
|
const resp = await updateEvent(payload);
|
||||||
resp.tags = resp.tag_id;
|
resp.tags = resp.tag_id as any;
|
||||||
this.setState({
|
this.setState({
|
||||||
formData: resp,
|
formData: resp,
|
||||||
statusMessage: "Event updated successfully.",
|
statusMessage: "Event updated successfully.",
|
||||||
@@ -123,7 +127,9 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
}
|
}
|
||||||
|
|
||||||
buildSchema = () => {
|
buildSchema = () => {
|
||||||
const { tags, error, formData } = this.state;
|
const { tags, error } = this.state;
|
||||||
|
|
||||||
|
const formData = this.state.formData as Event;
|
||||||
|
|
||||||
const date = new Date();
|
const date = new Date();
|
||||||
const currentDatetime = date.toISOString();
|
const currentDatetime = date.toISOString();
|
||||||
@@ -132,39 +138,29 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
const tomorrowDatetime = tomorrowDate.toISOString();
|
const tomorrowDatetime = tomorrowDate.toISOString();
|
||||||
|
|
||||||
const schema = {
|
const schema = {
|
||||||
title: formData.id ? formData.title : "New Event",
|
title: formData.id ? formData.title_fi : "New Event",
|
||||||
type: "object",
|
type: "object",
|
||||||
required: ["title", "location", "description", "content"],
|
required: ["title_fi", "title_en", "location", "description_fi", "description_en", "content_fi", "content_en"],
|
||||||
properties: {
|
properties: {
|
||||||
title: {
|
|
||||||
type: "string",
|
|
||||||
title: "Title",
|
|
||||||
default: ""
|
|
||||||
},
|
|
||||||
location: {
|
|
||||||
type: "string",
|
|
||||||
title: "Location",
|
|
||||||
default: "",
|
|
||||||
},
|
|
||||||
tags: {
|
tags: {
|
||||||
type: "array",
|
type: "array",
|
||||||
title: "Event tags",
|
title: "Event tags",
|
||||||
items: {
|
items: {
|
||||||
type: "number",
|
type: "number",
|
||||||
enum: tags.map(t => t.id),
|
enum: tags.map(t => t.id),
|
||||||
enumNames: tags.map(t => t.name),
|
enumNames: tags.map(t => t.name_fi),
|
||||||
},
|
},
|
||||||
uniqueItems: true,
|
uniqueItems: true,
|
||||||
default: [],
|
default: [],
|
||||||
},
|
},
|
||||||
description: {
|
visible: {
|
||||||
type: "string",
|
type: "boolean",
|
||||||
title: "Description",
|
title: "Visible",
|
||||||
default: "",
|
default: true,
|
||||||
},
|
},
|
||||||
content: {
|
location: {
|
||||||
type: "string",
|
type: "string",
|
||||||
title: "Content",
|
title: "Location",
|
||||||
default: "",
|
default: "",
|
||||||
},
|
},
|
||||||
start_time: {
|
start_time: {
|
||||||
@@ -177,11 +173,44 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
title: "End time",
|
title: "End time",
|
||||||
default: tomorrowDatetime,
|
default: tomorrowDatetime,
|
||||||
},
|
},
|
||||||
visible: {
|
finnish_section_divider: {
|
||||||
type: "boolean",
|
title: "Finnish",
|
||||||
title: "Visible",
|
type: "string",
|
||||||
default: true,
|
},
|
||||||
}
|
title_fi: {
|
||||||
|
type: "string",
|
||||||
|
title: "Title",
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
description_fi: {
|
||||||
|
type: "string",
|
||||||
|
title: "Description",
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
content_fi: {
|
||||||
|
type: "string",
|
||||||
|
title: "Content",
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
english_section_divider: {
|
||||||
|
title: "English",
|
||||||
|
type: "string",
|
||||||
|
},
|
||||||
|
title_en: {
|
||||||
|
type: "string",
|
||||||
|
title: "Title",
|
||||||
|
default: ""
|
||||||
|
},
|
||||||
|
description_en: {
|
||||||
|
type: "string",
|
||||||
|
title: "Description",
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
|
content_en: {
|
||||||
|
type: "string",
|
||||||
|
title: "Content",
|
||||||
|
default: "",
|
||||||
|
},
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
return schema;
|
return schema;
|
||||||
@@ -189,7 +218,10 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
|
|
||||||
buildUISchema = () => {
|
buildUISchema = () => {
|
||||||
const uiSchema = {
|
const uiSchema = {
|
||||||
content: {
|
content_fi: {
|
||||||
|
"ui:widget": "textarea",
|
||||||
|
},
|
||||||
|
content_en: {
|
||||||
"ui:widget": "textarea",
|
"ui:widget": "textarea",
|
||||||
},
|
},
|
||||||
start_time: {
|
start_time: {
|
||||||
@@ -198,17 +230,30 @@ class EventCreatePage extends React.Component<EventCreatePageProps, EventCreateP
|
|||||||
end_time: {
|
end_time: {
|
||||||
"ui:widget": "datetime",
|
"ui:widget": "datetime",
|
||||||
},
|
},
|
||||||
|
finnish_section_divider: {
|
||||||
|
"ui:widget": "section_divider",
|
||||||
|
"ui:options": {
|
||||||
|
label: false
|
||||||
|
},
|
||||||
|
},
|
||||||
|
english_section_divider: {
|
||||||
|
"ui:widget": "section_divider",
|
||||||
|
"ui:options": {
|
||||||
|
label: false
|
||||||
|
},
|
||||||
|
},
|
||||||
};
|
};
|
||||||
return uiSchema;
|
return uiSchema;
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const { error, formData, statusMessage } = this.state;
|
const { error, statusMessage } = this.state;
|
||||||
|
const formData = this.state.formData as Event;
|
||||||
const schema = this.buildSchema();
|
const schema = this.buildSchema();
|
||||||
const uiSchema = this.buildUISchema();
|
const uiSchema = this.buildUISchema();
|
||||||
|
|
||||||
const title = formData.id
|
const title = formData.id
|
||||||
? `Edit Event "${formData.title}"`
|
? `Edit Event "${formData.title_fi}"`
|
||||||
: "Create Event";
|
: "Create Event";
|
||||||
|
|
||||||
return (
|
return (
|
||||||
|
|||||||
@@ -0,0 +1,18 @@
|
|||||||
|
.event-page {
|
||||||
|
display: block;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-banner {
|
||||||
|
width: 300px;
|
||||||
|
height: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-title {
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.event-signup-buttons {
|
||||||
|
display: flex;
|
||||||
|
flex-flow: row wrap;
|
||||||
|
justify-content: center;
|
||||||
|
}
|
||||||
@@ -0,0 +1,85 @@
|
|||||||
|
import * as React from "react";
|
||||||
|
import Helmet from "react-helmet";
|
||||||
|
import "./EventPage.scss";
|
||||||
|
import { Event, getEvent } from "../../models/Event";
|
||||||
|
import { RouteComponentProps } from "react-router-dom";
|
||||||
|
import Button, { ButtonType } from "../../components/Button";
|
||||||
|
import Anchor from "../../components/Anchor";
|
||||||
|
import PageSection from "../../components/PageSection";
|
||||||
|
import { ColorEnum } from "../../components/ColorDiv/ColorDiv";
|
||||||
|
import MainSection from "../../components/MainSection";
|
||||||
|
import AsideSection from "../../components/AsideSection/AsideSection";
|
||||||
|
|
||||||
|
interface MatchParams {
|
||||||
|
id: string;
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface EventPageOwnProps {}
|
||||||
|
|
||||||
|
export interface EventPageState {
|
||||||
|
event?: Event;
|
||||||
|
}
|
||||||
|
|
||||||
|
type EventPageProps = EventPageOwnProps & RouteComponentProps<MatchParams>
|
||||||
|
|
||||||
|
class EventPage extends React.Component<EventPageProps, EventPageState> {
|
||||||
|
constructor(props: EventPageProps) {
|
||||||
|
super(props);
|
||||||
|
const { id } = this.props.match.params;
|
||||||
|
this.state = {
|
||||||
|
event: null
|
||||||
|
}
|
||||||
|
this.fetchEvent(Number(id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
fetchEvent(id: number) {
|
||||||
|
const eventPromise = getEvent(id);
|
||||||
|
eventPromise.then(event => {
|
||||||
|
this.setState({
|
||||||
|
event,
|
||||||
|
});
|
||||||
|
});
|
||||||
|
return eventPromise;
|
||||||
|
}
|
||||||
|
|
||||||
|
render() {
|
||||||
|
const { event } = this.state;
|
||||||
|
if (!event) return <div>Loading</div>
|
||||||
|
|
||||||
|
return (
|
||||||
|
<div className="event-page">
|
||||||
|
<Helmet>
|
||||||
|
<link rel="canonical" href="https://sik.ayy.fi/INSERT_PATH_HERE!" />
|
||||||
|
</Helmet>
|
||||||
|
<PageSection backgroundColor={ColorEnum.White}>
|
||||||
|
<AsideSection textColor={ColorEnum.Black} />
|
||||||
|
<MainSection textColor={ColorEnum.Black}>
|
||||||
|
<img className="event-banner" src={event.tags[0].icon} alt={event.title_fi} ></img>
|
||||||
|
<h1 className="event-title">{event.title_fi}</h1>
|
||||||
|
<p>
|
||||||
|
{event.description_fi}
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
{event.content_fi}
|
||||||
|
</p>
|
||||||
|
{/* We may have multiple signup forms. Generate own Button for each one */}
|
||||||
|
<div className="event-signup-buttons">
|
||||||
|
{event.signupForm.map(sf => (
|
||||||
|
<Anchor key={sf.id} to={`/signup/${sf.id}`}>
|
||||||
|
<Button type={ButtonType.Filled} onClick={() => {}}>
|
||||||
|
{sf.title}
|
||||||
|
</Button>
|
||||||
|
</Anchor>
|
||||||
|
)
|
||||||
|
)}
|
||||||
|
</div>
|
||||||
|
</MainSection>
|
||||||
|
<AsideSection backgroundColor={ColorEnum.White} textColor={ColorEnum.Black} />
|
||||||
|
</PageSection>
|
||||||
|
</div>
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
export default EventPage;
|
||||||
@@ -0,0 +1,2 @@
|
|||||||
|
import EventPage from "./EventPage";
|
||||||
|
export default EventPage;
|
||||||
@@ -35,8 +35,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border: none;
|
border: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ class FeedCreatePage extends React.Component<FeedCreatePageProps, FeedCreatePage
|
|||||||
|
|
||||||
this.fetchTags();
|
this.fetchTags();
|
||||||
|
|
||||||
const id = props.match.params.id;
|
const {id} = props.match.params;
|
||||||
if (id !== undefined) {
|
if (id !== undefined) {
|
||||||
this.fetchInitialFormData(id);
|
this.fetchInitialFormData(id);
|
||||||
}
|
}
|
||||||
@@ -143,7 +143,7 @@ class FeedCreatePage extends React.Component<FeedCreatePageProps, FeedCreatePage
|
|||||||
items: {
|
items: {
|
||||||
type: "number",
|
type: "number",
|
||||||
enum: tags.map(t => t.id),
|
enum: tags.map(t => t.id),
|
||||||
enumNames: tags.map(t => t.name),
|
enumNames: tags.map(t => t.name_fi),
|
||||||
},
|
},
|
||||||
uniqueItems: true,
|
uniqueItems: true,
|
||||||
default: [],
|
default: [],
|
||||||
|
|||||||
@@ -6,7 +6,6 @@ import { Event, getEvents } from "../../models/Event";
|
|||||||
import { Post, getFeed } from "../../models/Feed";
|
import { Post, getFeed } from "../../models/Feed";
|
||||||
import { StaticContext } from "../../server/StaticContext";
|
import { StaticContext } from "../../server/StaticContext";
|
||||||
|
|
||||||
import * as BeerImage from "../../assets/img/beer.jpeg";
|
|
||||||
import PageSection from "../../components/PageSection";
|
import PageSection from "../../components/PageSection";
|
||||||
import { ColorEnum } from "../../components/ColorDiv/ColorDiv";
|
import { ColorEnum } from "../../components/ColorDiv/ColorDiv";
|
||||||
|
|
||||||
@@ -139,11 +138,11 @@ class FrontPage extends React.Component<FrontPageProps, FrontPageState> {
|
|||||||
{events.map(event => (
|
{events.map(event => (
|
||||||
<Card
|
<Card
|
||||||
key={event.id}
|
key={event.id}
|
||||||
title={event.title}
|
title={event.title_fi}
|
||||||
start_time={event.start_time}
|
start_time={event.start_time}
|
||||||
text={event.description}
|
text={event.description_fi}
|
||||||
link={`/events/${event.id}`}
|
link={`/events/${event.id}`}
|
||||||
image={BeerImage}
|
image={event.tags[0].icon}
|
||||||
button={
|
button={
|
||||||
<Button type={ButtonType.Filled} onClick={() => { }}>
|
<Button type={ButtonType.Filled} onClick={() => { }}>
|
||||||
<h6>Lue lisää ›</h6>
|
<h6>Lue lisää ›</h6>
|
||||||
@@ -173,9 +172,9 @@ class FrontPage extends React.Component<FrontPageProps, FrontPageState> {
|
|||||||
{feed.map(inst => (
|
{feed.map(inst => (
|
||||||
<Card
|
<Card
|
||||||
key={inst.id}
|
key={inst.id}
|
||||||
title={inst.title}
|
title={inst.title_fi}
|
||||||
start_time={inst.publish_time}
|
start_time={inst.publish_time}
|
||||||
text={inst.description}
|
text={inst.description_fi}
|
||||||
link={`/feed/${inst.id}`}
|
link={`/feed/${inst.id}`}
|
||||||
button={
|
button={
|
||||||
<Button type={ButtonType.Filled} onClick={() => { }}>
|
<Button type={ButtonType.Filled} onClick={() => { }}>
|
||||||
|
|||||||
@@ -35,8 +35,8 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
button {
|
button {
|
||||||
background-color: color(blue);
|
background-color: color(blue1);
|
||||||
color: color(white);
|
color: color(white1);
|
||||||
padding: 0.5rem 1rem;
|
padding: 0.5rem 1rem;
|
||||||
border: none;
|
border: none;
|
||||||
outline: none;
|
outline: none;
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import FreshmenPage from "./pages/FreshmenPage";
|
|||||||
import StudiesPage from "./pages/StudiesPage";
|
import StudiesPage from "./pages/StudiesPage";
|
||||||
import CorporatePage from "./pages/CorporatePage";
|
import CorporatePage from "./pages/CorporatePage";
|
||||||
import InEnglishPage from "./pages/InEnglishPage";
|
import InEnglishPage from "./pages/InEnglishPage";
|
||||||
|
import EventPage from "./pages/EventPage";
|
||||||
|
|
||||||
const renderPage = (Page) => (props): JSX.Element => {
|
const renderPage = (Page) => (props): JSX.Element => {
|
||||||
return <CommonPage page={Page} {...props} />;
|
return <CommonPage page={Page} {...props} />;
|
||||||
@@ -40,6 +41,7 @@ const renderAdminPage = (Page) => (props): JSX.Element => {
|
|||||||
const commonRoutes = [
|
const commonRoutes = [
|
||||||
{ path: "/", page: FrontPage },
|
{ path: "/", page: FrontPage },
|
||||||
{ path: "/signup/:id", page: SignUpPage },
|
{ path: "/signup/:id", page: SignUpPage },
|
||||||
|
{ path: "/events/:id", page: EventPage },
|
||||||
{ path: "/kilta", page: GuildPage },
|
{ path: "/kilta", page: GuildPage },
|
||||||
{ path: "/kilta/toiminta", page: ActualPage },
|
{ path: "/kilta/toiminta", page: ActualPage },
|
||||||
{ path: "/kilta/fuksi", page: FreshmenPage },
|
{ path: "/kilta/fuksi", page: FreshmenPage },
|
||||||
|
|||||||
Reference in New Issue
Block a user