Compare commits

...

7 Commits

Author SHA1 Message Date
25935241a2 Merge branch 'feature/Aw5739_Update_to_Angular_v16' into develop
Some checks failed
FarmMaps.Develop/FarmMapsLib/pipeline/head There was a failure building this commit
2023-12-29 14:10:29 +01:00
56be829faa Aw5739 Update to Angular v16 2023-12-29 14:10:07 +01:00
18381975ef Aw5739 Update to Angular v15 2023-12-29 12:30:35 +01:00
bdd3d7fe4d Aw5739 Prepare 2023-12-29 12:10:47 +01:00
6a23d1c9cf Aw5739 Prepare 2023-12-29 12:09:27 +01:00
f45a873145 Aw5739 Required to perform Angular update script 2023-12-29 12:06:15 +01:00
d771fd5530 Aw5739 Prepare to update 2023-12-29 12:00:05 +01:00
55 changed files with 9389 additions and 6468 deletions

15426
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -1,7 +1,7 @@
{ {
"name": "farmmaps-lib-app", "name": "farmmaps-lib-app",
"version": "4.2.0", "version": "4.2.0",
"scripts": { "scripts": {
"ng": "ng", "ng": "ng",
"start": "ng serve", "start": "ng serve",
"build": "ng build", "build": "ng build",
@ -10,27 +10,27 @@
"e2e": "ng e2e" "e2e": "ng e2e"
}, },
"private": true, "private": true,
"dependencies": { "dependencies": {
"@angular/animations": "^14.1.3",
"@angular/common": "^14.1.3",
"@angular/compiler": "^14.1.3",
"@angular/core": "^14.1.3",
"@angular-eslint/eslint-plugin": "^15.2.1", "@angular-eslint/eslint-plugin": "^15.2.1",
"@angular/forms": "^14.1.3", "@angular/animations": "^16.2.12",
"@angular/platform-browser": "^14.1.3", "@angular/common": "^16.2.12",
"@angular/platform-browser-dynamic": "^14.1.3", "@angular/compiler": "^16.2.12",
"@angular/router": "^14.1.3", "@angular/core": "^16.2.12",
"@angular/forms": "^16.2.12",
"@angular/platform-browser": "^16.2.12",
"@angular/platform-browser-dynamic": "^16.2.12",
"@angular/router": "^16.2.12",
"@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",
"ngx-openlayers": "file:dist/ngx-openlayers", "ngx-openlayers": "file:dist/ngx-openlayers",
"@microsoft/signalr": "^3.1.16", "@microsoft/signalr": "^3.1.16",
"@ng-bootstrap/ng-bootstrap": "^13.0.0", "@ng-bootstrap/ng-bootstrap": "^15.0.0",
"@ngrx/effects": "^14", "@ngrx/effects": "^16",
"@ngrx/router-store": "^14", "@ngrx/router-store": "^16",
"@ngrx/store": "^14", "@ngrx/store": "^16",
"@popperjs/core": "^2.11.6", "@popperjs/core": "^2.11.6",
"angular-oauth2-oidc": "^13", "angular-oauth2-oidc": "^16",
"assert": "^2.0.0", "assert": "^2.0.0",
"bootstrap": "^5.2.0", "bootstrap": "^5.2.0",
"browserify-zlib": "^0.2.0", "browserify-zlib": "^0.2.0",
@ -39,10 +39,10 @@
"core-js": "^2.6.12", "core-js": "^2.6.12",
"https-browserify": "^1.0.0", "https-browserify": "^1.0.0",
"moment": "^2.29.4", "moment": "^2.29.4",
"ngrx-store-localstorage": "^14", "ngrx-store-localstorage": "^16",
"ngx-avatar": "^4.1.0", "ngx-avatars": "^1.7.0",
"ngx-clipboard": "^14.0.1", "ngx-clipboard": "^15.0.1",
"ngx-image-cropper": "^3.3.5", "ngx-image-cropper": "^6.0.0",
"ngx-uploadx": "^5.2.0", "ngx-uploadx": "^5.2.0",
"ol": "~6.3.1", "ol": "~6.3.1",
"olcs": "^2.13.1", "olcs": "^2.13.1",
@ -54,15 +54,15 @@
"tslib": "^2.4.0", "tslib": "^2.4.0",
"url": "^0.11.0", "url": "^0.11.0",
"util": "^0.12.4", "util": "^0.12.4",
"zone.js": "~0.11.4" "zone.js": "~0.13.3"
}, },
"devDependencies": { "devDependencies": {
"@angular-builders/custom-webpack": "^14", "@angular-builders/custom-webpack": "^16",
"@angular-devkit/build-angular": "^14.1.3", "@angular-devkit/build-angular": "^16.2.11",
"@angular/cli": "^14.1.3", "@angular/cli": "^16.2.11",
"@angular/compiler-cli": "^14.1.3", "@angular/compiler-cli": "^16.2.12",
"@angular/language-service": "^14.1.3", "@angular/language-service": "^16.2.12",
"@angular/localize": "^14.1.3", "@angular/localize": "^16.2.12",
"@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",
@ -81,9 +81,9 @@
"karma-coverage-istanbul-reporter": "^3.0.3", "karma-coverage-istanbul-reporter": "^3.0.3",
"karma-jasmine": "^5.1.0", "karma-jasmine": "^5.1.0",
"karma-jasmine-html-reporter": "^2.0.0", "karma-jasmine-html-reporter": "^2.0.0",
"ng-packagr": "^14.1.0", "ng-packagr": "^16.2.3",
"protractor": "~7.0.0", "protractor": "~7.0.0",
"ts-node": "^8.8.1", "ts-node": "^8.8.1",
"typescript": "~4.6.4" "typescript": "~4.9.5"
} }
} }

