Archived
Compare commits
82
Commits
2022.05
...
3f17341b2e
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
3f17341b2e | ||
|
|
6165f523cc | ||
|
|
f2e265391c | ||
|
|
3c7adf012f | ||
|
|
7c8c16362c | ||
|
|
6555e68145 | ||
|
|
945c641503 | ||
|
|
60bc4c1a10 | ||
|
|
7b42ca252b | ||
|
|
9ef6c4d308 | ||
|
|
ed7f7923ca | ||
|
|
98142fab56 | ||
|
|
c460d31522 | ||
|
|
4c5b89852b | ||
|
|
fa90eaf1af | ||
|
|
aeded938bd | ||
|
|
c61a4fe7f4 | ||
|
|
8c3c40cfe6 | ||
|
|
e6e10c835e | ||
|
|
07a87175b4 | ||
|
|
e9ace73ddd | ||
|
|
12312c0e8b | ||
|
|
d365b1d5b5 | ||
|
|
846eee1ae5 | ||
|
|
2588732b91 | ||
|
|
de0089fbe8 | ||
|
|
d4e7756176 | ||
|
|
72c34310df | ||
|
|
0c0d0989b2 | ||
|
|
a86ab9f3c7 | ||
|
|
a2264a28e0 | ||
|
|
a4c34fe21c | ||
|
|
9196358842 | ||
|
|
f4cbb1ff68 | ||
|
|
f008e97e39 | ||
|
|
61d2fc8d54 | ||
|
|
80760a8fdd | ||
|
|
a7f53a841b | ||
|
|
9d64fce22c | ||
|
|
e39c0b055d | ||
|
|
237fd27489 | ||
|
|
296385ab33 | ||
|
|
402bbcea0d | ||
|
|
161717bc7b | ||
|
|
0b8dbf4e2e | ||
|
|
2acf13cbac | ||
|
|
a408f4bffa | ||
|
|
ac5bd7d635 | ||
|
|
cf84f8c93d | ||
|
|
4872dee094 | ||
|
|
b76a933dba | ||
|
|
41c7ab15f3 | ||
|
|
a9185b86af | ||
|
|
eb1b8f18eb | ||
|
|
bce562fb8e | ||
|
|
2825ce4ccc | ||
|
|
5d83293540 | ||
|
|
b652555f37 | ||
|
|
3db09c1e2a | ||
|
|
0d40141b2d | ||
|
|
33e7a2310d | ||
|
|
ddb112b989 | ||
|
|
7502bc54d1 | ||
|
|
15cc2c33f1 | ||
|
|
eb0e928c6f | ||
|
|
5631d23355 | ||
|
|
0470cb0fa1 | ||
|
|
1656b465ee | ||
|
|
a558b23a98 | ||
|
|
c569076c5d | ||
|
|
be2516a3b8 | ||
|
|
7f62a74877 | ||
|
|
3b296a1fba | ||
|
|
28c9cd353d | ||
|
|
83a5c1a7d2 | ||
|
|
a767502d66 | ||
|
|
897ac3dab5 | ||
|
|
2f165b4b48 | ||
|
|
3994818b6a | ||
|
|
7b2dbc1777 | ||
|
|
8c59976de6 | ||
|
|
d551a2cf7a |
@@ -0,0 +1,22 @@
|
|||||||
|
module.exports = {
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es2021": true
|
||||||
|
},
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended"
|
||||||
|
],
|
||||||
|
"overrides": [
|
||||||
|
],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": "latest",
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"@typescript-eslint"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -33,6 +33,7 @@ speed-measure-plugin.json
|
|||||||
.history/*
|
.history/*
|
||||||
|
|
||||||
# misc
|
# misc
|
||||||
|
/.angular/cache
|
||||||
/.sass-cache
|
/.sass-cache
|
||||||
/connect.lock
|
/connect.lock
|
||||||
/coverage
|
/coverage
|
||||||
@@ -47,3 +48,7 @@ testem.log
|
|||||||
Thumbs.db
|
Thumbs.db
|
||||||
projects/common/node_modules/
|
projects/common/node_modules/
|
||||||
projects/common-map/node_modules/
|
projects/common-map/node_modules/
|
||||||
|
.angular/*
|
||||||
|
projects/common-map3d/node_modules/
|
||||||
|
projects/common-map/node_modules/
|
||||||
|
projects/common/node_modules/
|
||||||
|
|||||||
@@ -55,5 +55,11 @@ ng serve
|
|||||||
|
|
||||||
Point your browser to http://localhost:4200
|
Point your browser to http://localhost:4200
|
||||||
|
|
||||||
|
*ESLint*
|
||||||
|
|
||||||
|
```
|
||||||
|
npm run lint src
|
||||||
|
npm run lint projects/common/src
|
||||||
|
npm run lint projects/common-map/src
|
||||||
|
npm run lint projects/common-map3d/src
|
||||||
|
```
|
||||||
+4
-59
@@ -48,7 +48,7 @@
|
|||||||
"styles": [
|
"styles": [
|
||||||
"src/styles.css",
|
"src/styles.css",
|
||||||
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
"node_modules/bootstrap/dist/css/bootstrap.min.css",
|
||||||
"fontawesome-5.15.2/css/all.min.css",
|
"fontawesome-6.2.1/css/all.min.css",
|
||||||
"fonts/FMIconFont/style.css",
|
"fonts/FMIconFont/style.css",
|
||||||
"node_modules/cesium/Build/Cesium/Widgets/widgets.css",
|
"node_modules/cesium/Build/Cesium/Widgets/widgets.css",
|
||||||
"node_modules/ol/ol.css"
|
"node_modules/ol/ol.css"
|
||||||
@@ -148,18 +148,6 @@
|
|||||||
"src/assets"
|
"src/assets"
|
||||||
]
|
]
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": [
|
|
||||||
"src/tsconfig.app.json",
|
|
||||||
"src/tsconfig.spec.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -179,15 +167,6 @@
|
|||||||
"devServerTarget": "farmmaps-lib-app:serve:production"
|
"devServerTarget": "farmmaps-lib-app:serve:production"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": "e2e/tsconfig.e2e.json",
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -216,18 +195,6 @@
|
|||||||
"tsConfig": "projects/common/tsconfig.spec.json",
|
"tsConfig": "projects/common/tsconfig.spec.json",
|
||||||
"karmaConfig": "projects/common/karma.conf.js"
|
"karmaConfig": "projects/common/karma.conf.js"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": [
|
|
||||||
"projects/common/tsconfig.lib.json",
|
|
||||||
"projects/common/tsconfig.spec.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -256,18 +223,6 @@
|
|||||||
"tsConfig": "projects/common-map/tsconfig.spec.json",
|
"tsConfig": "projects/common-map/tsconfig.spec.json",
|
||||||
"karmaConfig": "projects/common-map/karma.conf.js"
|
"karmaConfig": "projects/common-map/karma.conf.js"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": [
|
|
||||||
"projects/common-map/tsconfig.lib.json",
|
|
||||||
"projects/common-map/tsconfig.spec.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
@@ -296,21 +251,11 @@
|
|||||||
"tsConfig": "projects/common-map3d/tsconfig.spec.json",
|
"tsConfig": "projects/common-map3d/tsconfig.spec.json",
|
||||||
"karmaConfig": "projects/common-map3d/karma.conf.js"
|
"karmaConfig": "projects/common-map3d/karma.conf.js"
|
||||||
}
|
}
|
||||||
},
|
|
||||||
"lint": {
|
|
||||||
"builder": "@angular-devkit/build-angular:tslint",
|
|
||||||
"options": {
|
|
||||||
"tsConfig": [
|
|
||||||
"projects/common-map3d/tsconfig.lib.json",
|
|
||||||
"projects/common-map3d/tsconfig.spec.json"
|
|
||||||
],
|
|
||||||
"exclude": [
|
|
||||||
"**/node_modules/**"
|
|
||||||
]
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"defaultProject": "farmmaps-lib-app"
|
"cli": {
|
||||||
|
"analytics": false
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -4,9 +4,13 @@ module.exports = {
|
|||||||
// Resolve node module use of fs
|
// Resolve node module use of fs
|
||||||
fs: "empty",
|
fs: "empty",
|
||||||
Buffer: false,
|
Buffer: false,
|
||||||
http: "empty",
|
http: require.resolve("stream-http"),
|
||||||
https: "empty",
|
https: require.resolve("https-browserify"),
|
||||||
zlib: "empty"
|
url: require.resolve("url/"),
|
||||||
|
zlib: require.resolve('browserify-zlib'),
|
||||||
|
assert: require.resolve("assert/"),
|
||||||
|
util: require.resolve("util/"),
|
||||||
|
buffer: require.resolve("buffer/")
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
};
|
};
|
||||||
File diff suppressed because it is too large
Load Diff
Vendored
-5
File diff suppressed because one or more lines are too long
@@ -1,15 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Font Awesome 5 Brands';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: block;
|
|
||||||
src: url("../webfonts/fa-brands-400.eot");
|
|
||||||
src: url("../webfonts/fa-brands-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.woff") format("woff"), url("../webfonts/fa-brands-400.ttf") format("truetype"), url("../webfonts/fa-brands-400.svg#fontawesome") format("svg"); }
|
|
||||||
|
|
||||||
.fab {
|
|
||||||
font-family: 'Font Awesome 5 Brands';
|
|
||||||
font-weight: 400; }
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face{font-family:"Font Awesome 5 Brands";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-brands-400.eot);src:url(../webfonts/fa-brands-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.woff) format("woff"),url(../webfonts/fa-brands-400.ttf) format("truetype"),url(../webfonts/fa-brands-400.svg#fontawesome) format("svg")}.fab{font-family:"Font Awesome 5 Brands";font-weight:400}
|
|
||||||
File diff suppressed because it is too large
Load Diff
-5
File diff suppressed because one or more lines are too long
-7138
File diff suppressed because it is too large
Load Diff
-5
File diff suppressed because one or more lines are too long
@@ -1,15 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 300;
|
|
||||||
font-display: block;
|
|
||||||
src: url("../webfonts/fa-light-300.eot");
|
|
||||||
src: url("../webfonts/fa-light-300.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.woff") format("woff"), url("../webfonts/fa-light-300.ttf") format("truetype"), url("../webfonts/fa-light-300.svg#fontawesome") format("svg"); }
|
|
||||||
|
|
||||||
.fal {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-weight: 300; }
|
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:300;font-display:block;src:url(../webfonts/fa-light-300.eot);src:url(../webfonts/fa-light-300.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.woff) format("woff"),url(../webfonts/fa-light-300.ttf) format("truetype"),url(../webfonts/fa-light-300.svg#fontawesome) format("svg")}.fal{font-family:"Font Awesome 5 Pro";font-weight:300}
|
|
||||||
@@ -1,15 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 400;
|
|
||||||
font-display: block;
|
|
||||||
src: url("../webfonts/fa-regular-400.eot");
|
|
||||||
src: url("../webfonts/fa-regular-400.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.woff") format("woff"), url("../webfonts/fa-regular-400.ttf") format("truetype"), url("../webfonts/fa-regular-400.svg#fontawesome") format("svg"); }
|
|
||||||
|
|
||||||
.far {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-weight: 400; }
|
|
||||||
-5
@@ -1,5 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.eot);src:url(../webfonts/fa-regular-400.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.woff) format("woff"),url(../webfonts/fa-regular-400.ttf) format("truetype"),url(../webfonts/fa-regular-400.svg#fontawesome) format("svg")}.far{font-family:"Font Awesome 5 Pro";font-weight:400}
|
|
||||||
@@ -1,16 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-style: normal;
|
|
||||||
font-weight: 900;
|
|
||||||
font-display: block;
|
|
||||||
src: url("../webfonts/fa-solid-900.eot");
|
|
||||||
src: url("../webfonts/fa-solid-900.eot?#iefix") format("embedded-opentype"), url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.woff") format("woff"), url("../webfonts/fa-solid-900.ttf") format("truetype"), url("../webfonts/fa-solid-900.svg#fontawesome") format("svg"); }
|
|
||||||
|
|
||||||
.fa,
|
|
||||||
.fas {
|
|
||||||
font-family: 'Font Awesome 5 Pro';
|
|
||||||
font-weight: 900; }
|
|
||||||
Vendored
-5
@@ -1,5 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
@font-face{font-family:"Font Awesome 5 Pro";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.eot);src:url(../webfonts/fa-solid-900.eot?#iefix) format("embedded-opentype"),url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.woff) format("woff"),url(../webfonts/fa-solid-900.ttf) format("truetype"),url(../webfonts/fa-solid-900.svg#fontawesome) format("svg")}.fa,.fas{font-family:"Font Awesome 5 Pro";font-weight:900}
|
|
||||||
@@ -1,371 +0,0 @@
|
|||||||
/*!
|
|
||||||
* Font Awesome Pro 5.15.2 by @fontawesome - https://fontawesome.com
|
|
||||||
* License - https://fontawesome.com/license (Commercial License)
|
|
||||||
*/
|
|
||||||
svg:not(:root).svg-inline--fa {
|
|
||||||
overflow: visible; }
|
|
||||||
|
|
||||||
.svg-inline--fa {
|
|
||||||
display: inline-block;
|
|
||||||
font-size: inherit;
|
|
||||||
height: 1em;
|
|
||||||
overflow: visible;
|
|
||||||
vertical-align: -.125em; }
|
|
||||||
.svg-inline--fa.fa-lg {
|
|
||||||
vertical-align: -.225em; }
|
|
||||||
.svg-inline--fa.fa-w-1 {
|
|
||||||
width: 0.0625em; }
|
|
||||||
.svg-inline--fa.fa-w-2 {
|
|
||||||
width: 0.125em; }
|
|
||||||
.svg-inline--fa.fa-w-3 {
|
|
||||||
width: 0.1875em; }
|
|
||||||
.svg-inline--fa.fa-w-4 {
|
|
||||||
width: 0.25em; }
|
|
||||||
.svg-inline--fa.fa-w-5 {
|
|
||||||
width: 0.3125em; }
|
|
||||||
.svg-inline--fa.fa-w-6 {
|
|
||||||
width: 0.375em; }
|
|
||||||
.svg-inline--fa.fa-w-7 {
|
|
||||||
width: 0.4375em; }
|
|
||||||
.svg-inline--fa.fa-w-8 {
|
|
||||||
width: 0.5em; }
|
|
||||||
.svg-inline--fa.fa-w-9 {
|
|
||||||
width: 0.5625em; }
|
|
||||||
.svg-inline--fa.fa-w-10 {
|
|
||||||
width: 0.625em; }
|
|
||||||
.svg-inline--fa.fa-w-11 {
|
|
||||||
width: 0.6875em; }
|
|
||||||
.svg-inline--fa.fa-w-12 {
|
|
||||||
width: 0.75em; }
|
|
||||||
.svg-inline--fa.fa-w-13 {
|
|
||||||
width: 0.8125em; }
|
|
||||||
.svg-inline--fa.fa-w-14 {
|
|
||||||
width: 0.875em; }
|
|
||||||
.svg-inline--fa.fa-w-15 {
|
|
||||||
width: 0.9375em; }
|
|
||||||
.svg-inline--fa.fa-w-16 {
|
|
||||||
width: 1em; }
|
|
||||||
.svg-inline--fa.fa-w-17 {
|
|
||||||
width: 1.0625em; }
|
|
||||||
.svg-inline--fa.fa-w-18 {
|
|
||||||
width: 1.125em; }
|
|
||||||
.svg-inline--fa.fa-w-19 {
|
|
||||||
width: 1.1875em; }
|
|
||||||
.svg-inline--fa.fa-w-20 {
|
|
||||||
width: 1.25em; }
|
|
||||||
.svg-inline--fa.fa-pull-left {
|
|
||||||
margin-right: .3em;
|
|
||||||
width: auto; }
|
|
||||||
.svg-inline--fa.fa-pull-right {
|
|
||||||
margin-left: .3em;
|
|
||||||
width: auto; }
|
|
||||||
.svg-inline--fa.fa-border {
|
|
||||||
height: 1.5em; }
|
|
||||||
.svg-inline--fa.fa-li {
|
|
||||||
width: 2em; }
|
|
||||||
.svg-inline--fa.fa-fw {
|
|
||||||
width: 1.25em; }
|
|
||||||
|
|
||||||
.fa-layers svg.svg-inline--fa {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
margin: auto;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0; }
|
|
||||||
|
|
||||||
.fa-layers {
|
|
||||||
display: inline-block;
|
|
||||||
height: 1em;
|
|
||||||
position: relative;
|
|
||||||
text-align: center;
|
|
||||||
vertical-align: -.125em;
|
|
||||||
width: 1em; }
|
|
||||||
.fa-layers svg.svg-inline--fa {
|
|
||||||
-webkit-transform-origin: center center;
|
|
||||||
transform-origin: center center; }
|
|
||||||
|
|
||||||
.fa-layers-text, .fa-layers-counter {
|
|
||||||
display: inline-block;
|
|
||||||
position: absolute;
|
|
||||||
text-align: center; }
|
|
||||||
|
|
||||||
.fa-layers-text {
|
|
||||||
left: 50%;
|
|
||||||
top: 50%;
|
|
||||||
-webkit-transform: translate(-50%, -50%);
|
|
||||||
transform: translate(-50%, -50%);
|
|
||||||
-webkit-transform-origin: center center;
|
|
||||||
transform-origin: center center; }
|
|
||||||
|
|
||||||
.fa-layers-counter {
|
|
||||||
background-color: #ff253a;
|
|
||||||
border-radius: 1em;
|
|
||||||
-webkit-box-sizing: border-box;
|
|
||||||
box-sizing: border-box;
|
|
||||||
color: #fff;
|
|
||||||
height: 1.5em;
|
|
||||||
line-height: 1;
|
|
||||||
max-width: 5em;
|
|
||||||
min-width: 1.5em;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: .25em;
|
|
||||||
right: 0;
|
|
||||||
text-overflow: ellipsis;
|
|
||||||
top: 0;
|
|
||||||
-webkit-transform: scale(0.25);
|
|
||||||
transform: scale(0.25);
|
|
||||||
-webkit-transform-origin: top right;
|
|
||||||
transform-origin: top right; }
|
|
||||||
|
|
||||||
.fa-layers-bottom-right {
|
|
||||||
bottom: 0;
|
|
||||||
right: 0;
|
|
||||||
top: auto;
|
|
||||||
-webkit-transform: scale(0.25);
|
|
||||||
transform: scale(0.25);
|
|
||||||
-webkit-transform-origin: bottom right;
|
|
||||||
transform-origin: bottom right; }
|
|
||||||
|
|
||||||
.fa-layers-bottom-left {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
right: auto;
|
|
||||||
top: auto;
|
|
||||||
-webkit-transform: scale(0.25);
|
|
||||||
transform: scale(0.25);
|
|
||||||
-webkit-transform-origin: bottom left;
|
|
||||||
transform-origin: bottom left; }
|
|
||||||
|
|
||||||
.fa-layers-top-right {
|
|
||||||
right: 0;
|
|
||||||
top: 0;
|
|
||||||
-webkit-transform: scale(0.25);
|
|
||||||
transform: scale(0.25);
|
|
||||||
-webkit-transform-origin: top right;
|
|
||||||
transform-origin: top right; }
|
|
||||||
|
|
||||||
.fa-layers-top-left {
|
|
||||||
left: 0;
|
|
||||||
right: auto;
|
|
||||||
top: 0;
|
|
||||||
-webkit-transform: scale(0.25);
|
|
||||||
transform: scale(0.25);
|
|
||||||
-webkit-transform-origin: top left;
|
|
||||||
transform-origin: top left; }
|
|
||||||
|
|
||||||
.fa-lg {
|
|
||||||
font-size: 1.33333em;
|
|
||||||
line-height: 0.75em;
|
|
||||||
vertical-align: -.0667em; }
|
|
||||||
|
|
||||||
.fa-xs {
|
|
||||||
font-size: .75em; }
|
|
||||||
|
|
||||||
.fa-sm {
|
|
||||||
font-size: .875em; }
|
|
||||||
|
|
||||||
.fa-1x {
|
|
||||||
font-size: 1em; }
|
|
||||||
|
|
||||||
.fa-2x {
|
|
||||||
font-size: 2em; }
|
|
||||||
|
|
||||||
.fa-3x {
|
|
||||||
font-size: 3em; }
|
|
||||||
|
|
||||||
.fa-4x {
|
|
||||||
font-size: 4em; }
|
|
||||||
|
|
||||||
.fa-5x {
|
|
||||||
font-size: 5em; }
|
|
||||||
|
|
||||||
.fa-6x {
|
|
||||||
font-size: 6em; }
|
|
||||||
|
|
||||||
.fa-7x {
|
|
||||||
font-size: 7em; }
|
|
||||||
|
|
||||||
.fa-8x {
|
|
||||||
font-size: 8em; }
|
|
||||||
|
|
||||||
.fa-9x {
|
|
||||||
font-size: 9em; }
|
|
||||||
|
|
||||||
.fa-10x {
|
|
||||||
font-size: 10em; }
|
|
||||||
|
|
||||||
.fa-fw {
|
|
||||||
text-align: center;
|
|
||||||
width: 1.25em; }
|
|
||||||
|
|
||||||
.fa-ul {
|
|
||||||
list-style-type: none;
|
|
||||||
margin-left: 2.5em;
|
|
||||||
padding-left: 0; }
|
|
||||||
.fa-ul > li {
|
|
||||||
position: relative; }
|
|
||||||
|
|
||||||
.fa-li {
|
|
||||||
left: -2em;
|
|
||||||
position: absolute;
|
|
||||||
text-align: center;
|
|
||||||
width: 2em;
|
|
||||||
line-height: inherit; }
|
|
||||||
|
|
||||||
.fa-border {
|
|
||||||
border: solid 0.08em #eee;
|
|
||||||
border-radius: .1em;
|
|
||||||
padding: .2em .25em .15em; }
|
|
||||||
|
|
||||||
.fa-pull-left {
|
|
||||||
float: left; }
|
|
||||||
|
|
||||||
.fa-pull-right {
|
|
||||||
float: right; }
|
|
||||||
|
|
||||||
.fa.fa-pull-left,
|
|
||||||
.fas.fa-pull-left,
|
|
||||||
.far.fa-pull-left,
|
|
||||||
.fal.fa-pull-left,
|
|
||||||
.fab.fa-pull-left {
|
|
||||||
margin-right: .3em; }
|
|
||||||
|
|
||||||
.fa.fa-pull-right,
|
|
||||||
.fas.fa-pull-right,
|
|
||||||
.far.fa-pull-right,
|
|
||||||
.fal.fa-pull-right,
|
|
||||||
.fab.fa-pull-right {
|
|
||||||
margin-left: .3em; }
|
|
||||||
|
|
||||||
.fa-spin {
|
|
||||||
-webkit-animation: fa-spin 2s infinite linear;
|
|
||||||
animation: fa-spin 2s infinite linear; }
|
|
||||||
|
|
||||||
.fa-pulse {
|
|
||||||
-webkit-animation: fa-spin 1s infinite steps(8);
|
|
||||||
animation: fa-spin 1s infinite steps(8); }
|
|
||||||
|
|
||||||
@-webkit-keyframes fa-spin {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: rotate(0deg);
|
|
||||||
transform: rotate(0deg); }
|
|
||||||
100% {
|
|
||||||
-webkit-transform: rotate(360deg);
|
|
||||||
transform: rotate(360deg); } }
|
|
||||||
|
|
||||||
@keyframes fa-spin {
|
|
||||||
0% {
|
|
||||||
-webkit-transform: rotate(0deg);
|
|
||||||
transform: rotate(0deg); }
|
|
||||||
100% {
|
|
||||||
-webkit-transform: rotate(360deg);
|
|
||||||
transform: rotate(360deg); } }
|
|
||||||
|
|
||||||
.fa-rotate-90 {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=1)";
|
|
||||||
-webkit-transform: rotate(90deg);
|
|
||||||
transform: rotate(90deg); }
|
|
||||||
|
|
||||||
.fa-rotate-180 {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2)";
|
|
||||||
-webkit-transform: rotate(180deg);
|
|
||||||
transform: rotate(180deg); }
|
|
||||||
|
|
||||||
.fa-rotate-270 {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=3)";
|
|
||||||
-webkit-transform: rotate(270deg);
|
|
||||||
transform: rotate(270deg); }
|
|
||||||
|
|
||||||
.fa-flip-horizontal {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=0, mirror=1)";
|
|
||||||
-webkit-transform: scale(-1, 1);
|
|
||||||
transform: scale(-1, 1); }
|
|
||||||
|
|
||||||
.fa-flip-vertical {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
|
||||||
-webkit-transform: scale(1, -1);
|
|
||||||
transform: scale(1, -1); }
|
|
||||||
|
|
||||||
.fa-flip-both, .fa-flip-horizontal.fa-flip-vertical {
|
|
||||||
-ms-filter: "progid:DXImageTransform.Microsoft.BasicImage(rotation=2, mirror=1)";
|
|
||||||
-webkit-transform: scale(-1, -1);
|
|
||||||
transform: scale(-1, -1); }
|
|
||||||
|
|
||||||
:root .fa-rotate-90,
|
|
||||||
:root .fa-rotate-180,
|
|
||||||
:root .fa-rotate-270,
|
|
||||||
:root .fa-flip-horizontal,
|
|
||||||
:root .fa-flip-vertical,
|
|
||||||
:root .fa-flip-both {
|
|
||||||
-webkit-filter: none;
|
|
||||||
filter: none; }
|
|
||||||
|
|
||||||
.fa-stack {
|
|
||||||
display: inline-block;
|
|
||||||
height: 2em;
|
|
||||||
position: relative;
|
|
||||||
width: 2.5em; }
|
|
||||||
|
|
||||||
.fa-stack-1x,
|
|
||||||
.fa-stack-2x {
|
|
||||||
bottom: 0;
|
|
||||||
left: 0;
|
|
||||||
margin: auto;
|
|
||||||
position: absolute;
|
|
||||||
right: 0;
|
|
||||||
top: 0; }
|
|
||||||
|
|
||||||
.svg-inline--fa.fa-stack-1x {
|
|
||||||
height: 1em;
|
|
||||||
width: 1.25em; }
|
|
||||||
|
|
||||||
.svg-inline--fa.fa-stack-2x {
|
|
||||||
height: 2em;
|
|
||||||
width: 2.5em; }
|
|
||||||
|
|
||||||
.fa-inverse {
|
|
||||||
color: #fff; }
|
|
||||||
|
|
||||||
.sr-only {
|
|
||||||
border: 0;
|
|
||||||
clip: rect(0, 0, 0, 0);
|
|
||||||
height: 1px;
|
|
||||||
margin: -1px;
|
|
||||||
overflow: hidden;
|
|
||||||
padding: 0;
|
|
||||||
position: absolute;
|
|
||||||
width: 1px; }
|
|
||||||
|
|
||||||
.sr-only-focusable:active, .sr-only-focusable:focus {
|
|
||||||
clip: auto;
|
|
||||||
height: auto;
|
|
||||||
margin: 0;
|
|
||||||
overflow: visible;
|
|
||||||
position: static;
|
|
||||||
width: auto; }
|
|
||||||
|
|
||||||
.svg-inline--fa .fa-primary {
|
|
||||||
fill: var(--fa-primary-color, currentColor);
|
|
||||||
opacity: 1;
|
|
||||||
opacity: var(--fa-primary-opacity, 1); }
|
|
||||||
|
|
||||||
.svg-inline--fa .fa-secondary {
|
|
||||||
fill: var(--fa-secondary-color, currentColor);
|
|
||||||
opacity: 0.4;
|
|
||||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
|
||||||
|
|
||||||
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
|
||||||
opacity: 0.4;
|
|
||||||
opacity: var(--fa-secondary-opacity, 0.4); }
|
|
||||||
|
|
||||||
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
|
||||||
opacity: 1;
|
|
||||||
opacity: var(--fa-primary-opacity, 1); }
|
|
||||||
|
|
||||||
.svg-inline--fa mask .fa-primary,
|
|
||||||
.svg-inline--fa mask .fa-secondary {
|
|
||||||
fill: black; }
|
|
||||||
|
|
||||||
.fad.fa-inverse {
|
|
||||||
color: #fff; }
|
|
||||||
-5
File diff suppressed because one or more lines are too long
-5
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 730 KiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 2.5 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 2.3 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 2.1 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
File diff suppressed because it is too large
Load Diff
|
Before Width: | Height: | Size: 1.7 MiB |
Binary file not shown.
Binary file not shown.
Binary file not shown.
@@ -0,0 +1,18 @@
|
|||||||
|
Font Awesome Pro License
|
||||||
|
------------------------
|
||||||
|
|
||||||
|
Font Awesome Pro is commercial software that requires a paid license. Full
|
||||||
|
Font Awesome Pro license: https://fontawesome.com/license.
|
||||||
|
|
||||||
|
# Commercial License
|
||||||
|
The Font Awesome Pro commercial license allows you to pay for FA Pro once, own
|
||||||
|
it, and use it just about everywhere you'd like.
|
||||||
|
|
||||||
|
# Attribution
|
||||||
|
Attribution is not required by the Font Awesome Pro commercial license.
|
||||||
|
|
||||||
|
# Brand Icons
|
||||||
|
All brand icons are trademarks of their respective owners. The use of these
|
||||||
|
trademarks does not indicate endorsement of the trademark holder by Font
|
||||||
|
Awesome, nor vice versa. **Please do not use brand logos for any purpose except
|
||||||
|
to represent the company, product, or service to which they refer.**
|
||||||
File diff suppressed because it is too large
Load Diff
Vendored
+6
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
Vendored
+6
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large
Load Diff
+6
File diff suppressed because one or more lines are too long
+12940
File diff suppressed because it is too large
Load Diff
+6
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-light: normal 300 1em/1 'Font Awesome 6 Pro'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 300;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.fal,
|
||||||
|
.fa-light {
|
||||||
|
font-weight: 300; }
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-light:normal 300 1em/1 "Font Awesome 6 Pro"}@font-face{font-family:"Font Awesome 6 Pro";font-style:normal;font-weight:300;font-display:block;src:url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.ttf) format("truetype")}.fa-light,.fal{font-weight:300}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Pro'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 400;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.far,
|
||||||
|
.fa-regular {
|
||||||
|
font-weight: 400; }
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-regular:normal 400 1em/1 "Font Awesome 6 Pro"}@font-face{font-family:"Font Awesome 6 Pro";font-style:normal;font-weight:400;font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}.fa-regular,.far{font-weight:400}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-sharp: 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Sharp';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-sharp-solid-900.woff2") format("woff2"), url("../webfonts/fa-sharp-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.fass,
|
||||||
|
.fa-sharp-solid {
|
||||||
|
font-weight: 900; }
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-sharp:"Font Awesome 6 Sharp";--fa-font-sharp-solid:normal 900 1em/1 "Font Awesome 6 Sharp"}@font-face{font-family:"Font Awesome 6 Sharp";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-sharp-solid-900.woff2) format("woff2"),url(../webfonts/fa-sharp-solid-900.ttf) format("truetype")}.fa-sharp-solid,.fass{font-weight:900}
|
||||||
@@ -0,0 +1,19 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Pro'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 900;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.fas,
|
||||||
|
.fa-solid {
|
||||||
|
font-weight: 900; }
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-solid:normal 900 1em/1 "Font Awesome 6 Pro"}@font-face{font-family:"Font Awesome 6 Pro";font-style:normal;font-weight:900;font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}.fa-solid,.fas{font-weight:900}
|
||||||
@@ -0,0 +1,635 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-font-solid: normal 900 1em/1 'Font Awesome 6 Solid';
|
||||||
|
--fa-font-regular: normal 400 1em/1 'Font Awesome 6 Regular';
|
||||||
|
--fa-font-light: normal 300 1em/1 'Font Awesome 6 Light';
|
||||||
|
--fa-font-thin: normal 100 1em/1 'Font Awesome 6 Thin';
|
||||||
|
--fa-font-duotone: normal 900 1em/1 'Font Awesome 6 Duotone';
|
||||||
|
--fa-font-sharp-solid: normal 900 1em/1 'Font Awesome 6 Sharp';
|
||||||
|
--fa-font-brands: normal 400 1em/1 'Font Awesome 6 Brands'; }
|
||||||
|
|
||||||
|
svg:not(:root).svg-inline--fa, svg:not(:host).svg-inline--fa {
|
||||||
|
overflow: visible;
|
||||||
|
box-sizing: content-box; }
|
||||||
|
|
||||||
|
.svg-inline--fa {
|
||||||
|
display: var(--fa-display, inline-block);
|
||||||
|
height: 1em;
|
||||||
|
overflow: visible;
|
||||||
|
vertical-align: -.125em; }
|
||||||
|
.svg-inline--fa.fa-2xs {
|
||||||
|
vertical-align: 0.1em; }
|
||||||
|
.svg-inline--fa.fa-xs {
|
||||||
|
vertical-align: 0em; }
|
||||||
|
.svg-inline--fa.fa-sm {
|
||||||
|
vertical-align: -0.07143em; }
|
||||||
|
.svg-inline--fa.fa-lg {
|
||||||
|
vertical-align: -0.2em; }
|
||||||
|
.svg-inline--fa.fa-xl {
|
||||||
|
vertical-align: -0.25em; }
|
||||||
|
.svg-inline--fa.fa-2xl {
|
||||||
|
vertical-align: -0.3125em; }
|
||||||
|
.svg-inline--fa.fa-pull-left {
|
||||||
|
margin-right: var(--fa-pull-margin, 0.3em);
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-pull-right {
|
||||||
|
margin-left: var(--fa-pull-margin, 0.3em);
|
||||||
|
width: auto; }
|
||||||
|
.svg-inline--fa.fa-li {
|
||||||
|
width: var(--fa-li-width, 2em);
|
||||||
|
top: 0.25em; }
|
||||||
|
.svg-inline--fa.fa-fw {
|
||||||
|
width: var(--fa-fw-width, 1.25em); }
|
||||||
|
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0; }
|
||||||
|
|
||||||
|
.fa-layers-text, .fa-layers-counter {
|
||||||
|
display: inline-block;
|
||||||
|
position: absolute;
|
||||||
|
text-align: center; }
|
||||||
|
|
||||||
|
.fa-layers {
|
||||||
|
display: inline-block;
|
||||||
|
height: 1em;
|
||||||
|
position: relative;
|
||||||
|
text-align: center;
|
||||||
|
vertical-align: -.125em;
|
||||||
|
width: 1em; }
|
||||||
|
.fa-layers svg.svg-inline--fa {
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-text {
|
||||||
|
left: 50%;
|
||||||
|
top: 50%;
|
||||||
|
-webkit-transform: translate(-50%, -50%);
|
||||||
|
transform: translate(-50%, -50%);
|
||||||
|
-webkit-transform-origin: center center;
|
||||||
|
transform-origin: center center; }
|
||||||
|
|
||||||
|
.fa-layers-counter {
|
||||||
|
background-color: var(--fa-counter-background-color, #ff253a);
|
||||||
|
border-radius: var(--fa-counter-border-radius, 1em);
|
||||||
|
box-sizing: border-box;
|
||||||
|
color: var(--fa-inverse, #fff);
|
||||||
|
line-height: var(--fa-counter-line-height, 1);
|
||||||
|
max-width: var(--fa-counter-max-width, 5em);
|
||||||
|
min-width: var(--fa-counter-min-width, 1.5em);
|
||||||
|
overflow: hidden;
|
||||||
|
padding: var(--fa-counter-padding, 0.25em 0.5em);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
text-overflow: ellipsis;
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
-webkit-transform: scale(var(--fa-counter-scale, 0.25));
|
||||||
|
transform: scale(var(--fa-counter-scale, 0.25));
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-right {
|
||||||
|
bottom: var(--fa-bottom, 0);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
-webkit-transform-origin: bottom right;
|
||||||
|
transform-origin: bottom right; }
|
||||||
|
|
||||||
|
.fa-layers-bottom-left {
|
||||||
|
bottom: var(--fa-bottom, 0);
|
||||||
|
left: var(--fa-left, 0);
|
||||||
|
right: auto;
|
||||||
|
top: auto;
|
||||||
|
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
-webkit-transform-origin: bottom left;
|
||||||
|
transform-origin: bottom left; }
|
||||||
|
|
||||||
|
.fa-layers-top-right {
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
right: var(--fa-right, 0);
|
||||||
|
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
-webkit-transform-origin: top right;
|
||||||
|
transform-origin: top right; }
|
||||||
|
|
||||||
|
.fa-layers-top-left {
|
||||||
|
left: var(--fa-left, 0);
|
||||||
|
right: auto;
|
||||||
|
top: var(--fa-top, 0);
|
||||||
|
-webkit-transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
transform: scale(var(--fa-layers-scale, 0.25));
|
||||||
|
-webkit-transform-origin: top left;
|
||||||
|
transform-origin: top left; }
|
||||||
|
|
||||||
|
.fa-1x {
|
||||||
|
font-size: 1em; }
|
||||||
|
|
||||||
|
.fa-2x {
|
||||||
|
font-size: 2em; }
|
||||||
|
|
||||||
|
.fa-3x {
|
||||||
|
font-size: 3em; }
|
||||||
|
|
||||||
|
.fa-4x {
|
||||||
|
font-size: 4em; }
|
||||||
|
|
||||||
|
.fa-5x {
|
||||||
|
font-size: 5em; }
|
||||||
|
|
||||||
|
.fa-6x {
|
||||||
|
font-size: 6em; }
|
||||||
|
|
||||||
|
.fa-7x {
|
||||||
|
font-size: 7em; }
|
||||||
|
|
||||||
|
.fa-8x {
|
||||||
|
font-size: 8em; }
|
||||||
|
|
||||||
|
.fa-9x {
|
||||||
|
font-size: 9em; }
|
||||||
|
|
||||||
|
.fa-10x {
|
||||||
|
font-size: 10em; }
|
||||||
|
|
||||||
|
.fa-2xs {
|
||||||
|
font-size: 0.625em;
|
||||||
|
line-height: 0.1em;
|
||||||
|
vertical-align: 0.225em; }
|
||||||
|
|
||||||
|
.fa-xs {
|
||||||
|
font-size: 0.75em;
|
||||||
|
line-height: 0.08333em;
|
||||||
|
vertical-align: 0.125em; }
|
||||||
|
|
||||||
|
.fa-sm {
|
||||||
|
font-size: 0.875em;
|
||||||
|
line-height: 0.07143em;
|
||||||
|
vertical-align: 0.05357em; }
|
||||||
|
|
||||||
|
.fa-lg {
|
||||||
|
font-size: 1.25em;
|
||||||
|
line-height: 0.05em;
|
||||||
|
vertical-align: -0.075em; }
|
||||||
|
|
||||||
|
.fa-xl {
|
||||||
|
font-size: 1.5em;
|
||||||
|
line-height: 0.04167em;
|
||||||
|
vertical-align: -0.125em; }
|
||||||
|
|
||||||
|
.fa-2xl {
|
||||||
|
font-size: 2em;
|
||||||
|
line-height: 0.03125em;
|
||||||
|
vertical-align: -0.1875em; }
|
||||||
|
|
||||||
|
.fa-fw {
|
||||||
|
text-align: center;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.fa-ul {
|
||||||
|
list-style-type: none;
|
||||||
|
margin-left: var(--fa-li-margin, 2.5em);
|
||||||
|
padding-left: 0; }
|
||||||
|
.fa-ul > li {
|
||||||
|
position: relative; }
|
||||||
|
|
||||||
|
.fa-li {
|
||||||
|
left: calc(var(--fa-li-width, 2em) * -1);
|
||||||
|
position: absolute;
|
||||||
|
text-align: center;
|
||||||
|
width: var(--fa-li-width, 2em);
|
||||||
|
line-height: inherit; }
|
||||||
|
|
||||||
|
.fa-border {
|
||||||
|
border-color: var(--fa-border-color, #eee);
|
||||||
|
border-radius: var(--fa-border-radius, 0.1em);
|
||||||
|
border-style: var(--fa-border-style, solid);
|
||||||
|
border-width: var(--fa-border-width, 0.08em);
|
||||||
|
padding: var(--fa-border-padding, 0.2em 0.25em 0.15em); }
|
||||||
|
|
||||||
|
.fa-pull-left {
|
||||||
|
float: left;
|
||||||
|
margin-right: var(--fa-pull-margin, 0.3em); }
|
||||||
|
|
||||||
|
.fa-pull-right {
|
||||||
|
float: right;
|
||||||
|
margin-left: var(--fa-pull-margin, 0.3em); }
|
||||||
|
|
||||||
|
.fa-beat {
|
||||||
|
-webkit-animation-name: fa-beat;
|
||||||
|
animation-name: fa-beat;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||||
|
|
||||||
|
.fa-bounce {
|
||||||
|
-webkit-animation-name: fa-bounce;
|
||||||
|
animation-name: fa-bounce;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1));
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.28, 0.84, 0.42, 1)); }
|
||||||
|
|
||||||
|
.fa-fade {
|
||||||
|
-webkit-animation-name: fa-fade;
|
||||||
|
animation-name: fa-fade;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||||
|
|
||||||
|
.fa-beat-fade {
|
||||||
|
-webkit-animation-name: fa-beat-fade;
|
||||||
|
animation-name: fa-beat-fade;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1));
|
||||||
|
animation-timing-function: var(--fa-animation-timing, cubic-bezier(0.4, 0, 0.6, 1)); }
|
||||||
|
|
||||||
|
.fa-flip {
|
||||||
|
-webkit-animation-name: fa-flip;
|
||||||
|
animation-name: fa-flip;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, ease-in-out);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, ease-in-out); }
|
||||||
|
|
||||||
|
.fa-shake {
|
||||||
|
-webkit-animation-name: fa-shake;
|
||||||
|
animation-name: fa-shake;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, linear);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||||
|
|
||||||
|
.fa-spin {
|
||||||
|
-webkit-animation-name: fa-spin;
|
||||||
|
animation-name: fa-spin;
|
||||||
|
-webkit-animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
animation-delay: var(--fa-animation-delay, 0s);
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 2s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 2s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, linear);
|
||||||
|
animation-timing-function: var(--fa-animation-timing, linear); }
|
||||||
|
|
||||||
|
.fa-spin-reverse {
|
||||||
|
--fa-animation-direction: reverse; }
|
||||||
|
|
||||||
|
.fa-pulse,
|
||||||
|
.fa-spin-pulse {
|
||||||
|
-webkit-animation-name: fa-spin;
|
||||||
|
animation-name: fa-spin;
|
||||||
|
-webkit-animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
animation-direction: var(--fa-animation-direction, normal);
|
||||||
|
-webkit-animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
animation-duration: var(--fa-animation-duration, 1s);
|
||||||
|
-webkit-animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
animation-iteration-count: var(--fa-animation-iteration-count, infinite);
|
||||||
|
-webkit-animation-timing-function: var(--fa-animation-timing, steps(8));
|
||||||
|
animation-timing-function: var(--fa-animation-timing, steps(8)); }
|
||||||
|
|
||||||
|
@media (prefers-reduced-motion: reduce) {
|
||||||
|
.fa-beat,
|
||||||
|
.fa-bounce,
|
||||||
|
.fa-fade,
|
||||||
|
.fa-beat-fade,
|
||||||
|
.fa-flip,
|
||||||
|
.fa-pulse,
|
||||||
|
.fa-shake,
|
||||||
|
.fa-spin,
|
||||||
|
.fa-spin-pulse {
|
||||||
|
-webkit-animation-delay: -1ms;
|
||||||
|
animation-delay: -1ms;
|
||||||
|
-webkit-animation-duration: 1ms;
|
||||||
|
animation-duration: 1ms;
|
||||||
|
-webkit-animation-iteration-count: 1;
|
||||||
|
animation-iteration-count: 1;
|
||||||
|
transition-delay: 0s;
|
||||||
|
transition-duration: 0s; } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-beat {
|
||||||
|
0%, 90% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
45% {
|
||||||
|
-webkit-transform: scale(var(--fa-beat-scale, 1.25));
|
||||||
|
transform: scale(var(--fa-beat-scale, 1.25)); } }
|
||||||
|
|
||||||
|
@keyframes fa-beat {
|
||||||
|
0%, 90% {
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
45% {
|
||||||
|
-webkit-transform: scale(var(--fa-beat-scale, 1.25));
|
||||||
|
transform: scale(var(--fa-beat-scale, 1.25)); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-bounce {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
|
||||||
|
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||||
|
30% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
|
||||||
|
transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
|
||||||
|
50% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
|
||||||
|
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||||
|
57% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
|
||||||
|
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
|
||||||
|
64% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); } }
|
||||||
|
|
||||||
|
@keyframes fa-bounce {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
10% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0);
|
||||||
|
transform: scale(var(--fa-bounce-start-scale-x, 1.1), var(--fa-bounce-start-scale-y, 0.9)) translateY(0); }
|
||||||
|
30% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em));
|
||||||
|
transform: scale(var(--fa-bounce-jump-scale-x, 0.9), var(--fa-bounce-jump-scale-y, 1.1)) translateY(var(--fa-bounce-height, -0.5em)); }
|
||||||
|
50% {
|
||||||
|
-webkit-transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0);
|
||||||
|
transform: scale(var(--fa-bounce-land-scale-x, 1.05), var(--fa-bounce-land-scale-y, 0.95)) translateY(0); }
|
||||||
|
57% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em));
|
||||||
|
transform: scale(1, 1) translateY(var(--fa-bounce-rebound, -0.125em)); }
|
||||||
|
64% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: scale(1, 1) translateY(0);
|
||||||
|
transform: scale(1, 1) translateY(0); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-fade {
|
||||||
|
50% {
|
||||||
|
opacity: var(--fa-fade-opacity, 0.4); } }
|
||||||
|
|
||||||
|
@keyframes fa-fade {
|
||||||
|
50% {
|
||||||
|
opacity: var(--fa-fade-opacity, 0.4); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-beat-fade {
|
||||||
|
0%, 100% {
|
||||||
|
opacity: var(--fa-beat-fade-opacity, 0.4);
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
|
||||||
|
transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
|
||||||
|
|
||||||
|
@keyframes fa-beat-fade {
|
||||||
|
0%, 100% {
|
||||||
|
opacity: var(--fa-beat-fade-opacity, 0.4);
|
||||||
|
-webkit-transform: scale(1);
|
||||||
|
transform: scale(1); }
|
||||||
|
50% {
|
||||||
|
opacity: 1;
|
||||||
|
-webkit-transform: scale(var(--fa-beat-fade-scale, 1.125));
|
||||||
|
transform: scale(var(--fa-beat-fade-scale, 1.125)); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-flip {
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
|
||||||
|
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
|
||||||
|
|
||||||
|
@keyframes fa-flip {
|
||||||
|
50% {
|
||||||
|
-webkit-transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg));
|
||||||
|
transform: rotate3d(var(--fa-flip-x, 0), var(--fa-flip-y, 1), var(--fa-flip-z, 0), var(--fa-flip-angle, -180deg)); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-shake {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(-15deg);
|
||||||
|
transform: rotate(-15deg); }
|
||||||
|
4% {
|
||||||
|
-webkit-transform: rotate(15deg);
|
||||||
|
transform: rotate(15deg); }
|
||||||
|
8%, 24% {
|
||||||
|
-webkit-transform: rotate(-18deg);
|
||||||
|
transform: rotate(-18deg); }
|
||||||
|
12%, 28% {
|
||||||
|
-webkit-transform: rotate(18deg);
|
||||||
|
transform: rotate(18deg); }
|
||||||
|
16% {
|
||||||
|
-webkit-transform: rotate(-22deg);
|
||||||
|
transform: rotate(-22deg); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: rotate(22deg);
|
||||||
|
transform: rotate(22deg); }
|
||||||
|
32% {
|
||||||
|
-webkit-transform: rotate(-12deg);
|
||||||
|
transform: rotate(-12deg); }
|
||||||
|
36% {
|
||||||
|
-webkit-transform: rotate(12deg);
|
||||||
|
transform: rotate(12deg); }
|
||||||
|
40%, 100% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); } }
|
||||||
|
|
||||||
|
@keyframes fa-shake {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(-15deg);
|
||||||
|
transform: rotate(-15deg); }
|
||||||
|
4% {
|
||||||
|
-webkit-transform: rotate(15deg);
|
||||||
|
transform: rotate(15deg); }
|
||||||
|
8%, 24% {
|
||||||
|
-webkit-transform: rotate(-18deg);
|
||||||
|
transform: rotate(-18deg); }
|
||||||
|
12%, 28% {
|
||||||
|
-webkit-transform: rotate(18deg);
|
||||||
|
transform: rotate(18deg); }
|
||||||
|
16% {
|
||||||
|
-webkit-transform: rotate(-22deg);
|
||||||
|
transform: rotate(-22deg); }
|
||||||
|
20% {
|
||||||
|
-webkit-transform: rotate(22deg);
|
||||||
|
transform: rotate(22deg); }
|
||||||
|
32% {
|
||||||
|
-webkit-transform: rotate(-12deg);
|
||||||
|
transform: rotate(-12deg); }
|
||||||
|
36% {
|
||||||
|
-webkit-transform: rotate(12deg);
|
||||||
|
transform: rotate(12deg); }
|
||||||
|
40%, 100% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); } }
|
||||||
|
|
||||||
|
@-webkit-keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
@keyframes fa-spin {
|
||||||
|
0% {
|
||||||
|
-webkit-transform: rotate(0deg);
|
||||||
|
transform: rotate(0deg); }
|
||||||
|
100% {
|
||||||
|
-webkit-transform: rotate(360deg);
|
||||||
|
transform: rotate(360deg); } }
|
||||||
|
|
||||||
|
.fa-rotate-90 {
|
||||||
|
-webkit-transform: rotate(90deg);
|
||||||
|
transform: rotate(90deg); }
|
||||||
|
|
||||||
|
.fa-rotate-180 {
|
||||||
|
-webkit-transform: rotate(180deg);
|
||||||
|
transform: rotate(180deg); }
|
||||||
|
|
||||||
|
.fa-rotate-270 {
|
||||||
|
-webkit-transform: rotate(270deg);
|
||||||
|
transform: rotate(270deg); }
|
||||||
|
|
||||||
|
.fa-flip-horizontal {
|
||||||
|
-webkit-transform: scale(-1, 1);
|
||||||
|
transform: scale(-1, 1); }
|
||||||
|
|
||||||
|
.fa-flip-vertical {
|
||||||
|
-webkit-transform: scale(1, -1);
|
||||||
|
transform: scale(1, -1); }
|
||||||
|
|
||||||
|
.fa-flip-both,
|
||||||
|
.fa-flip-horizontal.fa-flip-vertical {
|
||||||
|
-webkit-transform: scale(-1, -1);
|
||||||
|
transform: scale(-1, -1); }
|
||||||
|
|
||||||
|
.fa-rotate-by {
|
||||||
|
-webkit-transform: rotate(var(--fa-rotate-angle, none));
|
||||||
|
transform: rotate(var(--fa-rotate-angle, none)); }
|
||||||
|
|
||||||
|
.fa-stack {
|
||||||
|
display: inline-block;
|
||||||
|
vertical-align: middle;
|
||||||
|
height: 2em;
|
||||||
|
position: relative;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-stack-1x,
|
||||||
|
.fa-stack-2x {
|
||||||
|
bottom: 0;
|
||||||
|
left: 0;
|
||||||
|
margin: auto;
|
||||||
|
position: absolute;
|
||||||
|
right: 0;
|
||||||
|
top: 0;
|
||||||
|
z-index: var(--fa-stack-z-index, auto); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-1x {
|
||||||
|
height: 1em;
|
||||||
|
width: 1.25em; }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-stack-2x {
|
||||||
|
height: 2em;
|
||||||
|
width: 2.5em; }
|
||||||
|
|
||||||
|
.fa-inverse {
|
||||||
|
color: var(--fa-inverse, #fff); }
|
||||||
|
|
||||||
|
.sr-only,
|
||||||
|
.fa-sr-only {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0; }
|
||||||
|
|
||||||
|
.sr-only-focusable:not(:focus),
|
||||||
|
.fa-sr-only-focusable:not(:focus) {
|
||||||
|
position: absolute;
|
||||||
|
width: 1px;
|
||||||
|
height: 1px;
|
||||||
|
padding: 0;
|
||||||
|
margin: -1px;
|
||||||
|
overflow: hidden;
|
||||||
|
clip: rect(0, 0, 0, 0);
|
||||||
|
white-space: nowrap;
|
||||||
|
border-width: 0; }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-primary {
|
||||||
|
fill: var(--fa-primary-color, currentColor);
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa .fa-secondary {
|
||||||
|
fill: var(--fa-secondary-color, currentColor);
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-primary {
|
||||||
|
opacity: var(--fa-secondary-opacity, 0.4); }
|
||||||
|
|
||||||
|
.svg-inline--fa.fa-swap-opacity .fa-secondary {
|
||||||
|
opacity: var(--fa-primary-opacity, 1); }
|
||||||
|
|
||||||
|
.svg-inline--fa mask .fa-primary,
|
||||||
|
.svg-inline--fa mask .fa-secondary {
|
||||||
|
fill: black; }
|
||||||
|
|
||||||
|
.fad.fa-inverse,
|
||||||
|
.fa-duotone.fa-inverse {
|
||||||
|
color: var(--fa-inverse, #fff); }
|
||||||
+6
File diff suppressed because one or more lines are too long
@@ -0,0 +1,19 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:root, :host {
|
||||||
|
--fa-style-family-classic: 'Font Awesome 6 Pro';
|
||||||
|
--fa-font-thin: normal 100 1em/1 'Font Awesome 6 Pro'; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 6 Pro';
|
||||||
|
font-style: normal;
|
||||||
|
font-weight: 100;
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-thin-100.woff2") format("woff2"), url("../webfonts/fa-thin-100.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
.fat,
|
||||||
|
.fa-thin {
|
||||||
|
font-weight: 100; }
|
||||||
Vendored
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
:host,:root{--fa-style-family-classic:"Font Awesome 6 Pro";--fa-font-thin:normal 100 1em/1 "Font Awesome 6 Pro"}@font-face{font-family:"Font Awesome 6 Pro";font-style:normal;font-weight:100;font-display:block;src:url(../webfonts/fa-thin-100.woff2) format("woff2"),url(../webfonts/fa-thin-100.ttf) format("truetype")}.fa-thin,.fat{font-weight:100}
|
||||||
@@ -0,0 +1,26 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype");
|
||||||
|
unicode-range: U+F003,U+F006,U+F014,U+F016-F017,U+F01A-F01B,U+F01D,U+F022,U+F03E,U+F044,U+F046,U+F05C-F05D,U+F06E,U+F070,U+F087-F088,U+F08A,U+F094,U+F096-F097,U+F09D,U+F0A0,U+F0A2,U+F0A4-F0A7,U+F0C5,U+F0C7,U+F0E5-F0E6,U+F0EB,U+F0F6-F0F8,U+F10C,U+F114-F115,U+F118-F11A,U+F11C-F11D,U+F133,U+F147,U+F14E,U+F150-F152,U+F185-F186,U+F18E,U+F190-F192,U+F196,U+F1C1-F1C9,U+F1D9,U+F1DB,U+F1E3,U+F1EA,U+F1F7,U+F1F9,U+F20A,U+F247-F248,U+F24A,U+F24D,U+F255-F25B,U+F25D,U+F271-F274,U+F278,U+F27B,U+F28C,U+F28E,U+F29C,U+F2B5,U+F2B7,U+F2BA,U+F2BC,U+F2BE,U+F2C0-F2C1,U+F2C3,U+F2D0,U+F2D2,U+F2D4,U+F2DC; }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'FontAwesome';
|
||||||
|
font-display: block;
|
||||||
|
src: url("../webfonts/fa-v4compatibility.woff2") format("woff2"), url("../webfonts/fa-v4compatibility.ttf") format("truetype");
|
||||||
|
unicode-range: U+F041,U+F047,U+F065-F066,U+F07D-F07E,U+F080,U+F08B,U+F08E,U+F090,U+F09A,U+F0AC,U+F0AE,U+F0B2,U+F0D0,U+F0D6,U+F0E4,U+F0EC,U+F10A-F10B,U+F123,U+F13E,U+F148-F149,U+F14C,U+F156,U+F15E,U+F160-F161,U+F163,U+F175-F178,U+F195,U+F1F8,U+F219,U+F27A; }
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype");unicode-range:u+f003,u+f006,u+f014,u+f016-f017,u+f01a-f01b,u+f01d,u+f022,u+f03e,u+f044,u+f046,u+f05c-f05d,u+f06e,u+f070,u+f087-f088,u+f08a,u+f094,u+f096-f097,u+f09d,u+f0a0,u+f0a2,u+f0a4-f0a7,u+f0c5,u+f0c7,u+f0e5-f0e6,u+f0eb,u+f0f6-f0f8,u+f10c,u+f114-f115,u+f118-f11a,u+f11c-f11d,u+f133,u+f147,u+f14e,u+f150-f152,u+f185-f186,u+f18e,u+f190-f192,u+f196,u+f1c1-f1c9,u+f1d9,u+f1db,u+f1e3,u+f1ea,u+f1f7,u+f1f9,u+f20a,u+f247-f248,u+f24a,u+f24d,u+f255-f25b,u+f25d,u+f271-f274,u+f278,u+f27b,u+f28c,u+f28e,u+f29c,u+f2b5,u+f2b7,u+f2ba,u+f2bc,u+f2be,u+f2c0-f2c1,u+f2c3,u+f2d0,u+f2d2,u+f2d4,u+f2dc}@font-face{font-family:"FontAwesome";font-display:block;src:url(../webfonts/fa-v4compatibility.woff2) format("woff2"),url(../webfonts/fa-v4compatibility.ttf) format("truetype");unicode-range:u+f041,u+f047,u+f065-f066,u+f07d-f07e,u+f080,u+f08b,u+f08e,u+f090,u+f09a,u+f0ac,u+f0ae,u+f0b2,u+f0d0,u+f0d6,u+f0e4,u+f0ec,u+f10a-f10b,u+f123,u+f13e,u+f148-f149,u+f14c,u+f156,u+f15e,u+f160-f161,u+f163,u+f175-f178,u+f195,u+f1f8,u+f219,u+f27a}
|
||||||
File diff suppressed because it is too large
Load Diff
+6
File diff suppressed because one or more lines are too long
@@ -0,0 +1,34 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Brands';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../webfonts/fa-brands-400.woff2") format("woff2"), url("../webfonts/fa-brands-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 900;
|
||||||
|
src: url("../webfonts/fa-solid-900.woff2") format("woff2"), url("../webfonts/fa-solid-900.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 400;
|
||||||
|
src: url("../webfonts/fa-regular-400.woff2") format("woff2"), url("../webfonts/fa-regular-400.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Pro';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 300;
|
||||||
|
src: url("../webfonts/fa-light-300.woff2") format("woff2"), url("../webfonts/fa-light-300.ttf") format("truetype"); }
|
||||||
|
|
||||||
|
@font-face {
|
||||||
|
font-family: 'Font Awesome 5 Duotone';
|
||||||
|
font-display: block;
|
||||||
|
font-weight: 900;
|
||||||
|
src: url("../webfonts/fa-duotone-900.woff2") format("woff2"), url("../webfonts/fa-duotone-900.ttf") format("truetype"); }
|
||||||
+6
@@ -0,0 +1,6 @@
|
|||||||
|
/*!
|
||||||
|
* Font Awesome Pro 6.2.1 by @fontawesome - https://fontawesome.com
|
||||||
|
* License - https://fontawesome.com/license (Commercial License)
|
||||||
|
* Copyright 2022 Fonticons, Inc.
|
||||||
|
*/
|
||||||
|
@font-face{font-family:"Font Awesome 5 Brands";font-display:block;font-weight:400;src:url(../webfonts/fa-brands-400.woff2) format("woff2"),url(../webfonts/fa-brands-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:900;src:url(../webfonts/fa-solid-900.woff2) format("woff2"),url(../webfonts/fa-solid-900.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:400;src:url(../webfonts/fa-regular-400.woff2) format("woff2"),url(../webfonts/fa-regular-400.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Pro";font-display:block;font-weight:300;src:url(../webfonts/fa-light-300.woff2) format("woff2"),url(../webfonts/fa-light-300.ttf) format("truetype")}@font-face{font-family:"Font Awesome 5 Duotone";font-display:block;font-weight:900;src:url(../webfonts/fa-duotone-900.woff2) format("woff2"),url(../webfonts/fa-duotone-900.ttf) format("truetype")}
|
||||||
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Generated
+23156
-9067
File diff suppressed because it is too large
Load Diff
+54
-39
@@ -1,74 +1,89 @@
|
|||||||
{
|
{
|
||||||
"name": "farmmaps-lib-app",
|
"name": "farmmaps-lib-app",
|
||||||
"version": "2.0.5",
|
"version": "3.0.2",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
"ng": "ng",
|
"ng": "ng",
|
||||||
"start": "ng serve",
|
"start": "ng serve",
|
||||||
"build": "ng build",
|
"build": "ng build",
|
||||||
"test": "ng test",
|
"test": "ng test",
|
||||||
"lint": "ng lint",
|
"lint": "eslint -c .eslintrc.js --ext .ts",
|
||||||
"e2e": "ng e2e"
|
"e2e": "ng e2e"
|
||||||
},
|
},
|
||||||
"private": true,
|
"private": true,
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@angular/animations": "~12.2.8",
|
"@angular/animations": "^14.1.3",
|
||||||
"@angular/common": "~12.2.8",
|
"@angular/common": "^14.1.3",
|
||||||
"@angular/compiler": "~12.2.8",
|
"@angular/compiler": "^14.1.3",
|
||||||
"@angular/core": "~12.2.8",
|
"@angular/core": "^14.1.3",
|
||||||
"@angular/forms": "~12.2.8",
|
"@angular-eslint/eslint-plugin": "^15.2.1",
|
||||||
"@angular/platform-browser": "~12.2.8",
|
"@angular/forms": "^14.1.3",
|
||||||
"@angular/platform-browser-dynamic": "~12.2.8",
|
"@angular/platform-browser": "^14.1.3",
|
||||||
"@angular/router": "~12.2.8",
|
"@angular/platform-browser-dynamic": "^14.1.3",
|
||||||
|
"@angular/router": "^14.1.3",
|
||||||
"@farmmaps/common": "file:dist/common",
|
"@farmmaps/common": "file:dist/common",
|
||||||
"@farmmaps/common-map": "file:dist/common-map",
|
"@farmmaps/common-map": "file:dist/common-map",
|
||||||
"@farmmaps/common-map3d": "file:dist/common-map3d",
|
"@farmmaps/common-map3d": "file:dist/common-map3d",
|
||||||
"@microsoft/signalr": "^3.1.16",
|
"@microsoft/signalr": "^3.1.16",
|
||||||
"@ng-bootstrap/ng-bootstrap": "^9.0",
|
"@ng-bootstrap/ng-bootstrap": "^13.0.0",
|
||||||
"@ngrx/effects": "^12.0",
|
"@ngrx/effects": "^14",
|
||||||
"@ngrx/router-store": "^12.0",
|
"@ngrx/router-store": "^14",
|
||||||
"@ngrx/store": "^12.0",
|
"@ngrx/store": "^14",
|
||||||
"angular-oauth2-oidc": "^12.0",
|
"@popperjs/core": "^2.11.6",
|
||||||
"bootstrap": "^4.6.0",
|
"angular-oauth2-oidc": "^13",
|
||||||
"cesium": "^1.82.1",
|
"assert": "^2.0.0",
|
||||||
|
"bootstrap": "^5.2.0",
|
||||||
|
"browserify-zlib": "^0.2.0",
|
||||||
|
"buffer": "^6.0.3",
|
||||||
|
"cesium": "^1.97.0",
|
||||||
"core-js": "^2.6.12",
|
"core-js": "^2.6.12",
|
||||||
"moment": "^2.29.1",
|
"https-browserify": "^1.0.0",
|
||||||
"ngrx-store-localstorage": "^12.0",
|
"moment": "^2.29.4",
|
||||||
|
"ngrx-store-localstorage": "^14",
|
||||||
"ngx-avatar": "^4.1.0",
|
"ngx-avatar": "^4.1.0",
|
||||||
"ngx-clipboard": "^14.0.1",
|
"ngx-clipboard": "^14.0.1",
|
||||||
"ngx-image-cropper": "^3.3.5",
|
"ngx-image-cropper": "^3.3.5",
|
||||||
"ngx-openlayers": "1.0.0-next.19",
|
"ngx-openlayers": "1.0.0-next.19",
|
||||||
"ngx-uploadx": "^3.5.1",
|
"ngx-uploadx": "^5.2.0",
|
||||||
"ol": "6.8.1",
|
"ol": "6.14.1",
|
||||||
"ol-cesium": "^2.13.0",
|
"olcs": "^2.13.1",
|
||||||
"resumablejs": "^1.1.0",
|
"resumablejs": "^1.1.0",
|
||||||
"rxjs": "^6.6.7",
|
"rxjs": "^6.6.7",
|
||||||
|
"stream": "^0.0.2",
|
||||||
|
"stream-http": "^3.2.0",
|
||||||
"tassign": "^1.0.0",
|
"tassign": "^1.0.0",
|
||||||
"tslib": "^2.2.0",
|
"tslib": "^2.4.0",
|
||||||
|
"url": "^0.11.0",
|
||||||
|
"util": "^0.12.4",
|
||||||
"zone.js": "~0.11.4"
|
"zone.js": "~0.11.4"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
"@angular-builders/custom-webpack": "^12.1.3",
|
"@angular-builders/custom-webpack": "^14",
|
||||||
"@angular-devkit/build-angular": "^12.2.8",
|
"@angular-devkit/build-angular": "^14.1.3",
|
||||||
"@angular/cli": "^12.2.8",
|
"@angular/cli": "^14.1.3",
|
||||||
"@angular/compiler-cli": "~12.2.8",
|
"@angular/compiler-cli": "^14.1.3",
|
||||||
"@angular/language-service": "~12.2.8",
|
"@angular/language-service": "^14.1.3",
|
||||||
"@angular/localize": "^12.2.8",
|
"@angular/localize": "^14.1.3",
|
||||||
"@types/arcgis-rest-api": "^10.4.5",
|
"@types/arcgis-rest-api": "^10.4.5",
|
||||||
"@types/jasmine": "~2.8.8",
|
"@types/jasmine": "~2.8.8",
|
||||||
"@types/jasminewd2": "^2.0.9",
|
"@types/jasminewd2": "^2.0.9",
|
||||||
"@types/node": "^12.20.15",
|
"@types/node": "^12.20.15",
|
||||||
"codelyzer": "^5.1.2",
|
"@typescript-eslint/eslint-plugin": "^5.54.0",
|
||||||
"jasmine-core": "~3.5.0",
|
"@typescript-eslint/eslint-plugin-tslint": "^5.54.0",
|
||||||
"jasmine-spec-reporter": "~5.0.0",
|
"@typescript-eslint/parser": "^5.54.0",
|
||||||
"karma": "~6.3.3",
|
"codelyzer": "^0.0.28",
|
||||||
|
"eslint": "^8.35.0",
|
||||||
|
"eslint-config-prettier": "^8.6.0",
|
||||||
|
"eslint-plugin-import": "^2.27.5",
|
||||||
|
"jasmine-core": "^4.3.0",
|
||||||
|
"jasmine-spec-reporter": "^7.0.0",
|
||||||
|
"karma": "^6.3.20",
|
||||||
"karma-chrome-launcher": "~3.1.0",
|
"karma-chrome-launcher": "~3.1.0",
|
||||||
"karma-coverage-istanbul-reporter": "~3.0.2",
|
"karma-coverage-istanbul-reporter": "^3.0.3",
|
||||||
"karma-jasmine": "~4.0.0",
|
"karma-jasmine": "^5.1.0",
|
||||||
"karma-jasmine-html-reporter": "^1.6.0",
|
"karma-jasmine-html-reporter": "^2.0.0",
|
||||||
"ng-packagr": "^12.2.2",
|
"ng-packagr": "^14.1.0",
|
||||||
"protractor": "~7.0.0",
|
"protractor": "~7.0.0",
|
||||||
"ts-node": "^8.8.1",
|
"ts-node": "^8.8.1",
|
||||||
"tslint": "~6.1.0",
|
"typescript": "~4.6.4"
|
||||||
"typescript": "~4.3.5"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -0,0 +1,22 @@
|
|||||||
|
module.exports = {
|
||||||
|
"env": {
|
||||||
|
"browser": true,
|
||||||
|
"es2021": true
|
||||||
|
},
|
||||||
|
"extends": [
|
||||||
|
"eslint:recommended",
|
||||||
|
"plugin:@typescript-eslint/recommended"
|
||||||
|
],
|
||||||
|
"overrides": [
|
||||||
|
],
|
||||||
|
"parser": "@typescript-eslint/parser",
|
||||||
|
"parserOptions": {
|
||||||
|
"ecmaVersion": "latest",
|
||||||
|
"sourceType": "module"
|
||||||
|
},
|
||||||
|
"plugins": [
|
||||||
|
"@typescript-eslint"
|
||||||
|
],
|
||||||
|
"rules": {
|
||||||
|
}
|
||||||
|
}
|
||||||
Generated
+20
-3
@@ -1,10 +1,27 @@
|
|||||||
{
|
{
|
||||||
"name": "@farmmaps/common-map",
|
"name": "@farmmaps/common-map",
|
||||||
"version": "0.0.1",
|
"version": "2.0.0",
|
||||||
"lockfileVersion": 1,
|
"lockfileVersion": 3,
|
||||||
"requires": true,
|
"requires": true,
|
||||||
|
"packages": {
|
||||||
|
"": {
|
||||||
|
"name": "@farmmaps/common-map",
|
||||||
|
"version": "2.0.0",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"tslib": {
|
"tslib": "^2.0.0"
|
||||||
|
},
|
||||||
|
"peerDependencies": {
|
||||||
|
"@angular/core": ">=14.0.0",
|
||||||
|
"@ngrx/effects": ">=14.0.0",
|
||||||
|
"@ngrx/router-store": ">=14.0.0",
|
||||||
|
"@ngrx/store": ">=14.0.0",
|
||||||
|
"ngrx-store-localstorage": ">=14.0.0",
|
||||||
|
"ngx-openlayers": ">=1.0.0-next.19",
|
||||||
|
"ol": ">=6.8.1",
|
||||||
|
"tassign": ">=1.0.0"
|
||||||
|
}
|
||||||
|
},
|
||||||
|
"node_modules/tslib": {
|
||||||
"version": "2.0.1",
|
"version": "2.0.1",
|
||||||
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
|
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz",
|
||||||
"integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
|
"integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ=="
|
||||||
|
|||||||
@@ -8,14 +8,13 @@
|
|||||||
"tslib": "^2.0.0"
|
"tslib": "^2.0.0"
|
||||||
},
|
},
|
||||||
"peerDependencies": {
|
"peerDependencies": {
|
||||||
"@angular/core": "~12.2.8",
|
"@angular/core": ">=14.0.0",
|
||||||
"ngrx-store-localstorage": "^12.0",
|
"ngrx-store-localstorage": ">=14.0.0",
|
||||||
"@ngrx/effects": "^12.0",
|
"@ngrx/effects": ">=14.0.0",
|
||||||
"@ngrx/router-store":"^12.0",
|
"@ngrx/router-store":">=14.0.0",
|
||||||
"@ngrx/store":"^12.0",
|
"@ngrx/store":">=14.0.0",
|
||||||
"tassign": "^1.0.0",
|
"tassign": ">=1.0.0",
|
||||||
"@farmmaps/common": "~2.0",
|
"ngx-openlayers": ">=1.0.0-next.19",
|
||||||
"ngx-openlayers": "1.0.0-next.19",
|
"ol": ">=6.8.1"
|
||||||
"ol": "6.8.1"
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -54,6 +54,9 @@ export const SETLAYERVALUESLOCATION = '[Map] SetLayerValuesLocation'
|
|||||||
export const TOGGLELAYERVALUESENABLED = '[Map] ToggleLayerValuesEnabled'
|
export const TOGGLELAYERVALUESENABLED = '[Map] ToggleLayerValuesEnabled'
|
||||||
export const GETLAYERVALUE = '[Map] GetLayerValue'
|
export const GETLAYERVALUE = '[Map] GetLayerValue'
|
||||||
export const GETLAYERVALUESUCCESS = '[Map] GetLayerValueSuccess'
|
export const GETLAYERVALUESUCCESS = '[Map] GetLayerValueSuccess'
|
||||||
|
export const TOGGLESHOWDATALAYERSLIDE = '[Map] ToggleShowDataLayerSlide'
|
||||||
|
export const SETVIEWSTATE = '[Map] SetViewState'
|
||||||
|
|
||||||
|
|
||||||
export class Clear implements Action {
|
export class Clear implements Action {
|
||||||
readonly type = CLEAR;
|
readonly type = CLEAR;
|
||||||
@@ -316,6 +319,16 @@ export class GetLayerValueSuccess implements Action {
|
|||||||
constructor(public layervalue:ILayervalue) { }
|
constructor(public layervalue:ILayervalue) { }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
export class ToggleShowDataLayerSlide implements Action {
|
||||||
|
readonly type = TOGGLESHOWDATALAYERSLIDE;
|
||||||
|
constructor() {}
|
||||||
|
}
|
||||||
|
|
||||||
|
export class SetViewState implements Action {
|
||||||
|
readonly type = SETVIEWSTATE;
|
||||||
|
constructor(public enabled:boolean) {}
|
||||||
|
}
|
||||||
|
|
||||||
export type Actions = SetMapState
|
export type Actions = SetMapState
|
||||||
| Init
|
| Init
|
||||||
| Clear
|
| Clear
|
||||||
@@ -359,5 +372,7 @@ export type Actions = SetMapState
|
|||||||
| ToggleLayerValuesEnabled
|
| ToggleLayerValuesEnabled
|
||||||
| GetLayerValueSuccess
|
| GetLayerValueSuccess
|
||||||
| GetLayerValue
|
| GetLayerValue
|
||||||
| SetPeriod;
|
| SetPeriod
|
||||||
|
| ToggleShowDataLayerSlide
|
||||||
|
| SetViewState;
|
||||||
|
|
||||||
|
|||||||
@@ -79,13 +79,13 @@ export function LocalStorageSync(reducer: ActionReducer<any>): ActionReducer<any
|
|||||||
const r2 = reducer(state, action);
|
const r2 = reducer(state, action);
|
||||||
|
|
||||||
if(action.type == "@ngrx/store/update-reducers") {
|
if(action.type == "@ngrx/store/update-reducers") {
|
||||||
let ms = window.localStorage.getItem(MODULE_NAME+"_mapState");
|
const ms = window.localStorage.getItem(MODULE_NAME+"_mapState");
|
||||||
if(ms) {
|
if(ms) {
|
||||||
r2["mapState"] = JSON.parse(ms);
|
r2["mapState"] = JSON.parse(ms);
|
||||||
}
|
}
|
||||||
let sp = window.localStorage.getItem(MODULE_NAME+"_searchPeriod");
|
const sp = window.localStorage.getItem(MODULE_NAME+"_searchPeriod");
|
||||||
if(sp) {
|
if(sp) {
|
||||||
let p = JSON.parse(sp);
|
const p = JSON.parse(sp);
|
||||||
r2["period"] = { startDate: new Date(Date.parse(p.startDate)),endDate:new Date(Date.parse(p.endDate))};
|
r2["period"] = { startDate: new Date(Date.parse(p.startDate)),endDate:new Date(Date.parse(p.endDate))};
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -224,21 +224,6 @@ export {
|
|||||||
LayerValuesComponent,
|
LayerValuesComponent,
|
||||||
GeometryThumbnailComponent
|
GeometryThumbnailComponent
|
||||||
],
|
],
|
||||||
entryComponents: [
|
|
||||||
FeatureListComponent,
|
|
||||||
FeatureListCroppingschemeComponent,
|
|
||||||
FeatureListCropfieldComponent,
|
|
||||||
FeatureListFeatureComponent,
|
|
||||||
FeatureListFeatureCroppingschemeComponent,
|
|
||||||
FeatureListFeatureCropfieldComponent,
|
|
||||||
SelectedItemComponent,
|
|
||||||
SelectedItemCropfieldComponent,
|
|
||||||
SelectedItemGeotiffComponent,
|
|
||||||
SelectedItemTemporalComponent,
|
|
||||||
SelectedItemShapeComponent,
|
|
||||||
ItemListComponent,
|
|
||||||
ItemListItemComponent,
|
|
||||||
],
|
|
||||||
exports: [
|
exports: [
|
||||||
ItemVectorSourceComponent,
|
ItemVectorSourceComponent,
|
||||||
ItemLayersComponent,
|
ItemLayersComponent,
|
||||||
|
|||||||
+8
-8
@@ -28,7 +28,7 @@ export class FileDropTargetComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
ngOnInit() {
|
ngOnInit() {
|
||||||
this.element = this.map.instance.getViewport();
|
this.element = this.map.instance.getViewport();
|
||||||
let other = this;
|
const other = this;
|
||||||
this.element.addEventListener('drop', this.onDrop, false);
|
this.element.addEventListener('drop', this.onDrop, false);
|
||||||
this.element.addEventListener('dragover', this.preventDefault, false);
|
this.element.addEventListener('dragover', this.preventDefault, false);
|
||||||
this.element.addEventListener('dragenter', this.preventDefault, false);
|
this.element.addEventListener('dragenter', this.preventDefault, false);
|
||||||
@@ -36,20 +36,20 @@ export class FileDropTargetComponent implements OnInit, OnDestroy {
|
|||||||
|
|
||||||
private onDrop = (event: DragEvent) => {
|
private onDrop = (event: DragEvent) => {
|
||||||
this.stopEvent(event);
|
this.stopEvent(event);
|
||||||
let geojsonFormat = new GeoJSON();
|
const geojsonFormat = new GeoJSON();
|
||||||
var parentCode = this.parentCode;
|
let parentCode = this.parentCode;
|
||||||
var coordinate = this.map.instance.getEventCoordinate(event);
|
const coordinate = this.map.instance.getEventCoordinate(event);
|
||||||
//coordinate = proj.transform(coordinate, this.map.instance.getView().getProjection(), 'EPSG:4326');
|
//coordinate = proj.transform(coordinate, this.map.instance.getView().getProjection(), 'EPSG:4326');
|
||||||
var geometry:Geometry = new Point(coordinate);
|
let geometry:Geometry = new Point(coordinate);
|
||||||
var hitFeatures = this.map.instance.getFeaturesAtPixel([event.pageX, event.pageY]);
|
const hitFeatures = this.map.instance.getFeaturesAtPixel([event.pageX, event.pageY]);
|
||||||
var hitFeature = hitFeatures && hitFeatures.length > 0 ? hitFeatures[0] : null;
|
const hitFeature = hitFeatures && hitFeatures.length > 0 ? hitFeatures[0] : null;
|
||||||
if (hitFeature) {
|
if (hitFeature) {
|
||||||
if (hitFeature.get("code")) {
|
if (hitFeature.get("code")) {
|
||||||
parentCode = hitFeature.get("code");
|
parentCode = hitFeature.get("code");
|
||||||
}
|
}
|
||||||
geometry = geojsonFormat.readGeometry(geojsonFormat.writeGeometry(geometry)); // create copy instead of reference
|
geometry = geojsonFormat.readGeometry(geojsonFormat.writeGeometry(geometry)); // create copy instead of reference
|
||||||
}
|
}
|
||||||
var projectedGeometry = geometry.transform(this.map.instance.getView().getProjection(), 'EPSG:4326');
|
const projectedGeometry = geometry.transform(this.map.instance.getView().getProjection(), 'EPSG:4326');
|
||||||
|
|
||||||
if (event.dataTransfer && event.dataTransfer.files) {
|
if (event.dataTransfer && event.dataTransfer.files) {
|
||||||
this.onFileDropped.emit({ files: event.dataTransfer.files, event: event, geometry: JSON.parse(geojsonFormat.writeGeometry(projectedGeometry)),parentCode:parentCode})
|
this.onFileDropped.emit({ files: event.dataTransfer.files, event: event, geometry: JSON.parse(geojsonFormat.writeGeometry(projectedGeometry)),parentCode:parentCode})
|
||||||
|
|||||||
+17
-17
@@ -15,16 +15,16 @@ export class GpsLocation implements OnInit,OnChanges{
|
|||||||
public instance: Overlay;
|
public instance: Overlay;
|
||||||
@Input() position: GeolocationPosition;
|
@Input() position: GeolocationPosition;
|
||||||
@Input() location: number[]=[0,0];
|
@Input() location: number[]=[0,0];
|
||||||
@Input() locationTolerance: number = 0;
|
@Input() locationTolerance = 0;
|
||||||
@Input() showHeading: boolean = false;
|
@Input() showHeading = false;
|
||||||
@Input() showTolerance: boolean = false;
|
@Input() showTolerance = false;
|
||||||
@Input() heading: number = 0;
|
@Input() heading = 0;
|
||||||
@Input() headingTolerance: number = 0;
|
@Input() headingTolerance = 0;
|
||||||
public locTolerancePixels: number = 0;
|
public locTolerancePixels = 0;
|
||||||
public path: string = "";
|
public path = "";
|
||||||
public rotate: string = "";
|
public rotate = "";
|
||||||
private resolution: number = 0;
|
private resolution = 0;
|
||||||
initialized:boolean = false;
|
initialized = false;
|
||||||
@ViewChild('location', { static: true }) locationElement: ElementRef;
|
@ViewChild('location', { static: true }) locationElement: ElementRef;
|
||||||
|
|
||||||
constructor(private map: MapComponent) {
|
constructor(private map: MapComponent) {
|
||||||
@@ -42,12 +42,12 @@ export class GpsLocation implements OnInit,OnChanges{
|
|||||||
position: fromLonLat( this.location),
|
position: fromLonLat( this.location),
|
||||||
element: this.locationElement.nativeElement
|
element: this.locationElement.nativeElement
|
||||||
});
|
});
|
||||||
var x = Math.tan(this.headingTolerance * Math.PI / 180)*40;
|
const x = Math.tan(this.headingTolerance * Math.PI / 180)*40;
|
||||||
var y = Math.cos(this.headingTolerance * Math.PI / 180) * 40;
|
const y = Math.cos(this.headingTolerance * Math.PI / 180) * 40;
|
||||||
var y1 = Math.round(500 - y);
|
const y1 = Math.round(500 - y);
|
||||||
var x1 = Math.round(500 - x);
|
const x1 = Math.round(500 - x);
|
||||||
var y2 = Math.round(y1);
|
const y2 = Math.round(y1);
|
||||||
var x2 = Math.round(500 + x);
|
const x2 = Math.round(500 + x);
|
||||||
this.path = "M " + x2 + " " + y2 + " A 45 45,0,0,0, " + x1 + " " + y1 + " L 493 500 L 507 500 Z";
|
this.path = "M " + x2 + " " + y2 + " A 45 45,0,0,0, " + x1 + " " + y1 + " L 493 500 L 507 500 Z";
|
||||||
this.rotate = "rotate(" + Math.round(this.heading) + " 500 500)";
|
this.rotate = "rotate(" + Math.round(this.heading) + " 500 500)";
|
||||||
this.locTolerancePixels = this.locationTolerance;
|
this.locTolerancePixels = this.locationTolerance;
|
||||||
@@ -61,7 +61,7 @@ export class GpsLocation implements OnInit,OnChanges{
|
|||||||
|
|
||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (changes.position && this.instance) {
|
if (changes.position && this.instance) {
|
||||||
var p = changes.position.currentValue as GeolocationPosition;
|
const p = changes.position.currentValue as GeolocationPosition;
|
||||||
if(p && this.initialized) {
|
if(p && this.initialized) {
|
||||||
this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude]));
|
this.instance.setPosition(fromLonLat([p.coords.longitude, p.coords.latitude]));
|
||||||
this.locationTolerance = p.coords.accuracy;
|
this.locationTolerance = p.coords.accuracy;
|
||||||
|
|||||||
+132
-85
@@ -13,11 +13,12 @@ import {Tile,Layer,Image} from 'ol/layer';
|
|||||||
import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest,TileJSON,Source} from 'ol/source';
|
import {XYZ,ImageStatic,OSM,BingMaps,TileWMS,TileArcGISRest,TileJSON,Source} from 'ol/source';
|
||||||
import {Vector as VectorSource} from 'ol/source';
|
import {Vector as VectorSource} from 'ol/source';
|
||||||
import { Vector as VectorLayer } from 'ol/layer';
|
import { Vector as VectorLayer } from 'ol/layer';
|
||||||
|
import { VectorImage as VectorImageLayer } from 'ol/layer';
|
||||||
import VectorTileSource from 'ol/source/VectorTile';
|
import VectorTileSource from 'ol/source/VectorTile';
|
||||||
import VectorTileLayer from 'ol/layer/VectorTile';
|
import VectorTileLayer from 'ol/layer/VectorTile';
|
||||||
import {GeoJSON,MVT} from 'ol/format';
|
import {GeoJSON,MVT} from 'ol/format';
|
||||||
import { Geometry } from 'ol/geom';
|
import { Geometry } from 'ol/geom';
|
||||||
import TileSource from 'ol/source/Tile';
|
import BaseLayer from 'ol/layer/Base';
|
||||||
|
|
||||||
@Component({
|
@Component({
|
||||||
selector: 'fm-map-item-layers',
|
selector: 'fm-map-item-layers',
|
||||||
@@ -32,9 +33,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
@Input() itemLayer: IItemLayer;
|
@Input() itemLayer: IItemLayer;
|
||||||
@Output() onFeatureSelected: EventEmitter<any> = new EventEmitter<any>();
|
@Output() onFeatureSelected: EventEmitter<any> = new EventEmitter<any>();
|
||||||
@Output() onFeatureHover: EventEmitter<any> = new EventEmitter<any>();
|
@Output() onFeatureHover: EventEmitter<any> = new EventEmitter<any>();
|
||||||
|
@Output() onPrerender: EventEmitter<any> = new EventEmitter<any>();
|
||||||
private _apiEndPoint: string;
|
private _apiEndPoint: string;
|
||||||
private initialized:boolean = false;
|
private initialized = false;
|
||||||
private mapEventHandlerInstalled = false;
|
private mapEventHandlerInstalled = false;
|
||||||
|
private topLayerPrerenderEventhandlerInstalled = false;
|
||||||
private selectedFeatures = {};
|
private selectedFeatures = {};
|
||||||
private selectionLayer:Layer<Source> = null;
|
private selectionLayer:Layer<Source> = null;
|
||||||
|
|
||||||
@@ -46,7 +49,7 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
private styleCache = {}
|
private styleCache = {}
|
||||||
|
|
||||||
componentToHex(c) {
|
componentToHex(c) {
|
||||||
var hex = c.toString(16);
|
const hex = c.toString(16);
|
||||||
return hex.length == 1 ? "0" + hex : hex;
|
return hex.length == 1 ? "0" + hex : hex;
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -55,28 +58,28 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
getColorFromGradient(layer: ILayer, value: number): IColor {
|
getColorFromGradient(layer: ILayer, value: number): IColor {
|
||||||
var gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
|
const gradient: IGradientstop[] = layer.renderer.colorMap.gradient;
|
||||||
var histogram: IHistogram = layer.renderer.band.histogram;
|
const histogram: IHistogram = layer.renderer.band.histogram;
|
||||||
var index = (value - histogram.min) / histogram.max;
|
const index = (value - histogram.min) / histogram.max;
|
||||||
var min = gradient[0];
|
let min = gradient[0];
|
||||||
var max = gradient[gradient.length - 1];
|
let max = gradient[gradient.length - 1];
|
||||||
for (var n = 0; n < gradient.length; n++) {
|
for (let n = 0; n < gradient.length; n++) {
|
||||||
var s = gradient[n];
|
const s = gradient[n];
|
||||||
if (s.relativestop <= index && min.relativestop < s.relativestop && n < gradient.length - 1) min = s;
|
if (s.relativestop <= index && min.relativestop < s.relativestop && n < gradient.length - 1) min = s;
|
||||||
if (s.relativestop >= index && max.relativestop > s.relativestop && n > 0) max = s;
|
if (s.relativestop >= index && max.relativestop > s.relativestop && n > 0) max = s;
|
||||||
}
|
}
|
||||||
var i = index - min.relativestop;
|
const i = index - min.relativestop;
|
||||||
var size = max.relativestop - min.relativestop;
|
const size = max.relativestop - min.relativestop;
|
||||||
var alpha = Math.round(min.color.alpha + ((max.color.alpha - min.color.alpha) * i / size));
|
const alpha = Math.round(min.color.alpha + ((max.color.alpha - min.color.alpha) * i / size));
|
||||||
var red = Math.round(min.color.red + ((max.color.red - min.color.red) * i / size));
|
const red = Math.round(min.color.red + ((max.color.red - min.color.red) * i / size));
|
||||||
var green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
|
const green = Math.round(min.color.green + ((max.color.green - min.color.green) * i / size));
|
||||||
var blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
|
const blue = Math.round(min.color.blue + ((max.color.blue - min.color.blue) * i / size));
|
||||||
|
|
||||||
return { alpha: alpha, red: red, green: green, blue: blue };
|
return { alpha: alpha, red: red, green: green, blue: blue };
|
||||||
}
|
}
|
||||||
|
|
||||||
getColorForValue(layer: ILayer, value: number): IColor {
|
getColorForValue(layer: ILayer, value: number): IColor {
|
||||||
var color: IColor = { alpha:0,red:0,green:0,blue:0};
|
let color: IColor = { alpha:0,red:0,green:0,blue:0};
|
||||||
if(layer.renderer.colorMap.entries.length>0) {
|
if(layer.renderer.colorMap.entries.length>0) {
|
||||||
color=layer.renderer.colorMap.noValue;
|
color=layer.renderer.colorMap.noValue;
|
||||||
}
|
}
|
||||||
@@ -91,10 +94,10 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
getColor(item: IItem, layer: ILayer, feature): style.Style {
|
getColor(item: IItem, layer: ILayer, feature): style.Style {
|
||||||
var value = layer.indexKey ? feature.get(layer.indexKey) : feature.get(layer.name);
|
const value = layer.indexKey ? feature.get(layer.indexKey) : feature.get(layer.name);
|
||||||
var key = item.code + "_" + value;
|
const key = item.code + "_" + value;
|
||||||
if (!this.styleCache[key]) {
|
if (!this.styleCache[key]) {
|
||||||
var color: IColor;
|
let color: IColor;
|
||||||
if(layer.renderer.colorMap.colormapType == "manual") {
|
if(layer.renderer.colorMap.colormapType == "manual") {
|
||||||
color = this.getColorForValue(layer, value);
|
color = this.getColorForValue(layer, value);
|
||||||
} else {
|
} else {
|
||||||
@@ -122,34 +125,32 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
createGeotiffLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
createGeotiffLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||||
var layerIndex = -1;
|
let layerIndex = -1;
|
||||||
var layer: Layer<Source> = null;
|
let layer: Layer<Source> = null;
|
||||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
||||||
let source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
const source = new XYZ({ maxZoom: 19, minZoom: 1, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
var data = item.data;
|
const data = item.data;
|
||||||
var l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
|
const l = (data && data.layers && data.layers.length > 0) ? data.layers[0] : null;
|
||||||
if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
|
if (l && l.rendering && l.rendering.renderoutputType == "Tiles") {
|
||||||
var rt = l.rendering as IRenderoutputTiles;
|
const rt = l.rendering as IRenderoutputTiles;
|
||||||
let source = new XYZ({crossOrigin: 'use-credentials', maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
const source = new XYZ({crossOrigin: 'use-credentials', maxZoom: rt.maxzoom, minZoom: rt.minzoom, url: `${this._apiEndPoint}/api/v1/items/${item.code}/tiles/${layerIndex}/{z}/{x}/{y}.png?v=${Date.parse(item.updated)}` });
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
}
|
}
|
||||||
if (l && l.rendering && l.rendering.renderoutputType == "Image") {
|
if (l && l.rendering && l.rendering.renderoutputType == "Image") {
|
||||||
var ri = l.rendering as IRenderoutputImage;
|
const ri = l.rendering as IRenderoutputImage;
|
||||||
// convert to EPSG:4326 asworkaround for cesium
|
const source = new ImageStatic({ imageExtent:ri.extent,projection:'EPSG:3857', crossOrigin: 'use-credentials', url: `${this._apiEndPoint}/api/v1/items/${item.code}/mapimage/${layerIndex}?v=${Date.parse(item.updated)}` });
|
||||||
var projectedExtent = proj.transformExtent( ri.extent, 'EPSG:3857','EPSG:4326');
|
|
||||||
let source = new ImageStatic({ imageExtent:projectedExtent,projection:'EPSG:4326', crossOrigin: 'use-credentials', url: `${this._apiEndPoint}/api/v1/items/${item.code}/mapimage/${layerIndex}?v=${Date.parse(item.updated)}` });
|
|
||||||
layer = new Image({ source: source });
|
layer = new Image({ source: source });
|
||||||
}
|
}
|
||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
createShapeLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
createShapeLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||||
var layerIndex = -1;
|
let layerIndex = -1;
|
||||||
var layer: Layer<Source> = null;
|
let layer: Layer<Source> = null;
|
||||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : item.data.layers[0].index;
|
||||||
var data = item.data;
|
const data = item.data;
|
||||||
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
const l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||||
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
||||||
var rt = l.rendering as IRenderoutputTiles;
|
var rt = l.rendering as IRenderoutputTiles;
|
||||||
layer = new VectorTileLayer({
|
layer = new VectorTileLayer({
|
||||||
@@ -174,15 +175,15 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
})
|
})
|
||||||
});
|
});
|
||||||
} else {
|
} else {
|
||||||
let __this = this;
|
const __this = this;
|
||||||
let format = new GeoJSON();
|
const format = new GeoJSON();
|
||||||
let source = new VectorSource({
|
const source = new VectorSource({
|
||||||
strategy: loadingstrategy.bbox,
|
strategy: loadingstrategy.bbox,
|
||||||
loader: function (extent: Extent, resolution: number, projection: Projection) {
|
loader: function (extent: Extent, resolution: number, projection: Projection) {
|
||||||
var source = this as VectorSource<Geometry>;
|
const source = this as VectorSource<Geometry>;
|
||||||
__this.itemService.getItemFeatures(item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
|
__this.itemService.getItemFeatures(item.code, extent, projection.getCode(), layerIndex).subscribe(function (data) {
|
||||||
var features = format.readFeatures(data);
|
const features = format.readFeatures(data);
|
||||||
for (let f of features) {
|
for (const f of features) {
|
||||||
if (f.get("code")) {
|
if (f.get("code")) {
|
||||||
f.setId(f.get("code"));
|
f.setId(f.get("code"));
|
||||||
}
|
}
|
||||||
@@ -191,12 +192,13 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
layer = new VectorLayer({
|
layer = new VectorImageLayer({
|
||||||
|
declutter: true,
|
||||||
source: source,
|
source: source,
|
||||||
style: (feature) => {
|
style: (feature) => {
|
||||||
var key =feature.get("code") + "_" + feature.get("color");
|
const key =feature.get("code") + "_" + feature.get("color");
|
||||||
if (!this.styleCache[key]) {
|
if (!this.styleCache[key]) {
|
||||||
var color = feature.get("color");
|
const color = feature.get("color");
|
||||||
this.styleCache[key] = new style.Style(
|
this.styleCache[key] = new style.Style(
|
||||||
{
|
{
|
||||||
fill: new style.Fill({
|
fill: new style.Fill({
|
||||||
@@ -233,11 +235,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
createSelectionLayer(itemLayer:IItemLayer):Layer<Source> {
|
createSelectionLayer(itemLayer:IItemLayer):Layer<Source> {
|
||||||
var layerIndex = -1;
|
let layerIndex = -1;
|
||||||
var layer: Layer<Source> = null;
|
const layer: Layer<Source> = null;
|
||||||
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
|
layerIndex = itemLayer.layerIndex != -1 ? itemLayer.layerIndex : itemLayer.item.data.layers[0].index;
|
||||||
var data = itemLayer.item.data;
|
const data = itemLayer.item.data;
|
||||||
var l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
const l:ILayer = (data && data.layers && data.layers.length > 0) ? data.layers[layerIndex] : null;
|
||||||
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
if (l && l.rendering && l.rendering.renderoutputType == "VectorTiles") {
|
||||||
return new VectorTileLayer({
|
return new VectorTileLayer({
|
||||||
renderMode: 'vector',
|
renderMode: 'vector',
|
||||||
@@ -263,36 +265,36 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
createExternalLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
createExternalLayer(item:IItem,itemLayer:IItemLayer):Layer<Source> {
|
||||||
let data = item.data as ILayerData;
|
const data = item.data as ILayerData;
|
||||||
var layer: Layer<Source> = null;
|
let layer: Layer<Source> = null;
|
||||||
switch (data.interfaceType) {
|
switch (data.interfaceType) {
|
||||||
case 'OSM': {
|
case 'OSM': {
|
||||||
let source = new OSM();
|
const source = new OSM();
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'BingMaps': {
|
case 'BingMaps': {
|
||||||
let source = new BingMaps(data.options);
|
const source = new BingMaps(data.options);
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'TileWMS': {
|
case 'TileWMS': {
|
||||||
let source = new TileWMS(data.options);
|
const source = new TileWMS(data.options);
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'TileJSON': {
|
case 'TileJSON': {
|
||||||
let source = new TileJSON(data.options);
|
const source = new TileJSON(data.options);
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'TileArcGISRest': {
|
case 'TileArcGISRest': {
|
||||||
let source = new TileArcGISRest(data.options);
|
const source = new TileArcGISRest(data.options);
|
||||||
layer = new Tile({ source: source });
|
layer = new Tile({ source: source });
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case 'VectorWFSJson': {
|
case 'VectorWFSJson': {
|
||||||
let source = new VectorSource({
|
const source = new VectorSource({
|
||||||
format: new GeoJSON(),
|
format: new GeoJSON(),
|
||||||
url: function (extent) {
|
url: function (extent) {
|
||||||
return (
|
return (
|
||||||
@@ -315,8 +317,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
|
|
||||||
createLayer(itemLayer: IItemLayer): Layer<Source> {
|
createLayer(itemLayer: IItemLayer): Layer<Source> {
|
||||||
var layer: Layer<Source> = null;
|
let layer: Layer<Source> = null;
|
||||||
var layerIndex = -1;
|
const layerIndex = -1;
|
||||||
if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
|
if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.geotiff.processed') {
|
||||||
layer = this.createGeotiffLayer(itemLayer.item,itemLayer);
|
layer = this.createGeotiffLayer(itemLayer.item,itemLayer);
|
||||||
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
} else if (itemLayer.item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
||||||
@@ -325,8 +327,8 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
layer = this.createExternalLayer(itemLayer.item,itemLayer);
|
layer = this.createExternalLayer(itemLayer.item,itemLayer);
|
||||||
}
|
}
|
||||||
if (layer) {
|
if (layer) {
|
||||||
let geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
|
const geometry = new GeoJSON().readGeometry(itemLayer.item.geometry);
|
||||||
let extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
|
const extent = geometry ? proj.transformExtent(geometry.getExtent(), 'EPSG:4326', 'EPSG:3857') : null;
|
||||||
if (extent) layer.setExtent(extent);
|
if (extent) layer.setExtent(extent);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -362,11 +364,35 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
installTopLayerPrerenderEventhandler(olLayer : Layer<Source>) {
|
||||||
|
if(!this.topLayerPrerenderEventhandlerInstalled && this.onPrerender.observers.length > 0 && olLayer) {
|
||||||
|
if(this.instance.getVisible()) {
|
||||||
|
olLayer.on('prerender',this.topLayerPrerenderEventhandler);
|
||||||
|
olLayer.on('postrender',this.topLayerPostrenderEventhandler);
|
||||||
|
this.topLayerPrerenderEventhandlerInstalled = true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
unInstallTopLayerPrerenderEventhandler() {
|
||||||
|
if(this.topLayerPrerenderEventhandlerInstalled && this.onPrerender.observers.length > 0 )
|
||||||
|
{
|
||||||
|
if(this.instance.getVisible()) {
|
||||||
|
const olLayers = this.instance.getLayers().getArray().forEach((l:any) => {
|
||||||
|
l.un('prerender',this.topLayerPrerenderEventhandler);
|
||||||
|
l.un('postrender',this.topLayerPostrenderEventhandler);
|
||||||
|
});
|
||||||
|
this.topLayerPrerenderEventhandlerInstalled = false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
addOrUpdateOlLayer(itemLayer:IItemLayer,index:number):Layer<Source> {
|
addOrUpdateOlLayer(itemLayer:IItemLayer,index:number):Layer<Source> {
|
||||||
if(!itemLayer) return null;
|
if(!itemLayer) return null;
|
||||||
var olLayers = this.instance.getLayers();
|
const olLayers = this.instance.getLayers();
|
||||||
var layer = itemLayer.layer;
|
let layer = itemLayer.layer;
|
||||||
let olIndex = olLayers.getArray().indexOf(layer);
|
const olIndex = olLayers.getArray().indexOf(layer);
|
||||||
if (olIndex < 0) {
|
if (olIndex < 0) {
|
||||||
// New layer: we add it to the map
|
// New layer: we add it to the map
|
||||||
layer = this.createLayer(itemLayer);
|
layer = this.createLayer(itemLayer);
|
||||||
@@ -386,54 +412,75 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
return layer;
|
return layer;
|
||||||
}
|
}
|
||||||
|
|
||||||
updateLayers(itemLayers: IItemLayer[]) {
|
updateLayers(itemLayers: IItemLayer[] | IItemLayer) {
|
||||||
let newLayers: Layer<Source>[] = [];
|
this.unInstallTopLayerPrerenderEventhandler();
|
||||||
if (itemLayers) {
|
let dataLayer = false;
|
||||||
itemLayers.forEach((itemLayer, index) => {
|
let ils:IItemLayer[] = [];
|
||||||
if(itemLayer.item.itemType == 'vnd.farmmaps.itemtype.temporal') {
|
if(Array.isArray(itemLayers)) {
|
||||||
let il = itemLayer as ITemporalItemLayer;
|
ils = itemLayers;
|
||||||
let previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);
|
|
||||||
if(previousLayer) newLayers.push(previousLayer);
|
|
||||||
let selectedLayer = this.addOrUpdateOlLayer(il.selectedItemLayer,newLayers.length);
|
|
||||||
if(selectedLayer) newLayers.push(selectedLayer);
|
|
||||||
let nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length);
|
|
||||||
if(nextLayer) newLayers.push(nextLayer);
|
|
||||||
} else {
|
} else {
|
||||||
let layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length);
|
dataLayer=true;
|
||||||
|
ils=[itemLayers];
|
||||||
|
}
|
||||||
|
const newLayers: Layer<Source>[] = [];
|
||||||
|
if (ils) {
|
||||||
|
ils.forEach((itemLayer, index) => {
|
||||||
|
if(itemLayer.item.itemType == 'vnd.farmmaps.itemtype.temporal') {
|
||||||
|
const il = itemLayer as ITemporalItemLayer;
|
||||||
|
const previousLayer = this.addOrUpdateOlLayer(il.previousItemLayer,newLayers.length);
|
||||||
|
if(previousLayer) newLayers.push(previousLayer);
|
||||||
|
const selectedLayer = this.addOrUpdateOlLayer(il.selectedItemLayer,newLayers.length);
|
||||||
|
if(selectedLayer) newLayers.push(selectedLayer);
|
||||||
|
const nextLayer = this.addOrUpdateOlLayer(il.nextItemLayer,newLayers.length);
|
||||||
|
if(nextLayer) newLayers.push(nextLayer);
|
||||||
|
this.installTopLayerPrerenderEventhandler(selectedLayer);
|
||||||
|
} else {
|
||||||
|
const layer = this.addOrUpdateOlLayer(itemLayer,newLayers.length);
|
||||||
if(layer) newLayers.push(layer);
|
if(layer) newLayers.push(layer);
|
||||||
|
this.installTopLayerPrerenderEventhandler(layer);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
// Remove the layers that have disapeared from childrenLayers
|
// Remove the layers that have disapeared from childrenLayers
|
||||||
var olLayers = this.instance.getLayers();
|
const olLayers = this.instance.getLayers();
|
||||||
while(olLayers.getLength() > newLayers.length) {
|
while(olLayers.getLength() > newLayers.length) {
|
||||||
olLayers.removeAt(newLayers.length);
|
olLayers.removeAt(newLayers.length);
|
||||||
}
|
}
|
||||||
this.selectionLayer=null;
|
this.selectionLayer=null;
|
||||||
if(this.mapEventHandlerInstalled && itemLayers.length==1 && this.getItemlayer(itemLayers[0]).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
if(this.mapEventHandlerInstalled && ils.length==1 && this.getItemlayer(itemLayers[0]).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
||||||
this.selectionLayer = this.createSelectionLayer(this.getItemlayer(itemLayers[0]));
|
this.selectionLayer = this.createSelectionLayer(this.getItemlayer(itemLayers[0]));
|
||||||
if(this.selectionLayer) olLayers.push(this.selectionLayer)
|
if(this.selectionLayer) olLayers.push(this.selectionLayer)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
topLayerPrerenderEventhandler = (event) => {
|
||||||
|
this.onPrerender.emit(event);
|
||||||
|
}
|
||||||
|
|
||||||
|
topLayerPostrenderEventhandler = (event) => {
|
||||||
|
const ctx = event.context;
|
||||||
|
ctx.restore();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
mapEventHandler = (event) => {
|
mapEventHandler = (event) => {
|
||||||
// select only when having observers
|
// select only when having observers
|
||||||
if(event.type === 'click' && !this.onFeatureSelected.observers.length) return;
|
if(event.type === 'click' && !this.onFeatureSelected.observers.length) return;
|
||||||
if(event.type === 'pointermove' && !this.onFeatureHover.observers.length) return;
|
if(event.type === 'pointermove' && !this.onFeatureHover.observers.length) return;
|
||||||
let itemLayer= this.getItemlayer(this.itemLayer);
|
const itemLayer= this.getItemlayer(this.itemLayer);
|
||||||
if(itemLayer && itemLayer.layer) {
|
if(itemLayer && itemLayer.layer) {
|
||||||
this.selectedFeatures = {};
|
this.selectedFeatures = {};
|
||||||
if(itemLayer.layer ) {
|
if(itemLayer.layer ) {
|
||||||
let minZoom = itemLayer.layer.getMinZoom();
|
const minZoom = itemLayer.layer.getMinZoom();
|
||||||
let currentZoom = this.map.instance.getView().getZoom();
|
const currentZoom = this.map.instance.getView().getZoom();
|
||||||
if(currentZoom>minZoom) {
|
if(currentZoom>minZoom) {
|
||||||
itemLayer.layer.getFeatures(event.pixel).then((features) => {
|
itemLayer.layer.getFeatures(event.pixel).then((features) => {
|
||||||
if(!features.length) {
|
if(!features.length) {
|
||||||
this.onFeatureHover.emit(null);
|
this.onFeatureHover.emit(null);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
let fid = features[0].getId();
|
const fid = features[0].getId();
|
||||||
let feature = features[0];
|
const feature = features[0];
|
||||||
if(event.type === 'pointermove') {
|
if(event.type === 'pointermove') {
|
||||||
this.selectedFeatures[fid] = features[0];
|
this.selectedFeatures[fid] = features[0];
|
||||||
this.onFeatureHover.emit({ "feature": feature,"itemCode":itemLayer.item.code });
|
this.onFeatureHover.emit({ "feature": feature,"itemCode":itemLayer.item.code });
|
||||||
@@ -455,11 +502,11 @@ export class ItemLayersComponent extends LayerGroupComponent implements OnChange
|
|||||||
ngOnChanges(changes: SimpleChanges) {
|
ngOnChanges(changes: SimpleChanges) {
|
||||||
if (this.instance && this.initialized) {
|
if (this.instance && this.initialized) {
|
||||||
if (changes['itemLayers']) {
|
if (changes['itemLayers']) {
|
||||||
var itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
|
const itemLayers = changes['itemLayers'].currentValue as IItemLayer[];
|
||||||
this.updateLayers(itemLayers);
|
this.updateLayers(itemLayers);
|
||||||
}
|
}
|
||||||
if (changes['itemLayer']) {
|
if (changes['itemLayer']) {
|
||||||
var itemLayer = changes['itemLayer'].currentValue as IItemLayer;
|
const itemLayer = changes['itemLayer'].currentValue as IItemLayer;
|
||||||
this.itemLayer = itemLayer
|
this.itemLayer = itemLayer
|
||||||
if(itemLayer) {
|
if(itemLayer) {
|
||||||
if(this.getItemlayer(this.itemLayer).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
if(this.getItemlayer(this.itemLayer).item.itemType == 'vnd.farmmaps.itemtype.shape.processed') {
|
||||||
|
|||||||
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user