gunsmith-common 2.3.2 → 2.3.4

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 (45) hide show
  1. package/esm2020/shared/controls/package-selector/package-selector.component.mjs +3 -3
  2. package/esm2020/shared/services/base.service.mjs +9 -5
  3. package/esm2020/shared/services/coating.service.mjs +1 -41
  4. package/esm2020/shared/services/finish-date-helper.service.mjs +71 -0
  5. package/esm2020/shared/services/firearm.service.mjs +11 -31
  6. package/esm2020/shared/services/gun-part.service.mjs +20 -26
  7. package/esm2020/shared/services/index.mjs +2 -2
  8. package/esm2020/shared/services/inventory.service.mjs +9 -22
  9. package/esm2020/shared/services/optic.service.mjs +6 -23
  10. package/esm2020/shared/types/configuration.mjs +1 -1
  11. package/esm2020/shared/types/firearm-optic.mjs +2 -1
  12. package/esm2020/shared/types/firearm.mjs +1 -1
  13. package/esm2020/shared/types/index.mjs +1 -3
  14. package/esm2020/shared/types/milling-item.mjs +1 -1
  15. package/esm2020/shared/types/work-order.mjs +3 -1
  16. package/esm2020/shared/utils/index.mjs +1 -2
  17. package/fesm2015/gunsmith-common.mjs +152 -270
  18. package/fesm2015/gunsmith-common.mjs.map +1 -1
  19. package/fesm2020/gunsmith-common.mjs +149 -268
  20. package/fesm2020/gunsmith-common.mjs.map +1 -1
  21. package/gunsmith-common-2.3.4.tgz +0 -0
  22. package/package.json +1 -1
  23. package/shared/services/coating.service.d.ts +1 -8
  24. package/shared/services/finish-date-helper.service.d.ts +16 -0
  25. package/shared/services/firearm.service.d.ts +5 -11
  26. package/shared/services/gun-part.service.d.ts +8 -10
  27. package/shared/services/index.d.ts +1 -1
  28. package/shared/services/inventory.service.d.ts +4 -8
  29. package/shared/services/optic.service.d.ts +3 -8
  30. package/shared/types/configuration.d.ts +1 -0
  31. package/shared/types/firearm-optic.d.ts +1 -0
  32. package/shared/types/firearm.d.ts +0 -2
  33. package/shared/types/index.d.ts +0 -2
  34. package/shared/types/milling-item.d.ts +5 -2
  35. package/shared/types/work-order.d.ts +4 -0
  36. package/shared/utils/index.d.ts +0 -1
  37. package/esm2020/shared/services/firearm-series.service.mjs +0 -45
  38. package/esm2020/shared/types/firearm-series-optic.mjs +0 -9
  39. package/esm2020/shared/types/firearm-series.mjs +0 -10
  40. package/esm2020/shared/utils/finish-date-calculator.mjs +0 -30
  41. package/gunsmith-common-2.3.2.tgz +0 -0
  42. package/shared/services/firearm-series.service.d.ts +0 -18
  43. package/shared/types/firearm-series-optic.d.ts +0 -11
  44. package/shared/types/firearm-series.d.ts +0 -11
  45. package/shared/utils/finish-date-calculator.d.ts +0 -2
@@ -1,9 +1,10 @@
1
- import { DateTime } from 'luxon';
2
1
  import * as i0 from '@angular/core';
3
2
  import { Injectable, Inject, Pipe, Directive, Input, Component, EventEmitter, Output, NgModule } from '@angular/core';
4
3
  import * as i1 from '@angular/common/http';
5
- import { of, switchMap as switchMap$1, Subject } from 'rxjs';
4
+ import { of, switchMap as switchMap$1, lastValueFrom, forkJoin, Subject } from 'rxjs';
6
5
  import { switchMap } from 'rxjs/operators';
6
+ import { __awaiter } from 'tslib';
7
+ import { DateTime } from 'luxon';
7
8
  import * as i2 from '@angular/forms';
8
9
  import { NgControl, Validators, NG_VALUE_ACCESSOR, NG_VALIDATORS, FormsModule, ReactiveFormsModule } from '@angular/forms';
9
10
  import * as i3 from '@progress/kendo-angular-dropdowns';
@@ -221,6 +222,8 @@ class WorkOrder {
221
222
  this.logo = false;
222
223
  this.milling = false;
223
224
  this.specialOrder = false;
225
+ this.slideAddons = [];
226
+ this.sights = [];
224
227
  this.projectType = ProjectType.Firearm;
225
228
  this.status = WorkOrderStatus.InShop;
226
229
  this.histories = [];
@@ -313,25 +316,6 @@ var RearSightPosition;
313
316
  RearSightPosition[RearSightPosition["Behind"] = 1] = "Behind";
314
317
  })(RearSightPosition || (RearSightPosition = {}));
315
318
 
