gunsmith-common 2.3.13 → 2.3.15
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/public_api.mjs +1 -2
- package/esm2020/shared/services/finish-date-helper.service.mjs +7 -9
- package/esm2020/shared/services/work-order.service.mjs +4 -1
- package/esm2020/shared/shared.module.mjs +1 -6
- package/fesm2015/gunsmith-common.mjs +27 -216
- package/fesm2015/gunsmith-common.mjs.map +1 -1
- package/fesm2020/gunsmith-common.mjs +18 -203
- package/fesm2020/gunsmith-common.mjs.map +1 -1
- package/gunsmith-common-2.3.15.tgz +0 -0
- package/package.json +1 -1
- package/public_api.d.ts +0 -1
- package/shared/services/finish-date-helper.service.d.ts +2 -1
- package/shared/services/work-order.service.d.ts +1 -0
- package/shared/shared.module.d.ts +6 -7
- package/esm2020/shared/controls/package-selector/package-selector.component.mjs +0 -190
- package/gunsmith-common-2.3.13.tgz +0 -0
- package/shared/controls/package-selector/package-selector.component.d.ts +0 -42
|
Binary file
|
package/package.json
CHANGED
package/public_api.d.ts
CHANGED
|
@@ -3,7 +3,6 @@ export * from './shared/types';
|
|
|
3
3
|
export * from './shared/services';
|
|
4
4
|
export * from './shared/pipes';
|
|
5
5
|
export * from './shared/directives';
|
|
6
|
-
export * from './shared/controls/package-selector/package-selector.component';
|
|
7
6
|
export * from "./shared/controls/form-error-message/form-error-message.component";
|
|
8
7
|
export * from "./shared/controls/modal-header/modal-header.component";
|
|
9
8
|
export * from './shared/shared.module';
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { ConfigurationService } from './configuration.service';
|
|
2
2
|
import { WorkHolidayService } from './work-holiday.service';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
3
4
|
import { WorkOrderType } from '../types';
|
|
4
5
|
import * as i0 from "@angular/core";
|
|
5
6
|
export declare class FinishDateHelperService {
|
|
@@ -10,7 +11,7 @@ export declare class FinishDateHelperService {
|
|
|
10
11
|
constructor(configService: ConfigurationService, holidayService: WorkHolidayService);
|
|
11
12
|
private adjustHoliday;
|
|
12
13
|
private calculateFinishDate;
|
|
13
|
-
calculate(receivedDate: Date, workOrderType: WorkOrderType):
|
|
14
|
+
calculate(receivedDate: Date, workOrderType: WorkOrderType): Observable<Date>;
|
|
14
15
|
static ɵfac: i0.ɵɵFactoryDeclaration<FinishDateHelperService, never>;
|
|
15
16
|
static ɵprov: i0.ɵɵInjectableDeclaration<FinishDateHelperService>;
|
|
16
17
|
}
|
|
@@ -53,6 +53,7 @@ export declare class WorkOrderService {
|
|
|
53
53
|
getTransactions(workOrderId: number): Observable<WorkOrderBillingTransaction[]>;
|
|
54
54
|
refundTransaction(workOrderId: number, transactionId: number, refundAmount: number): Observable<WorkOrderBillingTransaction>;
|
|
55
55
|
createBillingTransaction(workOrderId: number, billingTransaction: WorkOrderBillingTransaction): Observable<WorkOrderBillingTransaction>;
|
|
56
|
+
getBillingReceipt(workOrderId: number): Observable<Blob>;
|
|
56
57
|
static ɵfac: i0.ɵɵFactoryDeclaration<WorkOrderService, never>;
|
|
57
58
|
static ɵprov: i0.ɵɵInjectableDeclaration<WorkOrderService>;
|
|
58
59
|
}
|
|
@@ -5,14 +5,13 @@ import * as i3 from "./pipes/enum.pipe";
|
|
|
5
5
|
import * as i4 from "./directives/disable-control.directive";
|
|
6
6
|
import * as i5 from "./pipes/new-line.pipe";
|
|
7
7
|
import * as i6 from "./pipes/frame-material.pipe";
|
|
8
|
-
import * as i7 from "./controls/
|
|
9
|
-
import * as i8 from "./controls/
|
|
10
|
-
import * as i9 from "
|
|
11
|
-
import * as i10 from "@angular
|
|
12
|
-
import * as i11 from "@
|
|
13
|
-
import * as i12 from "@angular/forms";
|
|
8
|
+
import * as i7 from "./controls/form-error-message/form-error-message.component";
|
|
9
|
+
import * as i8 from "./controls/modal-header/modal-header.component";
|
|
10
|
+
import * as i9 from "@angular/common";
|
|
11
|
+
import * as i10 from "@progress/kendo-angular-dropdowns";
|
|
12
|
+
import * as i11 from "@angular/forms";
|
|
14
13
|
export declare class SharedModule {
|
|
15
14
|
static ɵfac: i0.ɵɵFactoryDeclaration<SharedModule, never>;
|
|
16
|
-
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, [typeof i1.PhonePipe, typeof i2.FileNamePipe, typeof i3.EnumPipe, typeof i4.DisableControlDirective, typeof i5.NewLinePipe, typeof i6.FrameMaterialPipe, typeof i7.
|
|
15
|
+
static ɵmod: i0.ɵɵNgModuleDeclaration<SharedModule, [typeof i1.PhonePipe, typeof i2.FileNamePipe, typeof i3.EnumPipe, typeof i4.DisableControlDirective, typeof i5.NewLinePipe, typeof i6.FrameMaterialPipe, typeof i7.FormErrorMessageComponent, typeof i8.ModalHeaderComponent], [typeof i9.CommonModule, typeof i10.DropDownsModule, typeof i11.FormsModule, typeof i11.ReactiveFormsModule], [typeof i1.PhonePipe, typeof i2.FileNamePipe, typeof i3.EnumPipe, typeof i5.NewLinePipe, typeof i4.DisableControlDirective, typeof i6.FrameMaterialPipe, typeof i7.FormErrorMessageComponent, typeof i8.ModalHeaderComponent]>;
|
|
17
16
|
static ɵinj: i0.ɵɵInjectorDeclaration<SharedModule>;
|
|
18
17
|
}
|
|
@@ -1,190 +0,0 @@
|
|
|
1
|
-
import { Component, Injector, Input } from '@angular/core';
|
|
2
|
-
import { FormBuilder, NgControl, NG_VALIDATORS, NG_VALUE_ACCESSOR, Validators } from '@angular/forms';
|
|
3
|
-
import { PackageService } from '../../services';
|
|
4
|
-
import { ProjectType, WorkOrderType } from '../../types';
|
|
5
|
-
import * as i0 from "@angular/core";
|
|
6
|
-
import * as i1 from "../../services";
|
|
7
|
-
import * as i2 from "@angular/forms";
|
|
8
|
-
import * as i3 from "@progress/kendo-angular-dropdowns";
|
|
9
|
-
import * as i4 from "@angular/common";
|
|
10
|
-
export class PackageSelectorComponent {
|
|
11
|
-
constructor(packageService, fb, inj) {
|
|
12
|
-
this.packageService = packageService;
|
|
13
|
-
this.fb = fb;
|
|
14
|
-
this.inj = inj;
|
|
15
|
-
this.gunsmithOnly = false;
|
|
16
|
-
this.packages = [];
|
|
17
|
-
this.packageVariations = [];
|
|
18
|
-
this.packageOptionalItems = [];
|
|
19
|
-
this.onChangeSubs = [];
|
|
20
|
-
this.onTouched = () => { };
|
|
21
|
-
this.touched = false;
|
|
22
|
-
this.disabled = false;
|
|
23
|
-
this.createForm();
|
|
24
|
-
}
|
|
25
|
-
ngOnChanges(changes) {
|
|
26
|
-
if (this.canGetPackages(changes)) {
|
|
27
|
-
this.getPackages();
|
|
28
|
-
this.packageForm.reset();
|
|
29
|
-
}
|
|
30
|
-
else {
|
|
31
|
-
this.packages = [];
|
|
32
|
-
this.packageForm.reset();
|
|
33
|
-
}
|
|
34
|
-
}
|
|
35
|
-
canGetPackages(changes) {
|
|
36
|
-
return (changes.firearmId && changes.firearmId.currentValue && this.projectType === ProjectType.Firearm && (this.workOrderType == WorkOrderType.Standard || this.workOrderType == WorkOrderType.NewInBox)) ||
|
|
37
|
-
(changes.projectType && changes.projectType.currentValue === ProjectType.Firearm && this.firearmId && (this.workOrderType == WorkOrderType.Standard || this.workOrderType == WorkOrderType.NewInBox)) ||
|
|
38
|
-
(changes.workOrderType && (changes.workOrderType.currentValue === WorkOrderType.Standard || changes.workOrderType.currentValue === WorkOrderType.NewInBox) && this.firearmId && this.projectType === ProjectType.Firearm);
|
|
39
|
-
}
|
|
40
|
-
ngAfterViewInit() {
|
|
41
|
-
const outerControl = this.inj.get(NgControl).control;
|
|
42
|
-
const prevMarkAsTouched = outerControl.markAsTouched;
|
|
43
|
-
outerControl.markAsTouched = (...args) => {
|
|
44
|
-
this.packageForm.markAllAsTouched();
|
|
45
|
-
prevMarkAsTouched.bind(outerControl)(...args);
|
|
46
|
-
};
|
|
47
|
-
}
|
|
48
|
-
ngOnDestroy() {
|
|
49
|
-
for (let sub of this.onChangeSubs) {
|
|
50
|
-
sub.unsubscribe();
|
|
51
|
-
}
|
|
52
|
-
}
|
|
53
|
-
getPackages() {
|
|
54
|
-
this.packageService.readPackagesByFirearm(this.firearmId, this.gunsmithOnly)
|
|
55
|
-
.subscribe(packages => {
|
|
56
|
-
this.packages = packages;
|
|
57
|
-
if (this.packageForm.controls.package.value) {
|
|
58
|
-
let packagez = this.packages.find(p => p.id === this.packageForm.controls.package.value.id);
|
|
59
|
-
this.setPackageOptions(packagez);
|
|
60
|
-
}
|
|
61
|
-
});
|
|
62
|
-
}
|
|
63
|
-
createForm() {
|
|
64
|
-
this.packageForm = this.fb.group({
|
|
65
|
-
package: null,
|
|
66
|
-
optionalItems: this.fb.control([]),
|
|
67
|
-
variations: this.fb.array([])
|
|
68
|
-
});
|
|
69
|
-
this.packageForm.controls.variations.valueChanges
|
|
70
|
-
.subscribe(value => {
|
|
71
|
-
if (value) {
|
|
72
|
-
this.packageForm.controls.variations.setValue(value.map(v => v?.id ? v : null), { emitEvent: false });
|
|
73
|
-
}
|
|
74
|
-
});
|
|
75
|
-
this.packageForm.controls.package.valueChanges
|
|
76
|
-
.subscribe(value => {
|
|
77
|
-
this.packageForm.controls.optionalItems.reset();
|
|
78
|
-
this.packageOptionalItems = [];
|
|
79
|
-
this.variations.clear({ emitEvent: false });
|
|
80
|
-
this.packageVariations = [];
|
|
81
|
-
if (value?.id) {
|
|
82
|
-
this.setPackageOptions(value);
|
|
83
|
-
}
|
|
84
|
-
else {
|
|
85
|
-
if (this.packageDetail) {
|
|
86
|
-
this.packageDetail.variations = null;
|
|
87
|
-
this.packageDetail.optionalItems = null;
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
});
|
|
91
|
-
}
|
|
92
|
-
get variations() { return this.packageForm.controls.variations; }
|
|
93
|
-
setPackageOptions(packagez) {
|
|
94
|
-
this.packageOptionalItems = packagez.optionalItems;
|
|
95
|
-
this.packageVariations = this.gunsmithOnly ? packagez.variations : packagez.variations.filter(v => !v.gunsmithOnly);
|
|
96
|
-
this.variations.clear({ emitEvent: false });
|
|
97
|
-
for (let v of this.packageVariations) {
|
|
98
|
-
let selectedVariation = this.packageDetail?.variations?.find(pv => pv.packageVariationId === v.id);
|
|
99
|
-
if (v.gunsmithOnly)
|
|
100
|
-
this.variations.push(this.fb.control(selectedVariation), { emitEvent: false });
|
|
101
|
-
else
|
|
102
|
-
this.variations.push(this.fb.control(selectedVariation, Validators.required), { emitEvent: false });
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
setValue(packageDetail) {
|
|
106
|
-
this.packageForm.reset(packageDetail);
|
|
107
|
-
}
|
|
108
|
-
validate(control) {
|
|
109
|
-
if (this.packageForm.valid) {
|
|
110
|
-
return null;
|
|
111
|
-
}
|
|
112
|
-
let errors = {};
|
|
113
|
-
for (let v of this.variations.controls) {
|
|
114
|
-
if (v.invalid) {
|
|
115
|
-
return v.errors;
|
|
116
|
-
}
|
|
117
|
-
}
|
|
118
|
-
return errors;
|
|
119
|
-
}
|
|
120
|
-
addControlErrors(allErrors, controlName) {
|
|
121
|
-
const errors = { ...allErrors };
|
|
122
|
-
const controlErrors = this.packageForm.controls[controlName].errors;
|
|
123
|
-
if (controlErrors) {
|
|
124
|
-
errors[controlName] = controlErrors;
|
|
125
|
-
}
|
|
126
|
-
return errors;
|
|
127
|
-
}
|
|
128
|
-
writeValue(packageDetail) {
|
|
129
|
-
if (packageDetail) {
|
|
130
|
-
this.packageDetail = Object.assign({}, packageDetail);
|
|
131
|
-
this.setValue(packageDetail);
|
|
132
|
-
}
|
|
133
|
-
else {
|
|
134
|
-
this.packageForm.reset();
|
|
135
|
-
}
|
|
136
|
-
}
|
|
137
|
-
registerOnChange(onChange) {
|
|
138
|
-
const sub = this.packageForm.valueChanges.subscribe(onChange);
|
|
139
|
-
this.onChangeSubs.push(sub);
|
|
140
|
-
}
|
|
141
|
-
registerOnTouched(onTouched) {
|
|
142
|
-
this.onTouched = onTouched;
|
|
143
|
-
}
|
|
144
|
-
setDisabledState(isDisabled) {
|
|
145
|
-
this.disabled = isDisabled;
|
|
146
|
-
if (isDisabled) {
|
|
147
|
-
this.packageForm.disable();
|
|
148
|
-
}
|
|
149
|
-
else {
|
|
150
|
-
this.packageForm.enable();
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
PackageSelectorComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, deps: [{ token: i1.PackageService }, { token: i2.FormBuilder }, { token: i0.Injector }], target: i0.ɵɵFactoryTarget.Component });
|
|
155
|
-
PackageSelectorComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.3.11", type: PackageSelectorComponent, selector: "cgw-package-selector", inputs: { firearmId: "firearmId", projectType: "projectType", workOrderType: "workOrderType", gunsmithOnly: "gunsmithOnly" }, providers: [
|
|
156
|
-
{
|
|
157
|
-
provide: NG_VALUE_ACCESSOR,
|
|
158
|
-
multi: true,
|
|
159
|
-
useExisting: PackageSelectorComponent
|
|
160
|
-
},
|
|
161
|
-
{
|
|
162
|
-
provide: NG_VALIDATORS,
|
|
163
|
-
multi: true,
|
|
164
|
-
useExisting: PackageSelectorComponent
|
|
165
|
-
}
|
|
166
|
-
], 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: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i2.FormArrayName, selector: "[formArrayName]", inputs: ["formArrayName"] }, { type: i4.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]" }] });
|
|
167
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.3.11", ngImport: i0, type: PackageSelectorComponent, decorators: [{
|
|
168
|
-
type: Component,
|
|
169
|
-
args: [{ selector: 'cgw-package-selector', providers: [
|
|
170
|
-
{
|
|
171
|
-
provide: NG_VALUE_ACCESSOR,
|
|
172
|
-
multi: true,
|
|
173
|
-
useExisting: PackageSelectorComponent
|
|
174
|
-
},
|
|
175
|
-
{
|
|
176
|
-
provide: NG_VALIDATORS,
|
|
177
|
-
multi: true,
|
|
178
|
-
useExisting: PackageSelectorComponent
|
|
179
|
-
}
|
|
180
|
-
], 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: [""] }]
|
|
181
|
-
}], ctorParameters: function () { return [{ type: i1.PackageService }, { type: i2.FormBuilder }, { type: i0.Injector }]; }, propDecorators: { firearmId: [{
|
|
182
|
-
type: Input
|
|
183
|
-
}], projectType: [{
|
|
184
|
-
type: Input
|
|
185
|
-
}], workOrderType: [{
|
|
186
|
-
type: Input
|
|
187
|
-
}], gunsmithOnly: [{
|
|
188
|
-
type: Input
|
|
189
|
-
}] } });
|
|
190
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9ndW5zbWl0aC1jb21tb24vc3JjL3NoYXJlZC9jb250cm9scy9wYWNrYWdlLXNlbGVjdG9yL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZ3Vuc21pdGgtY29tbW9uL3NyYy9zaGFyZWQvY29udHJvbHMvcGFja2FnZS1zZWxlY3Rvci9wYWNrYWdlLXNlbGVjdG9yLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBaUIsU0FBUyxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQStDLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBb0QsV0FBVyxFQUFhLFNBQVMsRUFBRSxhQUFhLEVBQUUsaUJBQWlCLEVBQStCLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhNLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUNoRCxPQUFPLEVBQW9HLFdBQVcsRUFBRSxhQUFhLEVBQTRCLE1BQU0sYUFBYSxDQUFDOzs7Ozs7QUFtQnJMLE1BQU0sT0FBTyx3QkFBd0I7SUE0Qm5DLFlBQ1UsY0FBOEIsRUFDOUIsRUFBZSxFQUNmLEdBQWE7UUFGYixtQkFBYyxHQUFkLGNBQWMsQ0FBZ0I7UUFDOUIsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQUNmLFFBQUcsR0FBSCxHQUFHLENBQVU7UUFuQnZCLGlCQUFZLEdBQUcsS0FBSyxDQUFDO1FBRXJCLGFBQVEsR0FBYyxFQUFFLENBQUM7UUFDekIsc0JBQWlCLEdBQXVCLEVBQUUsQ0FBQztRQUMzQyx5QkFBb0IsR0FBMEIsRUFBRSxDQUFDO1FBTWpELGlCQUFZLEdBQW1CLEVBQUUsQ0FBQztRQUNsQyxjQUFTLEdBQUcsR0FBRyxFQUFFLEdBQUcsQ0FBQyxDQUFD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QkFDWCxXQUFXLDBCQUEwQjt5QkFDdEM7cUJBQ0Y7c0pBS0QsU0FBUztzQkFEUixLQUFLO2dCQUlOLFdBQVc7c0JBRFYsS0FBSztnQkFJTixhQUFhO3NCQURaLEtBQUs7Z0JBSU4sWUFBWTtzQkFEWCxLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQWZ0ZXJWaWV3SW5pdCwgQ29tcG9uZW50LCBJbmplY3RvciwgSW5wdXQsIE9uQ2hhbmdlcywgT25EZXN0cm95LCBPbkluaXQsIFNpbXBsZUNoYW5nZXMgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFic3RyYWN0Q29udHJvbCwgQ29udHJvbFZhbHVlQWNjZXNzb3IsIEZvcm1BcnJheSwgRm9ybUJ1aWxkZXIsIEZvcm1Hcm91cCwgTmdDb250cm9sLCBOR19WQUxJREFUT1JTLCBOR19WQUxVRV9BQ0NFU1NPUiwgVmFsaWRhdGlvbkVycm9ycywgVmFsaWRhdG9yLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSAncnhqcyc7XG5pbXBvcnQgeyBQYWNrYWdlU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzJztcbmltcG9ydCB7IFBhY2thZ2UsIFBhY2thZ2VWYXJpYXRpb24sIFBhY2thZ2VPcHRpb25hbEl0ZW0sIFdhaXRsaXN0R3VuUGFja2FnZURldGFpbCwgV29ya09yZGVyUGFja2FnZURldGFpbCwgUHJvamVjdFR5cGUsIFdvcmtPcmRlclR5cGUsIENoYW5nZU9yZGVyUGFja2FnZURldGFpbCB9IGZyb20gJy4uLy4uL3R5cGVzJztcblxuQENvbXBvbmVudCh7XG4gIHNlbGVjdG9yOiAnY2d3LXBhY2thZ2Utc2VsZWN0b3InLFxuICB0ZW1wbGF0ZVVybDogJy4vcGFja2FnZS1zZWxlY3Rvci5jb21wb25lbnQuaHRtbCcsXG4gIHN0eWxlVXJsczogWycuL3BhY2thZ2Utc2VsZWN0b3IuY29tcG9uZW50LnNjc3MnXSxcbiAgcHJvdmlkZXJzOiBbXG4gICAge1xuICAgICAgcHJvdmlkZTogTkdfVkFMVUVfQUNDRVNTT1IsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBQYWNrYWdlU2VsZWN0b3JDb21wb25lbnRcbiAgICB9LFxuICAgIHtcbiAgICAgIHByb3ZpZGU6IE5HX1ZBTElEQVRPUlMsXG4gICAgICBtdWx0aTogdHJ1ZSxcbiAgICAgIHVzZUV4aXN0aW5nOiBQYWNrYWdlU2VsZWN0b3JDb21wb25lbnRcbiAgICB9XG4gIF1cbn0pXG5leHBvcnQgY2xhc3MgUGFja2FnZVNlbGVjdG9yQ29tcG9uZW50IGltcGxlbWVudHMgQ29udHJvbFZhbHVlQWNjZXNzb3IsIFZhbGlkYXRvciwgT25DaGFuZ2VzLCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gIEBJbnB1dCgpXG4gIGZpcmVhcm1JZDogbnVtYmVyO1xuXG4gIEBJbnB1dCgpXG4gIHByb2plY3RUeXBlOiBQcm9qZWN0VHlwZTtcblxuICBASW5wdXQoKVxuICB3b3JrT3JkZXJUeXBlOiBXb3JrT3JkZXJUeXBlO1xuXG4gIEBJbnB1dCgpXG4gIGd1bnNtaXRoT25seSA9IGZhbHNlO1xuXG4gIHBhY2thZ2VzOiBQYWNrYWdlW10gPSBbXTtcbiAgcGFja2FnZVZhcmlhdGlvbnM6IFBhY2thZ2VWYXJpYXRpb25bXSA9IFtdO1xuICBwYWNrYWdlT3B0aW9uYWxJdGVtczogUGFja2FnZU9wdGlvbmFsSXRlbVtdID0gW107XG5cbiAgcGFja2FnZURldGFpbDogV2FpdGxpc3RHdW5QYWNrYWdlRGV0YWlsIHwgV29ya09yZGVyUGFja2FnZURldGFpbCB8IENoYW5nZU9yZGVyUGFja2FnZURldGFpbDtcblxuICBwYWNrYWdlRm9ybTogRm9ybUdyb3VwO1xuXG4gIG9uQ2hhbmdlU3ViczogU3Vic2NyaXB0aW9uW10gPSBbXTtcbiAgb25Ub3VjaGVkID0gKCkgPT4geyB9O1xuXG4gIHRvdWNoZWQgPSBmYWxzZTtcbiAgZGlzYWJsZWQgPSBmYWxzZTtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBwcml2YXRlIHBhY2thZ2VTZXJ2aWNlOiBQYWNrYWdlU2VydmljZSxcbiAgICBwcml2YXRlIGZiOiBGb3JtQnVpbGRlcixcbiAgICBwcml2YXRlIGluajogSW5qZWN0b3JcbiAgKSB7XG4gICAgdGhpcy5jcmVhdGVGb3JtKCk7XG4gIH1cblxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XG4gICAgaWYgKHRoaXMuY2FuR2V0UGFja2FnZXMoY2hhbmdlcykpIHtcbiAgICAgIHRoaXMuZ2V0UGFja2FnZXMoKTtcbiAgICAgIHRoaXMucGFja2FnZUZvcm0ucmVzZXQoKTtcbiAgICB9XG4gICAgZWxzZSB7XG4gICAgICB0aGlzLnBhY2thZ2VzID0gW107XG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KCk7XG4gICAgfVxuICB9XG5cbiAgcHJpdmF0ZSBjYW5HZXRQYWNrYWdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogYm9vbGVhbiB7XG4gICAgcmV0dXJuIChjaGFuZ2VzLmZpcmVhcm1JZCAmJiBjaGFuZ2VzLmZpcmVhcm1JZC5jdXJyZW50VmFsdWUgJiYgdGhpcy5wcm9qZWN0VHlwZSA9PT0gUHJvamVjdFR5cGUuRmlyZWFybSAmJiAodGhpcy53b3JrT3JkZXJUeXBlID09IFdvcmtPcmRlclR5cGUuU3RhbmRhcmQgfHwgdGhpcy53b3JrT3JkZXJUeXBlID09IFdvcmtPcmRlclR5cGUuTmV3SW5Cb3gpKSB8fFxuICAgIChjaGFuZ2VzLnByb2plY3RUeXBlICYmIGNoYW5nZXMucHJvamVjdFR5cGUuY3VycmVudFZhbHVlID09PSBQcm9qZWN0VHlwZS5GaXJlYXJtICYmIHRoaXMuZmlyZWFybUlkICYmICh0aGlzLndvcmtPcmRlclR5cGUgPT0gV29ya09yZGVyVHlwZS5TdGFuZGFyZCB8fCB0aGlzLndvcmtPcmRlclR5cGUgPT0gV29ya09yZGVyVHlwZS5OZXdJbkJveCkpIHx8XG4gICAgKGNoYW5nZXMud29ya09yZGVyVHlwZSAmJiAoY2hhbmdlcy53b3JrT3JkZXJUeXBlLmN1cnJlbnRWYWx1ZSA9PT0gV29ya09yZGVyVHlwZS5TdGFuZGFyZCB8fCBjaGFuZ2VzLndvcmtPcmRlclR5cGUuY3VycmVudFZhbHVlID09PSBXb3JrT3JkZXJUeXBlLk5ld0luQm94KSAmJiB0aGlzLmZpcmVhcm1JZCAmJiB0aGlzLnByb2plY3RUeXBlID09PSBQcm9qZWN0VHlwZS5GaXJlYXJtKTtcbiAgfVxuXG4gIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICBjb25zdCBvdXRlckNvbnRyb2wgPSB0aGlzLmluai5nZXQoTmdDb250cm9sKS5jb250cm9sO1xuICAgIGNvbnN0IHByZXZNYXJrQXNUb3VjaGVkID0gb3V0ZXJDb250cm9sLm1hcmtBc1RvdWNoZWQ7XG4gICAgb3V0ZXJDb250cm9sLm1hcmtBc1RvdWNoZWQgPSAoLi4uYXJnczogYW55KSA9PiB7XG4gICAgICB0aGlzLnBhY2thZ2VGb3JtLm1hcmtBbGxBc1RvdWNoZWQoKTtcbiAgICAgIHByZXZNYXJrQXNUb3VjaGVkLmJpbmQob3V0ZXJDb250cm9sKSguLi5hcmdzKTtcbiAgICB9O1xuICB9XG5cbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgZm9yIChsZXQgc3ViIG9mIHRoaXMub25DaGFuZ2VTdWJzKSB7XG4gICAgICBzdWIudW5zdWJzY3JpYmUoKTtcbiAgICB9XG4gIH1cblxuICBnZXRQYWNrYWdlcygpOiB2b2lkIHtcbiAgICB0aGlzLnBhY2thZ2VTZXJ2aWNlLnJlYWRQYWNrYWdlc0J5RmlyZWFybSh0aGlzLmZpcmVhcm1JZCwgdGhpcy5ndW5zbWl0aE9ubHkpXG4gICAgICAuc3Vic2NyaWJlKHBhY2thZ2VzID0+IHtcbiAgICAgICAgdGhpcy5wYWNrYWdlcyA9IHBhY2thZ2VzO1xuICAgICAgICBpZiAodGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy5wYWNrYWdlLnZhbHVlKSB7XG4gICAgICAgICAgbGV0IHBhY2thZ2V6ID0gdGhpcy5wYWNrYWdlcy5maW5kKHAgPT4gcC5pZCA9PT0gdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy5wYWNrYWdlLnZhbHVlLmlkKTtcbiAgICAgICAgICB0aGlzLnNldFBhY2thZ2VPcHRpb25zKHBhY2thZ2V6KTtcbiAgICAgICAgfVxuICAgICAgfSk7XG4gIH1cblxuICBjcmVhdGVGb3JtKCk6IHZvaWQge1xuICAgIHRoaXMucGFja2FnZUZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcbiAgICAgIHBhY2thZ2U6IG51bGwsXG4gICAgICBvcHRpb25hbEl0ZW1zOiB0aGlzLmZiLmNvbnRyb2woW10pLFxuICAgICAgdmFyaWF0aW9uczogdGhpcy5mYi5hcnJheShbXSlcbiAgICB9KVxuXG4gICAgdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy52YXJpYXRpb25zLnZhbHVlQ2hhbmdlc1xuICAgICAgLnN1YnNjcmliZSh2YWx1ZSA9PiB7XG4gICAgICAgIGlmICh2YWx1ZSkge1xuICAgICAgICAgIHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMudmFyaWF0aW9ucy5zZXRWYWx1ZSh2YWx1ZS5tYXAodiA9PiB2Py5pZCA/IHYgOiBudWxsKSwgeyBlbWl0RXZlbnQ6IGZhbHNlIH0pO1xuICAgICAgICB9XG4gICAgICB9KTtcblxuICAgIHRoaXMucGFja2FnZUZvcm0uY29udHJvbHMucGFja2FnZS52YWx1ZUNoYW5nZXNcbiAgICAgIC5zdWJzY3JpYmUodmFsdWUgPT4ge1xuICAgICAgICB0aGlzLnBhY2thZ2VGb3JtLmNvbnRyb2xzLm9wdGlvbmFsSXRlbXMucmVzZXQoKTtcbiAgICAgICAgdGhpcy5wYWNrYWdlT3B0aW9uYWxJdGVtcyA9IFtdO1xuXG4gICAgICAgIHRoaXMudmFyaWF0aW9ucy5jbGVhcih7IGVtaXRFdmVudDogZmFsc2UgfSk7XG4gICAgICAgIHRoaXMucGFja2FnZVZhcmlhdGlvbnMgPSBbXTtcblxuICAgICAgICBpZiAodmFsdWU/LmlkKSB7XG4gICAgICAgICAgdGhpcy5zZXRQYWNrYWdlT3B0aW9ucyh2YWx1ZSk7XG4gICAgICAgIH1cbiAgICAgICAgZWxzZSB7XG4gICAgICAgICAgaWYgKHRoaXMucGFja2FnZURldGFpbCkge1xuICAgICAgICAgICAgdGhpcy5wYWNrYWdlRGV0YWlsLnZhcmlhdGlvbnMgPSBudWxsO1xuICAgICAgICAgICAgdGhpcy5wYWNrYWdlRGV0YWlsLm9wdGlvbmFsSXRlbXMgPSBudWxsO1xuICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgICAgfSlcbiAgfVxuXG4gIGdldCB2YXJpYXRpb25zKCkgeyByZXR1cm4gdGhpcy5wYWNrYWdlRm9ybS5jb250cm9scy52YXJpYXRpb25zIGFzIEZvcm1BcnJheSB9XG5cbiAgc2V0UGFja2FnZU9wdGlvbnMocGFja2FnZXo6IFBhY2thZ2UpIHtcbiAgICB0aGlzLnBhY2thZ2VPcHRpb25hbEl0ZW1zID0gcGFja2FnZXoub3B0aW9uYWxJdGVtcztcbiAgICB0aGlzLnBhY2thZ2VWYXJpYXRpb25zID0gdGhpcy5ndW5zbWl0aE9ubHkgPyBwYWNrYWdlei52YXJpYXRpb25zIDogcGFja2FnZXoudmFyaWF0aW9ucy5maWx0ZXIodiA9PiAhdi5ndW5zbWl0aE9ubHkpO1xuXG4gICAgdGhpcy52YXJpYXRpb25zLmNsZWFyKHtlbWl0RXZlbnQ6IGZhbHNlfSk7XG4gICAgZm9yIChsZXQgdiBvZiB0aGlzLnBhY2thZ2VWYXJpYXRpb25zKSB7XG4gICAgICBsZXQgc2VsZWN0ZWRWYXJpYXRpb24gPSB0aGlzLnBhY2thZ2VEZXRhaWw/LnZhcmlhdGlvbnM/LmZpbmQocHYgPT4gcHYucGFja2FnZVZhcmlhdGlvbklkID09PSB2LmlkKTtcbiAgICAgIGlmKHYuZ3Vuc21pdGhPbmx5KVxuICAgICAgICB0aGlzLnZhcmlhdGlvbnMucHVzaCh0aGlzLmZiLmNvbnRyb2woc2VsZWN0ZWRWYXJpYXRpb24pLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgICAgZWxzZVxuICAgICAgICB0aGlzLnZhcmlhdGlvbnMucHVzaCh0aGlzLmZiLmNvbnRyb2woc2VsZWN0ZWRWYXJpYXRpb24sIFZhbGlkYXRvcnMucmVxdWlyZWQpLCB7ZW1pdEV2ZW50OiBmYWxzZX0pO1xuICAgIH1cbiAgfVxuXG4gIHNldFZhbHVlKHBhY2thZ2VEZXRhaWw6IFdhaXRsaXN0R3VuUGFja2FnZURldGFpbCB8IFdvcmtPcmRlclBhY2thZ2VEZXRhaWwgfCBDaGFuZ2VPcmRlclBhY2thZ2VEZXRhaWwpIHtcbiAgICB0aGlzLnBhY2thZ2VGb3JtLnJlc2V0KHBhY2thZ2VEZXRhaWwpO1xuICB9XG5cbiAgdmFsaWRhdGUoY29udHJvbDogQWJzdHJhY3RDb250cm9sKTogVmFsaWRhdGlvbkVycm9ycyB7XG4gICAgaWYgKHRoaXMucGFja2FnZUZvcm0udmFsaWQpIHtcbiAgICAgIHJldHVybiBudWxsO1xuICAgIH1cblxuICAgIGxldCBlcnJvcnM6IGFueSA9IHt9O1xuXG4gICAgZm9yIChsZXQgdiBvZiB0aGlzLnZhcmlhdGlvbnMuY29udHJvbHMpIHtcbiAgICAgIGlmICh2LmludmFsaWQpIHtcbiAgICAgICAgcmV0dXJuIHYuZXJyb3JzO1xuICAgICAgfVxuICAgIH1cblxuICAgIHJldHVybiBlcnJvcnM7XG4gIH1cblxuICBhZGRDb250cm9sRXJyb3JzKGFsbEVycm9yczogYW55LCBjb250cm9sTmFtZTogc3RyaW5nKSB7XG5cbiAgICBjb25zdCBlcnJvcnMgPSB7IC4uLmFsbEVycm9ycyB9O1xuXG4gICAgY29uc3QgY29udHJvbEVycm9ycyA9IHRoaXMucGFja2FnZUZvcm0uY29udHJvbHNbY29udHJvbE5hbWVdLmVycm9ycztcblxuICAgIGlmIChjb250cm9sRXJyb3JzKSB7XG4gICAgICBlcnJvcnNbY29udHJvbE5hbWVdID0gY29udHJvbEVycm9ycztcbiAgICB9XG5cbiAgICByZXR1cm4gZXJyb3JzO1xuICB9XG5cbiAgd3JpdGVWYWx1ZShwYWNrYWdlRGV0YWlsOiBXYWl0bGlzdEd1blBhY2thZ2VEZXRhaWwgfCBXb3JrT3JkZXJQYWNrYWdlRGV0YWlsIHwgQ2hhbmdlT3JkZXJQYWNrYWdlRGV0YWlsKTogdm9pZCB7XG4gICAgaWYgKHBhY2thZ2VEZXRhaWwpIHtcbiAgICAgIHRoaXMucGFja2FnZURldGFpbCA9IE9iamVjdC5hc3NpZ24oe30scGFja2FnZURldGFpbCk7XG4gICAgICB0aGlzLnNldFZhbHVlKHBhY2thZ2VEZXRhaWwpO1xuICAgIH1cbiAgICBlbHNlIHtcbiAgICAgIHRoaXMucGFja2FnZUZvcm0ucmVzZXQoKTtcbiAgICB9XG4gIH1cblxuICByZWdpc3Rlck9uQ2hhbmdlKG9uQ2hhbmdlOiBhbnkpOiB2b2lkIHtcbiAgICBjb25zdCBzdWIgPSB0aGlzLnBhY2thZ2VGb3JtLnZhbHVlQ2hhbmdlcy5zdWJzY3JpYmUob25DaGFuZ2UpO1xuICAgIHRoaXMub25DaGFuZ2VTdWJzLnB1c2goc3ViKTtcbiAgfVxuXG4gIHJlZ2lzdGVyT25Ub3VjaGVkKG9uVG91Y2hlZDogYW55KTogdm9pZCB7XG4gICAgdGhpcy5vblRvdWNoZWQgPSBvblRvdWNoZWQ7XG4gIH1cblxuICBzZXREaXNhYmxlZFN0YXRlKGlzRGlzYWJsZWQ6IGJvb2xlYW4pOiB2b2lkIHtcbiAgICB0aGlzLmRpc2FibGVkID0gaXNEaXNhYmxlZDtcbiAgICBpZiAoaXNEaXNhYmxlZCkge1xuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5kaXNhYmxlKCk7XG4gICAgfVxuICAgIGVsc2Uge1xuICAgICAgdGhpcy5wYWNrYWdlRm9ybS5lbmFibGUoKTtcbiAgICB9XG4gIH1cbn1cbiIsIjxkaXYgW2Zvcm1Hcm91cF09XCJwYWNrYWdlRm9ybVwiPlxuICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICA8bGFiZWwgZm9yPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2VcIj5QYWNrYWdlPC9sYWJlbD5cbiAgICAgIDxrZW5kby1kcm9wZG93bmxpc3QgW2RhdGFdPVwicGFja2FnZXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICBbZGVmYXVsdEl0ZW1dPVwie25hbWU6ICdObyBQYWNrYWdlJywgaWQ6IG51bGx9XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJ3YWl0bGlzdC1ndW4tcGFja2FnZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cInBhY2thZ2VcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICB0ZXh0RmllbGQ9XCJuYW1lXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgdmFsdWVGaWVsZD1cImlkXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCI+PC9rZW5kby1kcm9wZG93bmxpc3Q+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGZvcm1BcnJheU5hbWU9XCJ2YXJpYXRpb25zXCIgKm5nRm9yPVwibGV0IHZhcmlhdGlvbkNvbnRyb2wgb2YgdmFyaWF0aW9ucy5jb250cm9sczsgbGV0IGkgPSBpbmRleFwiPlxuICAgIDxkaXYgY2xhc3M9XCJyb3cgbWItMlwiPlxuICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxuICAgICAgICA8bGFiZWwgW2Zvcl09XCInd2FpdGxpc3QtZ3VuLXBhY2thZ2UtdmFyaWF0aW9uLScgKyBpXCI+e3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19PC9sYWJlbD5cbiAgICAgICAgPGtlbmRvLWRyb3Bkb3dubGlzdCBbZGF0YV09XCJwYWNrYWdlVmFyaWF0aW9uc1tpXT8ub3B0aW9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2lkXT1cIid3YWl0bGlzdC1ndW4tcGFja2FnZS12YXJpYXRpb24tJyArIGlcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIFtkZWZhdWx0SXRlbV09XCJ7b3B0aW9uTmFtZTogJycsIGlkOiBudWxsfVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwib3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhcmlhdGlvbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCJwYWNrYWdlVmFyaWF0aW9uc1tpXT8uZ3Vuc21pdGhPbmx5XCI+XG4gICAgICAgICAgPG5nLXRlbXBsYXRlIGtlbmRvRHJvcERvd25MaXN0SXRlbVRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZnctYm9sZFwiPnt7IGRhdGFJdGVtPy5za3UgfX08L3NwYW4+IC0ge3sgZGF0YUl0ZW0/Lm9wdGlvbk5hbWUgfX0gPHNwYW4gKm5nSWY9XCJkYXRhSXRlbT8uc2VydmljZUNoYXJnZUl0ZW1QcmljZVwiPihhZGQgJHt7ZGF0YUl0ZW0uc2VydmljZUNoYXJnZUl0ZW1QcmljZS50b0ZpeGVkKDIpfX0pPC9zcGFuPlxuICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgIDwva2VuZG8tZHJvcGRvd25saXN0PlxuICAgICAgICA8a2VuZG8tZHJvcGRvd25saXN0IFtkYXRhXT1cInBhY2thZ2VWYXJpYXRpb25zW2ldPy5vcHRpb25zXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBbaWRdPVwiJ3dhaXRsaXN0LWd1bi1wYWNrYWdlLXZhcmlhdGlvbi0nICsgaVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGV4dEZpZWxkPVwib3B0aW9uTmFtZVwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgW2Zvcm1Db250cm9sXT1cInZhcmlhdGlvbkNvbnRyb2xcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCIgKm5nSWY9XCIhcGFja2FnZVZhcmlhdGlvbnNbaV0/Lmd1bnNtaXRoT25seVwiPlxuICAgICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb0Ryb3BEb3duTGlzdEl0ZW1UZW1wbGF0ZSBsZXQtZGF0YUl0ZW0+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj57eyBkYXRhSXRlbT8uc2t1IH19PC9zcGFuPiAtIHt7IGRhdGFJdGVtPy5vcHRpb25OYW1lIH19IDxzcGFuICpuZ0lmPVwiZGF0YUl0ZW0/LnNlcnZpY2VDaGFyZ2VJdGVtUHJpY2VcIj4oYWRkICR7e2RhdGFJdGVtLnNlcnZpY2VDaGFyZ2VJdGVtUHJpY2UudG9GaXhlZCgyKX19KTwvc3Bhbj5cbiAgICAgICAgICA8L25nLXRlbXBsYXRlPlxuICAgICAgICA8L2tlbmRvLWRyb3Bkb3dubGlzdD5cbiAgICAgIDwvZGl2PlxuICAgIDwvZGl2PlxuICAgIDxkaXYgKm5nSWY9XCJ2YXJpYXRpb25Db250cm9sLmludmFsaWQgJiYgKHZhcmlhdGlvbkNvbnRyb2wuZGlydHkgfHwgdmFyaWF0aW9uQ29udHJvbC50b3VjaGVkKVwiIGNsYXNzPVwiZXJyb3ItY29udGFpbmVyIHRleHQtZGFuZ2VyXCI+XG4gICAgICA8ZGl2ICpuZ0lmPVwidmFyaWF0aW9uQ29udHJvbC5lcnJvcnMucmVxdWlyZWRcIj5cbiAgICAgICAge3twYWNrYWdlVmFyaWF0aW9uc1tpXT8ubmFtZX19IGlzIHJlcXVpcmVkLlxuICAgICAgPC9kaXY+XG4gICAgPC9kaXY+XG4gIDwvZGl2PlxuICA8ZGl2IGNsYXNzPVwicm93IG1iLTJcIiAqbmdJZj1cInBhY2thZ2VPcHRpb25hbEl0ZW1zPy5sZW5ndGhcIj5cbiAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XG4gICAgICA8bGFiZWwgZm9yPVwid2FpdGxpc3QtZ3VuLXBhY2thZ2UtYWRkb25zXCI+QWRkLW9ucyAoQWRkaXRpb25hbCBjaGFyZ2VzIHdpbGwgYXBwbHkpPC9sYWJlbD5cbiAgICAgIDxrZW5kby1tdWx0aXNlbGVjdCBpZD1cIndhaXRsaXN0LWd1bi1wYWNrYWdlLWFkZG9uc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgW2RhdGFdPVwicGFja2FnZU9wdGlvbmFsSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cIm9wdGlvbmFsSXRlbXNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHRleHRGaWVsZD1cIm5hbWVcIlxuICAgICAgICAgICAgICAgICAgICAgICAgIHZhbHVlRmllbGQ9XCJpZFwiXG4gICAgICAgICAgICAgICAgICAgICAgICAgc2l6ZT1cInNtYWxsXCI+XG4gICAgICAgIDxuZy10ZW1wbGF0ZSBrZW5kb011bHRpU2VsZWN0SXRlbVRlbXBsYXRlIGxldC1kYXRhSXRlbT5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZ3LWJvbGRcIj57eyBkYXRhSXRlbT8uc2t1IH19PC9zcGFuPiAtIHt7IGRhdGFJdGVtPy5uYW1lIH19XG4gICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICA8L2tlbmRvLW11bHRpc2VsZWN0PlxuICAgIDwvZGl2PlxuICA8L2Rpdj5cbjwvZGl2PlxuIl19
|
|
Binary file
|
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import { AfterViewInit, Injector, OnChanges, OnDestroy, SimpleChanges } from '@angular/core';
|
|
2
|
-
import { AbstractControl, ControlValueAccessor, FormArray, FormBuilder, FormGroup, ValidationErrors, Validator } from '@angular/forms';
|
|
3
|
-
import { Subscription } from 'rxjs';
|
|
4
|
-
import { PackageService } from '../../services';
|
|
5
|
-
import { Package, PackageVariation, PackageOptionalItem, WaitlistGunPackageDetail, WorkOrderPackageDetail, ProjectType, WorkOrderType, ChangeOrderPackageDetail } from '../../types';
|
|
6
|
-
import * as i0 from "@angular/core";
|
|
7
|
-
export declare class PackageSelectorComponent implements ControlValueAccessor, Validator, OnChanges, OnDestroy, AfterViewInit {
|
|
8
|
-
private packageService;
|
|
9
|
-
private fb;
|
|
10
|
-
private inj;
|
|
11
|
-
firearmId: number;
|
|
12
|
-
projectType: ProjectType;
|
|
13
|
-
workOrderType: WorkOrderType;
|
|
14
|
-
gunsmithOnly: boolean;
|
|
15
|
-
packages: Package[];
|
|
16
|
-
packageVariations: PackageVariation[];
|
|
17
|
-
packageOptionalItems: PackageOptionalItem[];
|
|
18
|
-
packageDetail: WaitlistGunPackageDetail | WorkOrderPackageDetail | ChangeOrderPackageDetail;
|
|
19
|
-
packageForm: FormGroup;
|
|
20
|
-
onChangeSubs: Subscription[];
|
|
21
|
-
onTouched: () => void;
|
|
22
|
-
touched: boolean;
|
|
23
|
-
disabled: boolean;
|
|
24
|
-
constructor(packageService: PackageService, fb: FormBuilder, inj: Injector);
|
|
25
|
-
ngOnChanges(changes: SimpleChanges): void;
|
|
26
|
-
private canGetPackages;
|
|
27
|
-
ngAfterViewInit(): void;
|
|
28
|
-
ngOnDestroy(): void;
|
|
29
|
-
getPackages(): void;
|
|
30
|
-
createForm(): void;
|
|
31
|
-
get variations(): FormArray;
|
|
32
|
-
setPackageOptions(packagez: Package): void;
|
|
33
|
-
setValue(packageDetail: WaitlistGunPackageDetail | WorkOrderPackageDetail | ChangeOrderPackageDetail): void;
|
|
34
|
-
validate(control: AbstractControl): ValidationErrors;
|
|
35
|
-
addControlErrors(allErrors: any, controlName: string): any;
|
|
36
|
-
writeValue(packageDetail: WaitlistGunPackageDetail | WorkOrderPackageDetail | ChangeOrderPackageDetail): void;
|
|
37
|
-
registerOnChange(onChange: any): void;
|
|
38
|
-
registerOnTouched(onTouched: any): void;
|
|
39
|
-
setDisabledState(isDisabled: boolean): void;
|
|
40
|
-
static ɵfac: i0.ɵɵFactoryDeclaration<PackageSelectorComponent, never>;
|
|
41
|
-
static ɵcmp: i0.ɵɵComponentDeclaration<PackageSelectorComponent, "cgw-package-selector", never, { "firearmId": "firearmId"; "projectType": "projectType"; "workOrderType": "workOrderType"; "gunsmithOnly": "gunsmithOnly"; }, {}, never, never>;
|
|
42
|
-
}
|