@aggdirect/coolmap 1.0.4 → 1.0.5
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/esm2020/lib/component/add-route/add-route.component.mjs +310 -0
- package/esm2020/lib/component/job-code/job-code.component.mjs +1 -1
- package/esm2020/lib/component/nav/layout/add-route-nav/add-route-nav.component.mjs +1 -1
- package/esm2020/lib/component/nav/layout/job-code-nav/job-code-nav.component.mjs +1 -1
- package/esm2020/lib/component/route-jobcode-list/route-jobcode-list.component.mjs +1 -1
- package/esm2020/lib/component/route-jobcode-list/sms-card-details-overview/sms-card-details-overview.component.mjs +1 -1
- package/esm2020/lib/component/shared/job-route-list/job-route-list.component.mjs +1 -1
- package/esm2020/lib/component/shared/jobcode-overview/jobcode-overview.component.mjs +1 -1
- package/esm2020/lib/component/shared/jobcode-status/jobcode-status.component.mjs +1 -1
- package/esm2020/lib/coolmap.module.mjs +13 -6
- package/esm2020/public-api.mjs +2 -1
- package/fesm2015/aggdirect-coolmap.mjs +316 -7
- package/fesm2015/aggdirect-coolmap.mjs.map +1 -1
- package/fesm2020/aggdirect-coolmap.mjs +306 -7
- package/fesm2020/aggdirect-coolmap.mjs.map +1 -1
- package/lib/component/add-route/add-route.component.d.ts +62 -0
- package/lib/component/nav/layout/add-route-nav/add-route-nav.component.d.ts +2 -1
- package/lib/component/nav/layout/job-code-nav/job-code-nav.component.d.ts +2 -1
- package/lib/component/route-jobcode-list/route-jobcode-list.component.d.ts +2 -2
- package/lib/component/shared/job-route-list/job-route-list.component.d.ts +1 -1
- package/lib/coolmap.module.d.ts +21 -20
- package/package.json +1 -1
- package/public-api.d.ts +1 -0
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import * as i0 from '@angular/core';
|
|
2
2
|
import { Component, ViewChild, EventEmitter, Output, Input, Inject, NgModule } from '@angular/core';
|
|
3
|
-
import { Subject, takeUntil, startWith, map } from 'rxjs';
|
|
3
|
+
import { Subject, takeUntil, startWith, map, fromEvent, distinctUntilChanged, debounceTime } from 'rxjs';
|
|
4
4
|
import * as i1 from 'coolmap-services';
|
|
5
5
|
import { DriversmsCardKey, DriverSmsCardEnum, JobCodeOverviewData, JobCodeOverviewEnum } from 'coolmap-services';
|
|
6
6
|
import * as i2 from '@angular/common';
|
|
@@ -17,6 +17,7 @@ import * as i3$1 from '@angular/forms';
|
|
|
17
17
|
import { FormControl, Validators, FormGroup, FormsModule, ReactiveFormsModule } from '@angular/forms';
|
|
18
18
|
import * as i5 from '@angular/material/input';
|
|
19
19
|
import { MatInputModule } from '@angular/material/input';
|
|
20
|
+
import * as i8$2 from '@angular/material/select';
|
|
20
21
|
import { MatSelectModule } from '@angular/material/select';
|
|
21
22
|
import * as i7 from '@angular/material/icon';
|
|
22
23
|
import { MatIconModule } from '@angular/material/icon';
|
|
@@ -38,6 +39,7 @@ import { PerfectScrollbarModule } from 'ngx-perfect-scrollbar';
|
|
|
38
39
|
import * as i10$1 from '@angular/material/datepicker';
|
|
39
40
|
import { MatDatepickerModule } from '@angular/material/datepicker';
|
|
40
41
|
import { MatProgressBarModule } from '@angular/material/progress-bar';
|
|
42
|
+
import { __awaiter } from 'tslib';
|
|
41
43
|
|
|
42
44
|
class CoolmapComponent {
|
|
43
45
|
constructor() { }
|
|
@@ -907,6 +909,307 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
907
909
|
}] }];
|
|
908
910
|
} });
|
|
909
911
|
|
|
912
|
+
class AddRouteComponent {
|
|
913
|
+
constructor(coolMapService, utils, dialog) {
|
|
914
|
+
this.coolMapService = coolMapService;
|
|
915
|
+
this.utils = utils;
|
|
916
|
+
this.dialog = dialog;
|
|
917
|
+
this.changeNav = new EventEmitter();
|
|
918
|
+
this.updateRouteList = new EventEmitter();
|
|
919
|
+
this.pickupOptions = [];
|
|
920
|
+
this.deliveryOptions = [];
|
|
921
|
+
this.requestParmsForRouteDetails = { pickup_lat_lng: '', delivery_lat_lng: '' };
|
|
922
|
+
this.customersList = [];
|
|
923
|
+
this.unitsList = [];
|
|
924
|
+
this.materialsList = [];
|
|
925
|
+
this.preventSave = false;
|
|
926
|
+
this.preventInitialSave = false;
|
|
927
|
+
this.destroyer$ = new Subject();
|
|
928
|
+
this.enablePopUp = false;
|
|
929
|
+
this.prevantPopupClose = false;
|
|
930
|
+
this.enableForm = false;
|
|
931
|
+
this.fetchCustomersList();
|
|
932
|
+
this.fetchUnitsList();
|
|
933
|
+
this.fetchMaterialsList();
|
|
934
|
+
this.formInit();
|
|
935
|
+
this.utils.getrouteDetailsUtility.subscribe(res => {
|
|
936
|
+
if (res) {
|
|
937
|
+
if (res['event'] !== 'click' && !this.prevantPopupClose) {
|
|
938
|
+
this.enablePopUp = res['event'];
|
|
939
|
+
}
|
|
940
|
+
else if (this.enablePopUp && !this.prevantPopupClose) {
|
|
941
|
+
this.prevantPopupClose = true;
|
|
942
|
+
}
|
|
943
|
+
if (res['event'] !== 'click' && !res['event'] && this.prevantPopupClose) {
|
|
944
|
+
this.popupDetails = this.utils.getdictValue('route-detailsv2');
|
|
945
|
+
}
|
|
946
|
+
else {
|
|
947
|
+
this.popupDetails = res['route'];
|
|
948
|
+
}
|
|
949
|
+
this.popupDetails['created_at'] = this.utils.getDateFormat(new Date(this.popupDetails['created_at']), '/');
|
|
950
|
+
}
|
|
951
|
+
});
|
|
952
|
+
}
|
|
953
|
+
filterCustomerList() {
|
|
954
|
+
this.customersList$ = this.addRouteForm.controls['customer_name'].valueChanges.pipe(startWith(''), map(value => this._filter(value || '')));
|
|
955
|
+
}
|
|
956
|
+
_filter(value) {
|
|
957
|
+
const filterValue = value.toLowerCase();
|
|
958
|
+
return this.customersList.filter((option) => option['customer_name'].toLowerCase().includes(filterValue));
|
|
959
|
+
}
|
|
960
|
+
ngOnChanges(changes) {
|
|
961
|
+
if (changes['routeData'] && !changes['routeData']['currentValue'])
|
|
962
|
+
this.inIt(null);
|
|
963
|
+
}
|
|
964
|
+
openDialog() {
|
|
965
|
+
const dialogRef = this.dialog.open(DialogComponent, {
|
|
966
|
+
data: { body: 'Are you sure you want to delete this route?' },
|
|
967
|
+
});
|
|
968
|
+
dialogRef.afterClosed().subscribe(res => {
|
|
969
|
+
if (res) {
|
|
970
|
+
this.deleteRoute();
|
|
971
|
+
}
|
|
972
|
+
});
|
|
973
|
+
}
|
|
974
|
+
editEvent() {
|
|
975
|
+
this.prevantPopupClose = false;
|
|
976
|
+
this.enableForm = true;
|
|
977
|
+
this.enablePopUp = false;
|
|
978
|
+
this.popupDetails['prevent'] = false;
|
|
979
|
+
this.utils.removeMapEntity.next(this.popupDetails);
|
|
980
|
+
this.inIt(this.popupDetails);
|
|
981
|
+
}
|
|
982
|
+
inIt(changes) {
|
|
983
|
+
if (changes) {
|
|
984
|
+
if (!changes['prevent']) {
|
|
985
|
+
this.preventSave = false;
|
|
986
|
+
this.formControlValue();
|
|
987
|
+
this.patchFormValue(changes);
|
|
988
|
+
this.checkAndFetchRouteInformation(true);
|
|
989
|
+
}
|
|
990
|
+
}
|
|
991
|
+
if (!changes) {
|
|
992
|
+
this.enableForm = true;
|
|
993
|
+
this.preventSave = true;
|
|
994
|
+
this.patchFormValue();
|
|
995
|
+
this.checkAndFetchRouteInformation();
|
|
996
|
+
}
|
|
997
|
+
}
|
|
998
|
+
ngOnInit() {
|
|
999
|
+
this.formControlValue();
|
|
1000
|
+
}
|
|
1001
|
+
ngAfterViewInit() {
|
|
1002
|
+
fromEvent(this.filterPickup.nativeElement, 'keyup').pipe(distinctUntilChanged(), debounceTime(150)).pipe(takeUntil(this.destroyer$)).subscribe(() => {
|
|
1003
|
+
this.utils.fetchAutoCompleteLocations(this.filterPickup.nativeElement.value).pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1004
|
+
this.pickupOptions = res.features;
|
|
1005
|
+
});
|
|
1006
|
+
});
|
|
1007
|
+
fromEvent(this.filterDelivery.nativeElement, 'keyup').pipe(distinctUntilChanged(), debounceTime(150)).pipe(takeUntil(this.destroyer$)).subscribe(() => {
|
|
1008
|
+
this.utils.fetchAutoCompleteLocations(this.filterDelivery.nativeElement.value).pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1009
|
+
this.deliveryOptions = res.features;
|
|
1010
|
+
});
|
|
1011
|
+
});
|
|
1012
|
+
}
|
|
1013
|
+
formControlValue() {
|
|
1014
|
+
var _a, _b;
|
|
1015
|
+
(_a = this.addRouteForm.controls['pickup_location']) === null || _a === void 0 ? void 0 : _a.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1016
|
+
if (this.addRouteForm.value.pickup_location && res !== this.addRouteForm.value.pickup_location) {
|
|
1017
|
+
this.addRouteForm.patchValue({
|
|
1018
|
+
pickup_lat_lng: '',
|
|
1019
|
+
});
|
|
1020
|
+
this.addRouteForm.controls['pickup_lat_lng'].markAsTouched();
|
|
1021
|
+
}
|
|
1022
|
+
});
|
|
1023
|
+
(_b = this.addRouteForm.controls['delivery_location']) === null || _b === void 0 ? void 0 : _b.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1024
|
+
if (this.addRouteForm.value.delivery_location && res !== this.addRouteForm.value.delivery_location) {
|
|
1025
|
+
this.addRouteForm.patchValue({
|
|
1026
|
+
delivery_lat_lng: '',
|
|
1027
|
+
});
|
|
1028
|
+
this.addRouteForm.controls['delivery_lat_lng'].markAsTouched();
|
|
1029
|
+
}
|
|
1030
|
+
});
|
|
1031
|
+
}
|
|
1032
|
+
formInit() {
|
|
1033
|
+
this.addRouteForm = new FormGroup({
|
|
1034
|
+
route_name: new FormControl('', [Validators.required]),
|
|
1035
|
+
customer_name: new FormControl({ value: '', disabled: true }, [Validators.required]),
|
|
1036
|
+
materials_id: new FormControl('', [Validators.required]),
|
|
1037
|
+
unit_id: new FormControl('', [Validators.required]),
|
|
1038
|
+
path: new FormControl('', [Validators.required]),
|
|
1039
|
+
pickup_location: new FormControl('', [Validators.required]),
|
|
1040
|
+
pickup_lat_lng: new FormControl('', [Validators.required]),
|
|
1041
|
+
delivery_location: new FormControl('', [Validators.required]),
|
|
1042
|
+
delivery_lat_lng: new FormControl('', [Validators.required]),
|
|
1043
|
+
estimated_distance: new FormControl('', [Validators.required]),
|
|
1044
|
+
estimated_time: new FormControl('', [Validators.required]),
|
|
1045
|
+
note: new FormControl('', [Validators.maxLength(2048)]),
|
|
1046
|
+
});
|
|
1047
|
+
}
|
|
1048
|
+
patchFormValue(data) {
|
|
1049
|
+
this.addRouteForm.reset();
|
|
1050
|
+
this.addRouteForm.patchValue(data);
|
|
1051
|
+
this.routeId = data === null || data === void 0 ? void 0 : data.route_id;
|
|
1052
|
+
this.routeDetails = data ? { pickup_location: data.pickup_location, delivery_location: data.delivery_location } : null;
|
|
1053
|
+
this.addRouteForm.valueChanges.pipe(takeUntil(this.destroyer$)).subscribe(res => {
|
|
1054
|
+
if (res) {
|
|
1055
|
+
if (this.preventInitialSave)
|
|
1056
|
+
this.preventInitialSave = false;
|
|
1057
|
+
}
|
|
1058
|
+
});
|
|
1059
|
+
this.filterCustomerList();
|
|
1060
|
+
}
|
|
1061
|
+
fetchCustomersList() {
|
|
1062
|
+
this.utils.getData('coolmap/company/list/view').pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1063
|
+
if (res) {
|
|
1064
|
+
this.customersList = res.data;
|
|
1065
|
+
this.filterCustomerList();
|
|
1066
|
+
this.addRouteForm.controls['customer_name'].enable();
|
|
1067
|
+
}
|
|
1068
|
+
});
|
|
1069
|
+
}
|
|
1070
|
+
fetchUnitsList() {
|
|
1071
|
+
return __awaiter(this, void 0, void 0, function* () {
|
|
1072
|
+
yield this.utils.getData('coolmap/unit/list/view').pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1073
|
+
if (res) {
|
|
1074
|
+
this.unitsList = res.data;
|
|
1075
|
+
}
|
|
1076
|
+
});
|
|
1077
|
+
});
|
|
1078
|
+
}
|
|
1079
|
+
fetchMaterialsList() {
|
|
1080
|
+
this.utils.getData('coolmap/material/list/view').pipe(takeUntil(this.destroyer$)).subscribe(((res) => {
|
|
1081
|
+
res.data.sort((a, b) => a.material.localeCompare(b.material));
|
|
1082
|
+
this.materialsList = res.data;
|
|
1083
|
+
}));
|
|
1084
|
+
}
|
|
1085
|
+
selectedLongLat(type, event) {
|
|
1086
|
+
if (type === 'pickup') {
|
|
1087
|
+
this.addRouteForm.patchValue({
|
|
1088
|
+
pickup_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()
|
|
1089
|
+
});
|
|
1090
|
+
this.coolMapService.clearBoundWithCordinates();
|
|
1091
|
+
}
|
|
1092
|
+
else if (type === 'delivery') {
|
|
1093
|
+
this.addRouteForm.patchValue({
|
|
1094
|
+
delivery_lat_lng: (event.geometry.coordinates[1] + ',' + event.geometry.coordinates[0]).toString()
|
|
1095
|
+
});
|
|
1096
|
+
}
|
|
1097
|
+
this.checkAndFetchRouteInformation();
|
|
1098
|
+
}
|
|
1099
|
+
checkAndFetchRouteInformation(isinitial) {
|
|
1100
|
+
var _a, _b, _c, _d;
|
|
1101
|
+
if (((_b = (_a = this.addRouteForm.value) === null || _a === void 0 ? void 0 : _a.delivery_lat_lng) === null || _b === void 0 ? void 0 : _b.length) > 0 && ((_d = (_c = this.addRouteForm.value) === null || _c === void 0 ? void 0 : _c.pickup_lat_lng) === null || _d === void 0 ? void 0 : _d.length) > 0) {
|
|
1102
|
+
const param = {
|
|
1103
|
+
delivery_lat_lng: this.addRouteForm.value.delivery_lat_lng,
|
|
1104
|
+
pickup_lat_lng: this.addRouteForm.value.pickup_lat_lng
|
|
1105
|
+
};
|
|
1106
|
+
this.utils.postdata('coolmap/calculate/routes/estimation', param).pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1107
|
+
if (res && res['path']) {
|
|
1108
|
+
this.addRouteForm.patchValue({
|
|
1109
|
+
estimated_distance: res.dist, estimated_time: res.time, path: res.path
|
|
1110
|
+
});
|
|
1111
|
+
let path = res['path'].split(';');
|
|
1112
|
+
path = path.map((ele) => { return ele = this.formateLatLong(ele); });
|
|
1113
|
+
res['path'] = path;
|
|
1114
|
+
const element = {
|
|
1115
|
+
type: 'FeatureCollection',
|
|
1116
|
+
features: [{ type: 'Feature', properties: {}, geometry: { type: 'LineString', coordinates: res['path'] } }]
|
|
1117
|
+
};
|
|
1118
|
+
this.coolMapService.removeRouteAndMarker(1).then(() => {
|
|
1119
|
+
var _a, _b, _c;
|
|
1120
|
+
const unit = this.unitsList.find((x) => x.id === this.addRouteForm.value.unit_id);
|
|
1121
|
+
const materialDetails = this.materialsList.find((x) => x.material_id === this.addRouteForm.value.materials_id);
|
|
1122
|
+
this.coolMapService.loadMapProperty(element, 1, unit === null || unit === void 0 ? void 0 : unit.type, {
|
|
1123
|
+
pickup_location: (_a = this.addRouteForm.get('pickup_location')) === null || _a === void 0 ? void 0 : _a.value,
|
|
1124
|
+
delivery_location: (_b = this.addRouteForm.get('delivery_location')) === null || _b === void 0 ? void 0 : _b.value,
|
|
1125
|
+
route_name: (_c = this.addRouteForm.get('route_name')) === null || _c === void 0 ? void 0 : _c.value,
|
|
1126
|
+
material: materialDetails === null || materialDetails === void 0 ? void 0 : materialDetails.material, unit: unit === null || unit === void 0 ? void 0 : unit.type
|
|
1127
|
+
}).then((res) => { this.preventSave = true; });
|
|
1128
|
+
});
|
|
1129
|
+
}
|
|
1130
|
+
else {
|
|
1131
|
+
this.coolMapService.removeRouteAndMarker(1);
|
|
1132
|
+
this.utils.openSnackBar(res['status'], 'error');
|
|
1133
|
+
}
|
|
1134
|
+
if (this.routeId && isinitial)
|
|
1135
|
+
this.preventInitialSave = true;
|
|
1136
|
+
});
|
|
1137
|
+
}
|
|
1138
|
+
else {
|
|
1139
|
+
this.coolMapService.removeRouteAndMarker(1);
|
|
1140
|
+
}
|
|
1141
|
+
}
|
|
1142
|
+
formateLatLong(latlong) { return latlong ? latlong.split(',').map(x => +x).reverse() : null; }
|
|
1143
|
+
saveRoute() {
|
|
1144
|
+
if (this.addRouteForm.valid) {
|
|
1145
|
+
this.preventSave = false;
|
|
1146
|
+
const data = this.addRouteForm.value;
|
|
1147
|
+
const url = this.routeId ? this.utils.postdata('coolmap/update/routes', data) : this.utils.postdata('coolmap/add/routes', data);
|
|
1148
|
+
if (this.routeId)
|
|
1149
|
+
data['id'] = this.routeId;
|
|
1150
|
+
url.pipe(takeUntil(this.destroyer$)).subscribe((res) => {
|
|
1151
|
+
if (res.success) {
|
|
1152
|
+
this.updateRouteList.emit(true);
|
|
1153
|
+
this.utils.openSnackBar(res.message, 'success');
|
|
1154
|
+
this.preventInitialSave = true;
|
|
1155
|
+
this.preventSave = true;
|
|
1156
|
+
if (!this.routeId)
|
|
1157
|
+
this.changeNav.next('Addroute');
|
|
1158
|
+
}
|
|
1159
|
+
else {
|
|
1160
|
+
this.utils.openSnackBar(res.message, 'error');
|
|
1161
|
+
this.preventSave = true;
|
|
1162
|
+
}
|
|
1163
|
+
}, (err) => {
|
|
1164
|
+
if (err) {
|
|
1165
|
+
this.preventSave = true;
|
|
1166
|
+
}
|
|
1167
|
+
});
|
|
1168
|
+
}
|
|
1169
|
+
else {
|
|
1170
|
+
this.addRouteForm.markAllAsTouched();
|
|
1171
|
+
}
|
|
1172
|
+
}
|
|
1173
|
+
deleteRoute() {
|
|
1174
|
+
this.preventSave = false;
|
|
1175
|
+
this.utils.postdata('coolmap/delete/routes', { uuid: this.routeId }).subscribe(res => {
|
|
1176
|
+
if (res['data']['success']) {
|
|
1177
|
+
this.utils.openSnackBar(res['data']['message'], 'success');
|
|
1178
|
+
this.updateRouteList.emit(true);
|
|
1179
|
+
this.changeNav.next('Addroute');
|
|
1180
|
+
this.preventInitialSave = true;
|
|
1181
|
+
this.preventSave = true;
|
|
1182
|
+
}
|
|
1183
|
+
else {
|
|
1184
|
+
this.utils.openSnackBar('Somthing went wrong', 'error');
|
|
1185
|
+
this.preventSave = true;
|
|
1186
|
+
}
|
|
1187
|
+
}, (err) => { this.preventSave = true; });
|
|
1188
|
+
}
|
|
1189
|
+
ngOnDestroy() {
|
|
1190
|
+
this.destroyer$.next(true);
|
|
1191
|
+
this.destroyer$.unsubscribe();
|
|
1192
|
+
}
|
|
1193
|
+
}
|
|
1194
|
+
AddRouteComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AddRouteComponent, deps: [{ token: i1.CoolmapService }, { token: i1.UtilsService }, { token: i1$1.MatDialog }], target: i0.ɵɵFactoryTarget.Component });
|
|
1195
|
+
AddRouteComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "14.2.12", type: AddRouteComponent, selector: "app-add-route", inputs: { routeData: "routeData" }, outputs: { changeNav: "changeNav", updateRouteList: "updateRouteList" }, viewQueries: [{ propertyName: "filterPickup", first: true, predicate: ["filterPickup"], descendants: true }, { propertyName: "filterDelivery", first: true, predicate: ["filterDelivery"], descendants: true }], usesOnChanges: true, ngImport: i0, template: "<div class=\"addroutebox\">\r\n <div class=\"routedetailbox\" *ngIf=\"enablePopUp\">\r\n <div class=\"closebtnroutedetail\">\r\n <mat-icon (click)=\"prevantPopupClose = false; enablePopUp = false;\">clear</mat-icon>\r\n </div>\r\n <div class=\"destination\">\r\n <div class=\"duration\">\r\n <p class=\"pickprt\"><b>Pickup:</b>{{popupDetails['pickup_location']}}</p>\r\n <p class=\"dropprt\"><b>Delivery:</b>{{popupDetails['delivery_location']}}</p>\r\n </div>\r\n <span><b>Name:</b> {{popupDetails['route_name']}}</span>\r\n <span><b>Customer:</b> {{popupDetails['customer_name']}}</span>\r\n <span><b>Material:</b> {{popupDetails['material']}}</span>\r\n <span><b>Type:</b> {{popupDetails['unit']}}</span>\r\n <span><b>Distance:</b> {{popupDetails['estimated_distance']}}</span>\r\n <span><b>Travel Time:</b> {{popupDetails['estimated_time']}}</span>\r\n\r\n <span class=\"routenotes\"><b>Notes:</b> {{popupDetails['note']}}</span>\r\n </div>\r\n <div class=\"createTxt\">\r\n <small>\r\n Created by {{popupDetails['created_by_name']}} on {{popupDetails['created_at']}}\r\n </small>\r\n <button class=\"editbtn\" (click)=\"editEvent()\">Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"add_add_route_box\" cdkDrag [style.visibility]=\"!enableForm ? 'hidden' : 'visible'\">\r\n <div class=\"topheadingprt\">\r\n <h2> {{routeId? 'EDIT' : 'ADD'}} ROUTE </h2>\r\n <div class=\"buttonprt\">\r\n <button class=\"delbtn\" (click)=\"openDialog()\">Delete</button>\r\n <button mat-raised-button type=\"submit\" class=\"closebtn\" (click)=\"changeNav.next('Addroute')\">Close</button>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"addRouteForm\">\r\n <div class=\"route_form_area\">\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Route Name</mat-label>\r\n <input matInput formControlName=\"route_name\" autocomplete=\"nope\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-error *ngIf=\"addRouteForm.controls['route_name'].hasError('required')\">\r\n Route Name is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <input type=\"text\" placeholder=\"Customer Name\" matInput formControlName=\"customer_name\" [matAutocomplete]=\"auto\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let customer of customersList$ | async\" [value]=\"customer['customer_name']\">\r\n {{customer['customer_name']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"addRouteForm.controls['customer_name'].hasError('required')\">\r\n Customer name is required.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Pickup</mat-label>\r\n <input type=\"text\" placeholder=\"Search...\" matInput #filterPickup [matAutocomplete]=\"pickupAutocomplete\"\r\n formControlName=\"pickup_location\" (mousedown)=\"$event.stopPropagation()\">\r\n\r\n <mat-autocomplete #pickupAutocomplete=\"matAutocomplete\">\r\n <mat-option (click)=\"selectedLongLat('pickup', option)\" *ngFor=\"let option of pickupOptions\"\r\n [value]=\"option?.place_name\">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"addRouteForm.controls['pickup_lat_lng'].touched && addRouteForm.controls['pickup_lat_lng'].hasError('required')\">\r\n Please select pickup location from the list.\r\n </mat-error>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Delivery</mat-label>\r\n <input type=\"text\" placeholder=\"Search...\" matInput #filterDelivery [matAutocomplete]=\"deliveryAutocomplete\"\r\n formControlName=\"delivery_location\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-autocomplete #deliveryAutocomplete=\"matAutocomplete\">\r\n <mat-option (click)=\"selectedLongLat('delivery', option)\" *ngFor=\"let option of deliveryOptions\"\r\n [value]=\"option?.place_name\">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"addRouteForm.controls['delivery_lat_lng'].touched && addRouteForm.controls['delivery_lat_lng'].hasError('required')\">\r\n Please select delivery location from the list.\r\n </mat-error>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Notes</mat-label>\r\n <textarea style=\"height: 18px; resize: none;\" matInput name=\"\" id=\"\" cols=\"30\" rows=\"10\" formControlName=\"note\" autocomplete=\"nope\" (mousedown)=\"$event.stopPropagation()\"></textarea>\r\n <mat-error *ngIf=\"addRouteForm.controls['note'].hasError('maxlength')\">\r\n Notes should be within 2048 characters.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col-6 d-flex\">\r\n <div class=\"inputbox m-0\">\r\n <mat-form-field>\r\n <mat-label>Unit type</mat-label>\r\n <mat-select formControlName=\"unit_id\" (selectionChange)=\"checkAndFetchRouteInformation()\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-option *ngFor=\"let unit of unitsList\" [value]=\"unit?.id\"> {{unit?.type}} </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"addRouteForm.controls['unit_id'].hasError('required')\">\r\n Unit is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"inputbox m-0\">\r\n <mat-form-field>\r\n <mat-label>Material</mat-label>\r\n <mat-select formControlName=\"materials_id\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-option *ngFor=\"let material of materialsList\" [value]=\"material?.material_id\"> {{material?.material}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"addRouteForm.controls['materials_id'].hasError('required')\">\r\n Meterial is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <app-estimation-display *ngIf=\"addRouteForm?.value?.pickup_lat_lng && addRouteForm?.value?.delivery_lat_lng\" [value]=\"addRouteForm['value']\"></app-estimation-display>\r\n </div>\r\n <button mat-raised-button type=\"submit\" (click)=\"saveRoute()\" *ngIf=\"preventSave\"\r\n [disabled]=\"addRouteForm.invalid && preventSave || preventInitialSave\">{{routeId? 'Update' : 'Save'}}\r\n </button>\r\n <div class=\"loader\">\r\n <mat-spinner *ngIf=\"!preventSave\"></mat-spinner>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".addroutebox{width:calc(100% - 315px);position:absolute;left:300px;bottom:10px;z-index:999;display:flex;justify-content:space-between;align-items:flex-start}.addroutebox .routedetailbox{max-width:300px;padding:10px;background-color:#fff;border-radius:20px;margin-right:20px}@media (min-width: 1600px){.addroutebox .routedetailbox{max-width:280px}}.addroutebox .editbtn{background:#326ad3;padding:10px 25px;color:#fff;font-size:.8125rem;border-radius:30px;float:right}.add_add_route_box{background:white;padding:10px 20px;border-radius:20px;box-shadow:2px 4px 4px 2px #00000024;height:370px;width:100%;position:relative;cursor:move}.add_add_route_box .route_form_area{display:flex;flex-wrap:wrap;justify-content:space-between}.add_add_route_box .route_form_area .col-6{width:48%;margin-top:15px;justify-content:space-between}.add_add_route_box .route_form_area .col-6 .inputbox{width:47%}.add_add_route_box .route_form_area .col-6 span{font-size:.875rem}.add_add_route_box .route_form_area button{background:#326ad3;padding:10px 18px;color:#fff;font-size:.8125rem;border-radius:30px;position:absolute;right:18px;top:20px}.closebtn{background:black;color:#fff;border-radius:30px;padding:10px 18px;margin-left:10px}.delbtn{background:red;color:#fff;border-radius:30px;padding:10px 18px}.add_route_listingpart .listing_toggle{background:white;border-radius:15px;padding:8px 10px;position:absolute;right:10px;top:30px;cursor:pointer}.listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px #ffffff14;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0 40px;opacity:0}.listing_box .closebtn{display:none}.show .listing_box{width:250px;max-width:250px;flex:0 0 250px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}@media (min-width: 1600px){.show .listing_box{width:320px;max-width:320px;flex:0 0 320px}}.show .listing_box h2{color:#fff;white-space:nowrap}.show .listing_box ul{padding:0 20px 0 0}.show .listing_box ul li{background:#4a4a4a;padding:15px;border-radius:15px;display:flex;margin-bottom:15px}.show .listing_box ul li .companayIcon{width:40px;height:40px;border-radius:10px;background:white;margin-right:10px;display:flex;justify-content:center;align-items:center}.show .listing_box ul li .company_cont{width:calc(100% - 50px)}.show .listing_box ul li .company_cont h3{color:#fff;font-size:15px;font-weight:400;margin:0;text-overflow:ellipsis;max-width:129px;-webkit-box-orient:vertical;white-space:nowrap;overflow:hidden}@media (min-width: 1600px){.show .listing_box ul li .company_cont h3{max-width:170px}}.show .listing_box ul li .company_cont p{color:#bcbcbc;font-size:12px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:16px}.show .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px #ffffff14;display:block}.loader{position:absolute;width:95%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.buttonprt{margin-right:83px}.destination .duration{padding:10px}.destination span{padding:5px 0}.closebtnroutedetail{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#fff;position:absolute;top:-11px;left:-11px}.routenotes{max-height:170px;overflow:auto}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3$2.CdkDrag, selector: "[cdkDrag]", inputs: ["cdkDragData", "cdkDragLockAxis", "cdkDragRootElement", "cdkDragBoundary", "cdkDragStartDelay", "cdkDragFreeDragPosition", "cdkDragDisabled", "cdkDragConstrainPosition", "cdkDragPreviewClass", "cdkDragPreviewContainer"], outputs: ["cdkDragStarted", "cdkDragReleased", "cdkDragEnded", "cdkDragEntered", "cdkDragExited", "cdkDragDropped", "cdkDragMoved"], exportAs: ["cdkDrag"] }, { kind: "directive", type: i3$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i3$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i4.MatError, selector: "mat-error", inputs: ["id"] }, { kind: "component", type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "directive", type: i4.MatLabel, selector: "mat-label" }, { kind: "directive", type: i5.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["disabled", "id", "placeholder", "name", "required", "type", "errorStateMatcher", "aria-describedby", "value", "readonly"], exportAs: ["matInput"] }, { kind: "component", type: i8$2.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "component", type: i6.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "component", type: i7.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "directive", type: i3$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i8$1.MatAutocomplete, selector: "mat-autocomplete", inputs: ["disableRipple"], exportAs: ["matAutocomplete"] }, { kind: "directive", type: i8$1.MatAutocompleteTrigger, selector: "input[matAutocomplete], textarea[matAutocomplete]", exportAs: ["matAutocompleteTrigger"] }, { kind: "component", type: i7$1.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i10.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { kind: "pipe", type: i2.AsyncPipe, name: "async" }] });
|
|
1196
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: AddRouteComponent, decorators: [{
|
|
1197
|
+
type: Component,
|
|
1198
|
+
args: [{ selector: 'app-add-route', template: "<div class=\"addroutebox\">\r\n <div class=\"routedetailbox\" *ngIf=\"enablePopUp\">\r\n <div class=\"closebtnroutedetail\">\r\n <mat-icon (click)=\"prevantPopupClose = false; enablePopUp = false;\">clear</mat-icon>\r\n </div>\r\n <div class=\"destination\">\r\n <div class=\"duration\">\r\n <p class=\"pickprt\"><b>Pickup:</b>{{popupDetails['pickup_location']}}</p>\r\n <p class=\"dropprt\"><b>Delivery:</b>{{popupDetails['delivery_location']}}</p>\r\n </div>\r\n <span><b>Name:</b> {{popupDetails['route_name']}}</span>\r\n <span><b>Customer:</b> {{popupDetails['customer_name']}}</span>\r\n <span><b>Material:</b> {{popupDetails['material']}}</span>\r\n <span><b>Type:</b> {{popupDetails['unit']}}</span>\r\n <span><b>Distance:</b> {{popupDetails['estimated_distance']}}</span>\r\n <span><b>Travel Time:</b> {{popupDetails['estimated_time']}}</span>\r\n\r\n <span class=\"routenotes\"><b>Notes:</b> {{popupDetails['note']}}</span>\r\n </div>\r\n <div class=\"createTxt\">\r\n <small>\r\n Created by {{popupDetails['created_by_name']}} on {{popupDetails['created_at']}}\r\n </small>\r\n <button class=\"editbtn\" (click)=\"editEvent()\">Edit</button>\r\n </div>\r\n </div>\r\n <div class=\"add_add_route_box\" cdkDrag [style.visibility]=\"!enableForm ? 'hidden' : 'visible'\">\r\n <div class=\"topheadingprt\">\r\n <h2> {{routeId? 'EDIT' : 'ADD'}} ROUTE </h2>\r\n <div class=\"buttonprt\">\r\n <button class=\"delbtn\" (click)=\"openDialog()\">Delete</button>\r\n <button mat-raised-button type=\"submit\" class=\"closebtn\" (click)=\"changeNav.next('Addroute')\">Close</button>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"addRouteForm\">\r\n <div class=\"route_form_area\">\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Route Name</mat-label>\r\n <input matInput formControlName=\"route_name\" autocomplete=\"nope\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-error *ngIf=\"addRouteForm.controls['route_name'].hasError('required')\">\r\n Route Name is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <input type=\"text\" placeholder=\"Customer Name\" matInput formControlName=\"customer_name\" [matAutocomplete]=\"auto\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-autocomplete autoActiveFirstOption #auto=\"matAutocomplete\">\r\n <mat-option *ngFor=\"let customer of customersList$ | async\" [value]=\"customer['customer_name']\">\r\n {{customer['customer_name']}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n <mat-error *ngIf=\"addRouteForm.controls['customer_name'].hasError('required')\">\r\n Customer name is required.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Pickup</mat-label>\r\n <input type=\"text\" placeholder=\"Search...\" matInput #filterPickup [matAutocomplete]=\"pickupAutocomplete\"\r\n formControlName=\"pickup_location\" (mousedown)=\"$event.stopPropagation()\">\r\n\r\n <mat-autocomplete #pickupAutocomplete=\"matAutocomplete\">\r\n <mat-option (click)=\"selectedLongLat('pickup', option)\" *ngFor=\"let option of pickupOptions\"\r\n [value]=\"option?.place_name\">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"addRouteForm.controls['pickup_lat_lng'].touched && addRouteForm.controls['pickup_lat_lng'].hasError('required')\">\r\n Please select pickup location from the list.\r\n </mat-error>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Delivery</mat-label>\r\n <input type=\"text\" placeholder=\"Search...\" matInput #filterDelivery [matAutocomplete]=\"deliveryAutocomplete\"\r\n formControlName=\"delivery_location\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-autocomplete #deliveryAutocomplete=\"matAutocomplete\">\r\n <mat-option (click)=\"selectedLongLat('delivery', option)\" *ngFor=\"let option of deliveryOptions\"\r\n [value]=\"option?.place_name\">\r\n {{option?.place_name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n <mat-error *ngIf=\"addRouteForm.controls['delivery_lat_lng'].touched && addRouteForm.controls['delivery_lat_lng'].hasError('required')\">\r\n Please select delivery location from the list.\r\n </mat-error>\r\n </div>\r\n <div class=\"col-6\">\r\n <mat-form-field>\r\n <mat-label>Notes</mat-label>\r\n <textarea style=\"height: 18px; resize: none;\" matInput name=\"\" id=\"\" cols=\"30\" rows=\"10\" formControlName=\"note\" autocomplete=\"nope\" (mousedown)=\"$event.stopPropagation()\"></textarea>\r\n <mat-error *ngIf=\"addRouteForm.controls['note'].hasError('maxlength')\">\r\n Notes should be within 2048 characters.\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"col-6 d-flex\">\r\n <div class=\"inputbox m-0\">\r\n <mat-form-field>\r\n <mat-label>Unit type</mat-label>\r\n <mat-select formControlName=\"unit_id\" (selectionChange)=\"checkAndFetchRouteInformation()\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-option *ngFor=\"let unit of unitsList\" [value]=\"unit?.id\"> {{unit?.type}} </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"addRouteForm.controls['unit_id'].hasError('required')\">\r\n Unit is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n\r\n <div class=\"inputbox m-0\">\r\n <mat-form-field>\r\n <mat-label>Material</mat-label>\r\n <mat-select formControlName=\"materials_id\" (mousedown)=\"$event.stopPropagation()\">\r\n <mat-option *ngFor=\"let material of materialsList\" [value]=\"material?.material_id\"> {{material?.material}}\r\n </mat-option>\r\n </mat-select>\r\n <mat-error *ngIf=\"addRouteForm.controls['materials_id'].hasError('required')\">\r\n Meterial is required\r\n </mat-error>\r\n </mat-form-field>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <app-estimation-display *ngIf=\"addRouteForm?.value?.pickup_lat_lng && addRouteForm?.value?.delivery_lat_lng\" [value]=\"addRouteForm['value']\"></app-estimation-display>\r\n </div>\r\n <button mat-raised-button type=\"submit\" (click)=\"saveRoute()\" *ngIf=\"preventSave\"\r\n [disabled]=\"addRouteForm.invalid && preventSave || preventInitialSave\">{{routeId? 'Update' : 'Save'}}\r\n </button>\r\n <div class=\"loader\">\r\n <mat-spinner *ngIf=\"!preventSave\"></mat-spinner>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".addroutebox{width:calc(100% - 315px);position:absolute;left:300px;bottom:10px;z-index:999;display:flex;justify-content:space-between;align-items:flex-start}.addroutebox .routedetailbox{max-width:300px;padding:10px;background-color:#fff;border-radius:20px;margin-right:20px}@media (min-width: 1600px){.addroutebox .routedetailbox{max-width:280px}}.addroutebox .editbtn{background:#326ad3;padding:10px 25px;color:#fff;font-size:.8125rem;border-radius:30px;float:right}.add_add_route_box{background:white;padding:10px 20px;border-radius:20px;box-shadow:2px 4px 4px 2px #00000024;height:370px;width:100%;position:relative;cursor:move}.add_add_route_box .route_form_area{display:flex;flex-wrap:wrap;justify-content:space-between}.add_add_route_box .route_form_area .col-6{width:48%;margin-top:15px;justify-content:space-between}.add_add_route_box .route_form_area .col-6 .inputbox{width:47%}.add_add_route_box .route_form_area .col-6 span{font-size:.875rem}.add_add_route_box .route_form_area button{background:#326ad3;padding:10px 18px;color:#fff;font-size:.8125rem;border-radius:30px;position:absolute;right:18px;top:20px}.closebtn{background:black;color:#fff;border-radius:30px;padding:10px 18px;margin-left:10px}.delbtn{background:red;color:#fff;border-radius:30px;padding:10px 18px}.add_route_listingpart .listing_toggle{background:white;border-radius:15px;padding:8px 10px;position:absolute;right:10px;top:30px;cursor:pointer}.listing_box{background:#282828;height:100vh;position:fixed;right:0;top:0;z-index:1111;box-shadow:-3px 0 5px #ffffff14;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;width:0;border-radius:40px 0 0 40px;opacity:0}.listing_box .closebtn{display:none}.show .listing_box{width:250px;max-width:250px;flex:0 0 250px;transition:.5s;-webkit-transition:.5s;-moz-transition:.5s;padding:40px 0 40px 20px;opacity:1}@media (min-width: 1600px){.show .listing_box{width:320px;max-width:320px;flex:0 0 320px}}.show .listing_box h2{color:#fff;white-space:nowrap}.show .listing_box ul{padding:0 20px 0 0}.show .listing_box ul li{background:#4a4a4a;padding:15px;border-radius:15px;display:flex;margin-bottom:15px}.show .listing_box ul li .companayIcon{width:40px;height:40px;border-radius:10px;background:white;margin-right:10px;display:flex;justify-content:center;align-items:center}.show .listing_box ul li .company_cont{width:calc(100% - 50px)}.show .listing_box ul li .company_cont h3{color:#fff;font-size:15px;font-weight:400;margin:0;text-overflow:ellipsis;max-width:129px;-webkit-box-orient:vertical;white-space:nowrap;overflow:hidden}@media (min-width: 1600px){.show .listing_box ul li .company_cont h3{max-width:170px}}.show .listing_box ul li .company_cont p{color:#bcbcbc;font-size:12px;margin:5px 0;overflow:hidden;text-overflow:ellipsis;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;line-height:16px}.show .closebtn{position:absolute;left:-33px;top:50px;background:#282828;color:#fff;padding:8px;border-top-left-radius:15px;border-bottom-left-radius:15px;cursor:pointer;box-shadow:-4px 2px 5px #ffffff14;display:block}.loader{position:absolute;width:95%;height:100%;display:flex;justify-content:center;align-items:center;pointer-events:none}.buttonprt{margin-right:83px}.destination .duration{padding:10px}.destination span{padding:5px 0}.closebtnroutedetail{box-shadow:0 0 5px #0000001c;border-radius:100%;width:30px;height:30px;display:flex;justify-content:center;align-items:center;cursor:pointer;background:#fff;position:absolute;top:-11px;left:-11px}.routenotes{max-height:170px;overflow:auto}\n"] }]
|
|
1199
|
+
}], ctorParameters: function () { return [{ type: i1.CoolmapService }, { type: i1.UtilsService }, { type: i1$1.MatDialog }]; }, propDecorators: { filterPickup: [{
|
|
1200
|
+
type: ViewChild,
|
|
1201
|
+
args: ['filterPickup']
|
|
1202
|
+
}], filterDelivery: [{
|
|
1203
|
+
type: ViewChild,
|
|
1204
|
+
args: ['filterDelivery']
|
|
1205
|
+
}], changeNav: [{
|
|
1206
|
+
type: Output
|
|
1207
|
+
}], updateRouteList: [{
|
|
1208
|
+
type: Output
|
|
1209
|
+
}], routeData: [{
|
|
1210
|
+
type: Input
|
|
1211
|
+
}] } });
|
|
1212
|
+
|
|
910
1213
|
class CoolmapModule {
|
|
911
1214
|
}
|
|
912
1215
|
CoolmapModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoolmapModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
@@ -923,7 +1226,8 @@ CoolmapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
923
1226
|
JobRouteListComponent,
|
|
924
1227
|
JobcodeStatusComponent,
|
|
925
1228
|
JobcodeOverviewComponent,
|
|
926
|
-
DialogComponent
|
|
1229
|
+
DialogComponent,
|
|
1230
|
+
AddRouteComponent], imports: [CommonModule,
|
|
927
1231
|
MatSnackBarModule,
|
|
928
1232
|
MatSidenavModule,
|
|
929
1233
|
DragDropModule,
|
|
@@ -956,7 +1260,8 @@ CoolmapModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version:
|
|
|
956
1260
|
JobRouteListComponent,
|
|
957
1261
|
JobcodeStatusComponent,
|
|
958
1262
|
JobcodeOverviewComponent,
|
|
959
|
-
DialogComponent
|
|
1263
|
+
DialogComponent,
|
|
1264
|
+
AddRouteComponent] });
|
|
960
1265
|
CoolmapModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "14.2.12", ngImport: i0, type: CoolmapModule, imports: [CommonModule,
|
|
961
1266
|
MatSnackBarModule,
|
|
962
1267
|
MatSidenavModule,
|
|
@@ -995,7 +1300,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
995
1300
|
JobRouteListComponent,
|
|
996
1301
|
JobcodeStatusComponent,
|
|
997
1302
|
JobcodeOverviewComponent,
|
|
998
|
-
DialogComponent
|
|
1303
|
+
DialogComponent,
|
|
1304
|
+
AddRouteComponent
|
|
999
1305
|
],
|
|
1000
1306
|
imports: [
|
|
1001
1307
|
CommonModule,
|
|
@@ -1034,10 +1340,13 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1034
1340
|
JobRouteListComponent,
|
|
1035
1341
|
JobcodeStatusComponent,
|
|
1036
1342
|
JobcodeOverviewComponent,
|
|
1037
|
-
DialogComponent
|
|
1343
|
+
DialogComponent,
|
|
1344
|
+
AddRouteComponent
|
|
1038
1345
|
],
|
|
1039
1346
|
entryComponents: [
|
|
1040
|
-
DialogComponent
|
|
1347
|
+
DialogComponent,
|
|
1348
|
+
JobCodeComponent,
|
|
1349
|
+
AddRouteComponent
|
|
1041
1350
|
],
|
|
1042
1351
|
providers: []
|
|
1043
1352
|
}]
|
|
@@ -1051,5 +1360,5 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "14.2.12", ngImpo
|
|
|
1051
1360
|
* Generated bundle index. Do not edit.
|
|
1052
1361
|
*/
|
|
1053
1362
|
|
|
1054
|
-
export { AddRouteNavComponent, CoolmapComponent, CoolmapModule, DialogComponent, JobCodeComponent, JobCodeListCardComponent, JobCodeNavComponent, JobRouteListComponent, JobcodeOverviewComponent, JobcodeStatusComponent, MapComponent, NavComponent, RouteJobCodeListComponent, SmsCardDetailsOverviewComponent, ViewRouteListCardComponent };
|
|
1363
|
+
export { AddRouteComponent, AddRouteNavComponent, CoolmapComponent, CoolmapModule, DialogComponent, JobCodeComponent, JobCodeListCardComponent, JobCodeNavComponent, JobRouteListComponent, JobcodeOverviewComponent, JobcodeStatusComponent, MapComponent, NavComponent, RouteJobCodeListComponent, SmsCardDetailsOverviewComponent, ViewRouteListCardComponent };
|
|
1055
1364
|
//# sourceMappingURL=aggdirect-coolmap.mjs.map
|