316
- class FirearmSeries {
317
- constructor() {
318
- this.active = true;
319
- this.blackFrontSights = false;
320
- this.tritiumFrontSights = false;
321
- this.fiberOpticFrontSights = false;
322
- this.firearmSeriesOptics = [];
323
- }
324
- }
325
-
326
- class FirearmSeriesOptic {
327
- constructor() {
328
- this.rearFrontSightBlack = false;
329
- this.rearFrontSightTritium = false;
330
- this.rearBehindSightBlack = false;
331
- this.rearBehindSightTritium = false;
332
- }
333
- }
334
-
335
319
  var FrameMaterial;
336
320
  (function (FrameMaterial) {
337
321
  FrameMaterial[FrameMaterial["All"] = 0] = "All";
@@ -524,6 +508,7 @@ class FirearmOptic {
524
508
  this.rearSights = [];
525
509
  this.keepDovetail = false;
526
510
  this.removeDovetail = false;
511
+ this.active = true;
527
512
  }
528
513
  }
529
514
 
@@ -537,34 +522,6 @@ class SlideAddon {
537
522
  }
538
523
  }
539
524
 
540
- function adjustHoliday(finishDate, holidays) {
541
- while (holidays.map(h => new Date(h.holiday)).findIndex(h => DateTime.fromJSDate(h) === DateTime.fromJSDate(finishDate)) !== -1) {
542
- do {
543
- finishDate = DateTime.fromJSDate(finishDate).plus({ days: 1 }).toJSDate();
544
- } while (finishDate.getDay() === 0 || finishDate.getDay() === 6);
545
- }
546
- return finishDate;
547
- }
548
- function calculateFinishDate(receivedDate, workOrderType, configs, holidays) {
549
- if (!receivedDate) {
550
- return null;
551
- }
552
- let finishDate = DateTime.fromJSDate(receivedDate).startOf("day");
553
- if (workOrderType === WorkOrderType.Warranty) {
554
- finishDate = finishDate.plus({ weeks: configs.warrantyWeeks });
555
- }
556
- else if (workOrderType === WorkOrderType.Expedited) {
557
- finishDate = finishDate.plus({ weeks: configs.expeditedWeeks });
558
- }
559
- else if (workOrderType === WorkOrderType.NewInBox) {
560
- finishDate = finishDate.plus({ weeks: configs.newInBoxWeeks });
561
- }
562
- else {
563
- finishDate = finishDate.plus({ weeks: configs.standardWeeks });
564
- }
565
- return adjustHoliday(finishDate.toJSDate(), holidays);
566
- }
567
-
568
525
  class CustomerService {
569
526
  constructor(http, env) {
570
527
  this.http = http;
@@ -610,102 +567,120 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
610
567
  }] }];
611
568
  } });
612
569
 
613
- class FirearmService {
614
- constructor(http, env) {
570
+ class BaseService {
571
+ constructor(http) {
615
572
  this.http = http;
616
- this.env = env;
617
- this.url = this.env.baseUrl + 'api/firearms';
618
573
  }
619
- readFirearms(includeInactive = false) {
620
- return this.http.get(this.url, {
621
- params: {
622
- includeInactive: includeInactive.toString()
574
+ getUrl(...params) {
575
+ let baseUrl = this.urlSegments[0];
576
+ for (let i = 0; i < params.length; i++) {
577
+ baseUrl += `/${params[i]}`;
578
+ if (this.urlSegments.length > i + 1) {
579
+ baseUrl += `/${this.urlSegments[i + 1]}`;
623
580
  }
624
- });
581
+ }
582
+ return baseUrl;
583
+ }
584
+ getAll(...params) {
585
+ return this.http.get(this.getUrl(...params));
625
586
  }
626
- readFirearm(firearmId) {
627
- return this.http.get(`${this.url}/${firearmId}`);
587
+ getAllWithParams(queryParams, ...params) {
588
+ return this.http
589
+ .get(this.getUrl(...params), { params: queryParams });
628
590
  }
629
- createFirearm(firearm) {
630
- return this.http.post(this.url, firearm);
591
+ get(...params) {
592
+ return this.http.get(this.getUrl(...params));
631
593
  }
632
- updateFirearm(firearmId, firearm) {
633
- return this.http.put(`${this.url}/${firearmId}`, firearm);
594
+ create(item, ...params) {
595
+ return this.http
596
+ .post(this.getUrl(...params), item);
634
597
  }
635
- deleteFirearm(firearmId) {
636
- return this.http.delete(`${this.url}/${firearmId}`);
598
+ update(item, ...params) {
599
+ return this.http
600
+ .put(this.getUrl(...params), item);
637
601
  }
638
- readFirearmSeries(firearmId) {
639
- return this.http.get(`${this.url}/${firearmId}/series`);
602
+ delete(...params) {
603
+ return this.http
604
+ .delete(this.getUrl(...params));
605
+ }
606
+ }
607
+ BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
608
+ BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, providedIn: 'root' });
609
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, decorators: [{
610
+ type: Injectable,
611
+ args: [{
612
+ providedIn: 'root'
613
+ }]
614
+ }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
615
+
616
+ class FirearmService extends BaseService {
617
+ constructor(http, env) {
618
+ super(http);
619
+ this.http = http;
620
+ this.env = env;
621
+ this.urlSegments = [`${this.env.baseUrl}api/firearms`];
640
622
  }
641
623
  readFirearmMaterial(firearmId) {
642
- return this.http.get(`${this.url}/${firearmId}/material`);
624
+ return this.http.get(`${this.getUrl(firearmId)}/material`);
643
625
  }
644
626
  readFirearmCosmetics(firearmId) {
645
- return this.http.get(`${this.url}/${firearmId}/cosmetics`);
627
+ return this.http.get(`${this.getUrl(firearmId)}/cosmetics`);
646
628
  }
647
629
  }
648
- FirearmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
649
- FirearmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmService, providedIn: 'root' });
630
+ FirearmService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmService, deps: [{ token: i1.HttpClient }, { token: "env" }], target: i0.ɵɵFactoryTarget.Injectable });
631
+ FirearmService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmService, providedIn: "root" });
650
632
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmService, decorators: [{
651
633
  type: Injectable,
652
634
  args: [{
653
- providedIn: 'root'
635
+ providedIn: "root",
654
636
  }]
655
637
  }], ctorParameters: function () {
656
638
  return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
657
639
  type: Inject,
658
- args: ['env']
640
+ args: ["env"]
659
641
  }] }];