View File

@ -8,23 +8,45 @@
"name": "@farmmaps/common-map", "name": "@farmmaps/common-map",
"version": "2.0.0", "version": "2.0.0",
"dependencies": { "dependencies": {
"ngx-avatars": "^1.6.1",
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"@farmmaps/ngx-openlayers": "file:dist/ngx-openlayers", "@ngrx/effects": ">=16.0.0",
"@ngrx/effects": ">=14.0.0", "@ngrx/router-store": ">=16.0.0",
"@ngrx/router-store": ">=14.0.0", "@ngrx/store": ">=16.0.0",
"@ngrx/store": ">=14.0.0", "ngrx-store-localstorage": ">=16.0.0",
"ngrx-store-localstorage": ">=14.0.0", "ngx-openlayers": "file:dist/ngx-openlayers",
"ol": ">=6.8.1", "ol": ">=6.8.1",
"tassign": ">=1.0.0" "tassign": ">=1.0.0"
} }
}, },
"node_modules/ngx-avatars": {
"version": "1.7.0",
"resolved": "https://registry.npmjs.org/ngx-avatars/-/ngx-avatars-1.7.0.tgz",
"integrity": "sha512-wD1mDx809QOhsh33P6DsgXc58SQ1PjSN0Xq9FzkXmynHDCmboHyg4DjD4aL+GQKcn5n0Lg/AtRbhWvVb7Xvd8A==",
"dependencies": {
"ts-md5": "^1.3.1",
"tslib": "^2.6.2"
},
"peerDependencies": {
"@angular/common": "^17.0.0",
"@angular/core": "^17.0.0"
}
},
"node_modules/ts-md5": {
"version": "1.3.1",
"resolved": "https://registry.npmjs.org/ts-md5/-/ts-md5-1.3.1.tgz",
"integrity": "sha512-DiwiXfwvcTeZ5wCE0z+2A9EseZsztaiZtGrtSaY5JOD7ekPnR/GoIVD5gXZAlK9Na9Kvpo9Waz5rW64WKAWApg==",
"engines": {
"node": ">=12"
}
},
"node_modules/tslib": { "node_modules/tslib": {
"version": "2.0.1", "version": "2.6.2",
"resolved": "https://registry.npmjs.org/tslib/-/tslib-2.0.1.tgz", "resolved": "https://registry.npmjs.org/tslib/-/tslib-2.6.2.tgz",
"integrity": "sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==" "integrity": "sha512-AEYxH93jGFPn/a2iVAwW87VuUIkR1FVUKB77NwMF7nBTDkDrrT/Hpt/IrCJ0QXhW27jTBDcf5ZY7w6RiqTMw2Q=="
} }
} }
} }

View File

