Author SHA1 Message Date
peter 37043a933f AW-1301 Upgrade to version 9 of Angular. 2020-06-10 13:26:44 +02:00
peter f837f1bf3a AW-1301 Initial project based on FarmMapsLib. 2020-06-10 13:21:03 +02:00
474 changed files with 12597 additions and 107887 deletions
-22
View File
@@ -1,22 +0,0 @@
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": {
}
}
-6
View File
@@ -33,7 +33,6 @@ speed-measure-plugin.json
.history/* .history/*
# misc # misc
/.angular/cache
/.sass-cache /.sass-cache
/connect.lock /connect.lock
/coverage /coverage
@@ -48,8 +47,3 @@ 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-aol/node_modules/
projects/common/node_modules/
+1
View File
@@ -0,0 +1 @@
@FarmMaps:registry=https://repository.akkerweb.nl/repository/npm-group/
Vendored
-24
View File
@@ -1,24 +0,0 @@
@Library('farmmaps-shared-library') _
pipeline {
agent any;
options {
copyArtifactPermission projectNames: env.allProjectsArtifactPermission;
disableConcurrentBuilds();
}
stages {
stage('FarmmapsLibBuildAll') {
steps {
stepFarmmapsLibBuildAll();
}
}
}
post {
success {
postSuccess();
}
always {
postAlways();
}
}
}
+35 -12
View File
@@ -1,24 +1,47 @@
@Library('farmmaps-shared-library') _
pipeline { pipeline {
agent any; agent any
options { environment {
copyArtifactPermission projectNames: env.allProjectsArtifactPermission; PACKAGE_VERSION_PREFIX=sh(script: 'jq .version package.json |sed "s/\\"//g"', returnStdout: true).trim()
disableConcurrentBuilds(); PACKAGE_VERSION="${PACKAGE_VERSION_PREFIX + '-prerelease.' + env.BUILD_NUMBER}"
} }
stages { stages {
stage('FarmmapsLibBuildAll') { stage('npm install'){
steps { steps {
stepFarmmapsLibBuildAll(); sh '''npm install
cd projects/common
npm install
cd ../common-map
npm install
'''
} }
} }
stage('build'){
steps {
sh '''ng build common
ng build common-map'''
}
}
stage('npm publish'){
steps {
sh '''cd dist/common
npm version ${PACKAGE_VERSION}
npm publish
cd ../common-map
npm version ${PACKAGE_VERSION}
npm publish'''
}
}
} }
post { post {
success {
postSuccess();
}
always { always {
postAlways(); emailext (
body: '${DEFAULT_CONTENT}',
mimeType: 'text/html',
replyTo: '${DEFAULT_REPLYTO}',
subject: '${DEFAULT_SUBJECT}',
to: emailextrecipients([[$class: 'CulpritsRecipientProvider'], [$class: 'RequesterRecipientProvider']])
)
} }
} }
} }
+1 -7
View File
@@ -55,11 +55,5 @@ 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
```
+52 -103
View File
@@ -11,11 +11,8 @@
"schematics": {}, "schematics": {},
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-builders/custom-webpack:browser", "builder": "@angular-devkit/build-angular:browser",
"options": { "options": {
"customWebpackConfig": {
"path": "./custom-webpack.config.js"
},
"aot": true, "aot": true,
"outputPath": "dist/farmmaps-lib-app", "outputPath": "dist/farmmaps-lib-app",
"index": "src/index.html", "index": "src/index.html",
@@ -38,22 +35,16 @@
"input":"src/assets", "input":"src/assets",
"output":"/" "output":"/"
}, },
{
"glob": "**/*",
"input": "node_modules/cesium/Build/Cesium",
"output": "/assets/cesium"
},
"src/configuration.json" "src/configuration.json"
], ],
"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-6.2.1/css/all.min.css", "node_modules/font-awesome/css/font-awesome.min.css",
"fonts/FMIconFont/style.css", "fonts/FMIconFont/style.css"
"node_modules/cesium/Build/Cesium/Widgets/widgets.css",
"node_modules/ol/ol.css"
], ],
"scripts": [] "scripts": [],
"es5BrowserSupport": true
}, },
"configurations": { "configurations": {
"production": { "production": {
@@ -83,48 +74,19 @@
"maximumWarning": "6kb" "maximumWarning": "6kb"
} }
] ]
},
"development": {
"fileReplacements": [
{
"replace": "src/environments/environment.ts",
"with": "src/environments/environment.prod.ts"
}
],
"optimization": false,
"sourceMap": true,
"namedChunks": true,
"extractLicenses": false,
"vendorChunk": false,
"buildOptimizer": false,
"budgets": [
{
"type": "initial",
"maximumWarning": "2mb",
"maximumError": "7mb"
},
{
"type": "anyComponentStyle",
"maximumWarning": "6kb"
}
]
} }
} }
}, },
"serve": { "serve": {
"builder": "@angular-builders/custom-webpack:dev-server", "builder": "@angular-devkit/build-angular:dev-server",
"options": { "options": {
"browserTarget": "farmmaps-lib-app:build" "browserTarget": "farmmaps-lib-app:build"
}, },
"configurations": { "configurations": {
"production": { "production": {
"browserTarget": "farmmaps-lib-app:build:production" "browserTarget": "farmmaps-lib-app:build:production"
},
"development": {
"browserTarget": "farmmaps-lib-app:build:development"
} }
}, }
"defaultConfiguration": "development"
}, },
"extract-i18n": { "extract-i18n": {
"builder": "@angular-devkit/build-angular:extract-i18n", "builder": "@angular-devkit/build-angular:extract-i18n",
@@ -148,6 +110,18 @@
"src/assets" "src/assets"
] ]
} }
},
"lint": {
"builder": "@angular-devkit/build-angular:tslint",
"options": {
"tsConfig": [
"src/tsconfig.app.json",
"src/tsconfig.spec.json"
],
"exclude": [
"**/node_modules/**"
]
}
} }
} }
}, },
@@ -167,6 +141,15 @@
"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/**"
]
}
} }
} }
}, },
@@ -177,7 +160,7 @@
"prefix": "fm", "prefix": "fm",
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:ng-packagr", "builder": "@angular-devkit/build-ng-packagr:build",
"options": { "options": {
"tsConfig": "projects/common/tsconfig.lib.json", "tsConfig": "projects/common/tsconfig.lib.json",
"project": "projects/common/ng-package.json" "project": "projects/common/ng-package.json"
@@ -195,6 +178,18 @@
"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/**"
]
}
} }
} }
}, },
@@ -205,7 +200,7 @@
"prefix": "fm-map", "prefix": "fm-map",
"architect": { "architect": {
"build": { "build": {
"builder": "@angular-devkit/build-angular:ng-packagr", "builder": "@angular-devkit/build-ng-packagr:build",
"options": { "options": {
"tsConfig": "projects/common-map/tsconfig.lib.json", "tsConfig": "projects/common-map/tsconfig.lib.json",
"project": "projects/common-map/ng-package.json" "project": "projects/common-map/ng-package.json"
@@ -223,67 +218,21 @@
"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"
} }
}
}
}, },
"common-map3d": { "lint": {
"projectType": "library", "builder": "@angular-devkit/build-angular:tslint",
"root": "projects/common-map3d",
"sourceRoot": "projects/common-map3d/src",
"prefix": "fm-map3d",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:ng-packagr:build",
"options": { "options": {
"tsConfig": "projects/common-map3d/tsconfig.lib.json", "tsConfig": [
"project": "projects/common-map3d/ng-package.json" "projects/common-map/tsconfig.lib.json",
}, "projects/common-map/tsconfig.spec.json"
"configurations": { ],
"production": { "exclude": [
"tsConfig": "projects/common-map3d/tsconfig.lib.prod.json" "**/node_modules/**"
} ]
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/common-map3d/src/test.ts",
"tsConfig": "projects/common-map3d/tsconfig.spec.json",
"karmaConfig": "projects/common-map3d/karma.conf.js"
}
}
}
},
"common-aol": {
"projectType": "library",
"root": "projects/common-aol",
"sourceRoot": "projects/common-aol/src",
"prefix": "fm-aol",
"architect": {
"build": {
"builder": "@angular-devkit/build-angular:ng-packagr:build",
"options": {
"tsConfig": "projects/common-aol/tsconfig.lib.json",
"project": "projects/common-aol/ng-package.json"
},
"configurations": {
"production": {
"tsConfig": "projects/common-aol/tsconfig.lib.prod.json"
}
}
},
"test": {
"builder": "@angular-devkit/build-angular:karma",
"options": {
"main": "projects/common-aol/src/test.ts",
"tsConfig": "projects/common-aol/tsconfig.spec.json",
"karmaConfig": "projects/common-aol/karma.conf.js"
} }
} }
} }
} }
}, },
"cli": { "defaultProject": "farmmaps-lib-app"
"analytics": false
}
} }
View File
-16
View File
@@ -1,16 +0,0 @@
module.exports = {
resolve: {
fallback: {
// Resolve node module use of fs
fs: "empty",
Buffer: false,
http: require.resolve("stream-http"),
https: require.resolve("https-browserify"),
url: require.resolve("url/"),
zlib: require.resolve('browserify-zlib'),
assert: require.resolve("assert/"),
util: require.resolve("util/"),
buffer: require.resolve("buffer/")
}
}
};
-18
View File
@@ -1,18 +0,0 @@
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
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
File diff suppressed because it is too large Load Diff
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
/*!
* 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; }
-6
View File
@@ -1,6 +0,0 @@
/*!
* 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}
-19
View File
@@ -1,19 +0,0 @@
/*!
* 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
View File
@@ -1,6 +0,0 @@
/*!
* 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}
-19
View File
@@ -1,19 +0,0 @@
/*!
* 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
View File
@@ -1,6 +0,0 @@
/*!
* 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}
-19
View File
@@ -1,19 +0,0 @@
/*!
* 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; }
-6
View File
@@ -1,6 +0,0 @@
/*!
* 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}
-635
View File
@@ -1,635 +0,0 @@
/*!
* 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); }
File diff suppressed because one or more lines are too long
-19
View File
@@ -1,19 +0,0 @@
/*!
* 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; }
-6
View File
@@ -1,6 +0,0 @@
/*!
* 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}
-26
View File
@@ -1,26 +0,0 @@
/*!
* 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
View File
@@ -1,6 +0,0 @@
/*!
* 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
File diff suppressed because one or more lines are too long
-34
View File
@@ -1,34 +0,0 @@
/*!
* 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
View File
@@ -1,6 +0,0 @@
/*!
* 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.
File diff suppressed because one or more lines are too long

Before

Width:  |  Height:  |  Size: 143 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.
Binary file not shown.
Binary file not shown.
-40
View File
@@ -23,46 +23,6 @@
content: "b"; content: "b";
} }
.fm-trijntje:before {
content: "c";
}
.fm-satellite:before {
content: "d";
}
.fm-sensoterra:before {
content: "e";
}
.fm-blight:before {
content: "f";
}
.fm-agrodatacube:before {
content: "g";
}
.fm-app-menu:before {
content: "h";
}
.fm-blight-holes:before {
content: "i";
}
.fm-carbon:before {
content: "j";
}
.fm-bo-akkerbouw:before {
content: "k";
}
.fm-grass:before {
content: "l";
}
@font-face { @font-face {
font-family: "FarmMaps"; font-family: "FarmMaps";
src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */ src: url("./FMIconFont.woff") format("woff"), /* Modern Browsers */
+12508 -29267
View File
File diff suppressed because it is too large Load Diff
+47 -69
View File
@@ -1,88 +1,66 @@
{ {
"name": "farmmaps-lib-app", "name": "farmmaps-lib-app",
"version": "4.2.0", "version": "0.0.1",
"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": "eslint -c .eslintrc.js --ext .ts", "lint": "ng lint",
"e2e": "ng e2e" "e2e": "ng e2e"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular-eslint/eslint-plugin": "^15.2.1", "@angular/animations": "~9.1.10",
"@angular/animations": "^16.2.12", "@angular/common": "~9.1.10",
"@angular/common": "^16.2.12", "@angular/compiler": "~9.1.10",
"@angular/compiler": "^16.2.12", "@angular/core": "~9.1.10",
"@angular/core": "^16.2.12", "@angular/forms": "~9.1.10",
"@angular/forms": "^16.2.12", "@angular/platform-browser": "~9.1.10",
"@angular/platform-browser": "^16.2.12", "@angular/platform-browser-dynamic": "~9.1.10",
"@angular/platform-browser-dynamic": "^16.2.12", "@angular/router": "~9.1.10",
"@angular/router": "^16.2.12", "@microsoft/signalr": "^3.1.3",
"@farmmaps/common": "file:dist/common", "@farmmaps/common": ">=0.0.1-prerelease.267 <0.0.1",
"@farmmaps/common-aol": "file:dist/common-aol", "@farmmaps/common-map": ">=0.0.1-prerelease.267 <0.0.1",
"@farmmaps/common-map": "file:dist/common-map", "@ng-bootstrap/ng-bootstrap": "^6.0",
"@farmmaps/common-map3d": "file:dist/common-map3d", "@ngrx/effects": "^9.0",
"@microsoft/signalr": "^8.0.0", "@ngrx/router-store": "^9.0",
"@ng-bootstrap/ng-bootstrap": "^15.0.0", "@ngrx/store": "^9.0",
"@ngrx/effects": "^15", "ngx-uploadx": "^3.3.4",
"@ngrx/router-store": "^15", "angular-oauth2-oidc": "^9.1",
"@ngrx/store": "^14", "bootstrap": "^4.4.1",
"@popperjs/core": "^2.11.6", "core-js": "^2.6.11",
"angular-oauth2-oidc": "^13", "font-awesome": "^4.7.0",
"assert": "^2.0.0", "ngrx-store-localstorage": "^9.0",
"bootstrap": "^5.2.0",
"browserify-zlib": "^0.2.0",
"buffer": "^6.0.3",
"cesium": "^1.97.0",
"core-js": "^2.6.12",
"https-browserify": "^1.0.0",
"moment": "^2.29.4",
"ngrx-store-localstorage": "^14",
"ngx-avatars": "^1.7.0",
"ngx-clipboard": "^15.1.0",
"ngx-image-cropper": "^6.0.2",
"ngx-uploadx": "^5.2.0",
"ol": "6.14.1",
"olcs": "^2.13.1",
"resumablejs": "^1.1.0", "resumablejs": "^1.1.0",
"rxjs": "^7.8.1", "rxjs": "^6.5.4",
"stream": "^0.0.2",
"stream-http": "^3.2.0",
"tassign": "^1.0.0", "tassign": "^1.0.0",
"tslib": "^2.4.0", "tslib": "^1.10.0",
"url": "^0.11.0", "zone.js": "~0.10.2",
"util": "^0.12.4", "ngx-openlayers": "1.0.0-next.13",
"zone.js": "~0.13.3" "ol": "6.1.1"
}, },
"devDependencies": { "devDependencies": {
"@angular-builders/custom-webpack": "^16.0.1", "@angular-devkit/build-angular": "~0.901.7",
"@angular-devkit/build-angular": "^16.2.11", "@angular-devkit/build-ng-packagr": "~0.901.7",
"@angular/cli": "^16.2.11", "@angular/cli": "^9.1.7",
"@angular/compiler-cli": "^16.2.12", "@angular/compiler-cli": "~9.1.10",
"@angular/language-service": "^16.2.12", "@angular/language-service": "~9.1.10",
"@angular/localize": "^16.2.12",
"@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.3",
"@types/node": "^12.20.15", "@types/node": "^12.11.1",
"@typescript-eslint/eslint-plugin": "^5.54.0", "codelyzer": "^5.1.2",
"@typescript-eslint/eslint-plugin-tslint": "^5.54.0", "jasmine-core": "~2.99.1",
"@typescript-eslint/parser": "^5.54.0", "jasmine-spec-reporter": "~4.2.1",
"eslint": "^8.35.0", "karma": "^5.0.2",
"eslint-config-prettier": "^8.6.0", "karma-chrome-launcher": "~2.2.0",
"eslint-plugin-import": "^2.27.5", "karma-coverage-istanbul-reporter": "~2.0.1",
"jasmine-core": "^4.3.0", "karma-jasmine": "~1.1.2",
"jasmine-spec-reporter": "^7.0.0", "karma-jasmine-html-reporter": "^0.2.2",
"karma": "^6.3.20", "ng-packagr": "^9.0.0",
"karma-chrome-launcher": "~3.1.0", "protractor": "^5.4.4",
"karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.0.0",
"ng-packagr": "^16.2.3",
"protractor": "^7.0.0",
"ts-node": "^8.8.1", "ts-node": "^8.8.1",
"typescript": "~5.1.6" "tslint": "~5.11.0",
"typescript": "~3.8.3"
} }
} }
-22
View File
@@ -1,22 +0,0 @@
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": {
}
}
-24
View File
@@ -1,24 +0,0 @@
# CommonAol
This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 7.2.0.
## Code scaffolding
Run `ng generate component component-name --project common-aol` to generate a new component. You can also use `ng generate directive|pipe|service|class|guard|interface|enum|module --project common-aol`.
> Note: Don't forget to add `--project common-aol` or else it will be added to the default project in your `angular.json` file.
## Build
Run `ng build common-aol` to build the project. The build artifacts will be stored in the `dist/` directory.
## Publishing
After building your library with `ng build common-aol`, go to the dist folder `cd dist/common-aol` and run `npm publish`.
## Running unit tests
Run `ng test common-aol` to execute the unit tests via [Karma](https://karma-runner.github.io).
## Further help
To get more help on the Angular CLI use `ng help` or go check out the [Angular CLI README](https://github.com/angular/angular-cli/blob/master/README.md).
-10
View File
@@ -1,10 +0,0 @@
{
"$schema": "../../node_modules/ng-packagr/ng-package.schema.json",
"dest": "../../dist/common-aol",
"lib": {
"entryFile": "src/public-api.ts"
},
"allowedNonPeerDependencies": [
"."
]
}
File diff suppressed because it is too large Load Diff
-21
View File
@@ -1,21 +0,0 @@
{
"name": "@farmmaps/common-aol",
"version": "2.1.0",
"publishConfig": {
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
},
"dependencies": {
"tslib": "^2.0.0",
"@types/openlayers": "4.3.x || 4.4.x",
"openlayers": "4.3.x || 4.4.x"
},
"peerDependencies": {
"@angular/core": ">=16.0.0",
"ngrx-store-localstorage": ">=16.0.0",
"@ngrx/effects": ">=16.0.0",
"@ngrx/router-store":">=16.0.0",
"@ngrx/store":">=16.0.0",
"tassign": ">=1.0.0",
"ol": ">=6.8.1"
}
}
@@ -1,114 +0,0 @@
import { NgModule } from '@angular/core';
import { CommonModule } from '@angular/common';
import {
MapComponent, ViewComponent, GraticuleComponent,
LayerGroupComponent, LayerTileComponent, LayerVectorComponent, LayerVectorTileComponent, LayerImageComponent,
SourceClusterComponent, SourceRasterComponent,
SourceBingmapsComponent, SourceOsmComponent, SourceVectorComponent, SourceVectorTileComponent, SourceXYZComponent, SourceTileUTFGridComponent, SourceTileWMSComponent,
SourceGeoJSONComponent, SourceTileWMTSComponent, SourceTileJSONComponent, SourceImageStaticComponent, SourceImageWMSComponent, FeatureComponent,
GeometryLinestringComponent, GeometryPointComponent, GeometryPolygonComponent,
CollectionCoordinatesComponent, CoordinateComponent,
StyleCircleComponent, StyleComponent, StyleFillComponent, StyleIconComponent, StyleStrokeComponent, StyleTextComponent,
ControlAttributionComponent, ControlMousePositionComponent,
// ControlFullScreenComponent, ControlRotateComponent, ControlZoomSliderComponent,
ControlOverviewMapComponent, ControlScaleLineComponent, ControlZoomComponent,
ControlZoomToExtentComponent, DefaultControlComponent, ControlComponent,
FormatMVTComponent,
TileGridComponent, TileGridWMTSComponent,
DefaultInteractionComponent, DragRotateInteractionComponent, DragRotateAndZoomInteractionComponent,
DoubleClickZoomInteractionComponent, DragAndDropInteractionComponent, DragBoxInteractionComponent,
DragPanInteractionComponent, DragZoomInteractionComponent, MouseWheelZoomInteractionComponent,
PinchZoomInteractionComponent, DrawInteractionComponent, SelectInteractionComponent, ModifyInteractionComponent, TranslateInteractionComponent,
OverlayComponent,
ContentComponent,
AttributionComponent,
AttributionsComponent
} from './components';
export * from './components';
const COMPONENTS = [
MapComponent,
ViewComponent,
GraticuleComponent,
LayerGroupComponent,
LayerImageComponent,
LayerTileComponent,
LayerVectorComponent,
LayerVectorTileComponent,
SourceClusterComponent,
SourceRasterComponent,
SourceOsmComponent,
SourceBingmapsComponent,
SourceVectorComponent,
SourceXYZComponent,
SourceVectorTileComponent,
SourceTileUTFGridComponent,
SourceTileWMSComponent,
SourceTileWMTSComponent,
SourceTileJSONComponent,
SourceGeoJSONComponent,
SourceImageStaticComponent,
SourceImageWMSComponent,
FeatureComponent,
GeometryLinestringComponent,
GeometryPointComponent,
GeometryPolygonComponent,
CoordinateComponent,
CollectionCoordinatesComponent,
StyleComponent,
StyleCircleComponent,
StyleFillComponent,
StyleIconComponent,
StyleStrokeComponent,
StyleTextComponent,
DefaultControlComponent,
ControlComponent,
ControlAttributionComponent,
//ControlFullScreenComponent,
ControlMousePositionComponent,
ControlOverviewMapComponent,
//ControlRotateComponent,
ControlScaleLineComponent,
ControlZoomComponent,
//ControlZoomSliderComponent,
ControlZoomToExtentComponent,
FormatMVTComponent,
TileGridComponent,
TileGridWMTSComponent,
DefaultInteractionComponent,
DoubleClickZoomInteractionComponent,
DragAndDropInteractionComponent,
DragBoxInteractionComponent,
DragPanInteractionComponent,
DragRotateInteractionComponent,
DragRotateAndZoomInteractionComponent,
DragZoomInteractionComponent,
MouseWheelZoomInteractionComponent,
PinchZoomInteractionComponent,
DrawInteractionComponent,
SelectInteractionComponent,
ModifyInteractionComponent,
TranslateInteractionComponent,
OverlayComponent,
ContentComponent,
AttributionComponent,
AttributionsComponent
];
@NgModule({
declarations: COMPONENTS,
imports: [CommonModule],
exports: COMPONENTS
})
export class AppCommonAolModule {
}
@@ -1,21 +0,0 @@
import { Component, ElementRef, OnInit } from '@angular/core';
import { Attribution } from 'openlayers';
@Component({
selector: 'aol-attribution',
template: '<ng-content></ng-content>'
})
export class AttributionComponent implements OnInit {
instance: Attribution;
html: string;
constructor(
private elementRef: ElementRef
) {
}
ngOnInit() {
this.html = this.elementRef.nativeElement.innerHTML;
this.instance = new Attribution(this);
}
}
@@ -1,26 +0,0 @@
import { AfterViewInit, Component, ContentChildren, Host, QueryList } from '@angular/core';
import { Attribution } from 'openlayers';
import { SourceComponent } from './sources/source.component';
import { AttributionComponent } from './attribution.component';
@Component({
selector: 'aol-attributions',
template: '<ng-content></ng-content>'
})
export class AttributionsComponent implements AfterViewInit {
instance: Array<Attribution>;
@ContentChildren(AttributionComponent) attributions: QueryList<AttributionComponent>;
constructor(@Host() private source: SourceComponent) {
}
/* we can do this at the very end */
ngAfterViewInit() {
if (this.attributions.length) {
this.instance = this.attributions.map(cmp => cmp.instance);
// console.log('setting attributions:', this.instance);
this.source.instance.setAttributions(this.instance);
}
}
}
@@ -1,13 +0,0 @@
import { Component, ElementRef } from '@angular/core';
@Component({
selector: 'aol-content',
template: '<ng-content></ng-content>'
})
export class ContentComponent {
constructor(
public elementRef: ElementRef
) {
}
}
@@ -1,32 +0,0 @@
import { Component, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';
import { control } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-attribution',
template: ``
})
export class ControlAttributionComponent implements OnInit, OnDestroy {
public componentType: string = 'control';
instance: control.Attribution;
target: Element;
@Input() collapsible: boolean;
constructor(
private map: MapComponent,
private element: ElementRef
) {
}
ngOnInit() {
this.target = this.element.nativeElement;
// console.log('ol.control.Attribution init: ', this);
this.instance = new control.Attribution(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-attribution');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,34 +0,0 @@
import { Component, ContentChild, OnDestroy, OnInit } from '@angular/core';
import { control } from 'openlayers';
import { MapComponent } from '../map.component';
import { ContentComponent } from '../content.component';
@Component({
selector: 'aol-control',
template: `<ng-content></ng-content>`
})
export class ControlComponent implements OnInit, OnDestroy {
public componentType: string = 'control';
instance: control.Control;
element: Element;
@ContentChild(ContentComponent) content: ContentComponent;
constructor(
private map: MapComponent
) {
}
ngOnInit() {
if (this.content) {
this.element = this.content.elementRef.nativeElement;
this.instance = new control.Control(this);
this.map.instance.addControl(this.instance);
}
}
ngOnDestroy() {
if (this.instance) {
this.map.instance.removeControl(this.instance);
}
}
}
@@ -1,31 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { control, Collection } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-defaults',
template: ''
})
export class DefaultControlComponent implements OnInit, OnDestroy {
instance: Collection<control.Control>;
@Input() attribution: boolean;
@Input() attributionOptions: olx.control.AttributionOptions;
@Input() rotate: boolean;
@Input() rotateOptions: olx.control.RotateOptions;
@Input() zoom: boolean;
@Input() zoomOptions: olx.control.ZoomOptions;
constructor(private map: MapComponent) {
}
ngOnInit() {
// console.log('ol.control.defaults init: ', this);
this.instance = control.defaults(this);
this.instance.forEach((control) => this.map.instance.addControl(control));
}
ngOnDestroy() {
// console.log('removing aol-control-defaults');
this.instance.forEach((control) => this.map.instance.removeControl(control));
}
}
@@ -1,28 +0,0 @@
// Commented-out due to error TS2345: Argument of type 'this' is not assignable to parameter of type 'FullScreenOptions'.
// import { Component, OnDestroy, OnInit } from '@angular/core';
// import { control } from 'openlayers';
// import { MapComponent } from '../map.component';
// @Component({
// selector: 'aol-control-fullscreen',
// template: `<ng-content></ng-content>`
// })
// export class ControlFullScreenComponent implements OnInit, OnDestroy {
// instance: control.FullScreen;
// constructor(private map: MapComponent) {
// // console.log('instancing aol-control-fullscreen');
// }
// ngOnInit() {
// this.instance = new control.FullScreen(this);
// this.map.instance.addControl(this.instance);
// }
// ngOnDestroy() {
// // console.log('removing aol-control-fullscreen');
// this.map.instance.removeControl(this.instance);
// }
// }
@@ -1,11 +0,0 @@
export * from './attribution.component';
export * from './control.component';
export * from './default.component';
//export * from './fullscreen.component';
export * from './mouseposition.component';
export * from './overviewmap.component';
//export * from './rotate.component';
export * from './scaleline.component';
export * from './zoom.component';
//export * from './zoomslider.component';
export * from './zoomtoextent.component';
@@ -1,32 +0,0 @@
import { Component, ElementRef, Input, OnDestroy, OnInit } from '@angular/core';
import { control, CoordinateFormatType, ProjectionLike } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-mouseposition',
template: ``
})
export class ControlMousePositionComponent implements OnInit, OnDestroy {
instance: control.MousePosition;
@Input() coordinateFormat: CoordinateFormatType;
@Input() projection: ProjectionLike;
target: Element;
constructor(
private map: MapComponent,
private element: ElementRef
) {
}
ngOnInit() {
this.target = this.element.nativeElement;
// console.log('ol.control.MousePosition init: ', this);
this.instance = new control.MousePosition(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-mouseposition');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,33 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { control, View, layer } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-overviewmap',
template: `<ng-content></ng-content>`
})
export class ControlOverviewMapComponent implements OnInit, OnDestroy {
instance: control.OverviewMap;
@Input() collapsed: boolean;
@Input() collapseLabel: string;
@Input() collapsible: boolean;
@Input() label: string;
@Input() layers: layer.Layer[];
@Input() target: Element;
@Input() tipLabel: string;
@Input() view: View;
constructor(private map: MapComponent) {
// console.log('instancing aol-control-overviewmap');
}
ngOnInit() {
this.instance = new control.OverviewMap(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-overviewmap');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,27 +0,0 @@
// Commented-out due to error TS2345: Argument of type 'this' is not assignable to parameter of type 'RotateOptions'.
// import { Component, OnDestroy, OnInit } from '@angular/core';
// import { control } from 'openlayers';
// import { MapComponent } from '../map.component';
// @Component({
// selector: 'aol-control-rotate',
// template: `<ng-content></ng-content>`
// })
// export class ControlRotateComponent implements OnInit, OnDestroy {
// instance: control.Rotate;
// constructor(private map: MapComponent) {
// // console.log('instancing aol-control-rotate');
// }
// ngOnInit() {
// this.instance = new control.Rotate(this);
// this.map.instance.addControl(this.instance);
// }
// ngOnDestroy() {
// // console.log('removing aol-control-rotate');
// this.map.instance.removeControl(this.instance);
// }
// }
@@ -1,26 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { control } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-scaleline',
template: `<ng-content></ng-content>`
})
export class ControlScaleLineComponent implements OnInit, OnDestroy {
instance: control.ScaleLine;
@Input() units: string;
constructor(private map: MapComponent) {
// console.log('instancing aol-control-scaleline');
}
ngOnInit() {
this.instance = new control.ScaleLine(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-scaleline');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,32 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { control } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-zoom',
template: `<ng-content></ng-content>`
})
export class ControlZoomComponent implements OnInit, OnDestroy {
instance: control.Zoom;
@Input() duration: number;
@Input() zoomInLabel: (string | Node);
@Input() zoomOutLabel: (string | Node);
@Input() zoomInTipLabel: string;
@Input() zoomOutTipLabel: string;
@Input() delta: number;
constructor(private map: MapComponent) {
// console.log('instancing aol-control-zoom');
}
ngOnInit() {
this.instance = new control.Zoom(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-zoom');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,27 +0,0 @@
// Commented-out due to error TS2345: Argument of type 'this' is not assignable to parameter of type 'ZoomSliderOptions'.
// import { Component, OnDestroy, OnInit } from '@angular/core';
// import { control } from 'openlayers';
// import { MapComponent } from '../map.component';
// @Component({
// selector: 'aol-control-zoomslider',
// template: `<ng-content></ng-content>`
// })
// export class ControlZoomSliderComponent implements OnInit, OnDestroy {
// instance: control.ZoomSlider;
// constructor(private map: MapComponent) {
// // console.log('instancing aol-control-zoomslider');
// }
// ngOnInit() {
// this.instance = new control.ZoomSlider(this);
// this.map.instance.addControl(this.instance);
// }
// ngOnDestroy() {
// // console.log('removing aol-control-zoomslider');
// this.map.instance.removeControl(this.instance);
// }
// }
@@ -1,30 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { control, Extent } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-control-zoomtoextent',
template: `<ng-content></ng-content>`
})
export class ControlZoomToExtentComponent implements OnInit, OnDestroy {
instance: control.ZoomToExtent;
@Input() className: string;
@Input() label: (string | Node);
@Input() tipLabel: string;
@Input() extent: Extent;
constructor(private map: MapComponent) {
// console.log('instancing aol-control-zoomtoextent');
}
ngOnInit() {
this.instance = new control.ZoomToExtent(this);
this.map.instance.addControl(this.instance);
}
ngOnDestroy() {
// console.log('removing aol-control-zoomtoextent');
this.map.instance.removeControl(this.instance);
}
}
@@ -1,118 +0,0 @@
import { Component, Optional, OnChanges, Input, SimpleChanges } from '@angular/core';
import { proj, Coordinate } from 'openlayers';
import { MapComponent } from './map.component';
import { GeometryPointComponent, GeometryLinestringComponent, GeometryPolygonComponent } from './geometry.components';
import { ViewComponent } from './view.component';
import { OverlayComponent } from './overlay.component';
@Component({
selector: 'aol-coordinate',
template: `<div class="aol-coordinate"></div>`
})
export class CoordinateComponent implements OnChanges {
private host: any;
@Input() x: number;
@Input() y: number;
@Input() srid: string = 'EPSG:3857';
constructor(
private map: MapComponent,
@Optional() viewHost: ViewComponent,
@Optional() geometryPointHost: GeometryPointComponent,
@Optional() overlayHost: OverlayComponent
) {
// console.log('instancing aol-coordinate');
if (geometryPointHost !== null) {
this.host = geometryPointHost;
} else if (viewHost !== null) {
this.host = viewHost;
} else if (overlayHost !== null) {
this.host = overlayHost;
}
}
ngOnChanges(changes: SimpleChanges) {
let referenceProjection: proj.Projection;
let referenceProjectionCode: string;
let transformedCoordinates: number[];
referenceProjection = this.map.instance.getView().getProjection();
referenceProjectionCode = referenceProjection ? referenceProjection.getCode() : 'EPSG:3857';
if (this.srid === referenceProjectionCode) {
transformedCoordinates = [this.x, this.y];
} else {
transformedCoordinates = proj.transform([this.x, this.y], this.srid, referenceProjectionCode);
}
switch (this.host.componentType) {
case 'geometry-point':
this.host.instance.setCoordinates(transformedCoordinates);
break;
case 'view':
this.host.instance.setCenter(transformedCoordinates);
break;
case 'overlay':
this.host.instance.setPosition(transformedCoordinates);
break;
}
}
}
@Component({
selector: 'aol-collection-coordinates',
template: `<div class="aol-collection-coordinates"></div>`
})
export class CollectionCoordinatesComponent implements OnChanges {
private host: any;
@Input() coordinates: [number, number][];
@Input() srid: string = 'EPSG:3857';
constructor(
private map: MapComponent,
@Optional() geometryLinestring: GeometryLinestringComponent,
@Optional() geometryPolygon: GeometryPolygonComponent
) {
// console.log('creating aol-collection-coordinates');
if (!!geometryLinestring) {
this.host = geometryLinestring;
} else if (!!geometryPolygon) {
this.host = geometryPolygon;
} else {
throw new Error('aol-collection-coordinates must be a child of a geometry component');
}
}
ngOnChanges(changes: SimpleChanges) {
let referenceProjection: proj.Projection;
let referenceProjectionCode: string;
let transformedCoordinates: Array<Coordinate>;
// console.log('coordinates change: ', this.coordinates);
referenceProjection = this.map.instance.getView().getProjection();
referenceProjectionCode = referenceProjection ? referenceProjection.getCode() : 'EPSG:3857';
if (this.srid === referenceProjectionCode) {
transformedCoordinates = this.coordinates;
} else {
transformedCoordinates = [];
this.coordinates.forEach(function (coordinate: Coordinate) {
transformedCoordinates.push(proj.transform(coordinate, this.srid, referenceProjectionCode));
}.bind(this));
}
switch (this.host.componentType) {
case 'geometry-linestring':
this.host.instance.setCoordinates(transformedCoordinates);
break;
case 'geometry-polygon':
this.host.instance.setCoordinates([transformedCoordinates]);
break;
default:
throw new Error('aol-collection-coordinates\' host is of unknown type: ' + this.host.componentType);
// break;
}
}
}
@@ -1,35 +0,0 @@
import { Component, OnInit, OnDestroy, OnChanges, Input, SimpleChanges } from '@angular/core';
import { Feature } from 'openlayers';
import { SourceVectorComponent } from './sources';
@Component({
selector: 'aol-feature',
template: `<ng-content></ng-content>`
})
export class FeatureComponent implements OnInit, OnDestroy, OnChanges {
public componentType = 'feature';
public instance: Feature;
@Input() id: string|number|undefined;
constructor(private host: SourceVectorComponent) {
}
ngOnInit() {
this.instance = new Feature();
if (this.id !== undefined) {
this.instance.setId(this.id);
}
this.host.instance.addFeature(this.instance);
}
ngOnDestroy() {
this.host.instance.removeFeature(this.instance);
}
ngOnChanges(changes: SimpleChanges) {
if (this.instance) {
this.instance.setId(this.id);
}
}
}
@@ -1,6 +0,0 @@
import { format } from 'openlayers';
export class FormatComponent {
public instance: format.Feature;
public componentType = 'format';
}
@@ -1,2 +0,0 @@
export * from './format.component';
export * from './mvt.component';
@@ -1,25 +0,0 @@
import { Component, forwardRef, Input } from '@angular/core';
import { format, geom } from 'openlayers';
import { FormatComponent } from './format.component';
@Component({
selector: 'aol-format-mvt',
template: '',
providers: [
{ provide: FormatComponent, useExisting: forwardRef(() => FormatMVTComponent) }
]
})
export class FormatMVTComponent extends FormatComponent {
instance: format.MVT;
@Input() featureClass: (((geom: (geom.Geometry | { [k: string]: any })) => any) |
((geom: geom.GeometryType, arg2: number[], arg3: (number[] | number[][]), arg4: { [k: string]: any }) => any));
@Input() geometryName: string;
@Input() layerName: string;
@Input() layers: string[];
constructor() {
super();
this.instance = new format.MVT(this);
}
}
@@ -1,69 +0,0 @@
import { Component, OnInit, OnDestroy } from '@angular/core';
import { geom } from 'openlayers';
import { FeatureComponent } from './feature.component';
@Component({
selector: 'aol-geometry-linestring',
template: `<ng-content></ng-content>`
})
export class GeometryLinestringComponent implements OnInit, OnDestroy {
public componentType: string = 'geometry-linestring';
public instance: geom.LineString;
constructor(private host: FeatureComponent) {
// console.log('instancing aol-geometry-linestring');
}
ngOnInit() {
this.instance = new geom.LineString([]);
this.host.instance.setGeometry(this.instance);
}
ngOnDestroy() {
// this.host.setGeometry(null);
}
}
@Component({
selector: 'aol-geometry-point',
template: `<ng-content></ng-content>`
})
export class GeometryPointComponent implements OnInit, OnDestroy {
public componentType: string = 'geometry-point';
public instance: geom.Point;
constructor(private host: FeatureComponent) {
// console.log('creating aol-geometry-point');
}
ngOnInit() {
this.instance = new geom.Point([0, 0]); // defaulting coordinates to [0,0]. To be overridden in child component.
this.host.instance.setGeometry(this.instance);
}
ngOnDestroy() {
// this.host.setGeometry(null);
}
}
@Component({
selector: 'aol-geometry-polygon',
template: `<ng-content></ng-content>`
})
export class GeometryPolygonComponent implements OnInit, OnDestroy {
public componentType: string = 'geometry-polygon';
public instance: geom.Polygon;
constructor(private host: FeatureComponent) {
// console.log('creating aol-geometry-polygon');
}
ngOnInit() {
// defaulting coordinates to [0,0]. To be overridden in child component.
this.instance = new geom.Polygon([ [ [0, 0], [1, 0], [1, 1] ] ]);
this.host.instance.setGeometry(this.instance);
}
ngOnDestroy() {
// this.host.setGeometry(null);
}
}
@@ -1,49 +0,0 @@
import { Component, Input, AfterContentInit, OnChanges, SimpleChanges } from '@angular/core';
import { Graticule, style } from 'openlayers';
import { MapComponent } from './map.component';
@Component({
selector: 'aol-graticule',
template: '<ng-content></ng-content>'
})
export class GraticuleComponent implements AfterContentInit, OnChanges {
instance: any;
public componentType: string = 'graticule';
@Input() strokeStyle: style.Stroke;
@Input() showLabels: boolean;
@Input() lonLabelPosition: number;
@Input() latLabelPosition: number;
constructor(private map: MapComponent) {
}
ngOnChanges(changes: SimpleChanges) {
let properties: {[index: string]: any} = {};
if (!this.instance) {
return;
}
for (let key in changes) {
if (changes.hasOwnProperty(key)) {
properties[key] = changes[key].currentValue;
}
}
if (properties) {
this.instance = new Graticule(properties);
}
this.instance.setMap(this.map.instance);
}
ngAfterContentInit(): void {
this.instance = new Graticule({
strokeStyle: this.strokeStyle,
showLabels: this.showLabels,
lonLabelPosition: this.lonLabelPosition,
latLabelPosition: this.latLabelPosition
});
this.instance.setMap(this.map.instance);
}
}
@@ -1,19 +0,0 @@
export * from './controls';
export * from './formats';
export * from './interactions';
export * from './layers';
export * from './sources';
export * from './styles';
export * from './attribution.component';
export * from './attributions.component';
export * from './content.component';
export * from './coordinate.component';
export * from './feature.component';
export * from './geometry.components';
export * from './graticule.component';
export * from './map.component';
export * from './overlay.component';
export * from './tilegrid.component';
export * from './tilegridwmts.component';
export * from './view.component';
@@ -1,23 +0,0 @@
import { Component, OnDestroy, OnInit } from '@angular/core';
import { interaction, Collection } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-default',
template: ''
})
export class DefaultInteractionComponent implements OnInit, OnDestroy {
instance: Collection<interaction.Interaction>;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = interaction.defaults();
this.instance.forEach((interaction) => this.map.instance.addInteraction(interaction));
}
ngOnDestroy() {
this.instance.forEach((interaction) => this.map.instance.removeInteraction(interaction));
}
}
@@ -1,26 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { interaction } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-doubleclickzoom',
template: ''
})
export class DoubleClickZoomInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DoubleClickZoom;
@Input() duration: number;
@Input() delta: number;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DoubleClickZoom(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,27 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { interaction, format, ProjectionLike } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-draganddrop',
template: ''
})
export class DragAndDropInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragAndDrop;
@Input() formatConstructors: ((n: format.Feature) => any)[];
@Input() projection: ProjectionLike;
@Input() target: Element;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragAndDrop(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,27 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { interaction, EventsConditionType, DragBoxEndConditionType } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-dragbox',
template: ''
})
export class DragBoxInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragBox;
@Input() className: string;
@Input() condition: EventsConditionType;
@Input() boxEndCondition: DragBoxEndConditionType;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragBox(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,26 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { interaction, EventsConditionType, Kinetic } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-dragpan',
template: ''
})
export class DragPanInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragPan;
@Input() condition: EventsConditionType;
@Input() kinetic: Kinetic;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragPan(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,26 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { interaction, EventsConditionType } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-dragrotate',
template: ''
})
export class DragRotateInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragRotate;
@Input() condition: EventsConditionType;
@Input() duration: number;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragRotate(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,26 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { interaction, EventsConditionType } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-dragrotateandzoom',
template: ''
})
export class DragRotateAndZoomInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragRotate;
@Input() condition: EventsConditionType;
@Input() duration: number;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragRotateAndZoom(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,28 +0,0 @@
import { Component, OnDestroy, OnInit, Input } from '@angular/core';
import { interaction, EventsConditionType } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-dragzoom',
template: ''
})
export class DragZoomInteractionComponent implements OnInit, OnDestroy {
instance: interaction.DragZoom;
@Input() className: string;
@Input() condition: EventsConditionType;
@Input() duration: number;
@Input() out: boolean;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.DragZoom(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,50 +0,0 @@
import { Component, Input, OnDestroy, OnInit, EventEmitter, Output } from '@angular/core';
import { interaction } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-draw',
template: ''
})
export class DrawInteractionComponent implements OnInit, OnDestroy {
instance: interaction.Draw;
@Input() clickTolerance?: number;
@Input() features?: ol.Collection<ol.Feature>;
@Input() source?: ol.source.Vector;
@Input() snapTolerance?: number;
@Input() type: ol.geom.GeometryType;
@Input() maxPoints?: number;
@Input() minPoints?: number;
@Input() finishCondition?: ol.EventsConditionType;
@Input() style?: (ol.style.Style | ol.style.Style[] | ol.StyleFunction);
@Input() geometryFunction?: ol.DrawGeometryFunctionType;
@Input() geometryName?: string;
@Input() condition?: ol.EventsConditionType;
@Input() freehandCondition?: ol.EventsConditionType;
@Input() freehand?: boolean;
@Input() wrapX?: boolean;
@Output() onChange = new EventEmitter<ol.interaction.Draw.Event>();
@Output() onChangeActive = new EventEmitter<ol.interaction.Draw.Event>();
@Output() onDrawEnd = new EventEmitter<ol.interaction.Draw.Event>();
@Output() onDrawStart = new EventEmitter<ol.interaction.Draw.Event>();
@Output() onPropertyChange = new EventEmitter<ol.interaction.Draw.Event>();
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.Draw(this);
this.instance.on('change', (event: ol.interaction.Draw.Event) => this.onChange.emit(event));
this.instance.on('change:active', (event: ol.interaction.Draw.Event) => this.onChangeActive.emit(event));
this.instance.on('drawend', (event: ol.interaction.Draw.Event) => this.onDrawEnd.emit(event));
this.instance.on('drawstart', (event: ol.interaction.Draw.Event) => this.onDrawStart.emit(event));
this.instance.on('propertychange', (event: ol.interaction.Draw.Event) => this.onPropertyChange.emit(event));
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,14 +0,0 @@
export * from './default.component';
export * from './doubleclickzoom.component';
export * from './draganddrop.component';
export * from './dragbox.component';
export * from './dragpan.component';
export * from './dragrotate.component';
export * from './dragrotateandzoom.component';
export * from './dragzoom.component';
export * from './mousewheelzoom.component';
export * from './pinchzoom.component';
export * from './draw.component';
export * from './select.component';
export * from './translate.component';
export * from './modify.component';
@@ -1,42 +0,0 @@
import { Component, OnDestroy, OnInit, Input, Output, EventEmitter } from '@angular/core';
import { interaction, EventsConditionType, style, StyleFunction, Collection, Feature, source } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-modify',
template: ''
})
export class ModifyInteractionComponent implements OnInit, OnDestroy {
instance: interaction.Modify;
@Input() condition?: EventsConditionType;
@Input() deleteCondition?: EventsConditionType;
@Input() pixelTolerance?: number;
@Input() style?: (style.Style | style.Style[] | StyleFunction);
@Input() features: Collection<Feature>;
@Input() wrapX?: boolean;
@Input() source?: source.Vector;
@Output() onModifyEnd = new EventEmitter<interaction.Modify.Event>();
@Output() onModifyStart = new EventEmitter<interaction.Modify.Event>();
@Output() onChange = new EventEmitter<interaction.Modify.Event>();
@Output() onChangeActive = new EventEmitter<interaction.Modify.Event>();
@Output() onPropertyChange = new EventEmitter<interaction.Modify.Event>();
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.Modify(this);
this.instance.on('change', (event: interaction.Modify.Event) => this.onChange.emit(event));
this.instance.on('change:active', (event: interaction.Modify.Event) => this.onChangeActive.emit(event));
this.instance.on('propertychange', (event: interaction.Modify.Event) => this.onPropertyChange.emit(event));
this.instance.on('modifyend', (event: interaction.Modify.Event) => this.onModifyEnd.emit(event));
this.instance.on('modifystart', (event: interaction.Modify.Event) => this.onModifyStart.emit(event));
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}
@@ -1,26 +0,0 @@
import { Component, Input, OnDestroy, OnInit } from '@angular/core';
import { interaction } from 'openlayers';
import { MapComponent } from '../map.component';
@Component({
selector: 'aol-interaction-mousewheelzoom',
template: ''
})
export class MouseWheelZoomInteractionComponent implements OnInit, OnDestroy {
instance: interaction.MouseWheelZoom;
@Input() duration: number;
@Input() timeout: number;
@Input() useAnchor: boolean;
constructor(private map: MapComponent) {
}
ngOnInit() {
this.instance = new interaction.MouseWheelZoom(this);
this.map.instance.addInteraction(this.instance);
}
ngOnDestroy() {
this.map.instance.removeInteraction(this.instance);
}
}

Some files were not shown because too many files have changed in this diff Show More