Compare commits

..

No commits in common. "0c10d998a1414d43bb30ef687e5f8615512584d2" and "43c0d477c6848151eb64b30aceb76c4ec46c8777" have entirely different histories.

44 changed files with 9811 additions and 8901 deletions

18147
package-lock.json generated

File diff suppressed because it is too large Load Diff

View File

@ -12,21 +12,21 @@
"private": true,
"dependencies": {
"@angular-eslint/eslint-plugin": "^15.2.1",
"@angular/animations": "^16.2.12",
"@angular/common": "^16.2.12",
"@angular/compiler": "^16.2.12",
"@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",
"@angular/animations": "^15.2.10",
"@angular/common": "^15.2.10",
"@angular/compiler": "^15.2.10",
"@angular/core": "^15.2.10",
"@angular/forms": "^15.2.10",
"@angular/platform-browser": "^15.2.10",
"@angular/platform-browser-dynamic": "^15.2.10",
"@angular/router": "^15.2.10",
"@farmmaps/common": "file:dist/common",
"@farmmaps/common-map": "file:dist/common-map",
"@farmmaps/common-map3d": "file:dist/common-map3d",
"@microsoft/signalr": "^8.0.0",
"@ng-bootstrap/ng-bootstrap": "^15.0.0",
"@ngrx/effects": "^15",
"@ngrx/router-store": "^15",
"@microsoft/signalr": "^3.1.16",
"@ng-bootstrap/ng-bootstrap": "^13.0.0",
"@ngrx/effects": "^14",
"@ngrx/router-store": "^14",
"@ngrx/store": "^14",
"@popperjs/core": "^2.11.6",
"angular-oauth2-oidc": "^13",
@ -39,10 +39,10 @@
"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-openlayers": "1.0.0-next.21",
"ngx-avatar": "^4.1.0",
"ngx-clipboard": "^14.0.1",
"ngx-image-cropper": "^3.3.5",
"ngx-openlayers": "1.0.0-next.19",
"ngx-uploadx": "^5.2.0",
"ol": "6.14.1",
"olcs": "^2.13.1",
@ -54,15 +54,15 @@
"tslib": "^2.4.0",
"url": "^0.11.0",
"util": "^0.12.4",
"zone.js": "~0.13.3"
"zone.js": "~0.11.4"
},
"devDependencies": {
"@angular-builders/custom-webpack": "^17.0.0",
"@angular-devkit/build-angular": "^17.0.8",
"@angular/cli": "^16.2.11",
"@angular/compiler-cli": "^16.2.12",
"@angular/language-service": "^16.2.12",
"@angular/localize": "^16.2.12",
"@angular-builders/custom-webpack": "^14",
"@angular-devkit/build-angular": "^15.2.10",
"@angular/cli": "^15.2.10",
"@angular/compiler-cli": "^15.2.10",
"@angular/language-service": "^15.2.10",
"@angular/localize": "^15.2.10",
"@types/arcgis-rest-api": "^10.4.5",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "^2.0.9",
@ -80,9 +80,9 @@
"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",
"ng-packagr": "^15.2.2",
"protractor": "~7.0.0",
"ts-node": "^8.8.1",
"typescript": "~5.1.6"
"typescript": "~4.8.0"
}
}
}

View File

@ -1,22 +1,22 @@
{
"name": "@farmmaps/common-map",
"version": "2.1.0",
"version": "2.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@farmmaps/common-map",
"version": "2.1.0",
"version": "2.0.0",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/core": ">=16.0.0",
"@ngrx/effects": ">=16.0.0",
"@ngrx/router-store": ">=16.0.0",
"@ngrx/store": ">=16.0.0",
"ngrx-store-localstorage": ">=16.0.0",
"ngx-openlayers": ">=1.0.0-next.21",
"@angular/core": ">=14.0.0",
"@ngrx/effects": ">=14.0.0",
"@ngrx/router-store": ">=14.0.0",
"@ngrx/store": ">=14.0.0",
"ngrx-store-localstorage": ">=14.0.0",
"ngx-openlayers": ">=1.0.0-next.19",
"ol": ">=6.8.1",
"tassign": ">=1.0.0"
}