@ -8,11 +8,11 @@
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"ngrx-store-localstorage": ">=14.0.0", "ngrx-store-localstorage": ">=16.0.0",
"@ngrx/effects": ">=14.0.0", "@ngrx/effects": ">=16.0.0",
"@ngrx/router-store":">=14.0.0", "@ngrx/router-store":">=16.0.0",
"@ngrx/store":">=14.0.0", "@ngrx/store":">=16.0.0",
"tassign": ">=1.0.0", "tassign": ">=1.0.0",
"ngx-openlayers": "file:dist/ngx-openlayers", "ngx-openlayers": "file:dist/ngx-openlayers",
"ol": ">=6.8.1" "ol": ">=6.8.1"

View File

@ -1,6 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.gps-location { .gps-location {
display:none; display:none;
} }
@ -14,7 +11,7 @@
} }
.tolerance { .tolerance {
fill: $primary; fill: var(--bs-primary);
fill-opacity:0.4; fill-opacity:0.4;
} }
@ -23,20 +20,20 @@
} }
.border { .border {
fill: $white; fill: var(--bs-white);
} }
.center { .center {
fill: $primary; fill: var(--bs-primary);
} }
.stop1 { .stop1 {
stop-color: $primary; stop-color: var(--bs-primary);
stop-opacity:1; stop-opacity:1;
} }
.stop2 { .stop2 {
stop-color:$primary; stop-color: var(--bs-primary);
stop-opacity: 0; stop-opacity: 0;
} }

View File

