@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.
Files changed (80) hide show
  1. package/esm2022/index.js +2 -0
  2. package/esm2022/index.js.map +1 -0
  3. package/esm2022/lib/asset-add/add-asset-base-component.js +48 -0
  4. package/esm2022/lib/asset-add/add-asset-base-component.js.map +1 -0
  5. package/esm2022/lib/asset-add/asset-add-document/asset-add-document.component.js +166 -0
  6. package/esm2022/lib/asset-add/asset-add-document/asset-add-document.component.js.map +1 -0
  7. package/esm2022/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.js +115 -0
  8. package/esm2022/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.js.map +1 -0
  9. package/esm2022/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.js +173 -0
  10. package/esm2022/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.js.map +1 -0
  11. package/esm2022/lib/asset-add/index.js +4 -0
  12. package/esm2022/lib/asset-add/index.js.map +1 -0
  13. package/esm2022/lib/asset-base-page.js +30 -0
  14. package/esm2022/lib/asset-base-page.js.map +1 -0
  15. package/esm2022/lib/asset-card/asset-card.component.js +41 -0
  16. package/esm2022/lib/asset-card/asset-card.component.js.map +1 -0
  17. package/esm2022/lib/asset-component-base-params.js +16 -0
  18. package/esm2022/lib/asset-component-base-params.js.map +1 -0
  19. package/esm2022/lib/asset-possesion-card/asset-possession-card.component.js +36 -0
  20. package/esm2022/lib/asset-possesion-card/asset-possession-card.component.js.map +1 -0
  21. package/esm2022/lib/asset-reg-number-input/asset-reg-number-input.component.js +118 -0
  22. package/esm2022/lib/asset-reg-number-input/asset-reg-number-input.component.js.map +1 -0
  23. package/esm2022/lib/assets-list/assets-list.component.js +138 -0
  24. package/esm2022/lib/assets-list/assets-list.component.js.map +1 -0
  25. package/esm2022/lib/edit-dwelling-card/edit-dwelling-card.component.js +121 -0
  26. package/esm2022/lib/edit-dwelling-card/edit-dwelling-card.component.js.map +1 -0
  27. package/esm2022/lib/index.js +14 -0
  28. package/esm2022/lib/index.js.map +1 -0
  29. package/esm2022/lib/make-model-card/make-model-card.component.js +68 -0
  30. package/esm2022/lib/make-model-card/make-model-card.component.js.map +1 -0
  31. package/esm2022/lib/mileage-dialog/mileage-dialog.component.js +128 -0
  32. package/esm2022/lib/mileage-dialog/mileage-dialog.component.js.map +1 -0
  33. package/esm2022/lib/period-segment/period-segment.component.js +24 -0
  34. package/esm2022/lib/period-segment/period-segment.component.js.map +1 -0
  35. package/esm2022/lib/real-estate-location/real-estate-location.component.js +22 -0
  36. package/esm2022/lib/real-estate-location/real-estate-location.component.js.map +1 -0
  37. package/esm2022/lib/services/asset-service.dto.js +2 -0
  38. package/esm2022/lib/services/asset-service.dto.js.map +1 -0
  39. package/esm2022/lib/services/asset-service.js +59 -0
  40. package/esm2022/lib/services/asset-service.js.map +1 -0
  41. package/esm2022/lib/services/assetus-services.module.js +17 -0
  42. package/esm2022/lib/services/assetus-services.module.js.map +1 -0
  43. package/esm2022/lib/services/assetus-space.service.js +18 -0
  44. package/esm2022/lib/services/assetus-space.service.js.map +1 -0
  45. package/esm2022/lib/services/index.js +5 -0
  46. package/esm2022/lib/services/index.js.map +1 -0
  47. package/esm2022/lib/vehicle-card/vehicle-card.component.js +160 -0
  48. package/esm2022/lib/vehicle-card/vehicle-card.component.js.map +1 -0
  49. package/esm2022/lib/vehicle-engine/vehicle-engine.component.js +98 -0
  50. package/esm2022/lib/vehicle-engine/vehicle-engine.component.js.map +1 -0
  51. package/esm2022/sneat-ext-assetus-components.js +5 -0
  52. package/esm2022/sneat-ext-assetus-components.js.map +1 -0
  53. package/index.d.ts +1 -0
  54. package/lib/asset-add/add-asset-base-component.d.ts +20 -0
  55. package/lib/asset-add/asset-add-document/asset-add-document.component.d.ts +26 -0
  56. package/lib/asset-add/asset-add-dwelling/asset-add-dwelling.component.d.ts +16 -0
  57. package/lib/asset-add/asset-add-vehicle/asset-add-vehicle.component.d.ts +26 -0
  58. package/lib/asset-add/index.d.ts +3 -0
  59. package/lib/asset-base-page.d.ts +15 -0
  60. package/lib/asset-card/asset-card.component.d.ts +13 -0
  61. package/lib/asset-component-base-params.d.ts +9 -0
  62. package/lib/asset-possesion-card/asset-possession-card.component.d.ts +12 -0
  63. package/lib/asset-reg-number-input/asset-reg-number-input.component.d.ts +31 -0
  64. package/lib/assets-list/assets-list.component.d.ts +25 -0
  65. package/lib/edit-dwelling-card/edit-dwelling-card.component.d.ts +23 -0
  66. package/lib/index.d.ts +13 -0
  67. package/lib/make-model-card/make-model-card.component.d.ts +20 -0
  68. package/lib/mileage-dialog/mileage-dialog.component.d.ts +33 -0
  69. package/lib/period-segment/period-segment.component.d.ts +10 -0
  70. package/lib/real-estate-location/real-estate-location.component.d.ts +7 -0
  71. package/lib/services/asset-service.d.ts +19 -0
  72. package/lib/services/asset-service.dto.d.ts +23 -0
  73. package/lib/services/assetus-services.module.d.ts +6 -0
  74. package/lib/services/assetus-space.service.d.ts +10 -0
  75. package/lib/services/index.d.ts +4 -0
  76. package/lib/vehicle-card/vehicle-card.component.d.ts +34 -0
  77. package/lib/vehicle-engine/vehicle-engine.component.d.ts +14 -0
  78. package/package.json +27 -0
  79. package/sneat-ext-assetus-components.d.ts +5 -0
  80. 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,5 @@
1
+ export * from './assetus-space.service';
2
+ export * from './asset-service';
3
+ export * from './asset-service.dto';
4
+ export * from './assetus-services.module';
5
+ //# sourceMappingURL=index.js.map
@@ -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,5 @@
1
+ /**
2
+ * Generated bundle index. Do not edit.
3
+ */
4
+ export * from './index';
5
+ //# sourceMappingURL=sneat-ext-assetus-components.js.map
@@ -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,3 @@
1
+ export * from './add-asset-base-component';
2
+ export * from './asset-add-document/asset-add-document.component';
3
+ export * from './asset-add-dwelling/asset-add-dwelling.component';
@@ -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
+ }