@sneat/ext-assetus-components 0.2.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2022/index.js +2 -0
- package/esm2022/index.js.map +1 -0
- package/esm2022/lib/asset-add/add-asset-base-component.js +48 -0
- package/esm2022/lib/asset-add/add-asset-base-component.js.map +1 -0
- package/esm2022/lib/asset-add/asset-add-document/asset-add-document.component.js +166 -0
- package/esm2022/lib/asset-add/asset-add-document/asset-add-document.component.js.map +1 -0
- package/esm2022/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.js +115 -0
- package/esm2022/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.js.map +1 -0
- package/esm2022/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.js +173 -0
- package/esm2022/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.js.map +1 -0
- package/esm2022/lib/asset-add/index.js +4 -0
- package/esm2022/lib/asset-add/index.js.map +1 -0
- package/esm2022/lib/asset-base-page.js +30 -0
- package/esm2022/lib/asset-base-page.js.map +1 -0
- package/esm2022/lib/asset-card/asset-card.component.js +41 -0
- package/esm2022/lib/asset-card/asset-card.component.js.map +1 -0
- package/esm2022/lib/asset-component-base-params.js +16 -0
- package/esm2022/lib/asset-component-base-params.js.map +1 -0
- package/esm2022/lib/asset-possesion-card/asset-possession-card.component.js +36 -0
- package/esm2022/lib/asset-possesion-card/asset-possession-card.component.js.map +1 -0
- package/esm2022/lib/asset-reg-number-input/asset-reg-number-input.component.js +118 -0
- package/esm2022/lib/asset-reg-number-input/asset-reg-number-input.component.js.map +1 -0
- package/esm2022/lib/assets-list/assets-list.component.js +138 -0
- package/esm2022/lib/assets-list/assets-list.component.js.map +1 -0
- package/esm2022/lib/edit-dwelling-card/edit-dwelling-card.component.js +121 -0
- package/esm2022/lib/edit-dwelling-card/edit-dwelling-card.component.js.map +1 -0
- package/esm2022/lib/index.js +14 -0
- package/esm2022/lib/index.js.map +1 -0
- package/esm2022/lib/make-model-card/make-model-card.component.js +68 -0
- package/esm2022/lib/make-model-card/make-model-card.component.js.map +1 -0
- package/esm2022/lib/mileage-dialog/mileage-dialog.component.js +128 -0
- package/esm2022/lib/mileage-dialog/mileage-dialog.component.js.map +1 -0
- package/esm2022/lib/period-segment/period-segment.component.js +24 -0
- package/esm2022/lib/period-segment/period-segment.component.js.map +1 -0
- package/esm2022/lib/real-estate-location/real-estate-location.component.js +22 -0
- package/esm2022/lib/real-estate-location/real-estate-location.component.js.map +1 -0
- package/esm2022/lib/services/asset-service.dto.js +2 -0
- package/esm2022/lib/services/asset-service.dto.js.map +1 -0
- package/esm2022/lib/services/asset-service.js +59 -0
- package/esm2022/lib/services/asset-service.js.map +1 -0
- package/esm2022/lib/services/assetus-services.module.js +17 -0
- package/esm2022/lib/services/assetus-services.module.js.map +1 -0
- package/esm2022/lib/services/assetus-space.service.js +18 -0
- package/esm2022/lib/services/assetus-space.service.js.map +1 -0
- package/esm2022/lib/services/index.js +5 -0
- package/esm2022/lib/services/index.js.map +1 -0
- package/esm2022/lib/vehicle-card/vehicle-card.component.js +160 -0
- package/esm2022/lib/vehicle-card/vehicle-card.component.js.map +1 -0
- package/esm2022/lib/vehicle-engine/vehicle-engine.component.js +98 -0
- package/esm2022/lib/vehicle-engine/vehicle-engine.component.js.map +1 -0
- package/esm2022/sneat-ext-assetus-components.js +5 -0
- package/esm2022/sneat-ext-assetus-components.js.map +1 -0
- package/index.d.ts +1 -0
- package/lib/asset-add/add-asset-base-component.d.ts +20 -0
- package/lib/asset-add/asset-add-document/asset-add-document.component.d.ts +26 -0
- package/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.d.ts +16 -0
- package/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.d.ts +26 -0
- package/lib/asset-add/index.d.ts +3 -0
- package/lib/asset-base-page.d.ts +15 -0
- package/lib/asset-card/asset-card.component.d.ts +13 -0
- package/lib/asset-component-base-params.d.ts +9 -0
- package/lib/asset-possesion-card/asset-possession-card.component.d.ts +12 -0
- package/lib/asset-reg-number-input/asset-reg-number-input.component.d.ts +31 -0
- package/lib/assets-list/assets-list.component.d.ts +25 -0
- package/lib/edit-dwelling-card/edit-dwelling-card.component.d.ts +23 -0
- package/lib/index.d.ts +13 -0
- package/lib/make-model-card/make-model-card.component.d.ts +20 -0
- package/lib/mileage-dialog/mileage-dialog.component.d.ts +33 -0
- package/lib/period-segment/period-segment.component.d.ts +10 -0
- package/lib/real-estate-location/real-estate-location.component.d.ts +7 -0
- package/lib/services/asset-service.d.ts +19 -0
- package/lib/services/asset-service.dto.d.ts +23 -0
- package/lib/services/assetus-services.module.d.ts +6 -0
- package/lib/services/assetus-space.service.d.ts +10 -0
- package/lib/services/index.d.ts +4 -0
- package/lib/vehicle-card/vehicle-card.component.d.ts +34 -0
- package/lib/vehicle-engine/vehicle-engine.component.d.ts +14 -0
- package/package.json +27 -0
- package/sneat-ext-assetus-components.d.ts +5 -0
- package/tsconfig.lib.prod.tsbuildinfo +1 -0
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { AssetService } from './asset-service';
|
|
3
|
+
import { AssetusSpaceService } from './assetus-space.service';
|
|
4
|
+
import { ReactiveFormsModule } from '@angular/forms';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class AssetusServicesModule {
|
|
7
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusServicesModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); }
|
|
8
|
+
static { this.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "21.2.0", ngImport: i0, type: AssetusServicesModule }); }
|
|
9
|
+
static { this.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusServicesModule, providers: [AssetService, AssetusSpaceService, ReactiveFormsModule] }); }
|
|
10
|
+
}
|
|
11
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusServicesModule, decorators: [{
|
|
12
|
+
type: NgModule,
|
|
13
|
+
args: [{
|
|
14
|
+
providers: [AssetService, AssetusSpaceService, ReactiveFormsModule],
|
|
15
|
+
}]
|
|
16
|
+
}] });
|
|
17
|
+
//# sourceMappingURL=assetus-services.module.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetus-services.module.js","sourceRoot":"","sources":["../../../../../../../../libs/extensions/assetus/components/src/lib/services/assetus-services.module.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AACzC,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAC9D,OAAO,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;;AAKrD,MAAM,OAAO,qBAAqB;8GAArB,qBAAqB;+GAArB,qBAAqB;+GAArB,qBAAqB,aAFrB,CAAC,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;;2FAExD,qBAAqB;kBAHjC,QAAQ;mBAAC;oBACR,SAAS,EAAE,CAAC,YAAY,EAAE,mBAAmB,EAAE,mBAAmB,CAAC;iBACpE","sourcesContent":["import { NgModule } from '@angular/core';\nimport { AssetService } from './asset-service';\nimport { AssetusSpaceService } from './assetus-space.service';\nimport { ReactiveFormsModule } from '@angular/forms';\n\n@NgModule({\n providers: [AssetService, AssetusSpaceService, ReactiveFormsModule],\n})\nexport class AssetusServicesModule {}\n"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { Injectable, Injector, inject } from '@angular/core';
|
|
2
|
+
import { Firestore as AngularFirestore } from '@angular/fire/firestore';
|
|
3
|
+
import { SpaceModuleService } from '@sneat/space-services';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export class AssetusSpaceService extends SpaceModuleService {
|
|
6
|
+
constructor() {
|
|
7
|
+
const afs = inject(AngularFirestore);
|
|
8
|
+
const injector = inject(Injector);
|
|
9
|
+
super(injector, 'assetus', afs);
|
|
10
|
+
this.watchAssetBriefs = (space) => this.watchBriefs(space.id, (dto) => dto?.assets || {});
|
|
11
|
+
}
|
|
12
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusSpaceService, deps: [], target: i0.ɵɵFactoryTarget.Injectable }); }
|
|
13
|
+
static { this.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusSpaceService }); }
|
|
14
|
+
}
|
|
15
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: AssetusSpaceService, decorators: [{
|
|
16
|
+
type: Injectable
|
|
17
|
+
}], ctorParameters: () => [] });
|
|
18
|
+
//# sourceMappingURL=assetus-space.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"assetus-space.service.js","sourceRoot":"","sources":["../../../../../../../../libs/extensions/assetus/components/src/lib/services/assetus-space.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,QAAQ,EAAE,MAAM,EAAE,MAAM,eAAe,CAAC;AAC7D,OAAO,EAAE,SAAS,IAAI,gBAAgB,EAAE,MAAM,yBAAyB,CAAC;AAGxE,OAAO,EAAE,kBAAkB,EAAE,MAAM,uBAAuB,CAAC;;AAG3D,MAAM,OAAO,mBAAoB,SAAQ,kBAAoC;IAC3E;QACE,MAAM,GAAG,GAAG,MAAM,CAAC,gBAAgB,CAAC,CAAC;QACrC,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,CAAC;QAClC,KAAK,CAAC,QAAQ,EAAE,SAAS,EAAE,GAAG,CAAC,CAAC;QAGzB,qBAAgB,GAAG,CAAC,KAAoB,EAAE,EAAE,CACnD,IAAI,CAAC,WAAW,CAAc,KAAK,CAAC,EAAE,EAAE,CAAC,GAAG,EAAE,EAAE,CAAC,GAAG,EAAE,MAAM,IAAI,EAAE,CAAC,CAAC;IAHtE,CAAC;8GALU,mBAAmB;kHAAnB,mBAAmB;;2FAAnB,mBAAmB;kBAD/B,UAAU","sourcesContent":["import { Injectable, Injector, inject } from '@angular/core';\nimport { Firestore as AngularFirestore } from '@angular/fire/firestore';\nimport { IAssetBrief, IAssetusSpaceDbo } from '@sneat/mod-assetus-core';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { SpaceModuleService } from '@sneat/space-services';\n\n@Injectable()\nexport class AssetusSpaceService extends SpaceModuleService<IAssetusSpaceDbo> {\n public constructor() {\n const afs = inject(AngularFirestore);\n const injector = inject(Injector);\n super(injector, 'assetus', afs);\n }\n\n readonly watchAssetBriefs = (space: ISpaceContext) =>\n this.watchBriefs<IAssetBrief>(space.id, (dto) => dto?.assets || {});\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../../../../libs/extensions/assetus/components/src/lib/services/index.ts"],"names":[],"mappings":"AAAA,cAAc,yBAAyB,CAAC;AACxC,cAAc,iBAAiB,CAAC;AAChC,cAAc,qBAAqB,CAAC;AACpC,cAAc,2BAA2B,CAAC","sourcesContent":["export * from './assetus-space.service';\nexport * from './asset-service';\nexport * from './asset-service.dto';\nexport * from './assetus-services.module';\n"]}
|
|
@@ -0,0 +1,160 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output, ViewChild, } from '@angular/core';
|
|
2
|
+
import { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
3
|
+
import { IonCard, IonItemDivider, IonLabel, IonList, } from '@ionic/angular/standalone';
|
|
4
|
+
import { CountrySelectorComponent } from '@sneat/components';
|
|
5
|
+
import { carMakes, } from '@sneat/mod-assetus-core';
|
|
6
|
+
import { AssetPossessionCardComponent } from '../asset-possesion-card/asset-possession-card.component';
|
|
7
|
+
import { AssetRegNumberInputComponent } from '../asset-reg-number-input/asset-reg-number-input.component';
|
|
8
|
+
import { MakeModelCardComponent } from '../make-model-card/make-model-card.component';
|
|
9
|
+
import { VehicleEngineComponent } from '../vehicle-engine/vehicle-engine.component';
|
|
10
|
+
import * as i0 from "@angular/core";
|
|
11
|
+
// import {carMakes} from 'sneat-shared/models/data/vehicles';
|
|
12
|
+
export class VehicleCardComponent {
|
|
13
|
+
constructor() {
|
|
14
|
+
this.vehicleAssetChange = new EventEmitter();
|
|
15
|
+
this.regNumber = new FormControl('');
|
|
16
|
+
this.engine = '';
|
|
17
|
+
this.regNumberSkipped = false;
|
|
18
|
+
}
|
|
19
|
+
set make(v) {
|
|
20
|
+
this.makeVal = v;
|
|
21
|
+
this.makes = Object.keys(carMakes);
|
|
22
|
+
this.populateModels();
|
|
23
|
+
}
|
|
24
|
+
set model(v) {
|
|
25
|
+
this.modelVal = v;
|
|
26
|
+
}
|
|
27
|
+
set yearBuild(v) {
|
|
28
|
+
this.yearBuildNumber = v;
|
|
29
|
+
this.yearBuildVal = v.toString();
|
|
30
|
+
}
|
|
31
|
+
ngOnChanges(changes) {
|
|
32
|
+
// if (changes['space'] && this.team?.dto?.countryID && this.vehicleAsset?.dto && !this.vehicleAsset.dto.countryID) {
|
|
33
|
+
// this.vehicleAsset = { ...this.vehicleAsset, dto: { ...this.vehicleAsset.dto, countryID: this.team.dto.countryID } };
|
|
34
|
+
// this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
35
|
+
// }
|
|
36
|
+
if (changes['vehicleAsset']) {
|
|
37
|
+
if (!this.regNumber.dirty) {
|
|
38
|
+
const extra = this.vehicleAsset?.brief?.extra;
|
|
39
|
+
this.regNumber.setValue(extra?.regNumber || '');
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
}
|
|
43
|
+
countryChanged(value) {
|
|
44
|
+
if (this.vehicleAsset?.dbo) {
|
|
45
|
+
this.vehicleAsset = {
|
|
46
|
+
...this.vehicleAsset,
|
|
47
|
+
dbo: { ...this.vehicleAsset.dbo, countryID: value },
|
|
48
|
+
};
|
|
49
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
50
|
+
setTimeout(() => this.regNumberInputComponent?.focusToRegNumberInput(), 100);
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
onRegNumberSkipped() {
|
|
54
|
+
this.regNumberSkipped = true;
|
|
55
|
+
}
|
|
56
|
+
onRegNumberChanged(value) {
|
|
57
|
+
this.regNumber.setValue(value);
|
|
58
|
+
if (this.vehicleAsset?.dbo) {
|
|
59
|
+
const extra = {
|
|
60
|
+
...this.vehicleAsset.dbo.extra,
|
|
61
|
+
regNumber: value,
|
|
62
|
+
};
|
|
63
|
+
this.vehicleAsset = {
|
|
64
|
+
...this.vehicleAsset,
|
|
65
|
+
dbo: {
|
|
66
|
+
...this.vehicleAsset.dbo,
|
|
67
|
+
extra,
|
|
68
|
+
},
|
|
69
|
+
};
|
|
70
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
makeChanged(make) {
|
|
74
|
+
this.makeVal = make;
|
|
75
|
+
if (this.vehicleAsset?.dbo) {
|
|
76
|
+
this.vehicleAsset = {
|
|
77
|
+
...this.vehicleAsset,
|
|
78
|
+
dbo: {
|
|
79
|
+
...this.vehicleAsset.dbo,
|
|
80
|
+
extra: {
|
|
81
|
+
...this.vehicleAsset.dbo.extra,
|
|
82
|
+
make,
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
};
|
|
86
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
87
|
+
}
|
|
88
|
+
this.populateModels();
|
|
89
|
+
}
|
|
90
|
+
onAssetChanged(asset) {
|
|
91
|
+
this.vehicleAsset = asset;
|
|
92
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
93
|
+
}
|
|
94
|
+
modelChanged(model) {
|
|
95
|
+
if (this.vehicleAsset?.dbo) {
|
|
96
|
+
this.vehicleAsset = {
|
|
97
|
+
...this.vehicleAsset,
|
|
98
|
+
dbo: {
|
|
99
|
+
...this.vehicleAsset.dbo,
|
|
100
|
+
extra: {
|
|
101
|
+
...this.vehicleAsset.dbo.extra,
|
|
102
|
+
model,
|
|
103
|
+
},
|
|
104
|
+
},
|
|
105
|
+
};
|
|
106
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
populateModels() {
|
|
110
|
+
if (!this.makeVal) {
|
|
111
|
+
this.models = undefined;
|
|
112
|
+
this.modelVal = undefined;
|
|
113
|
+
return;
|
|
114
|
+
}
|
|
115
|
+
const make = carMakes[this.makeVal];
|
|
116
|
+
this.models = make.models.map((v) => v.id);
|
|
117
|
+
if (this.modelVal && this.models.indexOf(this.modelVal) <= 0) {
|
|
118
|
+
this.modelVal = undefined;
|
|
119
|
+
}
|
|
120
|
+
}
|
|
121
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VehicleCardComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
122
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: VehicleCardComponent, isStandalone: true, selector: "sneat-vehicle-card", inputs: { space: "space", vehicleAsset: "vehicleAsset", make: "make", model: "model", yearBuild: "yearBuild" }, outputs: { vehicleAssetChange: "vehicleAssetChange" }, viewQueries: [{ propertyName: "regNumberInputComponent", first: true, predicate: AssetRegNumberInputComponent, descendants: true }], usesOnChanges: true, ngImport: i0, template: "<ion-card>\n <ion-list>\n <sneat-country-selector\n [countryID]=\"vehicleAsset?.brief?.countryID\"\n [readonly]=\"!!vehicleAsset?.brief?.countryID\"\n [defaultCountryID]=\"space?.dbo?.countryID\"\n label=\"Country of registration\"\n (countryIDChange)=\"countryChanged($event)\"\n />\n @if (vehicleAsset?.dbo?.countryID) {\n <sneat-asset-reg-number\n [space]=\"space\"\n [assetID]=\"vehicleAsset?.id\"\n [regNumber]=\"vehicleAsset?.dbo?.extra?.regNumber\"\n [countyID]=\"vehicleAsset?.dbo?.countryID\"\n [hideSaveButton]=\"true\"\n [isSkipped]=\"regNumberSkipped\"\n (isSkippedChange)=\"onRegNumberSkipped()\"\n (regNumberChange)=\"onRegNumberChanged($event)\"\n />\n }\n </ion-list>\n</ion-card>\n\n<ion-card>\n @if (\n vehicleAsset?.id ||\n (vehicleAsset?.dbo?.type &&\n vehicleAsset?.dbo?.countryID &&\n (regNumberSkipped || !!vehicleAsset?.dbo?.extra?.regNumber))\n ) {\n <sneat-make-model-card\n [assetType]=\"vehicleAsset?.dbo?.type\"\n [make]=\"vehicleAsset?.dbo?.extra?.make\"\n [model]=\"vehicleAsset?.dbo?.extra?.model\"\n (makeChange)=\"makeChanged($event)\"\n (modelChange)=\"modelChanged($event)\"\n />\n }\n @if (vehicleAsset?.dbo?.extra?.model) {\n <ion-item-divider>\n <ion-label>Engine</ion-label>\n </ion-item-divider>\n <sneat-vehicle-engine\n [vehicleAsset]=\"vehicleAsset\"\n (vehicleAssetChange)=\"onAssetChanged($event)\"\n />\n }\n</ion-card>\n\n@if (vehicleAsset?.dbo?.extra?.model) {\n <sneat-asset-possession-card\n [asset]=\"vehicleAsset\"\n (assetChange)=\"onAssetChanged($event)\"\n />\n}\n", dependencies: [{ kind: "ngmodule", type: FormsModule }, { kind: "ngmodule", type: ReactiveFormsModule }, { kind: "component", type:
|
|
123
|
+
// SelectFromListComponent,
|
|
124
|
+
CountrySelectorComponent, selector: "sneat-country-selector", inputs: ["countryID", "defaultCountryID", "readonly", "disabled", "label", "canBeUnknown"], outputs: ["countryIDChange"] }, { kind: "component", type: MakeModelCardComponent, selector: "sneat-make-model-card", inputs: ["assetType", "make", "model"], outputs: ["makeChange", "modelChange"] }, { kind: "component", type: AssetPossessionCardComponent, selector: "sneat-asset-possession-card", inputs: ["asset"], outputs: ["assetChange"] }, { kind: "component", type: VehicleEngineComponent, selector: "sneat-vehicle-engine", inputs: ["vehicleAsset"], outputs: ["vehicleAssetChange"] }, { kind: "component", type: AssetRegNumberInputComponent, selector: "sneat-asset-reg-number", inputs: ["space", "assetID", "countyID", "regNumber", "hideSaveButton", "placeholder", "isSkipped"], outputs: ["regNumberChange", "isSkippedChange"] }, { kind: "component", type: IonCard, selector: "ion-card", inputs: ["button", "color", "disabled", "download", "href", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonList, selector: "ion-list", inputs: ["inset", "lines", "mode"] }, { kind: "component", type: IonItemDivider, selector: "ion-item-divider", inputs: ["color", "mode", "sticky"] }, { kind: "component", type: IonLabel, selector: "ion-label", inputs: ["color", "mode", "position"] }] }); }
|
|
125
|
+
}
|
|
126
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VehicleCardComponent, decorators: [{
|
|
127
|
+
type: Component,
|
|
128
|
+
args: [{ selector: 'sneat-vehicle-card', imports: [
|
|
129
|
+
FormsModule,
|
|
130
|
+
ReactiveFormsModule,
|
|
131
|
+
// SelectFromListComponent,
|
|
132
|
+
CountrySelectorComponent,
|
|
133
|
+
MakeModelCardComponent,
|
|
134
|
+
AssetPossessionCardComponent,
|
|
135
|
+
VehicleEngineComponent,
|
|
136
|
+
AssetRegNumberInputComponent,
|
|
137
|
+
IonCard,
|
|
138
|
+
IonList,
|
|
139
|
+
IonItemDivider,
|
|
140
|
+
IonLabel,
|
|
141
|
+
], template: "<ion-card>\n <ion-list>\n <sneat-country-selector\n [countryID]=\"vehicleAsset?.brief?.countryID\"\n [readonly]=\"!!vehicleAsset?.brief?.countryID\"\n [defaultCountryID]=\"space?.dbo?.countryID\"\n label=\"Country of registration\"\n (countryIDChange)=\"countryChanged($event)\"\n />\n @if (vehicleAsset?.dbo?.countryID) {\n <sneat-asset-reg-number\n [space]=\"space\"\n [assetID]=\"vehicleAsset?.id\"\n [regNumber]=\"vehicleAsset?.dbo?.extra?.regNumber\"\n [countyID]=\"vehicleAsset?.dbo?.countryID\"\n [hideSaveButton]=\"true\"\n [isSkipped]=\"regNumberSkipped\"\n (isSkippedChange)=\"onRegNumberSkipped()\"\n (regNumberChange)=\"onRegNumberChanged($event)\"\n />\n }\n </ion-list>\n</ion-card>\n\n<ion-card>\n @if (\n vehicleAsset?.id ||\n (vehicleAsset?.dbo?.type &&\n vehicleAsset?.dbo?.countryID &&\n (regNumberSkipped || !!vehicleAsset?.dbo?.extra?.regNumber))\n ) {\n <sneat-make-model-card\n [assetType]=\"vehicleAsset?.dbo?.type\"\n [make]=\"vehicleAsset?.dbo?.extra?.make\"\n [model]=\"vehicleAsset?.dbo?.extra?.model\"\n (makeChange)=\"makeChanged($event)\"\n (modelChange)=\"modelChanged($event)\"\n />\n }\n @if (vehicleAsset?.dbo?.extra?.model) {\n <ion-item-divider>\n <ion-label>Engine</ion-label>\n </ion-item-divider>\n <sneat-vehicle-engine\n [vehicleAsset]=\"vehicleAsset\"\n (vehicleAssetChange)=\"onAssetChanged($event)\"\n />\n }\n</ion-card>\n\n@if (vehicleAsset?.dbo?.extra?.model) {\n <sneat-asset-possession-card\n [asset]=\"vehicleAsset\"\n (assetChange)=\"onAssetChanged($event)\"\n />\n}\n" }]
|
|
142
|
+
}], propDecorators: { space: [{
|
|
143
|
+
type: Input,
|
|
144
|
+
args: [{ required: true }]
|
|
145
|
+
}], vehicleAsset: [{
|
|
146
|
+
type: Input,
|
|
147
|
+
args: [{ required: true }]
|
|
148
|
+
}], vehicleAssetChange: [{
|
|
149
|
+
type: Output
|
|
150
|
+
}], make: [{
|
|
151
|
+
type: Input
|
|
152
|
+
}], model: [{
|
|
153
|
+
type: Input
|
|
154
|
+
}], yearBuild: [{
|
|
155
|
+
type: Input
|
|
156
|
+
}], regNumberInputComponent: [{
|
|
157
|
+
type: ViewChild,
|
|
158
|
+
args: [AssetRegNumberInputComponent, { static: false }]
|
|
159
|
+
}] } });
|
|
160
|
+
//# sourceMappingURL=vehicle-card.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicle-card.component.js","sourceRoot":"","sources":["../../../../../../../../libs/extensions/assetus/components/src/lib/vehicle-card/vehicle-card.component.ts","../../../../../../../../libs/extensions/assetus/components/src/lib/vehicle-card/vehicle-card.component.html"],"names":[],"mappings":"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","sourcesContent":["import {\n Component,\n EventEmitter,\n Input,\n OnChanges,\n Output,\n SimpleChanges,\n ViewChild,\n} from '@angular/core';\nimport { FormControl, FormsModule, ReactiveFormsModule } from '@angular/forms';\nimport {\n IonCard,\n IonItemDivider,\n IonLabel,\n IonList,\n} from '@ionic/angular/standalone';\nimport { CountrySelectorComponent } from '@sneat/components';\nimport {\n carMakes,\n IAssetContext,\n IAssetVehicleContext,\n IAssetVehicleExtra,\n} from '@sneat/mod-assetus-core';\nimport { ISpaceContext } from '@sneat/space-models';\nimport { AssetPossessionCardComponent } from '../asset-possesion-card/asset-possession-card.component';\nimport { AssetRegNumberInputComponent } from '../asset-reg-number-input/asset-reg-number-input.component';\nimport { MakeModelCardComponent } from '../make-model-card/make-model-card.component';\nimport { VehicleEngineComponent } from '../vehicle-engine/vehicle-engine.component';\n\n// import {carMakes} from 'sneat-shared/models/data/vehicles';\n\n@Component({\n selector: 'sneat-vehicle-card',\n templateUrl: './vehicle-card.component.html',\n imports: [\n FormsModule,\n ReactiveFormsModule,\n // SelectFromListComponent,\n CountrySelectorComponent,\n MakeModelCardComponent,\n AssetPossessionCardComponent,\n VehicleEngineComponent,\n AssetRegNumberInputComponent,\n IonCard,\n IonList,\n IonItemDivider,\n IonLabel,\n ],\n})\nexport class VehicleCardComponent implements OnChanges {\n @Input({ required: true }) space?: ISpaceContext;\n\n @Input({ required: true }) vehicleAsset?: IAssetVehicleContext;\n @Output() readonly vehicleAssetChange = new EventEmitter<IAssetContext>();\n\n protected readonly regNumber = new FormControl<string>('');\n\n makeVal?: string;\n modelVal?: string | undefined;\n\n makes?: string[];\n models: string[] | undefined;\n engine = '';\n yearBuildNumber?: number;\n yearBuildVal?: string;\n\n @Input() set make(v: string) {\n this.makeVal = v;\n this.makes = Object.keys(carMakes);\n this.populateModels();\n }\n\n @Input() set model(v: string) {\n this.modelVal = v;\n }\n\n @Input() set yearBuild(v: number) {\n this.yearBuildNumber = v;\n this.yearBuildVal = v.toString();\n }\n\n @ViewChild(AssetRegNumberInputComponent, { static: false })\n regNumberInputComponent?: AssetRegNumberInputComponent;\n\n ngOnChanges(changes: SimpleChanges): void {\n // if (changes['space'] && this.team?.dto?.countryID && this.vehicleAsset?.dto && !this.vehicleAsset.dto.countryID) {\n // \tthis.vehicleAsset = { ...this.vehicleAsset, dto: { ...this.vehicleAsset.dto, countryID: this.team.dto.countryID } };\n // \tthis.vehicleAssetChange.emit(this.vehicleAsset);\n // }\n if (changes['vehicleAsset']) {\n if (!this.regNumber.dirty) {\n const extra = this.vehicleAsset?.brief?.extra as\n | IAssetVehicleExtra\n | undefined;\n this.regNumber.setValue(extra?.regNumber || '');\n }\n }\n }\n\n countryChanged(value: string): void {\n if (this.vehicleAsset?.dbo) {\n this.vehicleAsset = {\n ...this.vehicleAsset,\n dbo: { ...this.vehicleAsset.dbo, countryID: value },\n };\n this.vehicleAssetChange.emit(this.vehicleAsset);\n setTimeout(\n () => this.regNumberInputComponent?.focusToRegNumberInput(),\n 100,\n );\n }\n }\n\n protected regNumberSkipped = false;\n\n protected onRegNumberSkipped(): void {\n this.regNumberSkipped = true;\n }\n\n protected onRegNumberChanged(value: string): void {\n this.regNumber.setValue(value);\n if (this.vehicleAsset?.dbo) {\n const extra = {\n ...(this.vehicleAsset.dbo.extra as IAssetVehicleExtra),\n regNumber: value,\n };\n this.vehicleAsset = {\n ...this.vehicleAsset,\n dbo: {\n ...this.vehicleAsset.dbo,\n extra,\n },\n };\n this.vehicleAssetChange.emit(this.vehicleAsset);\n }\n }\n\n makeChanged(make: string): void {\n this.makeVal = make;\n if (this.vehicleAsset?.dbo) {\n this.vehicleAsset = {\n ...this.vehicleAsset,\n dbo: {\n ...this.vehicleAsset.dbo,\n extra: {\n ...(this.vehicleAsset.dbo.extra as IAssetVehicleExtra),\n make,\n },\n },\n };\n this.vehicleAssetChange.emit(this.vehicleAsset);\n }\n this.populateModels();\n }\n\n protected onAssetChanged(asset: IAssetContext): void {\n this.vehicleAsset = asset as IAssetVehicleContext;\n this.vehicleAssetChange.emit(this.vehicleAsset);\n }\n\n protected modelChanged(model: string): void {\n if (this.vehicleAsset?.dbo) {\n this.vehicleAsset = {\n ...this.vehicleAsset,\n dbo: {\n ...this.vehicleAsset.dbo,\n extra: {\n ...(this.vehicleAsset.dbo.extra as IAssetVehicleExtra),\n model,\n },\n },\n };\n this.vehicleAssetChange.emit(this.vehicleAsset);\n }\n }\n\n private populateModels(): void {\n if (!this.makeVal) {\n this.models = undefined;\n this.modelVal = undefined;\n return;\n }\n const make = carMakes[this.makeVal];\n this.models = make.models.map((v) => v.id);\n if (this.modelVal && this.models.indexOf(this.modelVal) <= 0) {\n this.modelVal = undefined;\n }\n }\n}\n","<ion-card>\n <ion-list>\n <sneat-country-selector\n [countryID]=\"vehicleAsset?.brief?.countryID\"\n [readonly]=\"!!vehicleAsset?.brief?.countryID\"\n [defaultCountryID]=\"space?.dbo?.countryID\"\n label=\"Country of registration\"\n (countryIDChange)=\"countryChanged($event)\"\n />\n @if (vehicleAsset?.dbo?.countryID) {\n <sneat-asset-reg-number\n [space]=\"space\"\n [assetID]=\"vehicleAsset?.id\"\n [regNumber]=\"vehicleAsset?.dbo?.extra?.regNumber\"\n [countyID]=\"vehicleAsset?.dbo?.countryID\"\n [hideSaveButton]=\"true\"\n [isSkipped]=\"regNumberSkipped\"\n (isSkippedChange)=\"onRegNumberSkipped()\"\n (regNumberChange)=\"onRegNumberChanged($event)\"\n />\n }\n </ion-list>\n</ion-card>\n\n<ion-card>\n @if (\n vehicleAsset?.id ||\n (vehicleAsset?.dbo?.type &&\n vehicleAsset?.dbo?.countryID &&\n (regNumberSkipped || !!vehicleAsset?.dbo?.extra?.regNumber))\n ) {\n <sneat-make-model-card\n [assetType]=\"vehicleAsset?.dbo?.type\"\n [make]=\"vehicleAsset?.dbo?.extra?.make\"\n [model]=\"vehicleAsset?.dbo?.extra?.model\"\n (makeChange)=\"makeChanged($event)\"\n (modelChange)=\"modelChanged($event)\"\n />\n }\n @if (vehicleAsset?.dbo?.extra?.model) {\n <ion-item-divider>\n <ion-label>Engine</ion-label>\n </ion-item-divider>\n <sneat-vehicle-engine\n [vehicleAsset]=\"vehicleAsset\"\n (vehicleAssetChange)=\"onAssetChanged($event)\"\n />\n }\n</ion-card>\n\n@if (vehicleAsset?.dbo?.extra?.model) {\n <sneat-asset-possession-card\n [asset]=\"vehicleAsset\"\n (assetChange)=\"onAssetChanged($event)\"\n />\n}\n"]}
|
|
@@ -0,0 +1,98 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { IonInput, IonItem, IonItemGroup } from '@ionic/angular/standalone';
|
|
3
|
+
import { SelectFromListComponent } from '@sneat/ui';
|
|
4
|
+
import { EngineTypeCombustion, EngineTypeElectric, EngineTypeHybrid, EngineTypePHEV, EngineTypes, FuelTypes, } from '@sneat/mod-assetus-core';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export class VehicleEngineComponent {
|
|
7
|
+
constructor() {
|
|
8
|
+
this.vehicleAssetChange = new EventEmitter();
|
|
9
|
+
this.engineTypes = [
|
|
10
|
+
{ id: FuelTypes.petrol, title: 'Petrol', emoji: '🔥' },
|
|
11
|
+
{ id: FuelTypes.diesel, title: 'Diesel', emoji: '🔥' },
|
|
12
|
+
{ id: EngineTypes.electric, title: 'Electric', emoji: '🔌' },
|
|
13
|
+
{ id: 'phev_petrol', title: 'PHEV Petrol', emoji: '🔌🔥' },
|
|
14
|
+
{ id: 'phev_diesel', title: 'PHEV Diesel', emoji: '🔌🔥' },
|
|
15
|
+
{ id: 'hybrid_petrol', title: 'Hybrid Petrol', emoji: '🔋🔥' },
|
|
16
|
+
{ id: 'hybrid_diesel', title: 'Hybrid Diesel', emoji: '🔋🔥' },
|
|
17
|
+
{ id: FuelTypes.hydrogen, title: 'Hydrogen', emoji: '💧' },
|
|
18
|
+
{ id: EngineTypes.steam, title: 'Steam', emoji: '🚂' },
|
|
19
|
+
{ id: EngineTypes.other, title: 'Other', labelColor: 'medium' },
|
|
20
|
+
{ id: '', title: 'Unknown', labelColor: 'medium' },
|
|
21
|
+
];
|
|
22
|
+
}
|
|
23
|
+
get hasBattery() {
|
|
24
|
+
const et = this.vehicleAsset?.dbo?.extra?.engineType;
|
|
25
|
+
return (et === EngineTypeElectric ||
|
|
26
|
+
et === EngineTypePHEV ||
|
|
27
|
+
et === EngineTypeHybrid);
|
|
28
|
+
}
|
|
29
|
+
get hasCombustion() {
|
|
30
|
+
const et = this.vehicleAsset?.dbo?.extra?.engineType;
|
|
31
|
+
return (et === EngineTypeCombustion ||
|
|
32
|
+
et === EngineTypePHEV ||
|
|
33
|
+
et === EngineTypeHybrid);
|
|
34
|
+
}
|
|
35
|
+
onEngineTypeChanged(v) {
|
|
36
|
+
let engineType = EngineTypes.unknown;
|
|
37
|
+
let engineFuel = FuelTypes.unknown;
|
|
38
|
+
if (this.vehicleAsset?.dbo) {
|
|
39
|
+
switch (v) {
|
|
40
|
+
case FuelTypes.diesel:
|
|
41
|
+
engineType = EngineTypes.combustion;
|
|
42
|
+
engineFuel = FuelTypes.diesel;
|
|
43
|
+
break;
|
|
44
|
+
case FuelTypes.petrol:
|
|
45
|
+
engineType = EngineTypes.combustion;
|
|
46
|
+
engineFuel = FuelTypes.petrol;
|
|
47
|
+
break;
|
|
48
|
+
case 'phev_diesel':
|
|
49
|
+
engineType = EngineTypes.phev;
|
|
50
|
+
engineFuel = FuelTypes.diesel;
|
|
51
|
+
break;
|
|
52
|
+
case 'phev_petrol':
|
|
53
|
+
engineType = EngineTypes.phev;
|
|
54
|
+
engineFuel = FuelTypes.petrol;
|
|
55
|
+
break;
|
|
56
|
+
case 'hybrid_diesel':
|
|
57
|
+
engineType = EngineTypes.hybrid;
|
|
58
|
+
engineFuel = FuelTypes.diesel;
|
|
59
|
+
break;
|
|
60
|
+
case 'hybrid_petrol':
|
|
61
|
+
engineType = EngineTypes.hybrid;
|
|
62
|
+
engineFuel = FuelTypes.petrol;
|
|
63
|
+
break;
|
|
64
|
+
case EngineTypes.steam:
|
|
65
|
+
engineType = EngineTypes.steam;
|
|
66
|
+
engineFuel = FuelTypes.unknown;
|
|
67
|
+
break;
|
|
68
|
+
case 'other':
|
|
69
|
+
engineType = EngineTypes.other;
|
|
70
|
+
engineFuel = FuelTypes.other;
|
|
71
|
+
break;
|
|
72
|
+
}
|
|
73
|
+
this.vehicleAsset = {
|
|
74
|
+
...this.vehicleAsset,
|
|
75
|
+
dbo: {
|
|
76
|
+
...this.vehicleAsset.dbo,
|
|
77
|
+
extra: {
|
|
78
|
+
...(this.vehicleAsset.dbo?.extra || { make: '', model: '' }),
|
|
79
|
+
engineType: engineType,
|
|
80
|
+
engineFuel: engineFuel,
|
|
81
|
+
},
|
|
82
|
+
},
|
|
83
|
+
};
|
|
84
|
+
this.vehicleAssetChange.emit(this.vehicleAsset);
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VehicleEngineComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); }
|
|
88
|
+
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "21.2.0", type: VehicleEngineComponent, isStandalone: true, selector: "sneat-vehicle-engine", inputs: { vehicleAsset: "vehicleAsset" }, outputs: { vehicleAssetChange: "vehicleAssetChange" }, ngImport: i0, template: "@if (!vehicleAsset?.dbo?.extra?.engineType) {\n <sneat-select-from-list\n label=\"Engine type\"\n [items]=\"engineTypes\"\n labelPlacement=\"start\"\n (valueChange)=\"onEngineTypeChanged($event)\"\n />\n}\n\n@if (vehicleAsset?.dbo?.extra?.engineFuel) {\n <ion-item-group>\n @if (hasCombustion) {\n <ion-item>\n <ion-input label=\"Size CC\" />\n </ion-item>\n }\n @if (hasBattery) {\n <ion-item>\n <ion-input label=\"Battery kWh\" type=\"number\" />\n </ion-item>\n }\n </ion-item-group>\n}\n", dependencies: [{ kind: "component", type: SelectFromListComponent, selector: "sneat-select-from-list", inputs: ["value", "filterLabel", "label", "listLabel", "listLabelColor", "isFilterable", "isLoading", "items", "items$", "lastItemLines", "labelPlacement", "justify", "other", "canAdd", "filterItem", "selectMode", "isReadonly", "$isProcessing", "sortBy"], outputs: ["valueChange", "filterChanged"] }, { kind: "component", type: IonItemGroup, selector: "ion-item-group" }, { kind: "component", type: IonItem, selector: "ion-item", inputs: ["button", "color", "detail", "detailIcon", "disabled", "download", "href", "lines", "mode", "rel", "routerAnimation", "routerDirection", "target", "type"] }, { kind: "component", type: IonInput, selector: "ion-input", inputs: ["accept", "autocapitalize", "autocomplete", "autocorrect", "autofocus", "clearInput", "clearOnEdit", "color", "counter", "counterFormatter", "debounce", "disabled", "enterkeyhint", "errorText", "fill", "helperText", "inputmode", "label", "labelPlacement", "max", "maxlength", "min", "minlength", "mode", "multiple", "name", "pattern", "placeholder", "readonly", "required", "shape", "size", "spellcheck", "step", "type", "value"] }] }); }
|
|
89
|
+
}
|
|
90
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "21.2.0", ngImport: i0, type: VehicleEngineComponent, decorators: [{
|
|
91
|
+
type: Component,
|
|
92
|
+
args: [{ selector: 'sneat-vehicle-engine', imports: [SelectFromListComponent, IonItemGroup, IonItem, IonInput], template: "@if (!vehicleAsset?.dbo?.extra?.engineType) {\n <sneat-select-from-list\n label=\"Engine type\"\n [items]=\"engineTypes\"\n labelPlacement=\"start\"\n (valueChange)=\"onEngineTypeChanged($event)\"\n />\n}\n\n@if (vehicleAsset?.dbo?.extra?.engineFuel) {\n <ion-item-group>\n @if (hasCombustion) {\n <ion-item>\n <ion-input label=\"Size CC\" />\n </ion-item>\n }\n @if (hasBattery) {\n <ion-item>\n <ion-input label=\"Battery kWh\" type=\"number\" />\n </ion-item>\n }\n </ion-item-group>\n}\n" }]
|
|
93
|
+
}], propDecorators: { vehicleAsset: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], vehicleAssetChange: [{
|
|
96
|
+
type: Output
|
|
97
|
+
}] } });
|
|
98
|
+
//# sourceMappingURL=vehicle-engine.component.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"vehicle-engine.component.js","sourceRoot":"","sources":["../../../../../../../../libs/extensions/assetus/components/src/lib/vehicle-engine/vehicle-engine.component.ts","../../../../../../../../libs/extensions/assetus/components/src/lib/vehicle-engine/vehicle-engine.component.html"],"names":[],"mappings":"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","sourcesContent":["import { Component, EventEmitter, Input, Output } from '@angular/core';\nimport { IonInput, IonItem, IonItemGroup } from '@ionic/angular/standalone';\nimport { ISelectItem, SelectFromListComponent } from '@sneat/ui';\nimport {\n EngineType,\n EngineTypeCombustion,\n EngineTypeElectric,\n EngineTypeHybrid,\n EngineTypePHEV,\n EngineTypes,\n FuelType,\n FuelTypes,\n IAssetVehicleContext,\n} from '@sneat/mod-assetus-core';\n\n@Component({\n selector: 'sneat-vehicle-engine',\n templateUrl: './vehicle-engine.component.html',\n imports: [SelectFromListComponent, IonItemGroup, IonItem, IonInput],\n})\nexport class VehicleEngineComponent {\n @Input() public vehicleAsset?: IAssetVehicleContext;\n @Output() public readonly vehicleAssetChange =\n new EventEmitter<IAssetVehicleContext>();\n\n protected get hasBattery(): boolean {\n const et = this.vehicleAsset?.dbo?.extra?.engineType;\n return (\n et === EngineTypeElectric ||\n et === EngineTypePHEV ||\n et === EngineTypeHybrid\n );\n }\n\n protected get hasCombustion(): boolean {\n const et = this.vehicleAsset?.dbo?.extra?.engineType;\n return (\n et === EngineTypeCombustion ||\n et === EngineTypePHEV ||\n et === EngineTypeHybrid\n );\n }\n\n readonly engineTypes: ISelectItem[] = [\n { id: FuelTypes.petrol, title: 'Petrol', emoji: '🔥' },\n { id: FuelTypes.diesel, title: 'Diesel', emoji: '🔥' },\n { id: EngineTypes.electric, title: 'Electric', emoji: '🔌' },\n { id: 'phev_petrol', title: 'PHEV Petrol', emoji: '🔌🔥' },\n { id: 'phev_diesel', title: 'PHEV Diesel', emoji: '🔌🔥' },\n { id: 'hybrid_petrol', title: 'Hybrid Petrol', emoji: '🔋🔥' },\n { id: 'hybrid_diesel', title: 'Hybrid Diesel', emoji: '🔋🔥' },\n { id: FuelTypes.hydrogen, title: 'Hydrogen', emoji: '💧' },\n { id: EngineTypes.steam, title: 'Steam', emoji: '🚂' },\n { id: EngineTypes.other, title: 'Other', labelColor: 'medium' },\n { id: '', title: 'Unknown', labelColor: 'medium' },\n ];\n\n protected onEngineTypeChanged(v: string): void {\n let engineType: EngineType = EngineTypes.unknown;\n let engineFuel: FuelType = FuelTypes.unknown;\n if (this.vehicleAsset?.dbo) {\n switch (v) {\n case FuelTypes.diesel:\n engineType = EngineTypes.combustion;\n engineFuel = FuelTypes.diesel;\n break;\n case FuelTypes.petrol:\n engineType = EngineTypes.combustion;\n engineFuel = FuelTypes.petrol;\n break;\n case 'phev_diesel':\n engineType = EngineTypes.phev;\n engineFuel = FuelTypes.diesel;\n break;\n case 'phev_petrol':\n engineType = EngineTypes.phev;\n engineFuel = FuelTypes.petrol;\n break;\n case 'hybrid_diesel':\n engineType = EngineTypes.hybrid;\n engineFuel = FuelTypes.diesel;\n break;\n case 'hybrid_petrol':\n engineType = EngineTypes.hybrid;\n engineFuel = FuelTypes.petrol;\n break;\n case EngineTypes.steam:\n engineType = EngineTypes.steam;\n engineFuel = FuelTypes.unknown;\n break;\n case 'other':\n engineType = EngineTypes.other;\n engineFuel = FuelTypes.other;\n break;\n }\n this.vehicleAsset = {\n ...this.vehicleAsset,\n dbo: {\n ...this.vehicleAsset.dbo,\n extra: {\n ...(this.vehicleAsset.dbo?.extra || { make: '', model: '' }),\n engineType: engineType,\n engineFuel: engineFuel,\n },\n },\n };\n this.vehicleAssetChange.emit(this.vehicleAsset);\n }\n }\n}\n","@if (!vehicleAsset?.dbo?.extra?.engineType) {\n <sneat-select-from-list\n label=\"Engine type\"\n [items]=\"engineTypes\"\n labelPlacement=\"start\"\n (valueChange)=\"onEngineTypeChanged($event)\"\n />\n}\n\n@if (vehicleAsset?.dbo?.extra?.engineFuel) {\n <ion-item-group>\n @if (hasCombustion) {\n <ion-item>\n <ion-input label=\"Size CC\" />\n </ion-item>\n }\n @if (hasBattery) {\n <ion-item>\n <ion-input label=\"Battery kWh\" type=\"number\" />\n </ion-item>\n }\n </ion-item-group>\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sneat-ext-assetus-components.js","sourceRoot":"","sources":["../../../../../../libs/extensions/assetus/components/src/sneat-ext-assetus-components.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,cAAc,SAAS,CAAC","sourcesContent":["/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"]}
|
package/index.d.ts
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from './lib';
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { UntypedFormGroup } from '@angular/forms';
|
|
2
|
+
import { IContactusSpaceDboAndID } from '@sneat/contactus-core';
|
|
3
|
+
import { AssetExtraType, IAssetExtra } from '@sneat/mod-assetus-core';
|
|
4
|
+
import { SpaceBaseComponent } from '@sneat/space-components';
|
|
5
|
+
import { ISpaceContext } from '@sneat/space-models';
|
|
6
|
+
import { AssetService, ICreateAssetRequest } from '../services';
|
|
7
|
+
import * as i0 from "@angular/core";
|
|
8
|
+
export declare abstract class AddAssetBaseComponent extends SpaceBaseComponent {
|
|
9
|
+
static readonly metadata: {
|
|
10
|
+
inputs: string[];
|
|
11
|
+
};
|
|
12
|
+
contactusSpace?: IContactusSpaceDboAndID;
|
|
13
|
+
country?: string;
|
|
14
|
+
isSubmitting: boolean;
|
|
15
|
+
titleForm: UntypedFormGroup;
|
|
16
|
+
protected readonly assetService: AssetService;
|
|
17
|
+
protected createAssetAndGoToAssetPage<ExtraType extends AssetExtraType, Extra extends IAssetExtra>(request: ICreateAssetRequest<ExtraType, Extra>, space: ISpaceContext): void;
|
|
18
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AddAssetBaseComponent, never>;
|
|
19
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AddAssetBaseComponent, "ng-component", never, {}, {}, never, never, true, never>;
|
|
20
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ISelectItem } from '@sneat/ui';
|
|
3
|
+
import { AssetVehicleType, IAssetContext, IAssetDocumentContext } from '@sneat/mod-assetus-core';
|
|
4
|
+
import { AddAssetBaseComponent } from '../add-asset-base-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AssetAddDocumentComponent extends AddAssetBaseComponent implements OnChanges {
|
|
7
|
+
documentAsset?: IAssetDocumentContext;
|
|
8
|
+
protected documentType?: AssetVehicleType;
|
|
9
|
+
protected readonly documentTypes: ISelectItem[];
|
|
10
|
+
protected countryIso2: string;
|
|
11
|
+
protected regNumber: string;
|
|
12
|
+
protected vin: string;
|
|
13
|
+
protected yearOfBuild: string;
|
|
14
|
+
protected engine: string;
|
|
15
|
+
protected engines?: string[];
|
|
16
|
+
protected nctExpires: string;
|
|
17
|
+
protected taxExpires: string;
|
|
18
|
+
protected nextServiceDue: string;
|
|
19
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
20
|
+
protected onAssetChanged(_asset: IAssetContext): void;
|
|
21
|
+
protected onVehicleTypeChanged(): void;
|
|
22
|
+
protected formatDate(value?: string | string[] | null): string;
|
|
23
|
+
protected submitDocumentForm(): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetAddDocumentComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetAddDocumentComponent, "sneat-asset-add-document", never, { "documentAsset": { "alias": "documentAsset"; "required": false; }; }, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ISelectItem } from '@sneat/ui';
|
|
3
|
+
import { AssetRealEstateType, IAssetContext, IAssetDwellingContext } from '@sneat/mod-assetus-core';
|
|
4
|
+
import { AddAssetBaseComponent } from '../add-asset-base-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AssetAddDwellingComponent extends AddAssetBaseComponent implements OnChanges {
|
|
7
|
+
dwellingAsset?: IAssetDwellingContext;
|
|
8
|
+
protected dwellingType?: AssetRealEstateType;
|
|
9
|
+
protected readonly dwellingTypes: ISelectItem[];
|
|
10
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
11
|
+
protected onDwellingTypeChanged(): void;
|
|
12
|
+
protected onAssetChanged(asset: IAssetContext): void;
|
|
13
|
+
protected submitDwellingForm(): void;
|
|
14
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetAddDwellingComponent, never>;
|
|
15
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetAddDwellingComponent, "sneat-asset-add-dwelling", never, { "dwellingAsset": { "alias": "dwellingAsset"; "required": false; }; }, {}, never, never, true, never>;
|
|
16
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { ISelectItem } from '@sneat/ui';
|
|
3
|
+
import { AssetVehicleType, IAssetContext, IAssetVehicleContext } from '@sneat/mod-assetus-core';
|
|
4
|
+
import { AddAssetBaseComponent } from '../add-asset-base-component';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AssetAddVehicleComponent extends AddAssetBaseComponent implements OnChanges {
|
|
7
|
+
vehicleAsset?: IAssetVehicleContext;
|
|
8
|
+
protected vehicleType?: AssetVehicleType;
|
|
9
|
+
protected readonly vehicleTypes: ISelectItem[];
|
|
10
|
+
protected countryIso2: string;
|
|
11
|
+
protected regNumber: string;
|
|
12
|
+
protected vin: string;
|
|
13
|
+
protected yearOfBuild: string;
|
|
14
|
+
protected engine: string;
|
|
15
|
+
protected engines?: string[];
|
|
16
|
+
protected nctExpires: string;
|
|
17
|
+
protected taxExpires: string;
|
|
18
|
+
protected nextServiceDue: string;
|
|
19
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
20
|
+
protected onAssetChanged(asset: IAssetContext): void;
|
|
21
|
+
onVehicleTypeChanged(): void;
|
|
22
|
+
formatDate(value?: string | string[] | null): string;
|
|
23
|
+
protected submitVehicleForm(): void;
|
|
24
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetAddVehicleComponent, never>;
|
|
25
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetAddVehicleComponent, "sneat-asset-add-vehicle", never, { "vehicleAsset": { "alias": "vehicleAsset"; "required": false; }; }, {}, never, never, true, never>;
|
|
26
|
+
}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { IAssetBrief, IAssetDboBase, IAssetusSpaceContext, IAssetContext, IAssetVehicleContext } from '@sneat/mod-assetus-core';
|
|
2
|
+
import { SpaceItemPageBaseComponent } from '@sneat/space-components';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
import { AssetComponentBaseParams } from './asset-component-base-params';
|
|
5
|
+
export declare abstract class AssetBasePage extends SpaceItemPageBaseComponent<IAssetBrief, IAssetDboBase> {
|
|
6
|
+
readonly params: AssetComponentBaseParams;
|
|
7
|
+
protected assetusSpace?: IAssetusSpaceContext;
|
|
8
|
+
protected asset?: IAssetContext;
|
|
9
|
+
protected get vehicleAsset(): IAssetVehicleContext;
|
|
10
|
+
protected readonly assetService: import("@sneat/ext-assetus-components").AssetService;
|
|
11
|
+
protected constructor(params: AssetComponentBaseParams, parentPagePath?: string);
|
|
12
|
+
protected watchItemChanges(): Observable<IAssetContext>;
|
|
13
|
+
protected setItemContext(item?: IAssetContext): void;
|
|
14
|
+
protected briefs(): Record<string, IAssetBrief> | undefined;
|
|
15
|
+
}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { Period } from '@sneat/dto';
|
|
3
|
+
import { IAssetContext } from '@sneat/mod-assetus-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AssetCardComponent implements OnChanges {
|
|
6
|
+
period?: Period;
|
|
7
|
+
asset?: IAssetContext;
|
|
8
|
+
protected segment: 'expenses' | 'income';
|
|
9
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
10
|
+
segmentChanged(ev: CustomEvent): void;
|
|
11
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetCardComponent, never>;
|
|
12
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetCardComponent, "sneat-asset-card", never, { "period": { "alias": "period"; "required": false; }; "asset": { "alias": "asset"; "required": true; }; }, {}, never, never, true, never>;
|
|
13
|
+
}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { AssetService } from './services';
|
|
2
|
+
import { SpaceComponentBaseParams } from '@sneat/space-components';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export declare class AssetComponentBaseParams {
|
|
5
|
+
readonly spaceParams: SpaceComponentBaseParams;
|
|
6
|
+
readonly assetService: AssetService;
|
|
7
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetComponentBaseParams, never>;
|
|
8
|
+
static ɵprov: i0.ɵɵInjectableDeclaration<AssetComponentBaseParams>;
|
|
9
|
+
}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { EventEmitter } from '@angular/core';
|
|
2
|
+
import { ISelectItem } from '@sneat/ui';
|
|
3
|
+
import { IAssetContext } from '@sneat/mod-assetus-core';
|
|
4
|
+
import * as i0 from "@angular/core";
|
|
5
|
+
export declare class AssetPossessionCardComponent {
|
|
6
|
+
asset?: IAssetContext;
|
|
7
|
+
readonly assetChange: EventEmitter<IAssetContext>;
|
|
8
|
+
protected readonly possessionOptions: ISelectItem[];
|
|
9
|
+
protected onPossessionChanged(possession: string): void;
|
|
10
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetPossessionCardComponent, never>;
|
|
11
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetPossessionCardComponent, "sneat-asset-possession-card", never, { "asset": { "alias": "asset"; "required": false; }; }, { "assetChange": "assetChange"; }, never, never, true, never>;
|
|
12
|
+
}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { EventEmitter, OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { FormControl } from '@angular/forms';
|
|
3
|
+
import { IonInput } from '@ionic/angular/standalone';
|
|
4
|
+
import { ISpaceContext } from '@sneat/space-models';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AssetRegNumberInputComponent implements OnChanges {
|
|
7
|
+
private readonly assetService;
|
|
8
|
+
private readonly errorLogger;
|
|
9
|
+
space?: ISpaceContext;
|
|
10
|
+
assetID?: string;
|
|
11
|
+
countyID?: string;
|
|
12
|
+
regNumber?: string;
|
|
13
|
+
hideSaveButton: boolean;
|
|
14
|
+
placeholder: string;
|
|
15
|
+
regNumberChange: EventEmitter<string>;
|
|
16
|
+
isSkipped: boolean;
|
|
17
|
+
isSkippedChange: EventEmitter<boolean>;
|
|
18
|
+
regNumberInput: IonInput;
|
|
19
|
+
protected validatedRegNumber?: string;
|
|
20
|
+
protected isSaving: boolean;
|
|
21
|
+
protected readonly regNumberControl: FormControl<string | null>;
|
|
22
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
23
|
+
protected get showSave(): boolean;
|
|
24
|
+
protected get isValidated(): boolean;
|
|
25
|
+
protected validate(): void;
|
|
26
|
+
protected skipOrNext(): void;
|
|
27
|
+
protected submit(): void;
|
|
28
|
+
focusToRegNumberInput(): void;
|
|
29
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetRegNumberInputComponent, never>;
|
|
30
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetRegNumberInputComponent, "sneat-asset-reg-number", never, { "space": { "alias": "space"; "required": true; }; "assetID": { "alias": "assetID"; "required": true; }; "countyID": { "alias": "countyID"; "required": true; }; "regNumber": { "alias": "regNumber"; "required": true; }; "hideSaveButton": { "alias": "hideSaveButton"; "required": false; }; "placeholder": { "alias": "placeholder"; "required": false; }; "isSkipped": { "alias": "isSkipped"; "required": false; }; }, { "regNumberChange": "regNumberChange"; "isSkippedChange": "isSkippedChange"; }, never, never, true, never>;
|
|
31
|
+
}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { OnChanges, SimpleChanges } from '@angular/core';
|
|
2
|
+
import { IIdAndBrief } from '@sneat/core';
|
|
3
|
+
import { AssetCategory, IAssetBrief } from '@sneat/mod-assetus-core';
|
|
4
|
+
import { ISpaceContext } from '@sneat/space-models';
|
|
5
|
+
import * as i0 from "@angular/core";
|
|
6
|
+
export declare class AssetsListComponent implements OnChanges {
|
|
7
|
+
private readonly errorLogger;
|
|
8
|
+
private readonly assetService;
|
|
9
|
+
private readonly spaceNavService;
|
|
10
|
+
private readonly modalCtrl;
|
|
11
|
+
protected assets?: IIdAndBrief<IAssetBrief>[];
|
|
12
|
+
protected mileAgeAsset?: IIdAndBrief<IAssetBrief>;
|
|
13
|
+
allAssets?: IIdAndBrief<IAssetBrief>[];
|
|
14
|
+
space?: ISpaceContext;
|
|
15
|
+
assetType?: AssetCategory;
|
|
16
|
+
filter: string;
|
|
17
|
+
sorter: (a: IIdAndBrief<IAssetBrief>, b: IIdAndBrief<IAssetBrief>) => number;
|
|
18
|
+
protected deletingIDs: string[];
|
|
19
|
+
ngOnChanges(changes: SimpleChanges): void;
|
|
20
|
+
protected goAsset(asset: IIdAndBrief<IAssetBrief>): void;
|
|
21
|
+
protected delete(event: Event, asset: IIdAndBrief<IAssetBrief>): void;
|
|
22
|
+
protected addNewMilesAndFuel(event: Event, asset: IIdAndBrief<IAssetBrief>): Promise<void>;
|
|
23
|
+
static ɵfac: i0.ɵɵFactoryDeclaration<AssetsListComponent, never>;
|
|
24
|
+
static ɵcmp: i0.ɵɵComponentDeclaration<AssetsListComponent, "sneat-assets-list", never, { "allAssets": { "alias": "allAssets"; "required": false; }; "space": { "alias": "space"; "required": true; }; "assetType": { "alias": "assetType"; "required": false; }; "filter": { "alias": "filter"; "required": false; }; "sorter": { "alias": "sorter"; "required": false; }; }, {}, never, never, true, never>;
|
|
25
|
+
}
|