@ -1,11 +1,8 @@
@import "~bootstrap/scss/bootstrap.scss";
.gps-location { .gps-location {
display:block; display:block;
width:2.5em; width:2.5em;
height:2.5em; height:2.5em;
background-color: $body-bg; background-color: var(--bs-body-bg);
background-size: contain; background-size: contain;
margin-top:0.5em; margin-top:0.5em;
border-radius: 1.75em; border-radius: 1.75em;
@ -17,15 +14,15 @@
} }
.pan-to { .pan-to {
fill: $secondary; fill: var(--bs-secondary);
} }
div.gps-location:hover .pan-to { div.gps-location:hover .pan-to {
fill: $white; fill: var(--bs-white);
} }
.pan-to-centered { .pan-to-centered {
fill: $primary; fill: var(--bs-primary);
} }
div.gps-location:hover .pan-to-centered { div.gps-location:hover .pan-to-centered {
@ -33,5 +30,5 @@ div.gps-location:hover .pan-to-centered {
} }
.pan-to.pan-to-disabled { .pan-to.pan-to-disabled {
fill: $gray-300; fill: var(--bs-gray-300);
} }

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.compass { .compass {
width:2.5em; width:2.5em;
height:2.5em; height:2.5em;
@ -13,7 +11,7 @@
#north { #north {
display: none; display: none;
fill:$black; fill: var(--bs-black);
} }
#top-l { #top-l {
@ -33,23 +31,23 @@
} }
div.compass:hover #top-l { div.compass:hover #top-l {
fill:$white; fill: var(--bs-white);
} }
div.compass:hover #top-r { div.compass:hover #top-r {
fill:$gray-300; fill: var(--bs-gray-300);
} }
div.compass:hover #bottom-l { div.compass:hover #bottom-l {
fill:$gray-300; fill: var(--bs-gray-300);
} }
div.compass:hover #bottom-r { div.compass:hover #bottom-r {
fill:$white; fill: var(--bs-white);
} }
div.compass:hover #north { div.compass:hover #north {
fill:$white; fill: var(--bs-white);
} }
.compass-n { .compass-n {

View File

@ -1,14 +1,10 @@
@import "~bootstrap/scss/bootstrap.scss";
.row { .row {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid var(--bs-gray-500);
user-select: none; user-select: none;
} }
.row.selected { .row.selected {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }
@media screen and (min-width: 44rem) { @media screen and (min-width: 44rem) {

View File

@ -1,22 +1,20 @@
@import "~bootstrap/scss/bootstrap.scss";
fm-map-feature-list-feature-container { fm-map-feature-list-feature-container {
width:100%; width:100%;
pointer-events:none; pointer-events:none;
} }
.row { .row {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
padding-left:1.5rem; padding-left:1.5rem;
} }
.row.selected { .row.selected {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }
.cropfields { .cropfields {
border-top: 1px solid $gray-500; border-top: 1px solid var(--bs-gray-500);;
margin-left: -1.25rem; margin-left: -1.25rem;
margin-right: -1.25rem; margin-right: -1.25rem;
} }

View File

@ -1,22 +1,20 @@
@import "~bootstrap/scss/bootstrap.scss";
fm-map-feature-list-feature-container { fm-map-feature-list-feature-container {
width:100%; width:100%;
pointer-events:none; pointer-events:none;
} }
.row { .row {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
padding-left:1.5rem; padding-left:1.5rem;
} }
.row.selected { .row.selected {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }
.farms { .farms {
border-top: 1px solid $gray-500; border-top: 1px solid var(--bs-gray-500);;
margin-left: -1.25rem; margin-left: -1.25rem;
margin-right: -1.25rem; margin-right: -1.25rem;
} }

View File

@ -1,7 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.card-title { .card-title {
font-size: 1rem; font-size: 1rem;
white-space: nowrap; white-space: nowrap;

View File

@ -1,7 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.card-title { .card-title {
font-size: 1rem; font-size: 1rem;
white-space: nowrap; white-space: nowrap;

View File

@ -1,7 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.card-title { .card-title {
font-size: 1rem; font-size: 1rem;
white-space: nowrap; white-space: nowrap;

View File

@ -1,15 +1,13 @@
@import "~bootstrap/scss/bootstrap.scss";
fm-map-feature-list-feature-container { fm-map-feature-list-feature-container {
width: 100%; width: 100%;
pointer-events: none; pointer-events: none;
} }
.row { .row {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
} }
.row.selected { .row.selected {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.widget { .widget {
padding:0.8rem; padding:0.8rem;
height:100%; height:100%;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.widget-container { .widget-container {
overflow:auto; overflow:auto;
margin-bottom:1rem; margin-bottom:1rem;
@ -7,7 +5,7 @@
.widget { .widget {
position:relative; position:relative;
border: 1px solid $gray-500; border: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
display:inline-block; display:inline-block;
width:50%; width:50%;
@ -28,7 +26,7 @@
} }
.widget:hover { .widget:hover {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }
.widget-container { .widget-container {

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.widget-container { .widget-container {
overflow:auto; overflow:auto;
margin-bottom:1rem; margin-bottom:1rem;
@ -7,7 +5,7 @@
.widget { .widget {
position:relative; position:relative;
border: 1px solid $gray-500; border: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
display:inline-block; display:inline-block;
width:50%; width:50%;
@ -28,7 +26,7 @@
} }
.widget:hover { .widget:hover {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }
.widget-container { .widget-container {

View File

@ -1,18 +1,15 @@
@import "~bootstrap/scss/bootstrap.scss";
.layer-switcher { .layer-switcher {
display:block; display:block;
width:2.5em; width:2.5em;
height:2.5em; height:2.5em;
background-color: $body-bg; background-color: var(--bs-body-bg);
background-size: contain; background-size: contain;
margin-top:0.5em; margin-top:0.5em;
text-align: center; text-align: center;
line-height: 2.5em; line-height: 2.5em;
border-radius: 1.75em; border-radius: 1.75em;
padding: 0; padding: 0;
color: $secondary; color: var(--bs-secondary);
} }
.layer-switcher i { .layer-switcher i {
@ -24,7 +21,7 @@
} }
.layers { .layers {
color:$secondary; color: var(--bs-secondary);;
position: absolute; position: absolute;
overflow: hidden; overflow: hidden;
bottom: -1em; bottom: -1em;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
div.map-search { div.map-search {
position: absolute; position: absolute;
top: 0.5rem; top: 0.5rem;
@ -106,7 +104,7 @@ div.map-search.searchcollapsed button[type="submit"] {
} }
.form-control, .form-control:focus { .form-control, .form-control:focus {
border-color: $secondary; border-color: var(--bs-secondary);
} }

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
aol-map { position:absolute;width:100%;height:calc( 100vh );} aol-map { position:absolute;width:100%;height:calc( 100vh );}
.arrow { .arrow {
@ -195,7 +193,7 @@ timespan.menuVisible {
width: 4rem; width: 4rem;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
color: $primary; color: var(--bs-primary);
} }
.shortcut-icon > .farm-icon { .shortcut-icon > .farm-icon {

View File

@ -1,13 +1,9 @@
@import "~bootstrap/scss/bootstrap.scss";
.row { .row {
border-bottom: 1px solid $gray-500; border-bottom: 1px solid var(--bs-gray-500);;
user-select: none; user-select: none;
} }
.row:hover { .row:hover {
background-color: $gray-100; background-color: var(--bs-gray-100);
} }

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.big-icon { .big-icon {
width: 100%; width: 100%;
color: white; color: white;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.big-icon { .big-icon {
width: 100%; width: 100%;
color: white; color: white;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.big-icon { .big-icon {
width: 100%; width: 100%;
color: white; color: white;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.big-icon { .big-icon {
width: 100%; width: 100%;
color: white; color: white;

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.big-icon { .big-icon {
width: 100%; width: 100%;
color: white; color: white;

View File

@ -9,8 +9,6 @@ import {
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
@ -18,7 +16,3 @@ getTestBed().initTestEnvironment(
teardown: { destroyAfterEach: false } teardown: { destroyAfterEach: false }
} }
); );
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -2,7 +2,6 @@
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../out-tsc/lib", "outDir": "../../out-tsc/lib",
"target": "es2020",
"module": "es2015", "module": "es2015",
"moduleResolution": "node", "moduleResolution": "node",
"declaration": true, "declaration": true,

View File

@ -2,7 +2,6 @@
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../out-tsc/lib", "outDir": "../../out-tsc/lib",
"target": "es2020",
"module": "es2015", "module": "es2015",
"moduleResolution": "node", "moduleResolution": "node",
"declaration": true, "declaration": true,
@ -23,7 +22,8 @@
"node_modules/@angular/*" "node_modules/@angular/*"
] ]
} },
"preserveSymlinks": true,
}, },
"angularCompilerOptions": { "angularCompilerOptions": {
"skipTemplateCodegen": true, "skipTemplateCodegen": true,
@ -31,7 +31,8 @@
"fullTemplateTypeCheck": true, "fullTemplateTypeCheck": true,
"strictInjectionParameters": true, "strictInjectionParameters": true,
"enableResourceInlining": true, "enableResourceInlining": true,
"compilationMode": "partial" "compilationMode": "partial",
"preserveSymlinks": true,
}, },
"exclude": [ "exclude": [
"src/test.ts", "src/test.ts",

View File

@ -11,10 +11,10 @@
"tslib": "^2.0.0" "tslib": "^2.0.0"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": ">=14.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"cesium": ">=1.82.1", "cesium": ">=1.82.1",
"ngx-openlayers": "1.0.0-next.19", "ngx-openlayers": "4.2.0-prerelease.2414",
"ol-cesium": ">=2.13.0" "ol-cesium": ">=2.13.0"
} }
}, },

View File

@ -5,9 +5,9 @@
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/" "registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
}, },
"peerDependencies": { "peerDependencies": {
"@angular/common": ">=14.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"ngx-openlayers": "file:dist/ngx-openlayers", "ngx-openlayers": "4.2.0-prerelease.2414",
"cesium": ">=1.82.1", "cesium": ">=1.82.1",
"ol-cesium": ">=2.13.0" "ol-cesium": ">=2.13.0"
}, },

View File

@ -1,17 +1,15 @@
@import "~bootstrap/scss/bootstrap.scss";
.twotreed { .twotreed {
display:block; display:block;
width:2.5em; width:2.5em;
height:2.5em; height:2.5em;
background-color: $body-bg; background-color: var(--bs-body-bg);
background-size: contain; background-size: contain;
margin-top:0.5em; margin-top:0.5em;
text-align: center; text-align: center;
line-height: 2.5em; line-height: 2.5em;
border-radius: 1.75em; border-radius: 1.75em;
padding: 0; padding: 0;
color: $secondary; color: var(--bs-secondary);
} }
.fa-spinner { .fa-spinner {

View File

@ -8,13 +8,6 @@ import {
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
declare const require: {
context(path: string, deep?: boolean, filter?: RegExp): {
keys(): string[];
<T>(id: string): T;
};
};
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
@ -22,7 +15,3 @@ getTestBed().initTestEnvironment(
teardown: { destroyAfterEach: false } teardown: { destroyAfterEach: false }
} }
); );
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -8,20 +8,20 @@
"name": "@farmmaps/common", "name": "@farmmaps/common",
"version": "2.0.0", "version": "2.0.0",
"peerDependencies": { "peerDependencies": {
"@angular/common": ">=14.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"@angular/forms": ">=14.0.0", "@angular/forms": ">=16.0.0",
"@microsoft/signalr": ">=3.1.3", "@microsoft/signalr": ">=3.1.3",
"@ng-bootstrap/ng-bootstrap": ">=10.0.0", "@ng-bootstrap/ng-bootstrap": ">=16.0.0",
"@ngrx/effects": ">=14.0.0", "@ngrx/effects": ">=16.0.0",
"@ngrx/router-store": ">=14.0.0", "@ngrx/router-store": ">=16.0.0",
"@ngrx/store": ">=14.0.0", "@ngrx/store": ">=16.0.0",
"angular-oauth2-oidc": ">=13.0.0", "angular-oauth2-oidc": ">=13.0.0",
"bootstrap": ">=4.4.1", "bootstrap": ">=4.4.1",
"moment": ">=2.27.0", "moment": ">=2.27.0",
"ngx-avatar": ">=4.1.0", "ngx-avatars": "^1.6.1",
"ngx-clipboard": ">=14.0.1", "ngx-clipboard": "^15.0.1",
"ngx-image-cropper": ">=3.3.5", "ngx-image-cropper": "^6.0.0",
"ngx-uploadx": ">=5.1.0", "ngx-uploadx": ">=5.1.0",
"tassign": ">=1.0.0" "tassign": ">=1.0.0"
} }

View File

@ -5,21 +5,21 @@
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/" "registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
}, },
"peerDependencies": { "peerDependencies": {
"@ng-bootstrap/ng-bootstrap": ">=10.0.0", "@ng-bootstrap/ng-bootstrap": ">=16.0.0",
"@angular/common": ">=14.0.0", "@angular/common": ">=16.0.0",
"@angular/core": ">=14.0.0", "@angular/core": ">=16.0.0",
"@angular/forms": ">=14.0.0", "@angular/forms": ">=16.0.0",
"@ngrx/effects": ">=14.0.0", "@ngrx/effects": ">=16.0.0",
"@ngrx/router-store": ">=14.0.0", "@ngrx/router-store": ">=16.0.0",
"@ngrx/store": ">=14.0.0", "@ngrx/store": ">=16.0.0",
"tassign": ">=1.0.0", "tassign": ">=1.0.0",
"bootstrap": ">=4.4.1", "bootstrap": ">=4.4.1",
"@microsoft/signalr": ">=3.1.3", "@microsoft/signalr": ">=3.1.3",
"ngx-uploadx": ">=5.1.0", "ngx-uploadx": ">=5.1.0",
"angular-oauth2-oidc": ">=13.0.0", "angular-oauth2-oidc": ">=13.0.0",
"moment": ">=2.27.0", "moment": ">=2.27.0",
"ngx-avatar": ">=4.1.0", "ngx-avatars": "^1.6.1",
"ngx-image-cropper": ">=3.3.5", "ngx-image-cropper": "^6.0.0",
"ngx-clipboard": ">=14.0.1" "ngx-clipboard": "^15.0.1"
} }
} }

View File

@ -68,7 +68,7 @@ import { BackButtonComponent } from './components/back-button/back-button.compon
import { EditImageModalComponent } from './components/edit-image-modal/edit-image-modal.component'; import { EditImageModalComponent } from './components/edit-image-modal/edit-image-modal.component';
import { AvatarComponent } from './components/avatar/avatar.component'; import { AvatarComponent } from './components/avatar/avatar.component';
import { ItemLinkComponent } from './components/item-link/item-link.component'; import { ItemLinkComponent } from './components/item-link/item-link.component';
import { AvatarModule } from 'ngx-avatar'; import { AvatarModule } from 'ngx-avatars';
import { ImageCropperModule } from 'ngx-image-cropper'; import { ImageCropperModule } from 'ngx-image-cropper';
export const FM_COMMON_STARTPAGE = new InjectionToken<string>('fm-common-startpage'); export const FM_COMMON_STARTPAGE = new InjectionToken<string>('fm-common-startpage');

View File

@ -1,9 +1,3 @@
/* Import Bootstrap & Fonts */
@import "~bootstrap/scss/bootstrap.scss";
// custom styles // custom styles
.btn:focus { .btn:focus {
@ -16,7 +10,7 @@
.form-control:focus { .form-control:focus {
box-shadow: none; box-shadow: none;
border-color: $input-border-color; border-color: var(--bs-input-border-color);
} }

View File

@ -1,4 +1,4 @@
import { Router, CanActivate } from '@angular/router'; import { Router } from '@angular/router';
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { OAuthService } from 'angular-oauth2-oidc'; import { OAuthService } from 'angular-oauth2-oidc';
import { } from '@angular/router'; import { } from '@angular/router';
@ -6,7 +6,7 @@ import { } from '@angular/router';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class AuthCallbackGuard implements CanActivate { export class AuthCallbackGuard {
constructor(private router$: Router,private oauthService$:OAuthService) {} constructor(private router$: Router,private oauthService$:OAuthService) {}

View File

@ -1,10 +1,10 @@
<span class="avatar-container" [title]="name"> <span class="avatar-container" [title]="name">
<ngx-avatar <ngx-avatars
class="farmmaps-avatar" class="farmmaps-avatar"
[src]="src" [src]="src"
[name]="name" [name]="name"
[size]="size" [size]="size"
[round]='true' [round]='true'
> >
</ngx-avatar> </ngx-avatars>
</span> </span>

View File

@ -1,12 +1,10 @@
@import "~bootstrap/scss/bootstrap.scss";
.back-button { .back-button {
cursor: default; cursor: default;
color: $primary; color: var(--bs-primary);
display: block; display: block;
} }
.back-button:hover { .back-button:hover {
cursor: pointer; cursor: pointer;
color: $secondary; color: var(--bs-secondary);
} }

View File

@ -1,7 +1,3 @@
/* Import Bootstrap & Fonts */
@import "~bootstrap/scss/bootstrap.scss";
div.resumable-file-upload { div.resumable-file-upload {
position: fixed; position: fixed;
right: 0px; right: 0px;
@ -76,7 +72,7 @@ div.card-header span.fa {
} }
.upload-file.busy > div > span.fa-times { .upload-file.busy > div > span.fa-times {
color: $danger; color: var(--bs-danger);
width: 20px; width: 20px;
display: inline-block; display: inline-block;
vertical-align: middle; vertical-align: middle;
@ -94,7 +90,7 @@ div.card-header span.fa {
} }
.upload-file > div.errormessage { .upload-file > div.errormessage {
color: $danger; color: var(--bs-danger);
display: none; display: none;
} }

View File

@ -1,11 +1,5 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { import { Router, Route, ActivatedRouteSnapshot, RouterStateSnapshot, UrlSegment, UrlTree } from '@angular/router';
CanActivate, Router, CanLoad, Route, CanActivateChild ,
ActivatedRouteSnapshot,
RouterStateSnapshot,
UrlSegment,
UrlTree
} from '@angular/router';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
@ -19,7 +13,7 @@ import * as appCommonReducer from '../reducers/app-common.reducer';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class AuthGuard implements CanActivate, CanLoad, CanActivateChild { export class AuthGuard {
constructor(private oauthService: OAuthService, private router: Router, private store: Store<appCommonReducer.State>) { } constructor(private oauthService: OAuthService, private router: Router, private store: Store<appCommonReducer.State>) { }

View File

@ -1,5 +1,5 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { CanActivate, CanActivateChild, ActivatedRouteSnapshot, RouterStateSnapshot} from '@angular/router'; import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
@ -10,7 +10,7 @@ import * as appCommonActions from '../actions/app-common.actions';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class FullScreenGuard implements CanActivate,CanActivateChild { export class FullScreenGuard {
private loginDispatched = false; private loginDispatched = false;
constructor(private store: Store<appCommonReducer.State> ) { } constructor(private store: Store<appCommonReducer.State> ) { }

View File

@ -1,5 +1,5 @@
import { Injectable } from '@angular/core'; import { Injectable } from '@angular/core';
import { CanLoad, Route, CanActivate, CanDeactivate, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router'; import { Route, ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import { Store } from '@ngrx/store'; import { Store } from '@ngrx/store';
@ -10,7 +10,7 @@ import * as appCommonActions from '../actions/app-common.actions';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class NavBarGuard implements CanActivate { export class NavBarGuard {
private loginDispatched = false; private loginDispatched = false;
constructor(private store: Store<appCommonReducer.State>) { } constructor(private store: Store<appCommonReducer.State>) { }

View File

@ -1,11 +1,11 @@
import {Injectable} from '@angular/core'; import {Injectable} from '@angular/core';
import {ActivatedRouteSnapshot, CanActivate, RouterStateSnapshot} from '@angular/router'; import { ActivatedRouteSnapshot, RouterStateSnapshot } from '@angular/router';
import {PackageService} from './package.service'; import {PackageService} from './package.service';
@Injectable({ @Injectable({
providedIn: 'root', providedIn: 'root',
}) })
export class PackageGuard implements CanActivate { export class PackageGuard {
constructor(private packageService: PackageService) { } constructor(private packageService: PackageService) { }

View File

@ -9,8 +9,6 @@ import {
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
@ -18,7 +16,3 @@ getTestBed().initTestEnvironment(
teardown: { destroyAfterEach: false } teardown: { destroyAfterEach: false }
} }
); );
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -2,7 +2,6 @@
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../out-tsc/lib", "outDir": "../../out-tsc/lib",
"target": "es2020",
"module": "es2015", "module": "es2015",
"moduleResolution": "node", "moduleResolution": "node",
"declaration": true, "declaration": true,

View File

@ -2,7 +2,6 @@
"extends": "../../tsconfig.json", "extends": "../../tsconfig.json",
"compilerOptions": { "compilerOptions": {
"outDir": "../../out-tsc/lib", "outDir": "../../out-tsc/lib",
"target": "es2020",
"module": "es2015", "module": "es2015",
"moduleResolution": "node", "moduleResolution": "node",
"declaration": true, "declaration": true,

View File

@ -0,0 +1,17 @@
{
"name": "ngx-openlayers",
"version": "2.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "ngx-openlayers",
"version": "2.0.0",
"peerDependencies": {
"@angular/common": ">=14.x.x",
"@angular/core": ">=14.x.x",
"ol": "^6.0.0"
}
}
}
}

View File

@ -5,13 +5,7 @@ import 'zone.js/testing';
import { getTestBed } from '@angular/core/testing'; import { getTestBed } from '@angular/core/testing';
import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing'; import { BrowserDynamicTestingModule, platformBrowserDynamicTesting } from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), { getTestBed().initTestEnvironment(BrowserDynamicTestingModule, platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: true }, teardown: { destroyAfterEach: true },
}); });
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -3,7 +3,6 @@
"compilerOptions": { "compilerOptions": {
"outDir": "../../out-tsc/lib", "outDir": "../../out-tsc/lib",
"declarationMap": true, "declarationMap": true,
"target": "es2020",
"declaration": true, "declaration": true,
"inlineSources": true, "inlineSources": true,
"types": [], "types": [],

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
/*! /*!
* Start Bootstrap - Landing Page v5.0.8 (https://startbootstrap.com/themes/landing-page) * Start Bootstrap - Landing Page v5.0.8 (https://startbootstrap.com/themes/landing-page)
* Copyright 2013-2020 Start Bootstrap * Copyright 2013-2020 Start Bootstrap

View File

@ -1,5 +1,3 @@
@import "~bootstrap/scss/bootstrap.scss";
.menu-card { .menu-card {
padding-left:7px; padding-left:7px;
padding-right:7px; padding-right:7px;
@ -29,7 +27,7 @@
width: 4rem; width: 4rem;
overflow: hidden; overflow: hidden;
text-overflow: ellipsis; text-overflow: ellipsis;
color: $primary; color: var(--bs-primary);
} }
.shortcut-icon > .farm-icon { .shortcut-icon > .farm-icon {

View File

@ -7,16 +7,10 @@ import {
platformBrowserDynamicTesting platformBrowserDynamicTesting
} from '@angular/platform-browser-dynamic/testing'; } from '@angular/platform-browser-dynamic/testing';
declare const require: any;
// First, initialize the Angular testing environment. // First, initialize the Angular testing environment.
getTestBed().initTestEnvironment( getTestBed().initTestEnvironment(
BrowserDynamicTestingModule, BrowserDynamicTestingModule,
platformBrowserDynamicTesting(), { platformBrowserDynamicTesting(), {
teardown: { destroyAfterEach: false } teardown: { destroyAfterEach: false }
} }
); );
// Then we find all the tests.
const context = require.context('./', true, /\.spec\.ts$/);
// And load the modules.
context.keys().map(context);

View File

@ -13,7 +13,7 @@
"allowSyntheticDefaultImports": true, "allowSyntheticDefaultImports": true,
"importHelpers": true, "importHelpers": true,
"skipLibCheck": true, "skipLibCheck": true,
"target": "es2020", "target": "ES2022",
"typeRoots": [ "typeRoots": [
"node_modules/@types" "node_modules/@types"
], ],
@ -34,7 +34,8 @@
], ],
"ngx-openlayers/*": [ "ngx-openlayers/*": [
"dist/ngx-openlayers/*" "dist/ngx-openlayers/*"
], ]
} },
"useDefineForClassFields": false
} }
} }