660
642
  } });
661
643
 
662
- class GunPartService {
644
+ class GunPartService extends BaseService {
663
645
  constructor(http, env) {
646
+ super(http);
664
647
  this.http = http;
665
648
  this.env = env;
666
- this.url = this.env.baseUrl + 'api/gun-parts';
649
+ this.urlSegments = [`${this.env.baseUrl}api/gun-parts`];
667
650
  }
668
- readGunParts(includeInactive = false, gunsmith = null, customer = null) {
651
+ getParams(includeInactive, gunsmith, customer) {
669
652
  const params = {
670
- includeInactive: includeInactive.toString()
653
+ includeInactive: includeInactive.toString(),
671
654
  };
672
655
  if (gunsmith !== null) {
673
- params['gunsmith'] = gunsmith.toString();
656
+ params["gunsmith"] = gunsmith.toString();
674
657
  }
675
658
  if (customer !== null) {
676
- params['customer'] = customer.toString();
659
+ params["customer"] = customer.toString();
677
660
  }
678
- return this.http.get(this.url, {
679
- params: params
680
- });
681
- }
682
- readGunPart(id) {
683
- return this.http.get(`${this.url}/${id}`);
684
- }
685
- createGunPart(gunPart) {
686
- return this.http.post(this.url, gunPart);
661
+ return params;
687
662
  }
688
- updateGunPart(id, gunPart) {
689
- return this.http.put(`${this.url}/${id}`, gunPart);
663
+ getAllCustomer() {
664
+ return this.getAllWithParams(this.getParams(false, null, true));
690
665
  }
691
- deleteGunPart(id) {
692
- return this.http.delete(`${this.url}/${id}`);
666
+ getAllGunsmith() {
667
+ return this.getAllWithParams(this.getParams(false, true, null));
693
668
  }
694
- readPartCoatings(id) {
695
- return this.http.get(`${this.url}/${id}/coatings`);
669
+ getPartCoatings(id) {
670
+ return this.http.get(`${this.getUrl(id)}/coatings`);
696
671
  }
697
672
  }
698
- GunPartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GunPartService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
699
- GunPartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GunPartService, providedIn: 'root' });
673
+ GunPartService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GunPartService, deps: [{ token: i1.HttpClient }, { token: "env" }], target: i0.ɵɵFactoryTarget.Injectable });
674
+ GunPartService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GunPartService, providedIn: "root" });
700
675
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: GunPartService, decorators: [{
701
676
  type: Injectable,
702
677
  args: [{
703
- providedIn: 'root'
678
+ providedIn: "root",
704
679
  }]
705
680
  }], ctorParameters: function () {
706
681
  return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
707
682
  type: Inject,
708
- args: ['env']
683
+ args: ["env"]
709
684
  }] }];
710
685
  } });
711
686
 
@@ -1276,33 +1251,15 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1276
1251
  }] }];
1277
1252
  } });
1278
1253
 
1279
- class OpticService {
1254
+ class OpticService extends BaseService {
1280
1255
  constructor(http, env) {
1256
+ super(http);
1281
1257
  this.http = http;
1282
1258
  this.env = env;
1283
- this.url = this.env.baseUrl + 'api/optics';
1284
- }
1285
- readOptics(includeInactive = false) {
1286
- return this.http.get(this.url, {
1287
- params: {
1288
- includeInactive: includeInactive.toString()
1289
- }
1290
- });
1291
- }
1292
- readOptic(opticId) {
1293
- return this.http.get(`${this.url}/${opticId}`);
1294
- }
1295
- createOptic(optic) {
1296
- return this.http.post(this.url, optic);
1297
- }
1298
- updateOptic(opticId, optic) {
1299
- return this.http.put(`${this.url}/${opticId}`, optic);
1300
- }
1301
- deleteOptic(opticId) {
1302
- return this.http.delete(`${this.url}/${opticId}`);
1259
+ this.urlSegments = [`${this.env.baseUrl}api/optics`];
1303
1260
  }
1304
1261
  readOpticReport() {
1305
- return this.http.get(`${this.url}/report`);
1262
+ return this.http.get(`${this.getUrl()}/report`);
1306
1263
  }
1307
1264
  }
1308
1265
  OpticService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: OpticService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
@@ -1346,91 +1303,6 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1346
1303
  }] }];