View File

@ -8,13 +8,13 @@
"tslib": "^2.0.0"
},
"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",
"@angular/core": ">=15.0.0",
"ngrx-store-localstorage": ">=15.0.0",
"@ngrx/effects": ">=15.0.0",
"@ngrx/router-store":">=15.0.0",
"@ngrx/store":">=15.0.0",
"tassign": ">=1.0.0",
"ngx-openlayers": ">=1.0.0-next.21",
"ngx-openlayers": ">=1.0.0-next.19",
"ol": ">=6.8.1"
}
}

View File

@ -169,119 +169,119 @@ export {
GeometryThumbnailComponent
}
@NgModule({
imports: [
CommonModule,
AngularOpenlayersModule,
MapRoutingModule,
StoreModule.forFeature(MODULE_NAME, mapReducers.reducer, { metaReducers: metaReducers }),
EffectsModule.forFeature([mapEffects.MapEffects]),
NgbModule,
FormsModule,
ReactiveFormsModule,
AppCommonModule
],
declarations: [
ZoomToExtentComponent,
ItemVectorSourceComponent,
ItemLayersComponent,
FileDropTargetComponent,
MapComponent,
MetaDataModalComponent,
RotationResetComponent,
MapSearchComponent,
SelectPeriodModalComponent,
LayerListComponent,
LegendComponent,
LayerVectorImageComponent,
FeatureListComponent,
WidgetHostDirective,
FeatureListContainerComponent,
FeatureListCroppingschemeComponent,
FeatureListCropfieldComponent,
FeatureListFeatureContainerComponent,
FeatureListFeatureComponent,
FeatureListFeatureCroppingschemeComponent,
FeatureListFeatureCropfieldComponent,
SelectedItemContainerComponent,
SelectedItemComponent,
SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent,
ItemListItemComponent,
ItemListItemContainerComponent,
ItemListComponent,
ItemWidgetListComponent,
WidgetStatusComponent,
GpsLocation,
PanToLocation,
LayerSwitcher,
HistogramDetailsComponent,
StatisticsDetailsComponent,
ifZoomToShowDirective,
ZoomToShowAlert,
LayerValuesComponent,
GeometryThumbnailComponent
],
exports: [
ItemVectorSourceComponent,
ItemLayersComponent,
FileDropTargetComponent,
MetaDataModalComponent,
MapComponent,
GpsLocation,
PanToLocation,
LayerSwitcher,
FeatureListFeatureComponent,
FeatureListFeatureCropfieldComponent,
FeatureListFeatureCroppingschemeComponent,
SelectedItemContainerComponent,
SelectedItemComponent,
SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent,
ItemListItemComponent,
ItemListItemContainerComponent,
ItemListComponent,
ItemWidgetListComponent,
WidgetStatusComponent,
RotationResetComponent,
MapSearchComponent,
SelectPeriodModalComponent,
LayerListComponent,
LegendComponent,
LayerVectorImageComponent,
FeatureListComponent,
WidgetHostDirective,
FeatureListContainerComponent,
FeatureListCroppingschemeComponent,
FeatureListCropfieldComponent,
FeatureListFeatureContainerComponent,
ZoomToExtentComponent,
ifZoomToShowDirective,
ZoomToShowAlert,
GeometryThumbnailComponent
],
providers: [
FeatureIconService,
GeolocationService,
DeviceOrientationService,
TemporalService,
{ provide: AbstractFeatureListComponent, useClass: FeatureListCroppingschemeComponent, multi: true },
{ provide: AbstractFeatureListComponent, useClass: FeatureListCropfieldComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureCroppingschemeComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureCropfieldComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemCropfieldComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemGeotiffComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemTemporalComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemShapeComponent, multi: true },
{ provide: AbstractItemListItemComponent, useClass: ItemListItemComponent, multi: true },
{ provide: AbstractItemListComponent, useClass: ItemListComponent, multi: true }
]
@NgModule({
imports: [
CommonModule,
AngularOpenlayersModule,
MapRoutingModule,
StoreModule.forFeature(MODULE_NAME, mapReducers.reducer, { metaReducers: metaReducers }),
EffectsModule.forFeature([mapEffects.MapEffects]),
NgbModule,
FormsModule,
ReactiveFormsModule,
AppCommonModule
],
declarations: [
ZoomToExtentComponent,
ItemVectorSourceComponent,
ItemLayersComponent,
FileDropTargetComponent,
MapComponent,
MetaDataModalComponent,
RotationResetComponent,
MapSearchComponent,
SelectPeriodModalComponent,
LayerListComponent,
LegendComponent,
LayerVectorImageComponent,
FeatureListComponent,
WidgetHostDirective,
FeatureListContainerComponent,
FeatureListCroppingschemeComponent,
FeatureListCropfieldComponent,
FeatureListFeatureContainerComponent,
FeatureListFeatureComponent,
FeatureListFeatureCroppingschemeComponent,
FeatureListFeatureCropfieldComponent,
SelectedItemContainerComponent,
SelectedItemComponent,
SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent,
ItemListItemComponent,
ItemListItemContainerComponent,
ItemListComponent,
ItemWidgetListComponent,
WidgetStatusComponent,
GpsLocation,
PanToLocation,
LayerSwitcher,
HistogramDetailsComponent,
StatisticsDetailsComponent,
ifZoomToShowDirective,
ZoomToShowAlert,
LayerValuesComponent,
GeometryThumbnailComponent
],
exports: [
ItemVectorSourceComponent,
ItemLayersComponent,
FileDropTargetComponent,
MetaDataModalComponent,
MapComponent,
GpsLocation,
PanToLocation,
LayerSwitcher,
FeatureListFeatureComponent,
FeatureListFeatureCropfieldComponent,
FeatureListFeatureCroppingschemeComponent,
SelectedItemContainerComponent,
SelectedItemComponent,
SelectedItemCropfieldComponent,
SelectedItemGeotiffComponent,
SelectedItemTemporalComponent,
SelectedItemShapeComponent,
ItemListItemComponent,
ItemListItemContainerComponent,
ItemListComponent,
ItemWidgetListComponent,
WidgetStatusComponent,
RotationResetComponent,
MapSearchComponent,
SelectPeriodModalComponent,
LayerListComponent,
LegendComponent,
LayerVectorImageComponent,
FeatureListComponent,
WidgetHostDirective,
FeatureListContainerComponent,
FeatureListCroppingschemeComponent,
FeatureListCropfieldComponent,
FeatureListFeatureContainerComponent,
ZoomToExtentComponent,
ifZoomToShowDirective,
ZoomToShowAlert,
GeometryThumbnailComponent
],
providers: [
FeatureIconService,
GeolocationService,
DeviceOrientationService,
TemporalService,
{ provide: AbstractFeatureListComponent, useClass: FeatureListCroppingschemeComponent, multi: true },
{ provide: AbstractFeatureListComponent, useClass: FeatureListCropfieldComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureCroppingschemeComponent, multi: true },
{ provide: AbstractFeatureListFeatureComponent, useClass: FeatureListFeatureCropfieldComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemCropfieldComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemGeotiffComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemTemporalComponent, multi: true },
{ provide: AbstractSelectedItemComponent, useClass: SelectedItemShapeComponent, multi: true },
{ provide: AbstractItemListItemComponent, useClass: ItemListItemComponent, multi: true },
{ provide: AbstractItemListComponent, useClass: ItemListComponent, multi: true }
]
})

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,20 +1,20 @@
{
"name": "@farmmaps/common-map3d",
"version": "2.1.0",
"version": "2.0.0",
"lockfileVersion": 3,
"requires": true,
"packages": {
"": {
"name": "@farmmaps/common-map3d",
"version": "2.1.0",
"version": "2.0.0",
"dependencies": {
"tslib": "^2.0.0"
},
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@angular/common": ">=14.0.0",
"@angular/core": ">=14.0.0",
"cesium": ">=1.82.1",
"ngx-openlayers": "1.0.0-next.21",
"ngx-openlayers": "1.0.0-next.19",
"ol-cesium": ">=2.13.0"
}
},

View File

@ -5,9 +5,9 @@
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
},
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"ngx-openlayers": "1.0.0-next.21",
"@angular/common": ">=15.0.0",
"@angular/core": ">=15.0.0",
"ngx-openlayers": "1.0.0-next.19",
"cesium": ">=1.82.1",
"ol-cesium": ">=2.13.0"
},

View File

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

View File

@ -1,27 +1,27 @@
{
"name": "@farmmaps/common",
"version": "2.1.0",
"version": "2.0.0",
"lockfileVersion": 2,
"requires": true,
"packages": {
"": {
"name": "@farmmaps/common",
"version": "2.1.0",
"version": "2.0.0",
"peerDependencies": {
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0",
"@angular/common": ">=14.0.0",
"@angular/core": ">=14.0.0",
"@angular/forms": ">=14.0.0",
"@microsoft/signalr": ">=3.1.3",
"@ng-bootstrap/ng-bootstrap": ">=16.0.0",
"@ngrx/effects": ">=16.0.0",
"@ngrx/router-store": ">=16.0.0",
"@ngrx/store": ">=16.0.0",
"@ng-bootstrap/ng-bootstrap": ">=10.0.0",
"@ngrx/effects": ">=14.0.0",
"@ngrx/router-store": ">=14.0.0",
"@ngrx/store": ">=14.0.0",
"angular-oauth2-oidc": ">=13.0.0",
"bootstrap": ">=4.4.1",
"moment": ">=2.27.0",
"ngx-avatar": ">=4.1.0",
"ngx-clipboard": ">=15.1.0",
"ngx-image-cropper": ">=6.0.2",
"ngx-clipboard": ">=14.0.1",
"ngx-image-cropper": ">=3.3.5",
"ngx-uploadx": ">=5.1.0",
"tassign": ">=1.0.0"
}

View File

@ -5,13 +5,13 @@
"registry": "https://repository.akkerweb.nl/repository/npm-hosted/"
},
"peerDependencies": {
"@ng-bootstrap/ng-bootstrap": ">=16.0.0",
"@angular/common": ">=16.0.0",
"@angular/core": ">=16.0.0",
"@angular/forms": ">=16.0.0",
"@ngrx/effects": ">=16.0.0",
"@ngrx/router-store": ">=16.0.0",
"@ngrx/store": ">=16.0.0",
"@ng-bootstrap/ng-bootstrap": ">=10.0.0",
"@angular/common": ">=15.0.0",
"@angular/core": ">=15.0.0",
"@angular/forms": ">=15.0.0",
"@ngrx/effects": ">=14.0.0",
"@ngrx/router-store": ">=15.0.0",
"@ngrx/store": ">=15.0.0",
"tassign": ">=1.0.0",
"bootstrap": ">=4.4.1",
"@microsoft/signalr": ">=3.1.3",
@ -19,7 +19,7 @@
"angular-oauth2-oidc": ">=13.0.0",
"moment": ">=2.27.0",
"ngx-avatar": ">=4.1.0",
"ngx-image-cropper": ">=6.0.2",
"ngx-clipboard": ">=15.1.0"
"ngx-image-cropper": ">=3.3.5",
"ngx-clipboard": ">=14.0.1"
}
}

View File

@ -9,8 +9,8 @@ import { OAuthModule, AuthConfig, OAuthService, OAuthStorage } from 'angular-oau
import { StoreModule, Store } from '@ngrx/store';
import { EffectsModule } from '@ngrx/effects';
import { NgbModule } from '@ng-bootstrap/ng-bootstrap';
import { UploadxModule } from 'ngx-uploadx/ngx-uploadx';
import { ClipboardModule } from 'ngx-clipboard/ngx-clipboard';
import { UploadxModule } from 'ngx-uploadx';
import { ClipboardModule } from 'ngx-clipboard';
// routing module
@ -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 { AvatarComponent } from './components/avatar/avatar.component';
import { ItemLinkComponent } from './components/item-link/item-link.component';
import { AvatarModule } from 'ngx-avatars';
import { AvatarModule } from 'ngx-avatar';
import { ImageCropperModule } from 'ngx-image-cropper';
export const FM_COMMON_STARTPAGE = new InjectionToken<string>('fm-common-startpage');

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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