1347
1304
  } });
1348
1305
 
1349
- class FirearmSeriesService {
1350
- constructor(http, env) {
1351
- this.http = http;
1352
- this.env = env;
1353
- this.url = this.env.baseUrl + 'api/firearm-serieses';
1354
- }
1355
- readSerieses(includeInactive = false) {
1356
- return this.http.get(this.url, {
1357
- params: {
1358
- includeInactive: includeInactive.toString()
1359
- }
1360
- });
1361
- }
1362
- readSeries(firearmSeriesId) {
1363
- return this.http.get(`${this.url}/${firearmSeriesId}`);
1364
- }
1365
- createSeries(firearmSeries) {
1366
- return this.http.post(this.url, firearmSeries);
1367
- }
1368
- updateSeries(firearmSeriesId, firearmSeries) {
1369
- return this.http.put(`${this.url}/${firearmSeriesId}`, firearmSeries);
1370
- }
1371
- deleteSeries(firearmSeriesId) {
1372
- return this.http.delete(`${this.url}/${firearmSeriesId}`);
1373
- }
1374
- readSeriesOptics(firearmSeriesId) {
1375
- return this.http.get(`${this.url}/${firearmSeriesId}/optics`);
1376
- }
1377
- }
1378
- FirearmSeriesService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmSeriesService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
1379
- FirearmSeriesService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmSeriesService, providedIn: 'root' });
1380
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FirearmSeriesService, decorators: [{
1381
- type: Injectable,
1382
- args: [{
1383
- providedIn: 'root'
1384
- }]
1385
- }], ctorParameters: function () {
1386
- return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1387
- type: Inject,
1388
- args: ['env']
1389
- }] }];
1390
- } });
1391
-
1392
- class BaseService {
1393
- constructor(http) {
1394
- this.http = http;
1395
- }
1396
- getUrl(...params) {
1397
- let baseUrl = this.urlSegments[0];
1398
- for (let i = 0; i < params.length; i++) {
1399
- baseUrl += `/${params[i]}`;
1400
- if (this.urlSegments.length > i + 1) {
1401
- baseUrl += `/${this.urlSegments[i + 1]}`;
1402
- }
1403
- }
1404
- return baseUrl;
1405
- }
1406
- getAll(...params) {
1407
- return this.http.get(this.getUrl(...params));
1408
- }
1409
- getAllWithParams(queryParams, ...params) {
1410
- return this.http.get(this.getUrl(...params), { params: queryParams });
1411
- }
1412
- get(...params) {
1413
- return this.http.get(this.getUrl(...params));
1414
- }
1415
- create(item, ...params) {
1416
- return this.http.post(this.getUrl(...params), item);
1417
- }
1418
- update(item, ...params) {
1419
- return this.http.put(this.getUrl(...params), item);
1420
- }
1421
- delete(...params) {
1422
- return this.http.delete(this.getUrl(...params));
1423
- }
1424
- }
1425
- BaseService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
1426
- BaseService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, providedIn: 'root' });
1427
- i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: BaseService, decorators: [{
1428
- type: Injectable,
1429
- args: [{
1430
- providedIn: 'root'
1431
- }]
1432
- }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
1433
-
1434
1306
  class MillingTypeService extends BaseService {
1435
1307
  constructor(http, env) {
1436
1308
  super(http);
@@ -1460,46 +1332,6 @@ class CoatingService extends BaseService {
1460
1332
  this.env = env;
1461
1333
  this.urlSegments = [`${this.env.baseUrl}api/coatings`];
1462
1334
  }
1463
- // readCoatings(includeInactive = false): Observable<Coating[]> {
1464
- // const params = {
1465
- // includeInactive: includeInactive.toString(),
1466
- // };
1467
- // return this.http.get<Coating[]>(this.url, {
1468
- // params: params,
1469
- // });
1470
- // }
1471
- // readCoating(id: number): Observable<Coating> {
1472
- // return this.http.get<Coating>(`${this.url}/${id}`);
1473
- // }
1474
- // createCoating(coating: Coating): Observable<Coating> {
1475
- // return this.http.post<Coating>(this.url, coating);
1476
- // }
1477
- // updateCoating(id: number, coating: Coating): Observable<Coating> {
1478
- // return this.http.put<Coating>(`${this.url}/${id}`, coating);
1479
- // }
1480
- // deleteCoating(id: number): Observable<any> {
1481
- // return this.http.delete(`${this.url}/${id}`);
1482
- // }
1483
- // Coating Values
1484
- readCoatingValues(coatingId, includeInactive = false) {
1485
- return this.http.get(`${this.url}/${coatingId}/coating-values`, {
1486
- params: {
1487
- includeInactive: includeInactive.toString(),
1488
- },
1489
- });
1490
- }
1491
- readCoatingValue(coatingId, coatingValueId) {
1492
- return this.http.get(`${this.url}/${coatingId}/coating-values/${coatingValueId}`);
1493
- }
1494
- createCoatingValue(coatingId, coatingValue) {
1495
- return this.http.post(`${this.url}/${coatingId}/coating-values`, coatingValue);
1496
- }
1497
- updateCoatingValue(coatingId, coatingValueId, coatingValue) {
1498
- return this.http.put(`${this.url}/${coatingId}/coating-values/${coatingValueId}`, coatingValue);
1499
- }
1500
- deleteCoatingValue(coatingId, coatingValueId) {
1501
- return this.http.delete(`${this.url}/${coatingId}/coating-values/${coatingValueId}`);
1502
- }
1503
1335
  }
1504
1336
  CoatingService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CoatingService, deps: [{ token: i1.HttpClient }, { token: "env" }], target: i0.ɵɵFactoryTarget.Injectable });
1505
1337
  CoatingService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: CoatingService, providedIn: "root" });
@@ -1688,39 +1520,25 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
1688
1520
  }] }];
1689
1521
  } });
1690
1522
 
1691
- class InventoryService {
1523
+ class InventoryService extends BaseService {
1692
1524
  constructor(http, env) {
1525
+ super(http);
1693
1526
  this.http = http;
1694
1527
  this.env = env;
1695
- this.url = this.env.baseUrl + 'api/inventory-items';
1696
- }
1697
- readInventoryItems(includeInactive = false, search = null) {
1698
- const params = {
1699
- includeInactive: includeInactive.toString()
1700
- };
1701
- if (search !== null) {
1702
- params['search'] = search;
1703
- }
1704
- return this.http.get(this.url, { params: params });
1705
- }
1706
- updateInventoryItem(id, item) {
1707
- return this.http.put(`${this.url}/${id}`, item);
1708
- }
1709
- createInventoryItem(item) {
1710
- return this.http.post(this.url, item);
1528
+ this.urlSegments = [`${this.env.baseUrl}api/inventory-items`];
1711
1529
  }
1712
1530
  }
1713
- InventoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, deps: [{ token: i1.HttpClient }, { token: 'env' }], target: i0.ɵɵFactoryTarget.Injectable });
1714
- InventoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, providedIn: 'root' });
1531
+ InventoryService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, deps: [{ token: i1.HttpClient }, { token: "env" }], target: i0.ɵɵFactoryTarget.Injectable });
1532
+ InventoryService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, providedIn: "root" });
1715
1533
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: InventoryService, decorators: [{
1716
1534
  type: Injectable,
1717
1535
  args: [{
1718
- providedIn: 'root'
1536
+ providedIn: "root",
1719
1537
  }]
1720
1538
  }], ctorParameters: function () {
1721
1539
  return [{ type: i1.HttpClient }, { type: undefined, decorators: [{
1722
1540
  type: Inject,
1723
- args: ['env']
1541
+ args: ["env"]
1724
1542
  }] }];
1725
1543
  } });
1726
1544
 
@@ -2154,6 +1972,70 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2154
1972
  }] }];
2155
1973
  } });
2156
1974
 
1975
+ class FinishDateHelperService {
1976
+ constructor(configService, holidayService) {
1977
+ this.configService = configService;
1978
+ this.holidayService = holidayService;
1979
+ this.holidays = [];
1980
+ }
1981
+ adjustHoliday(finishDate) {
1982
+ while (this.holidays
1983
+ .map((h) => new Date(h.holiday))
1984
+ .findIndex((h) => h === finishDate) !== -1) {
1985
+ do {
1986
+ finishDate = DateTime.fromJSDate(finishDate)
1987
+ .plus({ days: 1 })
1988
+ .toJSDate();
1989
+ } while (finishDate.getDay() === 0 || finishDate.getDay() === 6);
1990
+ }
1991
+ return finishDate;
1992
+ }
1993
+ calculateFinishDate(receivedDate, workOrderType) {
1994
+ let finishDate = DateTime.fromJSDate(receivedDate).startOf("day");
1995
+ if (workOrderType === WorkOrderType.Warranty) {
1996
+ finishDate = finishDate.plus({ weeks: this.configs.warrantyWeeks });
1997
+ }
1998
+ else if (workOrderType === WorkOrderType.Expedited) {
1999
+ finishDate = finishDate.plus({ weeks: this.configs.expeditedWeeks });
2000
+ }
2001
+ else if (workOrderType === WorkOrderType.NewInBox) {
2002
+ finishDate = finishDate.plus({ weeks: this.configs.newInBoxWeeks });
2003
+ }
2004
+ else {
2005
+ finishDate = finishDate.plus({ weeks: this.configs.standardWeeks });
2006
+ }
2007
+ return this.adjustHoliday(finishDate.toJSDate());
2008
+ }
2009
+ calculate(receivedDate, workOrderType) {
2010
+ return __awaiter(this, void 0, void 0, function* () {
2011
+ if (!receivedDate) {
2012
+ return null;
2013
+ }
2014
+ if (!this.configs) {
2015
+ return yield lastValueFrom(forkJoin([
2016
+ this.configService.readConfigs(),
2017
+ this.holidayService.readHolidays(),
2018
+ ]).pipe(switchMap$1(([configs, holidays]) => {
2019
+ this.configs = configs;
2020
+ this.holidays = holidays;
2021
+ return of(this.calculateFinishDate(receivedDate, workOrderType));
2022
+ })));
2023
+ }
2024
+ return yield new Promise((resolve) => {
2025
+ resolve(this.calculateFinishDate(receivedDate, workOrderType));
2026
+ });
2027
+ });
2028
+ }
2029
+ }
2030
+ FinishDateHelperService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinishDateHelperService, deps: [{ token: ConfigurationService }, { token: WorkHolidayService }], target: i0.ɵɵFactoryTarget.Injectable });
2031
+ FinishDateHelperService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinishDateHelperService, providedIn: "root" });
2032
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: FinishDateHelperService, decorators: [{
2033
+ type: Injectable,
2034
+ args: [{
2035
+ providedIn: "root",
2036
+ }]
2037
+ }], ctorParameters: function () { return [{ type: ConfigurationService }, { type: WorkHolidayService }]; } });
2038
+
2157
2039
  class PhonePipe {
2158
2040
  transform(value, args) {
2159
2041
  if (value && value.length >= 10) {
@@ -2457,7 +2339,7 @@ PackageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0
2457
2339
  multi: true,
2458
2340
  useExisting: PackageSelectorComponent
2459
2341
  }
2460
- ], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"packageForm\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package\">Package - <span class=\"fst-italic fs-7\">Select a model to list available packages</span></label>\n <kendo-dropdownlist [data]=\"packages\"\n [defaultItem]=\"{name: 'No Package', id: null}\"\n id=\"waitlist-gun-package\"\n formControlName=\"package\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\"></kendo-dropdownlist>\n </div>\n </div>\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n [defaultItem]=\"{optionName: '', id: null}\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"!packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n </div>\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\n <div *ngIf=\"variationControl.errors.required\">\n {{packageVariations[i]?.name}} is required.\n </div>\n </div>\n </div>\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\n [data]=\"packageOptionalItems\"\n formControlName=\"optionalItems\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\">\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.name }}\n </ng-template>\n </kendo-multiselect>\n </div>\n </div>\n</div>\n", styles: [""], components: [{ type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i3.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }] });
2342
+ ], usesOnChanges: true, ngImport: i0, template: "<div [formGroup]=\"packageForm\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package\">Package</label>\n <kendo-dropdownlist [data]=\"packages\"\n [defaultItem]=\"{name: 'No Package', id: null}\"\n id=\"waitlist-gun-package\"\n formControlName=\"package\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\"></kendo-dropdownlist>\n </div>\n </div>\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n [defaultItem]=\"{optionName: '', id: null}\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"!packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n </div>\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\n <div *ngIf=\"variationControl.errors.required\">\n {{packageVariations[i]?.name}} is required.\n </div>\n </div>\n </div>\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\n [data]=\"packageOptionalItems\"\n formControlName=\"optionalItems\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\">\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.name }}\n </ng-template>\n </kendo-multiselect>\n </div>\n </div>\n</div>\n", styles: [""], components: [{ type: i3.DropDownListComponent, selector: "kendo-dropdownlist", inputs: ["iconClass", "loading", "data", "value", "textField", "valueField", "popupSettings", "listHeight", "defaultItem", "disabled", "itemDisabled", "readonly", "filterable", "virtual", "ignoreCase", "delay", "valuePrimitive", "tabindex", "tabIndex", "size", "rounded", "fillMode", "id"], outputs: ["valueChange", "filterChange", "selectionChange", "open", "opened", "close", "closed", "focus", "blur"], exportAs: ["kendoDropDownList"] }, { type: i3.MultiSelectComponent, selector: "kendo-multiselect", inputs: ["focusableId", "autoClose", "loading", "data", "value", "valueField", "textField", "tabindex", "tabIndex", "size", "rounded", "fillMode", "placeholder", "disabled", "itemDisabled", "checkboxes", "readonly", "filterable", "virtual", "popupSettings", "listHeight", "valuePrimitive", "clearButton", "tagMapper", "allowCustom", "valueNormalizer"], outputs: ["filterChange", "valueChange", "open", "opened", "close", "closed", "focus", "blur", "removeTag"], exportAs: ["kendoMultiSelect"] }], directives: [{ type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2.FormControlDirective, selector: "[formControl]", inputs: ["formControl", "disabled", "ngModel"], outputs: ["ngModelChange"], exportAs: ["ngForm"] }, { type: i3.ItemTemplateDirective, selector: "[kendoDropDownListItemTemplate],[kendoComboBoxItemTemplate],[kendoAutoCompleteItemTemplate],[kendoMultiSelectItemTemplate]" }] });
2461
2343
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, decorators: [{
2462
2344
  type: Component,
2463
2345
  args: [{ selector: 'cgw-package-selector', providers: [
@@ -2471,7 +2353,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImpo
2471
2353
  multi: true,
2472
2354
  useExisting: PackageSelectorComponent
2473
2355
  }
2474
- ], template: "<div [formGroup]=\"packageForm\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package\">Package - <span class=\"fst-italic fs-7\">Select a model to list available packages</span></label>\n <kendo-dropdownlist [data]=\"packages\"\n [defaultItem]=\"{name: 'No Package', id: null}\"\n id=\"waitlist-gun-package\"\n formControlName=\"package\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\"></kendo-dropdownlist>\n </div>\n </div>\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n [defaultItem]=\"{optionName: '', id: null}\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"!packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n </div>\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\n <div *ngIf=\"variationControl.errors.required\">\n {{packageVariations[i]?.name}} is required.\n </div>\n </div>\n </div>\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\n [data]=\"packageOptionalItems\"\n formControlName=\"optionalItems\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\">\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.name }}\n </ng-template>\n </kendo-multiselect>\n </div>\n </div>\n</div>\n", styles: [""] }]
2356
+ ], template: "<div [formGroup]=\"packageForm\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package\">Package</label>\n <kendo-dropdownlist [data]=\"packages\"\n [defaultItem]=\"{name: 'No Package', id: null}\"\n id=\"waitlist-gun-package\"\n formControlName=\"package\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\"></kendo-dropdownlist>\n </div>\n </div>\n <div formArrayName=\"variations\" *ngFor=\"let variationControl of variations.controls; let i = index\">\n <div class=\"row mb-2\">\n <div class=\"col\">\n <label [for]=\"'waitlist-gun-package-variation-' + i\">{{packageVariations[i]?.name}}</label>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n [defaultItem]=\"{optionName: '', id: null}\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n <kendo-dropdownlist [data]=\"packageVariations[i]?.options\"\n [id]=\"'waitlist-gun-package-variation-' + i\"\n textField=\"optionName\"\n [formControl]=\"variationControl\"\n valueField=\"id\"\n size=\"small\" *ngIf=\"!packageVariations[i]?.gunsmithOnly\">\n <ng-template kendoDropDownListItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.optionName }} <span *ngIf=\"dataItem?.serviceChargeItemPrice\">(add ${{dataItem.serviceChargeItemPrice.toFixed(2)}})</span>\n </ng-template>\n </kendo-dropdownlist>\n </div>\n </div>\n <div *ngIf=\"variationControl.invalid && (variationControl.dirty || variationControl.touched)\" class=\"error-container text-danger\">\n <div *ngIf=\"variationControl.errors.required\">\n {{packageVariations[i]?.name}} is required.\n </div>\n </div>\n </div>\n <div class=\"row mb-2\" *ngIf=\"packageOptionalItems?.length\">\n <div class=\"col\">\n <label for=\"waitlist-gun-package-addons\">Add-ons (Additional charges will apply)</label>\n <kendo-multiselect id=\"waitlist-gun-package-addons\"\n [data]=\"packageOptionalItems\"\n formControlName=\"optionalItems\"\n textField=\"name\"\n valueField=\"id\"\n size=\"small\">\n <ng-template kendoMultiSelectItemTemplate let-dataItem>\n <span class=\"fw-bold\">{{ dataItem?.sku }}</span> - {{ dataItem?.name }}\n </ng-template>\n </kendo-multiselect>\n </div>\n </div>\n</div>\n", styles: [""] }]
2475
2357
  }], ctorParameters: function () { return [{ type: PackageService }, { type: i2.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { firearmId: [{
2476
2358
  type: Input
2477
2359
  }], projectType: [{
@@ -2667,5 +2549,5 @@ var NotificationType;
2667
2549
  * Generated bundle index. Do not edit.
2668
2550
  */
2669
2551
 
2670
- export { BaseService, BundleItem, ChangeOrderPackageDetail, ChangeOrderStatus, Coating, CoatingService, CoatingValue, CoatingValueService, Configuration, ConfigurationService, Customer, CustomerService, Dealer, DealerContact, DealerCoupon, DealerService, DisableControlDirective, EnumPipe, FileNamePipe, FileUploadService, FilterOptions, Firearm, FirearmOptic, FirearmOpticService, FirearmSeries, FirearmSeriesOptic, FirearmSeriesService, FirearmService, FirearmSightService, FormErrorMessageComponent, FrameMaterial, FrameMaterialPipe, GunCaliber, GunPart, GunPartOption, GunPartService, InventoryItem, InventoryService, JFile, Material, MaterialService, MillingDetail, MillingItem, MillingType, MillingTypeService, ModalHeaderComponent, MountType, MountTypeService, NewLinePipe, NotificationBarComponent, NotificationModule, NotificationService, NotificationType, Optic, OpticService, OpticSight, OpticStatus, Package, PackageItem, PackageOptionalItem, PackageOptionalItemService, PackageSelectorComponent, PackageService, PackageTotal, PackageVariation, PackageVariationOption, PackageVariationService, PhonePipe, Product, ProductService, ProjectType, PurchaseOrder, PurchaseOrderRefinishItem, PurchaseOrderService, PurchaseOrderStatus, QuickbooksService, RearSightPosition, RefinishCode, RefinishCodeService, RefinishDetail, ReportMillingItem, ReportRefinishItem, SharedModule, ShieldRMSOptions, Sight, SightMaterialService, SightMaterialType, SightService, SightType, SightTypeEnum, SightTypeService, SlideAddon, SlideAddonService, State, StateService, StatusHistoryService, Total, TotalItem, TotalsService, UserService, Vendor, VendorContact, VendorService, WaitlistAction, WaitlistCustomerService, WaitlistGun, WaitlistGunPackageDetail, WaitlistHistory, WaitlistItem, WaitlistProjectService, WaitlistService, WaitlistStatus, WorkChangeOrder, WorkHoliday, WorkHolidayService, WorkOrder, WorkOrderAction, WorkOrderDiscount, WorkOrderDiscountService, WorkOrderHistory, WorkOrderInventoryItem, WorkOrderListItem, WorkOrderNonInventoryItem, WorkOrderNonInventoryItemService, WorkOrderPackageDetail, WorkOrderRefinishItem, WorkOrderService, WorkOrderShippingItem, WorkOrderShippingItemService, WorkOrderStatus, WorkOrderType, calculateFinishDate, coatingDescriptionValidator, coatingValueValidator, convertEnumToObjectArray, getCoatingValues, getCoatings, hasCoatingDescription, hasCoatingValues, refinishDetailsValidator, touchControls };
2552
+ export { BaseService, BundleItem, ChangeOrderPackageDetail, ChangeOrderStatus, Coating, CoatingService, CoatingValue, CoatingValueService, Configuration, ConfigurationService, Customer, CustomerService, Dealer, DealerContact, DealerCoupon, DealerService, DisableControlDirective, EnumPipe, FileNamePipe, FileUploadService, FilterOptions, FinishDateHelperService, Firearm, FirearmOptic, FirearmOpticService, FirearmService, FirearmSightService, FormErrorMessageComponent, FrameMaterial, FrameMaterialPipe, GunCaliber, GunPart, GunPartOption, GunPartService, InventoryItem, InventoryService, JFile, Material, MaterialService, MillingDetail, MillingItem, MillingType, MillingTypeService, ModalHeaderComponent, MountType, MountTypeService, NewLinePipe, NotificationBarComponent, NotificationModule, NotificationService, NotificationType, Optic, OpticService, OpticSight, OpticStatus, Package, PackageItem, PackageOptionalItem, PackageOptionalItemService, PackageSelectorComponent, PackageService, PackageTotal, PackageVariation, PackageVariationOption, PackageVariationService, PhonePipe, Product, ProductService, ProjectType, PurchaseOrder, PurchaseOrderRefinishItem, PurchaseOrderService, PurchaseOrderStatus, QuickbooksService, RearSightPosition, RefinishCode, RefinishCodeService, RefinishDetail, ReportMillingItem, ReportRefinishItem, SharedModule, ShieldRMSOptions, Sight, SightMaterialService, SightMaterialType, SightService, SightType, SightTypeEnum, SightTypeService, SlideAddon, SlideAddonService, State, StateService, StatusHistoryService, Total, TotalItem, TotalsService, UserService, Vendor, VendorContact, VendorService, WaitlistAction, WaitlistCustomerService, WaitlistGun, WaitlistGunPackageDetail, WaitlistHistory, WaitlistItem, WaitlistProjectService, WaitlistService, WaitlistStatus, WorkChangeOrder, WorkHoliday, WorkHolidayService, WorkOrder, WorkOrderAction, WorkOrderDiscount, WorkOrderDiscountService, WorkOrderHistory, WorkOrderInventoryItem, WorkOrderListItem, WorkOrderNonInventoryItem, WorkOrderNonInventoryItemService, WorkOrderPackageDetail, WorkOrderRefinishItem, WorkOrderService, WorkOrderShippingItem, WorkOrderShippingItemService, WorkOrderStatus, WorkOrderType, coatingDescriptionValidator, coatingValueValidator, convertEnumToObjectArray, getCoatingValues, getCoatings, hasCoatingDescription, hasCoatingValues, refinishDetailsValidator, touchControls };
2671
2553
  //# sourceMappingURL=gunsmith-common.mjs.map